@inkeep/open-knowledge 0.0.0-dev-20260430041629 → 0.0.0-dev-20260430063358

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/cli.mjs +5 -5
  2. package/dist/constants-DrhEfUQE.mjs +2 -0
  3. package/dist/{dist-BGmJPYOc.mjs → dist-BAXWuYIZ.mjs} +2 -2
  4. package/dist/{dist-DrvijmGn.mjs → dist-DuYysD9-.mjs} +2 -2
  5. package/dist/{dist-Bxeddlf1.mjs → dist-d3vqEyC5.mjs} +1 -1
  6. package/dist/index.mjs +1 -1
  7. package/dist/init-BjCJuWSb.mjs +1 -0
  8. package/dist/init-CABEHD4d.mjs +1 -0
  9. package/dist/{init-PORXx7vd.mjs → init-CINypD5f.mjs} +3 -3
  10. package/dist/{init-CV_xugP_.mjs → init-CsF5t9q-.mjs} +2 -2
  11. package/dist/{loader-CPzUWkvf.mjs → loader-D1CrMLB2.mjs} +2 -2
  12. package/dist/loader-DRHRURwC.mjs +1 -0
  13. package/dist/paths-CQPr6nyc.mjs +2 -0
  14. package/dist/paths-DK1PziJN.mjs +1 -0
  15. package/dist/{preview-CsRZ-Vcf.mjs → preview-8Vt_tNBB.mjs} +2 -2
  16. package/dist/preview-C-XjtsGD.mjs +1 -0
  17. package/dist/public/assets/{ActivityModeContent-DRqbNhfV.js → ActivityModeContent-IRFPgzna.js} +1 -1
  18. package/dist/public/assets/{DocumentContext-B-H7z2mx.js → DocumentContext-B1Fp4JCg.js} +4 -4
  19. package/dist/public/assets/{GraphPanel-Cj6loEvC.js → GraphPanel-CDyaftq6.js} +1 -1
  20. package/dist/public/assets/McpConsentDialogBody-BKRS2Qm0.js +1 -0
  21. package/dist/public/assets/{SettingsPane-dmFz0VJ8.js → SettingsPane-BMeVMzBd.js} +1 -1
  22. package/dist/public/assets/{SourceEditor-CsO92AcD.js → SourceEditor-CVLfrqOH.js} +1 -1
  23. package/dist/public/assets/{clipboard-CmwParkX.js → clipboard-DcNdBOCD.js} +1 -1
  24. package/dist/public/assets/{config-validation-events-CHBXJot6.js → config-validation-events-CpU7XuBS.js} +1 -1
  25. package/dist/public/assets/index-BSJSvPoC.js +1843 -0
  26. package/dist/public/assets/index-C5vN2roo.css +1 -0
  27. package/dist/public/assets/mcp-consent-store-BBTXqzE6.js +1 -0
  28. package/dist/public/assets/{target-navigation-intent-7XRXuzFn.js → target-navigation-intent-BgBCKYrO.js} +1 -1
  29. package/dist/public/assets/{telemetry-impl-DYBNNWwm.js → telemetry-impl-DF7KVxgp.js} +2 -2
  30. package/dist/public/assets/{toggle-group-DIb9bLBj.js → toggle-group-Czy0P9Ee.js} +1 -1
  31. package/dist/public/assets/{tooltip-CRxi5gOu.js → tooltip-Dqn5ly4m.js} +1 -1
  32. package/dist/public/index.html +9 -8
  33. package/dist/{server-Bme59hx2.mjs → server-Dq2PmzsL.mjs} +2 -2
  34. package/dist/src-DQwyziiR.mjs +1 -0
  35. package/dist/start-BNLzgRz7.mjs +1 -0
  36. package/dist/{start-Ds-3qtJF.mjs → start-DEfS916L.mjs} +2 -2
  37. package/package.json +1 -1
  38. package/dist/constants-BQZMBSjL.mjs +0 -2
  39. package/dist/init-Cds71WAI.mjs +0 -1
  40. package/dist/init-g2zamAnn.mjs +0 -1
  41. package/dist/loader-B0BWajcB.mjs +0 -1
  42. package/dist/paths-BEB-Zpmi.mjs +0 -1
  43. package/dist/paths-DEN3St8d.mjs +0 -2
  44. package/dist/preview-D-0GOYHB.mjs +0 -1
  45. package/dist/public/assets/McpConsentDialogBody-B1ioffug.js +0 -1
  46. package/dist/public/assets/index-Dcw_lEA0.js +0 -1843
  47. package/dist/public/assets/index-uXLRXDYd.css +0 -1
  48. package/dist/src-bBNMJYgV.mjs +0 -1
  49. package/dist/start-ZcmBOEtV.mjs +0 -1
  50. /package/dist/public/assets/{__vite-browser-external-B0s46rwe.js → __vite-browser-external-BW1_xmov.js} +0 -0
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{i as e,o as t,t as n}from"./chunk-FK9Q3tQk.mjs";import{t as r}from"./esm-wByiX8MO.mjs";import{At as i,Ct as a,Dt as o,F as s,Ft as c,It as l,Lt as u,M as d,Mt as f,Nt as p,Ot as m,Pt as h,Q as g,St as _,Z as v,_t as y,at as b,bt as x,ct as S,dt as ee,ft as te,gt as C,ht as w,jt as ne,k as re,kt as ie,lt as T,mt as ae,ot as oe,pt as E,st as se,ut as ce,vt as le,wt as ue,x as de,xt as D,y as fe,yt as O}from"./dist-BGmJPYOc.mjs";import{n as pe,r as me,t as he}from"./dist-bundle-BSdjl7Rj.mjs";import{i as ge,r as _e}from"./constants-BQZMBSjL.mjs";import{n as ve,t as ye}from"./paths-DEN3St8d.mjs";import{l as be,o as xe,s as Se}from"./server-lock-n3Y5JWNv-3o7br8XE.mjs";import{i as Ce}from"./git-handle-BhGnmvTB-BMB_49Sb.mjs";import{$t as we,A as Te,C as Ee,P as De,en as Oe,nn as ke,rn as Ae,tn as je,wt as Me,xt as Ne}from"./dist-DrvijmGn.mjs";import{a as Pe,i as Fe,n as Ie,t as Le}from"./server-Bme59hx2.mjs";import{t as Re}from"./is-object-7k010cEq.mjs";import{i as ze,n as Be,r as Ve,t as He}from"./loader-CPzUWkvf.mjs";import{r as Ue}from"./init-PORXx7vd.mjs";import{i as We,n as Ge,o as Ke,r as qe,s as Je,t as Ye}from"./colors-ejF8AM2b.mjs";import{t as Xe}from"./chunk-YNYSPYQ5-BpP11HXS.mjs";import{a as Ze,c as Qe,d as $e,f as et,h as tt,i as nt,l as rt,m as it,n as at,o as ot,p as st,r as ct,s as lt,t as ut,u as dt}from"./chunk-GFQRA5P5-1fzItQ8F.mjs";import{A as ft,B as pt,C as mt,D as ht,E as gt,F as _t,H as vt,I as yt,L as bt,M as xt,N as St,O as Ct,P as wt,S as Tt,T as Et,V as Dt,_ as Ot,a as kt,b as At,c as jt,d as Mt,f as k,g as Nt,h as Pt,i as Ft,j as It,k as Lt,l as Rt,m as zt,n as Bt,o as Vt,p as Ht,r as Ut,s as Wt,t as Gt,u as Kt,v as qt,w as Jt,x as Yt,y as Xt,z as Zt}from"./chunk-FEIOJCZD-C4x0A4rb.mjs";import{a as Qt,c as $t,d as en,i as tn,l as nn,n as rn,o as an,r as on,s as A,t as sn,u as cn}from"./chunk-XHM67O4N-Cg35xc6b.mjs";import{n as ln,r as un,t as dn}from"./chunk-R6VWJ2ZL-B0CcMPyK.mjs";import{r as fn}from"./chunk-CWQS3NFK-DFdwmFxJ.mjs";import"./chunk-DXB73IDG-C774okS0.mjs";import{n as pn,t as mn}from"./chunk-5QMZ5MUS-DWTkM0vM.mjs";import{n as hn,t as gn}from"./chunk-A5O5YHGN-C7BVq0eF.mjs";import{n as _n,r as vn,t as yn}from"./chunk-OJDRYQWQ-BV5MVRVg.mjs";import{r as bn,t as xn}from"./chunk-24IMIIXA-Bz7rlZT3.mjs";import{n as Sn}from"./chunk-3THT3N7L-klp8GP84.mjs";import{t as Cn}from"./chunk-44UOCSGV-BUBpWxXm.mjs";import{o as wn,s as Tn}from"./start-Ds-3qtJF.mjs";import"./src-bBNMJYgV.mjs";import{execFileSync as En,spawn as Dn}from"node:child_process";import*as On from"node:path";import kn,{basename as An,dirname as jn,isAbsolute as Mn,join as Nn,relative as Pn,resolve as Fn}from"node:path";import*as j from"node:fs";import{appendFileSync as In,closeSync as Ln,existsSync as Rn,mkdirSync as zn,openSync as Bn,readFileSync as Vn,readdirSync as Hn,realpathSync as Un,statSync as Wn,unlinkSync as Gn,writeFileSync as Kn}from"node:fs";import qn from"node:process";import{homedir as Jn,hostname as Yn,platform as Xn}from"node:os";import{AsyncLocalStorage as Zn,AsyncResource as Qn}from"node:async_hooks";import{stripVTControlCharacters as $n,styleText as er}from"node:util";import*as tr from"node:readline";import{fileURLToPath as nr}from"node:url";import{randomUUID as rr}from"node:crypto";import{setTimeout as ir}from"node:timers/promises";import{mkdir as ar,readFile as or,readdir as sr,stat as cr}from"node:fs/promises";import{createServer as lr,request as ur}from"node:http";import{lookup as dr}from"node:dns";import{createInterface as fr}from"node:readline/promises";var pr=u();const mr=`open-knowledge`;var hr=class{backend=`keyring`;async get(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{let n=new t(mr,e).getPassword();return n==null?null:JSON.parse(n)}catch{return null}}async set(e,t,n,r){let{Entry:i}=await import(`@napi-rs/keyring`),a=new i(mr,e),o={login:t,token:n,...r};a.setPassword(JSON.stringify(o))}async clear(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{new t(mr,e).deletePassword()}catch{}}},gr=class{backend=`file`;authFile;constructor(e){this.authFile=e??Nn(Jn(),`.open-knowledge`,`auth.yml`)}read(){if(!Rn(this.authFile))return{};try{return(0,pr.parse)(Vn(this.authFile,`utf-8`))??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=jn(this.authFile);Rn(t)||zn(t,{recursive:!0,mode:448}),Kn(this.authFile,(0,pr.stringify)(e),{mode:384})}async get(e){return this.read()[e]??null}async set(e,t,n,r){let i=this.read();i[e]={login:t,token:n,...r},this.write(i)}async clear(e){let t=this.read();delete t[e],this.write(t)}};async function _r(e){try{let{Entry:e}=await import(`@napi-rs/keyring`);return new e(mr,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
2
+ import{i as e,o as t,t as n}from"./chunk-FK9Q3tQk.mjs";import{t as r}from"./esm-wByiX8MO.mjs";import{At as i,Ct as a,Dt as o,F as s,Ft as c,It as l,Lt as u,M as d,Mt as f,Nt as p,Ot as m,Pt as h,Q as g,St as _,Z as v,_t as y,at as b,bt as x,ct as S,dt as ee,ft as te,gt as C,ht as w,jt as ne,k as re,kt as ie,lt as T,mt as ae,ot as oe,pt as E,st as se,ut as ce,vt as le,wt as ue,x as de,xt as D,y as fe,yt as O}from"./dist-BAXWuYIZ.mjs";import{n as pe,r as me,t as he}from"./dist-bundle-BSdjl7Rj.mjs";import{i as ge,r as _e}from"./constants-DrhEfUQE.mjs";import{n as ve,t as ye}from"./paths-CQPr6nyc.mjs";import{l as be,o as xe,s as Se}from"./server-lock-n3Y5JWNv-3o7br8XE.mjs";import{i as Ce}from"./git-handle-BhGnmvTB-BMB_49Sb.mjs";import{$t as we,A as Te,C as Ee,P as De,en as Oe,nn as ke,rn as Ae,tn as je,wt as Me,xt as Ne}from"./dist-DuYysD9-.mjs";import{a as Pe,i as Fe,n as Ie,t as Le}from"./server-Dq2PmzsL.mjs";import{t as Re}from"./is-object-7k010cEq.mjs";import{i as ze,n as Be,r as Ve,t as He}from"./loader-D1CrMLB2.mjs";import{r as Ue}from"./init-CINypD5f.mjs";import{i as We,n as Ge,o as Ke,r as qe,s as Je,t as Ye}from"./colors-ejF8AM2b.mjs";import{t as Xe}from"./chunk-YNYSPYQ5-BpP11HXS.mjs";import{a as Ze,c as Qe,d as $e,f as et,h as tt,i as nt,l as rt,m as it,n as at,o as ot,p as st,r as ct,s as lt,t as ut,u as dt}from"./chunk-GFQRA5P5-1fzItQ8F.mjs";import{A as ft,B as pt,C as mt,D as ht,E as gt,F as _t,H as vt,I as yt,L as bt,M as xt,N as St,O as Ct,P as wt,S as Tt,T as Et,V as Dt,_ as Ot,a as kt,b as At,c as jt,d as Mt,f as k,g as Nt,h as Pt,i as Ft,j as It,k as Lt,l as Rt,m as zt,n as Bt,o as Vt,p as Ht,r as Ut,s as Wt,t as Gt,u as Kt,v as qt,w as Jt,x as Yt,y as Xt,z as Zt}from"./chunk-FEIOJCZD-C4x0A4rb.mjs";import{a as Qt,c as $t,d as en,i as tn,l as nn,n as rn,o as an,r as on,s as A,t as sn,u as cn}from"./chunk-XHM67O4N-Cg35xc6b.mjs";import{n as ln,r as un,t as dn}from"./chunk-R6VWJ2ZL-B0CcMPyK.mjs";import{r as fn}from"./chunk-CWQS3NFK-DFdwmFxJ.mjs";import"./chunk-DXB73IDG-C774okS0.mjs";import{n as pn,t as mn}from"./chunk-5QMZ5MUS-DWTkM0vM.mjs";import{n as hn,t as gn}from"./chunk-A5O5YHGN-C7BVq0eF.mjs";import{n as _n,r as vn,t as yn}from"./chunk-OJDRYQWQ-BV5MVRVg.mjs";import{r as bn,t as xn}from"./chunk-24IMIIXA-Bz7rlZT3.mjs";import{n as Sn}from"./chunk-3THT3N7L-klp8GP84.mjs";import{t as Cn}from"./chunk-44UOCSGV-BUBpWxXm.mjs";import{o as wn,s as Tn}from"./start-DEfS916L.mjs";import"./src-DQwyziiR.mjs";import{execFileSync as En,spawn as Dn}from"node:child_process";import*as On from"node:path";import kn,{basename as An,dirname as jn,isAbsolute as Mn,join as Nn,relative as Pn,resolve as Fn}from"node:path";import*as j from"node:fs";import{appendFileSync as In,closeSync as Ln,existsSync as Rn,mkdirSync as zn,openSync as Bn,readFileSync as Vn,readdirSync as Hn,realpathSync as Un,statSync as Wn,unlinkSync as Gn,writeFileSync as Kn}from"node:fs";import qn from"node:process";import{homedir as Jn,hostname as Yn,platform as Xn}from"node:os";import{AsyncLocalStorage as Zn,AsyncResource as Qn}from"node:async_hooks";import{stripVTControlCharacters as $n,styleText as er}from"node:util";import*as tr from"node:readline";import{fileURLToPath as nr}from"node:url";import{randomUUID as rr}from"node:crypto";import{setTimeout as ir}from"node:timers/promises";import{mkdir as ar,readFile as or,readdir as sr,stat as cr}from"node:fs/promises";import{createServer as lr,request as ur}from"node:http";import{lookup as dr}from"node:dns";import{createInterface as fr}from"node:readline/promises";var pr=u();const mr=`open-knowledge`;var hr=class{backend=`keyring`;async get(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{let n=new t(mr,e).getPassword();return n==null?null:JSON.parse(n)}catch{return null}}async set(e,t,n,r){let{Entry:i}=await import(`@napi-rs/keyring`),a=new i(mr,e),o={login:t,token:n,...r};a.setPassword(JSON.stringify(o))}async clear(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{new t(mr,e).deletePassword()}catch{}}},gr=class{backend=`file`;authFile;constructor(e){this.authFile=e??Nn(Jn(),`.open-knowledge`,`auth.yml`)}read(){if(!Rn(this.authFile))return{};try{return(0,pr.parse)(Vn(this.authFile,`utf-8`))??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=jn(this.authFile);Rn(t)||zn(t,{recursive:!0,mode:448}),Kn(this.authFile,(0,pr.stringify)(e),{mode:384})}async get(e){return this.read()[e]??null}async set(e,t,n,r){let i=this.read();i[e]={login:t,token:n,...r},this.write(i)}async clear(e){let t=this.read();delete t[e],this.write(t)}};async function _r(e){try{let{Entry:e}=await import(`@napi-rs/keyring`);return new e(mr,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
3
3
  `),new hr}catch{return process.stderr.write(`[auth] token storage: file (~/.open-knowledge/auth.yml)
4
4
  `),new gr(e)}}async function vr(e,t,n){let r=yr(await br(e)).host??``;if(!r)return 1;let i=await n.get(r);if(i==null)return 1;let a=e=>e.replace(/[\r\n]/g,``);return t.write(`username=${a(i.login)}\npassword=${a(i.token)}\n`),0}function yr(e){let t={};for(let n of e.split(`
5
5
  `)){let e=n.trim();if(e===``)continue;let r=e.indexOf(`=`);r!==-1&&(t[e.slice(0,r)]=e.slice(r+1))}return t}function br(e){return new Promise((t,n)=>{let r=[];e.on(`data`,e=>r.push(e)),e.on(`end`,()=>t(Buffer.concat(r).toString(`utf-8`))),e.on(`error`,n)})}function xr(e){let t=new r(`git-credential`);return t.description(`Git credential helper (git credential-helper protocol)`),t.command(`get`).description(`Lookup credentials from TokenStore (called by git)`).action(async()=>{let t=await e(),n=await vr(process.stdin,process.stdout,t);process.exit(n)}),t}function Sr(e){let t=e.endpoint.DEFAULTS;return/^https:\/\/(api\.)?github\.com$/.test(t.baseUrl)?`https://github.com`:t.baseUrl.replace(`/api/v3`,``)}async function Cr(e,t,n){let r={baseUrl:Sr(e),headers:{accept:`application/json`},...n},i=await e(t,r);if(`error`in i.data){let n=new pe(`${i.data.error_description} (${i.data.error}, ${i.data.error_uri})`,400,{request:e.endpoint.merge(t,r)});throw n.response=i,n}return i}async function wr(e){let t=e.request||he,n={client_id:e.clientId};return`scopes`in e&&Array.isArray(e.scopes)&&(n.scope=e.scopes.join(` `)),Cr(t,`POST /login/device/code`,n)}async function Tr(e){let t=await Cr(e.request||he,`POST /login/oauth/access_token`,{client_id:e.clientId,device_code:e.code,grant_type:`urn:ietf:params:oauth:grant-type:device_code`}),n={clientType:e.clientType,clientId:e.clientId,token:t.data.access_token,scopes:t.data.scope.split(/\s+/).filter(Boolean)};if(`clientSecret`in e&&(n.clientSecret=e.clientSecret),e.clientType===`github-app`){if(`refresh_token`in t.data){let e=new Date(t.headers.date).getTime();n.refreshToken=t.data.refresh_token,n.expiresAt=Er(e,t.data.expires_in),n.refreshTokenExpiresAt=Er(e,t.data.refresh_token_expires_in)}delete n.scopes}return{...t,authentication:n}}function Er(e,t){return new Date(e+t*1e3).toISOString()}async function Dr(e,t){let n=Or(e,t.auth);if(n)return n;let{data:r}=await wr({clientType:e.clientType,clientId:e.clientId,request:t.request||e.request,scopes:t.auth.scopes||e.scopes});await e.onVerification(r);let i=await Ar(t.request||e.request,e.clientId,e.clientType,r);return e.authentication=i,i}function Or(e,t){if(t.refresh===!0||!e.authentication)return!1;if(e.clientType===`github-app`)return e.authentication;let n=e.authentication;return(`scopes`in t&&t.scopes||e.scopes).join(` `)===n.scopes.join(` `)?n:!1}async function kr(e){await new Promise(t=>setTimeout(t,e*1e3))}async function Ar(e,t,n,r){try{let i={clientId:t,request:e,code:r.device_code},{authentication:a}=n===`oauth-app`?await Tr({...i,clientType:`oauth-app`}):await Tr({...i,clientType:`github-app`});return{type:`token`,tokenType:`oauth`,...a}}catch(i){if(!i.response)throw i;let a=i.response.data.error;if(a===`authorization_pending`)return await kr(r.interval),Ar(e,t,n,r);if(a===`slow_down`)return await kr(r.interval+7),Ar(e,t,n,r);throw i}}async function jr(e,t){return Dr(e,{auth:t})}async function Mr(e,t,n,r){let i=t.endpoint.merge(n,r);if(/\/login\/(oauth\/access_token|device\/code)$/.test(i.url))return t(i);let{token:a}=await Dr(e,{request:t,auth:{type:`oauth`}});return i.headers.authorization=`token ${a}`,t(i)}var Nr=`0.0.0-development`;function Pr(e){let t=e.request||he.defaults({headers:{"user-agent":`octokit-auth-oauth-device.js/${Nr} ${me()}`}}),{request:n=t,...r}=e,i=e.clientType===`github-app`?{...r,clientType:`github-app`,request:n}:{...r,clientType:`oauth-app`,request:n,scopes:e.scopes||[]};if(!e.clientId)throw Error(`[@octokit/auth-oauth-device] "clientId" option must be set (https://github.com/octokit/auth-oauth-device.js#usage)`);if(!e.onVerification)throw Error(`[@octokit/auth-oauth-device] "onVerification" option must be a function (https://github.com/octokit/auth-oauth-device.js#usage)`);return Object.assign(jr.bind(null,i),{hook:Mr.bind(null,i)})}async function Fr(e){let{clientId:t,scopes:n=[`repo`,`read:user`,`user:email`],onVerification:r,host:i}=e,a=i&&i!==`github.com`?`https://${i}/api/v3`:`https://api.github.com`,o=Pr({clientType:`oauth-app`,clientId:t,scopes:n,onVerification:async e=>{await r({verificationUri:e.verification_uri,userCode:e.user_code,expiresIn:e.expires_in,interval:e.interval})},request:a===`https://api.github.com`?void 0:(await import(`./dist-bundle-BmF5_Mcp.mjs`)).request.defaults({baseUrl:a})}),s;try{s=await o({type:`oauth`})}catch(e){if(e instanceof Error){let t=e.message.toLowerCase();throw t.includes(`access_denied`)?Error(`Device-flow authorization was denied.`):t.includes(`expired_token`)||t.includes(`timeout`)||t.includes(`timed out`)?Error(`Device-flow code expired before authorization — please try again.`):Error(`GitHub sign-in failed: ${e.message}`)}throw e}return{token:s.token,tokenType:s.tokenType,scopes:s.scopes??[]}}function Ir(e){return process.env.OPEN_KNOWLEDGE_GITHUB_CLIENT_ID??e?.github?.oauthAppClientId??`Ov23liqlSd0V1MwR6rhI`}const Lr=new Set([`gitlab.com`,`bitbucket.org`,`codeberg.org`,`gitea.com`,`sr.ht`,`sourcehut.org`]);function Rr(e){let t=e.toLowerCase().replace(/:\d+$/,``);Lr.has(t)&&(process.stderr.write(`Error: ${e} is not a GitHub host. Only GitHub and GitHub Enterprise Server are supported.\n`),process.exit(1))}function zr(e,t){e&&process.stdout.write(`${JSON.stringify(t)}\n`)}async function Br(e,t,n,r=Fr){let i=Ir(n),{host:a,json:o}=e;Rr(a),o||process.stderr.write(`Logging in to ${a}…\n`);let s=await r({clientId:i,host:a===`github.com`?void 0:a,onVerification:e=>{e.userCode,e.verificationUri,o?zr(!0,{type:`verification`,user_code:e.userCode,verification_uri:e.verificationUri,expires_in:e.expiresIn}):process.stderr.write(`Open: ${e.verificationUri}\nEnter code: ${e.userCode}\n`)}}),c=`unknown`,l,u;try{let e=a===`github.com`?`https://api.github.com`:`https://${a}/api/v3`,t=await fetch(`${e}/user`,{headers:{Authorization:`Bearer ${s.token}`,"User-Agent":`open-knowledge-cli`,Accept:`application/vnd.github+json`}});if(t.ok){let e=await t.json();c=e.login??c,l=e.name??void 0,u=e.email??void 0}}catch{}await t.set(a,c,s.token,{gitProtocol:`https`,name:l,email:u}),o?zr(!0,{type:`complete`,host:a,login:c}):process.stderr.write(`✓ Logged in as ${c} on ${a}\n`)}function Vr(e,t){return new r(`login`).description(`Authenticate with GitHub via Device Flow`).option(`--host <host>`,`GitHub or GitHub Enterprise hostname`,`github.com`).option(`--json`,`Output JSONL progress events`,!1).action(async n=>{await Br(n,await t(),e())})}const Hr=e=>e.name===`enter`||e.name===`return`;var Ur=class extends Error{name=`AbortPromptError`;message=`Prompt was aborted`;constructor(e){super(),this.cause=e?.cause}},Wr=class extends Error{name=`CancelPromptError`;message=`Prompt was canceled`},Gr=class extends Error{name=`ExitPromptError`},Kr=class extends Error{name=`HookError`},qr=class extends Error{name=`ValidationError`};const Jr=new Zn;function Yr(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function Xr(e,t){let n=Yr(e);return Jr.run(n,()=>{function e(e){n.handleChange=()=>{n.index=0,e()},n.handleChange()}return t(e)})}function Zr(){let e=Jr.getStore();if(!e)throw new Kr(`[Inquirer] Hook functions can only be called from within a prompt`);return e}function Qr(){return Zr().rl}function $r(e){return Qn.bind((...t)=>{let n=Zr(),r=!1,i=n.handleChange;n.handleChange=()=>{r=!0};let a=e(...t);return r&&i(),n.handleChange=i,a})}function ei(e){let t=Zr(),{index:n}=t,r=e({get(){return t.hooks[n]},set(e){t.hooks[n]=e},initialized:n in t.hooks});return t.index++,r}function ti(){Zr().handleChange()}const ni={queue(e){let t=Zr(),{index:n}=t;t.hooksEffect.push(()=>{t.hooksCleanup[n]?.();let r=e(Qr());if(r!=null&&typeof r!=`function`)throw new qr(`useEffect return value must be a cleanup function or nothing.`);t.hooksCleanup[n]=r})},run(){let e=Zr();$r(()=>{e.hooksEffect.forEach(e=>{e()}),e.hooksEffect.length=0})()},clearAll(){let e=Zr();e.hooksCleanup.forEach(e=>{e?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function ri(e){return typeof e==`function`}function ii(e){return ei(t=>{let n=Qn.bind(function(e){t.get()!==e&&(t.set(e),ti())});if(t.initialized)return[t.get(),n];let r=ri(e)?e():e;return t.set(r),[r,n]})}function ai(e,t){ei(n=>{let r=n.get();(!Array.isArray(r)||t.some((e,t)=>!Object.is(e,r[t])))&&ni.queue(e),n.set(t)})}function oi(){return qn.platform.startsWith(`win`)?!!qn.env.CI||!!qn.env.WT_SESSION||!!qn.env.TERMINUS_SUBLIME||qn.env.ConEmuTask===`{cmd::Cmder}`||qn.env.TERM_PROGRAM===`Terminus-Sublime`||qn.env.TERM_PROGRAM===`vscode`||qn.env.TERM===`xterm-256color`||qn.env.TERM===`alacritty`||qn.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:qn.env.TERM!==`linux`}const si={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:`╱`},ci={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:`⅒`},li={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`},ui={...si,...ci},di={...si,...li},fi=oi()?ui:di;Object.entries(ci);const pi={prefix:{idle:er(`blue`,`?`),done:er(`green`,fi.tick)},spinner:{interval:80,frames:[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`].map(e=>er(`yellow`,e))},style:{answer:e=>er(`cyan`,e),message:e=>er(`bold`,e),error:e=>er(`red`,`> ${e}`),defaultAnswer:e=>er(`dim`,`(${e})`),help:e=>er(`dim`,e),highlight:e=>er(`cyan`,e),key:e=>er(`cyan`,er(`bold`,`<${e}>`))}};function mi(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function hi(...e){let t={};for(let n of e)for(let[e,r]of Object.entries(n)){let n=t[e];t[e]=mi(n)&&mi(r)?hi(n,r):r}return t}function gi(...e){return hi(pi,...e.filter(e=>e!=null))}function _i({status:e=`idle`,theme:t}){let[n,r]=ii(!1),[i,a]=ii(0),{prefix:o,spinner:s}=gi(t);return ai(()=>{if(e===`loading`){let e,t=-1,n=setTimeout(()=>{r(!0),e=setInterval(()=>{t+=1,a(t%s.frames.length)},s.interval)},300);return()=>{clearTimeout(n),clearInterval(e)}}else r(!1)},[e]),n?s.frames[i]:typeof o==`string`?o:o[e===`loading`?`idle`:e]??o.idle}function vi(e){return ii({current:e})[0]}function yi(e){let t=vi(e);t.current=e,ai(e=>{let n=!1,r=$r((r,i)=>{n||t.current(i,e)});return e.input.on(`keypress`,r),()=>{n=!0,e.input.removeListener(`keypress`,r)}},[])}var bi=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 xi=(()=>{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}})(),Si=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,Ci=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,wi=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,Ti=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Ei=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,Di=/\t{1,1000}/y,Oi=/[\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,ki=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Ai=/\p{M}+/gu,ji={limit:1/0,ellipsis:``},Mi=(e,t={},n={})=>{let r=t.limit??1/0,i=t.ellipsis??``,a=t?.ellipsisWidth??(i?Mi(i,ji,n).width:0),o=n.controlWidth??0,s=n.tabWidth??8,c=n.emojiWidth??2,l=n.regularWidth??1,u=n.wideWidth??2,d=[[ki,l],[wi,0],[Ti,o],[Di,s],[Oi,c],[Ei,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(Ai,``)){let t=e.codePointAt(0)||0;if(S=Si(t)?2:Ci(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===Ei?xi(e.slice(p,n.lastIndex)):n===Oi?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}},Ni={limit:1/0,ellipsis:``,ellipsisWidth:0},Pi=(e,t={})=>Mi(e,Ni,t).width,Fi=`]8;;`,Ii=RegExp(`(?:\\[(?<code>\\d+)m|\\${Fi}(?<uri>.*))`,`y`),Li=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},Ri=e=>`[${e}m`,zi=e=>`${Fi}${e}`,Bi=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:Pi(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=Pi(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===`›`)&&(i=!0,a=t.startsWith(Fi,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())},Vi=e=>{let t=e.split(` `),n=t.length;for(;n&&!Pi(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},Hi=(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=Pi(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=Pi(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(``),Bi(s,r,t),c=Pi(s.at(-1)??``);continue}if(c+i>t&&c&&i){if(n.wordWrap===!1&&c<t){Bi(s,r,t),c=Pi(s.at(-1)??``);continue}s.push(``),c=0}if(c+i>t&&n.wordWrap===!1){Bi(s,r,t),c=Pi(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>Vi(e)));let l=s.join(`
@@ -21,10 +21,10 @@ import{i as e,o as t,t as n}from"./chunk-FK9Q3tQk.mjs";import{t as r}from"./esm-
21
21
  `),process.exit(1)}await t.set(r,c,a,{gitProtocol:`https`,name:l,email:u}),i?process.stdout.write(`${JSON.stringify({type:`complete`,host:r,login:c})}\n`):process.stderr.write(`✓ PAT stored for ${c} on ${r}\n`)}function xo(e){return new r(`pat`).description(`Store a Personal Access Token`).option(`--host <host>`,`GitHub or GitHub Enterprise hostname`,`github.com`).option(`--json`,`Output JSON`,!1).action(async t=>{await bo(t,await e())})}async function So(e,t){let{host:n,json:r}=e;Rr(n);let i=await t.get(n);i??(process.stderr.write(`Not logged in to ${n}\n`),process.exit(1));let a=n===`github.com`?void 0:`https://${n}/api/v3`,o=new yo({auth:i.token,...a?{baseUrl:a}:{}}),s=[];for await(let e of o.paginate.iterator(o.repos.listForAuthenticatedUser,{per_page:100,sort:`updated`}))for(let t of e.data)s.push({full_name:t.full_name,clone_url:t.clone_url,private:t.private});if(r)process.stdout.write(`${JSON.stringify({type:`repos`,host:n,repos:s})}\n`);else for(let e of s)process.stdout.write(`${e.full_name} ${e.clone_url}\n`)}function Co(e){return new r(`repos`).description(`List accessible repositories`).option(`--host <host>`,`GitHub or GitHub Enterprise hostname`,`github.com`).option(`--json`,`Output JSON`,!1).action(async t=>{await So(t,await e())})}async function wo(e,t){let{host:n}=e;await t.clear(n),process.stderr.write(`✓ Signed out from ${n}\n`)}function To(e){return new r(`signout`).description(`Remove stored credentials`).option(`--host <host>`,`GitHub hostname`,`github.com`).action(async t=>{await wo(t,await e())})}async function Eo(e,t){let{host:n,json:r}=e;Rr(n);let i=await t.get(n);i??(r?process.stdout.write(`${JSON.stringify({type:`status`,host:n,authenticated:!1})}\n`):process.stderr.write(`Not logged in to ${n}\n`),process.exit(1));let a=n===`github.com`?void 0:`https://${n}/api/v3`,o=new yo({auth:i.token,...a?{baseUrl:a}:{}});try{let{data:e}=await o.users.getAuthenticated();r?process.stdout.write(`${JSON.stringify({type:`status`,host:n,authenticated:!0,login:e.login,name:e.name,email:e.email})}\n`):process.stderr.write(`✓ Logged in as ${e.login} on ${n}\n`)}catch{r?process.stdout.write(JSON.stringify({type:`status`,host:n,authenticated:!1,error:`token invalid`})+`
22
22
  `):process.stderr.write(`✗ Token invalid for ${n}\n`),process.exit(1)}}function Do(e){return new r(`status`).description(`Show authentication status`).option(`--host <host>`,`GitHub or GitHub Enterprise hostname`,`github.com`).option(`--json`,`Output JSON`,!1).action(async t=>{await Eo(t,await e())})}function Oo(e){let t=new r(`auth`);t.description(`GitHub authentication management`);let n=()=>_r(),i=e??(()=>({}));return t.addCommand(Vr(i,n)),t.addCommand(Do(n)),t.addCommand(Co(n)),t.addCommand(To(n)),t.addCommand(xo(n)),t.addCommand(xr(n)),t}function ko(e,t,n={}){let r=Se(e,t);if(!Rn(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(Vn(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||typeof i.pid!=`number`)return{status:`corrupt`,lockPath:r};let a=i,o=n.host??Yn();return a.hostname===o?(n.isAlive??xe)(a.pid)?{status:`alive`,lockPath:r,lock:a}:{status:`dead-pid`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function Ao(e,t){let n=[];for(let[r,i]of[[`server`,e],[`ui`,t]])(i.status===`dead-pid`||i.status===`corrupt`)&&n.push({name:r,lockPath:i.lockPath,reason:i.status});return{prune:n}}function jo(e){let t=e.inspect??(t=>ko(e.lockDir,t)),n=e.unlink??(e=>Gn(e)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=Ao(t(`server`),t(`ui`));if(a.prune.length===0)return r(`No stale locks.`),{pruned:[],failed:[]};let o=[],s=[];for(let e of a.prune)try{n(e.lockPath),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}if(o.length>0){let e=o.map(e=>`${e.name} (${e.reason})`).join(`, `);r(`Pruned ${o.length} stale lock${o.length===1?``:`s`}: ${e}`)}return s.length>0&&i(`Failed to prune: ${s.map(({target:e,error:t})=>`${e.name} (${e.lockPath}): ${t}`).join(`; `)}`),{pruned:o,failed:s}}function Mo(e){return new r(`clean`).description(`Prune stale / corrupt open-knowledge lock files (never touches live locks)`).action(()=>{jo({lockDir:ve(ye(e(),process.cwd()))}).failed.length>0&&(process.exitCode=1)})}function No(){try{let e=En(`gh`,[`auth`,`token`],{encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3}).trim();return e.length===0?{available:!1}:{available:!0,token:e}}catch{return{available:!1}}}async function Po(e,t,n={},r=No){if(!n.skipGhDetect&&r().available)return{tier:`A`,credentialArgs:[`-c`,`credential.helper=!gh auth git-credential`]};let i=await t.get(e);return i==null?{tier:`none`,credentialArgs:[]}:{tier:i.gitProtocol===`ssh`?`C`:`B`,credentialArgs:[`-c`,`credential.helper=!open-knowledge auth git-credential`]}}function Fo(e){return e.replace(/:\d+$/,``)}function Io(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:Fo(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:Fo(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:Fo(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}const Lo=[[`count`,0,10],[`compress`,10,20],[`receiv`,20,60],[`resolv`,60,100]];function Ro(e){let t=/^([\w ]+):\s+(\d+)%/.exec(e.trim());if(!t)return null;let n=t[1].toLowerCase(),r=Number(t[2]);for(let[e,i,a]of Lo)if(n.includes(e))return{stage:t[1],pct:Math.round(i+r/100*(a-i))};return null}function zo(e,t){e&&process.stdout.write(`${JSON.stringify(t)}\n`)}async function Bo(e,t,n,r=process.cwd()){let i=Io(e);if(!i)throw Error(`Invalid git URL: ${e}`);let a=t.dir?Fn(r,t.dir):Fn(r,i.name);if(Rn(a)&&Hn(a).length>0)throw Error(`Target directory is not empty: ${a}`);let o=await _r(),s=await Po(i.hostname,o,{}),c=Ce({baseDir:r,config:s.credentialArgs.length>=2?[s.credentialArgs[1]]:[],unsafe:{allowUnsafeCredentialHelper:!0}}).env({GIT_TERMINAL_PROMPT:`0`}),l=-1;c.outputHandler((e,n,r)=>{r.on(`data`,e=>{let n=e.toString(`utf-8`);for(let e of n.split(`
23
23
  `)){let n=Ro(e);n&&n.pct!==l&&(l=n.pct,zo(t.json,{type:`progress`,pct:n.pct,stage:n.stage}),t.json||process.stderr.write(`\r Cloning… ${n.pct}%`))}})}),await c.clone(e,a,[`--progress`]),t.json||process.stderr.write(`
24
- `);try{let{runInit:e}=await import(`./init-Cds71WAI.mjs`),n=await e({cwd:a,mcp:!1});if(n.contentUpdated.length>0){let e=`auto-init: updated ${n.contentUpdated.join(`, `)}`;t.json?zo(!0,{type:`warning`,message:e}):process.stderr.write(` ${e}\n`)}}catch(e){let n=e instanceof Error?e.message:String(e);t.json?zo(!0,{type:`warning`,message:`auto-init: ${n}`}):process.stderr.write(` auto-init: ${n}\n`)}try{Vo(a)}catch(e){let n=e instanceof Error?e.message:String(e);t.json?zo(!0,{type:`warning`,message:`git-exclude: ${n}`}):process.stderr.write(` git-exclude: ${n}\n`)}return a}function Vo(e){let t=Nn(e,`.git`,`info`,`exclude`);if(!Rn(t))return`no-exclude`;let n=Vn(t,`utf-8`),r=new Set([g,`${g}/`,`/${g}`,`/${g}/`]);return n.split(`
24
+ `);try{let{runInit:e}=await import(`./init-BjCJuWSb.mjs`),n=await e({cwd:a,mcp:!1});if(n.contentUpdated.length>0){let e=`auto-init: updated ${n.contentUpdated.join(`, `)}`;t.json?zo(!0,{type:`warning`,message:e}):process.stderr.write(` ${e}\n`)}}catch(e){let n=e instanceof Error?e.message:String(e);t.json?zo(!0,{type:`warning`,message:`auto-init: ${n}`}):process.stderr.write(` auto-init: ${n}\n`)}try{Vo(a)}catch(e){let n=e instanceof Error?e.message:String(e);t.json?zo(!0,{type:`warning`,message:`git-exclude: ${n}`}):process.stderr.write(` git-exclude: ${n}\n`)}return a}function Vo(e){let t=Nn(e,`.git`,`info`,`exclude`);if(!Rn(t))return`no-exclude`;let n=Vn(t,`utf-8`),r=new Set([g,`${g}/`,`/${g}`,`/${g}/`]);return n.split(`
25
25
  `).map(e=>e.trim()).some(e=>r.has(e))?`already-present`:(Kn(t,`${n}${n.length===0||n.endsWith(`
26
26
  `)?``:`
27
- `}${g}/\n`,`utf-8`),`appended`)}function Ho(e){return new r(`clone`).description(`Clone a git repository and open it`).argument(`<url>`,`Repository URL or owner/repo shorthand`).argument(`[dir]`,`Target directory (default: ./<repo-name>)`).option(`--json`,`Output JSONL progress events`,!1).action(async(t,n,r)=>{let i=e();try{let a=await Bo(t,{json:r.json,dir:n},i);if(r.json)zo(!0,{type:`complete`,dir:a});else{process.stderr.write(`✓ Cloned to ${a}\n`),process.chdir(a);let{startCommand:t}=await import(`./start-ZcmBOEtV.mjs`);await t(e).parseAsync([],{from:`user`})}}catch(e){let t=e instanceof Error?e.message:String(e);r.json?zo(!0,{type:`error`,message:t}):process.stderr.write(`✗ ${t}\n`),process.exitCode=1}})}const Uo=[[`sync`],[`persistence`,`debounceMs`],[`persistence`,`maxDebounceMs`],[`server`,`port`]];function Wo(e={}){let t=e.log??(e=>console.error(e)),n=e.error??(e=>console.error(e)),r=e.loadConfigFn??Be;try{let{sources:n}=r(e.cwd);return t(`✓ Configuration valid (sources: ${n.length===0?`defaults only`:n.join(`, `)})`),{ok:!0}}catch(e){return n(e instanceof Error?e.message:String(e)),{ok:!1}}}function Go(e){let t=(0,pr.parseDocument)(Vn(e,`utf-8`));if(t.errors.length>0)throw Error(`Could not parse ${e}: ${t.errors.map(e=>e.message).join(`; `)}`);let n=[];for(let e of Uo)t.hasIn(e)&&n.push(e.join(`.`));return n}function Ko(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function qo(e){let t={};for(let n of e){let e=t;for(let t=0;t<n.length-1;t++){let r=n[t],i=e[r],a=Ko(i)?i:{};e[r]=a,e=a}e[n[n.length-1]]=null}return t}async function Jo(e={}){let t=e.log??(e=>console.log(e)),n=e.error??(e=>console.error(e)),r=e.scope??`both`,i=e.dryRun??!1,a=e.cwd??process.cwd(),o=e.writeConfigPatchFn??Pe,c=[];(r===`workspace`||r===`both`)&&c.push({scope:`workspace`,absPath:Fe(`workspace`,a,e.homedirOverride)}),(r===`user`||r===`both`)&&c.push({scope:`user`,absPath:Fe(`user`,a,e.homedirOverride)});let l=[],u=!0;for(let{scope:t,absPath:n}of c){if(!Rn(n)){l.push({path:n,scope:t,found:[],removed:[]});continue}let r;try{r=Go(n)}catch(e){let r=e instanceof Error?e.message:String(e);l.push({path:n,scope:t,found:[],removed:[],error:r}),u=!1;continue}if(r.length===0||i){l.push({path:n,scope:t,found:r,removed:[]});continue}let c=await o({cwd:a,scope:t,patch:qo(Uo.filter(e=>r.includes(e.join(`.`)))),homedirOverride:e.homedirOverride});if(!c.ok){l.push({path:n,scope:t,found:r,removed:[],error:s(c.error)}),u=!1;continue}l.push({path:n,scope:t,found:r,removed:r})}for(let e of l)e.error&&n(`✗ ${e.path}: ${e.error}`);let d=l.some(e=>e.error!==void 0),f=l.reduce((e,t)=>e+t.found.length,0);if(f===0&&!d)t(`No deprecated fields found.`);else if(f>0)for(let e of l)e.error||(e.found.length===0?t(` ${e.path}: no deprecated fields`):t(i?`[dry-run] ${e.path}: would remove ${e.found.length} field(s): ${e.found.join(`, `)}`:`✓ ${e.path}: removed ${e.removed.length} field(s): ${e.removed.join(`, `)}`));return{outcomes:l,ok:u}}function Yo(){let e=new r(`config`).description(`Inspect and maintain Open Knowledge configuration files`);return e.command(`validate`).description(`Validate the merged config (defaults → user → workspace)`).action(()=>{Wo({}).ok||(process.exitCode=1)}),e.command(`migrate`).description(`Remove deprecated config fields (sync.*, persistence.{debounceMs,maxDebounceMs}, server.port) idempotently`).option(`--scope <scope>`,`Which scope to migrate: workspace | user | both`,`both`).option(`--dry-run`,`Preview without writing`,!1).action(async e=>{let t=e.scope;if(t!==`workspace`&&t!==`user`&&t!==`both`){console.error(`Invalid --scope: ${t}. Expected: workspace | user | both`),process.exitCode=2;return}(await Jo({scope:t,dryRun:e.dryRun})).ok||(process.exitCode=1)}),e}function Xo(e=Jn()){return Nn(e,`Downloads`,`openknowledge.skill`)}function Zo(e,t,n){try{return t===`darwin`?(n(`open`,[e],{detached:!0,stdio:`ignore`}).unref(),{ok:!0}):t===`win32`?(n(`cmd`,[`/c`,`start`,`""`,e],{detached:!0,stdio:`ignore`}).unref(),{ok:!0}):t===`linux`?(n(`xdg-open`,[e],{detached:!0,stdio:`ignore`}).unref(),{ok:!0}):{ok:!1,reason:`unsupported-platform`,message:`Platform '${t}' has no file-association invocation wired. Use --no-open and open the file manually.`}}catch(e){return{ok:!1,reason:`spawn-error`,message:e instanceof Error?e.message:String(e)}}}async function Qo(e={}){let t=Fn(e.out??Xo()),n=e.platformName??Xn(),r=e.spawnFn??Dn;try{await ar(jn(t),{recursive:!0})}catch(e){return{status:`failed`,message:`${qe(`Error:`)} could not create output directory: ${e instanceof Error?e.message:String(e)}`,exitCode:1}}let i;try{i=await De({outputPath:t,skipVersionCheck:!0})}catch(e){return{status:`failed`,message:`${qe(`Error:`)} build failed — ${e instanceof Error?e.message:String(e)}`,exitCode:1}}if(e.noOpen)return{status:`built`,outputPath:i.outputPath,size:i.size,sha256:i.sha256,cliVersion:i.cliVersion,skillVersion:i.skillVersion,message:[Ke(`Built ${i.outputPath}`),Ge(` ${i.size} bytes • sha256 ${i.sha256.slice(0,12)}…`),We(` Open the Claude Desktop App, then: ${Ye(`Customize → Skills → + → Create skill → Upload skill`)} → pick the file.`)].join(`
27
+ `}${g}/\n`,`utf-8`),`appended`)}function Ho(e){return new r(`clone`).description(`Clone a git repository and open it`).argument(`<url>`,`Repository URL or owner/repo shorthand`).argument(`[dir]`,`Target directory (default: ./<repo-name>)`).option(`--json`,`Output JSONL progress events`,!1).action(async(t,n,r)=>{let i=e();try{let a=await Bo(t,{json:r.json,dir:n},i);if(r.json)zo(!0,{type:`complete`,dir:a});else{process.stderr.write(`✓ Cloned to ${a}\n`),process.chdir(a);let{startCommand:t}=await import(`./start-BNLzgRz7.mjs`);await t(e).parseAsync([],{from:`user`})}}catch(e){let t=e instanceof Error?e.message:String(e);r.json?zo(!0,{type:`error`,message:t}):process.stderr.write(`✗ ${t}\n`),process.exitCode=1}})}const Uo=[[`sync`],[`persistence`,`debounceMs`],[`persistence`,`maxDebounceMs`],[`server`,`port`]];function Wo(e={}){let t=e.log??(e=>console.error(e)),n=e.error??(e=>console.error(e)),r=e.loadConfigFn??Be;try{let{sources:n}=r(e.cwd);return t(`✓ Configuration valid (sources: ${n.length===0?`defaults only`:n.join(`, `)})`),{ok:!0}}catch(e){return n(e instanceof Error?e.message:String(e)),{ok:!1}}}function Go(e){let t=(0,pr.parseDocument)(Vn(e,`utf-8`));if(t.errors.length>0)throw Error(`Could not parse ${e}: ${t.errors.map(e=>e.message).join(`; `)}`);let n=[];for(let e of Uo)t.hasIn(e)&&n.push(e.join(`.`));return n}function Ko(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function qo(e){let t={};for(let n of e){let e=t;for(let t=0;t<n.length-1;t++){let r=n[t],i=e[r],a=Ko(i)?i:{};e[r]=a,e=a}e[n[n.length-1]]=null}return t}async function Jo(e={}){let t=e.log??(e=>console.log(e)),n=e.error??(e=>console.error(e)),r=e.scope??`both`,i=e.dryRun??!1,a=e.cwd??process.cwd(),o=e.writeConfigPatchFn??Pe,c=[];(r===`workspace`||r===`both`)&&c.push({scope:`workspace`,absPath:Fe(`workspace`,a,e.homedirOverride)}),(r===`user`||r===`both`)&&c.push({scope:`user`,absPath:Fe(`user`,a,e.homedirOverride)});let l=[],u=!0;for(let{scope:t,absPath:n}of c){if(!Rn(n)){l.push({path:n,scope:t,found:[],removed:[]});continue}let r;try{r=Go(n)}catch(e){let r=e instanceof Error?e.message:String(e);l.push({path:n,scope:t,found:[],removed:[],error:r}),u=!1;continue}if(r.length===0||i){l.push({path:n,scope:t,found:r,removed:[]});continue}let c=await o({cwd:a,scope:t,patch:qo(Uo.filter(e=>r.includes(e.join(`.`)))),homedirOverride:e.homedirOverride});if(!c.ok){l.push({path:n,scope:t,found:r,removed:[],error:s(c.error)}),u=!1;continue}l.push({path:n,scope:t,found:r,removed:r})}for(let e of l)e.error&&n(`✗ ${e.path}: ${e.error}`);let d=l.some(e=>e.error!==void 0),f=l.reduce((e,t)=>e+t.found.length,0);if(f===0&&!d)t(`No deprecated fields found.`);else if(f>0)for(let e of l)e.error||(e.found.length===0?t(` ${e.path}: no deprecated fields`):t(i?`[dry-run] ${e.path}: would remove ${e.found.length} field(s): ${e.found.join(`, `)}`:`✓ ${e.path}: removed ${e.removed.length} field(s): ${e.removed.join(`, `)}`));return{outcomes:l,ok:u}}function Yo(){let e=new r(`config`).description(`Inspect and maintain Open Knowledge configuration files`);return e.command(`validate`).description(`Validate the merged config (defaults → user → workspace)`).action(()=>{Wo({}).ok||(process.exitCode=1)}),e.command(`migrate`).description(`Remove deprecated config fields (sync.*, persistence.{debounceMs,maxDebounceMs}, server.port) idempotently`).option(`--scope <scope>`,`Which scope to migrate: workspace | user | both`,`both`).option(`--dry-run`,`Preview without writing`,!1).action(async e=>{let t=e.scope;if(t!==`workspace`&&t!==`user`&&t!==`both`){console.error(`Invalid --scope: ${t}. Expected: workspace | user | both`),process.exitCode=2;return}(await Jo({scope:t,dryRun:e.dryRun})).ok||(process.exitCode=1)}),e}function Xo(e=Jn()){return Nn(e,`Downloads`,`openknowledge.skill`)}function Zo(e,t,n){try{return t===`darwin`?(n(`open`,[e],{detached:!0,stdio:`ignore`}).unref(),{ok:!0}):t===`win32`?(n(`cmd`,[`/c`,`start`,`""`,e],{detached:!0,stdio:`ignore`}).unref(),{ok:!0}):t===`linux`?(n(`xdg-open`,[e],{detached:!0,stdio:`ignore`}).unref(),{ok:!0}):{ok:!1,reason:`unsupported-platform`,message:`Platform '${t}' has no file-association invocation wired. Use --no-open and open the file manually.`}}catch(e){return{ok:!1,reason:`spawn-error`,message:e instanceof Error?e.message:String(e)}}}async function Qo(e={}){let t=Fn(e.out??Xo()),n=e.platformName??Xn(),r=e.spawnFn??Dn;try{await ar(jn(t),{recursive:!0})}catch(e){return{status:`failed`,message:`${qe(`Error:`)} could not create output directory: ${e instanceof Error?e.message:String(e)}`,exitCode:1}}let i;try{i=await De({outputPath:t,skipVersionCheck:!0})}catch(e){return{status:`failed`,message:`${qe(`Error:`)} build failed — ${e instanceof Error?e.message:String(e)}`,exitCode:1}}if(e.noOpen)return{status:`built`,outputPath:i.outputPath,size:i.size,sha256:i.sha256,cliVersion:i.cliVersion,skillVersion:i.skillVersion,message:[Ke(`Built ${i.outputPath}`),Ge(` ${i.size} bytes • sha256 ${i.sha256.slice(0,12)}…`),We(` Open the Claude Desktop App, then: ${Ye(`Customize → Skills → + → Create skill → Upload skill`)} → pick the file.`)].join(`
28
28
  `),exitCode:0};let a=Zo(i.outputPath,n,r);return a.ok?{status:`installed`,outputPath:i.outputPath,size:i.size,sha256:i.sha256,cliVersion:i.cliVersion,skillVersion:i.skillVersion,message:[Ke(`Built ${i.outputPath}`),Ge(` ${i.size} bytes • sha256 ${i.sha256.slice(0,12)}… • CLI v${i.cliVersion}`),We(` Claude Desktop App opened. Now upload the file manually:`),` 1. ${Ye(`Customize`)} (sidebar) → ${Ye(`Skills`)}`,` 2. Click the ${Ye(`+`)} button`,` 3. Click ${Ye(`Create skill`)}`,` 4. Click ${Ye(`Upload skill`)}`,` 5. Pick ${Ye(`openknowledge.skill`)} from Downloads`,Ge(` If Claude Desktop didn't open, open it and start at step 1. The file is at ${i.outputPath}`)].join(`
29
29
  `),exitCode:0}:{status:`built`,outputPath:i.outputPath,size:i.size,sha256:i.sha256,cliVersion:i.cliVersion,skillVersion:i.skillVersion,message:[Ke(`Built ${i.outputPath}`),Je(` Handoff failed: ${a.message}`),We(` Open the Claude Desktop App, then: ${Ye(`Customize → Skills → + → Create skill → Upload skill`)} → pick the file.`)].join(`
30
30
  `),exitCode:0}}function $o(){return new r(`install-skill`).description("Build openknowledge.skill and open the Claude Desktop App so you can upload it for Claude Chat & Cowork. Not needed for Claude Code — `ok init` covers that separately.").option(`--out <path>`,`Custom output path (default: ~/Downloads/openknowledge.skill)`).option(`--no-open`,`Build the file but skip the OS file-association handoff`).action(async e=>{let t=await Qo({out:e.out,noOpen:!e.open});process.stdout.write(`${t.message}\n`),t.exitCode!==0&&process.exit(t.exitCode)})}var M;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(M||={});var es;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(es||={});const N=M.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),ts=e=>{switch(typeof e){case`undefined`:return N.undefined;case`string`:return N.string;case`number`:return Number.isNaN(e)?N.nan:N.number;case`boolean`:return N.boolean;case`function`:return N.function;case`bigint`:return N.bigint;case`symbol`:return N.symbol;case`object`:return Array.isArray(e)?N.array:e===null?N.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?N.promise:typeof Map<`u`&&e instanceof Map?N.map:typeof Set<`u`&&e instanceof Set?N.set:typeof Date<`u`&&e instanceof Date?N.date:N.object;default:return N.unknown}},P=M.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]);var ns=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,M.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t=Object.create(null),n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};ns.create=e=>new ns(e);const rs=(e,t)=>{let n;switch(e.code){case P.invalid_type:n=e.received===N.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case P.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,M.jsonStringifyReplacer)}`;break;case P.unrecognized_keys:n=`Unrecognized key(s) in object: ${M.joinValues(e.keys,`, `)}`;break;case P.invalid_union:n=`Invalid input`;break;case P.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${M.joinValues(e.options)}`;break;case P.invalid_enum_value:n=`Invalid enum value. Expected ${M.joinValues(e.options)}, received '${e.received}'`;break;case P.invalid_arguments:n=`Invalid function arguments`;break;case P.invalid_return_type:n=`Invalid function return type`;break;case P.invalid_date:n=`Invalid date`;break;case P.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:M.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case P.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case P.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case P.custom:n=`Invalid input`;break;case P.invalid_intersection_types:n=`Intersection results could not be merged`;break;case P.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case P.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,M.assertNever(e)}return{message:n}};let is=rs;function as(){return is}const os=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function F(e,t){let n=as(),r=os({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===rs?void 0:rs].filter(e=>!!e)});e.common.issues.push(r)}var ss=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return I;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return I;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}};const I=Object.freeze({status:`aborted`}),cs=e=>({status:`dirty`,value:e}),ls=e=>({status:`valid`,value:e}),us=e=>e.status===`aborted`,ds=e=>e.status===`dirty`,fs=e=>e.status===`valid`,ps=e=>typeof Promise<`u`&&e instanceof Promise;var L;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(L||={});var ms=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};const hs=(e,t)=>{if(fs(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){return this._error||=new ns(e.common.issues),this._error}}};function R(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var z=class{get description(){return this._def.description}_getType(e){return ts(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:ts(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ss,ctx:{common:e.parent.common,data:e.data,parsedType:ts(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(ps(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ts(e)};return hs(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ts(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return fs(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>fs(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ts(e)},r=this._parse({data:e,path:n.path,parent:n});return hs(n,await(ps(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:P.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new _c({schema:this,typeName:B.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return vc.create(this,this._def)}nullable(){return yc.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Qs.create(this)}promise(){return gc.create(this,this._def)}or(e){return tc.create([this,e],this._def)}and(e){return ac.create(this,e,this._def)}transform(e){return new _c({...R(this._def),schema:this,typeName:B.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new bc({...R(this._def),innerType:this,defaultValue:t,typeName:B.ZodDefault})}brand(){return new Cc({typeName:B.ZodBranded,type:this,...R(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new xc({...R(this._def),innerType:this,catchValue:t,typeName:B.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return wc.create(this,e)}readonly(){return Tc.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const gs=/^c[^\s-]{8,}$/i,_s=/^[0-9a-z]+$/,vs=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ys=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,bs=/^[a-z0-9_-]{21}$/i,xs=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ss=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Cs=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let ws;const Ts=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Es=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ds=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Os=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ks=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,As=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,js=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Ms=RegExp(`^${js}$`);function Ns(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Ps(e){return RegExp(`^${Ns(e)}$`)}function Fs(e){let t=`${js}T${Ns(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Is(e,t){return!!((t===`v4`||!t)&&Ts.test(e)||(t===`v6`||!t)&&Ds.test(e))}function Ls(e,t){if(!xs.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Rs(e,t){return!!((t===`v4`||!t)&&Es.test(e)||(t===`v6`||!t)&&Os.test(e))}var zs=class e extends z{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==N.string){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.string,received:t.parsedType}),I}let t=new ss,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),F(n,{code:P.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),F(n,{code:P.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?F(n,{code:P.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&F(n,{code:P.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Cs.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`email`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)ws||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),ws.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`emoji`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)ys.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`uuid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)bs.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`nanoid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)gs.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`cuid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)_s.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`cuid2`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)vs.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`ulid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),F(n,{validation:`url`,code:P.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`regex`,code:P.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),F(n,{code:P.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),F(n,{code:P.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),F(n,{code:P.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Fs(r).test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{code:P.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Ms.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{code:P.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Ps(r).test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{code:P.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ss.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`duration`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Is(e.data,r.version)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`ip`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Ls(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`jwt`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Rs(e.data,r.version)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`cidr`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?ks.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`base64`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?As.test(e.data)||(n=this._getOrReturnCtx(e,n),F(n,{validation:`base64url`,code:P.invalid_string,message:r.message}),t.dirty()):M.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:P.invalid_string,...L.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...L.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...L.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...L.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...L.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...L.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...L.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...L.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...L.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...L.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...L.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...L.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...L.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...L.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...L.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...L.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...L.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...L.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...L.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...L.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...L.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...L.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...L.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...L.errToObj(t)})}nonempty(e){return this.min(1,L.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};zs.create=e=>new zs({checks:[],typeName:B.ZodString,coerce:e?.coerce??!1,...R(e)});function Bs(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var Vs=class e extends z{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==N.number){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.number,received:t.parsedType}),I}let t,n=new ss;for(let r of this._def.checks)r.kind===`int`?M.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),F(t,{code:P.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),F(t,{code:P.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),F(t,{code:P.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Bs(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),F(t,{code:P.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),F(t,{code:P.not_finite,message:r.message}),n.dirty()):M.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,L.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,L.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,L.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,L.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:L.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:L.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:L.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:L.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:L.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:L.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:L.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:L.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:L.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:L.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&M.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};Vs.create=e=>new Vs({checks:[],typeName:B.ZodNumber,coerce:e?.coerce||!1,...R(e)});var Hs=class e extends z{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==N.bigint)return this._getInvalidInput(e);let t,n=new ss;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),F(t,{code:P.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),F(t,{code:P.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),F(t,{code:P.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):M.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.bigint,received:t.parsedType}),I}gte(e,t){return this.setLimit(`min`,e,!0,L.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,L.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,L.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,L.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:L.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:L.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:L.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:L.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:L.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:L.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Hs.create=e=>new Hs({checks:[],typeName:B.ZodBigInt,coerce:e?.coerce??!1,...R(e)});var Us=class extends z{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==N.boolean){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.boolean,received:t.parsedType}),I}return ls(e.data)}};Us.create=e=>new Us({typeName:B.ZodBoolean,coerce:e?.coerce||!1,...R(e)});var Ws=class e extends z{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==N.date){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.date,received:t.parsedType}),I}if(Number.isNaN(e.data.getTime()))return F(this._getOrReturnCtx(e),{code:P.invalid_date}),I;let t=new ss,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),F(n,{code:P.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),F(n,{code:P.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):M.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:L.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:L.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};Ws.create=e=>new Ws({checks:[],coerce:e?.coerce||!1,typeName:B.ZodDate,...R(e)});var Gs=class extends z{_parse(e){if(this._getType(e)!==N.symbol){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.symbol,received:t.parsedType}),I}return ls(e.data)}};Gs.create=e=>new Gs({typeName:B.ZodSymbol,...R(e)});var Ks=class extends z{_parse(e){if(this._getType(e)!==N.undefined){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.undefined,received:t.parsedType}),I}return ls(e.data)}};Ks.create=e=>new Ks({typeName:B.ZodUndefined,...R(e)});var qs=class extends z{_parse(e){if(this._getType(e)!==N.null){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.null,received:t.parsedType}),I}return ls(e.data)}};qs.create=e=>new qs({typeName:B.ZodNull,...R(e)});var Js=class extends z{constructor(){super(...arguments),this._any=!0}_parse(e){return ls(e.data)}};Js.create=e=>new Js({typeName:B.ZodAny,...R(e)});var Ys=class extends z{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ls(e.data)}};Ys.create=e=>new Ys({typeName:B.ZodUnknown,...R(e)});var Xs=class extends z{_parse(e){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.never,received:t.parsedType}),I}};Xs.create=e=>new Xs({typeName:B.ZodNever,...R(e)});var Zs=class extends z{_parse(e){if(this._getType(e)!==N.undefined){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.void,received:t.parsedType}),I}return ls(e.data)}};Zs.create=e=>new Zs({typeName:B.ZodVoid,...R(e)});var Qs=class e extends z{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==N.array)return F(t,{code:P.invalid_type,expected:N.array,received:t.parsedType}),I;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(F(t,{code:e?P.too_big:P.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(F(t,{code:P.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(F(t,{code:P.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new ms(t,e,t.path,n)))).then(e=>ss.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new ms(t,e,t.path,n)));return ss.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:L.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:L.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:L.toString(n)}})}nonempty(e){return this.min(1,e)}};Qs.create=(e,t)=>new Qs({type:e,minLength:null,maxLength:null,exactLength:null,typeName:B.ZodArray,...R(t)});function $s(e){if(e instanceof ec){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=vc.create($s(r))}return new ec({...e._def,shape:()=>t})}else if(e instanceof Qs)return new Qs({...e._def,type:$s(e.element)});else if(e instanceof vc)return vc.create($s(e.unwrap()));else if(e instanceof yc)return yc.create($s(e.unwrap()));else if(e instanceof oc)return oc.create(e.items.map(e=>$s(e)));else return e}var ec=class e extends z{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape();return this._cached={shape:e,keys:M.objectKeys(e)},this._cached}_parse(e){if(this._getType(e)!==N.object){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.object,received:t.parsedType}),I}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Xs&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new ms(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Xs){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(F(n,{code:P.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new ms(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>ss.mergeObjectSync(t,e)):ss.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return L.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:L.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:B.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of M.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of M.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return $s(this)}partial(t){let n={};for(let e of M.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of M.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof vc;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return pc(M.objectKeys(this.shape))}};ec.create=(e,t)=>new ec({shape:()=>e,unknownKeys:`strip`,catchall:Xs.create(),typeName:B.ZodObject,...R(t)}),ec.strictCreate=(e,t)=>new ec({shape:()=>e,unknownKeys:`strict`,catchall:Xs.create(),typeName:B.ZodObject,...R(t)}),ec.lazycreate=(e,t)=>new ec({shape:e,unknownKeys:`strip`,catchall:Xs.create(),typeName:B.ZodObject,...R(t)});var tc=class extends z{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new ns(e.ctx.common.issues));return F(t,{code:P.invalid_union,unionErrors:n}),I}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new ns(e));return F(t,{code:P.invalid_union,unionErrors:i}),I}}get options(){return this._def.options}};tc.create=(e,t)=>new tc({options:e,typeName:B.ZodUnion,...R(t)});const nc=e=>e instanceof dc?nc(e.schema):e instanceof _c?nc(e.innerType()):e instanceof fc?[e.value]:e instanceof mc?e.options:e instanceof hc?M.objectValues(e.enum):e instanceof bc?nc(e._def.innerType):e instanceof Ks?[void 0]:e instanceof qs?[null]:e instanceof vc?[void 0,...nc(e.unwrap())]:e instanceof yc?[null,...nc(e.unwrap())]:e instanceof Cc||e instanceof Tc?nc(e.unwrap()):e instanceof xc?nc(e._def.innerType):[];var rc=class e extends z{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==N.object)return F(t,{code:P.invalid_type,expected:N.object,received:t.parsedType}),I;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(F(t,{code:P.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),I)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=nc(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:B.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...R(r)})}};function ic(e,t){let n=ts(e),r=ts(t);if(e===t)return{valid:!0,data:e};if(n===N.object&&r===N.object){let n=M.objectKeys(t),r=M.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=ic(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===N.array&&r===N.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=ic(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===N.date&&r===N.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var ac=class extends z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(us(e)||us(r))return I;let i=ic(e.value,r.value);return i.valid?((ds(e)||ds(r))&&t.dirty(),{status:t.value,value:i.data}):(F(n,{code:P.invalid_intersection_types}),I)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};ac.create=(e,t,n)=>new ac({left:e,right:t,typeName:B.ZodIntersection,...R(n)});var oc=class e extends z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==N.array)return F(n,{code:P.invalid_type,expected:N.array,received:n.parsedType}),I;if(n.data.length<this._def.items.length)return F(n,{code:P.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),I;!this._def.rest&&n.data.length>this._def.items.length&&(F(n,{code:P.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new ms(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>ss.mergeArray(t,e)):ss.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};oc.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new oc({items:e,typeName:B.ZodTuple,rest:null,...R(t)})};var sc=class e extends z{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==N.object)return F(n,{code:P.invalid_type,expected:N.object,received:n.parsedType}),I;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new ms(n,e,n.path,e)),value:a._parse(new ms(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?ss.mergeObjectAsync(t,r):ss.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof z?new e({keyType:t,valueType:n,typeName:B.ZodRecord,...R(r)}):new e({keyType:zs.create(),valueType:t,typeName:B.ZodRecord,...R(n)})}},cc=class extends z{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==N.map)return F(n,{code:P.invalid_type,expected:N.map,received:n.parsedType}),I;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new ms(n,e,n.path,[a,`key`])),value:i._parse(new ms(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return I;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return I;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};cc.create=(e,t,n)=>new cc({valueType:t,keyType:e,typeName:B.ZodMap,...R(n)});var lc=class e extends z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==N.set)return F(n,{code:P.invalid_type,expected:N.set,received:n.parsedType}),I;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(F(n,{code:P.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(F(n,{code:P.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return I;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new ms(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:L.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:L.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};lc.create=(e,t)=>new lc({valueType:e,minSize:null,maxSize:null,typeName:B.ZodSet,...R(t)});var uc=class e extends z{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==N.function)return F(t,{code:P.invalid_type,expected:N.function,received:t.parsedType}),I;function n(e,n){return os({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,as(),rs].filter(e=>!!e),issueData:{code:P.invalid_arguments,argumentsError:n}})}function r(e,n){return os({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,as(),rs].filter(e=>!!e),issueData:{code:P.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof gc){let e=this;return ls(async function(...t){let o=new ns([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return ls(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new ns([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new ns([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:oc.create(t).rest(Ys.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||oc.create([]).rest(Ys.create()),returns:n||Ys.create(),typeName:B.ZodFunction,...R(r)})}},dc=class extends z{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};dc.create=(e,t)=>new dc({getter:e,typeName:B.ZodLazy,...R(t)});var fc=class extends z{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return F(t,{received:t.data,code:P.invalid_literal,expected:this._def.value}),I}return{status:`valid`,value:e.data}}get value(){return this._def.value}};fc.create=(e,t)=>new fc({value:e,typeName:B.ZodLiteral,...R(t)});function pc(e,t){return new mc({values:e,typeName:B.ZodEnum,...R(t)})}var mc=class e extends z{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return F(t,{expected:M.joinValues(n),received:t.parsedType,code:P.invalid_type}),I}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return F(t,{received:t.data,code:P.invalid_enum_value,options:n}),I}return ls(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};mc.create=pc;var hc=class extends z{_parse(e){let t=M.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==N.string&&n.parsedType!==N.number){let e=M.objectValues(t);return F(n,{expected:M.joinValues(e),received:n.parsedType,code:P.invalid_type}),I}if(this._cache||=new Set(M.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=M.objectValues(t);return F(n,{received:n.data,code:P.invalid_enum_value,options:e}),I}return ls(e.data)}get enum(){return this._def.values}};hc.create=(e,t)=>new hc({values:e,typeName:B.ZodNativeEnum,...R(t)});var gc=class extends z{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==N.promise&&t.common.async===!1?(F(t,{code:P.invalid_type,expected:N.promise,received:t.parsedType}),I):ls((t.parsedType===N.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};gc.create=(e,t)=>new gc({type:e,typeName:B.ZodPromise,...R(t)});var _c=class extends z{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===B.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{F(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return I;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?I:r.status===`dirty`||t.value===`dirty`?cs(r.value):r});{if(t.value===`aborted`)return I;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?I:r.status===`dirty`||t.value===`dirty`?cs(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?I:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?I:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!fs(e))return I;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>fs(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):I);M.assertNever(r)}};_c.create=(e,t,n)=>new _c({schema:e,typeName:B.ZodEffects,effect:t,...R(n)}),_c.createWithPreprocess=(e,t,n)=>new _c({schema:t,effect:{type:`preprocess`,transform:e},typeName:B.ZodEffects,...R(n)});var vc=class extends z{_parse(e){return this._getType(e)===N.undefined?ls(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};vc.create=(e,t)=>new vc({innerType:e,typeName:B.ZodOptional,...R(t)});var yc=class extends z{_parse(e){return this._getType(e)===N.null?ls(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};yc.create=(e,t)=>new yc({innerType:e,typeName:B.ZodNullable,...R(t)});var bc=class extends z{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===N.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};bc.create=(e,t)=>new bc({innerType:e,typeName:B.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...R(t)});var xc=class extends z{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return ps(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new ns(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new ns(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xc.create=(e,t)=>new xc({innerType:e,typeName:B.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...R(t)});var Sc=class extends z{_parse(e){if(this._getType(e)!==N.nan){let t=this._getOrReturnCtx(e);return F(t,{code:P.invalid_type,expected:N.nan,received:t.parsedType}),I}return{status:`valid`,value:e.data}}};Sc.create=e=>new Sc({typeName:B.ZodNaN,...R(e)});var Cc=class extends z{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},wc=class e extends z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?I:e.status===`dirty`?(t.dirty(),cs(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?I:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:B.ZodPipeline})}},Tc=class extends z{_parse(e){let t=this._def.innerType._parse(e),n=e=>(fs(e)&&(e.value=Object.freeze(e.value)),e);return ps(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Tc.create=(e,t)=>new Tc({innerType:e,typeName:B.ZodReadonly,...R(t)}),ec.lazycreate;var B;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(B||={}),zs.create,Vs.create,Sc.create,Hs.create,Us.create,Ws.create,Gs.create,Ks.create,qs.create,Js.create,Ys.create,Xs.create,Zs.create,Qs.create;const Ec=ec.create;ec.strictCreate,tc.create,rc.create,ac.create,oc.create,sc.create,cc.create,lc.create,uc.create,dc.create,fc.create,mc.create,hc.create,gc.create,_c.create,vc.create,yc.create,_c.createWithPreprocess,wc.create;const Dc=l(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);m.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>ie(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>ne(e,t,n),e.parseAsync=async(t,n)=>i(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>f(e,t,n),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]},{parent:!0}),e.with=e.check,e.clone=(t,n)=>p(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),Oc=l(`ZodMiniObject`,(e,t)=>{o.init(e,t),Dc.init(e,t),h(e,`shape`,()=>t.shape)});function kc(e,t){return new Oc({type:`object`,shape:e??{},...c(t)})}function Ac(e){return!!e._zod}function jc(e){let t=Object.values(e);if(t.length===0)return kc({});let n=t.every(Ac),r=t.every(e=>!Ac(e));if(n)return kc(e);if(r)return Ec(e);throw Error(`Mixed Zod versions detected in object shape.`)}function Mc(e,t){return Ac(e)?ne(e,t):e.safeParse(t)}async function Nc(e,t){return Ac(e)?await f(e,t):await e.safeParseAsync(t)}function Pc(e){if(!e)return;let t;if(t=Ac(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function Fc(e){if(e){if(typeof e==`object`){let t=e,n=e;if(!t._def&&!n._zod){let t=Object.values(e);if(t.length>0&&t.every(e=>typeof e==`object`&&!!e&&(e._def!==void 0||e._zod!==void 0||typeof e.parse==`function`)))return jc(e)}}if(Ac(e)){let t=e._zod?.def;if(t&&(t.type===`object`||t.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function Ic(e){if(e&&typeof e==`object`){if(`message`in e&&typeof e.message==`string`)return e.message;if(`issues`in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t==`object`&&`message`in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function Lc(e){return e.description}function Rc(e){if(Ac(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function zc(e){if(Ac(e)){let t=e._zod?.def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let n=e.value;if(n!==void 0)return n}const Bc=`2025-11-25`,Vc=[Bc,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],Hc=`io.modelcontextprotocol/related-task`,Uc=ce(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),Wc=D([x(),w().int()]),Gc=x();ae({ttl:w().optional(),pollInterval:w().optional()});const Kc=C({ttl:w().optional()}),qc=C({taskId:x()}),Jc=ae({progressToken:Wc.optional(),[Hc]:qc.optional()}),Yc=C({_meta:Jc.optional()}),Xc=Yc.extend({task:Kc.optional()}),Zc=e=>Xc.safeParse(e).success,Qc=C({method:x(),params:Yc.loose().optional()}),$c=C({_meta:Jc.optional()}),el=C({method:x(),params:$c.loose().optional()}),tl=ae({_meta:Jc.optional()}),nl=D([x(),w().int()]),rl=C({jsonrpc:E(`2.0`),id:nl,...Qc.shape}).strict(),il=e=>rl.safeParse(e).success,al=C({jsonrpc:E(`2.0`),...el.shape}).strict(),ol=e=>al.safeParse(e).success,sl=C({jsonrpc:E(`2.0`),id:nl,result:tl}).strict(),cl=e=>sl.safeParse(e).success;var V;(function(e){e[e.ConnectionClosed=-32e3]=`ConnectionClosed`,e[e.RequestTimeout=-32001]=`RequestTimeout`,e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`})(V||={});const ll=C({jsonrpc:E(`2.0`),id:nl.optional(),error:C({code:w().int(),message:x(),data:_().optional()})}).strict(),ul=e=>ll.safeParse(e).success,dl=D([rl,al,sl,ll]);D([sl,ll]);const fl=tl.strict(),pl=$c.extend({requestId:nl.optional(),reason:x().optional()}),ml=el.extend({method:E(`notifications/cancelled`),params:pl}),hl=C({icons:S(C({src:x(),mimeType:x().optional(),sizes:S(x()).optional(),theme:oe([`light`,`dark`]).optional()})).optional()}),gl=C({name:x(),title:x().optional()}),_l=gl.extend({...gl.shape,...hl.shape,version:x(),websiteUrl:x().optional(),description:x().optional()}),vl=le(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,te(C({form:te(C({applyDefaults:T().optional()}),O(x(),_())).optional(),url:Uc.optional()}),O(x(),_()).optional())),yl=ae({list:Uc.optional(),cancel:Uc.optional(),requests:ae({sampling:ae({createMessage:Uc.optional()}).optional(),elicitation:ae({create:Uc.optional()}).optional()}).optional()}),bl=ae({list:Uc.optional(),cancel:Uc.optional(),requests:ae({tools:ae({call:Uc.optional()}).optional()}).optional()}),xl=C({experimental:O(x(),Uc).optional(),sampling:C({context:Uc.optional(),tools:Uc.optional()}).optional(),elicitation:vl.optional(),roots:C({listChanged:T().optional()}).optional(),tasks:yl.optional(),extensions:O(x(),Uc).optional()}),Sl=Yc.extend({protocolVersion:x(),capabilities:xl,clientInfo:_l}),Cl=Qc.extend({method:E(`initialize`),params:Sl}),wl=C({experimental:O(x(),Uc).optional(),logging:Uc.optional(),completions:Uc.optional(),prompts:C({listChanged:T().optional()}).optional(),resources:C({subscribe:T().optional(),listChanged:T().optional()}).optional(),tools:C({listChanged:T().optional()}).optional(),tasks:bl.optional(),extensions:O(x(),Uc).optional()}),Tl=tl.extend({protocolVersion:x(),capabilities:wl,serverInfo:_l,instructions:x().optional()}),El=el.extend({method:E(`notifications/initialized`),params:$c.optional()}),Dl=Qc.extend({method:E(`ping`),params:Yc.optional()}),Ol=C({progress:w(),total:y(w()),message:y(x())}),kl=C({...$c.shape,...Ol.shape,progressToken:Wc}),Al=el.extend({method:E(`notifications/progress`),params:kl}),jl=Yc.extend({cursor:Gc.optional()}),Ml=Qc.extend({params:jl.optional()}),Nl=tl.extend({nextCursor:Gc.optional()}),Pl=oe([`working`,`input_required`,`completed`,`failed`,`cancelled`]),Fl=C({taskId:x(),status:Pl,ttl:D([w(),se()]),createdAt:x(),lastUpdatedAt:x(),pollInterval:y(w()),statusMessage:y(x())}),Il=tl.extend({task:Fl}),Ll=$c.merge(Fl),Rl=el.extend({method:E(`notifications/tasks/status`),params:Ll}),zl=Qc.extend({method:E(`tasks/get`),params:Yc.extend({taskId:x()})}),Bl=tl.merge(Fl),Vl=Qc.extend({method:E(`tasks/result`),params:Yc.extend({taskId:x()})});tl.loose();const Hl=Ml.extend({method:E(`tasks/list`)}),Ul=Nl.extend({tasks:S(Fl)}),Wl=Qc.extend({method:E(`tasks/cancel`),params:Yc.extend({taskId:x()})}),Gl=tl.merge(Fl),Kl=C({uri:x(),mimeType:y(x()),_meta:O(x(),_()).optional()}),ql=Kl.extend({text:x()}),Jl=x().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Yl=Kl.extend({blob:Jl}),Xl=oe([`user`,`assistant`]),Zl=C({audience:S(Xl).optional(),priority:w().min(0).max(1).optional(),lastModified:a({offset:!0}).optional()}),Ql=C({...gl.shape,...hl.shape,uri:x(),description:y(x()),mimeType:y(x()),size:y(w()),annotations:Zl.optional(),_meta:y(ae({}))}),$l=C({...gl.shape,...hl.shape,uriTemplate:x(),description:y(x()),mimeType:y(x()),annotations:Zl.optional(),_meta:y(ae({}))}),eu=Ml.extend({method:E(`resources/list`)}),tu=Nl.extend({resources:S(Ql)}),nu=Ml.extend({method:E(`resources/templates/list`)}),ru=Nl.extend({resourceTemplates:S($l)}),iu=Yc.extend({uri:x()}),au=iu,ou=Qc.extend({method:E(`resources/read`),params:au}),su=tl.extend({contents:S(D([ql,Yl]))}),cu=el.extend({method:E(`notifications/resources/list_changed`),params:$c.optional()}),lu=iu,uu=Qc.extend({method:E(`resources/subscribe`),params:lu}),du=iu,fu=Qc.extend({method:E(`resources/unsubscribe`),params:du}),pu=$c.extend({uri:x()}),mu=el.extend({method:E(`notifications/resources/updated`),params:pu}),hu=C({name:x(),description:y(x()),required:y(T())}),gu=C({...gl.shape,...hl.shape,description:y(x()),arguments:y(S(hu)),_meta:y(ae({}))}),_u=Ml.extend({method:E(`prompts/list`)}),vu=Nl.extend({prompts:S(gu)}),yu=Yc.extend({name:x(),arguments:O(x(),x()).optional()}),bu=Qc.extend({method:E(`prompts/get`),params:yu}),xu=C({type:E(`text`),text:x(),annotations:Zl.optional(),_meta:O(x(),_()).optional()}),Su=C({type:E(`image`),data:Jl,mimeType:x(),annotations:Zl.optional(),_meta:O(x(),_()).optional()}),Cu=C({type:E(`audio`),data:Jl,mimeType:x(),annotations:Zl.optional(),_meta:O(x(),_()).optional()}),wu=C({type:E(`tool_use`),name:x(),id:x(),input:O(x(),_()),_meta:O(x(),_()).optional()}),Tu=C({type:E(`resource`),resource:D([ql,Yl]),annotations:Zl.optional(),_meta:O(x(),_()).optional()}),Eu=D([xu,Su,Cu,Ql.extend({type:E(`resource_link`)}),Tu]),Du=C({role:Xl,content:Eu}),Ou=tl.extend({description:x().optional(),messages:S(Du)}),ku=el.extend({method:E(`notifications/prompts/list_changed`),params:$c.optional()}),Au=C({title:x().optional(),readOnlyHint:T().optional(),destructiveHint:T().optional(),idempotentHint:T().optional(),openWorldHint:T().optional()}),ju=C({taskSupport:oe([`required`,`optional`,`forbidden`]).optional()}),Mu=C({...gl.shape,...hl.shape,description:x().optional(),inputSchema:C({type:E(`object`),properties:O(x(),Uc).optional(),required:S(x()).optional()}).catchall(_()),outputSchema:C({type:E(`object`),properties:O(x(),Uc).optional(),required:S(x()).optional()}).catchall(_()).optional(),annotations:Au.optional(),execution:ju.optional(),_meta:O(x(),_()).optional()}),Nu=Ml.extend({method:E(`tools/list`)}),Pu=Nl.extend({tools:S(Mu)}),Fu=tl.extend({content:S(Eu).default([]),structuredContent:O(x(),_()).optional(),isError:T().optional()});Fu.or(tl.extend({toolResult:_()}));const Iu=Xc.extend({name:x(),arguments:O(x(),_()).optional()}),Lu=Qc.extend({method:E(`tools/call`),params:Iu}),Ru=el.extend({method:E(`notifications/tools/list_changed`),params:$c.optional()});C({autoRefresh:T().default(!0),debounceMs:w().int().nonnegative().default(300)});const zu=oe([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Bu=Yc.extend({level:zu}),Vu=Qc.extend({method:E(`logging/setLevel`),params:Bu}),Hu=$c.extend({level:zu,logger:x().optional(),data:_()}),Uu=el.extend({method:E(`notifications/message`),params:Hu}),Wu=C({hints:S(C({name:x().optional()})).optional(),costPriority:w().min(0).max(1).optional(),speedPriority:w().min(0).max(1).optional(),intelligencePriority:w().min(0).max(1).optional()}),Gu=C({mode:oe([`auto`,`required`,`none`]).optional()}),Ku=C({type:E(`tool_result`),toolUseId:x().describe(`The unique identifier for the corresponding tool call.`),content:S(Eu).default([]),structuredContent:C({}).loose().optional(),isError:T().optional(),_meta:O(x(),_()).optional()}),qu=ee(`type`,[xu,Su,Cu]),Ju=ee(`type`,[xu,Su,Cu,wu,Ku]),Yu=C({role:Xl,content:D([Ju,S(Ju)]),_meta:O(x(),_()).optional()}),Xu=Xc.extend({messages:S(Yu),modelPreferences:Wu.optional(),systemPrompt:x().optional(),includeContext:oe([`none`,`thisServer`,`allServers`]).optional(),temperature:w().optional(),maxTokens:w().int(),stopSequences:S(x()).optional(),metadata:Uc.optional(),tools:S(Mu).optional(),toolChoice:Gu.optional()}),Zu=Qc.extend({method:E(`sampling/createMessage`),params:Xu}),Qu=tl.extend({model:x(),stopReason:y(oe([`endTurn`,`stopSequence`,`maxTokens`]).or(x())),role:Xl,content:qu}),$u=tl.extend({model:x(),stopReason:y(oe([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(x())),role:Xl,content:D([Ju,S(Ju)])}),ed=C({type:E(`boolean`),title:x().optional(),description:x().optional(),default:T().optional()}),td=C({type:E(`string`),title:x().optional(),description:x().optional(),minLength:w().optional(),maxLength:w().optional(),format:oe([`email`,`uri`,`date`,`date-time`]).optional(),default:x().optional()}),nd=C({type:oe([`number`,`integer`]),title:x().optional(),description:x().optional(),minimum:w().optional(),maximum:w().optional(),default:w().optional()}),rd=C({type:E(`string`),title:x().optional(),description:x().optional(),enum:S(x()),default:x().optional()}),id=C({type:E(`string`),title:x().optional(),description:x().optional(),oneOf:S(C({const:x(),title:x()})),default:x().optional()}),ad=D([D([C({type:E(`string`),title:x().optional(),description:x().optional(),enum:S(x()),enumNames:S(x()).optional(),default:x().optional()}),D([rd,id]),D([C({type:E(`array`),title:x().optional(),description:x().optional(),minItems:w().optional(),maxItems:w().optional(),items:C({type:E(`string`),enum:S(x())}),default:S(x()).optional()}),C({type:E(`array`),title:x().optional(),description:x().optional(),minItems:w().optional(),maxItems:w().optional(),items:C({anyOf:S(C({const:x(),title:x()}))}),default:S(x()).optional()})])]),ed,td,nd]),od=D([Xc.extend({mode:E(`form`).optional(),message:x(),requestedSchema:C({type:E(`object`),properties:O(x(),ad),required:S(x()).optional()})}),Xc.extend({mode:E(`url`),message:x(),elicitationId:x(),url:x().url()})]),sd=Qc.extend({method:E(`elicitation/create`),params:od}),cd=$c.extend({elicitationId:x()}),ld=el.extend({method:E(`notifications/elicitation/complete`),params:cd}),ud=tl.extend({action:oe([`accept`,`decline`,`cancel`]),content:le(e=>e===null?void 0:e,O(x(),D([x(),w(),T(),S(x())])).optional())}),dd=C({type:E(`ref/resource`),uri:x()}),fd=C({type:E(`ref/prompt`),name:x()}),pd=Yc.extend({ref:D([fd,dd]),argument:C({name:x(),value:x()}),context:C({arguments:O(x(),x()).optional()}).optional()}),md=Qc.extend({method:E(`completion/complete`),params:pd});function hd(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function gd(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const _d=tl.extend({completion:ae({values:S(x()).max(100),total:y(w().int()),hasMore:y(T())})}),vd=C({uri:x().startsWith(`file://`),name:x().optional(),_meta:O(x(),_()).optional()}),yd=Qc.extend({method:E(`roots/list`),params:Yc.optional()}),bd=tl.extend({roots:S(vd)}),xd=el.extend({method:E(`notifications/roots/list_changed`),params:$c.optional()});D([Dl,Cl,md,Vu,bu,_u,eu,nu,ou,uu,fu,Lu,Nu,zl,Vl,Hl,Wl]),D([ml,Al,El,xd,Rl]),D([fl,Qu,$u,ud,bd,Bl,Ul,Il]),D([Dl,Zu,sd,yd,zl,Vl,Hl,Wl]),D([ml,Al,Uu,mu,cu,Ru,ku,Rl,ld]),D([fl,Tl,_d,Ou,vu,tu,ru,su,Fu,Pu,Bl,Ul,Il]);var H=class e extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name=`McpError`}static fromError(t,n,r){if(t===V.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new Sd(e.elicitations,n)}return new e(t,n,r)}},Sd=class extends H{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(V.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Cd(e){return e===`completed`||e===`failed`||e===`cancelled`}const wd=Symbol(`Let zodToJsonSchema decide on which parser to use`),Td={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,target:`jsonSchema7`,strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`,openAiAnyTypeName:`OpenAiAnyType`},Ed=e=>typeof e==`string`?{...Td,name:e}:{...Td,...e},Dd=e=>{let t=Ed(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}};function Od(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function U(e,t,n,r,i){e[t]=n,Od(e,t,r,i)}const kd=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)};function Ad(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?kd(t,e.currentPath):t.join(`/`)}}function jd(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==B.ZodAny&&(n.items=W(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&U(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&U(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(U(n,`minItems`,e.exactLength.value,e.exactLength.message,t),U(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function Md(e,t){let n={type:`integer`,format:`int64`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`min`:t.target===`jsonSchema7`?r.inclusive?U(n,`minimum`,r.value,r.message,t):U(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),U(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?U(n,`maximum`,r.value,r.message,t):U(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),U(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:U(n,`multipleOf`,r.value,r.message,t);break}return n}function Nd(){return{type:`boolean`}}function Pd(e,t){return W(e.type._def,t)}const Fd=(e,t)=>W(e.innerType._def,t);function Id(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>Id(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return Ld(e,t)}}const Ld=(e,t)=>{let n={type:`integer`,format:`unix-time`};if(t.target===`openApi3`)return n;for(let r of e.checks)switch(r.kind){case`min`:U(n,`minimum`,r.value,r.message,t);break;case`max`:U(n,`maximum`,r.value,r.message,t);break}return n};function Rd(e,t){return{...W(e.innerType._def,t),default:e.defaultValue()}}function zd(e,t){return t.effectStrategy===`input`?W(e.schema._def,t):Ad(t)}function Bd(e){return{type:`string`,enum:Array.from(e.values)}}const Vd=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function Hd(e,t){let n=[W(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),W(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=t.target===`jsonSchema2019-09`?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(e=>{if(Vd(e))i.push(...e.allOf),e.unevaluatedProperties===void 0&&(r=void 0);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}else r=void 0;i.push(t)}}),i.length?{allOf:i,...r}:void 0}function Ud(e,t){let n=typeof e.value;return n!==`bigint`&&n!==`number`&&n!==`boolean`&&n!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:t.target===`openApi3`?{type:n===`bigint`?`integer`:n,enum:[e.value]}:{type:n===`bigint`?`integer`:n,const:e.value}}let Wd;const Gd={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Wd===void 0&&(Wd=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),Wd),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Kd(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:U(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:U(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`email`:switch(t.emailStrategy){case`format:email`:Xd(n,`email`,r.message,t);break;case`format:idn-email`:Xd(n,`idn-email`,r.message,t);break;case`pattern:zod`:Zd(n,Gd.email,r.message,t);break}break;case`url`:Xd(n,`uri`,r.message,t);break;case`uuid`:Xd(n,`uuid`,r.message,t);break;case`regex`:Zd(n,r.regex,r.message,t);break;case`cuid`:Zd(n,Gd.cuid,r.message,t);break;case`cuid2`:Zd(n,Gd.cuid2,r.message,t);break;case`startsWith`:Zd(n,RegExp(`^${qd(r.value,t)}`),r.message,t);break;case`endsWith`:Zd(n,RegExp(`${qd(r.value,t)}$`),r.message,t);break;case`datetime`:Xd(n,`date-time`,r.message,t);break;case`date`:Xd(n,`date`,r.message,t);break;case`time`:Xd(n,`time`,r.message,t);break;case`duration`:Xd(n,`duration`,r.message,t);break;case`length`:U(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),U(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:Zd(n,RegExp(qd(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&Xd(n,`ipv4`,r.message,t),r.version!==`v4`&&Xd(n,`ipv6`,r.message,t);break;case`base64url`:Zd(n,Gd.base64url,r.message,t);break;case`jwt`:Zd(n,Gd.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&Zd(n,Gd.ipv4Cidr,r.message,t),r.version!==`v4`&&Zd(n,Gd.ipv6Cidr,r.message,t);break;case`emoji`:Zd(n,Gd.emoji(),r.message,t);break;case`ulid`:Zd(n,Gd.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:Xd(n,`binary`,r.message,t);break;case`contentEncoding:base64`:U(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:Zd(n,Gd.base64,r.message,t);break}break;case`nanoid`:Zd(n,Gd.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function qd(e,t){return t.patternStrategy===`escape`?Yd(e):e}const Jd=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function Yd(e){let t=``;for(let n=0;n<e.length;n++)Jd.has(e[n])||(t+=`\\`),t+=e[n];return t}function Xd(e,t,n,r){e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):U(e,`format`,t,n,r)}function Zd(e,t,n,r){e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:Qd(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):U(e,`pattern`,Qd(t,r),n,r)}function Qd(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
@@ -1404,8 +1404,8 @@ Claude Code Desktop: \`preview_start("open-knowledge-ui")\`. Other hosts: open-U
1404
1404
  Detailed conventions (wiki-link authoring, frontmatter, anti-patterns) live in the installed \`open-knowledge\` Agent Skill. If missing, run \`npx @inkeep/open-knowledge init\`.
1405
1405
 
1406
1406
  **Escape hatch.** Native \`Read\`/\`Grep\`/\`Glob\` on \`.md\` is allowed when the project has no \`.open-knowledge/\`, when no OK MCP is registered, or right after a failed OK MCP call (then prefix with \`Open Knowledge MCP unavailable:\`). Non-markdown: native tools always.
1407
- `}async function Cw(e,t){try{let t=e.replace(`ws://`,`http://`).replace(`wss://`,`https://`);return(await fetch(`${t}/api/document`,{signal:AbortSignal.timeout(2e3)})).ok}catch(n){return t.warn(`Hocuspocus probe failed`,{serverUrl:e,error:n instanceof Error?n.message:String(n)}),!1}}async function ww(e){let{projectDir:t,serverUrl:n,config:r,startupConfig:i,bypassProjectSelection:a=!1}=e;if(xw=Em(),xw.info(`MCP server starting`,{startupCwd:t,bypassProjectSelection:a,serverUrlType:typeof n==`string`?`explicit`:`lazy`}),typeof n==`string`){let e=await Cw(n,xw);xw.info(`Hocuspocus detection complete`,{serverUrl:n,available:e})}else xw.info(`server discovery is lazy per effective cwd`);let o=new um({name:_e,version:ge},{instructions:Sw(i,{dynamicConfig:typeof r==`function`&&!a})}),s=yw({startupCwd:t,bypassProjectSelection:a,listRoots:()=>o.server.listRoots(),logger:xw}),c=bw({startupCwd:t,resolveCwd:s.resolveCwd,bypassProjectSelection:a}),l=c.resolveCwdForTools;o.server.setNotificationHandler(xd,async()=>{s.invalidateRoots()});let u=async e=>{if(typeof n==`string`)return n.replace(`ws://`,`http://`).replace(`wss://`,`https://`);let t=e??await l();return(typeof n==`function`?await n(t):n)?.replace(`ws://`,`http://`).replace(`wss://`,`https://`)},d=rr(),f=process.env.AGENT_LABEL||void 0,p={current:{connectionId:d,label:f,displayName:f??`Agent`,colorSeed:f??d}};o.server.oninitialized=()=>{let e=o.server.getClientVersion();p.current={connectionId:d,clientInfo:e?{name:e.name,version:e.version}:void 0,label:f,displayName:f??e?.name??`Agent`,colorSeed:f??e?.name??d},xw?.info(`agent identity established`,{displayName:p.current.displayName,connectionId:d.slice(0,8),clientName:e?.name})},gw(o,{serverUrl:u,resolveCwd:l,config:r,identityRef:p,logger:xw});let m=new Cm;await o.connect(m),xw.info(`MCP server running on stdio`);let{startKeepalive:h}=await import(`./keepalive-CZzB5k1h.mjs`),g=h({resolveWsUrl:async()=>{let e=await c.getKeepaliveCwd();if(!e)return;let t=await u(e);if(t)return t.replace(/^http:/,`ws:`).replace(/^https:/,`wss:`)},connectionId:`agent-${d}`,logger:xw.child(`keepalive`)}),_=e=>{xw?.info(`MCP server shutting down`,{signal:e});try{g.close()}catch{}process.exit(0)};process.on(`SIGINT`,()=>_(`SIGINT`)),process.on(`SIGTERM`,()=>_(`SIGTERM`))}const Tw=[`/_npx/`,`/.npm/_npx/`,`/_bunx/`,`/.bun/install/cache/`,`/pnpm/dlx/`],Ew=new Set([`/usr/local/bin/ok`,`/usr/local/bin/open-knowledge`,`/opt/homebrew/bin/ok`,`/opt/homebrew/bin/open-knowledge`]);function Dw(e){if(!e||e.length===0)return`unknown`;for(let t of Tw)if(e.includes(t))return`npx-cache`;return Ew.has(e)||e.startsWith(`/Applications/`)||e.includes(`.app/Contents/`)?`stable-shim`:e.startsWith(`/`)?`absolute-pin`:`unknown`}function Ow(e,t){switch(e){case`npx-cache`:return"This MCP was launched via a package-manager cache (npx / bunx / pnpm dlx) and just resolved a different package version than the running server. Stop `ok start` so the next launch matches, or run `ok init --pin` for a stable launch path.";case`stable-shim`:return"The CLI shim was likely upgraded while a project server is still running (a desktop auto-update or `npm i -g` / `brew upgrade` will do this). Close and reopen the project window, or stop `ok start`, so the next launch matches.";case`absolute-pin`:return`This MCP is launched from a pinned path${t?` (${t})`:``} that no longer matches the running server. Re-run \`ok init --pin\` from your current install to refresh, or stop \`ok start\` so the next launch matches.`;default:return"Stop `ok start` and retry, or align CLI versions across your installs."}}function kw(e){return e?/\bENOENT\b/i.test(e):!1}function Aw(e){switch(Dw(e)){case`absolute-pin`:return"This failure usually means the CLI entry script no longer exists at the pinned path (common after changing how you installed Open Knowledge or removing an old global package). Re-run `ok init --pin` from your current install and update your editor MCP config, or use an unpinned launcher such as `npx @inkeep/open-knowledge mcp`.";case`stable-shim`:return"The expected `ok` shim is missing on disk. Reinstall or repair your Open Knowledge CLI. If you switched install sources, run `ok init --pin` again so your editor matches the binary you have.";case`npx-cache`:return"The package-manager cache copy used for this launch may have been removed. Retry once, or run `ok init --pin` so your editor uses a durable absolute path.";default:return"Often means the configured launcher path does not exist (stale pin, moved install, or missing runtime). Re-run `ok init --pin` from your current install or fix the MCP command in your editor settings."}}function jw(e,t,n){let r=`spawn failed: ${e}${t?` stderr:\n${t}`:``}`;return kw(e)&&(r+=`\n\n${Aw(n)}`),r}function Mw(e){if(e===void 0||e===``)return;let t=Number.parseInt(e,10);if(!(Number.isNaN(t)||t<=0))return t}function Nw(e){if(e.portOverride!==void 0){let t=Number.parseInt(e.portOverride,10);if(Number.isNaN(t))return{action:`disk-only`,message:`invalid --port value '${e.portOverride}' — disk-only mode`};if(t>0){let n=`ws://${e.host}:${t}`;return{action:`connect`,url:n,message:`using --port override, connecting to ${n}`}}return{action:`disk-only`,message:`--port=0 — disk-only mode`}}let t=e.readLock();if(t&&t.port>0&&e.isAlive(t.pid)){let n=e.expectedProtocolVersion??1,r=t.protocolVersion;if(r===n){let e=`ws://localhost:${t.port}`;return{action:`connect`,url:e,message:`connected to running instance at ${e} (pid ${t.pid})`}}let i=r===void 0?`unknown (pre-version-field lock)`:`v${r}`,a=t.runtimeVersion?` runtime ${t.runtimeVersion}`:``,o=e.launchPath??process.argv[1],s=Dw(o),c=Ow(s,o);return{action:`incompatible`,message:`Open Knowledge server at port ${t.port} (pid ${t.pid}${a}) speaks protocol ${i}; this MCP needs protocol v${n}.\n`+c,expectedProtocolVersion:n,actualProtocolVersion:r,lock:t,launchShape:s,launchPath:o}}return e.envAutoStart===`0`?{action:`disk-only`,message:`auto-spawn disabled via OK_MCP_AUTOSTART=0 — disk-only mode`}:e.configAutoStart?t?{action:`spawn`,message:`existing lock is not usable (port=${t.port}, pid=${t.pid}) — spawning ok start`}:{action:`spawn`,message:`no running instance — spawning ok start`}:{action:`disk-only`,message:`auto-spawn disabled via config.mcp.autoStart=false — disk-only mode`}}async function Pw(e){let t=e.readLock??(()=>be(e.lockDir)),n=e.isAlive??xe,r=e.sleep??(e=>ir(e)),i=e.spawn??Dn,a=e.readErrorLog??(e=>Rn(e)?Vn(e,`utf-8`).trim():``),o=e.openErrorLog??(e=>Bn(e,`w`)),s=e.closeFd??Ln,c=e.timeoutMs??5e3,l=e.pollIntervalMs??100,u=e.launchPath??process.argv[1],d=Nw({host:e.host,portOverride:e.portOverride,envAutoStart:e.envAutoStart,configAutoStart:e.configAutoStart,readLock:t,isAlive:n,launchPath:e.launchPath});if(e.logger?.info(`auto-start decision`,{action:d.action,message:d.message,contentDir:e.contentDir}),d.action===`connect`)return{serverUrl:d.url,message:d.message};if(d.action===`disk-only`)return{serverUrl:void 0,message:d.message};if(d.action===`incompatible`)throw e.logger?.error(`protocol mismatch — refusing to connect`,void 0,{expectedProtocolVersion:d.expectedProtocolVersion,actualProtocolVersion:d.actualProtocolVersion,lockPid:d.lock.pid,lockPort:d.lock.port,lockRuntimeVersion:d.lock.runtimeVersion,launchShape:d.launchShape,launchPath:d.launchPath}),Error(d.message);Rn(e.lockDir)||zn(e.lockDir,{recursive:!0});let f=Nn(e.lockDir,`last-spawn-error.log`),p=o(f),m,h,g=Tn();e.logger?.info(`spawning server`,{command:g.command,cwd:e.contentDir,timeoutMs:c});try{try{m=i(g.command,[...g.prefixArgs,`start`],{detached:!0,stdio:[`ignore`,`ignore`,p],cwd:e.contentDir,env:{...process.env,OK_LOCK_KIND:`mcp-spawned`,OK_PARENT_PID:String(process.pid)}}),m.on(`error`,e=>{h=e instanceof Error?e.message:String(e)}),m.unref()}catch(e){h=e instanceof Error?e.message:String(e)}}finally{try{s(p)}catch{}}let _=Date.now()+c;for(;Date.now()<_;){if(h){let t=a(f);throw e.logger?.error(`spawn failed`,void 0,{error:h,stderr:t,launchPath:u,stalePinHint:kw(h)}),Error(jw(h,t,u))}await r(l);let i=t();if(i&&i.port>0&&n(i.pid)){let t=`ws://localhost:${i.port}`;return e.logger?.info(`server ready after spawn`,{url:t,pid:i.pid}),{serverUrl:t,message:`spawned ok start; connected at ${t} (pid ${i.pid})`}}}if(h){let t=a(f);throw e.logger?.error(`spawn failed (post-deadline)`,void 0,{error:h,stderr:t,launchPath:u,stalePinHint:kw(h)}),Error(jw(h,t,u))}let v=a(f),y=(c/1e3).toFixed(c%1e3==0?0:2),b=m?.pid,x=``;throw typeof b==`number`&&(x=n(b)?` child pid=${b} is still running — raise OK_MCP_SPAWN_TIMEOUT_MS if this is a slow boot.`:` child pid=${b} exited — check last-spawn-error.log.`),e.logger?.error(`spawn poll timeout`,void 0,{timeoutMs:c,childPid:b,childAlive:typeof b==`number`?n(b):void 0,stderr:v||void 0}),Error(`server did not start within ${y}s.${x}${v?` stderr:\n${v}`:``}`)}function Fw(e){if(e.portOverride!==void 0){let t=Number.parseInt(e.portOverride,10);if(Number.isNaN(t)||t<=0)return async()=>void 0;let n=`ws://${e.host}:${t}`;return async()=>n}let t=e.ensureServerRunningFn??Pw,n=e.cacheMs??1e3,r=new Map,i=new Map;return async a=>{let o=await ze(a??e.startupCwd),s=Date.now(),c=r.get(o);if(c&&c.expiresAt>s)return e.logger?.debug(`server url cache hit`,{cwd:o,url:c.url}),c.url;let l=i.get(o);if(l)return e.logger?.debug(`server url resolution pending`,{cwd:o}),await l;e.logger?.debug(`server url cache miss`,{cwd:o});let u=(async()=>{let i=await e.resolveConfig(o),a=ye(i,o),s=ve(a),c=e.readLock,l=c?()=>c(s):void 0,u=await t({lockDir:s,contentDir:a,host:i.server.host,portOverride:void 0,envAutoStart:e.envAutoStart,configAutoStart:i.mcp.autoStart,logger:e.logger,timeoutMs:e.timeoutMs,pollIntervalMs:e.pollIntervalMs,spawn:e.spawn,readLock:l,isAlive:e.isAlive,sleep:e.sleep,readErrorLog:e.readErrorLog,openErrorLog:e.openErrorLog,closeFd:e.closeFd,launchPath:e.launchPath});return r.set(o,{url:u.serverUrl,expiresAt:Date.now()+n}),u.serverUrl})();i.set(o,u);try{return await u}finally{i.delete(o)}}}function Iw(e){return new r(`mcp`).description(`Start MCP stdio server for project knowledge base`).option(`-p, --port <port>`,`Override port discovery and connect to this port (0 = disk-only)`,void 0).action(async t=>{try{let n=e(),r=process.cwd(),i=He({startupCwd:r,startupConfig:n}),a=Mw(process.env.OK_MCP_SPAWN_TIMEOUT_MS),o,s;if(t.port!==void 0){let e=Number.parseInt(t.port,10);Number.isNaN(e)?(o=void 0,s=`invalid --port value '${t.port}' — disk-only mode`):e>0?(o=`ws://${n.server.host}:${e}`,s=`using --port override, connecting to ${o}`):(o=void 0,s=`--port=0 — disk-only mode`)}else o=Fw({startupCwd:r,resolveConfig:i,host:n.server.host,portOverride:void 0,envAutoStart:process.env.OK_MCP_AUTOSTART,timeoutMs:a}),s=`project server discovery/autostart is lazy per effective cwd`;process.stderr.write(`[mcp] ${s}\n`),await ww({projectDir:r,serverUrl:o,config:i,startupConfig:n,bypassProjectSelection:t.port!==void 0})}catch(e){process.stderr.write(`MCP server failed to start: ${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}})}function Lw(e){return new r(`preview`).description(`Show what content the watcher will track (read-only)`).action(async()=>{let{previewContent:t,formatPreviewBlock:n}=await import(`./preview-D-0GOYHB.mjs`),r=e(),i=process.cwd(),a=ye(r,i),o;try{o=t({projectDir:i,contentDir:a,include:r.content.include,exclude:r.content.exclude})}catch(e){console.error(`Content preview failed: ${e instanceof Error?e.message:String(e)}`),process.exitCode=1;return}process.stdout.write(`${n(o,i)}\n`),o.totalCount===0&&o.warnings.length>0&&(process.exitCode=1)})}function Rw(e,t){e&&process.stdout.write(`${JSON.stringify(t)}\n`)}async function zw(e,t,n=process.cwd()){let r=e.op??`sync`,i=be(ve(ye(t,n)));if(i&&i.port>0){let t=`http://127.0.0.1:${i.port}/api/sync/trigger`;e.json||process.stderr.write(`Triggering ${r} via running server (port ${i.port})…\n`);try{let n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({op:r})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`Server responded with ${n.status}`)}Rw(e.json,{type:`triggered`,op:r,port:i.port}),e.json||process.stderr.write(`✓ ${r} triggered\n`);return}catch(t){let n=t instanceof Error?t.message:String(t);e.json||process.stderr.write(`Server trigger failed (${n}), running directly…\n`)}}e.json||process.stderr.write(`Running ${r} directly (no live server)…\n`);let a=Ce({baseDir:n});if(r===`sync`||r===`pull`){Rw(e.json,{type:`step`,step:`pull`});let t=await a.pull();Rw(e.json,{type:`pull`,summary:t.summary}),e.json||process.stderr.write(` pull: ${t.summary.changes} changes\n`)}(r===`sync`||r===`push`)&&(Rw(e.json,{type:`step`,step:`push`}),await a.push(),Rw(e.json,{type:`push`,ok:!0}),e.json||process.stderr.write(` push: ok
1407
+ `}async function Cw(e,t){try{let t=e.replace(`ws://`,`http://`).replace(`wss://`,`https://`);return(await fetch(`${t}/api/document`,{signal:AbortSignal.timeout(2e3)})).ok}catch(n){return t.warn(`Hocuspocus probe failed`,{serverUrl:e,error:n instanceof Error?n.message:String(n)}),!1}}async function ww(e){let{projectDir:t,serverUrl:n,config:r,startupConfig:i,bypassProjectSelection:a=!1}=e;if(xw=Em(),xw.info(`MCP server starting`,{startupCwd:t,bypassProjectSelection:a,serverUrlType:typeof n==`string`?`explicit`:`lazy`}),typeof n==`string`){let e=await Cw(n,xw);xw.info(`Hocuspocus detection complete`,{serverUrl:n,available:e})}else xw.info(`server discovery is lazy per effective cwd`);let o=new um({name:_e,version:ge},{instructions:Sw(i,{dynamicConfig:typeof r==`function`&&!a})}),s=yw({startupCwd:t,bypassProjectSelection:a,listRoots:()=>o.server.listRoots(),logger:xw}),c=bw({startupCwd:t,resolveCwd:s.resolveCwd,bypassProjectSelection:a}),l=c.resolveCwdForTools;o.server.setNotificationHandler(xd,async()=>{s.invalidateRoots()});let u=async e=>{if(typeof n==`string`)return n.replace(`ws://`,`http://`).replace(`wss://`,`https://`);let t=e??await l();return(typeof n==`function`?await n(t):n)?.replace(`ws://`,`http://`).replace(`wss://`,`https://`)},d=rr(),f=process.env.AGENT_LABEL||void 0,p={current:{connectionId:d,label:f,displayName:f??`Agent`,colorSeed:f??d}};o.server.oninitialized=()=>{let e=o.server.getClientVersion();p.current={connectionId:d,clientInfo:e?{name:e.name,version:e.version}:void 0,label:f,displayName:f??e?.name??`Agent`,colorSeed:f??e?.name??d},xw?.info(`agent identity established`,{displayName:p.current.displayName,connectionId:d.slice(0,8),clientName:e?.name})},gw(o,{serverUrl:u,resolveCwd:l,config:r,identityRef:p,logger:xw});let m=new Cm;await o.connect(m),xw.info(`MCP server running on stdio`);let{startKeepalive:h}=await import(`./keepalive-CZzB5k1h.mjs`),g=h({resolveWsUrl:async()=>{let e=await c.getKeepaliveCwd();if(!e)return;let t=await u(e);if(t)return t.replace(/^http:/,`ws:`).replace(/^https:/,`wss:`)},connectionId:`agent-${d}`,logger:xw.child(`keepalive`)}),_=e=>{xw?.info(`MCP server shutting down`,{signal:e});try{g.close()}catch{}process.exit(0)};process.on(`SIGINT`,()=>_(`SIGINT`)),process.on(`SIGTERM`,()=>_(`SIGTERM`))}const Tw=[`/_npx/`,`/.npm/_npx/`,`/_bunx/`,`/.bun/install/cache/`,`/pnpm/dlx/`],Ew=new Set([`/usr/local/bin/ok`,`/usr/local/bin/open-knowledge`,`/opt/homebrew/bin/ok`,`/opt/homebrew/bin/open-knowledge`]);function Dw(e){if(!e||e.length===0)return`unknown`;for(let t of Tw)if(e.includes(t))return`npx-cache`;return Ew.has(e)||e.startsWith(`/Applications/`)||e.includes(`.app/Contents/`)?`stable-shim`:e.startsWith(`/`)?`absolute-pin`:`unknown`}function Ow(e,t){switch(e){case`npx-cache`:return"This MCP was launched via a package-manager cache (npx / bunx / pnpm dlx) and just resolved a different package version than the running server. Stop `ok start` so the next launch matches, or run `ok init --pin` for a stable launch path.";case`stable-shim`:return"The CLI shim was likely upgraded while a project server is still running (a desktop auto-update or `npm i -g` / `brew upgrade` will do this). Close and reopen the project window, or stop `ok start`, so the next launch matches.";case`absolute-pin`:return`This MCP is launched from a pinned path${t?` (${t})`:``} that no longer matches the running server. Re-run \`ok init --pin\` from your current install to refresh, or stop \`ok start\` so the next launch matches.`;default:return"Stop `ok start` and retry, or align CLI versions across your installs."}}function kw(e){return e?/\bENOENT\b/i.test(e):!1}function Aw(e){switch(Dw(e)){case`absolute-pin`:return"This failure usually means the CLI entry script no longer exists at the pinned path (common after changing how you installed Open Knowledge or removing an old global package). Re-run `ok init --pin` from your current install and update your editor MCP config, or use an unpinned launcher such as `npx @inkeep/open-knowledge mcp`.";case`stable-shim`:return"The expected `ok` shim is missing on disk. Reinstall or repair your Open Knowledge CLI. If you switched install sources, run `ok init --pin` again so your editor matches the binary you have.";case`npx-cache`:return"The package-manager cache copy used for this launch may have been removed. Retry once, or run `ok init --pin` so your editor uses a durable absolute path.";default:return"Often means the configured launcher path does not exist (stale pin, moved install, or missing runtime). Re-run `ok init --pin` from your current install or fix the MCP command in your editor settings."}}function jw(e,t,n){let r=`spawn failed: ${e}${t?` stderr:\n${t}`:``}`;return kw(e)&&(r+=`\n\n${Aw(n)}`),r}function Mw(e){if(e===void 0||e===``)return;let t=Number.parseInt(e,10);if(!(Number.isNaN(t)||t<=0))return t}function Nw(e){if(e.portOverride!==void 0){let t=Number.parseInt(e.portOverride,10);if(Number.isNaN(t))return{action:`disk-only`,message:`invalid --port value '${e.portOverride}' — disk-only mode`};if(t>0){let n=`ws://${e.host}:${t}`;return{action:`connect`,url:n,message:`using --port override, connecting to ${n}`}}return{action:`disk-only`,message:`--port=0 — disk-only mode`}}let t=e.readLock();if(t&&t.port>0&&e.isAlive(t.pid)){let n=e.expectedProtocolVersion??1,r=t.protocolVersion;if(r===n){let e=`ws://localhost:${t.port}`;return{action:`connect`,url:e,message:`connected to running instance at ${e} (pid ${t.pid})`}}let i=r===void 0?`unknown (pre-version-field lock)`:`v${r}`,a=t.runtimeVersion?` runtime ${t.runtimeVersion}`:``,o=e.launchPath??process.argv[1],s=Dw(o),c=Ow(s,o);return{action:`incompatible`,message:`Open Knowledge server at port ${t.port} (pid ${t.pid}${a}) speaks protocol ${i}; this MCP needs protocol v${n}.\n`+c,expectedProtocolVersion:n,actualProtocolVersion:r,lock:t,launchShape:s,launchPath:o}}return e.envAutoStart===`0`?{action:`disk-only`,message:`auto-spawn disabled via OK_MCP_AUTOSTART=0 — disk-only mode`}:e.configAutoStart?t?{action:`spawn`,message:`existing lock is not usable (port=${t.port}, pid=${t.pid}) — spawning ok start`}:{action:`spawn`,message:`no running instance — spawning ok start`}:{action:`disk-only`,message:`auto-spawn disabled via config.mcp.autoStart=false — disk-only mode`}}async function Pw(e){let t=e.readLock??(()=>be(e.lockDir)),n=e.isAlive??xe,r=e.sleep??(e=>ir(e)),i=e.spawn??Dn,a=e.readErrorLog??(e=>Rn(e)?Vn(e,`utf-8`).trim():``),o=e.openErrorLog??(e=>Bn(e,`w`)),s=e.closeFd??Ln,c=e.timeoutMs??5e3,l=e.pollIntervalMs??100,u=e.launchPath??process.argv[1],d=Nw({host:e.host,portOverride:e.portOverride,envAutoStart:e.envAutoStart,configAutoStart:e.configAutoStart,readLock:t,isAlive:n,launchPath:e.launchPath});if(e.logger?.info(`auto-start decision`,{action:d.action,message:d.message,contentDir:e.contentDir}),d.action===`connect`)return{serverUrl:d.url,message:d.message};if(d.action===`disk-only`)return{serverUrl:void 0,message:d.message};if(d.action===`incompatible`)throw e.logger?.error(`protocol mismatch — refusing to connect`,void 0,{expectedProtocolVersion:d.expectedProtocolVersion,actualProtocolVersion:d.actualProtocolVersion,lockPid:d.lock.pid,lockPort:d.lock.port,lockRuntimeVersion:d.lock.runtimeVersion,launchShape:d.launchShape,launchPath:d.launchPath}),Error(d.message);Rn(e.lockDir)||zn(e.lockDir,{recursive:!0});let f=Nn(e.lockDir,`last-spawn-error.log`),p=o(f),m,h,g=Tn();e.logger?.info(`spawning server`,{command:g.command,cwd:e.contentDir,timeoutMs:c});try{try{m=i(g.command,[...g.prefixArgs,`start`],{detached:!0,stdio:[`ignore`,`ignore`,p],cwd:e.contentDir,env:{...process.env,OK_LOCK_KIND:`mcp-spawned`,OK_PARENT_PID:String(process.pid)}}),m.on(`error`,e=>{h=e instanceof Error?e.message:String(e)}),m.unref()}catch(e){h=e instanceof Error?e.message:String(e)}}finally{try{s(p)}catch{}}let _=Date.now()+c;for(;Date.now()<_;){if(h){let t=a(f);throw e.logger?.error(`spawn failed`,void 0,{error:h,stderr:t,launchPath:u,stalePinHint:kw(h)}),Error(jw(h,t,u))}await r(l);let i=t();if(i&&i.port>0&&n(i.pid)){let t=`ws://localhost:${i.port}`;return e.logger?.info(`server ready after spawn`,{url:t,pid:i.pid}),{serverUrl:t,message:`spawned ok start; connected at ${t} (pid ${i.pid})`}}}if(h){let t=a(f);throw e.logger?.error(`spawn failed (post-deadline)`,void 0,{error:h,stderr:t,launchPath:u,stalePinHint:kw(h)}),Error(jw(h,t,u))}let v=a(f),y=(c/1e3).toFixed(c%1e3==0?0:2),b=m?.pid,x=``;throw typeof b==`number`&&(x=n(b)?` child pid=${b} is still running — raise OK_MCP_SPAWN_TIMEOUT_MS if this is a slow boot.`:` child pid=${b} exited — check last-spawn-error.log.`),e.logger?.error(`spawn poll timeout`,void 0,{timeoutMs:c,childPid:b,childAlive:typeof b==`number`?n(b):void 0,stderr:v||void 0}),Error(`server did not start within ${y}s.${x}${v?` stderr:\n${v}`:``}`)}function Fw(e){if(e.portOverride!==void 0){let t=Number.parseInt(e.portOverride,10);if(Number.isNaN(t)||t<=0)return async()=>void 0;let n=`ws://${e.host}:${t}`;return async()=>n}let t=e.ensureServerRunningFn??Pw,n=e.cacheMs??1e3,r=new Map,i=new Map;return async a=>{let o=await ze(a??e.startupCwd),s=Date.now(),c=r.get(o);if(c&&c.expiresAt>s)return e.logger?.debug(`server url cache hit`,{cwd:o,url:c.url}),c.url;let l=i.get(o);if(l)return e.logger?.debug(`server url resolution pending`,{cwd:o}),await l;e.logger?.debug(`server url cache miss`,{cwd:o});let u=(async()=>{let i=await e.resolveConfig(o),a=ye(i,o),s=ve(a),c=e.readLock,l=c?()=>c(s):void 0,u=await t({lockDir:s,contentDir:a,host:i.server.host,portOverride:void 0,envAutoStart:e.envAutoStart,configAutoStart:i.mcp.autoStart,logger:e.logger,timeoutMs:e.timeoutMs,pollIntervalMs:e.pollIntervalMs,spawn:e.spawn,readLock:l,isAlive:e.isAlive,sleep:e.sleep,readErrorLog:e.readErrorLog,openErrorLog:e.openErrorLog,closeFd:e.closeFd,launchPath:e.launchPath});return r.set(o,{url:u.serverUrl,expiresAt:Date.now()+n}),u.serverUrl})();i.set(o,u);try{return await u}finally{i.delete(o)}}}function Iw(e){return new r(`mcp`).description(`Start MCP stdio server for project knowledge base`).option(`-p, --port <port>`,`Override port discovery and connect to this port (0 = disk-only)`,void 0).action(async t=>{try{let n=e(),r=process.cwd(),i=He({startupCwd:r,startupConfig:n}),a=Mw(process.env.OK_MCP_SPAWN_TIMEOUT_MS),o,s;if(t.port!==void 0){let e=Number.parseInt(t.port,10);Number.isNaN(e)?(o=void 0,s=`invalid --port value '${t.port}' — disk-only mode`):e>0?(o=`ws://${n.server.host}:${e}`,s=`using --port override, connecting to ${o}`):(o=void 0,s=`--port=0 — disk-only mode`)}else o=Fw({startupCwd:r,resolveConfig:i,host:n.server.host,portOverride:void 0,envAutoStart:process.env.OK_MCP_AUTOSTART,timeoutMs:a}),s=`project server discovery/autostart is lazy per effective cwd`;process.stderr.write(`[mcp] ${s}\n`),await ww({projectDir:r,serverUrl:o,config:i,startupConfig:n,bypassProjectSelection:t.port!==void 0})}catch(e){process.stderr.write(`MCP server failed to start: ${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}})}function Lw(e){return new r(`preview`).description(`Show what content the watcher will track (read-only)`).action(async()=>{let{previewContent:t,formatPreviewBlock:n}=await import(`./preview-C-XjtsGD.mjs`),r=e(),i=process.cwd(),a=ye(r,i),o;try{o=t({projectDir:i,contentDir:a,include:r.content.include,exclude:r.content.exclude})}catch(e){console.error(`Content preview failed: ${e instanceof Error?e.message:String(e)}`),process.exitCode=1;return}process.stdout.write(`${n(o,i)}\n`),o.totalCount===0&&o.warnings.length>0&&(process.exitCode=1)})}function Rw(e,t){e&&process.stdout.write(`${JSON.stringify(t)}\n`)}async function zw(e,t,n=process.cwd()){let r=e.op??`sync`,i=be(ve(ye(t,n)));if(i&&i.port>0){let t=`http://127.0.0.1:${i.port}/api/sync/trigger`;e.json||process.stderr.write(`Triggering ${r} via running server (port ${i.port})…\n`);try{let n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({op:r})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`Server responded with ${n.status}`)}Rw(e.json,{type:`triggered`,op:r,port:i.port}),e.json||process.stderr.write(`✓ ${r} triggered\n`);return}catch(t){let n=t instanceof Error?t.message:String(t);e.json||process.stderr.write(`Server trigger failed (${n}), running directly…\n`)}}e.json||process.stderr.write(`Running ${r} directly (no live server)…\n`);let a=Ce({baseDir:n});if(r===`sync`||r===`pull`){Rw(e.json,{type:`step`,step:`pull`});let t=await a.pull();Rw(e.json,{type:`pull`,summary:t.summary}),e.json||process.stderr.write(` pull: ${t.summary.changes} changes\n`)}(r===`sync`||r===`push`)&&(Rw(e.json,{type:`step`,step:`push`}),await a.push(),Rw(e.json,{type:`push`,ok:!0}),e.json||process.stderr.write(` push: ok
1408
1408
  `)),Rw(e.json,{type:`complete`,op:r}),e.json||process.stderr.write(`✓ ${r} complete\n`)}function Bw(e){return new r(`sync`).description(`Commit, pull, and push to the remote`).option(`--json`,`Output JSONL progress events`,!1).action(async t=>{try{await zw({json:t.json,op:`sync`},e())}catch(e){let n=e instanceof Error?e.message:String(e);t.json?process.stdout.write(`${JSON.stringify({type:`error`,message:n})}\n`):process.stderr.write(`✗ sync failed: ${n}\n`),process.exit(1)}})}function Vw(e){return new r(`pull`).description(`Pull changes from the remote`).option(`--json`,`Output JSONL progress events`,!1).action(async t=>{try{await zw({json:t.json,op:`pull`},e())}catch(e){let n=e instanceof Error?e.message:String(e);t.json?process.stdout.write(`${JSON.stringify({type:`error`,message:n})}\n`):process.stderr.write(`✗ pull failed: ${n}\n`),process.exit(1)}})}function Hw(e){return new r(`push`).description(`Push commits to the remote`).option(`--json`,`Output JSONL progress events`,!1).action(async t=>{try{await zw({json:t.json,op:`push`},e())}catch(e){let n=e instanceof Error?e.message:String(e);t.json?process.stdout.write(`${JSON.stringify({type:`error`,message:n})}\n`):process.stderr.write(`✗ push failed: ${n}\n`),process.exit(1)}})}async function Uw(e={}){let t=Fn(e.cwd??process.cwd()),n;try{n=await Ne({projectDir:t,rootDir:e.root})}catch(e){return e instanceof Ee?{status:`prerequisite-missing`,message:`${qe(`Error:`)} ${e.message}`,exitCode:1}:{status:`failed`,message:`${qe(`Error:`)} ${e instanceof Error?e.message:String(e)}`,exitCode:1}}if(n.created.length===0&&n.configEdits.length===0)return{status:`no-op`,message:`${Ke(`Your knowledge base is already seeded.`)}\n${Ge(`Nothing to do.`)}`,plan:n,exitCode:0};if(e.dryRun)return{status:`dry-run`,message:`${Ye(`Plan (dry-run — no changes made):`)}\n\n${Ww(n,t)}`,plan:n,exitCode:0};if(!e.yes&&!await Gw(`${Ye(`Plan:`)}\n\n${Ww(n,t)}\n\n${Ye(`Apply?`)} ${Ge(`[Y/n] `)}`,e.confirmStream))return{status:`cancelled`,message:Ge(`Cancelled.`),plan:n,exitCode:0};let r=await Te(n,{projectDir:t});if(r.errors.length>0){let e=r.errors.map(e=>` ${qe(`✗`)} ${e.path}: ${e.error}`);return{status:`failed`,message:[`${Je(`Applied`)} ${r.applied} entries, ${Je(String(r.errors.length))} error(s):`,...e].join(`
1409
1409
  `),plan:n,exitCode:1}}return{status:`applied`,message:`${Ke(`✓ Seeded knowledge base`)} ${Ge(`(${r.applied} entries, ${r.durationMs}ms)`)}`,plan:n,exitCode:0}}function Ww(e,t){let n=[],r=e.created.filter(e=>e.kind===`folder`),i=e.created.filter(e=>e.kind===`file`);if(r.length>0){n.push(Ye(`Folders to create:`));for(let e of r)n.push(` ${Ke(`+`)} ${We(Pn(t,Fn(t,e.path))||e.path)}${Ge(`/`)}`)}if(i.length>0){n.length>0&&n.push(``),n.push(Ye(`Files to create:`));for(let e of i)n.push(` ${Ke(`+`)} ${We(Pn(t,Fn(t,e.path))||e.path)}`)}if(e.configEdits.length>0){n.length>0&&n.push(``),n.push(Ye(`config.yml folders: entries to add:`));for(let t of e.configEdits)n.push(` ${Ke(`+`)} ${We(t.folderMatch)} ${Ge(`—`)} ${t.entry.frontmatter.title??``}`)}if(e.skipped.length>0){n.length>0&&n.push(``),n.push(Ge(`Already present (skipped):`));for(let t of e.skipped)n.push(` ${Ge(`· ${t.path} (${t.reason})`)}`)}if(e.warnings.length>0){n.length>0&&n.push(``),n.push(Je(`Warnings:`));for(let t of e.warnings)n.push(` ${Je(`!`)} ${t}`)}return n.join(`
1410
- `)}async function Gw(e,t){let n=fr({input:t??process.stdin,output:process.stdout});try{let t=(await n.question(e)).trim().toLowerCase();return t===``||t===`y`||t===`yes`}finally{n.close()}}function Kw(){return new r(`seed`).description(`Scaffold the Karpathy three-layer knowledge-base structure (external-sources/, research/, articles/) + log.md + config.yml folders: entries. Use --root to place them inside a subfolder instead of the project root.`).argument(`[path]`,`Project directory (defaults to cwd)`).option(`-r, --root <path>`,`Subfolder (relative to the project dir) to scaffold into — created if missing. Defaults to the project root when omitted in non-interactive runs; prompts on a TTY.`).option(`-y, --yes`,`Skip confirmation prompt`).option(`--dry-run`,`Print the plan and exit without writing`).action(async(e,t)=>{let n=await Uw({cwd:e??process.cwd(),root:t.root,yes:t.yes,dryRun:t.dryRun});process.stdout.write(`${n.message}\n`),n.exitCode!==0&&(process.exitCode=n.exitCode)})}function qw(e,t){return{server:Jw(`server`,e),ui:Jw(`ui`,t)}}function Jw(e,t){switch(t.status){case`missing`:return{name:e,state:`missing`,alive:!1};case`corrupt`:return{name:e,state:`corrupt`,alive:!1};case`foreign-host`:return{name:e,state:`foreign-host`,pid:t.lock.pid,port:t.lock.port,startedAt:t.lock.startedAt,host:t.lock.hostname,alive:`unknown`};case`dead-pid`:return{name:e,state:`dead-pid`,pid:t.lock.pid,port:t.lock.port,startedAt:t.lock.startedAt,host:t.lock.hostname,alive:!1};case`alive`:return{name:e,state:`alive`,pid:t.lock.pid,port:t.lock.port,startedAt:t.lock.startedAt,host:t.lock.hostname,alive:!0}}}function Yw(e){return`${Xw(e.server)}\n${Xw(e.ui)}`}function Xw(e){let t=e.name===`server`?`server`:`ui `;return e.state===`missing`?`${t} not running`:e.state===`corrupt`?`${t} lock file corrupt — run \`ok clean\``:e.state===`foreign-host`?`${t} foreign host (${e.host}) pid=${e.pid} port=${e.port}`:e.state===`dead-pid`?`${t} stale (dead pid=${e.pid}) — run \`ok clean\``:`${t} alive pid=${e.pid} port=${e.port} started=${e.startedAt}`}function Zw(e){let t=e.inspect??(t=>ko(e.lockDir,t)),n=e.log??(e=>console.log(e)),r=qw(t(`server`),t(`ui`));return e.json?n(JSON.stringify(r,null,2)):n(Yw(r)),r}function Qw(e){return new r(`status`).description(`Show live state of the server + ui lockfiles for this project`).option(`--json`,`Emit structured JSON instead of formatted text`).action(t=>{Zw({lockDir:ve(ye(e(),process.cwd())),json:t.json===!0})})}function $w(e,t){let n=[];return e.status===`alive`&&n.push({name:`server`,pid:e.lock.pid,port:e.lock.port}),t.status===`alive`&&n.push({name:`ui`,pid:t.lock.pid,port:t.lock.port}),{targets:n}}function eT(e){let t=e.inspect??(t=>ko(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=$w(t(`server`),t(`ui`));if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function tT(e){return new r(`stop`).description(`Stop the running open-knowledge server and UI (live only)`).action(()=>{eT({lockDir:ve(ye(e(),process.cwd()))}).failed.length>0&&(process.exitCode=1)})}const nT=1e4,rT=[`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailer`,`transfer-encoding`,`upgrade`,`cookie`,`set-cookie`];async function iT(e){let t=e.upstreamTimeoutMs??nT,n=lr((n,r)=>{oT(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())})}}function aT(e,t,n){oT(e,t,n.upstreamHost,n.upstreamPort,n.upstreamTimeoutMs??nT)}function oT(e,t,n,r,i){let a={...e.headers};delete a.host;for(let e of rT)delete a[e];e.setTimeout(3e4,()=>{if(t.headersSent)try{t.end()}catch{}else try{t.writeHead(408,{"Content-Type":`text/plain`}),t.end(`Request Timeout`)}catch{}try{e.socket?.destroy()}catch{}});let o=ur({host:n,port:r,method:e.method,path:e.url,headers:{...a,host:`${n}:${r}`}},e=>{let n={...e.headers};for(let e of rT)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.writeHead(504,{"Content-Type":`text/plain`}),t.end(`Gateway Timeout`);else try{t.end()}catch{}o.destroy()}),o.on(`error`,()=>{if(!t.headersSent)t.writeHead(502,{"Content-Type":`text/plain`}),t.end(`Bad Gateway`);else try{t.end()}catch{}}),e.on(`error`,()=>{o.destroy()}),e.pipe(o)}async function sT(e){await Promise.all(e.map(e=>new Promise(t=>{e.close(()=>t())})))}async function cT(e){let{existsSync:t}=await import(`node:fs`),{createServer:n}=await import(`node:http`),{resolve:r}=await import(`node:path`),{acquireUiLock:i,readServerLock:a,releaseUiLock:o,updateUiLockPort:s}=await import(`./dist-Bxeddlf1.mjs`),{default:c}=await import(`./build-D4l8tfO0.mjs`),{resolveContentDir:l,resolveLockDir:u}=await import(`./paths-BEB-Zpmi.mjs`),d=l(e.config,e.cwd),f=u(d);i(f,{port:0,worktreeRoot:e.cwd});let p=import.meta.dirname??new URL(`.`,import.meta.url).pathname,m=[r(p,`public`),r(p,`../../app/dist`),r(p,`../../../app/dist`)].find(e=>t(e)),h=m?c(m,{single:!0,gzip:!0,immutable:!0}):null,g=t(d)?c(d,{dotfiles:!1,dev:!0}):null,_=e.port,v=null,y=(e,t)=>{let n=e.url?.split(`?`)[0];if(n===`/api/config`&&(e.method===`GET`||e.method===`HEAD`)){v?.();let n=a(f),r=n&&n.port>0?`ws://localhost:${n.port}/collab`:null,i=JSON.stringify({collabUrl:r,previewUrl:null,port:_});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/`)){v?.();let r=a(f);if(!r||r.port<=0){t.writeHead(503,{"Content-Type":`application/json`,"Cache-Control":`no-store`}),t.end(JSON.stringify({error:"Collab server not running. Start `ok start` or run `ok status`.",path:n}));return}aT(e,t,{upstreamHost:`localhost`,upstreamPort:r.port});return}if(decodeURIComponent(n?.replace(/^\//,``)??``)&&g){t.setHeader(`X-Content-Type-Options`,`nosniff`),g(e,t,()=>{h?h(e,t):lT(t)});return}if(h){h(e,t);return}lT(t)},b=e.host===void 0?[`::1`,`127.0.0.1`]:[e.host],x=[],S=e.port;try{for(let e of b){let t=n(y);x.push(t),await new Promise((n,r)=>{let i=e=>r(e);t.once(`error`,i),t.listen(S,e,()=>{t.off(`error`,i);let e=t.address();typeof e==`object`&&e&&(S=e.port),n()})})}}catch(e){await Promise.all(x.map(e=>new Promise(t=>{try{e.close(()=>t())}catch{t()}})));try{o(f)}catch{}throw e}let ee=S;_=ee,s(f,ee);let te=e.scheduler??re,C=e.safetyNetMs??432e5,w=null,ne=!1,ie=!1,T=()=>{ne||(ne=!0,w!==null&&(te.clearTimeout(w),w=null))},ae=()=>{if(T(),!ie){ie=!0;try{o(f)}catch{}}},oe=()=>{ne||C<=0||(w!==null&&(te.clearTimeout(w),w=null),w=te.setTimeout(()=>{w=null,console.warn(`[ui] safety-net (${C}ms) reached — shutting down (D-025 backstop)`);try{e.onSafetyNet?.()}catch{}for(let e of x)try{e.close()}catch{}ae()},C))},E=()=>{ne||C<=0||oe()};return v=E,oe(),{httpServers:x,port:ee,release:ae,detachSafetyNet:T,nudgeSafetyNet:E}}function lT(e){e.writeHead(404),e.end(`Not found`)}function uT(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 t}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 e}return 0}async function dT(e){let t=e.readLock??(async()=>{let{readUiLock:t}=await import(`./dist-Bxeddlf1.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 iT({listenPort:e.requestedPort,host:e.host,upstreamHost:`localhost`,upstreamPort:r}),upstreamPort:r}}function fT(e){return new r(`ui`).description(`Serve the Open Knowledge React editor UI`).option(`-p, --port <port>`,`UI port (default: $PORT env or 0 / kernel-allocated)`).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-HBY_eaey.mjs`),{UiLockCollisionError:r}=await import(`./dist-Bxeddlf1.mjs`),{resolveContentDir:i,resolveLockDir:a}=await import(`./paths-BEB-Zpmi.mjs`),o=e(),s=t.host,c;try{c=uT(t.port,process.env.PORT)}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exitCode=1;return}try{let e=await cT({config:o,cwd:process.cwd(),port:c,host:s}),t=s===void 0||s===`::`||s===`0.0.0.0`?`localhost`:s;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)}};sT(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=a(i(o,process.cwd())),l=s??`localhost`,u;try{u=await dT({requestedPort:c,host:l,lockDir:t})}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}u.mode===`already-running`&&(console.log(`UI already running at http://${l}:${u.port}`),process.exit(0)),console.log(`UI running at http://${l}:${u.upstreamPort}; acting as HTTP proxy on port ${u.handle.port}`);let d=!1,f=e=>{d||(d=!0,console.log(n(`\n[ui-proxy] Shutting down (${e})...`)),u.handle.close().finally(()=>process.exit(process.exitCode??0)),setTimeout(()=>process.exit(process.exitCode??0),2e3).unref())};process.once(`SIGINT`,()=>f(`SIGINT`)),process.once(`SIGTERM`,()=>f(`SIGTERM`))}})}process.argv.includes(`--no-color`)?(process.env.NO_COLOR=`1`,delete process.env.FORCE_COLOR):process.argv.includes(`--color`)&&(process.env.FORCE_COLOR=`1`,delete process.env.NO_COLOR);const pT=new r;let mT;pT.name(`open-knowledge`).description(`Local-first knowledge base with CRDT collaboration`).version(ge).option(`--cwd <path>`,`Working directory`).option(`--log-level <level>`,`Log level`,`info`).option(`--no-color`,`Disable color output`).option(`--color`,`Force color output`).hook(`preAction`,e=>{let t=e.opts(),n=t.cwd;n!==void 0&&process.chdir(n);let{config:r}=Be(n),i=e.args.length===0?t:e.commands[0]?.opts()??{};i.host!==void 0&&(r.server.host=i.host),process.env.HOST&&(r.server.host=process.env.HOST),mT=r});const hT=wn(()=>mT);pT.addCommand(hT,{isDefault:!0});const gT=Iw(()=>mT);pT.addCommand(gT),pT.addCommand(Ue()),pT.addCommand(Kw()),pT.addCommand($o());const _T=Lw(()=>mT);pT.addCommand(_T);const vT=fT(()=>mT);pT.addCommand(vT),pT.addCommand(tT(()=>mT)),pT.addCommand(Mo(()=>mT)),pT.addCommand(Qw(()=>mT)),pT.addCommand(Yo()),pT.addCommand(Oo(()=>mT)),pT.addCommand(Ho(()=>mT)),pT.addCommand(Bw(()=>mT)),pT.addCommand(Hw(()=>mT)),pT.addCommand(Vw(()=>mT)),await pT.parseAsync();export{};
1410
+ `)}async function Gw(e,t){let n=fr({input:t??process.stdin,output:process.stdout});try{let t=(await n.question(e)).trim().toLowerCase();return t===``||t===`y`||t===`yes`}finally{n.close()}}function Kw(){return new r(`seed`).description(`Scaffold the Karpathy three-layer knowledge-base structure (external-sources/, research/, articles/) + log.md + config.yml folders: entries. Use --root to place them inside a subfolder instead of the project root.`).argument(`[path]`,`Project directory (defaults to cwd)`).option(`-r, --root <path>`,`Subfolder (relative to the project dir) to scaffold into — created if missing. Defaults to the project root when omitted in non-interactive runs; prompts on a TTY.`).option(`-y, --yes`,`Skip confirmation prompt`).option(`--dry-run`,`Print the plan and exit without writing`).action(async(e,t)=>{let n=await Uw({cwd:e??process.cwd(),root:t.root,yes:t.yes,dryRun:t.dryRun});process.stdout.write(`${n.message}\n`),n.exitCode!==0&&(process.exitCode=n.exitCode)})}function qw(e,t){return{server:Jw(`server`,e),ui:Jw(`ui`,t)}}function Jw(e,t){switch(t.status){case`missing`:return{name:e,state:`missing`,alive:!1};case`corrupt`:return{name:e,state:`corrupt`,alive:!1};case`foreign-host`:return{name:e,state:`foreign-host`,pid:t.lock.pid,port:t.lock.port,startedAt:t.lock.startedAt,host:t.lock.hostname,alive:`unknown`};case`dead-pid`:return{name:e,state:`dead-pid`,pid:t.lock.pid,port:t.lock.port,startedAt:t.lock.startedAt,host:t.lock.hostname,alive:!1};case`alive`:return{name:e,state:`alive`,pid:t.lock.pid,port:t.lock.port,startedAt:t.lock.startedAt,host:t.lock.hostname,alive:!0}}}function Yw(e){return`${Xw(e.server)}\n${Xw(e.ui)}`}function Xw(e){let t=e.name===`server`?`server`:`ui `;return e.state===`missing`?`${t} not running`:e.state===`corrupt`?`${t} lock file corrupt — run \`ok clean\``:e.state===`foreign-host`?`${t} foreign host (${e.host}) pid=${e.pid} port=${e.port}`:e.state===`dead-pid`?`${t} stale (dead pid=${e.pid}) — run \`ok clean\``:`${t} alive pid=${e.pid} port=${e.port} started=${e.startedAt}`}function Zw(e){let t=e.inspect??(t=>ko(e.lockDir,t)),n=e.log??(e=>console.log(e)),r=qw(t(`server`),t(`ui`));return e.json?n(JSON.stringify(r,null,2)):n(Yw(r)),r}function Qw(e){return new r(`status`).description(`Show live state of the server + ui lockfiles for this project`).option(`--json`,`Emit structured JSON instead of formatted text`).action(t=>{Zw({lockDir:ve(ye(e(),process.cwd())),json:t.json===!0})})}function $w(e,t){let n=[];return e.status===`alive`&&n.push({name:`server`,pid:e.lock.pid,port:e.lock.port}),t.status===`alive`&&n.push({name:`ui`,pid:t.lock.pid,port:t.lock.port}),{targets:n}}function eT(e){let t=e.inspect??(t=>ko(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=$w(t(`server`),t(`ui`));if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function tT(e){return new r(`stop`).description(`Stop the running open-knowledge server and UI (live only)`).action(()=>{eT({lockDir:ve(ye(e(),process.cwd()))}).failed.length>0&&(process.exitCode=1)})}const nT=1e4,rT=[`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailer`,`transfer-encoding`,`upgrade`,`cookie`,`set-cookie`];async function iT(e){let t=e.upstreamTimeoutMs??nT,n=lr((n,r)=>{oT(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())})}}function aT(e,t,n){oT(e,t,n.upstreamHost,n.upstreamPort,n.upstreamTimeoutMs??nT)}function oT(e,t,n,r,i){let a={...e.headers};delete a.host;for(let e of rT)delete a[e];e.setTimeout(3e4,()=>{if(t.headersSent)try{t.end()}catch{}else try{t.writeHead(408,{"Content-Type":`text/plain`}),t.end(`Request Timeout`)}catch{}try{e.socket?.destroy()}catch{}});let o=ur({host:n,port:r,method:e.method,path:e.url,headers:{...a,host:`${n}:${r}`}},e=>{let n={...e.headers};for(let e of rT)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.writeHead(504,{"Content-Type":`text/plain`}),t.end(`Gateway Timeout`);else try{t.end()}catch{}o.destroy()}),o.on(`error`,()=>{if(!t.headersSent)t.writeHead(502,{"Content-Type":`text/plain`}),t.end(`Bad Gateway`);else try{t.end()}catch{}}),e.on(`error`,()=>{o.destroy()}),e.pipe(o)}async function sT(e){await Promise.all(e.map(e=>new Promise(t=>{e.close(()=>t())})))}async function cT(e){let{existsSync:t}=await import(`node:fs`),{createServer:n}=await import(`node:http`),{resolve:r}=await import(`node:path`),{acquireUiLock:i,readServerLock:a,releaseUiLock:o,updateUiLockPort:s}=await import(`./dist-d3vqEyC5.mjs`),{default:c}=await import(`./build-D4l8tfO0.mjs`),{resolveContentDir:l,resolveLockDir:u}=await import(`./paths-DK1PziJN.mjs`),d=l(e.config,e.cwd),f=u(d);i(f,{port:0,worktreeRoot:e.cwd});let p=import.meta.dirname??new URL(`.`,import.meta.url).pathname,m=[r(p,`public`),r(p,`../../app/dist`),r(p,`../../../app/dist`)].find(e=>t(e)),h=m?c(m,{single:!0,gzip:!0,immutable:!0}):null,g=t(d)?c(d,{dotfiles:!1,dev:!0}):null,_=e.port,v=null,y=(e,t)=>{let n=e.url?.split(`?`)[0];if(n===`/api/config`&&(e.method===`GET`||e.method===`HEAD`)){v?.();let n=a(f),r=n&&n.port>0?`ws://localhost:${n.port}/collab`:null,i=JSON.stringify({collabUrl:r,previewUrl:null,port:_});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/`)){v?.();let r=a(f);if(!r||r.port<=0){t.writeHead(503,{"Content-Type":`application/json`,"Cache-Control":`no-store`}),t.end(JSON.stringify({error:"Collab server not running. Start `ok start` or run `ok status`.",path:n}));return}aT(e,t,{upstreamHost:`localhost`,upstreamPort:r.port});return}if(decodeURIComponent(n?.replace(/^\//,``)??``)&&g){t.setHeader(`X-Content-Type-Options`,`nosniff`),g(e,t,()=>{h?h(e,t):lT(t)});return}if(h){h(e,t);return}lT(t)},b=e.host===void 0?[`::1`,`127.0.0.1`]:[e.host],x=[],S=e.port;try{for(let e of b){let t=n(y);x.push(t),await new Promise((n,r)=>{let i=e=>r(e);t.once(`error`,i),t.listen(S,e,()=>{t.off(`error`,i);let e=t.address();typeof e==`object`&&e&&(S=e.port),n()})})}}catch(e){await Promise.all(x.map(e=>new Promise(t=>{try{e.close(()=>t())}catch{t()}})));try{o(f)}catch{}throw e}let ee=S;_=ee,s(f,ee);let te=e.scheduler??re,C=e.safetyNetMs??432e5,w=null,ne=!1,ie=!1,T=()=>{ne||(ne=!0,w!==null&&(te.clearTimeout(w),w=null))},ae=()=>{if(T(),!ie){ie=!0;try{o(f)}catch{}}},oe=()=>{ne||C<=0||(w!==null&&(te.clearTimeout(w),w=null),w=te.setTimeout(()=>{w=null,console.warn(`[ui] safety-net (${C}ms) reached — shutting down (D-025 backstop)`);try{e.onSafetyNet?.()}catch{}for(let e of x)try{e.close()}catch{}ae()},C))},E=()=>{ne||C<=0||oe()};return v=E,oe(),{httpServers:x,port:ee,release:ae,detachSafetyNet:T,nudgeSafetyNet:E}}function lT(e){e.writeHead(404),e.end(`Not found`)}function uT(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 t}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 e}return 0}async function dT(e){let t=e.readLock??(async()=>{let{readUiLock:t}=await import(`./dist-d3vqEyC5.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 iT({listenPort:e.requestedPort,host:e.host,upstreamHost:`localhost`,upstreamPort:r}),upstreamPort:r}}function fT(e){return new r(`ui`).description(`Serve the Open Knowledge React editor UI`).option(`-p, --port <port>`,`UI port (default: $PORT env or 0 / kernel-allocated)`).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-HBY_eaey.mjs`),{UiLockCollisionError:r}=await import(`./dist-d3vqEyC5.mjs`),{resolveContentDir:i,resolveLockDir:a}=await import(`./paths-DK1PziJN.mjs`),o=e(),s=t.host,c;try{c=uT(t.port,process.env.PORT)}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exitCode=1;return}try{let e=await cT({config:o,cwd:process.cwd(),port:c,host:s}),t=s===void 0||s===`::`||s===`0.0.0.0`?`localhost`:s;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)}};sT(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=a(i(o,process.cwd())),l=s??`localhost`,u;try{u=await dT({requestedPort:c,host:l,lockDir:t})}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}u.mode===`already-running`&&(console.log(`UI already running at http://${l}:${u.port}`),process.exit(0)),console.log(`UI running at http://${l}:${u.upstreamPort}; acting as HTTP proxy on port ${u.handle.port}`);let d=!1,f=e=>{d||(d=!0,console.log(n(`\n[ui-proxy] Shutting down (${e})...`)),u.handle.close().finally(()=>process.exit(process.exitCode??0)),setTimeout(()=>process.exit(process.exitCode??0),2e3).unref())};process.once(`SIGINT`,()=>f(`SIGINT`)),process.once(`SIGTERM`,()=>f(`SIGTERM`))}})}process.argv.includes(`--no-color`)?(process.env.NO_COLOR=`1`,delete process.env.FORCE_COLOR):process.argv.includes(`--color`)&&(process.env.FORCE_COLOR=`1`,delete process.env.NO_COLOR);const pT=new r;let mT;pT.name(`open-knowledge`).description(`Local-first knowledge base with CRDT collaboration`).version(ge).option(`--cwd <path>`,`Working directory`).option(`--log-level <level>`,`Log level`,`info`).option(`--no-color`,`Disable color output`).option(`--color`,`Force color output`).hook(`preAction`,e=>{let t=e.opts(),n=t.cwd;n!==void 0&&process.chdir(n);let{config:r}=Be(n),i=e.args.length===0?t:e.commands[0]?.opts()??{};i.host!==void 0&&(r.server.host=i.host),process.env.HOST&&(r.server.host=process.env.HOST),mT=r});const hT=wn(()=>mT);pT.addCommand(hT,{isDefault:!0});const gT=Iw(()=>mT);pT.addCommand(gT),pT.addCommand(Ue()),pT.addCommand(Kw()),pT.addCommand($o());const _T=Lw(()=>mT);pT.addCommand(_T);const vT=fT(()=>mT);pT.addCommand(vT),pT.addCommand(tT(()=>mT)),pT.addCommand(Mo(()=>mT)),pT.addCommand(Qw(()=>mT)),pT.addCommand(Yo()),pT.addCommand(Oo(()=>mT)),pT.addCommand(Ho(()=>mT)),pT.addCommand(Bw(()=>mT)),pT.addCommand(Hw(()=>mT)),pT.addCommand(Vw(()=>mT)),await pT.parseAsync();export{};
1411
1411
  //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1,2 @@
1
+ import"./dist-BAXWuYIZ.mjs";var e=`0.0.0-dev-20260430063358`;const t=`config.yml`,n=`cache`,r=e,i=`open-knowledge`;export{r as i,t as n,i as r,n as t};
2
+ //# sourceMappingURL=constants-DrhEfUQE.mjs.map