@inkeep/open-knowledge 0.5.0-beta.15 → 0.5.0-beta.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/skills/open-knowledge/SKILL.md +12 -3
- package/dist/cli.mjs +4 -4
- package/dist/constants-C7p5YUDU.mjs +2 -0
- package/dist/{dist-JvyJrwkx.mjs → dist-D5J2z1mI.mjs} +1 -1
- package/dist/{dist-BFaejI07.mjs → dist-V31CRf7D.mjs} +326 -9
- package/dist/index.mjs +1 -1
- package/dist/{init-JeGcMd-V.mjs → init-CTIvDudd.mjs} +5 -5
- package/dist/init-dWpTUh9M.mjs +1 -0
- package/dist/loader-CjHtqud-.mjs +1 -0
- package/dist/{loader-ZLKIXjJM.mjs → loader-DtWxxtIg.mjs} +2 -2
- package/dist/{preview-BIVzSnXG.mjs → preview-C6CMQBVH.mjs} +2 -2
- package/dist/preview-DXNW4qs9.mjs +1 -0
- package/dist/public/assets/SettingsDialog-CV-8Vjqz.js +11 -0
- package/dist/public/assets/config-validation-events-MJXadIVB.js +10 -0
- package/dist/public/assets/index-D26Bn8oL.css +1 -0
- package/dist/public/assets/{index--ExYK6aw.js → index-DTPwGyHY.js} +72 -72
- package/dist/public/index.html +3 -3
- package/dist/{repair-mcp-configs-Cpbs7DO6.mjs → repair-mcp-configs-HI7dP1aJ.mjs} +2 -2
- package/dist/{src-DK12uoo0.mjs → src-ChHpOaMx.mjs} +2 -2
- package/dist/start-DQMdsVPS.mjs +1 -0
- package/dist/{start-Ci3v8Z67.mjs → start-Dn5ErPhn.mjs} +2 -2
- package/package.json +1 -1
- package/dist/constants-BKcZ-SZr.mjs +0 -2
- package/dist/init-BROwb5FR.mjs +0 -1
- package/dist/loader-B01x_zMV.mjs +0 -1
- package/dist/preview-f1ZGdsVb.mjs +0 -1
- package/dist/public/assets/SettingsDialog-x6fsBA_3.js +0 -11
- package/dist/public/assets/config-validation-events-DCCNVo39.js +0 -10
- package/dist/public/assets/index-B3_TwSZA.css +0 -1
- package/dist/start-BQOVij1z.mjs +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,d as t,f as n,h as r,i,l as a,m as o,p as s,t as c}from"./init-
|
|
1
|
+
import{c as e,d as t,f as n,h as r,i,l as a,m as o,p as s,t as c}from"./init-CTIvDudd.mjs";import{n as l}from"./loader-DtWxxtIg.mjs";import{n as u}from"./preview-C6CMQBVH.mjs";import{t as d}from"./src-ChHpOaMx.mjs";export{t as ALL_EDITOR_IDS,n as EDITOR_LABELS,s as EDITOR_TARGETS,c as detectInstalledEditors,r as initContent,l as loadConfig,u as previewContent,i as readExistingMcpEntry,o as resolveProjectRoot,e as writeEditorMcpConfig,d as writeProjectAiIntegrations,a as writeUserMcpConfigs};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,o as t,t as n}from"./chunk-FK9Q3tQk.mjs";import{r,t as i}from"./esm-CEs3LWY3.mjs";import{$r as a,D as o,F as s,Gn as c,It as l,Pt as u,Qr as d,ai as f,an as p,di as m,gi as h,hi as g,ii as _,in as v,on as y,pn as b,ri as x,si as S,un as C}from"./dist-BFaejI07.mjs";import{n as w,t as ee}from"./constants-BKcZ-SZr.mjs";import{t as T}from"./is-object-DF0ZeuvD.mjs";import{i as E,o as D,r as te,s as ne,t as O}from"./colors-BNufdynn.mjs";import{t as re}from"./preview-BIVzSnXG.mjs";import{execFileSync as ie}from"node:child_process";import k,{basename as A,dirname as j,isAbsolute as ae,join as M,posix as oe,relative as N,resolve as P,sep as se,win32 as ce}from"node:path";import{cpSync as le,existsSync as F,lstatSync as ue,mkdirSync as I,readFileSync as de,realpathSync as fe,rmSync as pe,writeFileSync as L}from"node:fs";import R from"node:process";import{homedir as z}from"node:os";import{AsyncLocalStorage as me,AsyncResource as he}from"node:async_hooks";import{stripVTControlCharacters as ge,styleText as B}from"node:util";import*as _e from"node:readline";import{randomUUID as ve}from"node:crypto";import{createServer as ye,request as be}from"node:http";function xe(){return R.platform.startsWith(`win`)?!!R.env.CI||!!R.env.WT_SESSION||!!R.env.TERMINUS_SUBLIME||R.env.ConEmuTask===`{cmd::Cmder}`||R.env.TERM_PROGRAM===`Terminus-Sublime`||R.env.TERM_PROGRAM===`vscode`||R.env.TERM===`xterm-256color`||R.env.TERM===`alacritty`||R.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:R.env.TERM!==`linux`}const Se={circleQuestionMark:`(?)`,questionMarkPrefix:`(?)`,square:`█`,squareDarkShade:`▓`,squareMediumShade:`▒`,squareLightShade:`░`,squareTop:`▀`,squareBottom:`▄`,squareLeft:`▌`,squareRight:`▐`,squareCenter:`■`,bullet:`●`,dot:`․`,ellipsis:`…`,pointerSmall:`›`,triangleUp:`▲`,triangleUpSmall:`▴`,triangleDown:`▼`,triangleDownSmall:`▾`,triangleLeftSmall:`◂`,triangleRightSmall:`▸`,home:`⌂`,heart:`♥`,musicNote:`♪`,musicNoteBeamed:`♫`,arrowUp:`↑`,arrowDown:`↓`,arrowLeft:`←`,arrowRight:`→`,arrowLeftRight:`↔`,arrowUpDown:`↕`,almostEqual:`≈`,notEqual:`≠`,lessOrEqual:`≤`,greaterOrEqual:`≥`,identical:`≡`,infinity:`∞`,subscriptZero:`₀`,subscriptOne:`₁`,subscriptTwo:`₂`,subscriptThree:`₃`,subscriptFour:`₄`,subscriptFive:`₅`,subscriptSix:`₆`,subscriptSeven:`₇`,subscriptEight:`₈`,subscriptNine:`₉`,oneHalf:`½`,oneThird:`⅓`,oneQuarter:`¼`,oneFifth:`⅕`,oneSixth:`⅙`,oneEighth:`⅛`,twoThirds:`⅔`,twoFifths:`⅖`,threeQuarters:`¾`,threeFifths:`⅗`,threeEighths:`⅜`,fourFifths:`⅘`,fiveSixths:`⅚`,fiveEighths:`⅝`,sevenEighths:`⅞`,line:`─`,lineBold:`━`,lineDouble:`═`,lineDashed0:`┄`,lineDashed1:`┅`,lineDashed2:`┈`,lineDashed3:`┉`,lineDashed4:`╌`,lineDashed5:`╍`,lineDashed6:`╴`,lineDashed7:`╶`,lineDashed8:`╸`,lineDashed9:`╺`,lineDashed10:`╼`,lineDashed11:`╾`,lineDashed12:`−`,lineDashed13:`–`,lineDashed14:`‐`,lineDashed15:`⁃`,lineVertical:`│`,lineVerticalBold:`┃`,lineVerticalDouble:`║`,lineVerticalDashed0:`┆`,lineVerticalDashed1:`┇`,lineVerticalDashed2:`┊`,lineVerticalDashed3:`┋`,lineVerticalDashed4:`╎`,lineVerticalDashed5:`╏`,lineVerticalDashed6:`╵`,lineVerticalDashed7:`╷`,lineVerticalDashed8:`╹`,lineVerticalDashed9:`╻`,lineVerticalDashed10:`╽`,lineVerticalDashed11:`╿`,lineDownLeft:`┐`,lineDownLeftArc:`╮`,lineDownBoldLeftBold:`┓`,lineDownBoldLeft:`┒`,lineDownLeftBold:`┑`,lineDownDoubleLeftDouble:`╗`,lineDownDoubleLeft:`╖`,lineDownLeftDouble:`╕`,lineDownRight:`┌`,lineDownRightArc:`╭`,lineDownBoldRightBold:`┏`,lineDownBoldRight:`┎`,lineDownRightBold:`┍`,lineDownDoubleRightDouble:`╔`,lineDownDoubleRight:`╓`,lineDownRightDouble:`╒`,lineUpLeft:`┘`,lineUpLeftArc:`╯`,lineUpBoldLeftBold:`┛`,lineUpBoldLeft:`┚`,lineUpLeftBold:`┙`,lineUpDoubleLeftDouble:`╝`,lineUpDoubleLeft:`╜`,lineUpLeftDouble:`╛`,lineUpRight:`└`,lineUpRightArc:`╰`,lineUpBoldRightBold:`┗`,lineUpBoldRight:`┖`,lineUpRightBold:`┕`,lineUpDoubleRightDouble:`╚`,lineUpDoubleRight:`╙`,lineUpRightDouble:`╘`,lineUpDownLeft:`┤`,lineUpBoldDownBoldLeftBold:`┫`,lineUpBoldDownBoldLeft:`┨`,lineUpDownLeftBold:`┥`,lineUpBoldDownLeftBold:`┩`,lineUpDownBoldLeftBold:`┪`,lineUpDownBoldLeft:`┧`,lineUpBoldDownLeft:`┦`,lineUpDoubleDownDoubleLeftDouble:`╣`,lineUpDoubleDownDoubleLeft:`╢`,lineUpDownLeftDouble:`╡`,lineUpDownRight:`├`,lineUpBoldDownBoldRightBold:`┣`,lineUpBoldDownBoldRight:`┠`,lineUpDownRightBold:`┝`,lineUpBoldDownRightBold:`┡`,lineUpDownBoldRightBold:`┢`,lineUpDownBoldRight:`┟`,lineUpBoldDownRight:`┞`,lineUpDoubleDownDoubleRightDouble:`╠`,lineUpDoubleDownDoubleRight:`╟`,lineUpDownRightDouble:`╞`,lineDownLeftRight:`┬`,lineDownBoldLeftBoldRightBold:`┳`,lineDownLeftBoldRightBold:`┯`,lineDownBoldLeftRight:`┰`,lineDownBoldLeftBoldRight:`┱`,lineDownBoldLeftRightBold:`┲`,lineDownLeftRightBold:`┮`,lineDownLeftBoldRight:`┭`,lineDownDoubleLeftDoubleRightDouble:`╦`,lineDownDoubleLeftRight:`╥`,lineDownLeftDoubleRightDouble:`╤`,lineUpLeftRight:`┴`,lineUpBoldLeftBoldRightBold:`┻`,lineUpLeftBoldRightBold:`┷`,lineUpBoldLeftRight:`┸`,lineUpBoldLeftBoldRight:`┹`,lineUpBoldLeftRightBold:`┺`,lineUpLeftRightBold:`┶`,lineUpLeftBoldRight:`┵`,lineUpDoubleLeftDoubleRightDouble:`╩`,lineUpDoubleLeftRight:`╨`,lineUpLeftDoubleRightDouble:`╧`,lineUpDownLeftRight:`┼`,lineUpBoldDownBoldLeftBoldRightBold:`╋`,lineUpDownBoldLeftBoldRightBold:`╈`,lineUpBoldDownLeftBoldRightBold:`╇`,lineUpBoldDownBoldLeftRightBold:`╊`,lineUpBoldDownBoldLeftBoldRight:`╉`,lineUpBoldDownLeftRight:`╀`,lineUpDownBoldLeftRight:`╁`,lineUpDownLeftBoldRight:`┽`,lineUpDownLeftRightBold:`┾`,lineUpBoldDownBoldLeftRight:`╂`,lineUpDownLeftBoldRightBold:`┿`,lineUpBoldDownLeftBoldRight:`╃`,lineUpBoldDownLeftRightBold:`╄`,lineUpDownBoldLeftBoldRight:`╅`,lineUpDownBoldLeftRightBold:`╆`,lineUpDoubleDownDoubleLeftDoubleRightDouble:`╬`,lineUpDoubleDownDoubleLeftRight:`╫`,lineUpDownLeftDoubleRightDouble:`╪`,lineCross:`╳`,lineBackslash:`╲`,lineSlash:`╱`},Ce={tick:`✔`,info:`ℹ`,warning:`⚠`,cross:`✘`,squareSmall:`◻`,squareSmallFilled:`◼`,circle:`◯`,circleFilled:`◉`,circleDotted:`◌`,circleDouble:`◎`,circleCircle:`ⓞ`,circleCross:`ⓧ`,circlePipe:`Ⓘ`,radioOn:`◉`,radioOff:`◯`,checkboxOn:`☒`,checkboxOff:`☐`,checkboxCircleOn:`ⓧ`,checkboxCircleOff:`Ⓘ`,pointer:`❯`,triangleUpOutline:`△`,triangleLeft:`◀`,triangleRight:`▶`,lozenge:`◆`,lozengeOutline:`◇`,hamburger:`☰`,smiley:`㋡`,mustache:`෴`,star:`★`,play:`▶`,nodejs:`⬢`,oneSeventh:`⅐`,oneNinth:`⅑`,oneTenth:`⅒`},we={tick:`√`,info:`i`,warning:`‼`,cross:`×`,squareSmall:`□`,squareSmallFilled:`■`,circle:`( )`,circleFilled:`(*)`,circleDotted:`( )`,circleDouble:`( )`,circleCircle:`(○)`,circleCross:`(×)`,circlePipe:`(│)`,radioOn:`(*)`,radioOff:`( )`,checkboxOn:`[×]`,checkboxOff:`[ ]`,checkboxCircleOn:`(×)`,checkboxCircleOff:`( )`,pointer:`>`,triangleUpOutline:`∆`,triangleLeft:`◄`,triangleRight:`►`,lozenge:`♦`,lozengeOutline:`◊`,hamburger:`≡`,smiley:`☺`,mustache:`┌─┐`,star:`✶`,play:`►`,nodejs:`♦`,oneSeventh:`1/7`,oneNinth:`1/9`,oneTenth:`1/10`},Te={...Se,...Ce},Ee={...Se,...we},V=xe()?Te:Ee;Object.entries(Ce);var De=n(((t,n)=>{n.exports=i;function r(t){let n={defaultWidth:0,output:process.stdout,tty:e(`tty`)};return t?(Object.keys(n).forEach(function(e){t[e]||(t[e]=n[e])}),t):n}function i(e){let t=r(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let e=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(e)&&e!==0)return e}return t.defaultWidth}}));const Oe=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),ke=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,Ae=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141,je=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,Me=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Ne=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,Pe=/\t{1,1000}/y,Fe=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy,Ie=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Le=/\p{M}+/gu,Re={limit:1/0,ellipsis:``},ze=(e,t={},n={})=>{let r=t.limit??1/0,i=t.ellipsis??``,a=t?.ellipsisWidth??(i?ze(i,Re,n).width:0),o=n.controlWidth??0,s=n.tabWidth??8,c=n.emojiWidth??2,l=n.regularWidth??1,u=n.wideWidth??2,d=[[Ie,l],[je,0],[Me,o],[Pe,s],[Fe,c],[Ne,u]],f=0,p=0,m=e.length,h=0,g=!1,_=m,v=Math.max(0,r-a),y=0,b=0,x=0,S=0;outer:for(;;){if(b>y||p>=m&&p>f){let t=e.slice(y,b)||e.slice(f,p);h=0;for(let e of t.replaceAll(Le,``)){let t=e.codePointAt(0)||0;if(S=ke(t)?2:Ae(t)?u:l,x+S>v&&(_=Math.min(_,Math.max(y,f)+h)),x+S>r){g=!0;break outer}h+=e.length,x+=S}y=b=0}if(p>=m)break outer;for(let t=0,n=d.length;t<n;t++){let[n,i]=d[t];if(n.lastIndex=p,n.test(e)){if(h=n===Ne?Oe(e.slice(p,n.lastIndex)):n===Fe?1:n.lastIndex-p,S=h*i,x+S>v&&(_=Math.min(_,p+Math.floor((v-x)/i))),x+S>r){g=!0;break outer}x+=S,y=f,b=p,p=f=n.lastIndex;continue outer}}p+=1}return{width:g?v:x,index:g?_:m,truncated:g,ellipsed:g&&r>=a}},Be={limit:1/0,ellipsis:``,ellipsisWidth:0},H=(e,t={})=>ze(e,Be,t).width,Ve=`]8;;`,He=RegExp(`(?:\\[(?<code>\\d+)m|\\${Ve}(?<uri>.*))`,`y`),Ue=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},We=e=>`[${e}m`,Ge=e=>`${Ve}${e}`,Ke=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:H(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=H(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===``)&&(i=!0,a=t.startsWith(Ve,u+1)),i?a?o===`\x07`&&(i=!1,a=!1):o===`m`&&(i=!1):(s+=d,s===n&&!l.done&&(e.push(``),s=0)),c=l,l=r.next(),u+=o.length}o=e.at(-1),!s&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},qe=e=>{let t=e.split(` `),n=t.length;for(;n&&!H(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},Je=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=e.split(` `),s=[``],c=0;for(let e=0;e<o.length;e++){let r=o[e];if(n.trim!==!1){let e=s.at(-1)??``,t=e.trimStart();e.length!==t.length&&(s[s.length-1]=t,c=H(t))}e!==0&&(c>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),c=0),(c||n.trim===!1)&&(s[s.length-1]+=` `,c++));let i=H(r);if(n.hard&&i>t){let e=t-c,n=1+Math.floor((i-e-1)/t);Math.floor((i-1)/t)<n&&s.push(``),Ke(s,r,t),c=H(s.at(-1)??``);continue}if(c+i>t&&c&&i){if(n.wordWrap===!1&&c<t){Ke(s,r,t),c=H(s.at(-1)??``);continue}s.push(``),c=0}if(c+i>t&&n.wordWrap===!1){Ke(s,r,t),c=H(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>qe(e)));let l=s.join(`
|
|
1
|
+
import{i as e,o as t,t as n}from"./chunk-FK9Q3tQk.mjs";import{r,t as i}from"./esm-CEs3LWY3.mjs";import{$r as a,D as o,F as s,Gn as c,It as l,Pt as u,Qr as d,ai as f,an as p,di as m,gi as h,hi as g,ii as _,in as v,on as y,pn as b,ri as x,si as S,un as C}from"./dist-V31CRf7D.mjs";import{n as w,t as ee}from"./constants-C7p5YUDU.mjs";import{t as T}from"./is-object-DF0ZeuvD.mjs";import{i as E,o as D,r as te,s as ne,t as O}from"./colors-BNufdynn.mjs";import{t as re}from"./preview-C6CMQBVH.mjs";import{execFileSync as ie}from"node:child_process";import k,{basename as A,dirname as j,isAbsolute as ae,join as M,posix as oe,relative as N,resolve as P,sep as se,win32 as ce}from"node:path";import{cpSync as le,existsSync as F,lstatSync as ue,mkdirSync as I,readFileSync as de,realpathSync as fe,rmSync as pe,writeFileSync as L}from"node:fs";import R from"node:process";import{homedir as z}from"node:os";import{AsyncLocalStorage as me,AsyncResource as he}from"node:async_hooks";import{stripVTControlCharacters as ge,styleText as B}from"node:util";import*as _e from"node:readline";import{randomUUID as ve}from"node:crypto";import{createServer as ye,request as be}from"node:http";function xe(){return R.platform.startsWith(`win`)?!!R.env.CI||!!R.env.WT_SESSION||!!R.env.TERMINUS_SUBLIME||R.env.ConEmuTask===`{cmd::Cmder}`||R.env.TERM_PROGRAM===`Terminus-Sublime`||R.env.TERM_PROGRAM===`vscode`||R.env.TERM===`xterm-256color`||R.env.TERM===`alacritty`||R.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:R.env.TERM!==`linux`}const Se={circleQuestionMark:`(?)`,questionMarkPrefix:`(?)`,square:`█`,squareDarkShade:`▓`,squareMediumShade:`▒`,squareLightShade:`░`,squareTop:`▀`,squareBottom:`▄`,squareLeft:`▌`,squareRight:`▐`,squareCenter:`■`,bullet:`●`,dot:`․`,ellipsis:`…`,pointerSmall:`›`,triangleUp:`▲`,triangleUpSmall:`▴`,triangleDown:`▼`,triangleDownSmall:`▾`,triangleLeftSmall:`◂`,triangleRightSmall:`▸`,home:`⌂`,heart:`♥`,musicNote:`♪`,musicNoteBeamed:`♫`,arrowUp:`↑`,arrowDown:`↓`,arrowLeft:`←`,arrowRight:`→`,arrowLeftRight:`↔`,arrowUpDown:`↕`,almostEqual:`≈`,notEqual:`≠`,lessOrEqual:`≤`,greaterOrEqual:`≥`,identical:`≡`,infinity:`∞`,subscriptZero:`₀`,subscriptOne:`₁`,subscriptTwo:`₂`,subscriptThree:`₃`,subscriptFour:`₄`,subscriptFive:`₅`,subscriptSix:`₆`,subscriptSeven:`₇`,subscriptEight:`₈`,subscriptNine:`₉`,oneHalf:`½`,oneThird:`⅓`,oneQuarter:`¼`,oneFifth:`⅕`,oneSixth:`⅙`,oneEighth:`⅛`,twoThirds:`⅔`,twoFifths:`⅖`,threeQuarters:`¾`,threeFifths:`⅗`,threeEighths:`⅜`,fourFifths:`⅘`,fiveSixths:`⅚`,fiveEighths:`⅝`,sevenEighths:`⅞`,line:`─`,lineBold:`━`,lineDouble:`═`,lineDashed0:`┄`,lineDashed1:`┅`,lineDashed2:`┈`,lineDashed3:`┉`,lineDashed4:`╌`,lineDashed5:`╍`,lineDashed6:`╴`,lineDashed7:`╶`,lineDashed8:`╸`,lineDashed9:`╺`,lineDashed10:`╼`,lineDashed11:`╾`,lineDashed12:`−`,lineDashed13:`–`,lineDashed14:`‐`,lineDashed15:`⁃`,lineVertical:`│`,lineVerticalBold:`┃`,lineVerticalDouble:`║`,lineVerticalDashed0:`┆`,lineVerticalDashed1:`┇`,lineVerticalDashed2:`┊`,lineVerticalDashed3:`┋`,lineVerticalDashed4:`╎`,lineVerticalDashed5:`╏`,lineVerticalDashed6:`╵`,lineVerticalDashed7:`╷`,lineVerticalDashed8:`╹`,lineVerticalDashed9:`╻`,lineVerticalDashed10:`╽`,lineVerticalDashed11:`╿`,lineDownLeft:`┐`,lineDownLeftArc:`╮`,lineDownBoldLeftBold:`┓`,lineDownBoldLeft:`┒`,lineDownLeftBold:`┑`,lineDownDoubleLeftDouble:`╗`,lineDownDoubleLeft:`╖`,lineDownLeftDouble:`╕`,lineDownRight:`┌`,lineDownRightArc:`╭`,lineDownBoldRightBold:`┏`,lineDownBoldRight:`┎`,lineDownRightBold:`┍`,lineDownDoubleRightDouble:`╔`,lineDownDoubleRight:`╓`,lineDownRightDouble:`╒`,lineUpLeft:`┘`,lineUpLeftArc:`╯`,lineUpBoldLeftBold:`┛`,lineUpBoldLeft:`┚`,lineUpLeftBold:`┙`,lineUpDoubleLeftDouble:`╝`,lineUpDoubleLeft:`╜`,lineUpLeftDouble:`╛`,lineUpRight:`└`,lineUpRightArc:`╰`,lineUpBoldRightBold:`┗`,lineUpBoldRight:`┖`,lineUpRightBold:`┕`,lineUpDoubleRightDouble:`╚`,lineUpDoubleRight:`╙`,lineUpRightDouble:`╘`,lineUpDownLeft:`┤`,lineUpBoldDownBoldLeftBold:`┫`,lineUpBoldDownBoldLeft:`┨`,lineUpDownLeftBold:`┥`,lineUpBoldDownLeftBold:`┩`,lineUpDownBoldLeftBold:`┪`,lineUpDownBoldLeft:`┧`,lineUpBoldDownLeft:`┦`,lineUpDoubleDownDoubleLeftDouble:`╣`,lineUpDoubleDownDoubleLeft:`╢`,lineUpDownLeftDouble:`╡`,lineUpDownRight:`├`,lineUpBoldDownBoldRightBold:`┣`,lineUpBoldDownBoldRight:`┠`,lineUpDownRightBold:`┝`,lineUpBoldDownRightBold:`┡`,lineUpDownBoldRightBold:`┢`,lineUpDownBoldRight:`┟`,lineUpBoldDownRight:`┞`,lineUpDoubleDownDoubleRightDouble:`╠`,lineUpDoubleDownDoubleRight:`╟`,lineUpDownRightDouble:`╞`,lineDownLeftRight:`┬`,lineDownBoldLeftBoldRightBold:`┳`,lineDownLeftBoldRightBold:`┯`,lineDownBoldLeftRight:`┰`,lineDownBoldLeftBoldRight:`┱`,lineDownBoldLeftRightBold:`┲`,lineDownLeftRightBold:`┮`,lineDownLeftBoldRight:`┭`,lineDownDoubleLeftDoubleRightDouble:`╦`,lineDownDoubleLeftRight:`╥`,lineDownLeftDoubleRightDouble:`╤`,lineUpLeftRight:`┴`,lineUpBoldLeftBoldRightBold:`┻`,lineUpLeftBoldRightBold:`┷`,lineUpBoldLeftRight:`┸`,lineUpBoldLeftBoldRight:`┹`,lineUpBoldLeftRightBold:`┺`,lineUpLeftRightBold:`┶`,lineUpLeftBoldRight:`┵`,lineUpDoubleLeftDoubleRightDouble:`╩`,lineUpDoubleLeftRight:`╨`,lineUpLeftDoubleRightDouble:`╧`,lineUpDownLeftRight:`┼`,lineUpBoldDownBoldLeftBoldRightBold:`╋`,lineUpDownBoldLeftBoldRightBold:`╈`,lineUpBoldDownLeftBoldRightBold:`╇`,lineUpBoldDownBoldLeftRightBold:`╊`,lineUpBoldDownBoldLeftBoldRight:`╉`,lineUpBoldDownLeftRight:`╀`,lineUpDownBoldLeftRight:`╁`,lineUpDownLeftBoldRight:`┽`,lineUpDownLeftRightBold:`┾`,lineUpBoldDownBoldLeftRight:`╂`,lineUpDownLeftBoldRightBold:`┿`,lineUpBoldDownLeftBoldRight:`╃`,lineUpBoldDownLeftRightBold:`╄`,lineUpDownBoldLeftBoldRight:`╅`,lineUpDownBoldLeftRightBold:`╆`,lineUpDoubleDownDoubleLeftDoubleRightDouble:`╬`,lineUpDoubleDownDoubleLeftRight:`╫`,lineUpDownLeftDoubleRightDouble:`╪`,lineCross:`╳`,lineBackslash:`╲`,lineSlash:`╱`},Ce={tick:`✔`,info:`ℹ`,warning:`⚠`,cross:`✘`,squareSmall:`◻`,squareSmallFilled:`◼`,circle:`◯`,circleFilled:`◉`,circleDotted:`◌`,circleDouble:`◎`,circleCircle:`ⓞ`,circleCross:`ⓧ`,circlePipe:`Ⓘ`,radioOn:`◉`,radioOff:`◯`,checkboxOn:`☒`,checkboxOff:`☐`,checkboxCircleOn:`ⓧ`,checkboxCircleOff:`Ⓘ`,pointer:`❯`,triangleUpOutline:`△`,triangleLeft:`◀`,triangleRight:`▶`,lozenge:`◆`,lozengeOutline:`◇`,hamburger:`☰`,smiley:`㋡`,mustache:`෴`,star:`★`,play:`▶`,nodejs:`⬢`,oneSeventh:`⅐`,oneNinth:`⅑`,oneTenth:`⅒`},we={tick:`√`,info:`i`,warning:`‼`,cross:`×`,squareSmall:`□`,squareSmallFilled:`■`,circle:`( )`,circleFilled:`(*)`,circleDotted:`( )`,circleDouble:`( )`,circleCircle:`(○)`,circleCross:`(×)`,circlePipe:`(│)`,radioOn:`(*)`,radioOff:`( )`,checkboxOn:`[×]`,checkboxOff:`[ ]`,checkboxCircleOn:`(×)`,checkboxCircleOff:`( )`,pointer:`>`,triangleUpOutline:`∆`,triangleLeft:`◄`,triangleRight:`►`,lozenge:`♦`,lozengeOutline:`◊`,hamburger:`≡`,smiley:`☺`,mustache:`┌─┐`,star:`✶`,play:`►`,nodejs:`♦`,oneSeventh:`1/7`,oneNinth:`1/9`,oneTenth:`1/10`},Te={...Se,...Ce},Ee={...Se,...we},V=xe()?Te:Ee;Object.entries(Ce);var De=n(((t,n)=>{n.exports=i;function r(t){let n={defaultWidth:0,output:process.stdout,tty:e(`tty`)};return t?(Object.keys(n).forEach(function(e){t[e]||(t[e]=n[e])}),t):n}function i(e){let t=r(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let e=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(e)&&e!==0)return e}return t.defaultWidth}}));const Oe=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),ke=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,Ae=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141,je=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,Me=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Ne=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,Pe=/\t{1,1000}/y,Fe=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy,Ie=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Le=/\p{M}+/gu,Re={limit:1/0,ellipsis:``},ze=(e,t={},n={})=>{let r=t.limit??1/0,i=t.ellipsis??``,a=t?.ellipsisWidth??(i?ze(i,Re,n).width:0),o=n.controlWidth??0,s=n.tabWidth??8,c=n.emojiWidth??2,l=n.regularWidth??1,u=n.wideWidth??2,d=[[Ie,l],[je,0],[Me,o],[Pe,s],[Fe,c],[Ne,u]],f=0,p=0,m=e.length,h=0,g=!1,_=m,v=Math.max(0,r-a),y=0,b=0,x=0,S=0;outer:for(;;){if(b>y||p>=m&&p>f){let t=e.slice(y,b)||e.slice(f,p);h=0;for(let e of t.replaceAll(Le,``)){let t=e.codePointAt(0)||0;if(S=ke(t)?2:Ae(t)?u:l,x+S>v&&(_=Math.min(_,Math.max(y,f)+h)),x+S>r){g=!0;break outer}h+=e.length,x+=S}y=b=0}if(p>=m)break outer;for(let t=0,n=d.length;t<n;t++){let[n,i]=d[t];if(n.lastIndex=p,n.test(e)){if(h=n===Ne?Oe(e.slice(p,n.lastIndex)):n===Fe?1:n.lastIndex-p,S=h*i,x+S>v&&(_=Math.min(_,p+Math.floor((v-x)/i))),x+S>r){g=!0;break outer}x+=S,y=f,b=p,p=f=n.lastIndex;continue outer}}p+=1}return{width:g?v:x,index:g?_:m,truncated:g,ellipsed:g&&r>=a}},Be={limit:1/0,ellipsis:``,ellipsisWidth:0},H=(e,t={})=>ze(e,Be,t).width,Ve=`]8;;`,He=RegExp(`(?:\\[(?<code>\\d+)m|\\${Ve}(?<uri>.*))`,`y`),Ue=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},We=e=>`[${e}m`,Ge=e=>`${Ve}${e}`,Ke=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:H(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=H(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===``)&&(i=!0,a=t.startsWith(Ve,u+1)),i?a?o===`\x07`&&(i=!1,a=!1):o===`m`&&(i=!1):(s+=d,s===n&&!l.done&&(e.push(``),s=0)),c=l,l=r.next(),u+=o.length}o=e.at(-1),!s&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},qe=e=>{let t=e.split(` `),n=t.length;for(;n&&!H(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},Je=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=e.split(` `),s=[``],c=0;for(let e=0;e<o.length;e++){let r=o[e];if(n.trim!==!1){let e=s.at(-1)??``,t=e.trimStart();e.length!==t.length&&(s[s.length-1]=t,c=H(t))}e!==0&&(c>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),c=0),(c||n.trim===!1)&&(s[s.length-1]+=` `,c++));let i=H(r);if(n.hard&&i>t){let e=t-c,n=1+Math.floor((i-e-1)/t);Math.floor((i-1)/t)<n&&s.push(``),Ke(s,r,t),c=H(s.at(-1)??``);continue}if(c+i>t&&c&&i){if(n.wordWrap===!1&&c<t){Ke(s,r,t),c=H(s.at(-1)??``);continue}s.push(``),c=0}if(c+i>t&&n.wordWrap===!1){Ke(s,r,t),c=H(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>qe(e)));let l=s.join(`
|
|
2
2
|
`),u=!1;for(let e=0;e<l.length;e++){let t=l[e];if(r+=t,u)u=!1;else if(u=t>=`\ud800`&&t<=`\udbff`,u)continue;if(t===`\x1B`||t===``){He.lastIndex=e+1;let t=He.exec(l)?.groups;if(t?.code!==void 0){let e=Number.parseFloat(t.code);i=e===39?void 0:e}else t?.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}if(l[e+1]===`
|
|
3
3
|
`){a&&(r+=Ge(``));let e=i?Ue(i):void 0;i&&e&&(r+=We(e))}else t===`
|
|
4
4
|
`&&(i&&Ue(i)&&(r+=We(i)),a&&(r+=Ge(a)))}return r},Ye=/\r?\n/;function Xe(e,t,n){return String(e).normalize().split(Ye).map(e=>Je(e,t,n)).join(`
|
|
@@ -400,9 +400,9 @@ last-spawn-error.log
|
|
|
400
400
|
# drafts/ # exclude a directory
|
|
401
401
|
# *.draft.md # exclude files matching a pattern
|
|
402
402
|
# !keep.md # re-include a file .gitignore excluded
|
|
403
|
-
`,`.okignore`)?r.push(`.okignore`):a.push(`.okignore`),{created:r,updated:i,skipped:a}}function $n(e,t){let n=N(t,e);return n.length>0&&!n.startsWith(`..`)&&!ae(n)}const er=e=>{try{let t=ie(`git`,[`rev-parse`,`--show-toplevel`],{cwd:e,encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim();return t.length>0?t:null}catch{return null}};function tr(e,t={}){let n=t.homeDir??z(),r=t.gitTopLevel??er,i=P(e),a;try{a=fe(i)}catch{a=i}let o=a,s=0;for(;s<30&&!(o===n||o===`/`||o===``);){if(b(o))return{projectRoot:o,defaultContentDir:`.`,ancestorPromoted:o!==a,gitRootPromoted:!1};let e=j(o);if(e===o)break;o=e,s+=1}let c=r(a);return c!==null&&$n(c,n)?c===a?{projectRoot:i,defaultContentDir:`.`,ancestorPromoted:!1,gitRootPromoted:!1}:{projectRoot:c,defaultContentDir:`.`,ancestorPromoted:!1,gitRootPromoted:!0}:{projectRoot:i,defaultContentDir:`.`,ancestorPromoted:!1,gitRootPromoted:!1}}const nr=d,Z=x,rr=[`-y`,`@inkeep/open-knowledge@latest`,`mcp`],ir={MCP_DEBUG:`1`,OK_LOG_FILE:`/tmp/ok-mcp.log`};function ar(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=P(e);if(A(t)===`cli.mjs`&&A(j(t))===`dist`)return t;let n=t.split(se),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return M(i.length===0?se:i.join(se),`packages`,`cli`,`dist`,`cli.mjs`)}function or(e={}){return e.cliPath?{command:e.cliPath,args:[`mcp`]}:e.mode===`dev`?{command:`node`,args:[ar(),`mcp`],env:{...ir}}:{command:`npx`,args:[...rr]}}function sr(e){return e===`win32`?ce:oe}function cr(e={}){let t=e.platformName??process.platform,n=e.home??z();return sr(t).join(n,`.claude.json`)}function lr(e={}){let t=e.platformName??process.platform,n=e.home??z(),r=e.env??process.env;if(t===`darwin`)return oe.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??ce.join(n,`AppData`,`Roaming`);return ce.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function ur(e={}){let t=e.platformName??process.platform,n=e.home??z();return sr(t).join(n,`.cursor`,`mcp.json`)}function dr(e={}){let t=e.platformName??process.platform,n=e.home??z();return(e.env??process.env).CODEX_HOME??sr(t).join(n,`.codex`)}function fr(e={}){return sr(e.platformName??process.platform).join(dr(e),`config.toml`)}function pr(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>pr(e,t[n]));if(T(e)&&T(t)){let n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length&&n.every((e,t)=>e===r[t])&&n.every(n=>pr(e[n],t[n]))}return!1}function mr(e,t){return Object.entries(t).every(([t,n])=>pr(e[t],n))}function hr(e,t){return{...e,...t}}function gr(e){return{...e,isCompatible(t,n,r){return mr(t,e.buildEntry(n,r))},mergeManagedFields(t,n,r){return hr(t,e.buildEntry(n,r))}}}const Q={claude:gr({id:`claude`,label:Z.claude,configPath:(e,t)=>cr({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>M(t??z(),`.claude`),projectConfigPath:e=>M(e,`.mcp.json`),projectSkillPath:e=>M(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)}),"claude-desktop":gr({id:`claude-desktop`,label:Z[`claude-desktop`],configPath:(e,t)=>lr({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>j(lr({home:t}))}),cursor:gr({id:`cursor`,label:Z.cursor,configPath:(e,t)=>ur({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>j(ur({home:t})),projectConfigPath:e=>M(e,`.cursor`,`mcp.json`),projectSkillPath:e=>M(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)}),codex:gr({id:`codex`,label:Z.codex,configPath:(e,t)=>fr({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>j(fr({home:t})),projectConfigPath:e=>M(e,`.codex`,`config.toml`)})};function _r(e){let t=e.filter(e=>!Object.hasOwn(Q,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${nr.join(`, `)}`);return e.map(e=>Q[e])}function $(e,t,n,r,i){let a=`urn:uuid:${ve()}`;if(e.headersSent||e.writableEnded||e.destroyed){console.error(`[ok ui] emitProblem called after headers sent — suppressed`,{type:n,status:t,instance:a});return}let o={type:n,title:r,status:t,instance:a,...i===void 0?{}:{detail:i}},s=S.safeParse(o);if(!s.success){console.error(`[ok ui] emitProblem produced an invalid ProblemDetails body:`,{issues:s.error.issues,originalStatus:t,body:o}),e.writeHead(500,{"Content-Type":`application/problem+json`,"X-Content-Type-Options":`nosniff`,"Cache-Control":`no-store`}),e.end(JSON.stringify({type:`urn:ok:error:internal-server-error`,title:`Internal server error.`,status:500,instance:a}));return}e.writeHead(t,{"Content-Type":`application/problem+json`,"X-Content-Type-Options":`nosniff`,"Cache-Control":`no-store`}),e.end(JSON.stringify(o))}const vr=1e4;function yr(e,t){let n=e.socket?.remoteAddress;if(n!==void 0&&!C(n))return $(t,403,`urn:ok:error:loopback-required`,`Request must originate from a loopback address.`),!0;if(!y(e.headers.host))return $(t,403,`urn:ok:error:host-not-allowed`,`Host header is not in the loopback allowlist.`),!0;let r=e.headers.origin;return r!==void 0&&!p(r)?($(t,403,`urn:ok:error:invalid-origin`,`Origin header is not in the loopback allowlist.`),!0):!1}const br=3e4,xr=[`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailer`,`transfer-encoding`,`upgrade`,`cookie`,`set-cookie`];async function Sr(e){let t=e.upstreamTimeoutMs??vr,n=ye((n,r)=>{yr(n,r)||wr(n,r,e.upstreamHost,e.upstreamPort,t)});await new Promise((t,r)=>{let i=e=>r(e);n.once(`error`,i),n.listen(e.listenPort,e.host,()=>{n.off(`error`,i),t()})});let r=n.address();return{httpServer:n,port:typeof r==`object`&&r?r.port:e.listenPort,close:()=>new Promise(e=>{n.close(()=>e()),n.closeIdleConnections()})}}function Cr(e,t,n){wr(e,t,n.upstreamHost,n.upstreamPort,n.upstreamTimeoutMs??vr)}function wr(e,t,n,r,i){let a={...e.headers};delete a.host;for(let e of xr)delete a[e];e.setTimeout(br,()=>{if(t.headersSent)try{t.end()}catch{}else try{$(t,408,`urn:ok:error:request-timeout`,`Proxy request exceeded the per-request deadline.`,`Slow-loris-class: client did not finish within ${br/1e3}s.`)}catch{}try{e.socket?.destroy()}catch{}});let o=be({host:n,port:r,method:e.method,path:e.url,headers:{...a,host:`${n}:${r}`}},e=>{let n={...e.headers};for(let e of xr)delete n[e];t.writeHead(e.statusCode??502,n),e.pipe(t),e.once(`error`,()=>{try{t.end()}catch{}})});i>0&&o.setTimeout(i,()=>{if(!t.headersSent)$(t,504,`urn:ok:error:gateway-timeout`,`Upstream did not respond before the gateway deadline.`,`Upstream timeout: ${i/1e3}s elapsed without a response.`);else try{t.end()}catch{}o.destroy()}),o.on(`error`,()=>{if(!t.headersSent)$(t,502,`urn:ok:error:collab-server-not-running`,`Collab server is unreachable.`,`Upstream connection failed or dropped before a response was received.`);else try{t.end()}catch{}}),e.on(`error`,()=>{o.destroy()}),e.pipe(o)}const Tr=39847,Er=39848;async function Dr(e){await Promise.all(e.map(e=>new Promise(t=>{e.close(()=>t())})))}async function Or(e){let{existsSync:t}=await import(`node:fs`),{createServer:n}=await import(`node:http`),{resolve:r}=await import(`node:path`),{acquireUiLock:i,createAssetServeMiddleware:o,createContentFilter:s,readServerLock:c,releaseUiLock:l,updateUiLockPort:u}=await import(`./dist-JvyJrwkx.mjs`),{default:d}=await import(`./build-B4ZT2GMK.mjs`),{resolveContentDir:p,resolveLockDir:h}=await import(`./dist-JvyJrwkx.mjs`),g=p(e.config,e.cwd),v=h(e.cwd);i(v,{port:0,worktreeRoot:e.cwd});let y=import.meta.dirname??new URL(`.`,import.meta.url).pathname,b=[r(y,`public`),r(y,`../../app/dist`),r(y,`../../../app/dist`)].find(e=>t(e)),x=b?d(b,{single:!0,gzip:!0,immutable:!0,extensions:[]}):null,S=t(g)?o({contentFilter:s({projectDir:e.cwd,contentDir:g}),contentSirv:d(g,{dotfiles:!1,dev:!0,extensions:[]}),inlineExtensions:f,assetExtensions:a,blocklistExtensions:_}):null,C=e.port,w=null,ee=(e,t)=>{let n=e.url?.split(`?`)[0];if((n===`/`||n===``)&&(e.url=`/index.html`),!(n?.startsWith(`/api/`)&&yr(e,t))){if(n===`/api/config`&&(e.method===`GET`||e.method===`HEAD`)){w?.();let n=c(v),r=n&&n.port>0?`ws://localhost:${n.port}/collab`:null,i=JSON.stringify({collabUrl:r,previewUrl:null,port:C});t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,e.method===`HEAD`?t.end():t.end(i);return}if(n?.startsWith(`/api/`)){w?.();let r=c(v);if(!r||r.port<=0){$(t,503,`urn:ok:error:collab-server-not-running`,"Collab server not running. Start `ok start` or run `ok status`.",`Path: ${n}`);return}Cr(e,t,{upstreamHost:`localhost`,upstreamPort:r.port});return}if(S){S(e,t,()=>{x?x(e,t):kr(t,n)});return}if(x){x(e,t);return}kr(t,n)}},T=e.host===void 0?[`::1`,`127.0.0.1`]:[e.host],E=[],D=e.port,te=e=>e instanceof Error&&e.code===`EADDRINUSE`,ne=async()=>{await Promise.all(E.splice(0).map(e=>new Promise(t=>{try{e.close(()=>t())}catch{t()}})))},O=async e=>{D=e;for(let e of T){let t=n(ee);E.push(t),await new Promise((n,r)=>{let i=e=>r(e);t.once(`error`,i),t.listen(D,e,()=>{t.off(`error`,i);let e=t.address();typeof e==`object`&&e&&(D=e.port),n()})})}};try{try{await O(e.port)}catch(t){if(e.fallbackToKernel===!0&&te(t))await ne(),await O(0);else throw t}}catch(e){await ne();try{l(v)}catch{}throw e}let re=D;C=re,u(v,re);let ie=e.scheduler??m,k=e.safetyNetMs??432e5,A=null,j=!1,ae=!1,M=()=>{j||(j=!0,A!==null&&(ie.clearTimeout(A),A=null))},oe=()=>{if(M(),!ae){ae=!0;try{l(v)}catch{}}},N=()=>{j||k<=0||(A!==null&&(ie.clearTimeout(A),A=null),A=ie.setTimeout(()=>{A=null,console.warn(`[ui] safety-net (${k}ms) reached — shutting down (D-025 backstop)`);try{e.onSafetyNet?.()}catch{}for(let e of E)try{e.close()}catch{}oe()},k))},P=()=>{j||k<=0||N()};return w=P,N(),{httpServers:E,port:re,release:oe,detachSafetyNet:M,nudgeSafetyNet:P}}function kr(e,t){$(e,404,`urn:ok:error:not-found`,`Resource not found.`,t===void 0?void 0:`Path: ${t}`)}function Ar(e,t){if(e!==void 0){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<0||t>65535)throw Error(`Invalid --port value '${e}'`);return{port:t,fallbackToKernel:!1}}if(t!==void 0&&t!==``){let e=Number.parseInt(t,10);if(Number.isNaN(e)||e<0||e>65535)throw Error(`Invalid PORT env value '${t}'`);return{port:e,fallbackToKernel:!1}}return{port:Tr,fallbackToKernel:!0}}async function jr(e){let t=e.readLock??(async()=>{let{readUiLock:t}=await import(`./dist-JvyJrwkx.mjs`);return t(e.lockDir)}),n=await t();if(!n)throw Error(`UI lock collision reported but the lock disappeared before handling — retry acquiring.`);if(n.port===e.requestedPort&&n.port>0)return{mode:`already-running`,port:n.port};let r=n.port;if(r===0){let n=Date.now()+(e.pollDeadlineMs??2e3),i=e.pollIntervalMs??100;for(;Date.now()<n;){await new Promise(e=>{setTimeout(e,i)});let e=await t();if(e&&e.port>0){r=e.port;break}}if(r===0)throw Error("UI did not bind within 2s; run `ok clean`");if(r===e.requestedPort)return{mode:`already-running`,port:r}}return{mode:`proxy`,handle:await Sr({listenPort:e.requestedPort,host:e.host,upstreamHost:`localhost`,upstreamPort:r}),upstreamPort:r}}function Mr(e){return new i(`ui`).description(`Serve the Open Knowledge React editor UI`).option(`-p, --port <port>`,`UI port (default: $PORT env or ${Tr}, kernel-allocated fallback if busy)`).option(`-H, --host <host>`,"UI host. Default: two-socket loopback bind (`[::1]` + `127.0.0.1`) so cross-family collisions fail loud (D-033). Pass an explicit host (e.g. `127.0.0.1`, `0.0.0.0`) to bind a single socket on that host.").action(async t=>{let{dim:n}=await import(`./colors-T3xmlXQT.mjs`),{UiLockCollisionError:r}=await import(`./dist-JvyJrwkx.mjs`),{resolveLockDir:i}=await import(`./dist-JvyJrwkx.mjs`),a=e(),o=t.host,s;try{s=Ar(t.port,process.env.PORT)}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exitCode=1;return}let c=s.port;try{let e=await Or({config:a,cwd:process.cwd(),port:c,fallbackToKernel:s.fallbackToKernel,host:o}),t=o===void 0||o===`::`||o===`0.0.0.0`?`localhost`:o;console.log(`${n(`[ui]`)} listening on http://${t}:${e.port}`);let r=!1,i=t=>{if(r)return;r=!0,console.log(n(`\n[ui] Shutting down (${t})`)),e.detachSafetyNet();let i=()=>{try{e.release()}finally{process.exit(process.exitCode??0)}};Dr(e.httpServers).then(i,i),setTimeout(i,2e3).unref()};process.once(`SIGINT`,()=>i(`SIGINT`)),process.once(`SIGTERM`,()=>i(`SIGTERM`));return}catch(e){if(!(e instanceof r))throw e;let t=i(process.cwd()),a=o??`localhost`,s;try{s=await jr({requestedPort:c,host:a,lockDir:t})}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}s.mode===`already-running`&&(console.log(`UI already running at http://${a}:${s.port}`),process.exit(0)),console.log(`UI running at http://${a}:${s.upstreamPort}; acting as HTTP proxy on port ${s.handle.port}`);let l=!1,u=e=>{l||(l=!0,console.log(n(`\n[ui-proxy] Shutting down (${e})`)),s.handle.close().finally(()=>process.exit(process.exitCode??0)),setTimeout(()=>process.exit(process.exitCode??0),2e3).unref())};process.once(`SIGINT`,()=>u(`SIGINT`)),process.once(`SIGTERM`,()=>u(`SIGTERM`))}})}function Nr(e){if(!F(e))return{};let t=de(e,`utf-8`).trim();if(t===``)return{};try{let n=JSON.parse(t);if(T(n))return n;throw Error(`${e} root must be a JSON object`)}catch(t){throw t instanceof SyntaxError?Error(`${e} contains invalid JSON: ${t.message}`):t}}function Pr(e){if(!F(e))return{};let t=de(e,`utf-8`).trim();if(t===``)return{};try{let n=In(t);if(T(n))return n;throw Error(`${e} root must be a TOML table`)}catch(t){throw Error(`${e} contains invalid TOML: ${t instanceof Error?t.message:String(t)}`)}}function Fr(e,t){I(j(e),{recursive:!0}),L(e,`${JSON.stringify(t,null,2)}\n`,`utf-8`)}function Ir(e,t){I(j(e),{recursive:!0});let n=Gn(t);L(e,n.endsWith(`
|
|
403
|
+
`,`.okignore`)?r.push(`.okignore`):a.push(`.okignore`),{created:r,updated:i,skipped:a}}function $n(e,t){let n=N(t,e);return n.length>0&&!n.startsWith(`..`)&&!ae(n)}const er=e=>{try{let t=ie(`git`,[`rev-parse`,`--show-toplevel`],{cwd:e,encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim();return t.length>0?t:null}catch{return null}};function tr(e,t={}){let n=t.homeDir??z(),r=t.gitTopLevel??er,i=P(e),a;try{a=fe(i)}catch{a=i}let o=a,s=0;for(;s<30&&!(o===n||o===`/`||o===``);){if(b(o))return{projectRoot:o,defaultContentDir:`.`,ancestorPromoted:o!==a,gitRootPromoted:!1};let e=j(o);if(e===o)break;o=e,s+=1}let c=r(a);return c!==null&&$n(c,n)?c===a?{projectRoot:i,defaultContentDir:`.`,ancestorPromoted:!1,gitRootPromoted:!1}:{projectRoot:c,defaultContentDir:`.`,ancestorPromoted:!1,gitRootPromoted:!0}:{projectRoot:i,defaultContentDir:`.`,ancestorPromoted:!1,gitRootPromoted:!1}}const nr=d,Z=x,rr=[`-y`,`@inkeep/open-knowledge@latest`,`mcp`],ir={MCP_DEBUG:`1`,OK_LOG_FILE:`/tmp/ok-mcp.log`};function ar(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=P(e);if(A(t)===`cli.mjs`&&A(j(t))===`dist`)return t;let n=t.split(se),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return M(i.length===0?se:i.join(se),`packages`,`cli`,`dist`,`cli.mjs`)}function or(e={}){return e.cliPath?{command:e.cliPath,args:[`mcp`]}:e.mode===`dev`?{command:`node`,args:[ar(),`mcp`],env:{...ir}}:{command:`npx`,args:[...rr]}}function sr(e){return e===`win32`?ce:oe}function cr(e={}){let t=e.platformName??process.platform,n=e.home??z();return sr(t).join(n,`.claude.json`)}function lr(e={}){let t=e.platformName??process.platform,n=e.home??z(),r=e.env??process.env;if(t===`darwin`)return oe.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??ce.join(n,`AppData`,`Roaming`);return ce.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function ur(e={}){let t=e.platformName??process.platform,n=e.home??z();return sr(t).join(n,`.cursor`,`mcp.json`)}function dr(e={}){let t=e.platformName??process.platform,n=e.home??z();return(e.env??process.env).CODEX_HOME??sr(t).join(n,`.codex`)}function fr(e={}){return sr(e.platformName??process.platform).join(dr(e),`config.toml`)}function pr(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>pr(e,t[n]));if(T(e)&&T(t)){let n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length&&n.every((e,t)=>e===r[t])&&n.every(n=>pr(e[n],t[n]))}return!1}function mr(e,t){return Object.entries(t).every(([t,n])=>pr(e[t],n))}function hr(e,t){return{...e,...t}}function gr(e){return{...e,isCompatible(t,n,r){return mr(t,e.buildEntry(n,r))},mergeManagedFields(t,n,r){return hr(t,e.buildEntry(n,r))}}}const Q={claude:gr({id:`claude`,label:Z.claude,configPath:(e,t)=>cr({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>M(t??z(),`.claude`),projectConfigPath:e=>M(e,`.mcp.json`),projectSkillPath:e=>M(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)}),"claude-desktop":gr({id:`claude-desktop`,label:Z[`claude-desktop`],configPath:(e,t)=>lr({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>j(lr({home:t}))}),cursor:gr({id:`cursor`,label:Z.cursor,configPath:(e,t)=>ur({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>j(ur({home:t})),projectConfigPath:e=>M(e,`.cursor`,`mcp.json`),projectSkillPath:e=>M(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)}),codex:gr({id:`codex`,label:Z.codex,configPath:(e,t)=>fr({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>o,buildEntry:(e,t)=>or(t),scope:`global`,detectPath:(e,t)=>j(fr({home:t})),projectConfigPath:e=>M(e,`.codex`,`config.toml`)})};function _r(e){let t=e.filter(e=>!Object.hasOwn(Q,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${nr.join(`, `)}`);return e.map(e=>Q[e])}function $(e,t,n,r,i){let a=`urn:uuid:${ve()}`;if(e.headersSent||e.writableEnded||e.destroyed){console.error(`[ok ui] emitProblem called after headers sent — suppressed`,{type:n,status:t,instance:a});return}let o={type:n,title:r,status:t,instance:a,...i===void 0?{}:{detail:i}},s=S.safeParse(o);if(!s.success){console.error(`[ok ui] emitProblem produced an invalid ProblemDetails body:`,{issues:s.error.issues,originalStatus:t,body:o}),e.writeHead(500,{"Content-Type":`application/problem+json`,"X-Content-Type-Options":`nosniff`,"Cache-Control":`no-store`}),e.end(JSON.stringify({type:`urn:ok:error:internal-server-error`,title:`Internal server error.`,status:500,instance:a}));return}e.writeHead(t,{"Content-Type":`application/problem+json`,"X-Content-Type-Options":`nosniff`,"Cache-Control":`no-store`}),e.end(JSON.stringify(o))}const vr=1e4;function yr(e,t){let n=e.socket?.remoteAddress;if(n!==void 0&&!C(n))return $(t,403,`urn:ok:error:loopback-required`,`Request must originate from a loopback address.`),!0;if(!y(e.headers.host))return $(t,403,`urn:ok:error:host-not-allowed`,`Host header is not in the loopback allowlist.`),!0;let r=e.headers.origin;return r!==void 0&&!p(r)?($(t,403,`urn:ok:error:invalid-origin`,`Origin header is not in the loopback allowlist.`),!0):!1}const br=3e4,xr=[`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailer`,`transfer-encoding`,`upgrade`,`cookie`,`set-cookie`];async function Sr(e){let t=e.upstreamTimeoutMs??vr,n=ye((n,r)=>{yr(n,r)||wr(n,r,e.upstreamHost,e.upstreamPort,t)});await new Promise((t,r)=>{let i=e=>r(e);n.once(`error`,i),n.listen(e.listenPort,e.host,()=>{n.off(`error`,i),t()})});let r=n.address();return{httpServer:n,port:typeof r==`object`&&r?r.port:e.listenPort,close:()=>new Promise(e=>{n.close(()=>e()),n.closeIdleConnections()})}}function Cr(e,t,n){wr(e,t,n.upstreamHost,n.upstreamPort,n.upstreamTimeoutMs??vr)}function wr(e,t,n,r,i){let a={...e.headers};delete a.host;for(let e of xr)delete a[e];e.setTimeout(br,()=>{if(t.headersSent)try{t.end()}catch{}else try{$(t,408,`urn:ok:error:request-timeout`,`Proxy request exceeded the per-request deadline.`,`Slow-loris-class: client did not finish within ${br/1e3}s.`)}catch{}try{e.socket?.destroy()}catch{}});let o=be({host:n,port:r,method:e.method,path:e.url,headers:{...a,host:`${n}:${r}`}},e=>{let n={...e.headers};for(let e of xr)delete n[e];t.writeHead(e.statusCode??502,n),e.pipe(t),e.once(`error`,()=>{try{t.end()}catch{}})});i>0&&o.setTimeout(i,()=>{if(!t.headersSent)$(t,504,`urn:ok:error:gateway-timeout`,`Upstream did not respond before the gateway deadline.`,`Upstream timeout: ${i/1e3}s elapsed without a response.`);else try{t.end()}catch{}o.destroy()}),o.on(`error`,()=>{if(!t.headersSent)$(t,502,`urn:ok:error:collab-server-not-running`,`Collab server is unreachable.`,`Upstream connection failed or dropped before a response was received.`);else try{t.end()}catch{}}),e.on(`error`,()=>{o.destroy()}),e.pipe(o)}const Tr=39847,Er=39848;async function Dr(e){await Promise.all(e.map(e=>new Promise(t=>{e.close(()=>t())})))}async function Or(e){let{existsSync:t}=await import(`node:fs`),{createServer:n}=await import(`node:http`),{resolve:r}=await import(`node:path`),{acquireUiLock:i,createAssetServeMiddleware:o,createContentFilter:s,readServerLock:c,releaseUiLock:l,updateUiLockPort:u}=await import(`./dist-D5J2z1mI.mjs`),{default:d}=await import(`./build-B4ZT2GMK.mjs`),{resolveContentDir:p,resolveLockDir:h}=await import(`./dist-D5J2z1mI.mjs`),g=p(e.config,e.cwd),v=h(e.cwd);i(v,{port:0,worktreeRoot:e.cwd});let y=import.meta.dirname??new URL(`.`,import.meta.url).pathname,b=[r(y,`public`),r(y,`../../app/dist`),r(y,`../../../app/dist`)].find(e=>t(e)),x=b?d(b,{single:!0,gzip:!0,immutable:!0,extensions:[]}):null,S=t(g)?o({contentFilter:s({projectDir:e.cwd,contentDir:g}),contentSirv:d(g,{dotfiles:!1,dev:!0,extensions:[]}),inlineExtensions:f,assetExtensions:a,blocklistExtensions:_}):null,C=e.port,w=null,ee=(e,t)=>{let n=e.url?.split(`?`)[0];if((n===`/`||n===``)&&(e.url=`/index.html`),!(n?.startsWith(`/api/`)&&yr(e,t))){if(n===`/api/config`&&(e.method===`GET`||e.method===`HEAD`)){w?.();let n=c(v),r=n&&n.port>0?`ws://localhost:${n.port}/collab`:null,i=JSON.stringify({collabUrl:r,previewUrl:null,port:C});t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,e.method===`HEAD`?t.end():t.end(i);return}if(n?.startsWith(`/api/`)){w?.();let r=c(v);if(!r||r.port<=0){$(t,503,`urn:ok:error:collab-server-not-running`,"Collab server not running. Start `ok start` or run `ok status`.",`Path: ${n}`);return}Cr(e,t,{upstreamHost:`localhost`,upstreamPort:r.port});return}if(S){S(e,t,()=>{x?x(e,t):kr(t,n)});return}if(x){x(e,t);return}kr(t,n)}},T=e.host===void 0?[`::1`,`127.0.0.1`]:[e.host],E=[],D=e.port,te=e=>e instanceof Error&&e.code===`EADDRINUSE`,ne=async()=>{await Promise.all(E.splice(0).map(e=>new Promise(t=>{try{e.close(()=>t())}catch{t()}})))},O=async e=>{D=e;for(let e of T){let t=n(ee);E.push(t),await new Promise((n,r)=>{let i=e=>r(e);t.once(`error`,i),t.listen(D,e,()=>{t.off(`error`,i);let e=t.address();typeof e==`object`&&e&&(D=e.port),n()})})}};try{try{await O(e.port)}catch(t){if(e.fallbackToKernel===!0&&te(t))await ne(),await O(0);else throw t}}catch(e){await ne();try{l(v)}catch{}throw e}let re=D;C=re,u(v,re);let ie=e.scheduler??m,k=e.safetyNetMs??432e5,A=null,j=!1,ae=!1,M=()=>{j||(j=!0,A!==null&&(ie.clearTimeout(A),A=null))},oe=()=>{if(M(),!ae){ae=!0;try{l(v)}catch{}}},N=()=>{j||k<=0||(A!==null&&(ie.clearTimeout(A),A=null),A=ie.setTimeout(()=>{A=null,console.warn(`[ui] safety-net (${k}ms) reached — shutting down (D-025 backstop)`);try{e.onSafetyNet?.()}catch{}for(let e of E)try{e.close()}catch{}oe()},k))},P=()=>{j||k<=0||N()};return w=P,N(),{httpServers:E,port:re,release:oe,detachSafetyNet:M,nudgeSafetyNet:P}}function kr(e,t){$(e,404,`urn:ok:error:not-found`,`Resource not found.`,t===void 0?void 0:`Path: ${t}`)}function Ar(e,t){if(e!==void 0){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<0||t>65535)throw Error(`Invalid --port value '${e}'`);return{port:t,fallbackToKernel:!1}}if(t!==void 0&&t!==``){let e=Number.parseInt(t,10);if(Number.isNaN(e)||e<0||e>65535)throw Error(`Invalid PORT env value '${t}'`);return{port:e,fallbackToKernel:!1}}return{port:Tr,fallbackToKernel:!0}}async function jr(e){let t=e.readLock??(async()=>{let{readUiLock:t}=await import(`./dist-D5J2z1mI.mjs`);return t(e.lockDir)}),n=await t();if(!n)throw Error(`UI lock collision reported but the lock disappeared before handling — retry acquiring.`);if(n.port===e.requestedPort&&n.port>0)return{mode:`already-running`,port:n.port};let r=n.port;if(r===0){let n=Date.now()+(e.pollDeadlineMs??2e3),i=e.pollIntervalMs??100;for(;Date.now()<n;){await new Promise(e=>{setTimeout(e,i)});let e=await t();if(e&&e.port>0){r=e.port;break}}if(r===0)throw Error("UI did not bind within 2s; run `ok clean`");if(r===e.requestedPort)return{mode:`already-running`,port:r}}return{mode:`proxy`,handle:await Sr({listenPort:e.requestedPort,host:e.host,upstreamHost:`localhost`,upstreamPort:r}),upstreamPort:r}}function Mr(e){return new i(`ui`).description(`Serve the Open Knowledge React editor UI`).option(`-p, --port <port>`,`UI port (default: $PORT env or ${Tr}, kernel-allocated fallback if busy)`).option(`-H, --host <host>`,"UI host. Default: two-socket loopback bind (`[::1]` + `127.0.0.1`) so cross-family collisions fail loud (D-033). Pass an explicit host (e.g. `127.0.0.1`, `0.0.0.0`) to bind a single socket on that host.").action(async t=>{let{dim:n}=await import(`./colors-T3xmlXQT.mjs`),{UiLockCollisionError:r}=await import(`./dist-D5J2z1mI.mjs`),{resolveLockDir:i}=await import(`./dist-D5J2z1mI.mjs`),a=e(),o=t.host,s;try{s=Ar(t.port,process.env.PORT)}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exitCode=1;return}let c=s.port;try{let e=await Or({config:a,cwd:process.cwd(),port:c,fallbackToKernel:s.fallbackToKernel,host:o}),t=o===void 0||o===`::`||o===`0.0.0.0`?`localhost`:o;console.log(`${n(`[ui]`)} listening on http://${t}:${e.port}`);let r=!1,i=t=>{if(r)return;r=!0,console.log(n(`\n[ui] Shutting down (${t})`)),e.detachSafetyNet();let i=()=>{try{e.release()}finally{process.exit(process.exitCode??0)}};Dr(e.httpServers).then(i,i),setTimeout(i,2e3).unref()};process.once(`SIGINT`,()=>i(`SIGINT`)),process.once(`SIGTERM`,()=>i(`SIGTERM`));return}catch(e){if(!(e instanceof r))throw e;let t=i(process.cwd()),a=o??`localhost`,s;try{s=await jr({requestedPort:c,host:a,lockDir:t})}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}s.mode===`already-running`&&(console.log(`UI already running at http://${a}:${s.port}`),process.exit(0)),console.log(`UI running at http://${a}:${s.upstreamPort}; acting as HTTP proxy on port ${s.handle.port}`);let l=!1,u=e=>{l||(l=!0,console.log(n(`\n[ui-proxy] Shutting down (${e})`)),s.handle.close().finally(()=>process.exit(process.exitCode??0)),setTimeout(()=>process.exit(process.exitCode??0),2e3).unref())};process.once(`SIGINT`,()=>u(`SIGINT`)),process.once(`SIGTERM`,()=>u(`SIGTERM`))}})}function Nr(e){if(!F(e))return{};let t=de(e,`utf-8`).trim();if(t===``)return{};try{let n=JSON.parse(t);if(T(n))return n;throw Error(`${e} root must be a JSON object`)}catch(t){throw t instanceof SyntaxError?Error(`${e} contains invalid JSON: ${t.message}`):t}}function Pr(e){if(!F(e))return{};let t=de(e,`utf-8`).trim();if(t===``)return{};try{let n=In(t);if(T(n))return n;throw Error(`${e} root must be a TOML table`)}catch(t){throw Error(`${e} contains invalid TOML: ${t instanceof Error?t.message:String(t)}`)}}function Fr(e,t){I(j(e),{recursive:!0}),L(e,`${JSON.stringify(t,null,2)}\n`,`utf-8`)}function Ir(e,t){I(j(e),{recursive:!0});let n=Gn(t);L(e,n.endsWith(`
|
|
404
404
|
`)?n:`${n}\n`,`utf-8`)}function Lr(e,t){let n;try{n=fe(t)}catch{n=P(t)}let r;try{r=ue(e)}catch(e){if(e.code!==`ENOENT`)throw e}if(r?.isSymbolicLink())throw Error(`Refusing to write through a symbolic link at ${e}. Remove the symlink and re-run \`ok init\`, or pass \`--no-mcp\` to skip MCP config writes.`);let i=j(e);for(;i.length>1&&i!==se;){let t;try{t=fe(i)}catch(e){if(e.code===`ENOENT`){i=j(i);continue}throw e}let r=N(n,t);if(r===``||!r.startsWith(`..`)&&!ae(r))return;throw Error(`Refusing to write at ${e}: ancestor ${i} resolves to ${t}, which is outside the project directory ${n}. A symbolic link in the path likely escapes the project. Remove the symlink and re-run, or pass \`--no-mcp\`.`)}}const Rr=e=>e!==`project`,zr=e=>e!==`user`;async function Br(){let e=await fn({message:`Where should the MCP server be configured?
|
|
405
|
-
`,required:!1,theme:{icon:{checked:`[x]`,unchecked:`[ ]`}},choices:[{name:`User-level (~/.claude.json, ~/.cursor/mcp.json, …)`,value:`user`,checked:!0},{name:`Project-level (.mcp.json, .cursor/mcp.json, …)`,value:`project`,checked:!0}]});return e.includes(`user`)&&e.includes(`project`)?`both`:e.includes(`user`)?`user`:e.includes(`project`)?`project`:null}async function Vr(e){return e.mcp===!1?null:e.scope?e.scope:e.isTTY??process.stdout.isTTY?(e.promptFn??Br)():`both`}const Hr=`0.0.1`,Ur=`open-knowledge-ui`;function Wr(e,t={}){let n=M(e,`.claude`,`launch.json`),r=t.mode===`dev`?{name:Ur,runtimeExecutable:`node`,runtimeArgs:[ar(),`ui`],port:Er,autoPort:!0}:{name:Ur,runtimeExecutable:`npx`,runtimeArgs:[`@inkeep/open-knowledge`,`ui`],port:Er,autoPort:!0};try{if(Lr(n,e),!F(n))return I(j(n),{recursive:!0}),L(n,`${JSON.stringify({version:Hr,configurations:[r]},null,2)}\n`,`utf-8`),{action:`created`,configPath:n};let t=de(n,`utf-8`).trim(),i=t?JSON.parse(t):{};if(!T(i))return{action:`failed`,configPath:n,error:`launch.json root is not an object`};let a=Array.isArray(i.configurations)?i.configurations:[],o=a.findIndex(e=>T(e)&&e.name===Ur);o>=0?a[o]=r:a.push(r);let s={...i,version:i.version??Hr,configurations:a};return L(n,`${JSON.stringify(s,null,2)}\n`,`utf-8`),{action:o>=0?`merged`:`created`,configPath:n}}catch(e){return{action:`failed`,configPath:n,error:e instanceof Error?e.message:String(e)}}}function Gr(e,t,n){try{return F(e.detectPath?.(t,n)??j(e.configPath(t,n)))}catch{return!1}}function Kr(e,t,n,r,i){let a=e.serverName(t),o;try{o=i??e.configPath(t,r)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:``,serverName:a,error:t instanceof Error?t.message:String(t)}}if(!i&&!n.skipAvailabilityCheck&&!Gr(e,t,r))return{editorId:e.id,label:e.label,action:`skipped-missing`,configPath:o,serverName:a};if(i!==void 0)try{Lr(o,t)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t),configScope:`project`}}let s;try{s=e.format===`toml`?Pr(o):Nr(o)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t)}}let c=s[e.topLevelKey]??{},l=c[a],u;try{u=e.buildEntry(t,n)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t)}}let d={...s,[e.topLevelKey]:{...c,[a]:u}};try{e.format===`toml`?Ir(o,d):Fr(o,d)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t)}}return{editorId:e.id,label:e.label,action:l===void 0?`written`:`overwritten`,configPath:o,serverName:a,...i===void 0?{}:{configScope:`project`}}}function qr(e,t){let n=e.projectSkillPath?.(t);if(!n)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};try{let r=c(),i=j(n);Lr(i,t);let a=F(n)?`overwritten`:`written`;return pe(i,{recursive:!0,force:!0}),I(j(i),{recursive:!0}),le(r,i,{recursive:!0}),{editorId:e.id,label:e.label,action:a,path:n}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:n,error:t instanceof Error?t.message:String(t)}}}function Jr(e,t){let n=e.projectConfigPath?.(t);if(!(!n||!F(n)))return{editorId:e.id,label:e.label,path:n}}async function Yr(e){let t=_r(e.editors),n={mode:`published`,cliPath:e.cliPath,skipAvailabilityCheck:!0};return t.map(t=>Kr(t,``,n,e.home))}function Xr(e,t,n,r){let i;try{i=r??e.configPath(t,n)}catch{return null}let a;try{a=e.format===`toml`?Pr(i):Nr(i)}catch{return null}let o=a[e.topLevelKey];if(!T(o))return null;let s=o[e.serverName(t)];return T(s)?s:null}async function Zr(e={}){let t=P(e.cwd??process.cwd()),n=tr(t,{homeDir:e.home}),r=n.projectRoot,i=!F(M(r,`.ok`));n.ancestorPromoted?console.log(`[ok] Opened existing project at ${r}`):n.gitRootPromoted&&i&&console.log(`[ok] Initialized OK at ${r} — opened parent of ${N(r,t)} because it contains a .git folder`);let a={mode:e.devMcp?`dev`:`published`},o=await l(r),s;try{s=Qn(r,{contentDir:n.defaultContentDir})}catch(t){let n=Q.claude.configPath(r,e.home);return{projectRoot:r,contentCreated:[],contentUpdated:[],contentSkipped:[],editors:[],projectSkills:[],legacyProjectConfigs:[],didGitInit:o.didInit,claudeDesktopDetected:!1,mcpAction:`failed`,mcpPath:n,mcpError:`Content scaffolding failed: ${t instanceof Error?t.message:String(t)}`}}let c=await Vr({scope:e.scope,mcp:e.mcp,isTTY:e.isTTY,promptFn:e.promptFn}),d=e.editors??$r(r,e.home),f=e.editors??nr.filter(e=>Q[e].projectConfigPath!==void 0),p=_r(d),m=_r(f),h=e.mcp===!1||c===null,g=Array.from(new Map([...p,...h?[]:m].map(e=>[e.id,e])).values()),_=p.filter(t=>Gr(t,r,e.home)),y=[],b=[],x=new Set;for(let t of g){if(h){let n=``;try{n=t.configPath(r,e.home)}catch{}y.push({editorId:t.id,label:t.label,action:`skipped-flag`,configPath:n,serverName:t.serverName(r)});continue}if(Rr(c)&&p.includes(t)&&y.push(Kr(t,r,a,e.home)),zr(c)&&m.includes(t)&&t.projectConfigPath){let n=t.projectConfigPath(r),i=Kr(t,r,a,e.home,n);y.push(i),(i.action===`written`||i.action===`overwritten`)&&(x.add(n),b.push(qr(t,r)))}}let S=!h&&c!==null&&zr(c)?m.filter(e=>!e.projectConfigPath).map(e=>e.label):void 0,C=h?[]:_.map(e=>Jr(e,r)).filter(e=>e!==void 0).filter(e=>!x.has(e.path)),w=_.some(e=>e.id===`claude`)&&!h?Wr(r,a):void 0,ee=await(e.installUserSkill??v)({home:e.home}),T=u({home:e.home}),E=h?`skipped-flag`:`skipped-missing`,D=y.find(e=>e.editorId===`claude`)??y[0]??{action:E,configPath:Q.claude.configPath(r,e.home)};return{projectRoot:r,contentCreated:s.created,contentUpdated:s.updated,contentSkipped:s.skipped,editors:y,projectSkills:b,legacyProjectConfigs:C,launchJson:w,skillInstall:ee,didGitInit:o.didInit,claudeDesktopDetected:T,mcpAction:D.action,mcpPath:D.configPath,mcpError:`error`in D?D.error:void 0,projectScopeUnsupportedLabels:S}}function Qr(e,t){let n=[],r=e.editors.some(e=>e.action===`written`||e.action===`overwritten`),i=e.editors.some(e=>e.action===`failed`)||e.projectSkills.some(e=>e.action===`failed`),a=e.editors.length>0&&e.editors.every(e=>e.action===`skipped-flag`),o=e.editors.length>0&&e.editors.every(e=>e.action===`skipped-missing`),s=e=>{let n=e.configPath.startsWith(t)?N(t,e.configPath):e.configPath;switch(e.action){case`created`:return` app preview server ${n} configured for Claude Code Desktop embedded browser`;case`merged`:return` app preview server ${n} updated for Claude Code Desktop embedded browser`;case`failed`:return` app preview server ${n} FAILED: ${e.error}`}};e.didGitInit&&n.push(`Initialized git repo at ${t}/.git/ (default branch: main)`);let c=M(t,`.ok`);if(e.contentCreated.length>0||e.contentUpdated.length>0?(n.push(O(`Content scaffolded at ${c}/`)),e.contentCreated.length>0&&n.push(` Created: ${e.contentCreated.join(`, `)}`),e.contentUpdated.length>0&&n.push(` Updated: ${e.contentUpdated.join(`, `)}`)):n.push(O(`Content already present at ${c}/`)),e.contentSkipped.length>0&&n.push(` Skipped (already exist): ${e.contentSkipped.join(`, `)}`),n.push(``),e.mcpError&&e.editors.length===0)n.push(`Warning: ${e.mcpError}`);else if(e.editors.length===0)if(n.push(O(`MCP server configuration:`)),e.mcpAction===`skipped-flag`)n.push(` MCP config not written — use without --no-mcp to configure editors`);else if(e.projectScopeUnsupportedLabels&&e.projectScopeUnsupportedLabels.length>0){let t=e.projectScopeUnsupportedLabels.join(`, `),r=e.projectScopeUnsupportedLabels.length===1?`does`:`do`;n.push(` ${t} ${r} not support project-level config; skipped`)}else n.push(` No supported editor config directories detected; skipped MCP registration`);else if(a)n.push(`MCP config not written — use without --no-mcp to configure editors`);else if(o)n.push(O(`MCP server configuration:`)),n.push(` No supported editor config directories detected; skipped MCP registration`);else{n.push(O(`MCP server configuration:`));for(let r of e.editors){let i=r.configPath.startsWith(t)?N(t,r.configPath):r.configPath.replace(/^\/Users\/[^/]+/,`~`),a=r.serverName===`open-knowledge`?``:` (${r.serverName})`,o=r.configScope===`project`?` (project)`:``,c=`${r.label}${o}`,l=` `.repeat(Math.max(1,20-c.length)),u=r.editorId===`claude-desktop`&&(r.action===`written`||r.action===`overwritten`)?` — quit and relaunch Claude Desktop to activate`:``;switch(r.action){case`written`:n.push(` ${c}${l}${i} ${D(`registered`)}${a}${u}`);break;case`overwritten`:n.push(` ${c}${l}${i} ${D(`updated`)}${a}${u}`);break;case`skipped-missing`:n.push(` ${c}${l}${i} config root missing; skipped`);break;case`failed`:n.push(` ${c}${l}${i} ${te(`FAILED`)}: ${r.error}`);break;case`skipped-flag`:break}r.editorId===`claude`&&e.launchJson&&n.push(s(e.launchJson))}if(e.projectScopeUnsupportedLabels&&e.projectScopeUnsupportedLabels.length>0){let t=e.projectScopeUnsupportedLabels.join(`, `),r=e.projectScopeUnsupportedLabels.length===1?`does`:`do`;n.push(` ${t} ${r} not support project-level config; skipped`)}}if(e.projectSkills.length>0){n.push(``),n.push(O(`Project-local skills:`));for(let r of e.projectSkills){let e=`${r.label} (project)`,i=` `.repeat(Math.max(1,20-e.length)),a=r.path?N(t,r.path):``;switch(r.action){case`written`:n.push(` ${e}${i}${a} ${D(`installed`)}`);break;case`overwritten`:n.push(` ${e}${i}${a} ${D(`updated`)}`);break;case`skipped-unsupported`:n.push(` ${e}${i}no known project skill surface; skipped`);break;case`failed`:n.push(` ${e}${i}${a} ${te(`FAILED`)}: ${r.error}`);break}}}if(i&&(n.push(``),n.push(`For failed editors, add the MCP server entry or project skill manually. See:`),n.push(` https://github.com/inkeep/open-knowledge#mcp-setup`)),e.legacyProjectConfigs.length>0){n.push(``),n.push(`Project MCP configs found:`);for(let r of e.legacyProjectConfigs)n.push(` ${r.label} ${N(t,r.path)}`);n.push(` These project-local files may override the global config. Remove them if you want fully user-scoped MCP setup in this project.`)}if(e.skillInstall)switch(n.push(``),n.push(O(`User-global skill:`)),e.skillInstall){case`installed`:n.push(` open-knowledge ${D(`installed to detected agent hosts`)} via \`npx skills\``);break;case`skip-current`:n.push(` open-knowledge ${D(`already installed at current version`)}`);break;case`failed`:n.push(` ${ne(`open-knowledge install failed — MCP still configured; run manually:`)}`),n.push(` ${ne(` npx skills@~1.5.0 add <bundled-path> --agent '*' -g -y --copy`)}`);break}if(e.claudeDesktopDetected&&(n.push(``),n.push(`Claude Desktop App detected. To enable in Claude Chat & Cowork, run: ${O(`ok install-skill`)}`)),e.preview?(n.push(``),n.push(re(e.preview,t))):e.previewWarning&&(n.push(``),n.push(`Content preview unavailable: ${e.previewWarning}`)),r){let t=new Set,r=e.editors.filter(e=>e.action===`written`||e.action===`overwritten`).filter(e=>!t.has(e.editorId)&&t.add(e.editorId)).map(e=>e.label);n.push(``),n.push(`${D(`✓`)} ${O(`Next steps:`)}`),n.push(` 1. Open your editor (${E(r.join(` / `))})`),n.push(` 2. Approve the MCP server when prompted`),n.push(` 3. (Optional) scaffold the starter knowledge-base structure:`),n.push(` - ${E(`ok seed`)}`),n.push(` 4. Use the three MCP workflow tools as you build the wiki:`),n.push(` - ${E(`mcp__open-knowledge__ingest`)} — capture an external source`),n.push(` - ${E(`mcp__open-knowledge__research`)} — gather sources and write findings`),n.push(` - ${E(`mcp__open-knowledge__consolidate`)} — promote research to canonical articles`)}return n.join(`
|
|
405
|
+
`,required:!1,theme:{icon:{checked:`[x]`,unchecked:`[ ]`}},choices:[{name:`User-level (~/.claude.json, ~/.cursor/mcp.json, …)`,value:`user`,checked:!0},{name:`Project-level (.mcp.json, .cursor/mcp.json, …)`,value:`project`,checked:!0}]});return e.includes(`user`)&&e.includes(`project`)?`both`:e.includes(`user`)?`user`:e.includes(`project`)?`project`:null}async function Vr(e){return e.mcp===!1?null:e.scope?e.scope:e.isTTY??process.stdout.isTTY?(e.promptFn??Br)():`both`}const Hr=`0.0.1`,Ur=`open-knowledge-ui`;function Wr(e,t={}){let n=M(e,`.claude`,`launch.json`),r=t.mode===`dev`?{name:Ur,runtimeExecutable:`node`,runtimeArgs:[ar(),`ui`],port:Er,autoPort:!0}:{name:Ur,runtimeExecutable:`npx`,runtimeArgs:[`@inkeep/open-knowledge`,`ui`],port:Er,autoPort:!0};try{if(Lr(n,e),!F(n))return I(j(n),{recursive:!0}),L(n,`${JSON.stringify({version:Hr,configurations:[r]},null,2)}\n`,`utf-8`),{action:`created`,configPath:n};let t=de(n,`utf-8`).trim(),i=t?JSON.parse(t):{};if(!T(i))return{action:`failed`,configPath:n,error:`launch.json root is not an object`};let a=Array.isArray(i.configurations)?i.configurations:[],o=a.findIndex(e=>T(e)&&e.name===Ur);o>=0?a[o]=r:a.push(r);let s={...i,version:i.version??Hr,configurations:a};return L(n,`${JSON.stringify(s,null,2)}\n`,`utf-8`),{action:o>=0?`merged`:`created`,configPath:n}}catch(e){return{action:`failed`,configPath:n,error:e instanceof Error?e.message:String(e)}}}function Gr(e,t,n){try{return F(e.detectPath?.(t,n)??j(e.configPath(t,n)))}catch{return!1}}function Kr(e,t,n,r,i){let a=e.serverName(t),o;try{o=i??e.configPath(t,r)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:``,serverName:a,error:t instanceof Error?t.message:String(t)}}if(!i&&!n.skipAvailabilityCheck&&!Gr(e,t,r))return{editorId:e.id,label:e.label,action:`skipped-missing`,configPath:o,serverName:a};if(i!==void 0)try{Lr(o,t)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t),configScope:`project`}}let s;try{s=e.format===`toml`?Pr(o):Nr(o)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t)}}let c=s[e.topLevelKey]??{},l=c[a],u;try{u=e.buildEntry(t,n)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t)}}let d={...s,[e.topLevelKey]:{...c,[a]:u}};try{e.format===`toml`?Ir(o,d):Fr(o,d)}catch(t){return{editorId:e.id,label:e.label,action:`failed`,configPath:o,serverName:a,error:t instanceof Error?t.message:String(t)}}return{editorId:e.id,label:e.label,action:l===void 0?`written`:`overwritten`,configPath:o,serverName:a,...i===void 0?{}:{configScope:`project`}}}function qr(e,t){let n=e.projectSkillPath?.(t);if(!n)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};try{let r=c(),i=j(n);Lr(i,t);let a=F(n)?`overwritten`:`written`;return pe(i,{recursive:!0,force:!0}),I(j(i),{recursive:!0}),le(r,i,{recursive:!0}),{editorId:e.id,label:e.label,action:a,path:n}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:n,error:t instanceof Error?t.message:String(t)}}}function Jr(e,t){let n=e.projectConfigPath?.(t);if(!(!n||!F(n)))return{editorId:e.id,label:e.label,path:n}}async function Yr(e){let t=_r(e.editors),n={mode:`published`,cliPath:e.cliPath,skipAvailabilityCheck:!0};return t.map(t=>Kr(t,``,n,e.home))}function Xr(e,t,n,r){let i;try{i=r??e.configPath(t,n)}catch{return null}let a;try{a=e.format===`toml`?Pr(i):Nr(i)}catch{return null}let o=a[e.topLevelKey];if(!T(o))return null;let s=o[e.serverName(t)];return T(s)?s:null}async function Zr(e={}){let t=P(e.cwd??process.cwd()),n=tr(t,{homeDir:e.home}),r=n.projectRoot,i=!F(M(r,`.ok`));n.ancestorPromoted?console.log(`[ok] Opened existing project at ${r}`):n.gitRootPromoted&&i&&console.log(`[ok] Initialized OK at ${r} — opened parent of ${N(r,t)} because it contains a .git folder`);let a={mode:e.devMcp?`dev`:`published`},o=await l(r),s;try{s=Qn(r,{contentDir:n.defaultContentDir})}catch(t){let n=Q.claude.configPath(r,e.home);return{projectRoot:r,contentCreated:[],contentUpdated:[],contentSkipped:[],editors:[],projectSkills:[],legacyProjectConfigs:[],didGitInit:o.didInit,claudeDesktopDetected:!1,mcpAction:`failed`,mcpPath:n,mcpError:`Content scaffolding failed: ${t instanceof Error?t.message:String(t)}`}}let c=await Vr({scope:e.scope,mcp:e.mcp,isTTY:e.isTTY,promptFn:e.promptFn}),d=e.editors??$r(r,e.home),f=e.editors??nr.filter(e=>Q[e].projectConfigPath!==void 0),p=_r(d),m=_r(f),h=e.mcp===!1||c===null,g=Array.from(new Map([...p,...h?[]:m].map(e=>[e.id,e])).values()),_=p.filter(t=>Gr(t,r,e.home)),y=[],b=[],x=new Set;for(let t of g){if(h){let n=``;try{n=t.configPath(r,e.home)}catch{}y.push({editorId:t.id,label:t.label,action:`skipped-flag`,configPath:n,serverName:t.serverName(r)});continue}if(Rr(c)&&p.includes(t)&&y.push(Kr(t,r,a,e.home)),zr(c)&&m.includes(t)&&t.projectConfigPath){let n=t.projectConfigPath(r),i=Kr(t,r,a,e.home,n);y.push(i),(i.action===`written`||i.action===`overwritten`)&&(x.add(n),b.push(qr(t,r)))}}let S=!h&&c!==null&&zr(c)?m.filter(e=>!e.projectConfigPath).map(e=>e.label):void 0,C=h?[]:_.map(e=>Jr(e,r)).filter(e=>e!==void 0).filter(e=>!x.has(e.path)),w=_.some(e=>e.id===`claude`)&&!h?Wr(r,a):void 0,ee=await(e.installUserSkill??v)({home:e.home}),T=u({home:e.home}),E=h?`skipped-flag`:`skipped-missing`,D=y.find(e=>e.editorId===`claude`)??y[0]??{action:E,configPath:Q.claude.configPath(r,e.home)};return{projectRoot:r,contentCreated:s.created,contentUpdated:s.updated,contentSkipped:s.skipped,editors:y,projectSkills:b,legacyProjectConfigs:C,launchJson:w,skillInstall:ee,didGitInit:o.didInit,claudeDesktopDetected:T,mcpAction:D.action,mcpPath:D.configPath,mcpError:`error`in D?D.error:void 0,projectScopeUnsupportedLabels:S}}function Qr(e,t){let n=[],r=e.editors.some(e=>e.action===`written`||e.action===`overwritten`),i=e.editors.some(e=>e.action===`failed`)||e.projectSkills.some(e=>e.action===`failed`),a=e.editors.length>0&&e.editors.every(e=>e.action===`skipped-flag`),o=e.editors.length>0&&e.editors.every(e=>e.action===`skipped-missing`),s=e=>{let n=e.configPath.startsWith(t)?N(t,e.configPath):e.configPath;switch(e.action){case`created`:return` app preview server ${n} configured for Claude Code Desktop embedded browser`;case`merged`:return` app preview server ${n} updated for Claude Code Desktop embedded browser`;case`failed`:return` app preview server ${n} FAILED: ${e.error}`}};e.didGitInit&&n.push(`Initialized git repo at ${t}/.git/ (default branch: main)`);let c=M(t,`.ok`);if(e.contentCreated.length>0||e.contentUpdated.length>0?(n.push(O(`Content scaffolded at ${c}/`)),e.contentCreated.length>0&&n.push(` Created: ${e.contentCreated.join(`, `)}`),e.contentUpdated.length>0&&n.push(` Updated: ${e.contentUpdated.join(`, `)}`)):n.push(O(`Content already present at ${c}/`)),e.contentSkipped.length>0&&n.push(` Skipped (already exist): ${e.contentSkipped.join(`, `)}`),n.push(``),e.mcpError&&e.editors.length===0)n.push(`Warning: ${e.mcpError}`);else if(e.editors.length===0)if(n.push(O(`MCP server configuration:`)),e.mcpAction===`skipped-flag`)n.push(` MCP config not written — use without --no-mcp to configure editors`);else if(e.projectScopeUnsupportedLabels&&e.projectScopeUnsupportedLabels.length>0){let t=e.projectScopeUnsupportedLabels.join(`, `),r=e.projectScopeUnsupportedLabels.length===1?`does`:`do`;n.push(` ${t} ${r} not support project-level config; skipped`)}else n.push(` No supported editor config directories detected; skipped MCP registration`);else if(a)n.push(`MCP config not written — use without --no-mcp to configure editors`);else if(o)n.push(O(`MCP server configuration:`)),n.push(` No supported editor config directories detected; skipped MCP registration`);else{n.push(O(`MCP server configuration:`));for(let r of e.editors){let i=r.configPath.startsWith(t)?N(t,r.configPath):r.configPath.replace(/^\/Users\/[^/]+/,`~`),a=r.serverName===`open-knowledge`?``:` (${r.serverName})`,o=r.configScope===`project`?` (project)`:``,c=`${r.label}${o}`,l=` `.repeat(Math.max(1,20-c.length)),u=r.editorId===`claude-desktop`&&(r.action===`written`||r.action===`overwritten`)?` — quit and relaunch Claude Desktop to activate`:``;switch(r.action){case`written`:n.push(` ${c}${l}${i} ${D(`registered`)}${a}${u}`);break;case`overwritten`:n.push(` ${c}${l}${i} ${D(`updated`)}${a}${u}`);break;case`skipped-missing`:n.push(` ${c}${l}${i} config root missing; skipped`);break;case`failed`:n.push(` ${c}${l}${i} ${te(`FAILED`)}: ${r.error}`);break;case`skipped-flag`:break}r.editorId===`claude`&&e.launchJson&&n.push(s(e.launchJson))}if(e.projectScopeUnsupportedLabels&&e.projectScopeUnsupportedLabels.length>0){let t=e.projectScopeUnsupportedLabels.join(`, `),r=e.projectScopeUnsupportedLabels.length===1?`does`:`do`;n.push(` ${t} ${r} not support project-level config; skipped`)}}if(e.projectSkills.length>0){n.push(``),n.push(O(`Project-local skills:`));for(let r of e.projectSkills){let e=`${r.label} (project)`,i=` `.repeat(Math.max(1,20-e.length)),a=r.path?N(t,r.path):``;switch(r.action){case`written`:n.push(` ${e}${i}${a} ${D(`installed`)}`);break;case`overwritten`:n.push(` ${e}${i}${a} ${D(`updated`)}`);break;case`skipped-unsupported`:n.push(` ${e}${i}no known project skill surface; skipped`);break;case`failed`:n.push(` ${e}${i}${a} ${te(`FAILED`)}: ${r.error}`);break}}}if(i&&(n.push(``),n.push(`For failed editors, add the MCP server entry or project skill manually. See:`),n.push(` https://github.com/inkeep/open-knowledge#mcp-setup`)),e.legacyProjectConfigs.length>0){n.push(``),n.push(`Project MCP configs found:`);for(let r of e.legacyProjectConfigs)n.push(` ${r.label} ${N(t,r.path)}`);n.push(` These project-local files may override the global config. Remove them if you want fully user-scoped MCP setup in this project.`)}if(e.skillInstall)switch(n.push(``),n.push(O(`User-global skill:`)),e.skillInstall){case`installed`:n.push(` open-knowledge ${D(`installed to detected agent hosts`)} via \`npx skills\``);break;case`skip-current`:n.push(` open-knowledge ${D(`already installed at current version`)}`);break;case`failed`:n.push(` ${ne(`open-knowledge install failed — MCP still configured; run manually:`)}`),n.push(` ${ne(` npx skills@~1.5.0 add <bundled-path> --agent '*' -g -y --copy`)}`);break}if(e.claudeDesktopDetected&&(n.push(``),n.push(`Claude Desktop App detected. To enable in Claude Chat & Cowork, run: ${O(`ok install-skill`)}`)),e.preview?(n.push(``),n.push(re(e.preview,t))):e.previewWarning&&(n.push(``),n.push(`Content preview unavailable: ${e.previewWarning}`)),r){let t=new Set,r=e.editors.filter(e=>e.action===`written`||e.action===`overwritten`).filter(e=>!t.has(e.editorId)&&t.add(e.editorId)).map(e=>e.label);n.push(``),n.push(`${D(`✓`)} ${O(`Next steps:`)}`),n.push(` 1. Open your editor (${E(r.join(` / `))})`),n.push(` 2. Approve the MCP server when prompted`),n.push(` 3. (Optional) scaffold the starter knowledge-base structure:`),n.push(` - ${E(`ok seed`)} — empty repo, Karpathy 3-layer`),n.push(` - ${E(`mcp__open-knowledge__discover`)} — existing repo, extract conventions`),n.push(` 4. Use the MCP workflow tools as you build the wiki:`),n.push(` - ${E(`mcp__open-knowledge__ingest`)} — capture an external source`),n.push(` - ${E(`mcp__open-knowledge__research`)} — gather sources and write findings`),n.push(` - ${E(`mcp__open-knowledge__consolidate`)} — promote research to canonical articles`)}return n.join(`
|
|
406
406
|
`)}function $r(e,t){let n=[];for(let r of nr)Gr(Q[r],e,t)&&n.push(r);return n}function ei(){return new i(`init`).description(`Scaffold .ok/ in the current directory and register the MCP server for your editor(s)`).option(`--mcp`,`Register the MCP server for selected editors (default: true)`,!0).option(`--no-mcp`,`Scaffold the .ok/ directory but do not touch MCP config`).option(`--dev-mcp`,`Register a local dev MCP entry using node + packages/cli/dist/cli.mjs with debug logging`).addOption(new r(`--scope <scope>`,`Write MCP config at user level, project level, or both`).choices([`user`,`project`,`both`])).action(async e=>{let t=process.cwd(),n;try{n=await Zr({cwd:t,mcp:e.mcp,devMcp:e.devMcp,scope:e.scope})}catch(e){if(e instanceof s){process.stderr.write(`open-knowledge requires git to initialize a parent repo. Install git or run 'git init' yourself, then re-run.
|
|
407
|
-
`),e.stderr&&process.stderr.write(`${e.stderr.trim()}\n`),process.exitCode=1;return}throw e}try{let{previewContent:e}=await import(`./preview-
|
|
408
|
-
//# sourceMappingURL=init-
|
|
407
|
+
`),e.stderr&&process.stderr.write(`${e.stderr.trim()}\n`),process.exitCode=1;return}throw e}try{let{previewContent:e}=await import(`./preview-DXNW4qs9.mjs`),{loadConfig:t}=await import(`./loader-CjHtqud-.mjs`),{resolveContentDir:r}=await import(`./dist-D5J2z1mI.mjs`),{config:i}=t(n.projectRoot),a=r(i,n.projectRoot);n.preview=e({projectDir:n.projectRoot,contentDir:a})}catch(e){n.previewWarning=e instanceof Error?e.message:String(e)}process.stdout.write(`${Qr(n,n.projectRoot)}\n`),(n.editors.some(e=>e.action===`failed`)||n.mcpAction===`failed`)&&(process.exitCode=1)})}export{Ze as C,V as E,ct as S,De as T,dt as _,Vr as a,pt as b,Kr as c,nr as d,Z as f,mt as g,Qn as h,Xr as i,Yr as l,tr as m,Qr as n,Zr as o,Q as p,ei as r,Wr as s,$r as t,Mr as u,ft as v,Xe as w,_t as x,ht as y};
|
|
408
|
+
//# sourceMappingURL=init-CTIvDudd.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./init-CTIvDudd.mjs";export{e as runInit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./loader-DtWxxtIg.mjs";export{e as loadConfig};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Jr as e,f as t,fi as n,ji as r,qr as i,vi as a}from"./dist-
|
|
1
|
+
import{Jr as e,f as t,fi as n,ji as r,qr as i,vi as a}from"./dist-V31CRf7D.mjs";import{t as o}from"./constants-C7p5YUDU.mjs";import{t as s}from"./is-object-DF0ZeuvD.mjs";import{resolve as c}from"node:path";import{existsSync as l,readFileSync as u}from"node:fs";import{realpath as d}from"node:fs/promises";async function f(e){let t=c(e);try{return await d(t)}catch(e){if(e.code!==`ENOENT`){let n=e instanceof Error?e.message:String(e);console.warn(`[normalize-cwd] realpath failed for ${t}: ${n}`)}return t}}var p=r();function m(e,t){let n={...e};for(let r of Object.keys(t)){let i=e[r],a=t[r];s(a)&&s(i)?n[r]=m(i,a):a!==void 0&&(n[r]=a)}return n}function h(e){if(!l(e))return{value:null,path:e,source:null,doc:null};let t;try{t=u(e,`utf-8`)}catch(t){return console.warn(`[config] Failed to read ${e}: ${t instanceof Error?t.message:t}`),{value:null,path:e,source:null,doc:null}}let n=(0,p.parseDocument)(t);if(n.errors.length>0)return console.warn(`[config] Failed to parse ${e}: ${n.errors.map(e=>e.message).join(`; `)}`),{value:null,path:e,source:t,doc:null};let r=n.toJSON();return s(r)?{value:r,path:e,source:t,doc:n}:{value:null,path:e,source:t,doc:n}}const g=[`include`,`exclude`];function _(e){let t="Run `ok config migrate` to strip the obsolete key from config.yml automatically, or remove it by hand.";return e===`exclude`?[`Move these patterns to .okignore at the project root (gitignore syntax, 1:1 migration).`,t].join(` `):[`content.include has been removed.`,`For subdirectory scoping, set content.dir in .ok/config.yml instead.`,`For pattern-based filtering, use .okignore (gitignore syntax — exclude-only; do not copy include patterns directly).`,t].join(` `)}function v(e){let t=e.value;if(!s(t))return[];let n=t.content;if(!s(n))return[];let r=[];for(let t of g)if(t in n){let n=[`content`,t],i;e.doc!==null&&e.source!==null&&(i=a({file:e.path,source:e.source,doc:e.doc,path:n})),r.push({code:`REMOVED_KEY`,path:n,redirect:_(t),...i===void 0?{}:{source:i}})}return r}function y(e,t){return e.map(e=>{let n=e.path.map(e=>typeof e==`symbol`?String(e):e),r={path:n,message:e.message,issueCode:e.code};if(t.doc!==null&&t.source!==null){let e=a({file:t.path,source:t.source,doc:t.doc,path:n});if(e!==void 0)return{...r,source:e}}return r})}function b(r){let a=r??process.cwd(),s=[],l=e(`user`,a),u=i({absPath:l}),d={};u.valid&&u.source!==void 0?(d=m(d,u.value),s.push(l)):u.valid;let f=c(a,`.ok`,o),p=h(f);if(p.value!==null){let e=v(p);if(e.length>0)throw Error(e.map(n).join(`
|
|
2
2
|
|
|
3
3
|
`));d=m(d,p.value),s.push(f)}x(d,[`upload`,`maxBytes`],`streaming uploads have no user-facing cap`),x(d,[`github`,`oauthAppClientId`],`use the OPEN_KNOWLEDGE_GITHUB_CLIENT_ID env var instead`),x(d,[`server`,`host`],`use the --host flag or HOST env var instead`),x(d,[`server`,`openOnAgentEdit`]),x(d,[`mcp`,`autoStart`],`to disable auto-start, set OK_MCP_AUTOSTART=0`),x(d,[`mcp`,`tools`,`read_document`,`historyDepth`]),x(d,[`mcp`,`tools`,`grep`,`maxResults`]),x(d,[`mcp`,`tools`,`search`,`maxResults`]),x(d,[`preview`,`baseUrl`],"preview URLs now resolve only to the running UI process — start one with `ok ui`");let g=t.safeParse(d);if(!g.success){let e={code:`SCHEMA_INVALID`,issues:y(g.error.issues,p)};throw Error(n(e))}return{config:g.data,sources:s}}function x(e,t,n){let r=e;for(let e=0;e<t.length-1;e++){if(!s(r))return;r=r[t[e]]}if(!s(r))return;let i=t[t.length-1];if(r[i]===void 0)return;let a=t.join(`.`);console.warn(`[config] ${a} is no longer user-configurable; ${n??`the value is hardcoded in @inkeep/open-knowledge-core`}. Remove the key to silence this warning.`)}function S(e){let t=e.cacheMs??1e3,n=e.loadConfigFn??b,r=new Map,i=new Map,a=f(e.startupCwd);return async o=>{let s=await f(o??e.startupCwd),c=Date.now(),l=r.get(s);if(l&&l.expiresAt>c)return l.config;let u=i.get(s);if(u)return await u;let d=(async()=>{if(s===await a)return r.set(s,{config:e.startupConfig,expiresAt:Date.now()+t}),e.startupConfig;let i=n(s).config;return r.set(s,{config:i,expiresAt:Date.now()+t}),i})();i.set(s,d);try{return await d}finally{i.delete(s)}}}export{b as n,S as t};
|
|
4
|
-
//# sourceMappingURL=loader-
|
|
4
|
+
//# sourceMappingURL=loader-DtWxxtIg.mjs.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Ct as e}from"./dist-
|
|
1
|
+
import{Ct as e}from"./dist-V31CRf7D.mjs";import"./constants-C7p5YUDU.mjs";import{join as t,relative as n}from"node:path";import{existsSync as r,lstatSync as i,readdirSync as a,realpathSync as o,statSync as s}from"node:fs";function c(r){let{projectDir:c,contentDir:l,sampleCap:u=5}=r,d=[],f=[];try{i(l)}catch(e){return{totalCount:0,sample:[],contentDir:l,warnings:[`cannot access content directory ${l}: ${e instanceof Error?e.message:String(e)}`]}}let p;try{p=e({projectDir:c,contentDir:l})}catch(e){return{totalCount:0,sample:[],contentDir:l,warnings:[e instanceof Error?e.message:String(e)]}}function m(e){let r;try{r=a(e,{withFileTypes:!0})}catch(t){let r=t instanceof Error?t.message:String(t);d.push(`could not read directory ${n(l,e)||`.`}: ${r}`);return}for(let i of r){let r=t(e,i.name);if(i.isSymbolicLink()){let e;try{e=o(r)}catch(e){let t=e.code;t===`ENOENT`||t===`ELOOP`?d.push(`broken or cyclic symlink: ${n(l,r)}`):d.push(`cannot resolve symlink ${n(l,r)}: ${t??`unknown error`}`);continue}let t;try{t=s(e)}catch{continue}if(t.isDirectory()){let e=n(l,r);if(p.isDirExcluded(e))continue;m(r)}else if(t.isFile()){let e=n(l,r);if(p.isExcluded(e))continue;f.push(e)}}else if(i.isDirectory()){let e=n(l,r);if(p.isDirExcluded(e))continue;m(r)}else if(i.isFile()){let e=n(l,r);if(p.isExcluded(e))continue;f.push(e)}}}return m(l),{totalCount:f.length,sample:f.slice(0,u),contentDir:l,warnings:d}}function l(e,i){let a=[],o=n(i,e.contentDir),s=o===``?`./`:`./${o}`;if(a.push(`Content:`),a.push(` Found ${e.totalCount} markdown files in ${s}`),e.sample.length>0){let t=e.sample.join(`, `),n=e.totalCount>e.sample.length?`, …`:``;a.push(` Sample: ${t}${n}`)}if(e.warnings.length>0)for(let t of e.warnings)a.push(` Warning: ${t}`);return a.push(``),r(t(i,`.ok`,`config.yml`))?(a.push(` To adjust scope, add patterns to .okignore at the project root.`),a.push(` To change the content root, edit .ok/config.yml → content.dir.`)):a.push(" Run `open-knowledge init` to scaffold config + .okignore."),a.push(``),a.push(` Re-check anytime: open-knowledge preview`),a.join(`
|
|
2
2
|
`)}export{c as n,l as t};
|
|
3
|
-
//# sourceMappingURL=preview-
|
|
3
|
+
//# sourceMappingURL=preview-C6CMQBVH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./preview-C6CMQBVH.mjs";export{t as formatPreviewBlock,e as previewContent};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{o as e,t}from"./chunk-CFjPhJqf.js";import{n,r,t as i}from"./compiler-runtime-CVnuRdak.js";import{an as a,dn as o,in as s,j as c,n as l,nt as u,zt as d}from"./DocumentContext-BIHXIA3J.js";import{Br as f,Kt as p,Ln as m,Rr as h,Sn as g,Wr as _,et as v,nt as y,s as b,zr as x}from"./doc-hash-kxo-uZOQ.js";import{C as S,_ as C,r as w,t as T}from"./button-C1nwPVFQ.js";import{A as E,C as D,D as O,Dt as k,E as A,Et as j,F as M,G as N,M as P,N as F,O as ee,P as te,S as ne,T as re,Tt as ie,U as I,W as ae,X as oe,Y as se,_ as ce,a as le,at as L,b as ue,c as de,d as fe,f as pe,g as me,h as he,i as ge,it as _e,j as ve,k as ye,l as be,m as xe,n as Se,o as Ce,p as we,s as Te,u as Ee,v as De,w as Oe}from"./config-validation-events-MJXadIVB.js";import{n as ke}from"./dist-Bej94Urx.js";import{S as Ae,a as je,c as Me,i as Ne,t as Pe,x as Fe}from"./dialog-Blv3p5PJ.js";import{n as Ie,t as Le}from"./toggle-group-KbPGx9kK.js";import{t as Re}from"./label-Dv_9VZWz.js";import{i as ze,n as Be,t as Ve}from"./tooltip-C-s5R-Gs.js";import{t as He}from"./input-hZk8Tm0e.js";var Ue=S(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),R=i(),z=e(n(),1),We=e=>e.type===`checkbox`,Ge=e=>e instanceof Date,B=e=>e==null,Ke=e=>typeof e==`object`,V=e=>!B(e)&&!Array.isArray(e)&&Ke(e)&&!Ge(e),qe=e=>V(e)&&e.target?We(e.target)?e.target.checked:e.target.value:e,Je=(e,t)=>t.split(`.`).some((t,n,r)=>!isNaN(Number(t))&&e.has(r.slice(0,n).join(`.`))),Ye=e=>{let t=e.constructor&&e.constructor.prototype;return V(t)&&t.hasOwnProperty(`isPrototypeOf`)},Xe=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`;function H(e){if(e instanceof Date)return new Date(e);let t=typeof FileList<`u`&&e instanceof FileList;if(Xe&&(e instanceof Blob||t))return e;let n=Array.isArray(e);if(!n&&!(V(e)&&Ye(e)))return e;let r=n?[]:Object.create(Object.getPrototypeOf(e));for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=H(e[t]));return r}var Ze=e=>/^\w*$/.test(e),U=e=>e===void 0,Qe=e=>Array.isArray(e)?e.filter(Boolean):[],$e=e=>Qe(e.replace(/["|']|\]/g,``).split(/\.|\[/)),W=(e,t,n)=>{if(!t||!V(e))return n;let r=(Ze(t)?[t]:$e(t)).reduce((e,t)=>B(e)?void 0:e[t],e);return U(r)||r===e?U(e[t])?n:e[t]:r},G=e=>typeof e==`boolean`,K=e=>typeof e==`function`,q=(e,t,n)=>{let r=-1,i=Ze(t)?[t]:$e(t),a=i.length,o=a-1;for(;++r<a;){let t=i[r],a=n;if(r!==o){let n=e[t];a=V(n)||Array.isArray(n)?n:isNaN(+i[r+1])?{}:[]}if(t===`__proto__`||t===`constructor`||t===`prototype`)return;e[t]=a,e=e[t]}},et={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`,SUBMIT:`submit`,TRIGGER:`trigger`,VALID:`valid`},tt={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},J={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},nt=`form`,rt=`root`,it=z.createContext(null);it.displayName=`HookFormControlContext`;var at=()=>z.useContext(it),ot=(e,t,n,r=!0)=>{let i={defaultValues:t._defaultValues};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==tt.all&&(t._proxyFormState[i]=!r||tt.all),n&&(n[i]=!0),e[i]}});return i},st=typeof window<`u`?z.useLayoutEffect:z.useEffect;function ct(e){let t=at(),{control:n=t,disabled:r,name:i,exact:a}=e||{},[o,s]=z.useState(n._formState),c=z.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return st(()=>n._subscribe({name:i,formState:c.current,exact:a,callback:e=>{!r&&s({...n._formState,...e})}}),[i,r,a]),z.useEffect(()=>{c.current.isValid&&n._setValid(!0)},[n]),z.useMemo(()=>ot(o,n,c.current,!1),[o,n])}var Y=e=>typeof e==`string`,lt=(e,t,n,r,i)=>Y(e)?(r&&t.watch.add(e),W(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),W(n,e))):(r&&(t.watchAll=!0),n),ut=e=>B(e)||!Ke(e);function X(e,t,n=new WeakSet){if(e===t)return!0;if(ut(e)||ut(t))return Object.is(e,t);if(Ge(e)&&Ge(t))return Object.is(e.getTime(),t.getTime());let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(let i of r){let r=e[i];if(!(i in t))return!1;if(i!==`ref`){let e=t[i];if(Ge(r)&&Ge(e)||(V(r)||Array.isArray(r))&&(V(e)||Array.isArray(e))?!X(r,e,n):!Object.is(r,e))return!1}}return!0}function dt(e){let t=at(),{control:n=t,name:r,defaultValue:i,disabled:a,exact:o,compute:s}=e||{},c=z.useRef(i),l=z.useRef(s),u=z.useRef(void 0),d=z.useRef(n),f=z.useRef(r);l.current=s;let[p,m]=z.useState(()=>{let e=n._getWatch(r,c.current);return l.current?l.current(e):e}),h=z.useCallback(e=>{let t=lt(r,n._names,e||n._formValues,!1,c.current);return l.current?l.current(t):t},[n._formValues,n._names,r]),g=z.useCallback(e=>{if(!a){let t=lt(r,n._names,e||n._formValues,!1,c.current);if(l.current){let e=l.current(t);X(e,u.current)||(m(e),u.current=e)}else m(t)}},[n._formValues,n._names,a,r]);st(()=>((d.current!==n||!X(f.current,r))&&(d.current=n,f.current=r,g()),n._subscribe({name:r,formState:{values:!0},exact:o,callback:e=>{g(e.values)}})),[n,o,r,g]),z.useEffect(()=>n._removeUnmounted());let _=d.current!==n,v=f.current,y=z.useMemo(()=>{if(a)return null;let e=!_&&!X(v,r);return _||e?h():null},[a,_,r,v,h]);return y===null?p:y}function ft(e){let t=at(),{name:n,disabled:r,control:i=t,shouldUnregister:a,defaultValue:o,exact:s=!0}=e,c=Je(i._names.array,n),l=dt({control:i,name:n,defaultValue:z.useMemo(()=>W(i._formValues,n,W(i._defaultValues,n,o)),[i,n,o]),exact:s}),u=ct({control:i,name:n,exact:s}),d=z.useRef(e),f=z.useRef(i.register(n,{...e.rules,value:l,...G(e.disabled)?{disabled:e.disabled}:{}}));d.current=e;let p=z.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!W(u.errors,n)},isDirty:{enumerable:!0,get:()=>!!W(u.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!W(u.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!W(u.validatingFields,n)},error:{enumerable:!0,get:()=>W(u.errors,n)}}),[u,n]),m=z.useCallback(e=>f.current.onChange({target:{value:qe(e),name:n},type:et.CHANGE}),[n]),h=z.useCallback(()=>f.current.onBlur({target:{value:W(i._formValues,n),name:n},type:et.BLUR}),[n,i._formValues]),g=z.useCallback(e=>{let t=W(i._fields,n);t&&t._f&&e&&(t._f.ref={focus:()=>K(e.focus)&&e.focus(),select:()=>K(e.select)&&e.select(),setCustomValidity:t=>K(e.setCustomValidity)&&e.setCustomValidity(t),reportValidity:()=>K(e.reportValidity)&&e.reportValidity()})},[i._fields,n]),_=z.useMemo(()=>({name:n,value:l,...G(r)||u.disabled?{disabled:u.disabled||r}:{},onChange:m,onBlur:h,ref:g}),[n,r,u.disabled,m,h,g,l]);return z.useEffect(()=>{let e=i._options.shouldUnregister||a;i.register(n,{...d.current.rules,...G(d.current.disabled)?{disabled:d.current.disabled}:{}});let t=(e,t)=>{let n=W(i._fields,e);n&&n._f&&(n._f.mount=t)};if(t(n,!0),e){let e=H(W(i._options.defaultValues,n,d.current.defaultValue));q(i._defaultValues,n,e),U(W(i._formValues,n))&&q(i._formValues,n,e)}return!c&&i.register(n),()=>{(c?e&&!i._state.action:e)?i.unregister(n):t(n,!1)}},[n,i,c,a]),z.useEffect(()=>{i._setDisabledField({disabled:r,name:n})},[r,n,i]),z.useMemo(()=>({field:_,formState:u,fieldState:p}),[_,u,p])}var pt=e=>e.render(ft(e)),mt=z.createContext(null);mt.displayName=`HookFormContext`;var ht=()=>z.useContext(mt),gt=e=>{let{children:t,watch:n,getValues:r,getFieldState:i,setError:a,clearErrors:o,setValue:s,trigger:c,formState:l,resetField:u,reset:d,handleSubmit:f,unregister:p,control:m,register:h,setFocus:g,subscribe:_}=e,v=z.useMemo(()=>({watch:n,getValues:r,getFieldState:i,setError:a,clearErrors:o,setValue:s,trigger:c,formState:l,resetField:u,reset:d,handleSubmit:f,unregister:p,control:m,register:h,setFocus:g,subscribe:_}),[o,m,l,i,r,f,h,d,u,a,g,s,_,c,p,n]);return z.createElement(mt.Provider,{value:v},z.createElement(it.Provider,{value:v.control},t))},_t=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},vt=e=>Array.isArray(e)?e:[e],yt=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}};function bt(e,t){let n={};for(let r in e)if(e.hasOwnProperty(r)){let i=e[r],a=t[r];if(i&&V(i)&&a){let e=bt(i,a);V(e)&&(n[r]=e)}else e[r]&&(n[r]=a)}return n}var Z=e=>V(e)&&!Object.keys(e).length,xt=e=>e.type===`file`,St=e=>{if(!Xe)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Ct=e=>e.type===`select-multiple`,wt=e=>e.type===`radio`,Tt=e=>wt(e)||We(e),Et=e=>St(e)&&e.isConnected;function Dt(e,t){let n=t.slice(0,-1).length,r=0;for(;r<n;){if(B(e)){e=void 0;break}e=e[t[r]],r++}return e}function Ot(e){for(let t in e)if(e.hasOwnProperty(t)&&!U(e[t]))return!1;return!0}function Q(e,t){if(Y(t)&&Object.prototype.hasOwnProperty.call(e,t))return delete e[t],e;let n=Array.isArray(t)?t:Ze(t)?[t]:$e(t),r=n.length===1?e:Dt(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(V(r)&&Z(r)||Array.isArray(r)&&Ot(r))&&Q(e,n.slice(0,-1)),e}var kt=e=>{for(let t in e)if(K(e[t]))return!0;return!1};function At(e){return Array.isArray(e)||V(e)&&!kt(e)}function jt(e,t={}){for(let n in e){let r=e[n];At(r)?(t[n]=Array.isArray(r)?[]:{},jt(r,t[n])):U(r)||(t[n]=!0)}return t}function Mt(e,t,n){n||=jt(t);for(let r in e){let i=e[r];if(At(i))U(t)||ut(n[r])?n[r]=jt(i,Array.isArray(i)?[]:{}):Mt(i,B(t)?{}:t[r],n[r]);else{let e=t[r];n[r]=!X(i,e)}}return n}var Nt={value:!1,isValid:!1},Pt={value:!0,isValid:!0},Ft=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!U(e[0].attributes.value)?U(e[0].value)||e[0].value===``?Pt:{value:e[0].value,isValid:!0}:Pt:Nt}return Nt},It=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>U(e)?e:t?e===``?NaN:e&&+e:n&&Y(e)?new Date(e):r?r(e):e,Lt={isValid:!1,value:null},Rt=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,Lt):Lt;function zt(e){let t=e.ref;return xt(t)?t.files:wt(t)?Rt(e.refs).value:Ct(t)?[...t.selectedOptions].map(({value:e})=>e):We(t)?Ft(e.refs).value:It(U(t.value)?e.ref.value:t.value,e)}var Bt=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Vt=(e,t,n,r)=>{let i={};for(let n of e){let e=W(t,n);e&&q(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},Ht=e=>e instanceof RegExp,Ut=e=>U(e)?e:Ht(e)?e.source:V(e)?Ht(e.value)?e.value.source:e.value:e,Wt=e=>({isOnSubmit:!e||e===tt.onSubmit,isOnBlur:e===tt.onBlur,isOnChange:e===tt.onChange,isOnAll:e===tt.all,isOnTouch:e===tt.onTouched}),Gt=`AsyncFunction`,Kt=e=>!!e&&!!e.validate&&!!(K(e.validate)&&e.validate.constructor.name===Gt||V(e.validate)&&Object.values(e.validate).find(e=>e.constructor.name===Gt)),qt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Jt=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length)))),Yt=(e,t,n,r)=>{for(let i of n||Object.keys(e)){let n=W(e,i);if(n){let{_f:e,...a}=n;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if(Yt(a,t))break}else if(V(a)&&Yt(a,t))break}}};function Xt(e,t,n){let r=W(e,n);if(r||Ze(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=W(t,r),o=W(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}var Zt=(e,t,n,r)=>{n(e);let{name:i,...a}=e;return Z(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find(e=>t[e]===(!r||tt.all))},Qt=(e,t,n)=>!e||!t||e===t||vt(e).some(e=>e&&(n?e===t:e.startsWith(t)||t.startsWith(e))),$t=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:(n?r.isOnChange:i.isOnChange)?e:!0,en=(e,t)=>!Qe(W(e,t)).length&&Q(e,t),tn=(e,t,n)=>{let r=vt(W(e,n));return q(r,rt,t[n]),q(e,n,r),e};function nn(e,t,n=`validate`){if(Y(e)||Array.isArray(e)&&e.every(Y)||G(e)&&!e)return{type:n,message:Y(e)?e:``,ref:t}}var rn=e=>V(e)&&!Ht(e)?e:{value:e,message:``},an=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:u,min:d,max:f,pattern:p,validate:m,name:h,valueAsNumber:g,mount:_}=e._f,v=W(n,h);if(!_||t.has(h))return{};let y=s?s[0]:o,b=e=>{i&&y.reportValidity&&(y.setCustomValidity(G(e)?``:e||``),y.reportValidity())},x={},S=wt(o),C=We(o),w=S||C,T=(g||xt(o))&&U(o.value)&&U(v)||St(o)&&o.value===``||v===``||Array.isArray(v)&&!v.length||g&&typeof v==`number`&&isNaN(v),E=_t.bind(null,h,r,x),D=(e,t,n,r=J.maxLength,i=J.minLength)=>{let a=e?t:n;x[h]={type:e?r:i,message:a,ref:o,...E(e?r:i,a)}};if(a?!Array.isArray(v)||!v.length:c&&(!w&&(T||B(v))||G(v)&&!v||C&&!Ft(s).isValid||S&&!Rt(s).isValid)){let{value:e,message:t}=Y(c)?{value:!!c,message:c}:rn(c);if(e&&(x[h]={type:J.required,message:t,ref:y,...E(J.required,t)},!r))return b(t),x}if(!T&&(!B(d)||!B(f))){let e,t,n=rn(f),i=rn(d);if(!B(v)&&!isNaN(v)){let r=o.valueAsNumber||v&&+v;B(n.value)||(e=r>n.value),B(i.value)||(t=r<i.value)}else{let r=o.valueAsDate||new Date(v),a=e=>new Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;Y(n.value)&&v&&(e=s?a(v)>a(n.value):c?v>n.value:r>new Date(n.value)),Y(i.value)&&v&&(t=s?a(v)<a(i.value):c?v<i.value:r<new Date(i.value))}if((e||t)&&(D(!!e,n.message,i.message,J.max,J.min),!r))return b(x[h].message),x}if((l||u)&&!T&&(Y(v)||a&&Array.isArray(v))){let e=rn(l),t=rn(u),n=!B(e.value)&&v.length>+e.value,i=!B(t.value)&&v.length<+t.value;if((n||i)&&(D(n,e.message,t.message),!r))return b(x[h].message),x}if(p&&!T&&Y(v)){let{value:e,message:t}=rn(p);if(Ht(e)&&!v.match(e)&&(x[h]={type:J.pattern,message:t,ref:o,...E(J.pattern,t)},!r))return b(t),x}if(m){if(K(m)){let e=nn(await m(v,n),y);if(e&&(x[h]={...e,...E(J.validate,e.message)},!r))return b(e.message),x}else if(V(m)){let e={};for(let t in m){if(!Z(e)&&!r)break;let i=nn(await m[t](v,n),y,t);i&&(e={...i,...E(t,i.message)},b(i.message),r&&(x[h]=e))}if(!Z(e)&&(x[h]={ref:y,...e},!r))return x}}return b(!0),x},on={mode:tt.onSubmit,reValidateMode:tt.onChange,shouldFocusError:!0};function sn(e={}){let t={...on,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:K(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},i=(V(t.defaultValues)||V(t.values))&&H(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:H(i),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c,l=0,u={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},d={...u},f={...d},p={array:yt(),state:yt()},m=t.criteriaMode===tt.all,h=e=>t=>{clearTimeout(l),l=setTimeout(e,t)},g=async e=>{if(!o.keepIsValid&&!t.disabled&&(d.isValid||f.isValid||e)){let e;t.resolver?(e=Z((await T()).errors),_()):e=await O({fields:r,onlyCheckValid:!0,eventType:et.VALID}),e!==n.isValid&&p.state.next({isValid:e})}},_=(e,r)=>{!t.disabled&&(d.isValidating||d.validatingFields||f.isValidating||f.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?q(n.validatingFields,e,r):Q(n.validatingFields,e))}),p.state.next({validatingFields:n.validatingFields,isValidating:!Z(n.validatingFields)}))},v=e=>{let t=Mt(i,a),r=Bt(e);q(n.dirtyFields,r,W(t,r))},y=(e,i=[],s,c,l=!0,u=!0)=>{if(c&&s&&!t.disabled){if(o.action=!0,u&&Array.isArray(W(r,e))){let t=s(W(r,e),c.argA,c.argB);l&&q(r,e,t)}if(u&&Array.isArray(W(n.errors,e))){let t=s(W(n.errors,e),c.argA,c.argB);l&&q(n.errors,e,t),en(n.errors,e)}if((d.touchedFields||f.touchedFields)&&u&&Array.isArray(W(n.touchedFields,e))){let t=s(W(n.touchedFields,e),c.argA,c.argB);l&&q(n.touchedFields,e,t)}(d.dirtyFields||f.dirtyFields)&&v(e),p.state.next({name:e,isDirty:A(e,i),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else q(a,e,i)},b=(e,t)=>{q(n.errors,e,t),p.state.next({errors:n.errors})},x=e=>{n.errors=e,p.state.next({errors:n.errors,isValid:!1})},S=(e,t,n,s)=>{let c=W(r,e);if(c){let r=W(a,e,U(n)?W(i,e):n);U(r)||s&&s.defaultChecked||t?q(a,e,t?r:zt(c._f)):N(e,r),o.mount&&!o.action&&g()}},C=(e,r,a,o,s)=>{let c=!1,l=!1,u={name:e};if(!t.disabled){if(!a||o){(d.isDirty||f.isDirty)&&(l=n.isDirty,n.isDirty=u.isDirty=A(),c=l!==u.isDirty);let t=X(W(i,e),r);l=!!W(n.dirtyFields,e),t?Q(n.dirtyFields,e):q(n.dirtyFields,e,!0),u.dirtyFields=n.dirtyFields,c||=(d.dirtyFields||f.dirtyFields)&&l!==!t}if(a){let t=W(n.touchedFields,e);t||(q(n.touchedFields,e,a),u.touchedFields=n.touchedFields,c||=(d.touchedFields||f.touchedFields)&&t!==a)}c&&s&&p.state.next(u)}return c?u:{}},w=(e,r,i,a)=>{let o=W(n.errors,e),s=(d.isValid||f.isValid)&&G(r)&&n.isValid!==r;if(t.delayError&&i?(c=h(()=>b(e,i)),c(t.delayError)):(clearTimeout(l),c=null,i?q(n.errors,e,i):Q(n.errors,e)),(i?!X(o,i):o)||!Z(a)||s){let t={...a,...s&&G(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},p.state.next(t)}},T=async e=>(_(e,!0),await t.resolver(a,t.context,Vt(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),E=async e=>{let{errors:t}=await T(e);if(_(e),e)for(let r of e){let e=W(t,r);e?q(n.errors,r,e):Q(n.errors,r)}else n.errors=t;return t},D=async({name:t,eventType:r})=>{if(e.validate){let i=await e.validate({formValues:a,formState:n,name:t,eventType:r});if(V(i))for(let e in i)i[e]&&oe(`${nt}.${e}`,{message:Y(i.message)?i.message:``,type:J.validate});else Y(i)||!i?oe(nt,{message:i||``,type:J.validate}):ae(nt);return i}return!0},O=async({fields:r,onlyCheckValid:i,name:o,eventType:c,context:l={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(l.runRootValidation=!0,!await D({name:o,eventType:c})&&(l.valid=!1,i)))return l.valid;for(let o in r){let u=r[o];if(u){let{_f:r,...f}=u;if(r){let o=s.array.has(r.name),c=u._f&&Kt(u._f);c&&d.validatingFields&&_([r.name],!0);let f=await an(u,s.disabled,a,m,t.shouldUseNativeValidation&&!i,o);if(c&&d.validatingFields&&_([r.name]),f[r.name]&&(l.valid=!1,i)||(!i&&(W(f,r.name)?o?tn(n.errors,f,r.name):q(n.errors,r.name,f[r.name]):Q(n.errors,r.name)),e.shouldUseNativeValidation&&f[r.name]))break}!Z(f)&&await O({context:l,onlyCheckValid:i,fields:f,name:o,eventType:c})}}return l.valid},k=()=>{for(let e of s.unMount){let t=W(r,e);t&&(t._f.refs?t._f.refs.every(e=>!Et(e)):!Et(t._f.ref))&&L(e)}s.unMount=new Set},A=(e,n)=>!t.disabled&&(e&&n&&q(a,e,n),!X(ie(),i)),j=(e,t,n)=>lt(e,s,{...o.mount?a:U(t)?i:Y(e)?{[e]:t}:t},n,t),M=e=>Qe(W(o.mount?a:i,e,t.shouldUnregister?W(i,e,[]):[])),N=(e,t,n={})=>{let i=W(r,e),o=t;if(i){let n=i._f;n&&(!n.disabled&&q(a,e,It(t,n)),o=St(n.ref)&&B(t)?``:t,Ct(n.ref)?[...n.ref.options].forEach(e=>e.selected=o.includes(e.value)):n.refs?We(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(Array.isArray(o)?e.checked=!!o.find(t=>t===e.value):e.checked=o===e.value||!!o)}):n.refs.forEach(e=>e.checked=e.value===o):xt(n.ref)?n.ref.value=``:(n.ref.value=o,n.ref.type||p.state.next({name:e,values:H(a)})))}(n.shouldDirty||n.shouldTouch)&&C(e,o,n.shouldTouch,n.shouldDirty,!0),n.shouldValidate&&re(e)},P=(e,t,n)=>{for(let i in t){if(!t.hasOwnProperty(i))return;let a=t[i],o=e+`.`+i,c=W(r,o);(s.array.has(e)||V(a)||c&&!c._f)&&!Ge(a)?P(o,a,n):N(o,a,n)}},F=(e,t,i={})=>{let c=W(r,e),l=s.array.has(e),u=H(t),d=X(W(a,e),u);if(q(a,e,u),l)p.array.next({name:e,values:H(a)}),i.shouldDirty&&(v(e),p.state.next({name:e,dirtyFields:n.dirtyFields,isDirty:A(e,u)}));else{let t=Array.isArray(u)&&!u.length||Z(u);!c||c._f||B(u)||t?N(e,u,i):P(e,u,i)}d||(Jt(e,s)?p.state.next({...n,name:e,values:H(a)}):p.state.next({name:o.mount?e:void 0,values:H(a)}))},ee=e=>{let t=K(e)?e(a):e;X(a,t)||(a={...a,...t},p.state.next({...n,values:a}))},te=async i=>{o.mount=!0;let l=i.target,u=l.name,h=!0,v=W(r,u),y=e=>{h=Number.isNaN(e)||Ge(e)&&isNaN(e.getTime())||X(e,W(a,u,e))},b=Wt(t.mode),x=Wt(t.reValidateMode);if(v){let o,S,E=l.type?zt(v._f):qe(i),k=i.type===et.BLUR||i.type===et.FOCUS_OUT,A=!qt(v._f)&&!e.validate&&!t.resolver&&!W(n.errors,u)&&!v._f.deps||$t(k,W(n.touchedFields,u),n.isSubmitted,x,b),j=Jt(u,s,k);q(a,u,E),k?(!l||!l.readOnly)&&(v._f.onBlur&&v._f.onBlur(i),c&&c(0)):v._f.onChange&&v._f.onChange(i);let M=C(u,E,k),N=!Z(M)||j;if(!k&&p.state.next({name:u,type:i.type,values:H(a)}),A)return(d.isValid||f.isValid)&&(t.mode===`onBlur`?k&&g():k||g()),N&&p.state.next({name:u,...j?{}:M});if(!t.resolver&&e.validate&&await D({name:u,eventType:i.type}),!k&&j&&p.state.next({...n}),t.resolver){let{errors:e}=await T([u]);if(_([u]),y(E),h){let t=Xt(n.errors,r,u),i=Xt(e,r,t.name||u);o=i.error,u=i.name,S=Z(e)}}else _([u],!0),o=(await an(v,s.disabled,a,m,t.shouldUseNativeValidation))[u],_([u]),y(E),h&&(o?S=!1:(d.isValid||f.isValid)&&(S=await O({fields:r,onlyCheckValid:!0,name:u,eventType:i.type})));h&&(v._f.deps&&(!Array.isArray(v._f.deps)||v._f.deps.length>0)&&re(v._f.deps),w(u,S,o,M))}},ne=(e,t)=>{if(W(n.errors,t)&&e.focus)return e.focus(),1},re=async(e,i={})=>{let a,o,c=vt(e);if(t.resolver){let t=await E(U(e)?e:c);a=Z(t),o=e?!c.some(e=>W(t,e)):a}else e?(o=(await Promise.all(c.map(async e=>{let t=W(r,e);return await O({fields:t&&t._f?{[e]:t}:t,eventType:et.TRIGGER})}))).every(Boolean),!(!o&&!n.isValid)&&g()):o=a=await O({fields:r,name:e,eventType:et.TRIGGER});return p.state.next({...!Y(e)||(d.isValid||f.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&Yt(r,ne,e?c:s.mount),o},ie=(e,t)=>{let r={...o.mount?a:i};return t&&(r=bt(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),U(e)?r:Y(e)?W(r,e):e.map(e=>W(r,e))},I=(e,t)=>({invalid:!!W((t||n).errors,e),isDirty:!!W((t||n).dirtyFields,e),error:W((t||n).errors,e),isValidating:!!W(n.validatingFields,e),isTouched:!!W((t||n).touchedFields,e)}),ae=e=>{let t=e?vt(e):void 0;t?.forEach(e=>Q(n.errors,e)),t?t.forEach(e=>{p.state.next({name:e,errors:n.errors})}):p.state.next({errors:{}})},oe=(e,t,i)=>{let a=(W(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=W(n.errors,e)||{};q(n.errors,e,{...l,...t,ref:a}),p.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},se=(e,t)=>K(e)?p.state.subscribe({next:n=>`values`in n&&e(n.values||j(void 0,t),n)}):j(e,t,!0),ce=e=>p.state.subscribe({next:t=>{if(Qt(e.name,t.name,e.exact)&&Zt(t,e.formState||d,ye,e.reRenderRoot)){let r={...a};e.callback({values:r,...n,...t,defaultValues:i})}}}).unsubscribe,le=e=>(o.mount=!0,f={...f,...e.formState},ce({...e,formState:{...u,...e.formState}})),L=(e,o={})=>{for(let c of e?vt(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(Q(r,c),Q(a,c)),!o.keepError&&Q(n.errors,c),!o.keepDirty&&Q(n.dirtyFields,c),!o.keepTouched&&Q(n.touchedFields,c),!o.keepIsValidating&&Q(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&Q(i,c);p.state.next({values:H(a)}),p.state.next({...n,...o.keepDirty?{isDirty:A()}:{}}),!o.keepIsValid&&g()},ue=({disabled:e,name:t})=>{if(G(e)&&o.mount||e||s.disabled.has(t)){let n=s.disabled.has(t)!==!!e;e?s.disabled.add(t):s.disabled.delete(t),n&&o.mount&&!o.action&&g()}},de=(e,n={})=>{let a=W(r,e),c=G(n.disabled)||G(t.disabled),l=!s.registerName.has(e)&&a&&a._f&&!a._f.mount;return q(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a&&!l?ue({disabled:G(n.disabled)?n.disabled:t.disabled,name:e}):S(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:Ut(n.min),max:Ut(n.max),minLength:Ut(n.minLength),maxLength:Ut(n.maxLength),pattern:Ut(n.pattern)}:{},name:e,onChange:te,onBlur:te,ref:c=>{if(c){s.registerName.add(e),de(e,n),s.registerName.delete(e),a=W(r,e);let t=U(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=Tt(t),l=a._f.refs||[];if(o?l.find(e=>e===t):t===a._f.ref)return;q(r,e,{_f:{...a._f,...o?{refs:[...l.filter(Et),t,...Array.isArray(W(i,e))?[{}]:[]],ref:{type:t.type,name:e}}:{ref:t}}}),S(e,!1,void 0,t)}else a=W(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(Je(s.array,e)&&o.action)&&s.unMount.add(e)}}},fe=()=>t.shouldFocusError&&Yt(r,ne,s.mount),pe=e=>{G(e)&&(p.state.next({disabled:e}),Yt(r,(t,n)=>{let i=W(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},me=(e,i)=>async o=>{let c;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let l=H(a);if(p.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await T();_(),n.errors=e,l=H(t)}else await O({fields:r,eventType:et.SUBMIT});if(s.disabled.size)for(let e of s.disabled)Q(l,e);if(Q(n.errors,rt),Z(n.errors)){p.state.next({errors:{}});try{await e(l,o)}catch(e){c=e}}else i&&await i({...n.errors},o),fe(),setTimeout(fe);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Z(n.errors)&&!c,submitCount:n.submitCount+1,errors:n.errors}),c)throw c},he=(e,t={})=>{W(r,e)&&(U(t.defaultValue)?F(e,H(W(i,e))):(F(e,t.defaultValue),q(i,e,H(t.defaultValue))),t.keepTouched||Q(n.touchedFields,e),t.keepDirty||(Q(n.dirtyFields,e),n.isDirty=t.defaultValue?A(e,H(W(i,e))):A()),t.keepError||(Q(n.errors,e),d.isValid&&g()),p.state.next({...n}))},ge=(e,c={})=>{let l=e?H(e):i,u=H(l),f=Z(e),m=f?i:u;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Object.keys(Mt(i,a))]);for(let t of Array.from(e)){let e=W(n.dirtyFields,t),r=W(a,t),i=W(m,t);e&&!U(r)?q(m,t,r):!e&&!U(i)&&F(t,i)}}else{if(Xe&&U(e))for(let e of s.mount){let t=W(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(St(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}if(c.keepFieldsRef)for(let e of s.mount)F(e,W(m,e));else r={}}a=t.shouldUnregister?c.keepDefaultValues?H(i):{}:H(m),p.array.next({values:{...m}}),p.state.next({values:{...m}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!d.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!Z(m),o.watch=!!t.shouldUnregister,o.keepIsValid=!!c.keepIsValid,o.action=!1,c.keepErrors||(n.errors={}),p.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:f?!1:c.keepDirty?n.isDirty:!!(c.keepDefaultValues&&!X(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:f?{}:c.keepDirtyValues?c.keepDefaultValues&&a?Mt(i,a):n.dirtyFields:c.keepDefaultValues&&e?Mt(i,e):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},_e=(e,n)=>ge(K(e)?e(a):e,{...t.resetOptions,...n}),ve=(e,t={})=>{let n=W(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&setTimeout(()=>{e.focus(),t.shouldSelect&&K(e.select)&&e.select()})}},ye=e=>{n={...n,...e}},be={control:{register:de,unregister:L,getFieldState:I,handleSubmit:me,setError:oe,_subscribe:ce,_runSchema:T,_updateIsValidating:_,_focusError:fe,_getWatch:j,_getDirty:A,_setValid:g,_setFieldArray:y,_setDisabledField:ue,_setErrors:x,_getFieldArray:M,_reset:ge,_resetDefaultValues:()=>K(t.defaultValues)&&t.defaultValues().then(e=>{_e(e,t.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:k,_disableForm:pe,_subjects:p,_proxyFormState:d,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e}}},subscribe:le,trigger:re,register:de,handleSubmit:me,watch:se,setValue:F,setValues:ee,getValues:ie,reset:_e,resetField:he,clearErrors:ae,unregister:L,setError:oe,setFocus:ve,getFieldState:I};return{...be,formControl:be}}function cn(e={}){let t=z.useRef(void 0),n=z.useRef(void 0),[r,i]=z.useState({isDirty:!1,isValidating:!1,isLoading:K(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:K(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!K(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...i}=sn(e);t.current={...i,formState:r}}let a=t.current.control;return a._options=e,st(()=>{let e=a._subscribe({formState:a._proxyFormState,callback:()=>i({...a._formState}),reRenderRoot:!0});return i(e=>({...e,isReady:!0})),a._formState.isReady=!0,e},[a]),z.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),z.useEffect(()=>{e.mode&&(a._options.mode=e.mode),e.reValidateMode&&(a._options.reValidateMode=e.reValidateMode)},[a,e.mode,e.reValidateMode]),z.useEffect(()=>{e.errors&&(a._setErrors(e.errors),a._focusError())},[a,e.errors]),z.useEffect(()=>{e.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,e.shouldUnregister]),z.useEffect(()=>{if(a._proxyFormState.isDirty){let e=a._getDirty();e!==r.isDirty&&a._subjects.state.next({isDirty:e})}},[a,r.isDirty]),z.useEffect(()=>{e.values&&!X(e.values,n.current)?(a._reset(e.values,{keepFieldsRef:!0,...a._options.resetOptions}),a._options.resetOptions?.keepIsValid||a._setValid(),n.current=e.values,i(e=>({...e}))):a._resetDefaultValues()},[a,e.values]),z.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),t.current.formState=z.useMemo(()=>ot(r,a),[a,r]),t.current}var $=r(),ln=gt,un=z.createContext({}),dn=e=>{let t=(0,R.c)(9),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;t[2]===n.name?r=t[3]:(r={name:n.name},t[2]=n.name,t[3]=r);let i;t[4]===n?i=t[5]:(i=(0,$.jsx)(pt,{...n}),t[4]=n,t[5]=i);let a;return t[6]!==r||t[7]!==i?(a=(0,$.jsx)(un.Provider,{value:r,children:i}),t[6]=r,t[7]=i,t[8]=a):a=t[8],a},fn=()=>{let e=(0,R.c)(13),t=z.use(un),n=z.use(pn),{getFieldState:r}=ht(),i;e[0]===t.name?i=e[1]:(i={name:t.name},e[0]=t.name,e[1]=i);let a=ct(i),o;e[2]!==t.name||e[3]!==a||e[4]!==r?(o=r(t.name,a),e[2]=t.name,e[3]=a,e[4]=r,e[5]=o):o=e[5];let s=o;if(!t)throw Error(`useFormField should be used within <FormField>`);let{id:c}=n,l=`${c}-form-item`,u=`${c}-form-item-description`,d=`${c}-form-item-message`,f;return e[6]!==t.name||e[7]!==s||e[8]!==c||e[9]!==l||e[10]!==u||e[11]!==d?(f={id:c,name:t.name,formItemId:l,formDescriptionId:u,formMessageId:d,...s},e[6]=t.name,e[7]=s,e[8]=c,e[9]=l,e[10]=u,e[11]=d,e[12]=f):f=e[12],f},pn=z.createContext({});function mn(e){let t=(0,R.c)(13),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i=z.useId(),a;t[3]===i?a=t[4]:(a={id:i},t[3]=i,t[4]=a);let o;t[5]===n?o=t[6]:(o=w(`grid gap-2`,n),t[5]=n,t[6]=o);let s;t[7]!==r||t[8]!==o?(s=(0,$.jsx)(`div`,{"data-slot":`form-item`,className:o,...r}),t[7]=r,t[8]=o,t[9]=s):s=t[9];let c;return t[10]!==a||t[11]!==s?(c=(0,$.jsx)(pn.Provider,{value:a,children:s}),t[10]=a,t[11]=s,t[12]=c):c=t[12],c}function hn(e){let t=(0,R.c)(10),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let{error:i,formItemId:a}=fn(),o=!!i,s;t[3]===n?s=t[4]:(s=w(`data-[error=true]:text-destructive`,n),t[3]=n,t[4]=s);let c;return t[5]!==a||t[6]!==r||t[7]!==o||t[8]!==s?(c=(0,$.jsx)(Re,{"data-slot":`form-label`,"data-error":o,className:s,htmlFor:a,...r}),t[5]=a,t[6]=r,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function gn(e){let t=(0,R.c)(7),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let{error:r,formItemId:i,formDescriptionId:a,formMessageId:o}=fn(),s=r?`${a} ${o}`:`${a}`,c=!!r,l;return t[2]!==i||t[3]!==n||t[4]!==s||t[5]!==c?(l=(0,$.jsx)(C,{"data-slot":`form-control`,id:i,"aria-describedby":s,"aria-invalid":c,...n}),t[2]=i,t[3]=n,t[4]=s,t[5]=c,t[6]=l):l=t[6],l}function _n(e){let t=(0,R.c)(9),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let{formDescriptionId:i}=fn(),a;t[3]===n?a=t[4]:(a=w(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==r||t[7]!==a?(o=(0,$.jsx)(`p`,{"data-slot":`form-description`,id:i,className:a,...r}),t[5]=i,t[6]=r,t[7]=a,t[8]=o):o=t[8],o}function vn(e){let t=(0,R.c)(11),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let{error:i,formMessageId:a}=fn(),o=i?String(i?.message??``):r.children;if(!o)return null;let s=i?`alert`:void 0,c;t[3]===n?c=t[4]:(c=w(`text-sm text-destructive`,n),t[3]=n,t[4]=c);let l;return t[5]!==o||t[6]!==a||t[7]!==r||t[8]!==s||t[9]!==c?(l=(0,$.jsx)(`p`,{"data-slot":`form-message`,id:a,role:s,className:c,...r,children:o}),t[5]=o,t[6]=a,t[7]=r,t[8]=s,t[9]=c,t[10]=l):l=t[10],l}var yn=e(t(((e,t)=>{function n(e){return Array.isArray(e)?e:[e]}var r=``,i=` `,a=`\\`,o=/^\s+$/,s=/(?:[^\\]|^)\\$/,c=/^\\!/,l=/^\\#/,u=/\r?\n/g,d=/^\.*\/|^\.+$/,f=`/`,p=`node-ignore`;typeof Symbol<`u`&&(p=Symbol.for(`node-ignore`));var m=p,h=(e,t,n)=>Object.defineProperty(e,t,{value:n}),g=/([0-z])-([0-z])/g,_=()=>!1,v=e=>e.replace(g,(e,t,n)=>t.charCodeAt(0)<=n.charCodeAt(0)?e:r),y=e=>{let{length:t}=e;return e.slice(0,t-t%2)},b=[[/^\uFEFF/,()=>r],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,n)=>t+(n.indexOf(`\\`)===0?i:r)],[/(\\+?)\s/g,(e,t)=>{let{length:n}=t;return t.slice(0,n-n%2)+i}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>`[^/]`],[/^\//,()=>`^`],[/\//g,()=>`\\/`],[/^\^*\\\*\\\*\\\//,()=>`^(?:.*\\/)?`],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?`^`:`(?:^|\\/)`}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,n)=>t+6<n.length?`(?:\\/[^\\/]+)*`:`\\/.+`],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(e,t,n)=>t+n.replace(/\\\*/g,`[^\\/]*`)],[/\\\\\\(?=[$.|*+(){^])/g,()=>a],[/\\\\/g,()=>a],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,n,r,i)=>t===a?`\\[${n}${y(r)}${i}`:i===`]`&&r.length%2==0?`[${v(n)}${r}]`:`[]`],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:`[^/]*`}(?=$|\\/$)`]],x=Object.create(null),S=(e,t)=>{let n=x[e];return n||(n=b.reduce((t,[n,r])=>t.replace(n,r.bind(e)),e),x[e]=n),t?new RegExp(n,`i`):new RegExp(n)},C=e=>typeof e==`string`,w=e=>e&&C(e)&&!o.test(e)&&!s.test(e)&&e.indexOf(`#`)!==0,T=e=>e.split(u),E=class{constructor(e,t,n,r){this.origin=e,this.pattern=t,this.negative=n,this.regex=r}},D=(e,t)=>{let n=e,r=!1;e.indexOf(`!`)===0&&(r=!0,e=e.substr(1)),e=e.replace(c,`!`).replace(l,`#`);let i=S(e,t);return new E(n,e,r,i)},O=(e,t)=>{throw new t(e)},k=(e,t,n)=>C(e)?e?k.isNotRelative(e)?n(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:n(`path must not be empty`,TypeError):n(`path must be a string, but got \`${t}\``,TypeError),A=e=>d.test(e);k.isNotRelative=A,k.convert=e=>e;var j=class{constructor({ignorecase:e=!0,ignoreCase:t=e,allowRelativePaths:n=!1}={}){h(this,m,!0),this._rules=[],this._ignoreCase=t,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[m]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(w(e)){let t=D(e,this._ignoreCase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,n(C(e)?T(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let n=!1,r=!1;return this._rules.forEach(i=>{let{negative:a}=i;r===a&&n!==r||a&&!n&&!r&&!t||i.regex.test(e)&&(n=!a,r=a)}),{ignored:n,unignored:r}}_test(e,t,n,r){let i=e&&k.convert(e);return k(i,e,this._allowRelativePaths?_:O),this._t(i,t,n,r)}_t(e,t,n,r){if(e in t)return t[e];if(r||=e.split(f),r.pop(),!r.length)return t[e]=this._testOne(e,n);let i=this._t(r.join(f)+f,t,n,r);return t[e]=i.ignored?i:this._testOne(e,n)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return n(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},M=e=>new j(e);if(M.isPathValid=e=>k(e&&k.convert(e),e,_),M.default=M,t.exports=M,typeof process<`u`&&({}.IGNORE_TEST_WIN32||process.platform===`win32`)){k.convert=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,`/`);let e=/^[a-z]:\//i;k.isNotRelative=t=>e.test(t)||A(t)}}))(),1),bn=new Map;function xn(e){let t=bn.get(e);if(t)return bn.delete(e),bn.set(e,t),t;let n=(0,yn.default)();if(n.add(e),bn.set(e,n),bn.size>256){let e=bn.keys().next().value;e!==void 0&&bn.delete(e)}return n}function Sn(e,t){let n=e.trim();if(n.length===0||n.startsWith(`#`))return 0;let r=xn(n),i=0;for(let e of t)e.length!==0&&r.ignores(e)&&(i+=1);return i}var Cn={"trailing-backslash":`Trailing backslash — line continuation isn't supported.`,"unmatched-bracket":`Unmatched [ — character class is open.`,"lone-bang":`Lone ! — negation needs a pattern after it.`,"leading-whitespace":`Leading whitespace — the rule may not match as expected.`,"embedded-newline":`Embedded line break — the row spans multiple lines.`};function wn(e){let t=[];if(e.length===0||e.trimStart().startsWith(`#`))return t;/[\r\n]/.test(e)&&t.push({code:`embedded-newline`,message:Cn[`embedded-newline`]}),/^\s/.test(e)&&t.push({code:`leading-whitespace`,message:Cn[`leading-whitespace`]});let n=e.trim();return n===`!`&&t.push({code:`lone-bang`,message:Cn[`lone-bang`]}),/\\$/.test(n)&&t.push({code:`trailing-backslash`,message:Cn[`trailing-backslash`]}),Tn(n,`[`)>Tn(n,`]`)&&t.push({code:`unmatched-bracket`,message:Cn[`unmatched-bracket`]}),t}function Tn(e,t){let n=0;for(let r=0;r<e.length;r++)e[r]===t&&n++;return n}var En=`https://inkeep.github.io/open-knowledge/features/ignore-patterns`,Dn=1200,On=150,kn=150,An=5e3,jn=600,Mn=400,Nn=`okignore-show-advanced`;function Pn(e){let t=(0,R.c)(3),{binding:n,synced:r}=e;if(n===null||!r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Fn,{}),t[0]=e):e=t[0],e}let i;return t[1]===n?i=t[2]:(i=(0,$.jsx)(In,{binding:n}),t[1]=n,t[2]=i),i}function Fn(){let e=(0,R.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-okignore-title`,className:`space-y-3`,"data-testid":`settings-okignore-skeleton`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`h2`,{id:`settings-okignore-title`,className:`text-base font-semibold`,children:`Ignore patterns`}),(0,$.jsx)(L,{className:`h-4 w-72`})]}),(0,$.jsx)(L,{className:`h-20 w-full`})]}),e[0]=t):t=e[0],t}function In(e){let t=(0,R.c)(70),{binding:n}=e,r;t[0]===n?r=t[1]:(r=()=>n.current(),t[0]=n,t[1]=r);let[i,a]=(0,z.useState)(r),o,s;t[2]===n?(o=t[3],s=t[4]):(o=()=>n.subscribe(e=>{a(e)}),s=[n],t[2]=n,t[3]=o,t[4]=s),(0,z.useEffect)(o,s);let{pages:c,pageMeta:l,assetPaths:u}=b(),d;t[5]!==u||t[6]!==l||t[7]!==c?(d=ar(c,l,u),t[5]=u,t[6]=l,t[7]=c,t[8]=d):d=t[8];let f=d,p,m;t[9]===i?(p=t[10],m=t[11]):(p=be(i),m=de(p),t[9]=i,t[10]=p,t[11]=m);let h=m,_=h.length===0,[v,y]=(0,z.useState)(null),x=(0,z.useRef)(null),S,C;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>()=>{x.current&&clearTimeout(x.current)},C=[],t[12]=S,t[13]=C):(S=t[12],C=t[13]),(0,z.useEffect)(S,C);let w;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>{y({key:e,ts:Date.now()}),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>y(null),Dn)},t[14]=w):w=t[14];let T=w,[k,A]=(0,z.useState)(null),j=(0,z.useRef)(null),M,N;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(N=()=>()=>{j.current&&clearTimeout(j.current)},M=[],t[15]=M,t[16]=N):(M=t[15],N=t[16]),(0,z.useEffect)(N,M);let P,F;t[17]===n?(P=t[18],F=t[19]):(P=()=>Se(e=>{e.docName===`__config__/okignore`&&n.notifyRejection(e.error)}),F=[n],t[17]=n,t[18]=P,t[19]=F),(0,z.useEffect)(P,F);let te,ne;t[20]===n?(te=t[21],ne=t[22]):(te=()=>n.subscribeRejection(e=>{let{error:t}=e,n=tr(t);A({message:n?.detail??g(t),lineNumber:n?.lineNumber,ts:Date.now()}),j.current&&clearTimeout(j.current),j.current=setTimeout(()=>A(null),An)}),ne=[n],t[20]=n,t[21]=te,t[22]=ne),(0,z.useEffect)(te,ne);let re;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(re=[],t[23]=re):re=t[23],(0,z.useEffect)(Ln,re);let ie;t[24]===n?ie=t[25]:(ie=e=>{n.patch(e)},t[24]=n,t[25]=ie);let I=ie,ae;t[26]!==I||t[27]!==p||t[28]!==h?(ae=(e,t)=>{let n=t.trim(),r=h[e];if(r&&n!==r.text){if(n.length===0){I(pe(Ee(p,e)));return}I(pe(Ce(p,e,n))),T(er(n,e))}},t[26]=I,t[27]=p,t[28]=h,t[29]=ae):ae=t[29];let oe=ae,se;t[30]!==I||t[31]!==p?(se=e=>{I(pe(Ee(p,e)))},t[30]=I,t[31]=p,t[32]=se):se=t[32];let ce=se,L;t[33]!==I||t[34]!==p||t[35]!==h.length?(L=e=>{let t=e.trim();if(t.length===0)return;let n=Te(p,t);if(n>=0){T(er(t,n));return}I(pe(le(p,t))),T(er(t,h.length))},t[33]=I,t[34]=p,t[35]=h.length,t[36]=L):L=t[36];let ue=L,me;t[37]!==I||t[38]!==p?(me=e=>{let t=String(e.active.id),n=e.over?String(e.over.id):null;if(!n||t===n)return;let r=$n(t),i=$n(n);r<0||i<0||r===i||I(pe(fe(p,r,i)))},t[37]=I,t[38]=p,t[39]=me):me=t[39];let he=me,ge;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(ge={activationConstraint:{distance:4}},t[40]=ge):ge=t[40];let _e;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(_e={coordinateGetter:D},t[41]=_e):_e=t[41];let ye=ve(E(ee,ge),E(O,_e)),xe=k===null?null:`rejection-${k.ts}`,[we,De]=cr(),Oe;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,$.jsx)(`h2`,{id:`settings-okignore-title`,className:`text-base font-semibold`,children:`Ignore patterns`}),t[42]=Oe):Oe=t[42];let ke;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[Oe,(0,$.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Hide files and folders from your knowledge base. Hidden items don’t appear in the file tree, search, or AI tools.`,` `,(0,$.jsx)(`a`,{href:En,target:`_blank`,rel:`noreferrer noopener`,className:`text-primary underline-offset-2 hover:underline`,"data-testid":`settings-okignore-primer`,children:`Learn more about patterns`}),`.`]})]}),t[43]=ke):ke=t[43];let Ae;t[44]===k?Ae=t[45]:(Ae=k===null?null:(0,$.jsx)(Vn,{rejection:k}),t[44]=k,t[45]=Ae);let je;t[46]!==n||t[47]!==f||t[48]!==ue||t[49]!==he||t[50]!==oe||t[51]!==ce||t[52]!==_||t[53]!==h||t[54]!==xe||t[55]!==v||t[56]!==ye||t[57]!==we||t[58]!==i?(je=we?(0,$.jsx)(zn,{binding:n,text:i}):_?(0,$.jsx)(Hn,{onAdd:ue,rejectionFlashKey:xe,filePaths:f}):(0,$.jsx)(Un,{patterns:h,sensors:ye,onDragEnd:he,onEdit:oe,onRemove:ce,onAdd:ue,savedFlash:v,rejectionFlashKey:xe,filePaths:f}),t[46]=n,t[47]=f,t[48]=ue,t[49]=he,t[50]=oe,t[51]=ce,t[52]=_,t[53]=h,t[54]=xe,t[55]=v,t[56]=ye,t[57]=we,t[58]=i,t[59]=je):je=t[59];let Me;t[60]!==De||t[61]!==we?(Me=()=>De(!we),t[60]=De,t[61]=we,t[62]=Me):Me=t[62];let Ne;t[63]!==we||t[64]!==Me?(Ne=(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(Bn,{enabled:we,onToggle:Me})}),t[63]=we,t[64]=Me,t[65]=Ne):Ne=t[65];let Pe;return t[66]!==Ae||t[67]!==je||t[68]!==Ne?(Pe=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-okignore-title`,className:`space-y-3`,"data-testid":`settings-okignore-section`,children:[ke,Ae,je,Ne]}),t[66]=Ae,t[67]=je,t[68]=Ne,t[69]=Pe):Pe=t[69],Pe}function Ln(){return ge(Rn)}function Rn(e){Fe.error(`Nested .okignore error in ${e.path}`,{description:e.error,id:`okignore-nested-error:${e.path}`,duration:8e3})}function zn(e){let t=(0,R.c)(25),{binding:n,text:r}=e,[i,a]=(0,z.useState)(r),o=(0,z.useRef)(r),s=(0,z.useRef)(!1),c=(0,z.useRef)(r),l=(0,z.useRef)(null),u,d;t[0]===r?(u=t[1],d=t[2]):(u=()=>{s.current||r!==o.current&&(a(r),c.current=r,o.current=r)},d=[r],t[0]=r,t[1]=u,t[2]=d),(0,z.useEffect)(u,d);let f,p;t[3]===i?(f=t[4],p=t[5]):(f=()=>{c.current=i},p=[i],t[3]=i,t[4]=f,t[5]=p),(0,z.useEffect)(f,p);let m,h;t[6]===n?(m=t[7],h=t[8]):(m=()=>()=>{l.current&&(clearTimeout(l.current),l.current=null,c.current!==o.current&&(n.patch(c.current),o.current=c.current))},h=[n],t[6]=n,t[7]=m,t[8]=h),(0,z.useEffect)(m,h);let g;t[9]===n?g=t[10]:(g=e=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,e!==o.current&&(o.current=e,n.patch(e))},Mn)},t[9]=n,t[10]=g);let _=g,v;t[11]===n?v=t[12]:(v=()=>{l.current&&=(clearTimeout(l.current),null),c.current!==o.current&&(o.current=c.current,n.patch(c.current))},t[11]=n,t[12]=v);let y=v,b;t[13]===_?b=t[14]:(b=e=>{a(e.target.value),_(e.target.value)},t[13]=_,t[14]=b);let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>{s.current=!0},t[15]=x):x=t[15];let S;t[16]===y?S=t[17]:(S=()=>{s.current=!1,y()},t[16]=y,t[17]=S);let C;t[18]===i?C=t[19]:(C=i.split(`
|
|
2
|
+
`),t[18]=i,t[19]=C);let w=Math.max(6,Math.min(20,C.length+1)),T;return t[20]!==i||t[21]!==S||t[22]!==w||t[23]!==b?(T=(0,$.jsx)(`textarea`,{value:i,onChange:b,onFocus:x,onBlur:S,spellCheck:!1,rows:w,"aria-label":`Ignore patterns (raw text)`,placeholder:`# One pattern per line.
|
|
3
|
+
# Examples:
|
|
4
|
+
# drafts/
|
|
5
|
+
# *.draft.md
|
|
6
|
+
# !keep.md`,className:`min-h-32 w-full rounded-md border border-input bg-background px-3 py-2 font-mono text-xs outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50`,"data-testid":`settings-okignore-advanced-textarea`}),t[20]=i,t[21]=S,t[22]=w,t[23]=b,t[24]=T):T=t[24],T}function Bn(e){let t=(0,R.c)(4),{enabled:n,onToggle:r}=e,i=n?`Hide advanced`:`Show advanced`,a;return t[0]!==n||t[1]!==r||t[2]!==i?(a=(0,$.jsx)(T,{type:`button`,variant:`ghost`,size:`sm`,onClick:r,"aria-pressed":n,className:`h-7 px-2 text-xs text-muted-foreground hover:text-foreground`,"data-testid":`settings-okignore-show-advanced-toggle`,children:i}),t[0]=n,t[1]=r,t[2]=i,t[3]=a):a=t[3],a}function Vn(e){let t=(0,R.c)(4),{rejection:n}=e,r=n.lineNumber?` (line ${n.lineNumber})`:``,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(_,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0`}),t[0]=i):i=t[0];let a;return t[1]!==r||t[2]!==n.message?(a=(0,$.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"data-testid":`settings-okignore-rejection-banner`,className:`flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-sm text-destructive animate-in fade-in`,children:[i,(0,$.jsxs)(`span`,{children:[`Pattern syntax error`,r,`: `,n.message]})]}),t[1]=r,t[2]=n.message,t[3]=a):a=t[3],a}function Hn(e){let t=(0,R.c)(5),{onAdd:n,rejectionFlashKey:r,filePaths:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No patterns yet. Type a folder or file name below to start hiding files.`}),t[0]=a):a=t[0];let o;return t[1]!==i||t[2]!==n||t[3]!==r?(o=(0,$.jsxs)(`div`,{className:`space-y-3 rounded-md border border-dashed p-4`,"data-testid":`settings-okignore-empty`,children:[a,(0,$.jsx)(qn,{onAdd:n,placeholder:`e.g. drafts/ or *.draft.md`,rejectionFlashKey:r,filePaths:i})]}),t[1]=i,t[2]=n,t[3]=r,t[4]=o):o=t[4],o}function Un(e){let t=(0,R.c)(29),{patterns:n,sensors:r,onDragEnd:i,onEdit:a,onRemove:o,onAdd:s,savedFlash:c,rejectionFlashKey:l,filePaths:u}=e,d;t[0]===n?d=t[1]:(d=n.map(Wn),t[0]=n,t[1]=d);let f=d,p;if(t[2]!==u||t[3]!==a||t[4]!==o||t[5]!==n||t[6]!==c){let e;t[8]!==u||t[9]!==a||t[10]!==o||t[11]!==c?(e=(e,t)=>{let n=er(e.text,t),r=c!==null&&c.key===n;return(0,$.jsx)(Gn,{sortableId:Qn(t),patternIndex:t,pattern:e,onEdit:a,onRemove:o,flashActive:r,filePaths:u},Qn(t))},t[8]=u,t[9]=a,t[10]=o,t[11]=c,t[12]=e):e=t[12],p=n.map(e),t[2]=u,t[3]=a,t[4]=o,t[5]=n,t[6]=c,t[7]=p}else p=t[7];let m;t[13]===p?m=t[14]:(m=(0,$.jsx)(`ul`,{"aria-label":`Ignore patterns`,className:`divide-y rounded-md border`,"data-testid":`settings-okignore-list`,children:p}),t[13]=p,t[14]=m);let h;t[15]!==f||t[16]!==m?(h=(0,$.jsx)(ne,{items:f,strategy:re,children:m}),t[15]=f,t[16]=m,t[17]=h):h=t[17];let g;t[18]!==i||t[19]!==r||t[20]!==h?(g=(0,$.jsx)(A,{sensors:r,collisionDetection:ye,onDragEnd:i,children:h}),t[18]=i,t[19]=r,t[20]=h,t[21]=g):g=t[21];let _;t[22]!==u||t[23]!==s||t[24]!==l?(_=(0,$.jsx)(qn,{onAdd:s,placeholder:`Add another pattern`,rejectionFlashKey:l,filePaths:u}),t[22]=u,t[23]=s,t[24]=l,t[25]=_):_=t[25];let v;return t[26]!==g||t[27]!==_?(v=(0,$.jsxs)(`div`,{className:`space-y-2`,children:[g,_]}),t[26]=g,t[27]=_,t[28]=v):v=t[28],v}function Wn(e,t){return Qn(t)}function Gn(e){let t=(0,R.c)(41),{sortableId:n,patternIndex:r,pattern:i,onEdit:a,onRemove:o,flashActive:s,filePaths:c}=e,l;t[0]===n?l=t[1]:(l={id:n},t[0]=n,t[1]=l);let{attributes:u,listeners:d,setNodeRef:f,transform:p,transition:m,isDragging:h}=Oe(l),g;t[2]===p?g=t[3]:(g=P.Transform.toString(p),t[2]=p,t[3]=g);let _=h?.5:void 0,v=h?1:void 0,y;t[4]!==g||t[5]!==_||t[6]!==v||t[7]!==m?(y={transform:g,transition:m,opacity:_,zIndex:v},t[4]=g,t[5]=_,t[6]=v,t[7]=m,t[8]=y):y=t[8];let b=y,x=`Drag ${i.text} to reorder`,S;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(j,{className:`size-3.5`}),t[9]=S):S=t[9];let C;t[10]!==u||t[11]!==d||t[12]!==x?(C=(0,$.jsx)(T,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`settings-okignore-drag-handle`,"aria-label":x,...u,...d,className:`h-7 w-4 shrink-0 cursor-grab touch-none px-0 text-muted-foreground/40 hover:text-foreground focus-visible:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring active:cursor-grabbing`,children:S}),t[10]=u,t[11]=d,t[12]=x,t[13]=C):C=t[13];let w;t[14]!==a||t[15]!==r?(w=e=>a(r,e),t[14]=a,t[15]=r,t[16]=w):w=t[16];let E;t[17]!==c||t[18]!==i.text||t[19]!==r||t[20]!==w?(E=(0,$.jsx)(Kn,{patternIndex:r,initialText:i.text,onCommit:w,filePaths:c}),t[17]=c,t[18]=i.text,t[19]=r,t[20]=w,t[21]=E):E=t[21];let D;t[22]===s?D=t[23]:(D=(0,$.jsx)(Zn,{visible:s}),t[22]=s,t[23]=D);let O=`Remove ${i.text}`,k;t[24]!==o||t[25]!==r?(k=()=>o(r),t[24]=o,t[25]=r,t[26]=k):k=t[26];let A;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(Ae,{className:`size-3.5`}),t[27]=A):A=t[27];let M;t[28]!==O||t[29]!==k?(M=(0,$.jsx)(T,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`settings-okignore-remove`,"aria-label":O,onClick:k,className:`h-7 w-7 shrink-0 text-muted-foreground hover:text-destructive`,children:A}),t[28]=O,t[29]=k,t[30]=M):M=t[30];let N;t[31]!==E||t[32]!==D||t[33]!==M||t[34]!==C?(N=(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[C,E,D,M]}),t[31]=E,t[32]=D,t[33]=M,t[34]=C,t[35]=N):N=t[35];let F;return t[36]!==r||t[37]!==f||t[38]!==b||t[39]!==N?(F=(0,$.jsx)(`li`,{ref:f,style:b,className:`flex flex-col gap-0.5 px-2 py-1.5`,"data-testid":`settings-okignore-row`,"data-pattern-index":r,children:N}),t[36]=r,t[37]=f,t[38]=b,t[39]=N,t[40]=F):F=t[40],F}function Kn(e){let t=(0,R.c)(28),{patternIndex:n,initialText:r,onCommit:i,filePaths:a}=e,[o,s]=(0,z.useState)(r),c=(0,z.useRef)(r),l=(0,z.useRef)(!1),u,d;t[0]===r?(u=t[1],d=t[2]):(u=()=>{l.current||r!==c.current&&(s(r),c.current=r)},d=[r],t[0]=r,t[1]=u,t[2]=d),(0,z.useEffect)(u,d);let f=nr(o),p=rr(o,a),m;t[3]!==o||t[4]!==i?(m=()=>{o!==c.current&&(c.current=o,i(o))},t[3]=o,t[4]=i,t[5]=m):m=t[5];let h=m,g,_;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>s(e.target.value),_=()=>{l.current=!0},t[6]=g,t[7]=_):(g=t[6],_=t[7]);let v;t[8]===h?v=t[9]:(v=()=>{l.current=!1,h()},t[8]=h,t[9]=v);let y;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{e.key===`Enter`?(e.preventDefault(),e.currentTarget.blur()):e.key===`Escape`&&(e.preventDefault(),s(c.current),e.currentTarget.blur())},t[10]=y):y=t[10];let b=`Pattern ${n+1}`,x=f.length>0?`border-amber-500/60 focus-visible:ring-amber-500/40`:``,S;t[11]===x?S=t[12]:(S=w(`h-7 flex-1 font-mono text-xs`,x),t[11]=x,t[12]=S);let C;t[13]!==o||t[14]!==S||t[15]!==v||t[16]!==b?(C=(0,$.jsx)(He,{value:o,onChange:g,onFocus:_,onBlur:v,onKeyDown:y,"aria-label":b,className:S,"data-testid":`settings-okignore-row-input`}),t[13]=o,t[14]=S,t[15]=v,t[16]=b,t[17]=C):C=t[17];let T;t[18]===f?T=t[19]:(T=(0,$.jsx)(Jn,{warnings:f}),t[18]=f,t[19]=T);let E;t[20]!==C||t[21]!==T?(E=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[C,T]}),t[20]=C,t[21]=T,t[22]=E):E=t[22];let D;t[23]===p?D=t[24]:(D=(0,$.jsx)(ir,{count:p}),t[23]=p,t[24]=D);let O;return t[25]!==E||t[26]!==D?(O=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[E,D]}),t[25]=E,t[26]=D,t[27]=O):O=t[27],O}function qn(e){let t=(0,R.c)(30),{onAdd:n,placeholder:r,rejectionFlashKey:i,filePaths:a}=e,[o,s]=(0,z.useState)(``),c=nr(o),l=rr(o,a),u=ur(i),d;t[0]!==n||t[1]!==o?(d=()=>{let e=o.trim();e.length!==0&&(n(e),s(``))},t[0]=n,t[1]=o,t[2]=d):d=t[2];let f=d,p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>s(e.target.value),t[3]=p):p=t[3];let m;t[4]===f?m=t[5]:(m=e=>{e.key===`Enter`&&(e.preventDefault(),f())},t[4]=f,t[5]=m);let h=u?`border-destructive ring-2 ring-destructive/30 focus-visible:ring-destructive/50`:c.length>0?`border-amber-500/60 focus-visible:ring-amber-500/40`:``,g;t[6]===h?g=t[7]:(g=w(`h-8 text-sm`,h),t[6]=h,t[7]=g);let _=u?`true`:void 0,v;t[8]!==o||t[9]!==r||t[10]!==m||t[11]!==g||t[12]!==_?(v=(0,$.jsx)(He,{value:o,onChange:p,onKeyDown:m,placeholder:r,"aria-label":`New ignore pattern`,className:g,"data-testid":`settings-okignore-add-input`,"data-rejection-flashing":_}),t[8]=o,t[9]=r,t[10]=m,t[11]=g,t[12]=_,t[13]=v):v=t[13];let y;t[14]===c?y=t[15]:(y=(0,$.jsx)(Jn,{warnings:c}),t[14]=c,t[15]=y);let b;t[16]===o?b=t[17]:(b=o.trim(),t[16]=o,t[17]=b);let x=b.length===0,S;t[18]!==f||t[19]!==x?(S=(0,$.jsx)(T,{size:`sm`,onClick:f,disabled:x,"data-testid":`settings-okignore-add-button`,children:`Add pattern`}),t[18]=f,t[19]=x,t[20]=S):S=t[20];let C;t[21]!==S||t[22]!==v||t[23]!==y?(C=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[v,y,S]}),t[21]=S,t[22]=v,t[23]=y,t[24]=C):C=t[24];let E;t[25]===l?E=t[26]:(E=(0,$.jsx)(ir,{count:l}),t[25]=l,t[26]=E);let D;return t[27]!==C||t[28]!==E?(D=(0,$.jsxs)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`settings-okignore-add`,children:[C,E]}),t[27]=C,t[28]=E,t[29]=D):D=t[29],D}function Jn(e){let t=(0,R.c)(17),{warnings:n}=e;if(n.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`flex w-4 shrink-0 justify-center`,"data-testid":`settings-okignore-warning-indicator`,"data-warnings":`0`}),t[0]=e):e=t[0],e}let r;t[1]===n?r=t[2]:(r=n.map(Xn).join(` `),t[1]=n,t[2]=r);let i=r,a=`Pattern warnings: ${i}`,o=String(n.length),s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(_,{"aria-hidden":`true`,className:`size-3.5`}),t[3]=s):s=t[3];let c;t[4]===i?c=t[5]:(c=(0,$.jsx)(`span`,{className:`sr-only`,children:i}),t[4]=i,t[5]=c);let l;t[6]!==a||t[7]!==o||t[8]!==c?(l=(0,$.jsx)(ze,{asChild:!0,children:(0,$.jsxs)(`span`,{role:`status`,"aria-live":`polite`,"aria-label":a,className:`flex w-4 shrink-0 cursor-help justify-center text-amber-500`,"data-testid":`settings-okignore-warning-indicator`,"data-warnings":o,children:[s,c]})}),t[6]=a,t[7]=o,t[8]=c,t[9]=l):l=t[9];let u;t[10]===n?u=t[11]:(u=n.map(Yn),t[10]=n,t[11]=u);let d;t[12]===u?d=t[13]:(d=(0,$.jsx)(Be,{side:`top`,className:`max-w-xs`,children:(0,$.jsx)(`ul`,{className:`list-disc space-y-1 pl-4`,children:u})}),t[12]=u,t[13]=d);let f;return t[14]!==l||t[15]!==d?(f=(0,$.jsxs)(Ve,{children:[l,d]}),t[14]=l,t[15]=d,t[16]=f):f=t[16],f}function Yn(e){return(0,$.jsx)(`li`,{children:e.message},e.code)}function Xn(e){return e.message}function Zn(e){let t=(0,R.c)(4),{visible:n}=e,r;t[0]===n?r=t[1]:(r=n?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ke,{"aria-hidden":`true`,className:`size-3.5`}),(0,$.jsx)(`span`,{className:`sr-only`,children:`Saved`})]}):null,t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,$.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`flex w-4 shrink-0 justify-center text-emerald-600`,"data-testid":`settings-okignore-saved-indicator`,children:r}),t[2]=r,t[3]=i),i}function Qn(e){return`okignore-pattern-${e}`}function $n(e){let t=e.match(/^okignore-pattern-(\d+)$/);if(!t)return-1;let n=Number.parseInt(t[1]??``,10);return Number.isNaN(n)?-1:n}function er(e,t){return`${t}::${e}`}function tr(e){return!m(e)||e.code!==`OKIGNORE_INVALID`?null:{detail:e.detail,lineNumber:e.lineNumber}}function nr(e){let t=(0,R.c)(5),n;t[0]===e?n=t[1]:(n=()=>e.length===0?[]:wn(e),t[0]=e,t[1]=n);let[r,i]=(0,z.useState)(n),a,o;return t[2]===e?(a=t[3],o=t[4]):(a=()=>{if(e.length===0){i([]);return}let t=setTimeout(()=>{i(wn(e))},On);return()=>clearTimeout(t)},o=[e],t[2]=e,t[3]=a,t[4]=o),(0,z.useEffect)(a,o),r}function rr(e,t){let n=(0,R.c)(9),r;n[0]===e?r=n[1]:(r=e.trim(),n[0]=e,n[1]=r);let i=r,a;n[2]!==t||n[3]!==i?(a=()=>i.length===0?null:Sn(i,t),n[2]=t,n[3]=i,n[4]=a):a=n[4];let[o,s]=(0,z.useState)(a),c,l;return n[5]!==t||n[6]!==i?(c=()=>{if(i.length===0){s(null);return}let e=setTimeout(()=>{s(Sn(i,t))},kn);return()=>clearTimeout(e)},l=[i,t],n[5]=t,n[6]=i,n[7]=c,n[8]=l):(c=n[7],l=n[8]),(0,z.useEffect)(c,l),o}function ir(e){let t=(0,R.c)(11),{count:n}=e;if(n===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`block h-3.5`,"data-testid":`settings-okignore-preview`,"data-preview-state":`hidden`}),t[0]=e):e=t[0],e}let r=n===0,i=String(n),a=r?`text-muted-foreground/70`:`text-muted-foreground`,o;t[1]===a?o=t[2]:(o=w(`block text-xs`,a),t[1]=a,t[2]=o);let s=n===1?`file`:`files`,c;t[3]===r?c=t[4]:(c=r?(0,$.jsx)(`span`,{className:`ml-1 text-muted-foreground/60`,children:`(some may already be hidden by other rules)`}):null,t[3]=r,t[4]=c);let l;return t[5]!==n||t[6]!==i||t[7]!==o||t[8]!==s||t[9]!==c?(l=(0,$.jsxs)(`span`,{role:`status`,"aria-live":`polite`,"data-testid":`settings-okignore-preview`,"data-preview-state":`visible`,"data-preview-count":i,className:o,children:[`matches `,n,` `,s,c]}),t[5]=n,t[6]=i,t[7]=o,t[8]=s,t[9]=c,t[10]=l):l=t[10],l}function ar(e,t,n){let r=[];for(let n of e){let e=t.get(n)?.docExt??`.md`;r.push(n+e)}for(let e of n)r.push(e);return r}function or(){try{return globalThis.localStorage?.getItem(Nn)===`true`}catch{return!1}}function sr(e){try{globalThis.localStorage?.setItem(Nn,e?`true`:`false`)}catch(e){console.debug(`[OkignoreSection] localStorage unavailable; advanced toggle will not persist:`,e)}}function cr(){let e=(0,R.c)(3),[t,n]=(0,z.useState)(lr),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=e=>{n(e),sr(e)},e[0]=r):r=e[0];let i=r,a;return e[1]===t?a=e[2]:(a=[t,i],e[1]=t,e[2]=a),a}function lr(){return or()}function ur(e){let t=(0,R.c)(3),[n,r]=(0,z.useState)(!1),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(e===null)return;r(!0);let t=setTimeout(()=>r(!1),jn);return()=>clearTimeout(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,z.useEffect)(i,a),n}function dr(e){let t=(0,R.c)(98),{config:n}=e,{state:r,refresh:i}=_e(``),[a,o]=(0,z.useState)(null),[s,c]=(0,z.useState)(null),[l,u]=(0,z.useState)(!1),[d,f]=(0,z.useState)(!1),p,m,h,g,_,v,y,b,x,S;if(t[0]!==n.badge||t[1]!==n.description||t[2]!==n.emptyMessage||t[3]!==n.itemNoun||t[4]!==n.scope||t[5]!==n.settingsId||t[6]!==n.target||t[7]!==n.testIdPrefix||t[8]!==n.title||t[9]!==d||t[10]!==i||t[11]!==r.data||t[12]!==r.message||t[13]!==r.status){S=Symbol.for(`react.early_return_sentinel`);bb0:{let e=r.status===`ready`?(r.data.folder.templates_available??[]).filter(e=>e.scope===n.scope).sort(pr):[],a;if(t[24]!==n.target||t[25]!==i?(a=async function(e){u(!0);let t=await ue(``,e.name,n.target);if(u(!1),!t.ok){Fe.error(`Delete failed: ${t.error}`);return}Fe.success(`Template "${e.name}" deleted`),c(null),i()},t[24]=n.target,t[25]=i,t[26]=a):a=t[26],m=a,r.status===`error`){let e=`settings-${n.testIdPrefix}-section`,a;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>f(!0),t[27]=a):a=t[27];let o;t[28]!==n.description||t[29]!==n.settingsId||t[30]!==n.testIdPrefix||t[31]!==n.title?(o=(0,$.jsx)(mr,{settingsId:n.settingsId,testIdPrefix:n.testIdPrefix,title:n.title,description:n.description,onNewClick:a}),t[28]=n.description,t[29]=n.settingsId,t[30]=n.testIdPrefix,t[31]=n.title,t[32]=o):o=t[32];let s;t[33]!==n.itemNoun||t[34]!==r.message?(s=(0,$.jsxs)(`div`,{className:`rounded-lg border border-destructive/30 bg-destructive/5 p-4 text-sm text-destructive`,role:`alert`,children:[`Failed to load `,n.itemNoun,`s: `,r.message]}),t[33]=n.itemNoun,t[34]=r.message,t[35]=s):s=t[35];let c;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(c=new Set,t[36]=c):c=t[36];let l;t[37]!==n.target||t[38]!==d||t[39]!==i?(l=(0,$.jsx)(ce,{folderPath:``,existingNames:c,open:d,onOpenChange:f,onCreated:i,target:n.target}),t[37]=n.target,t[38]=d,t[39]=i,t[40]=l):l=t[40];let u;t[41]!==n.settingsId||t[42]!==e||t[43]!==o||t[44]!==s||t[45]!==l?(u=(0,$.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":n.settingsId,"data-testid":e,children:[o,s,l]}),t[41]=n.settingsId,t[42]=e,t[43]=o,t[44]=s,t[45]=l,t[46]=u):u=t[46],S=u;break bb0}if(r.status===`idle`||r.status===`loading`){let e=`settings-${n.testIdPrefix}-section`,r;t[47]!==n.description||t[48]!==n.settingsId||t[49]!==n.testIdPrefix||t[50]!==n.title?(r=(0,$.jsx)(mr,{settingsId:n.settingsId,testIdPrefix:n.testIdPrefix,title:n.title,description:n.description}),t[47]=n.description,t[48]=n.settingsId,t[49]=n.testIdPrefix,t[50]=n.title,t[51]=r):r=t[51];let i;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsxs)(`div`,{className:`rounded-lg border bg-card p-3 space-y-2`,children:[(0,$.jsx)(L,{className:`h-12 w-full`}),(0,$.jsx)(L,{className:`h-12 w-full`})]}),t[52]=i):i=t[52];let a;t[53]!==n.settingsId||t[54]!==e||t[55]!==r?(a=(0,$.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":n.settingsId,"data-testid":e,children:[r,i]}),t[53]=n.settingsId,t[54]=e,t[55]=r,t[56]=a):a=t[56],S=a;break bb0}_=`space-y-3`,v=n.settingsId,y=`settings-${n.testIdPrefix}-section`;let s;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>f(!0),t[57]=s):s=t[57],t[58]!==n.description||t[59]!==n.settingsId||t[60]!==n.testIdPrefix||t[61]!==n.title?(b=(0,$.jsx)(mr,{settingsId:n.settingsId,testIdPrefix:n.testIdPrefix,title:n.title,description:n.description,onNewClick:s}),t[58]=n.description,t[59]=n.settingsId,t[60]=n.testIdPrefix,t[61]=n.title,t[62]=b):b=t[62];let l=e.length===0?(0,$.jsx)(`p`,{className:`px-3 py-4 text-sm text-muted-foreground`,"data-testid":`settings-${n.testIdPrefix}-empty`,children:n.emptyMessage}):(0,$.jsx)(`ul`,{className:`space-y-1 p-2`,"data-testid":`settings-${n.testIdPrefix}-list`,children:e.map(e=>(0,$.jsx)(hr,{template:e,badge:n.badge,testIdPrefix:n.testIdPrefix,onEdit:()=>o(e),onDelete:()=>c(e)},e.name))});t[63]===l?x=t[64]:(x=(0,$.jsx)(`div`,{className:`rounded-lg border bg-card`,children:l}),t[63]=l,t[64]=x),p=ce,h=``,g=new Set(e.map(fr))}t[0]=n.badge,t[1]=n.description,t[2]=n.emptyMessage,t[3]=n.itemNoun,t[4]=n.scope,t[5]=n.settingsId,t[6]=n.target,t[7]=n.testIdPrefix,t[8]=n.title,t[9]=d,t[10]=i,t[11]=r.data,t[12]=r.message,t[13]=r.status,t[14]=p,t[15]=m,t[16]=h,t[17]=g,t[18]=_,t[19]=v,t[20]=y,t[21]=b,t[22]=x,t[23]=S}else p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],y=t[20],b=t[21],x=t[22],S=t[23];if(S!==Symbol.for(`react.early_return_sentinel`))return S;let C;t[65]!==p||t[66]!==n.target||t[67]!==d||t[68]!==i||t[69]!==h||t[70]!==g?(C=(0,$.jsx)(p,{folderPath:h,existingNames:g,open:d,onOpenChange:f,onCreated:i,target:n.target}),t[65]=p,t[66]=n.target,t[67]=d,t[68]=i,t[69]=h,t[70]=g,t[71]=C):C=t[71];let w;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>{e||o(null)},t[72]=w):w=t[72];let T;t[73]!==n.target||t[74]!==a||t[75]!==i?(T=(0,$.jsx)(me,{folderPath:``,template:a,onOpenChange:w,onSaved:i,target:n.target}),t[73]=n.target,t[74]=a,t[75]=i,t[76]=T):T=t[76];let E=!!s,D;t[77]===l?D=t[78]:(D=e=>{!e&&!l&&c(null)},t[77]=l,t[78]=D);let O;t[79]!==n.deleteWarning||t[80]!==n.itemNoun||t[81]!==s||t[82]!==l||t[83]!==m?(O=s&&(0,$.jsx)(De,{itemName:`${n.itemNoun} "${s.name}"`,isSubmitting:l,onDelete:()=>m(s),customDescription:n.deleteWarning}),t[79]=n.deleteWarning,t[80]=n.itemNoun,t[81]=s,t[82]=l,t[83]=m,t[84]=O):O=t[84];let k;t[85]!==E||t[86]!==D||t[87]!==O?(k=(0,$.jsx)(Pe,{open:E,onOpenChange:D,children:O}),t[85]=E,t[86]=D,t[87]=O,t[88]=k):k=t[88];let A;return t[89]!==T||t[90]!==k||t[91]!==_||t[92]!==v||t[93]!==y||t[94]!==b||t[95]!==x||t[96]!==C?(A=(0,$.jsxs)(`section`,{className:_,"aria-labelledby":v,"data-testid":y,children:[b,x,C,T,k]}),t[89]=T,t[90]=k,t[91]=_,t[92]=v,t[93]=y,t[94]=b,t[95]=x,t[96]=C,t[97]=A):A=t[97],A}function fr(e){return e.name}function pr(e,t){let n=(e.title??e.name).toLowerCase(),r=(t.title??t.name).toLowerCase();return n.localeCompare(r)}function mr(e){let t=(0,R.c)(14),{settingsId:n,testIdPrefix:r,title:i,description:a,onNewClick:o}=e,s;t[0]!==n||t[1]!==i?(s=(0,$.jsx)(`h2`,{id:n,className:`text-base font-semibold`,children:i}),t[0]=n,t[1]=i,t[2]=s):s=t[2];let c;t[3]===a?c=t[4]:(c=(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:a}),t[3]=a,t[4]=c);let l;t[5]!==s||t[6]!==c?(l=(0,$.jsxs)(`div`,{children:[s,c]}),t[5]=s,t[6]=c,t[7]=l):l=t[7];let u;t[8]!==o||t[9]!==r?(u=o?(0,$.jsxs)(T,{variant:`outline`,size:`sm`,className:`font-mono uppercase shrink-0`,onClick:o,"data-testid":`settings-${r}-new-button`,children:[(0,$.jsx)(ie,{className:`size-3.5`,"aria-hidden":!0}),`New template`]}):null,t[8]=o,t[9]=r,t[10]=u):u=t[10];let d;return t[11]!==l||t[12]!==u?(d=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[l,u]}),t[11]=l,t[12]=u,t[13]=d):d=t[13],d}function hr(e){let t=(0,R.c)(41),{template:n,badge:r,testIdPrefix:i,onEdit:c,onDelete:l}=e,u=n.title&&n.title!==n.name,d=`settings-${i}-row`,f=`settings-${i}-row-edit`,p=n.title??n.name,m;t[0]===p?m=t[1]:(m=(0,$.jsx)(`span`,{className:`font-medium truncate`,children:p}),t[0]=p,t[1]=m);let h;t[2]!==u||t[3]!==n.name?(h=u?(0,$.jsx)(`code`,{className:`font-mono text-xs text-muted-foreground shrink-0`,children:n.name}):null,t[2]=u,t[3]=n.name,t[4]=h):h=t[4];let g;t[5]!==r.label||t[6]!==r.variant?(g=(0,$.jsx)(s,{variant:r.variant,className:`ml-auto shrink-0 text-2xs`,children:r.label}),t[5]=r.label,t[6]=r.variant,t[7]=g):g=t[7];let _;t[8]!==m||t[9]!==h||t[10]!==g?(_=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[m,h,g]}),t[8]=m,t[9]=h,t[10]=g,t[11]=_):_=t[11];let v;t[12]===n.description?v=t[13]:(v=n.description?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground truncate mt-0.5`,children:n.description}):null,t[12]=n.description,t[13]=v);let y;t[14]!==c||t[15]!==f||t[16]!==_||t[17]!==v?(y=(0,$.jsxs)(`button`,{type:`button`,onClick:c,className:`min-w-0 flex-1 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm`,"data-testid":f,children:[_,v]}),t[14]=c,t[15]=f,t[16]=_,t[17]=v,t[18]=y):y=t[18];let b=`Actions for ${n.title??n.name}`,x;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(k,{className:`size-4`,"aria-hidden":!0}),t[19]=x):x=t[19];let S;t[20]===b?S=t[21]:(S=(0,$.jsx)(I,{asChild:!0,children:(0,$.jsx)(T,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 data-[state=open]:opacity-100`,"aria-label":b,children:x})}),t[20]=b,t[21]=S);let C=`settings-${i}-row-edit-menuitem`,w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(o,{"aria-hidden":!0}),t[22]=w):w=t[22];let E;t[23]!==c||t[24]!==C?(E=(0,$.jsxs)(M,{onSelect:c,"data-testid":C,children:[w,`Edit`]}),t[23]=c,t[24]=C,t[25]=E):E=t[25];let D=`settings-${i}-row-delete-menuitem`,O;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(a,{"aria-hidden":!0}),t[26]=O):O=t[26];let A;t[27]!==l||t[28]!==D?(A=(0,$.jsxs)(M,{variant:`destructive`,onSelect:l,"data-testid":D,children:[O,`Delete`]}),t[27]=l,t[28]=D,t[29]=A):A=t[29];let j;t[30]!==E||t[31]!==A?(j=(0,$.jsxs)(te,{align:`end`,children:[E,A]}),t[30]=E,t[31]=A,t[32]=j):j=t[32];let N;t[33]!==S||t[34]!==j?(N=(0,$.jsxs)(F,{children:[S,j]}),t[33]=S,t[34]=j,t[35]=N):N=t[35];let P;return t[36]!==d||t[37]!==N||t[38]!==y||t[39]!==n.name?(P=(0,$.jsxs)(`li`,{className:`group flex items-center gap-2 rounded-md px-2 py-2 hover:bg-muted/50 text-sm`,"data-testid":d,"data-template-name":n.name,children:[y,N]}),t[36]=d,t[37]=N,t[38]=y,t[39]=n.name,t[40]=P):P=t[40],P}function gr(){let e=(0,R.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)($.Fragment,{children:[`Stored at `,(0,$.jsx)(`code`,{className:`font-mono`,children:`.ok/templates/`}),` in this project. Available in every folder (folder-scoped templates can override by filename).`]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(dr,{config:{scope:`local`,target:`project`,title:`Project templates`,description:t,emptyMessage:`No project templates yet. Create one to make it available everywhere in this project. Folder-scoped templates live on each folder's overview page.`,deleteWarning:`This permanently removes the template from this project's .ok/templates/ directory. Agents and folders that reference it by name will fail until it's recreated.`,itemNoun:`project template`,badge:{label:`project`,variant:`gray`},settingsId:`settings-project-templates-title`,testIdPrefix:`project-templates`}}),e[1]=n):n=e[1],n}function _r(e,t){if(e.length===0)throw Error(`buildPatch: path must be non-empty`);let[n,...r]=e;return r.length===0?{[String(n)]:t}:{[String(n)]:_r(r,t)}}function vr(e){let t=e;for(let e=0;e<16;e++){if(t==null)return;let e=t?._zod?.def;if(e?.type===`default`){let t=e.defaultValue;return typeof t==`function`?t():t}let n=t?._zod?.def?.innerType;if(n===void 0)return;t=n}}function yr(e){let t=e;for(let e=0;e<16;e++){if(t==null)return;let e=t?._zod?.def;if(!e)return;if(e.type===`default`||e.type===`optional`||e.type===`nullable`){t=e.innerType;continue}return e.type}}function br(e){let t=e;for(let e=0;e<16;e++){if(t==null)return;let e=t?._zod?.def;if(!e)return;if(e.type===`enum`)return e.entries?Object.values(e.entries):void 0;if(e.innerType!==void 0){t=e.innerType;continue}return}}function xr(){let e=(0,R.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)($.Fragment,{children:[`Stored at `,(0,$.jsx)(`code`,{className:`font-mono`,children:`~/.ok/templates/`}),`. Available in every OK project you open with this user account.`]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(dr,{config:{scope:`user`,target:`user`,title:`User templates`,description:t,emptyMessage:`No user templates yet. Create one to make it available in every OK project you open with this user account.`,deleteWarning:`This permanently removes the template from ~/.ok/templates/. It will no longer appear in any of your OK projects.`,itemNoun:`user template`,badge:{label:`user`,variant:`primary`},settingsId:`settings-user-templates-title`,testIdPrefix:`user-templates`}}),e[1]=n):n=e[1],n}function Sr(e){let t=(0,R.c)(14),n;t[0]===e?n=t[1]:(n=e.current(),t[0]=e,t[1]=n);let r=n,i;t[2]===r?i=t[3]:(i={defaultValues:r,mode:`onBlur`},t[2]=r,t[3]=i);let a=cn(i),o,s;t[4]!==e||t[5]!==a?(o=()=>e.subscribe(e=>{Cr(a,e)}),s=[e,a],t[4]=e,t[5]=a,t[6]=o,t[7]=s):(o=t[6],s=t[7]),(0,z.useEffect)(o,s);let c;t[8]!==e||t[9]!==a?(c=t=>wr(a,e,t),t[8]=e,t[9]=a,t[10]=c):c=t[10];let l=c,u;return t[11]!==l||t[12]!==a?(u={form:a,commitField:l},t[11]=l,t[12]=a,t[13]=u):u=t[13],u}function Cr(e,t){e.reset(t,{keepDirtyValues:!0,keepDirty:!0,keepTouched:!0})}function wr(e,t,n){let r=e.getValues(n),i=_r(Dr(n),r),a=t.patch(i);if(a.ok)return e.clearErrors(n),e.resetField(n,{defaultValue:r,keepError:!1}),!0;if(m(a.error)&&a.error.code===`SCHEMA_INVALID`&&a.error.issues.length>0){e.clearErrors(n);for(let t of a.error.issues){let r=t.path.length>0?t.path.map(String).join(`.`):n;e.setError(r,{type:`config-binding`,message:t.message})}}else e.setError(n,{type:`config-binding`,message:Tr(a.error,n)});return!1}function Tr(e,t){if(m(e)&&e.code===`SCHEMA_INVALID`){let n=e.issues.find(e=>Er(e,t));if(n)return n.message}return g(e)}function Er(e,t){return e.path.map(String).join(`.`)===t}function Dr(e){return e.split(`.`)}var Or=[{path:[`appearance`,`theme`],label:`Theme`,description:`Light, dark, or follow the OS.`,control:`enum-toggle`}];function kr(e,t){let n=(0,R.c)(4),[r,i]=(0,z.useState)(null),a,o;return n[0]!==e||n[1]!==t?(a=()=>{if(!t||e===null){i(null);return}let n=new d,r=new u({url:e,name:y,document:n}),a=p(r,`user`),o={provider:r,binding:a,synced:!1},s=()=>{i(e=>e?.provider===r?{...e,synced:!0}:e)};return r.on(`synced`,s),i(o),()=>{r.off(`synced`,s),a.dispose(),r.destroy(),n.destroy(),i(null)}},o=[e,t],n[0]=e,n[1]=t,n[2]=a,n[3]=o):(a=n[2],o=n[3]),(0,z.useEffect)(a,o),r}function Ar(e){let t=(0,R.c)(29),{open:n,onOpenChange:r}=e,{collabUrl:i}=l(),a=kr(i,n),{okignoreBinding:o,okignoreSynced:s}=se(),[c,u]=(0,z.useState)(`preferences`),d,f;t[0]===n?(d=t[1],f=t[2]):(d=()=>{n&&u(`preferences`)},f=[n],t[0]=n,t[1]=d,t[2]=f),(0,z.useEffect)(d,f);let p=i!==null,{desktopPresent:m}=xe(),h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(h={id:`user`,label:`User`,enabled:!0,items:[{id:`preferences`,label:`Preferences`},{id:`user-templates`,label:`User templates`}]},t[3]=h):h=t[3];let g;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(g=[{id:`sync`,label:`Sync`},{id:`project-templates`,label:`Templates`},{id:`okignore`,label:`Ignore patterns`}],t[4]=g):g=t[4];let _;t[5]===p?_=t[6]:(_={id:`project`,label:`This project`,enabled:p,items:g},t[5]=p,t[6]=_);let v;t[7]===m?v=t[8]:(v={id:`integrations`,label:`Integrations`,enabled:!0,items:m?[{id:`claude-desktop`,label:`Claude Desktop`}]:[]},t[7]=m,t[8]=v);let y;t[9]!==_||t[10]!==v?(y=[h,_,v],t[9]=_,t[10]=v,t[11]=y):y=t[11];let b=y,x,S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(Me,{className:`sr-only`,children:`Settings`}),S=(0,$.jsx)(je,{className:`sr-only`,children:`Configure user, project, and integration settings.`}),t[12]=x,t[13]=S):(x=t[12],S=t[13]);let C;t[14]!==c||t[15]!==b?(C=(0,$.jsx)(jr,{groups:b,activeId:c,onSelect:u}),t[14]=c,t[15]=b,t[16]=C):C=t[16];let w=a?.synced?a.binding:null,T;t[17]!==c||t[18]!==o||t[19]!==s||t[20]!==w?(T=(0,$.jsx)(`div`,{className:`min-h-0 overflow-y-auto overscroll-contain subtle-scrollbar p-6`,children:(0,$.jsx)(Nr,{activeId:c,userBinding:w,okignoreBinding:o,okignoreSynced:s})}),t[17]=c,t[18]=o,t[19]=s,t[20]=w,t[21]=T):T=t[21];let E;t[22]!==C||t[23]!==T?(E=(0,$.jsxs)(Ne,{className:`grid h-[700px] max-h-[calc(100dvh-4rem)] w-[900px] max-w-[calc(100%-2rem)] grid-cols-[220px_1fr] gap-0 overflow-hidden p-0 sm:max-w-[900px]`,"data-testid":`settings-dialog`,children:[x,S,C,T]}),t[22]=C,t[23]=T,t[24]=E):E=t[24];let D;return t[25]!==r||t[26]!==n||t[27]!==E?(D=(0,$.jsx)(Pe,{open:n,onOpenChange:r,children:E}),t[25]=r,t[26]=n,t[27]=E,t[28]=D):D=t[28],D}function jr(e){let t=(0,R.c)(9),{groups:n,activeId:r,onSelect:i}=e,a;if(t[0]!==r||t[1]!==n||t[2]!==i){let e;t[4]!==r||t[5]!==i?(e=e=>(0,$.jsx)(Mr,{group:e,activeId:r,onSelect:i},e.id),t[4]=r,t[5]=i,t[6]=e):e=t[6],a=n.map(e),t[0]=r,t[1]=n,t[2]=i,t[3]=a}else a=t[3];let o;return t[7]===a?o=t[8]:(o=(0,$.jsx)(`aside`,{"aria-label":`Settings sections`,className:`h-full overflow-y-auto overscroll-contain subtle-scrollbar border-r bg-muted/30 px-3 py-4`,children:(0,$.jsx)(`nav`,{children:a})}),t[7]=a,t[8]=o),o}function Mr(e){let t=(0,R.c)(26),{group:n,activeId:r,onSelect:i}=e;if(n.items.length===0)return null;let a=`settings-group-${n.id}`,o=`${a}-caption`,s=n.enabled?void 0:o,c=n.enabled?`text-muted-foreground/80`:`text-muted-foreground/50`,l;t[0]===c?l=t[1]:(l=w(`mb-1 px-2 text-xs font-semibold uppercase tracking-wide font-mono`,c),t[0]=c,t[1]=l);let u;t[2]!==n.label||t[3]!==a||t[4]!==s||t[5]!==l?(u=(0,$.jsx)(`h2`,{id:a,"aria-describedby":s,className:l,children:n.label}),t[2]=n.label,t[3]=a,t[4]=s,t[5]=l,t[6]=u):u=t[6];let d;t[7]!==o||t[8]!==n.enabled?(d=n.enabled?null:(0,$.jsx)(`p`,{id:o,className:`mb-1 px-2 text-xs italic text-muted-foreground/60`,children:`Open a project to edit.`}),t[7]=o,t[8]=n.enabled,t[9]=d):d=t[9];let f;if(t[10]!==r||t[11]!==n.enabled||t[12]!==n.items||t[13]!==i){let e;t[15]!==r||t[16]!==n.enabled||t[17]!==i?(e=e=>(0,$.jsx)(`li`,{children:(0,$.jsx)(`button`,{type:`button`,"aria-current":r===e.id?`true`:void 0,"aria-disabled":n.enabled?void 0:!0,tabIndex:n.enabled?0:-1,disabled:!n.enabled,onClick:()=>n.enabled&&i(e.id),"data-testid":`settings-sidebar-item-${e.id}`,className:w(`w-full rounded px-2 py-1.5 text-left text-sm transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-50`,r===e.id&&n.enabled?`bg-accent text-accent-foreground`:`hover:bg-accent/50`),children:e.label})},e.id),t[15]=r,t[16]=n.enabled,t[17]=i,t[18]=e):e=t[18],f=n.items.map(e),t[10]=r,t[11]=n.enabled,t[12]=n.items,t[13]=i,t[14]=f}else f=t[14];let p;t[19]!==a||t[20]!==f?(p=(0,$.jsx)(`ul`,{"aria-labelledby":a,className:`space-y-0.5`,children:f}),t[19]=a,t[20]=f,t[21]=p):p=t[21];let m;return t[22]!==u||t[23]!==d||t[24]!==p?(m=(0,$.jsxs)(`div`,{className:`mb-4`,children:[u,d,p]}),t[22]=u,t[23]=d,t[24]=p,t[25]=m):m=t[25],m}function Nr(e){let t=(0,R.c)(9),{activeId:n,userBinding:r,okignoreBinding:i,okignoreSynced:a}=e;if(n===`preferences`){let e;return t[0]===r?e=t[1]:(e=r?(0,$.jsx)(Ir,{title:`Appearance`,description:`UI preferences. Editor toggles continue to write localStorage as a cache.`,scope:`user`,binding:r,fields:Or}):(0,$.jsx)(Fr,{}),t[0]=r,t[1]=e),e}if(n===`sync`){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Rr,{}),t[2]=e):e=t[2],e}if(n===`user-templates`){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(xr,{}),t[3]=e):e=t[3],e}if(n===`project-templates`){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(gr,{}),t[4]=e):e=t[4],e}if(n===`okignore`){let e;return t[5]!==i||t[6]!==a?(e=(0,$.jsx)(Pn,{binding:i,synced:a}),t[5]=i,t[6]=a,t[7]=e):e=t[7],e}if(n===`claude-desktop`){let e;return t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Gr,{}),t[8]=e):e=t[8],e}return null}function Pr(e){if(!m(e)||e.code!==`SCHEMA_INVALID`)return null;let t=e.issues[0];return!t||t.path.length===0?null:t.path.map(String).join(`.`)}function Fr(){let e=(0,R.c)(3),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(L,{className:`h-5 w-32`}),n=(0,$.jsx)(L,{className:`h-4 w-64`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsxs)(`div`,{className:`space-y-3`,children:[t,n,(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(L,{className:`h-9 w-full`}),(0,$.jsx)(L,{className:`h-9 w-full`})]})]}),e[2]=r):r=e[2],r}function Ir(e){let t=(0,R.c)(14),{title:n,description:r,scope:i,binding:a,fields:o}=e,{form:s,commitField:c}=Sr(a),[l,u]=(0,z.useState)(null),d=(0,z.useRef)(null),f,p;t[0]!==s||t[1]!==i?(f=()=>{let e=i===`project`?v:y,t=Se(t=>{if(t.docName!==e)return;Fe.error(g(t.error),{duration:8e3});let n=Pr(t.error);n&&(s.setError(n,{type:`config-validation-rejected`,message:Tr(t.error,n)}),s.setFocus(n),u(n),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{u(null),s.clearErrors(n)},600))});return()=>{t(),d.current&&clearTimeout(d.current)}},p=[i,s],t[0]=s,t[1]=i,t[2]=f,t[3]=p):(f=t[2],p=t[3]),(0,z.useEffect)(f,p);let m;t[4]!==c||t[5]!==r||t[6]!==o||t[7]!==l||t[8]!==i||t[9]!==n?(m=(0,$.jsx)(Lr,{title:n,description:r,scope:i,fields:o,commitField:c,flashedPath:l}),t[4]=c,t[5]=r,t[6]=o,t[7]=l,t[8]=i,t[9]=n,t[10]=m):m=t[10];let h;return t[11]!==s||t[12]!==m?(h=(0,$.jsx)(ln,{...s,children:m}),t[11]=s,t[12]=m,t[13]=h):h=t[13],h}function Lr(e){let t=(0,R.c)(23),{title:n,description:r,scope:i,fields:a,commitField:o,flashedPath:s}=e,c=`settings-section-${i}-title`,l;t[0]!==n||t[1]!==c?(l=(0,$.jsx)(`h2`,{id:c,className:`text-base font-semibold`,children:n}),t[0]=n,t[1]=c,t[2]=l):l=t[2];let u;t[3]===r?u=t[4]:(u=(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r}),t[3]=r,t[4]=u);let d;t[5]!==l||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[l,u]}),t[5]=l,t[6]=u,t[7]=d):d=t[7];let f;if(t[8]!==o||t[9]!==a||t[10]!==s||t[11]!==i){let e;t[13]!==o||t[14]!==s||t[15]!==i?(e=e=>(0,$.jsx)(zr,{field:e,scope:i,commitField:o,isFlashed:s===e.path.join(`.`)},e.path.join(`.`)),t[13]=o,t[14]=s,t[15]=i,t[16]=e):e=t[16],f=a.map(e),t[8]=o,t[9]=a,t[10]=s,t[11]=i,t[12]=f}else f=t[12];let p;t[17]===f?p=t[18]:(p=(0,$.jsx)(`div`,{className:`space-y-10`,children:f}),t[17]=f,t[18]=p);let m;return t[19]!==d||t[20]!==p||t[21]!==c?(m=(0,$.jsxs)(`section`,{"aria-labelledby":c,className:`space-y-10`,children:[d,p]}),t[19]=d,t[20]=p,t[21]=c,t[22]=m):m=t[22],m}function Rr(){let e=(0,R.c)(21),t=oe(),{projectLocalConfig:n,projectLocalSynced:r}=se(),{confirmOpen:i,setConfirmOpen:a,onToggleRequest:o,onConfirm:s}=ae(N());if(t&&!t.hasRemote&&t.state===`dormant`){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`h2`,{id:`settings-sync-title`,className:`text-base font-semibold`,children:`Sync`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No git remote was detected for this project. Set one up if you would like automatic git syncing.`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-sync-title`,className:`space-y-3`,"data-testid":`settings-sync-empty`,children:[t,(0,$.jsxs)(`div`,{className:`rounded-md border p-3 text-sm text-muted-foreground`,children:[`Add a remote with`,` `,(0,$.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-xs`,children:`git remote add origin <url>`}),` `,`in this project's directory, then restart Open Knowledge.`]})]}),e[1]=n):n=e[1],n}let l=n?.autoSync?.enabled??!1,u=!r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`h2`,{id:`settings-sync-title`,className:`text-base font-semibold`,children:`Sync`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Auto-sync pushes/pulls commits to your git remote on intervals and on save. Toggling on requires confirmation.`})]}),e[2]=d):d=e[2];let f;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`label`,{htmlFor:`settings-sync-toggle`,className:`text-sm font-medium`,children:`Git auto-sync`}),e[3]=f):f=e[3];let p=l?`Auto-sync is on — your commits push and remote changes pull on intervals.`:`Auto-sync is off — your edits stay local until you commit and push manually.`,m;e[4]===p?m=e[5]:(m=(0,$.jsxs)(`div`,{children:[f,(0,$.jsx)(`p`,{className:`text-muted-foreground text-1sm`,children:p})]}),e[4]=p,e[5]=m);let h=l?`Disable git auto-sync`:`Enable git auto-sync`,g;e[6]!==u||e[7]!==l||e[8]!==o||e[9]!==h?(g=(0,$.jsx)(c,{id:`settings-sync-toggle`,checked:l,disabled:u,onCheckedChange:o,"aria-label":h,"data-testid":`settings-sync-toggle`}),e[6]=u,e[7]=l,e[8]=o,e[9]=h,e[10]=g):g=e[10];let _;e[11]!==m||e[12]!==g?(_=(0,$.jsx)(`div`,{className:`rounded-md border p-3`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[m,g]})}),e[11]=m,e[12]=g,e[13]=_):_=e[13];let v;e[14]!==i||e[15]!==s||e[16]!==a?(v=(0,$.jsx)(we,{open:i,onOpenChange:a,onConfirm:s}),e[14]=i,e[15]=s,e[16]=a,e[17]=v):v=e[17];let y;return e[18]!==_||e[19]!==v?(y=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-sync-title`,className:`space-y-3`,children:[d,_,v]}),e[18]=_,e[19]=v,e[20]=y):y=e[20],y}function zr({field:e,scope:t,commitField:n,isFlashed:r}){"use no memo";let i=ht(),a=f(h,e.path),o=a?yr(a):void 0,s=a?vr(a):void 0,c=a?br(a):void 0,l=a?x(a):void 0,u=l?.scope===`project`&&t!==`project`||l?.scope===`user`&&t!==`user`,d=e.path.join(`.`),[p,m]=(0,z.useState)(!1),g=(0,z.useRef)(null);(0,z.useEffect)(()=>()=>{g.current&&clearTimeout(g.current)},[]);let _=()=>{m(!0),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>m(!1),1200)},v=()=>{let e=n(d);return e&&_(),e},y=()=>i.getFieldState(d).isDirty?v():!0,b=()=>{let e=s===void 0?null:s;i.setValue(d,e,{shouldDirty:!1}),v()},S=w(`relative`,r&&`animate-settings-flash`);return(0,$.jsx)(dn,{control:i.control,name:d,render:({field:n})=>{let r=!u&&(s!==void 0||n.value!==void 0);return(0,$.jsxs)(mn,{className:S,"data-field":e.path.join(`.`),"data-scope":t,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(hn,{className:`text-sm font-medium`,children:e.label}),r?(0,$.jsxs)(Ve,{children:[(0,$.jsx)(ze,{asChild:!0,children:(0,$.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-5 w-5 text-muted-foreground opacity-60 hover:opacity-100`,onClick:b,"aria-label":`Reset ${e.label} to default`,children:(0,$.jsx)(Ue,{className:`size-3.5`})})}),(0,$.jsx)(Be,{children:`Reset to default`})]}):null]}),e.description?(0,$.jsx)(_n,{className:`text-muted-foreground text-1sm`,children:e.description}):null,(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(gn,{children:(0,$.jsx)(Br,{field:e,ctl:n,typeTag:o,enumOptions:c,onCommit:y})}),(0,$.jsx)(Wr,{visible:p})]}),(0,$.jsx)(vn,{"data-field-error":e.path.join(`.`)})]})}})}function Br({field:e,ctl:t,typeTag:n,enumOptions:r,onCommit:i,...a}){"use no memo";if(n===`boolean`)return(0,$.jsx)(c,{...a,checked:!!t.value,ref:t.ref,onCheckedChange:e=>{t.onChange(e),i()},onBlur:t.onBlur});if(n===`enum`&&r&&r.length>0&&(e.control===`enum-toggle`||r.length<=4)){let{id:n,...o}=a;return(0,$.jsx)(Le,{...o,type:`single`,value:typeof t.value==`string`?t.value:``,ref:t.ref,onValueChange:e=>{e&&(t.onChange(e),i())},onBlur:t.onBlur,variant:`segmented`,size:`sm`,spacing:1,className:`bg-muted dark:bg-background p-0.5 rounded-lg`,"aria-label":e.label,children:r.map((e,t)=>(0,$.jsx)(Ie,{value:e,id:t===0?n:void 0,className:`text-1sm capitalize`,children:e},e))})}return n===`number`||n===`int`?(0,$.jsx)(Hr,{ctl:t,onCommit:i,...a}):n===`array`?(0,$.jsx)(Ur,{ctl:t,onCommit:i,...a}):(0,$.jsx)(Vr,{ctl:t,onCommit:i,...a})}function Vr({ctl:e,onCommit:t,...n}){"use no memo";return(0,$.jsx)(He,{...n,value:typeof e.value==`string`?e.value:``,ref:e.ref,onChange:t=>e.onChange(t.target.value),onBlur:()=>{e.onBlur(),t()},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),t())},className:`h-8 text-sm`})}function Hr({ctl:e,onCommit:t,...n}){"use no memo";let[r,i]=(0,z.useState)(e.value===void 0?``:String(e.value)),a=(0,z.useRef)(e.value);(0,z.useEffect)(()=>{a.current!==e.value&&(i(e.value===void 0?``:String(e.value)),a.current=e.value)},[e.value]);let o=()=>{let n=Number(r);if(!Number.isFinite(n)){e.onChange(r),t();return}e.onChange(n),t(),a.current=n};return(0,$.jsx)(He,{...n,type:`number`,value:r,ref:e.ref,onChange:e=>i(e.target.value),onBlur:()=>{e.onBlur(),o()},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),o())},className:`h-8 w-28 text-sm tabular-nums`})}function Ur({ctl:e,onCommit:t,...n}){"use no memo";let r=Array.isArray(e.value)?e.value.join(`
|
|
7
|
+
`):``,[i,a]=(0,z.useState)(r),o=(0,z.useRef)(r);(0,z.useEffect)(()=>{let t=Array.isArray(e.value)?e.value.join(`
|
|
8
|
+
`):``;t!==o.current&&(a(t),o.current=t)},[e.value]);let s=()=>{let n=i.split(`
|
|
9
|
+
`).map(e=>e.trim()).filter(e=>e.length>0);e.onChange(n),t(),o.current=n.join(`
|
|
10
|
+
`)};return(0,$.jsx)(`textarea`,{...n,value:i,ref:e.ref,onChange:e=>a(e.target.value),onBlur:()=>{e.onBlur(),s()},rows:Math.max(2,Math.min(6,i.split(`
|
|
11
|
+
`).length)),className:`min-h-16 w-full rounded-md border border-input bg-background px-3 py-1.5 font-mono text-xs outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`})}function Wr(e){let t=(0,R.c)(4),{visible:n}=e,r;t[0]===n?r=t[1]:(r=n?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ke,{"aria-hidden":`true`,className:`size-3.5`}),(0,$.jsx)(`span`,{className:`sr-only`,children:`Saved`})]}):null,t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,$.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`text-emerald-600`,children:r}),t[2]=r,t[3]=i),i}function Gr(){let e=(0,R.c)(14),[t,n]=(0,z.useState)(!1),{skillInstalled:r,refresh:i}=xe(),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`h2`,{id:`settings-integrations-title`,className:`text-base font-semibold`,children:`Integrations`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Connect Open Knowledge to other tools you use.`})]}),e[0]=a):a=e[0];let o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-sm font-medium`,children:`Install in Claude Desktop`}),(0,$.jsx)(`p`,{className:`text-muted-foreground text-1sm`,children:`Make this knowledge base available as a Claude Skill.`})]}),e[1]=o):o=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>n(!0),e[2]=s):s=e[2];let c=r?`Reinstall`:`Install`,l;e[3]===c?l=e[4]:(l=(0,$.jsx)(`div`,{className:`rounded-md border p-3`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[o,(0,$.jsx)(T,{variant:`outline`,size:`sm`,onClick:s,"data-testid":`settings-install-claude-desktop`,className:`uppercase font-mono`,children:c})]})}),e[3]=c,e[4]=l);let u;e[5]===i?u=e[6]:(u=e=>{n(e),e||i()},e[5]=i,e[6]=u);let d;e[7]!==t||e[8]!==r||e[9]!==u?(d=(0,$.jsx)(he,{open:t,onOpenChange:u,reinstall:r}),e[7]=t,e[8]=r,e[9]=u,e[10]=d):d=e[10];let f;return e[11]!==l||e[12]!==d?(f=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-integrations-title`,className:`space-y-3`,children:[a,l,d]}),e[11]=l,e[12]=d,e[13]=f):f=e[13],f}export{Ar as SettingsDialog};
|