@inkeep/open-knowledge 0.35.1-beta.3 → 0.35.1-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/skills/discovery/SKILL.md +1 -1
- package/dist/assets/skills/project/SKILL.md +1 -1
- package/dist/{banner-C1j6gKvV.mjs → banner-dc_0Y_PF.mjs} +2 -2
- package/dist/cli.mjs +60 -60
- package/dist/{colors-CpVsnmzb.mjs → colors-B_qgKwrk.mjs} +1 -1
- package/dist/colors-DUjg75V3.mjs +1 -0
- package/dist/constants-CqbycpZx.mjs +2 -0
- package/dist/{gh-detect-dM8nUKzs.mjs → gh-detect-sjzh2ZLB.mjs} +2 -2
- package/dist/{git-handle-CPWu4DPI.mjs → git-handle-CpHtlro0.mjs} +2 -2
- package/dist/git-handle-DFEbLV_G.mjs +1 -0
- package/dist/index.mjs +1 -1
- package/dist/init-BAbQhQLo.mjs +1 -0
- package/dist/{init-Db3TNZLi.mjs → init-DSGoU7s8.mjs} +4 -4
- package/dist/{launch-json-removal-BqyYr1va.mjs → launch-json-removal-ByztiF2y.mjs} +2 -2
- package/dist/loader-CyMqTG8o.mjs +1 -0
- package/dist/{loader-BOU-bdGA.mjs → loader-PASNx-GN.mjs} +2 -2
- package/dist/{open-browser-DLXd14zy.mjs → open-browser-D-PuwGFp.mjs} +2 -2
- package/dist/preview-BUwdFYLY.mjs +1 -0
- package/dist/{preview-Dz3toyFv.mjs → preview-DzxMxKjX.mjs} +2 -2
- package/dist/public/assets/{ActivityModeContent-L80chDl-.js → ActivityModeContent-Bb_9SBwL.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-CSdBEzqA.js → AgentDiffPane-B58_IeWO.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-D6D3gfNM.js → CodeMirrorPropInput-Bqy90c-v.js} +1 -1
- package/dist/public/assets/{DocumentContext-Ce4HR8nK.js → DocumentContext-DTN1oVEu.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-CV5OiHk7.js → EnableSyncConfirmDialog-cztPH24v.js} +1 -1
- package/dist/public/assets/{GraphPanel-D_rq0XuS.js → GraphPanel-BVQvaUEA.js} +1 -1
- package/dist/public/assets/{ManagedArtifactProperties-ynFKQf1Q.js → ManagedArtifactProperties-DIo2u2MY.js} +1 -1
- package/dist/public/assets/{McpConsentDialogBody-BFRVYHz7.js → McpConsentDialogBody-MWFa6hL-.js} +1 -1
- package/dist/public/assets/{MermaidDocEditor-BGiSUUbj.js → MermaidDocEditor-DMLRe7kf.js} +1 -1
- package/dist/public/assets/{PropertyPanel-DhBkdYqc.js → PropertyPanel-DzBaIRl7.js} +1 -1
- package/dist/public/assets/{ReportBugDialogBody-CWCF0pw4.js → ReportBugDialogBody-CatE51p5.js} +1 -1
- package/dist/public/assets/{SettingsDialogBody-CaLBHWpg.js → SettingsDialogBody-C04-Rlvj.js} +2 -2
- package/dist/public/assets/{ShareBranchSwitchDialog-9tbc2u5A.js → ShareBranchSwitchDialog-JC3ssCG1.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-CJgftM_A.js → ShareReceiveDialog-Bv4NmuUd.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-b7anPHTN.js → ShareReceiveMissDialog-DCuf6F3E.js} +1 -1
- package/dist/public/assets/{SkillEditorActions-B_pH0qYI.js → SkillEditorActions-Edciau_D.js} +1 -1
- package/dist/public/assets/{SourceEditor-DoY82NXm.js → SourceEditor-CLD-sb0k.js} +1 -1
- package/dist/public/assets/{TerminalPanel-jZ9q3gEi.js → TerminalPanel-4-XK5RI5.js} +1 -1
- package/dist/public/assets/{TimelineDiffPane-BUFdCk8y.js → TimelineDiffPane-ZlzsNQ6w.js} +1 -1
- package/dist/public/assets/{agent-presence-Dt6i5Xp4.js → agent-presence-aWLDoz77.js} +1 -1
- package/dist/public/assets/{auth-state-cache-BOeh_24V.js → auth-state-cache-Zvboee_f.js} +3 -3
- package/dist/public/assets/{config-provider-BJbRFZ7B.js → config-provider-BndKfIQn.js} +1 -1
- package/dist/public/assets/{dist-DhHfGa7x.js → dist-B2EDiaY_.js} +85 -85
- package/dist/public/assets/{dist-f84rU-Id.js → dist-BKmPXTTI.js} +1 -1
- package/dist/public/assets/{doc-hash-Dd7vySOU.js → doc-hash-DMNk5rpw.js} +1 -1
- package/dist/public/assets/{documents-events-ej99THjS.js → documents-events-DXJkkSko.js} +1 -1
- package/dist/public/assets/{file-tree-adapter-aKU4SoTx.js → file-tree-adapter-CKQwswy3.js} +1 -1
- package/dist/public/assets/index-BQaQovXc.js +1995 -0
- package/dist/public/assets/{lint-config-client-COsQ7goQ.js → lint-config-client-C8q65Ycw.js} +1 -1
- package/dist/public/assets/{navigation-targets-DFeLNxf6.js → navigation-targets-DK_JH7Tb.js} +1 -1
- package/dist/public/assets/open-managed-artifact-tab-BT96NXgW.js +5 -0
- package/dist/public/assets/{pending-receive-nav-store-CqE2aa0o.js → pending-receive-nav-store-CtinJwXM.js} +1 -1
- package/dist/public/assets/{prop-types-BgHwxhcm.js → prop-types-B3K32NJg.js} +1 -1
- package/dist/public/assets/{receive-store-BJnZZbHk.js → receive-store-CkUOBZ5-.js} +1 -1
- package/dist/public/assets/{selection-context-CsdqHEyB.js → selection-context-j5QW8iZP.js} +1 -1
- package/dist/public/assets/{skill-actions-D9l9dI2V.js → skill-actions-BffiTy28.js} +1 -1
- package/dist/public/assets/{skills-api-CKFwNhSE.js → skills-api-DjDFbpaJ.js} +1 -1
- package/dist/public/assets/{src-3GGG9hYD.js → src-Bg8dr3SE.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-l-T8YJRJ.js → target-navigation-intent-zbxkZi4l.js} +1 -1
- package/dist/public/assets/{typing-burst-detector-DZ2Ekvzk.js → typing-burst-detector-C8g1J2Wa.js} +1 -1
- package/dist/public/assets/{use-activity-panel-Bb6tO5wf.js → use-activity-panel-B2dGbqlu.js} +1 -1
- package/dist/public/assets/{use-apply-config-color-theme-eLHOzigT.js → use-apply-config-color-theme-U4kAm-FK.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-DNnmtdSJ.js → use-timeline-entry-diff-er0OzL5P.js} +1 -1
- package/dist/public/assets/{workspace-paths-C4HhShIO.js → workspace-paths-CCP6lJKi.js} +1 -1
- package/dist/public/index.html +26 -26
- package/dist/{repair-launch-json-B0IMAMfR.mjs → repair-launch-json-dJDitma0.mjs} +2 -2
- package/dist/{repair-mcp-configs-CzoYCyZH.mjs → repair-mcp-configs-C67-bVqc.mjs} +2 -2
- package/dist/{repair-skills-CjpripUK.mjs → repair-skills-BCyNfi-J.mjs} +2 -2
- package/dist/repair-skills-CtCQWVgx.mjs +1 -0
- package/dist/{server-lock-Cn2-KrjV.mjs → server-lock-CqieF_wm.mjs} +2 -2
- package/dist/server-lock-DaLWkSjq.mjs +1 -0
- package/dist/src-BnjVL3Qp.mjs +3310 -0
- package/dist/{src-BgrRg-nl.mjs → src-CHgigP4i.mjs} +109 -109
- package/dist/src-CP_1F9IZ.mjs +21 -0
- package/dist/{src-D3RAM6vg.mjs → src-iBJ8-UwF.mjs} +1 -1
- package/dist/start-D_5TfXcR.mjs +3 -0
- package/dist/start-DegZQxKG.mjs +1 -0
- package/dist/{write-project-skill-CLggzjLg.mjs → write-project-skill-cDXEyRpr.mjs} +2 -2
- package/package.json +5 -5
- package/dist/colors-DqFW4lvb.mjs +0 -1
- package/dist/constants-BwXw3nmC.mjs +0 -2
- package/dist/git-handle-BAtE8N7I.mjs +0 -1
- package/dist/init-De8ZBQcZ.mjs +0 -1
- package/dist/loader-BMvfVL6f.mjs +0 -1
- package/dist/preview-C3eenxER.mjs +0 -1
- package/dist/public/assets/index-D6Mo6Nm2.js +0 -1995
- package/dist/public/assets/open-managed-artifact-tab-DZP8ChES.js +0 -5
- package/dist/repair-skills-B95d0UWj.mjs +0 -1
- package/dist/server-lock-kLJ8OVOq.mjs +0 -1
- package/dist/src-CzsCpBh5.mjs +0 -21
- package/dist/src-D87GkAFF.mjs +0 -3309
- package/dist/start-D9f_sm8m.mjs +0 -3
- package/dist/start-jzaCzf2B.mjs +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{o as e}from"./chunk-DTipWd-i.mjs";import{Go as t,M as n}from"./src-CHgigP4i.mjs";import{Mr as r,Tr as i,et as a,fa as o,la as s,nn as c,nt as l,rt as u,tt as d}from"./src-BnjVL3Qp.mjs";import{b as f,u as ee,v as p,y as m}from"./server-lock-CqieF_wm.mjs";import{t as h}from"./yazl-BucAN8Ez.mjs";import{t as g}from"./esm-EvSEzE_V.mjs";import"./gh-detect-sjzh2ZLB.mjs";import{E as _,S as v,T as y,_ as b,b as x,o as S,v as te,w as C}from"./init-DSGoU7s8.mjs";import{n as w}from"./constants-CqbycpZx.mjs";import{t as T}from"./is-object-DYBErO9v.mjs";import{_ as ne,d as re,i as E,v as ie}from"./write-project-skill-cDXEyRpr.mjs";import"./loader-PASNx-GN.mjs";import{c as ae}from"./colors-B_qgKwrk.mjs";import"./preview-DzxMxKjX.mjs";import{execSync as D,spawnSync as O}from"node:child_process";import{basename as k,dirname as A,isAbsolute as j,join as M,relative as N,resolve as P,sep as oe}from"node:path";import{cpSync as se,createWriteStream as ce,existsSync as F,lstatSync as le,mkdirSync as I,mkdtempSync as ue,readFileSync as L,readdirSync as de,readlinkSync as fe,rmSync as pe,statSync as me,writeFileSync as R}from"node:fs";import{arch as he,freemem as ge,homedir as _e,hostname as ve,platform as ye,release as be,tmpdir as xe,totalmem as Se,type as Ce,uptime as we}from"node:os";import{readFile as Te,realpath as z}from"node:fs/promises";import{createHash as B}from"node:crypto";const Ee=[{name:`macos-home-path`,regex:/\/Users\/[^/]+\//g,replacement:`~/`},{name:`linux-home-path`,regex:/\/home\/[^/]+\//g,replacement:`~/`},{name:`github-pat`,regex:/\b(ghp_|gho_|ghu_|ghs_|ghr_)[A-Za-z0-9]{36,}\b/g,replacement:`[REDACTED-GH-PAT]`},{name:`aws-access-key`,regex:/\b(AKIA|ASIA|ABIA)[A-Z2-7]{16}\b/g,replacement:`[REDACTED-AWS-KEY]`},{name:`anthropic-key`,regex:/\bsk-ant-api03-[A-Za-z0-9_-]{20,}\b/g,replacement:`[REDACTED-ANTHROPIC]`},{name:`openai-key`,regex:/\bsk-[A-Za-z0-9]{20,}\b/g,replacement:`[REDACTED-OPENAI]`},{name:`bearer-token`,regex:/([Aa]uthorization:\s*[Bb]earer\s+)\S+/g,replacement:`$1[REDACTED]`},{name:`jwt`,regex:/eyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g,replacement:`[REDACTED-JWT]`},{name:`url-credentials`,regex:/:\/\/[^/\s:@]+:[^/\s:@]+@/g,replacement:`://[REDACTED]@`}],De=Ee.map(e=>e.name);function V(e){let t=new Set,n=0;return{redacted:e.split(`
|
|
2
|
+
`).map(e=>{let r=e;for(let{name:e,regex:i,replacement:a}of Ee)i.lastIndex=0,i.test(r)&&(t.add(e),n++,i.lastIndex=0,r=r.replace(i,a));return r}).join(`
|
|
3
|
+
`),patterns:[...t],lineCount:n}}function Oe(){return M(_e(),`.ok`,`bug-reports`)}function ke(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`);return M(Oe(),`${t}-bugreport.zip`)}function Ae(e,t){let n=M(e,`.ok`,`config.yml`);if(F(n))try{let e=L(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e instanceof Error?e.message:String(e)},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return F(M(e,`.ok`))?B(`sha256`).update(P(e)).digest(`hex`).slice(0,12):null}function je(){let e={timestamp:new Date().toISOString(),platform:ye(),osType:Ce(),osRelease:be(),hostname:`[redacted]`,uptime:we(),freeMem:ge(),totalMem:Se(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=D(`sw_vers -productVersion 2>/dev/null`,r({encoding:`utf8`})).trim()}catch{}try{let t=M(__dirname,`..`,`..`,`package.json`);F(t)&&(e.okVersion=JSON.parse(L(t,`utf8`)).version)}catch{}return e}function Me(e,t){if(!F(t))return{files:[]};let n=de(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>M(t,e));if(e&&n.length>0){let t=n.filter(t=>{try{return L(t,`utf8`).includes(`"project":"${e}"`)}catch{return!0}});t.length>0&&(n=t)}return{files:n}}function Ne(e){let t=M(e,`.ok`,`local`);return F(t)?{files:[`server.lock`,`last-spawn-error.log`].map(e=>M(t,e)).filter(e=>F(e))}:{files:[]}}function Pe(e){let t=M(e,`.ok`,`local`,`logs`);return F(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>M(t,e)).filter(e=>F(e))}:{files:[]}}function Fe(e){if(e.redact){let{redacted:t,patterns:n,lineCount:r}=V(e.content);e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name),n.length>0&&e.redactions.push({file:e.name,lineCount:r,patterns:n})}else e.zipfile.addBuffer(Buffer.from(e.content,`utf8`),e.name),e.bundleFiles.push(e.name)}function H(e){for(let t of e.files)try{Fe({zipfile:e.zipfile,name:`${e.prefix}/${k(t)}`,content:L(t,`utf8`),redact:e.redact,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n instanceof Error?n.message:String(n)},`bug-report: skipped unreadable file`)}}async function Ie(t){let{redact:n,outputPath:r,logger:i}=t,a=t.userLogsDir??M(_e(),`.ok`,`logs`),o=t.projectDir?Ae(t.projectDir,i):null;I(A(r),{recursive:!0}),i?.info({projectSlug:o},`gathering diagnostic data`);let s=je();s.desktop=t.desktop??null;let{files:c}=Me(o,a),{files:l}=t.projectDir?Ne(t.projectDir):{files:[]},{files:u}=t.projectDir?Pe(t.projectDir):{files:[]};i?.info({logFileCount:c.length,lockFileCount:l.length,localSinkFileCount:u.length},`files collected`);let d=[],f=[],{ZipFile:ee}=await import(`./yazl-DvlathRc.mjs`).then(t=>e(t.default,1)),p=new ee;H({zipfile:p,files:c,prefix:`logs`,redact:n,bundleFiles:f,redactions:d,logger:i}),H({zipfile:p,files:l,prefix:`lockdir`,redact:n,bundleFiles:f,redactions:d,logger:i}),H({zipfile:p,files:u,prefix:`local-logs`,redact:n,bundleFiles:f,redactions:d,logger:i});for(let e of t.extraFiles??[])try{let t=L(e.sourcePath),n=`extra/${e.zipName??k(e.sourcePath)}`;p.addBuffer(t,n),f.push(n)}catch(t){i?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&Fe({zipfile:p,name:`note.txt`,content:t.note,redact:n,bundleFiles:f,redactions:d});let m=JSON.stringify(s,null,2);p.addBuffer(Buffer.from(m,`utf8`),`sysinfo.json`),f.push(`sysinfo.json`);let h={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:o,files:f,redactions:d,sysinfo:s};p.addBuffer(Buffer.from(JSON.stringify(h,null,2),`utf8`),`MANIFEST.json`);let g=d.reduce((e,t)=>e+t.lineCount,0),_=[`# Bug Report Bundle`,``,`Generated: ${h.generatedAt}`,`Project: ${o??`(unscoped)`}`,`Discipline version: ${h.disciplineVersion}`,``,`## Contents`,``,...f.map(e=>`- ${e}`),``,`## Privacy`,``,...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${De.join(`, `)}`,g>0?`${g} line(s) were scrubbed across ${d.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,``,`This bundle is safe to attach to a GitHub issue.`]:[`Redaction was disabled for this bundle; file contents are unmodified.`]].join(`
|
|
4
|
+
`);p.addBuffer(Buffer.from(_,`utf8`),`README.md`),p.end();let v=ce(r);return p.outputStream.pipe(v),await new Promise((e,t)=>{v.on(`close`,e),v.on(`error`,t)}),i?.info({bundlePath:r,fileCount:f.length,redactionCount:g},`bundle written`),{zipPath:r,summary:{projectSlug:o,files:f,redactions:d,redactedLineCount:g,generatedAt:h.generatedAt}}}var U=t(),Le=e(h(),1);const Re=new Set([`doc.name`,`currentDoc`]);function ze(e){return`doc:${B(`sha256`).update(e).digest(`hex`).slice(0,8)}`}function Be(e,t,n){let r=e.docNameMap[n];if(r===void 0){e.docNameMap[n]=t;return}if(r===t)return;let i=e.docNameCollisions[n];i?i.includes(t)||i.push(t):e.docNameCollisions[n]=[t]}function Ve(e,t){let n=t.originalToHashed.get(e);if(n!==void 0)return n;let r=ze(e);return t.originalToHashed.set(e,r),Be(t,e,r),r}function W(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function G(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function K(e,t){if(typeof e==`string`)return W(e,t.contentDir);if(Array.isArray(e))return e.map(e=>K(e,t));if(!G(e))return e;let n=typeof e.key==`string`&&Re.has(e.key)&&G(e.value)&&typeof e.value.stringValue==`string`?e.value.stringValue:null,r={};for(let[i,a]of Object.entries(e))if(n!==null&&i===`value`&&G(a)){let e=Ve(n,t);r[i]={...a,stringValue:e}}else Re.has(i)&&typeof a==`string`?r[i]=Ve(a,t):r[i]=K(a,t);return r}function He(e,t){if(t.originalToHashed.size===0)return e;let n=Array.from(t.originalToHashed.entries()).sort(([e],[t])=>t.length-e.length),r=e;for(let[e,t]of n)e.length!==0&&r.includes(e)&&(r=r.split(e).join(t));return r}function Ue(e,t){let n=L(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
|
|
5
|
+
`),i=n.split(`
|
|
6
|
+
`),a=[];for(let e=0;e<i.length;e++){let n=i[e]??``;if(!(e===i.length-1&&n===``)){if(n.length===0){a.push(``);continue}try{let e=K(JSON.parse(n),t);a.push(JSON.stringify(e))}catch{a.push(n)}}}R(e,r?`${a.join(`
|
|
7
|
+
`)}\n`:a.join(`
|
|
8
|
+
`))}function We(e,t){let n=L(e,`utf-8`);if(n.trim().length!==0)try{let r=K(JSON.parse(n),t),i=n.endsWith(`
|
|
9
|
+
`)?`
|
|
10
|
+
`:``;R(e,`${JSON.stringify(r,null,2)}${i}`)}catch{let r=He(W(n,t.contentDir),t);r!==n&&R(e,r)}}function Ge(e,t){let n=L(e,`utf-8`),r=W(n,t.contentDir);r!==n&&R(e,r)}function Ke(e){try{return de(e,{withFileTypes:!0}).filter(e=>e.isFile()).map(t=>M(e,t.name))}catch{return[]}}const qe=new Set([`agent-presence.json`,`agent-effects.json`,`runtime.json`]);function Je(e){let t={contentDir:e.contentDir,docNameMap:{},originalToHashed:new Map,docNameCollisions:{}};for(let n of[`telemetry`,`logs`,`process`])for(let r of Ke(M(e.stagingDir,n)))r.endsWith(`.jsonl`)?Ue(r,t):r.endsWith(`.json`)?We(r,t):Ge(r,t);for(let n of Ke(M(e.stagingDir,`state`))){let e=k(n);qe.has(e)?We(n,t):Ge(n,t)}return{docNameMap:t.docNameMap,docNameCollisions:t.docNameCollisions}}const Ye=[`.ok`,`local`,`telemetry`],Xe=[`.ok`,`local`,`logs`],Ze=`spans-current.jsonl`,Qe=`spans-prev.jsonl`,$e=`server-current.jsonl`,et=`server-prev.jsonl`;function tt(e){return M(e,...Ye,Ze)}function nt(e){return M(e,...Ye,Qe)}function rt(e){return M(e,...Xe,$e)}function it(e){return M(e,...Xe,et)}const at=1e3;async function ot(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-presence`,{signal:AbortSignal.timeout(at)});return t.ok?await t.text():null}catch{return null}}async function st(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-effects`,{signal:AbortSignal.timeout(at)});return t.ok?await t.text():null}catch{return null}}function ct(e){let t=M(e,`.git`,`ok`);if(!F(t))return null;let n=O(`git`,[`-C`,t,`log`,`--oneline`,`-50`],r({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function lt(e){let t=M(e,`.git`,`ok`);if(!F(t))return null;let n=O(`git`,[`-C`,t,`for-each-ref`,`--sort=-creatordate`,`--count=50`,`--format=%(refname)%09%(creatordate:iso-strict)%09%(contents:subject)`,`refs/checkpoints/`],r({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function ut(){let e=process.env.OK_DESKTOP_VERSION,t=process.env.OK_DESKTOP_PACKAGED,n=process.env.OK_DESKTOP_CHANNEL;return e===void 0||t===void 0||n===void 0?null:{electronVersion:e,packaged:t===`1`||t.toLowerCase()===`true`,channel:n}}function dt(){return{nodeVersion:process.version,platform:ye(),arch:he()}}function ft(){return process.env.OTEL_SDK_DISABLED===`false`}function q(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function pt(e){if(!F(e))return{};let t;try{t=(0,U.parse)(L(e,`utf-8`))}catch(t){return console.warn(`[ok diagnose bundle] failed to parse ${e} for manifest config; manifest will report schema defaults. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!q(t))return{};let n=t.telemetry;if(!q(n))return{};let r=n.localSink;return q(r)?r:{}}function mt(e){return typeof e==`boolean`?e:void 0}function ht(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function J(e){if(q(e))return ht(e.maxBytes)}function gt(e){let t=pt(s(`project`,e)),n=pt(s(`project-local`,e));return{enabled:mt(n.enabled)??mt(t.enabled)??!0,spansMaxBytes:J(n.spans)??J(t.spans)??52428800,logsMaxBytes:J(n.logs)??J(t.logs)??26214400}}function _t(e){return B(`sha256`).update(e).digest(`hex`)}function vt(e){let t=L(e),n=0;for(let e=0;e<t.length;e++)t[e]===10&&n++;return n}function yt(e){let t=L(e,`utf-8`),n=`"doc.name"`,r=0,i=t.indexOf(n);for(;i!==-1;)r++,i=t.indexOf(n,i+10);return r}function Y(e,t){return F(e)?(I(A(t),{recursive:!0}),se(e,t),!0):!1}function bt(e){let t=[],n=e=>{let r=de(e,{withFileTypes:!0});for(let i of r){let r=M(e,i.name);i.isDirectory()?n(r):i.isFile()&&t.push(r)}};return n(e),t.sort()}const xt=new Set([`.jsonl`]);function St(e){let t=e.lastIndexOf(`.`);return t===-1?!1:xt.has(e.slice(t))}const Ct=new Set([`.jsonl`,`.json`,`.txt`,`.log`,`.lock`]);function wt(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Ct.has(e.slice(t))}function Tt(e){let t=[];for(let n of bt(e)){let r=Et(e,n);if(!wt(r))continue;let{redacted:i,patterns:a,lineCount:o}=V(L(n,`utf-8`));a.length!==0&&(R(n,i),t.push({file:r,lineCount:o,patterns:a}))}return{redactions:t,redactedLineCount:t.reduce((e,t)=>e+t.lineCount,0)}}function Et(e,t){return N(e,t).split(oe).join(`/`)}async function Dt(e){let t=P(e.contentDir),r=P(e.projectDir??e.contentDir),i=e.deps??{},a=i.fetchAgentPresence??ot,o=i.fetchAgentEffects??st,s=i.readShadowHead??ct,c=i.readCheckpointRefs??lt,l=i.now??(()=>new Date),u=i.okVersion??(()=>w),d=i.readDesktopEnv??ut,f=i.readRuntime??dt,ee=i.isOtlpPushEnabled??ft,p=ue(M(xe(),`ok-bundle-`));try{I(M(p,`telemetry`),{recursive:!0}),I(M(p,`logs`),{recursive:!0}),I(M(p,`state`),{recursive:!0}),Y(tt(r),M(p,`telemetry`,Ze)),Y(nt(r),M(p,`telemetry`,Qe)),Y(rt(r),M(p,`logs`,$e)),Y(it(r),M(p,`logs`,et));let m=M(r,`.ok`,`local`),h=M(m,`server.lock`),g=`not-running`,_=`no server.lock`,v=null;if(F(h)){Y(h,M(p,`state`,`server.lock`));try{let e=L(h,`utf-8`),t=JSON.parse(e);typeof t.port==`number`?v=t.port:_=`lock present but no port`}catch{_=`lock present but unparseable`}}if(v!==null){let e=await a(v);e===null?_=`agent-presence endpoint at :${v} unreachable`:(R(M(p,`state`,`agent-presence.json`),e),g=`running`,_=``);let t=await o(v);t!==null&&R(M(p,`state`,`agent-effects.json`),t)}let y=s(t);y!==null&&R(M(p,`state`,`shadow-head.txt`),y);let b=c(t);b!==null&&R(M(p,`state`,`checkpoint-refs.txt`),b),Y(M(m,`last-spawn-error.log`),M(p,`state`,`last-spawn-error.log`)),Y(M(m,n),M(p,`state`,n));let x=f(),S=d(),te={ok:{version:u(),nodeVersion:x.nodeVersion,platform:x.platform,arch:x.arch},host:{desktop:S}};R(M(p,`state`,`runtime.json`),`${JSON.stringify(te,null,2)}\n`);let C=g===`running`?`running
|
|
11
|
+
`:`not-running (${_})\n`;if(R(M(p,`state`,`server-status.txt`),C),e.processDir&&F(e.processDir)){let t=M(p,`process`);I(t,{recursive:!0}),se(e.processDir,t,{recursive:!0})}let w=null;e.redact===!0&&(w=Je({stagingDir:p,contentDir:t})),e.note&&R(M(p,`note.txt`),e.note);let T=null;e.scrubSecrets===!0&&(T=Tt(p));for(let t of e.extraFiles??[])Y(t.sourcePath,M(p,`extra`,t.zipName??k(t.sourcePath)))||i.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let ne=gt(r),re=bt(p),E=[],ie=0,ae=0;for(let e of re){let t=Et(p,e),n=me(e).size,r=St(t)?vt(e):0;E.push({path:t,bytes:n,lines:r}),ie+=n,t.startsWith(`telemetry/`)&&St(t)&&(ae+=yt(e))}let D=w===null?{applied:!1,docNameMapSidecar:null}:Object.keys(w.docNameCollisions).length>0?{applied:!0,docNameMapSidecar:null,docNameCollisions:w.docNameCollisions}:{applied:!0,docNameMapSidecar:null};T!==null&&(D.secretScrub=T);let O={schemaVersion:1,createdAt:l().toISOString(),ok:{version:u(),nodeVersion:x.nodeVersion,platform:x.platform,arch:x.arch},host:{desktop:S},contentDir:{pathSha256:_t(t),absolutePath:w===null?t:`<CONTENT_DIR>`},telemetry:{localSink:ne,otlpPushEnabled:ee()},redaction:D,serverStatus:g,files:E};R(M(p,`manifest.json`),`${JSON.stringify(O,null,2)}\n`);let A=re.some(e=>{try{return L(e,`utf-8`).includes(t)}catch{return!1}}),j={totalBytes:ie,fileCount:E.length,docNameCount:ae,contentDirVisible:A,redacted:w!==null},N=!1;return{stagingDir:p,manifest:O,summary:j,redactionMapPayload:w===null?null:{docNameMap:w.docNameMap,docNameCollisions:w.docNameCollisions},cleanup:()=>{N||(N=!0,pe(p,{recursive:!0,force:!0}))}}}catch(e){throw pe(p,{recursive:!0,force:!0}),e}}async function Ot(e){let{collected:t,outputPath:n}=e,r=A(n);if(!F(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);if(t.redactionMapPayload!==null){let e=`${k(n,`.zip`)}.docnames.json`,r={...t.manifest,redaction:{...t.manifest.redaction,applied:!0,docNameMapSidecar:e}};R(M(t.stagingDir,`manifest.json`),`${JSON.stringify(r,null,2)}\n`)}let i=new Le.ZipFile,a=bt(t.stagingDir);for(let e of a){let n=Et(t.stagingDir,e);i.addFile(e,n)}i.end(),t.redactionMapPayload!==null&&R(M(r,`${k(n,`.zip`)}.docnames.json`),`${JSON.stringify({docNameMap:t.redactionMapPayload.docNameMap,docNameCollisions:t.redactionMapPayload.docNameCollisions},null,2)}\n`,{mode:384});let o=ce(n);return i.outputStream.pipe(o),await new Promise((e,t)=>{o.on(`close`,e),o.on(`error`,t),i.outputStream.on(`error`,t)}),n}function kt(e,t){let n=M(e,`.ok`,`config.yml`);if(F(n))try{let t=(0,U.parse)(L(n,`utf-8`)),r=T(t)?t.content:void 0,i=T(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return P(e,i)}catch(e){t?.warn({configPath:n,err:e instanceof Error?e.message:String(e)},`bug-report: failed to read .ok/config.yml; falling back to project root as content dir`)}return P(e)}async function At(e,t,n){let r=await Dt({contentDir:kt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,deps:{readDesktopEnv:n,logger:e.logger}});try{I(A(e.outputPath),{recursive:!0}),await Ot({collected:r,outputPath:e.outputPath});let n=r.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:Ae(t,e.logger),files:r.manifest.files.map(e=>e.path),redactions:n?.redactions??[],redactedLineCount:n?.redactedLineCount??0,generatedAt:r.manifest.createdAt}}}finally{r.cleanup()}}async function jt(e){let{projectDir:t}=e,n=e.readDesktopEnv??ut;if(e.level===`full`&&t!==void 0)return At(e,t,n);let{zipPath:r,summary:i}=await Ie({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function X(e,t,n={}){let r=ee(e,t);if(!F(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(L(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!f(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??m)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??p())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??ve();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function Mt(e){return e.replace(/:\d+$/,``)}function Nt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:Mt(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:Mt(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:Mt(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function Pt(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`github.com`&&t.hostname!==`www.github.com`)return null;let n=t.pathname.split(`/`).filter(e=>e.length>0);if(n.length<5||n[2]!==`blob`)return null;let r,i,a,o;try{r=decodeURIComponent(n[0]),i=decodeURIComponent(n[1]),a=decodeURIComponent(n[3]),o=n.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!r||!i||!a||o.length===0||o.some(e=>e.length===0)?null:{owner:r,repo:i,branch:a,path:o.join(`/`)}}function Ft(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`github.com`&&t.hostname!==`www.github.com`)return null;let n=t.pathname.split(`/`);if(n.length<5||n[0]!==``||n[3]!==`tree`)return null;let r=n.slice(5);r.length===1&&r[0]===``&&r.pop();let i,a,o,s;try{i=decodeURIComponent(n[1]),a=decodeURIComponent(n[2]),o=decodeURIComponent(n[4]),s=r.map(e=>decodeURIComponent(e))}catch{return null}return!i||!a||!o||s.some(e=>e.length===0)?null:{owner:i,repo:a,branch:o,path:s.join(`/`)}}function It(e){let t=Pt(e);if(t)return{kind:`doc`,...t};let n=Ft(e);return n?{kind:`folder`,...n}:null}var Z=e(ae(),1);const Lt=`# >>> open-knowledge cli >>>`,Rt=`# <<< open-knowledge cli <<<`,zt=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Bt(e){return M(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Vt={existsSync:e=>F(e),readFileSync:(e,t)=>L(e,t),lstatSync:e=>le(e),readlinkSync:e=>fe(e)};function Ht(e,t=Vt){let n=Bt(e);if(!t.existsSync(n))return null;try{let e=JSON.parse(t.readFileSync(n,`utf8`));return e?.version===1?e:null}catch{return null}}function Ut(e){let t=e.replace(zt,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function Wt(e,t,n=Vt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function Gt(e){return ne(e)||ie(e)||v(e)}const Kt=10*1024*1024;function qt(e,t,n,r){let i=S(e,t,n,r);if(i.kind===`absent`||i.kind===`no-entry`)return{kind:`not-present`};if(i.kind===`decline`)return{kind:`declined`,reason:i.reason};if(!Gt(i.entry))return{kind:`left-foreign`};let a;try{a=r??e.configPath(t,n)}catch{return{kind:`not-present`}}let o=e.serverName(t);return e.format===`file`?(pe(a,{force:!0}),{kind:`removed`}):e.format===`toml`?Xt(a,o):e.format===`yaml`?Yt(a,e.topLevelKey,o):Jt(a,e.topLevelKey,e.serverMapSubKey,o)}function Jt(e,t,n,r){let i;try{i=L(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(i,`utf-8`)>Kt)return{kind:`declined`,reason:`oversize`};let{text:a,changed:s}=_(i,b(t,n,r));return s?(o(e,a,{mode:C(e)}),{kind:`removed`}):{kind:`not-present`}}function Yt(e,t,n){let r;try{r=L(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(r,`utf-8`)>Kt)return{kind:`declined`,reason:`oversize`};let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,s=(0,U.parseDocument)(a);if(s.errors.length>0)return{kind:`declined`,reason:`unparseable`};let c=[t,n];if(!s.hasIn(c))return{kind:`not-present`};s.deleteIn(c);let l=s.toString(),u=y(a);a.trim()===``||a.endsWith(`
|
|
12
|
+
`)?l.endsWith(`
|
|
13
|
+
`)||(l=`${l}\n`):l=l.replace(/\n+$/,``),u&&(l=l.replace(/\r\n/g,`
|
|
14
|
+
`).replace(/\n/g,`\r
|
|
15
|
+
`));let d=`${i?``:``}${l}`;return d!==r&&o(e,d,{mode:C(e)}),{kind:`removed`}}function Xt(e,t){let n=x();if(n.backend===`fallback`)return{kind:`declined`,reason:`no-native-writer`};let r;try{r=L(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,s=y(a),c=a.trim()===``||a.endsWith(`
|
|
16
|
+
`),l;try{l=n.removeEntry(a,t)}catch{return{kind:`declined`,reason:`unparseable`}}if(!l.existed)return{kind:`not-present`};let u=l.text;c?u.endsWith(`
|
|
17
|
+
`)||(u=`${u}\n`):u=u.replace(/\n+$/,``),s&&(u=u.replace(/\r\n/g,`
|
|
18
|
+
`).replace(/\n/g,`\r
|
|
19
|
+
`));let d=`${i?``:``}${u}`;return d!==r&&o(e,d,{mode:C(e)}),{kind:`removed`}}const Zt=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function Qt(e,t,n=c){if(e!==void 0&&!Zt.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let $t=null;function en(e){$t=e}function tn(){return $t??process.cwd()}function nn(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function rn(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function an(e,t,n,r,i,a){if(t.status===`missing`||t.status===`corrupt`)return null;let o=t.lock,s=null;if(n.status!==`missing`&&n.status!==`corrupt`){let e=n.lock;s={port:e.port,status:n.status,pid:e.pid,startedAt:e.startedAt,usage:a}}return{directory:o.worktreeRoot,server:{port:o.port,status:t.status,pid:o.pid,startedAt:o.startedAt,usage:i},ui:s,hostname:o.hostname,lockPath:t.lockPath,binary:r==null?null:d(r),command:r,isDesktop:nn(r)}}function on(e){return e.ui==null?!1:e.ui.status===`alive`||e.ui.status===`foreign-host`}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:t===`dead-pid`&&on(e)?`ui-orphan`:`stale`}const sn=new Set([`running`,`desktop`,`foreign`,`ui-orphan`]);function cn(e){switch(e){case`running`:return Z.default.green(e);case`desktop`:return Z.default.blue(e);case`foreign`:return Z.default.cyan(e);case`ui-orphan`:return Z.default.magenta(e);case`stale`:return Z.default.yellow(e)}}function ln(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function un(e){return`${ln(e.server.usage)} | ${ln(e.ui?.usage??null)}`}function dn(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null||e.ui.status===`dead-pid`?`—`:String(e.ui.port)}`}function fn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>{let t=Q(e),n=t===`ui-orphan`&&e.ui!=null?e.ui.pid:e.server.pid;return[e.directory,dn(e),un(e),t,String(n),rn(e.server.startedAt),e.binary??`—`]}),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=cn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=Z.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
|
|
20
|
+
`)}async function pn(e={}){let t=e.discover??a,n=e.inspect??X,r=e.log??(e=>console.log(e)),i=e.resolveCommand??l,o=e.resolveUsage??u,s=await t(),c=[];for(let e of s){let t=n(e,`server`),r=n(e,`ui`),a=an(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:o(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:o(r.lock.pid));a!=null&&c.push(a)}if(e.json){let e=c.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(fn(e.all?c:c.filter(e=>sn.has(Q(e)))))}function mn(){return new g(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await pn({all:t.all===!0||e===`all`,json:t.json===!0})})}function hn(e,t,n={}){let r=n.isAlive??m,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function gn(e){let t=e.inspect??(t=>X(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=hn(t(`server`),t(`ui`),{isAlive:e.isAlive});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 $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function _n(e,t=m){let n=await a(),r=null;for(let i of n){let n=X(i,`server`),a=X(i,`ui`);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function vn(e){let t=gn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function yn(e){return new g(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=gn({lockDir:i(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await pn({});return}if(n===`all`){let e=await a();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=X(n,`server`),r=X(n,`ui`);!$(e,m)&&!$(r,m)||(vn(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await _n(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}vn(t);return}vn(i(P(tn(),n)))})}function bn(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function xn(e,t){let n,r;try{n=await z(P(e)),r=await z(P(A(e)))}catch{return{kind:`not-git`}}if(!Cn(n,r))return{kind:`symlink-escape`};let i=M(n,`.git`),a;try{a=me(i)}catch{return{kind:`not-git`}}let o;if(a.isDirectory()){let e;try{e=await z(i)}catch{return{kind:`not-git`}}if(!Cn(e,n))return{kind:`symlink-escape`};o=e}else if(a.isFile()){let e;try{e=await Te(i,`utf-8`)}catch{return{kind:`not-git`}}let t=/^gitdir:\s*(.+)$/m.exec(e.trim());if(!t)return{kind:`not-git`};let r=t[1].trim(),a=j(r)?r:P(n,r);try{o=await z(a)}catch{return{kind:`not-git`}}}else return{kind:`not-git`};let s=M(await Sn(o),`config`),c;try{c=await Te(s,`utf-8`)}catch{return{kind:`not-git`}}let l=Tn(c);if(l===null)return{kind:`no-origin`};let u=Nt(l);if(u===null||u.hostname!==`github.com`)return{kind:`non-github`};let d=u.owner.toLowerCase()===t.owner.toLowerCase(),f=u.name.toLowerCase()===t.repo.toLowerCase();return!d||!f?{kind:`wrong-repo`,actualOwner:u.owner,actualRepo:u.name}:{kind:`ok`,gitRemoteUrl:`https://github.com/${u.owner}/${u.name}.git`}}async function Sn(e){let t;try{t=(await Te(M(e,`commondir`),`utf-8`)).trim()}catch{return e}if(t.length===0)return e;let n=j(t)?t:P(e,t);try{return await z(n)}catch{return n}}function Cn(e,t){if(e===t)return!0;let n=N(t,e);return n.length>0&&!n.startsWith(`..`)&&!j(n)}function wn(e){let t=e.indexOf(`#`),n=e.indexOf(`;`),r=-1;return t>=0&&n>=0?r=Math.min(t,n):t>=0?r=t:n>=0&&(r=n),(r===-1?e:e.slice(0,r)).trim()}function Tn(e){let t=!1;for(let n of e.split(/\r?\n/)){let e=wn(n);if(e.length===0)continue;if(e.startsWith(`[`)){t=/^\[\s*remote\s+["']origin["']\s*\]$/.test(e);continue}if(!t)continue;let r=/^url\s*=\s*(.+)$/.exec(e);if(r)return En(r[1])}return null}function En(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}const Dn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=te(e,t,n,void 0,r);return i.action===`written`||i.action===`overwritten`?{integration:`mcp-config`,editorId:e.id,action:i.action,path:i.configPath}:i.action===`failed`?{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:i.error??`unknown failure`}:i.action===`declined`?{integration:`mcp-config`,editorId:e.id,action:`declined`,path:i.configPath,...i.declineReason===void 0?{}:{reason:i.declineReason}}:{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:`unexpected project-scope action: ${i.action}`}}catch(t){return{integration:`mcp-config`,editorId:e.id,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}},{id:`project-skill`,write(e,t,n){try{let r=E(e,t,{home:n.home});return{integration:`project-skill`,editorId:e.id,action:r.action,...r.path?{path:r.path}:{},...r.error?{error:r.error}:{}}}catch(t){return{integration:`project-skill`,editorId:e.id,action:`failed`,error:t instanceof Error?t.message:String(t)}}}}];function On(e,t,n={},r=Dn){let i=[];for(let a of t){let t=re[a];for(let a of r)i.push(a.write(t,e,n))}return i}function kn(e,t,n={}){return{integrations:On(e,t,n)}}export{jt as C,V as D,ke as E,X as S,Ot as T,Ut as _,yn as a,Ft as b,en as c,Lt as d,zt as f,Ht as g,Bt as h,gn as i,Qt as l,Wt as m,xn as n,mn as o,Rt as p,bn as r,tn as s,kn as t,qt as u,Pt as v,Dt as w,Nt as x,It as y};
|
|
21
|
+
//# sourceMappingURL=src-CP_1F9IZ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Go as e,Ji as t,S as n,Xi as r,Yi as i,d as a,da as o,l as s,la as c,v as l,xa as u}from"./src-BgrRg-nl.mjs";import{$ as d,$i as f,$r as p,$t as m,A as h,Aa as g,Ai as _,An as v,Ar as y,At as b,B as x,Bi as S,Bn as C,Br as w,Bt as T,C as E,Ca as D,Ci as O,Cn as k,Cr as A,Ct as j,D as M,Da as N,Di as P,Dn as F,Dr as I,Dt as L,E as R,Ea as z,Ei as B,En as V,Er as H,Et as U,F as W,Fi as G,Fn as K,Fr as q,Ft as J,G as Y,Gi as X,Gn as Z,Gr as Q,Gt as $,H as ee,Hi as te,Hn as ne,Hr as re,Ht as ie,I as ae,Ii as oe,In as se,Ir as ce,It as le,J as ue,Ji as de,Jn as fe,Jr as pe,Jt as me,K as he,Ki as ge,Kn as _e,Kr as ve,Kt as ye,L as be,Li as xe,Ln as Se,Lr as Ce,Lt as we,M as Te,Ma as Ee,Mi as De,Mn as Oe,Mr as ke,Mt as Ae,N as je,Na as Me,Ni as Ne,Nn as Pe,Nr as Fe,Nt as Ie,O as Le,Oa as Re,Oi as ze,On as Be,Or as Ve,Ot as He,P as Ue,Pa as We,Pi as Ge,Pn as Ke,Pr as qe,Pt as Je,Q as Ye,Qi as Xe,Qr as Ze,Qt as Qe,R as $e,Ri as et,Rn as tt,Rr as nt,Rt as rt,S as it,Sa as at,Si as ot,Sn as st,Sr as ct,St as lt,T as ut,Ta as dt,Ti as ft,Tn as pt,Tr as mt,Tt as ht,U as gt,Ui as _t,Un as vt,Ur as yt,Ut as bt,V as xt,Vi as St,Vn as Ct,Vr as wt,Vt as Tt,W as Et,Wi as Dt,Wn as Ot,Wr as kt,Wt as At,X as jt,Xi as Mt,Xn as Nt,Xr as Pt,Xt as Ft,Y as It,Yi as Lt,Yn as Rt,Yr as zt,Yt as Bt,Z as Vt,Zi as Ht,Zn as Ut,Zr as Wt,Zt as Gt,_ as Kt,_a as qt,_i as Jt,_n as Yt,_r as Xt,_t as Zt,a as Qt,aa as $t,ai as en,an as tn,ar as nn,at as rn,b as an,ba as on,bi as sn,bn as cn,br as ln,bt as un,c as dn,ci as fn,cn as pn,cr as mn,d as hn,di as gn,dn as _n,dr as vn,ea as yn,ei as bn,en as xn,et as Sn,f as Cn,fi as wn,fn as Tn,fr as En,g as Dn,ga as On,gi as kn,gn as An,gr as jn,gt as Mn,h as Nn,ha as Pn,hi as Fn,hn as In,hr as Ln,ht as Rn,i as zn,ia as Bn,ii as Vn,in as Hn,ir as Un,it as Wn,j as Gn,ja as Kn,ji as qn,jn as Jn,jr as Yn,jt as Xn,k as Zn,ka as Qn,ki as $n,kn as er,kr as tr,kt as nr,l as rr,li as ir,ln as ar,lr as or,m as sr,ma as cr,mi as lr,mn as ur,mr as dr,mt as fr,n as pr,na as mr,ni as hr,nn as gr,nt as _r,o as vr,oa as yr,oi as br,on as xr,or as Sr,ot as Cr,p as wr,pa as Tr,pi as Er,pn as Dr,pr as Or,pt as kr,q as Ar,qi as jr,qn as Mr,qr as Nr,qt as Pr,r as Fr,ra as Ir,ri as Lr,rn as Rr,rr as zr,rt as Br,s as Vr,sa as Hr,si as Ur,sn as Wr,sr as Gr,t as Kr,ta as qr,ti as Jr,tn as Yr,tt as Xr,u as Zr,ui as Qr,un as $r,ur as ei,v as ti,va as ni,vi as ri,vn as ii,vr as ai,vt as oi,w as si,wa as ci,wi as li,wn as ui,wr as di,wt as fi,x as pi,xa as mi,xi as hi,xn as gi,xr as _i,xt as vi,y as yi,ya as bi,yi as xi,yn as Si,yr as Ci,yt as wi,z as Ti,zi as Ei,zn as Di,zr as Oi,zt as ki}from"./src-D87GkAFF.mjs";import{_ as Ai,a as ji,b as Mi,c as Ni,f as Pi,g as Fi,h as Ii,i as Li,l as Ri,m as zi,n as Bi,o as Vi,p as Hi,r as Ui,s as Wi,t as Gi,u as Ki,v as qi,y as Ji}from"./server-lock-Cn2-KrjV.mjs";export{Qn as AGENT_ID_MAX_LEN,g as AGENT_ID_RE,St as AGENT_WRITE_ORIGIN,bi as AgentFocusBroadcaster,Tr as AgentPresenceBroadcaster,te as AgentSessionCapacityError,_t as AgentSessionManager,fr as AutoStartDisabledError,tt as BUNDLE_IDS,Di as BUNDLE_SCOPE,C as BUNDLE_SKILL_NAME,Hn as BacklinkIndex,Lt as CC1Broadcaster,o as CC1_CONTRACT_VERSION,me as CONFIG_FILENAME,ir as CONFLICT_MARKER_RE,Gr as CURSOR_BUNDLE_PATHS_BY_PLATFORM,Kt as ConfigSchema,pe as DEFAULT_CHECKPOINT_RETENTION,_i as DEFAULT_EMBEDDINGS_DIMENSIONS,ht as DEFAULT_PACK_ID,ct as EMBEDDINGS_API_KEY_ENV,zt as FILE_SYSTEM_WRITER,Q as FILE_WATCHER_ORIGIN,jn as FileEmbeddingsBackend,bt as GIT_PREFLIGHT_FAIL_SPAN_NAME,Pt as GIT_UPSTREAM_WRITER,Me as GitDirAccessError,_n as GitNotAvailableError,Tn as GitTooOldError,Ne as HOCUSPOCUS_AUTH_REJECTION_REASONS,Ge as HocuspocusAuthRejection,G as HocuspocusAuthTokenSchema,Or as INSTALLED_AGENTS_SCHEMES,c as LINEAGE_EPOCH_KEY,be as LIVE_DERIVED_INDEX_DEBOUNCE_MS,U as LOG_MD_TEMPLATE,Mn as MANAGED_RENAME_ORIGIN,Dt as MAX_AGENT_SESSIONS,rn as MCP_CONNECTION_ID_HEADER,t as MCP_SERVER_NAME,Dr as MIN_GIT_VERSION,x as MISSING_OK_CONFIG_MESSAGE,We as MalformedGitPointerError,Vt as McpLogger,xt as MissingOkConfigError,tr as OBSERVER_SYNC_ORIGIN,Bt as OK_OKIGNORE_TEMPLATE,i as ORPHAN_MODES,e as PROTOCOL_VERSION,on as PinoLogger,Ni as ProcessLockCollisionError,rr as ProjectGitInitError,Zt as ROLLBACK_ORIGIN,Ft as ROOT_GITIGNORE_TEMPLATE,Fi as RUNTIME_VERSION,Wt as SERVICE_WRITER,Pe as SKILL_INSTALL_EVENTS_FILE_REL,l as SKILL_STATE_TARGETS,L as STARTER_FOLDERS,He as STARTER_FOLDER_FRONTMATTER_FILENAME,nr as STARTER_PACKS,b as STARTER_PACK_IDS,Xn as STARTER_TEMPLATES,ut as STATE_MANIFEST_FILENAME,Ai as STATE_SCHEMA_VERSION,u as SYSTEM_DOC_NAME,we as SeedPrerequisiteError,rt as SeedRootDirError,Gi as ServerLockCollisionError,Kr as SingleFileNotAFileError,pr as SingleFileNotFoundError,Fr as SingleFileNotMarkdownError,R as StateManifestError,si as TagIndex,Ct as USER_GLOBAL_BUNDLE_IDS,xr as UiLockCollisionError,oi as __getShowAllWalkStatsForTesting,wi as __resetShowAllWalkStatsForTesting,Ri as acquireProcessLock,Bi as acquireServerLock,Wr as acquireUiLock,X as applyAgentMarkdownWrite,ve as applyExternalChange,fi as applySeed,M as assertCompatibleStateManifest,ur as assertGitAvailable,Fe as assertNeverDiskEvent,kr as attachIdleShutdown,ti as bootServer,k as buildAndOpenSkill,Gt as buildConfigYmlContent,he as buildExecResult,K as buildSkillZip,Ae as buildStarterFolderFrontmatterYaml,Ze as buildWipTree,ne as bundleSkillMdPath,qe as classifyEvents,sn as classifyFsPath,Er as clearContributors,Xt as clearEmbeddingsKeyFromAllBackends,Ie as coercePackId,s as colorFromSeed,p as commitUpstreamImport,bn as commitWip,Jr as commitWipFromTree,In as compareSemver,Z as composeEffectiveLinterConfig,Qr as containsConflictMarkers,q as contentHash,lr as contributorCount,je as countShadowObjects,Ue as countStaleAgentWipRefs,W as countWipRefs,un as createApiExtension,H as createAssetServeMiddleware,zr as createContentFilter,Un as createContentFilterAsync,ai as createEmbeddingsSecretStore,zn as createEphemeralProjectDir,Nr as createExternalChangeHandler,Cn as createFileLogger,$e as createLiveDerivedIndexExtension,Et as createMcpHttpHandler,dr as createOsProbe,I as createPersistenceExtension,E as createServer,Gn as createServerObserverExtension,ge as createStreamingErrorWriter,mi as createTestLogger,Ci as describeStoredEmbeddingsKey,Dn as detectClaudeDesktopPresence,An as detectGit,Le as detectProjectShape,Sn as discoverLockDirs,fe as discoverMarkdownlintConfig,At as emitPreflightFailureSpan,Ar as encodeDocName,ue as encodeFolderRoute,It as encodeSkillRoute,Zr as ensureProjectGit,Qe as ensureProjectSkillGitignore,jr as errorResponse,ce as evictStaleTrackerEntries,Xr as extractOkBinaryPath,tn as extractWikiLinksFromMarkdown,Yt as fallbackPaths,hn as findEnclosingGitRoot,gr as findEnclosingProjectRoot,Rt as findNativeMarkdownlintFile,wr as flushFileLogger,oe as formatAuthRejectionWire,Fn as formatContributors,kn as formatContributorsFrom,lt as formatPackRationale,hr as gcCheckpointRefs,Ye as getCurrentMcpLogger,A as getLocalDir,sr as getLogFilePath,at as getLogger,Nn as getLogsDir,qi as getMachineId,qr as getMeter,cr as getMetrics,mr as getTracer,Pn as handleCollabSocketError,mn as handleSpawnCursor,ae as hasGcLogLatch,a as iconFromClientName,On as incrementCollabSocketFilteredError,qt as incrementServerObserverFire,m as initContent,Lr as initShadowRepo,Ir as initTelemetry,an as initToleranceTelemetryWriter,Wn as installPrettyZodErrors,D as installTestLoggers,ui as installUserSkill,S as isAllowedApiOrigin,ki as isAllowedWorkspaceHostHeader,Mt as isConfigDoc,xe as isHocuspocusAuthRejectionReason,Je as isKnownPackId,Ht as isLinkIndexExcludedDoc,T as isLoopbackAddress,Xe as isManagedArtifactDoc,r as isOrphanMode,y as isPairedWriteOrigin,or as isPathWithinDir,Ji as isProcessAlive,Rr as isProjectRoot,Si as isProjectSkillManaged,f as isReservedForUserTree,Ce as isSelfWrite,yn as isSystemDoc,pi as isToleranceTelemetryEnabled,Mi as isValidLockPid,nt as lastKnownHash,Vn as listRescueCheckpoints,J as listStarterPacks,Te as loadPrincipal,Ki as lockFilePath,ci as loggerFactory,dt as logsCurrentPath,z as logsPreviousPath,ln as makeLazyEmbeddingsKeyStore,Ui as markServerLockDraining,ee as mountMcpAndApi,hi as normalizeFsPath,vt as originGitHubHost,xn as packageVersionMajorMinor,et as parseAuthRejectionWire,ii as parseGitVersion,Ei as parseHocuspocusAuthToken,gt as parseKeepaliveConnectionId,Oi as pathToDocName,j as planSeed,Qt as prepareSingleFileOpen,_r as processCommand,Br as processUsage,pt as readAllTargets,Ti as readBranchFromHead,V as readBundleDecision,Nt as readOwnNativeRules,Pi as readProcessLock,Hi as readProcessLockDetailed,Ln as readProjectLocalSemanticConfig,Li as readServerLock,F as readServerPackageVersion,Be as readSkillInstallStateSnapshot,cn as readSkillManagement,Zn as readStateManifest,er as readTargetRecordedAt,v as readTargetVersion,pn as readUiLock,gn as reconcile,Jt as recordContributor,Ke as recordSkillInstallEvent,Y as registerAllTools,w as registerWrite,zi as releaseProcessLock,ji as releaseServerLock,ar as releaseUiLock,wt as removeLastKnownHash,ni as resetMetrics,n as resolveBundleEnabled,se as resolveBundledSkillDir,di as resolveContentDir,ei as resolveCursorBinaryDefault,vn as resolveCursorSpawnInvocation,_e as resolveEffectiveLinterConfig,mt as resolveLockDir,Mr as resolveNativeConfigForDoc,Ut as resolveNativeMarkdownlintConfig,le as resolvePack,Vr as resolvePackageVersion,jt as resolveUiInfo,ri as restoreContributors,yi as restoreLifecycleFromConflictsJson,nn as rewriteMarkdownLinksForDocumentRename,Sr as rewriteWikiLinksForDocumentRename,$ as runAuthReposSubprocess,ye as runAuthStatusSubprocess,Tt as runCloneSubprocess,Pr as runDeviceFlowSubprocess,d as runWithMcpLogger,Ve as safeContentPath,vi as safeSubdir,en as safetyCheckpoint,Cr as sanitizeClientName,br as saveInMemoryCheckpoint,Ur as saveVersion,Rn as seedBasenameIndex,vr as serializeError,Bn as setActiveSpanAttributes,Yn as setupServerObservers,fn as shadowGit,$t as shutdownTelemetry,gi as skillManagementPath,N as spansCurrentPath,Re as spansPreviousPath,En as spawnDetached,wn as splitMarkdownBlocks,re as startWatcher,de as streamingProblemEvent,xi as swapContributors,it as teardownToleranceTelemetryWriter,Kn as toBroadcasterKey,ot as tracedAppendFileSync,O as tracedLinkSync,li as tracedMkdir,ft as tracedMkdirSync,B as tracedRename,P as tracedRenameSync,ze as tracedRmSync,$n as tracedRmdirSync,_ as tracedUnlinkSync,qn as tracedWriteFile,De as tracedWriteFileSync,dn as untrackTrackedProjectSkillProjection,yt as updateLastKnownHash,Ii as updateProcessLockPort,Vi as updateServerLockPort,$r as updateUiLockPort,Ee as validateAgentId,ie as validateCloneInputs,Se as validateSkillZip,Wi as waitForServerLockDrain,ke as withHiddenWindowsConsole,yr as withSpan,Hr as withSpanSync,Jn as writeBundleDecision,Ot as writeMarkdownlintRule,Yr as writeRootGitignoreForNewRepo,st as writeSkillManagement,h as writeStateManifest,Oe as writeTargetVersion,kt as writeTracker};
|
|
1
|
+
import{$i as e,Jo as t,Qi as n,S as r,Zi as i,d as a,fa as o,l as s,ma as c,v as l,wa as u}from"./src-CHgigP4i.mjs";import{$ as d,$i as f,$r as p,$t as m,A as h,Aa as g,Ai as _,An as v,Ar as y,At as b,B as x,Bi as S,Bn as C,Br as w,Bt as T,C as E,Ca as D,Ci as O,Cn as k,Cr as A,Ct as j,D as M,Da as N,Di as P,Dn as F,Dr as I,Dt as L,E as R,Ea as z,Ei as B,En as V,Er as H,Et as U,F as W,Fi as G,Fn as K,Fr as q,Ft as J,G as Y,Gi as X,Gn as Z,Gr as Q,Gt as $,H as ee,Hi as te,Hn as ne,Hr as re,Ht as ie,I as ae,Ii as oe,In as se,Ir as ce,It as le,J as ue,Ji as de,Jn as fe,Jr as pe,Jt as me,K as he,Ki as ge,Kn as _e,Kr as ve,Kt as ye,L as be,Li as xe,Ln as Se,Lr as Ce,Lt as we,M as Te,Ma as Ee,Mi as De,Mn as Oe,Mr as ke,Mt as Ae,N as je,Na as Me,Ni as Ne,Nn as Pe,Nr as Fe,Nt as Ie,O as Le,Oa as Re,Oi as ze,On as Be,Or as Ve,Ot as He,P as Ue,Pa as We,Pi as Ge,Pn as Ke,Pr as qe,Pt as Je,Q as Ye,Qi as Xe,Qr as Ze,Qt as Qe,R as $e,Ri as et,Rn as tt,Rr as nt,Rt as rt,S as it,Sa as at,Si as ot,Sn as st,Sr as ct,St as lt,T as ut,Ta as dt,Ti as ft,Tn as pt,Tr as mt,Tt as ht,U as gt,Ui as _t,Un as vt,Ur as yt,Ut as bt,V as xt,Vi as St,Vn as Ct,Vr as wt,Vt as Tt,W as Et,Wi as Dt,Wn as Ot,Wr as kt,Wt as At,X as jt,Xi as Mt,Xn as Nt,Xr as Pt,Xt as Ft,Y as It,Yi as Lt,Yn as Rt,Yr as zt,Yt as Bt,Z as Vt,Zi as Ht,Zn as Ut,Zr as Wt,Zt as Gt,_ as Kt,_a as qt,_i as Jt,_n as Yt,_r as Xt,_t as Zt,a as Qt,aa as $t,ai as en,an as tn,ar as nn,at as rn,b as an,ba as on,bi as sn,bn as cn,br as ln,bt as un,c as dn,ci as fn,cn as pn,cr as mn,d as hn,di as gn,dn as _n,dr as vn,ea as yn,ei as bn,en as xn,et as Sn,f as Cn,fi as wn,fn as Tn,fr as En,g as Dn,ga as On,gi as kn,gn as An,gr as jn,gt as Mn,h as Nn,ha as Pn,hi as Fn,hn as In,hr as Ln,ht as Rn,i as zn,ia as Bn,ii as Vn,in as Hn,ir as Un,it as Wn,j as Gn,ja as Kn,ji as qn,jn as Jn,jr as Yn,jt as Xn,k as Zn,ka as Qn,ki as $n,kn as er,kr as tr,kt as nr,l as rr,li as ir,ln as ar,lr as or,m as sr,ma as cr,mi as lr,mn as ur,mr as dr,mt as fr,n as pr,na as mr,ni as hr,nn as gr,nt as _r,o as vr,oa as yr,oi as br,on as xr,or as Sr,ot as Cr,p as wr,pa as Tr,pi as Er,pn as Dr,pr as Or,pt as kr,q as Ar,qi as jr,qn as Mr,qr as Nr,qt as Pr,r as Fr,ra as Ir,ri as Lr,rn as Rr,rr as zr,rt as Br,s as Vr,sa as Hr,si as Ur,sn as Wr,sr as Gr,t as Kr,ta as qr,ti as Jr,tn as Yr,tt as Xr,u as Zr,ui as Qr,un as $r,ur as ei,v as ti,va as ni,vi as ri,vn as ii,vr as ai,vt as oi,w as si,wa as ci,wi as li,wn as ui,wr as di,wt as fi,x as pi,xa as mi,xi as hi,xn as gi,xr as _i,xt as vi,y as yi,ya as bi,yi as xi,yn as Si,yr as Ci,yt as wi,z as Ti,zi as Ei,zn as Di,zr as Oi,zt as ki}from"./src-BnjVL3Qp.mjs";import{_ as Ai,a as ji,b as Mi,c as Ni,f as Pi,g as Fi,h as Ii,i as Li,l as Ri,m as zi,n as Bi,o as Vi,p as Hi,r as Ui,s as Wi,t as Gi,u as Ki,v as qi,y as Ji}from"./server-lock-CqieF_wm.mjs";export{Qn as AGENT_ID_MAX_LEN,g as AGENT_ID_RE,St as AGENT_WRITE_ORIGIN,bi as AgentFocusBroadcaster,Tr as AgentPresenceBroadcaster,te as AgentSessionCapacityError,_t as AgentSessionManager,fr as AutoStartDisabledError,tt as BUNDLE_IDS,Di as BUNDLE_SCOPE,C as BUNDLE_SKILL_NAME,Hn as BacklinkIndex,Lt as CC1Broadcaster,c as CC1_CONTRACT_VERSION,me as CONFIG_FILENAME,ir as CONFLICT_MARKER_RE,Gr as CURSOR_BUNDLE_PATHS_BY_PLATFORM,Kt as ConfigSchema,pe as DEFAULT_CHECKPOINT_RETENTION,_i as DEFAULT_EMBEDDINGS_DIMENSIONS,ht as DEFAULT_PACK_ID,ct as EMBEDDINGS_API_KEY_ENV,zt as FILE_SYSTEM_WRITER,Q as FILE_WATCHER_ORIGIN,jn as FileEmbeddingsBackend,bt as GIT_PREFLIGHT_FAIL_SPAN_NAME,Pt as GIT_UPSTREAM_WRITER,Me as GitDirAccessError,_n as GitNotAvailableError,Tn as GitTooOldError,Ne as HOCUSPOCUS_AUTH_REJECTION_REASONS,Ge as HocuspocusAuthRejection,G as HocuspocusAuthTokenSchema,Or as INSTALLED_AGENTS_SCHEMES,o as LINEAGE_EPOCH_KEY,be as LIVE_DERIVED_INDEX_DEBOUNCE_MS,U as LOG_MD_TEMPLATE,Mn as MANAGED_RENAME_ORIGIN,Dt as MAX_AGENT_SESSIONS,rn as MCP_CONNECTION_ID_HEADER,i as MCP_SERVER_NAME,Dr as MIN_GIT_VERSION,x as MISSING_OK_CONFIG_MESSAGE,We as MalformedGitPointerError,Vt as McpLogger,xt as MissingOkConfigError,tr as OBSERVER_SYNC_ORIGIN,Bt as OK_OKIGNORE_TEMPLATE,n as ORPHAN_MODES,t as PROTOCOL_VERSION,on as PinoLogger,Ni as ProcessLockCollisionError,rr as ProjectGitInitError,Zt as ROLLBACK_ORIGIN,Ft as ROOT_GITIGNORE_TEMPLATE,Fi as RUNTIME_VERSION,Wt as SERVICE_WRITER,Pe as SKILL_INSTALL_EVENTS_FILE_REL,l as SKILL_STATE_TARGETS,L as STARTER_FOLDERS,He as STARTER_FOLDER_FRONTMATTER_FILENAME,nr as STARTER_PACKS,b as STARTER_PACK_IDS,Xn as STARTER_TEMPLATES,ut as STATE_MANIFEST_FILENAME,Ai as STATE_SCHEMA_VERSION,u as SYSTEM_DOC_NAME,we as SeedPrerequisiteError,rt as SeedRootDirError,Gi as ServerLockCollisionError,Kr as SingleFileNotAFileError,pr as SingleFileNotFoundError,Fr as SingleFileNotMarkdownError,R as StateManifestError,si as TagIndex,Ct as USER_GLOBAL_BUNDLE_IDS,xr as UiLockCollisionError,oi as __getShowAllWalkStatsForTesting,wi as __resetShowAllWalkStatsForTesting,Ri as acquireProcessLock,Bi as acquireServerLock,Wr as acquireUiLock,X as applyAgentMarkdownWrite,ve as applyExternalChange,fi as applySeed,M as assertCompatibleStateManifest,ur as assertGitAvailable,Fe as assertNeverDiskEvent,kr as attachIdleShutdown,ti as bootServer,k as buildAndOpenSkill,Gt as buildConfigYmlContent,he as buildExecResult,K as buildSkillZip,Ae as buildStarterFolderFrontmatterYaml,Ze as buildWipTree,ne as bundleSkillMdPath,qe as classifyEvents,sn as classifyFsPath,Er as clearContributors,Xt as clearEmbeddingsKeyFromAllBackends,Ie as coercePackId,s as colorFromSeed,p as commitUpstreamImport,bn as commitWip,Jr as commitWipFromTree,In as compareSemver,Z as composeEffectiveLinterConfig,Qr as containsConflictMarkers,q as contentHash,lr as contributorCount,je as countShadowObjects,Ue as countStaleAgentWipRefs,W as countWipRefs,un as createApiExtension,H as createAssetServeMiddleware,zr as createContentFilter,Un as createContentFilterAsync,ai as createEmbeddingsSecretStore,zn as createEphemeralProjectDir,Nr as createExternalChangeHandler,Cn as createFileLogger,$e as createLiveDerivedIndexExtension,Et as createMcpHttpHandler,dr as createOsProbe,I as createPersistenceExtension,E as createServer,Gn as createServerObserverExtension,ge as createStreamingErrorWriter,mi as createTestLogger,Ci as describeStoredEmbeddingsKey,Dn as detectClaudeDesktopPresence,An as detectGit,Le as detectProjectShape,Sn as discoverLockDirs,fe as discoverMarkdownlintConfig,At as emitPreflightFailureSpan,Ar as encodeDocName,ue as encodeFolderRoute,It as encodeSkillRoute,Zr as ensureProjectGit,Qe as ensureProjectSkillGitignore,jr as errorResponse,ce as evictStaleTrackerEntries,Xr as extractOkBinaryPath,tn as extractWikiLinksFromMarkdown,Yt as fallbackPaths,hn as findEnclosingGitRoot,gr as findEnclosingProjectRoot,Rt as findNativeMarkdownlintFile,wr as flushFileLogger,oe as formatAuthRejectionWire,Fn as formatContributors,kn as formatContributorsFrom,lt as formatPackRationale,hr as gcCheckpointRefs,Ye as getCurrentMcpLogger,A as getLocalDir,sr as getLogFilePath,at as getLogger,Nn as getLogsDir,qi as getMachineId,qr as getMeter,cr as getMetrics,mr as getTracer,Pn as handleCollabSocketError,mn as handleSpawnCursor,ae as hasGcLogLatch,a as iconFromClientName,On as incrementCollabSocketFilteredError,qt as incrementServerObserverFire,m as initContent,Lr as initShadowRepo,Ir as initTelemetry,an as initToleranceTelemetryWriter,Wn as installPrettyZodErrors,D as installTestLoggers,ui as installUserSkill,S as isAllowedApiOrigin,ki as isAllowedWorkspaceHostHeader,Mt as isConfigDoc,xe as isHocuspocusAuthRejectionReason,Je as isKnownPackId,Ht as isLinkIndexExcludedDoc,T as isLoopbackAddress,Xe as isManagedArtifactDoc,e as isOrphanMode,y as isPairedWriteOrigin,or as isPathWithinDir,Ji as isProcessAlive,Rr as isProjectRoot,Si as isProjectSkillManaged,f as isReservedForUserTree,Ce as isSelfWrite,yn as isSystemDoc,pi as isToleranceTelemetryEnabled,Mi as isValidLockPid,nt as lastKnownHash,Vn as listRescueCheckpoints,J as listStarterPacks,Te as loadPrincipal,Ki as lockFilePath,ci as loggerFactory,dt as logsCurrentPath,z as logsPreviousPath,ln as makeLazyEmbeddingsKeyStore,Ui as markServerLockDraining,ee as mountMcpAndApi,hi as normalizeFsPath,vt as originGitHubHost,xn as packageVersionMajorMinor,et as parseAuthRejectionWire,ii as parseGitVersion,Ei as parseHocuspocusAuthToken,gt as parseKeepaliveConnectionId,Oi as pathToDocName,j as planSeed,Qt as prepareSingleFileOpen,_r as processCommand,Br as processUsage,pt as readAllTargets,Ti as readBranchFromHead,V as readBundleDecision,Nt as readOwnNativeRules,Pi as readProcessLock,Hi as readProcessLockDetailed,Ln as readProjectLocalSemanticConfig,Li as readServerLock,F as readServerPackageVersion,Be as readSkillInstallStateSnapshot,cn as readSkillManagement,Zn as readStateManifest,er as readTargetRecordedAt,v as readTargetVersion,pn as readUiLock,gn as reconcile,Jt as recordContributor,Ke as recordSkillInstallEvent,Y as registerAllTools,w as registerWrite,zi as releaseProcessLock,ji as releaseServerLock,ar as releaseUiLock,wt as removeLastKnownHash,ni as resetMetrics,r as resolveBundleEnabled,se as resolveBundledSkillDir,di as resolveContentDir,ei as resolveCursorBinaryDefault,vn as resolveCursorSpawnInvocation,_e as resolveEffectiveLinterConfig,mt as resolveLockDir,Mr as resolveNativeConfigForDoc,Ut as resolveNativeMarkdownlintConfig,le as resolvePack,Vr as resolvePackageVersion,jt as resolveUiInfo,ri as restoreContributors,yi as restoreLifecycleFromConflictsJson,nn as rewriteMarkdownLinksForDocumentRename,Sr as rewriteWikiLinksForDocumentRename,$ as runAuthReposSubprocess,ye as runAuthStatusSubprocess,Tt as runCloneSubprocess,Pr as runDeviceFlowSubprocess,d as runWithMcpLogger,Ve as safeContentPath,vi as safeSubdir,en as safetyCheckpoint,Cr as sanitizeClientName,br as saveInMemoryCheckpoint,Ur as saveVersion,Rn as seedBasenameIndex,vr as serializeError,Bn as setActiveSpanAttributes,Yn as setupServerObservers,fn as shadowGit,$t as shutdownTelemetry,gi as skillManagementPath,N as spansCurrentPath,Re as spansPreviousPath,En as spawnDetached,wn as splitMarkdownBlocks,re as startWatcher,de as streamingProblemEvent,xi as swapContributors,it as teardownToleranceTelemetryWriter,Kn as toBroadcasterKey,ot as tracedAppendFileSync,O as tracedLinkSync,li as tracedMkdir,ft as tracedMkdirSync,B as tracedRename,P as tracedRenameSync,ze as tracedRmSync,$n as tracedRmdirSync,_ as tracedUnlinkSync,qn as tracedWriteFile,De as tracedWriteFileSync,dn as untrackTrackedProjectSkillProjection,yt as updateLastKnownHash,Ii as updateProcessLockPort,Vi as updateServerLockPort,$r as updateUiLockPort,Ee as validateAgentId,ie as validateCloneInputs,Se as validateSkillZip,Wi as waitForServerLockDrain,ke as withHiddenWindowsConsole,yr as withSpan,Hr as withSpanSync,Jn as writeBundleDecision,Ot as writeMarkdownlintRule,Yr as writeRootGitignoreForNewRepo,st as writeSkillManagement,h as writeStateManifest,Oe as writeTargetVersion,kt as writeTracker};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{N as e,j as t}from"./src-CHgigP4i.mjs";import{Mr as n,a as r,br as i,rn as a}from"./src-BnjVL3Qp.mjs";import{n as o,t as s}from"./esm-EvSEzE_V.mjs";import{i as c,t as l}from"./gh-detect-sjzh2ZLB.mjs";import{n as u}from"./constants-CqbycpZx.mjs";import{spawn as d}from"node:child_process";import{basename as f,dirname as p,join as m}from"node:path";import{closeSync as h,existsSync as g,mkdirSync as _,openSync as v,statSync as y}from"node:fs";import{homedir as b}from"node:os";import{rm as x}from"node:fs/promises";import{setTimeout as S}from"node:timers/promises";function C(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function w(e,t,r={}){let i=(r.spawn??d)(e,[...t],n({detached:!0,stdio:`ignore`,env:C(r.env??process.env)}));return i.unref(),i}const T=`OpenKnowledge.app`,E=`/Applications/${T}`;function D(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return y(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function O(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(k(e,E))return E;let t=m(e.homeDir??b(),`Applications`,T);return k(e,t)?t:null}function k(e,t){try{let n=m(t,`Contents`,`MacOS`,`OpenKnowledge`),r=e.statSync(n);return r&&typeof r.isFile==`function`?r.isFile():!1}catch{return!1}}function A(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`)return{available:!1,reason:`darwin-only`};let t;try{t=O(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:e.isTTY!==!0||e.env.SSH_CONNECTION||e.env.SSH_TTY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function j(e){(e.log??(e=>console.error(e)))("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),w(`open`,[`-b`,`com.inkeep.open-knowledge`],{spawn:e.spawn})}function M(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found at ${E}. Install via DMG, or omit --mode for browser mode.`;case`darwin-only`:return`Desktop app is macOS-only on this release. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect desktop bundle at ${E} (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available at ${E} but launch dispatch did not fire (caller bug).`}}function N(e){return m(p(e),`..`,`Frameworks`,`OpenKnowledge Server.app`,`Contents`,`MacOS`,`OpenKnowledge Helper`)}const P=/\/[^/]+\.app\/Contents\/MacOS\/[^/]+$/;function F(e){if(e.platform!==`darwin`||!P.test(e.execPath))return null;let t=N(e.execPath);return e.exists(t)?t:null}function I(e={}){let t=e.execPath??process.execPath,n=e.platform??process.platform,r=e.argv??process.argv,i=e.exists??g,a=r[1];return a?{command:F({execPath:t,platform:n,exists:i})??t,prefixArgs:[a]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(r)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function L(e,t){return e.host??t.HOST??`127.0.0.1`}function R(e){let t=f(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var z=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function B(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function V(t){g(t.lockDir)||_(t.lockDir,{recursive:!0});let n=v(m(t.lockDir,e),`w`),r=t.spawn??d,{PORT:i,...a}=process.env,o=I();try{let e=r(o.command,[...o.prefixArgs,...t.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,n],windowsHide:!0,cwd:t.cwd,env:{...a,ELECTRON_RUN_AS_NODE:`1`}});return e.unref(),e}finally{try{h(n)}catch{}}}function H(e,t,n){return e??(n===void 0?t:void 0)}function U(e,t){return e!==void 0&&t!==null&&t.port>0&&t.draining!==!0}function W(e,t,n){return e??+(t!=null&&!n)}async function G(e){let t=e.spawn??d,n=I(),{PORT:r,...i}=process.env,a=t(n.command,[...n.prefixArgs,`ui`,`--port`,String(e.uiPort)],{cwd:e.cwd,stdio:`inherit`,windowsHide:!0,env:{...i,ELECTRON_RUN_AS_NODE:`1`}}),o=!1,s=e=>{o=!0;try{a.kill(e)}catch{}},c=()=>s(`SIGINT`),l=()=>s(`SIGTERM`);process.once(`SIGINT`,c),process.once(`SIGTERM`,l),await new Promise(e=>{a.on(`exit`,(t,n)=>{process.exitCode=W(t,n,o),e()}),a.on(`error`,t=>{console.error(`[start] connect fallback: failed to spawn ok ui — ${t instanceof Error?t.message:String(t)}`),process.exitCode=1,e()})}),process.removeListener(`SIGINT`,c),process.removeListener(`SIGTERM`,l)}async function K(e){let t=e.now()+e.timeoutMs;for(;e.now()<t;){let t=e.readUiLock();if(t&&t.port>0)return t.port;await e.sleep(e.pollIntervalMs)}let n=e.readUiLock();return n&&n.port>0?n.port:null}const ee=t;function q(e,t,n=e=>x(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}}}}function J(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}function Y(e){let t=e.sigtermGraceMs??ee,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>S(e));return async()=>{try{let i=e.readUiLock();if(i&&e.isAlive(i.pid))try{e.killPid(i.pid,`SIGTERM`),e.log?.info({pid:i.pid,port:i.port},`idle-shutdown: SIGTERM UI sibling`);let a=Date.now()+t;for(;Date.now()<a&&e.isAlive(i.pid);)await r(n);if(e.isAlive(i.pid))try{e.killPid(i.pid,`SIGKILL`),e.log?.warn({pid:i.pid,graceMs:t},`idle-shutdown: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:i.pid,err:t instanceof Error?t.message:String(t)},`idle-shutdown: SIGKILL failed`)}}catch(t){e.log?.warn({pid:i.pid,err:t instanceof Error?t.message:String(t)},`idle-shutdown: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t instanceof Error?t.message:String(t)},`idle-shutdown: UI lookup failed; proceeding with destroy`)}await e.destroy()}}async function X(e){let{config:t,cwd:n,host:o}=e,s=e.skipAutoInit??!1,u=e.skipUiAutoSpawn??!1,d=e.idleThresholdMs??18e5,{existsSync:f,mkdirSync:p}=await import(`node:fs`),{basename:m,dirname:h}=await import(`node:path`),{bootServer:g,getLogger:_,isProcessAlive:v,readUiLock:y,resolveContentDir:b,resolveLockDir:x,waitForServerLockDrain:C}=await import(`./src-iBJ8-UwF.mjs`),w=e.log??_(`start`),T=e.singleFile!==void 0,E=e.projectDir??n,D=T?r(e.singleFile).canonicalFilePath:void 0,O=D?h(D):void 0,k=D?m(D):void 0;if(!T){if(!s&&!a(n))throw new z(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&w.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-C67-bVqc.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-dJDitma0.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-CtCQWVgx.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let A=O??b(t,n);!T&&!f(A)&&(p(A,{recursive:!0}),w.info({contentDir:A},`Created content directory`));let j=null,M=async({lockDir:t})=>{if(j=B({uiLock:y(t),isAlive:v}),j.action===`spawn`&&!u)try{let r=e.uiPort===void 0?void 0:[`ui`,`--port`,String(e.uiPort)];V({lockDir:t,cwd:n,spawn:e.spawn,args:r}),w.info({reason:j.reason,uiPort:e.uiPort},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else j.action===`skip`&&w.info({port:j.port,pid:j.pid},`UI already running at port ${j.port}`)},N=e.reactShellDistDir===void 0,P=c(),F=i();{let e=x(T?E:n),t=Date.now(),r=await C(e);r!==`no-drain`&&w.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}let I=await g({config:t,contentDir:A,projectDir:T?E:n,contentRoot:T?void 0:t.content.dir,port:e.port,host:o,quiet:!1,detectGh:l,tokenStore:P,embeddingsKeyStore:F,...T?{ephemeral:!0,singleDocRelPath:k,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],attachUiSibling:N,idleShutdownMs:d,skipAutoInit:!0,...N?{spawnUiSiblingFn:M}:{},idleShutdownHandler:t=>{let n=Y({readUiLock:()=>y(I.lockDir),isAlive:v,killPid:(e,t)=>{process.kill(e,t)},destroy:t,log:w});return J(T?q(n,E):n,{log:w,exit:e.idleExit})},log:w,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}});j||={action:`skip`,reason:`alive`,pid:0,port:0};let L=j,R=null;if(L.action===`skip`)R=L.port>0?L.port:null;else if(!u){let t=e.uiBindTimeoutMs??3e3;R=await K({readUiLock:()=>y(I.lockDir),now:Date.now,sleep:e=>S(e),timeoutMs:t,pollIntervalMs:50}),R===null&&w.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:I.httpServer,destroy:I.destroy,lockDir:I.lockDir,contentDir:A,port:I.port,ready:I.ready,degraded:I.degraded,uiSpawnDecision:j,resolvedUiPort:R}}function te(e){if(e===`browser`||e===`app`)return e;throw new o(`--mode must be 'browser' or 'app'`)}function ne(e){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<1||t>65535)throw new o(`--ui-port must be a port number between 1 and 65535`);return t}function Z(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function Q(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function $(e,t){let n=Z(process.env);n!==null&&(process.env.OK_CONSOLE_LEVEL=n);let{renderBanner:r}=await import(`./banner-dc_0Y_PF.mjs`),{accent:i,dim:a,error:o,warning:s}=await import(`./colors-DUjg75V3.mjs`),c=process.cwd(),l=e;process.title=R(c);let d=L(t,process.env),f=t.port===void 0?void 0:Number(t.port),p=process.env.PORT?Number(process.env.PORT):void 0,m=t.uiPort===void 0?void 0:Number(t.uiPort),h=H(f,p,m);if(m!==void 0){let{readServerLock:e,resolveLockDir:t}=await import(`./src-iBJ8-UwF.mjs`);if(U(m,e(t(c)))){await G({cwd:c,uiPort:m});return}}let g;try{g=await X({config:l,cwd:c,host:d,port:h,...m===void 0?{}:{uiPort:m},...t.serveContentAssets===void 0?{}:{serveContentAssets:t.serveContentAssets},...t.reactShellDistDir?{reactShellDistDir:t.reactShellDistDir}:{},...t.singleFile?{singleFile:t.singleFile}:{},...t.projectDir?{projectDir:t.projectDir}:{}})}catch(e){e instanceof z&&(console.error(o(e.message)),process.exit(1));let t=await import(`./src-iBJ8-UwF.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(o(e.message)),process.exit(1)),m!==void 0&&re(e,t)){await G({cwd:c,uiPort:m});return}let n=ie(e,c,t);n!==null&&(console.error(o(n)),process.exit(1)),console.error(`${o(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let _=!1,v=async e=>{if(_)return;_=!0;let[t,...n]=Q(e);console.log(i(`\n${t}`));for(let e of n)console.log(a(` ${e}`));try{await g.destroy()}catch(e){console.error(`${o(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{v(`SIGINT`)}),process.once(`SIGTERM`,()=>{v(`SIGTERM`)});let y=`http://${d}:${g.port}`,b=d===`0.0.0.0`||d===`::`?`http://0.0.0.0:${g.port}`:void 0,x=g.resolvedUiPort,S=x!==null&&x>0?`http://${d}:${x}`:y;console.log(r({name:`open-knowledge`,version:u,localUrl:S,apiUrl:S===y?void 0:y,networkUrl:b,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let C={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};g.ready.then(async()=>{if(g.degraded.length>0){console.log();for(let e of g.degraded){let t=C[e]??`${e} (check server logs for details)`;console.warn(` ${s(`⚠`)} ${s(e)}: ${a(t)}`)}console.log()}if(t.open){let{openBrowser:e}=await import(`./open-browser-D-PuwGFp.mjs`);e(S)}}).catch(e=>{console.error(` ${o(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}function re(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function ie(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=m(t,`.ok`),r=n.readServerLock(e);return r?r.kind===`interactive`?`OpenKnowledge desktop is currently running on this project. Quit it or use --cwd to point elsewhere.`:r.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function ae(e){return new s(`start`).description(`Start the knowledge base collab server`).option(`-p, --port <port>`,`Server port`,void 0).option(`--ui-port <port>`,`Pin the ok ui sibling to <port> and connect (not exit) if a server already runs here — the worktree-preview recipe path`,ne).option(`-H, --host <host>`,`Server host`,void 0).option(`--open`,`Open browser after start`).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,te).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path> (suppresses ok ui sibling)`).option(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).option(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).action(async t=>{let n=e();if(t.mode===`app`){t.open&&(process.stderr.write(`error: option '--mode=app' cannot be combined with '--open' (--open opens a browser tab against the local server, which app mode does not boot)
|
|
2
|
+
`),process.exit(2));let e=[];if(t.port!==void 0&&e.push(`--port`),t.uiPort!==void 0&&e.push(`--ui-port`),t.host!==void 0&&e.push(`--host`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=A(D());if(n.available){j({spawn:d});return}console.error(M(n.reason)),process.exit(1)}await $(n,t)})}export{A as C,D as S,w as T,ae as _,W as a,J as b,R as c,H as d,L as f,V as g,U as h,Y as i,Q as l,$ as m,K as n,G as o,Z as p,X as r,B as s,z as t,re as u,ie as v,j as w,I as x,q as y};
|
|
3
|
+
//# sourceMappingURL=start-D_5TfXcR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e,f as t,r as n}from"./start-D_5TfXcR.mjs";export{n as bootStartServer,t as resolveHost,e as startCommand};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Zi as e,ia as t,ra as n,sa as r}from"./src-CHgigP4i.mjs";import{Bn as i,In as a,Vn as o,tr as ee}from"./src-BnjVL3Qp.mjs";import{basename as s,dirname as c,isAbsolute as l,join as u,posix as d,relative as te,resolve as f,sep as p,win32 as m}from"node:path";import{cpSync as ne,existsSync as h,lstatSync as re,mkdirSync as ie,readFileSync as g,realpathSync as _,rmSync as v,statSync as y}from"node:fs";import{homedir as b}from"node:os";const x=n,S=t,C=r,w=`node`,T={MCP_DEBUG:`1`,OK_LOG_FILE:`/tmp/ok-mcp.log`},E=`# ok-mcp-v1`,D=`# ok-mcp-v1
|
|
2
2
|
USER_BUNDLE="$HOME/Applications/OpenKnowledge.app/Contents/Resources/cli/bin/ok.sh"
|
|
3
3
|
[ -f "$USER_BUNDLE" ] && [ -x "$USER_BUNDLE" ] && exec "$USER_BUNDLE" mcp
|
|
4
4
|
BUNDLE="/Applications/OpenKnowledge.app/Contents/Resources/cli/bin/ok.sh"
|
|
@@ -33,4 +33,4 @@ foreach ($d in $dirs) {
|
|
|
33
33
|
}
|
|
34
34
|
[Console]::Error.WriteLine('OpenKnowledge: install Node.js 24+ (npm i -g @inkeep/open-knowledge), then restart your editor')
|
|
35
35
|
exit 127`,A=`// ok-pi-bridge`,j=`${A}-v1`,M=`ok-pi-managed-extension`;function N(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.command===`/bin/sh`){if(!Array.isArray(t.args)||t.args[0]!==`-l`||t.args[1]!==`-c`)return!1;let e=t.args[2];return typeof e==`string`&&e.includes(`# ok-mcp-v1`)}if(t.command===`powershell`){if(!Array.isArray(t.args)||t.args[0]!==`-NoProfile`||t.args[1]!==`-NonInteractive`||t.args[2]!==`-Command`)return!1;let e=t.args[3];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}if(t.type===`local`&&Array.isArray(t.command)){if(t.command[0]===`/bin/sh`){if(t.command[1]!==`-l`||t.command[2]!==`-c`)return!1;let e=t.command[3];return typeof e==`string`&&e.includes(`# ok-mcp-v1`)}if(t.command[0]===`powershell`){if(t.command[1]!==`-NoProfile`||t.command[2]!==`-NonInteractive`||t.command[3]!==`-Command`)return!1;let e=t.command[4];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}return!1}if(t.command===`ok-pi-managed-extension`){if(!Array.isArray(t.args))return!1;let e=t.args[0];return typeof e==`string`&&e.startsWith(j)}return!1}function P(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=f(e);if(s(t)===`cli.mjs`&&s(c(t))===`dist`)return t;let n=t.split(p),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return u(i.length===0?p:i.join(p),`packages`,`cli`,`dist`,`cli.mjs`)}function F(e={}){return e.mode===`dev`?{command:w,args:[P(),`mcp`],env:{...T}}:(e.platformName??process.platform)===`win32`?{command:`powershell`,args:[`-NoProfile`,`-NonInteractive`,`-Command`,k]}:{command:`/bin/sh`,args:[`-l`,`-c`,D]}}function ae(e={}){return e.mode===`dev`?{type:`local`,enabled:!0,command:[w,P(),`mcp`],environment:{...T}}:(e.platformName??process.platform)===`win32`?{type:`local`,enabled:!0,command:[`powershell`,`-NoProfile`,`-NonInteractive`,`-Command`,k]}:{type:`local`,enabled:!0,command:[`/bin/sh`,`-l`,`-c`,D]}}function oe(e){if(typeof e!=`object`||!e)return!1;let t=e;return I(t,F({mode:`published`,platformName:`darwin`}))||I(t,F({mode:`published`,platformName:`win32`}))}function I(e,t){if(Object.keys(e).length!==Object.keys(t).length||e.command!==t.command)return!1;let n=t.args;return!Array.isArray(n)||!Array.isArray(e.args)||e.args.length!==n.length?!1:e.args.every((e,t)=>e===n[t])}function L(e){return e===`win32`?m:d}function R(e={}){let t=e.platformName??process.platform,n=e.home??b(),r=e.env??process.env,i=L(t);return t===`darwin`?i.join(n,`Library`,`Application Support`):t===`win32`?r.APPDATA??i.join(n,`AppData`,`Roaming`):r.XDG_CONFIG_HOME??i.join(n,`.config`)}function z(e={}){let t=e.platformName??process.platform,n=e.home??b();return L(t).join(n,`.claude.json`)}function B(e={}){let t=e.platformName??process.platform,n=e.home??b(),r=e.env??process.env;if(t===`darwin`)return d.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??m.join(n,`AppData`,`Roaming`);return m.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function V(e={}){let t=e.platformName??process.platform,n=e.home??b();return L(t).join(n,`.cursor`,`mcp.json`)}function H(e={}){let t=e.platformName??process.platform,n=e.home??b();return(e.env??process.env).CODEX_HOME??L(t).join(n,`.codex`)}function U(e={}){return L(e.platformName??process.platform).join(H(e),`config.toml`)}function W(e={}){let t=e.platformName??process.platform,n=e.home??b(),r=(e.env??process.env).COPILOT_HOME??L(t).join(n,`.copilot`);return L(t).join(r,`mcp-config.json`)}function G(e={}){let t=e.platformName??process.platform,n=e.home??b(),r=e.env??process.env,i=L(t);if(t===`win32`){let e=r.APPDATA??i.join(n,`AppData`,`Roaming`);return i.join(e,`opencode`)}let a=r.XDG_CONFIG_HOME??i.join(n,`.config`);return i.join(a,`opencode`)}function K(e={}){return L(e.platformName??process.platform).join(G(e),`opencode.json`)}function se(e={}){let t=e.platformName??process.platform,n=e.home??b();return L(t).join(n,`.openclaw`,`openclaw.json`)}function ce(e={}){let t=e.platformName??process.platform,n=e.home??b();return L(t).join(n,`.hermes`,`config.yaml`)}function le(e={}){let t=e.platformName??process.platform,n=e.home??b();return(e.env??process.env).PI_CODING_AGENT_DIR??L(t).join(n,`.pi`,`agent`)}function ue(e={}){let t=e.platformName??process.platform,n=e.home??b();return L(t).join(n,`.gemini`,`config`,`mcp_config.json`)}function de(e,t){let n=L(t),r=n.join(e,`.lmstudio`,`mcp.json`),i=n.join(e,`.cache`,`lm-studio`,`mcp.json`);return t===`darwin`?[i,r]:[r,i]}function q(e={}){let t=e.platformName??process.platform,n=de(e.home??b(),t);return n.find(e=>h(e))||n.find(e=>h(c(e)))||n[0]}const J={claude:{id:`claude`,label:S.claude,configPath:(e,t)=>z({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>u(t??b(),`.claude`),projectConfigPath:e=>u(e,`.mcp.json`),projectSkillPath:e=>u(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)},"claude-desktop":{id:`claude-desktop`,label:S[`claude-desktop`],configPath:(e,t)=>B({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>c(B({home:t}))},cursor:{id:`cursor`,label:S.cursor,configPath:(e,t)=>V({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>c(V({home:t})),projectConfigPath:e=>u(e,`.cursor`,`mcp.json`),projectSkillPath:e=>u(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)},codex:{id:`codex`,label:S.codex,configPath:(e,t)=>U({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>c(U({home:t})),projectConfigPath:e=>u(e,`.codex`,`config.toml`),projectSkillPath:e=>u(e,`.codex`,`skills`,`open-knowledge`,`SKILL.md`)},copilot:{id:`copilot`,label:S.copilot,configPath:(e,t)=>W({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>c(W({home:t})),projectSkillPath:e=>u(e,`.github`,`skills`,`open-knowledge`,`SKILL.md`)},opencode:{id:`opencode`,label:S.opencode,configPath:(e,t)=>K({home:t}),format:`json`,topLevelKey:`mcp`,serverName:()=>e,buildEntry:(e,t)=>ae(t),scope:`global`,detectPath:(e,t)=>c(K({home:t})),projectConfigPath:e=>u(e,`opencode.json`),projectSkillPath:e=>u(e,`.opencode`,`skills`,`open-knowledge`,`SKILL.md`)},openclaw:{id:`openclaw`,label:S.openclaw,configPath:(e,t)=>se({home:t}),format:`json`,topLevelKey:`mcp`,serverMapSubKey:`servers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>u(t??b(),`.openclaw`),offerOnlyWhenDetected:!0},pi:{id:`pi`,label:S.pi,configPath:()=>{throw Error("Pi has no user-global MCP config; OK's integration is the project-scoped bridge extension at .pi/extensions/open-knowledge.ts (run `ok init` in the project).")},format:`file`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:()=>{throw Error(`Pi has no MCP entry shape; the managed bridge file is built by buildPiExtensionSource (integrations/pi-extension.ts).`)},scope:`project`,detectPath:(e,t)=>le({home:t}),projectConfigPath:e=>u(e,`.pi`,`extensions`,`open-knowledge.ts`),projectSkillPath:e=>u(e,`.pi`,`skills`,`open-knowledge`,`SKILL.md`)},antigravity:{id:`antigravity`,label:S.antigravity,configPath:(e,t)=>ue({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>u(t??b(),`.gemini`),offerOnlyWhenDetected:!0},"lm-studio":{id:`lm-studio`,label:S[`lm-studio`],configPath:(e,t)=>q({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>c(q({home:t})),offerOnlyWhenDetected:!0},hermes:{id:`hermes`,label:S.hermes,configPath:(e,t)=>ce({home:t}),format:`yaml`,topLevelKey:`mcp_servers`,serverName:()=>e,buildEntry:(e,t)=>F(t),scope:`global`,detectPath:(e,t)=>u(t??b(),`.hermes`),offerOnlyWhenDetected:!0}};function fe(e){let t=e.filter(e=>!Object.hasOwn(J,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${x.join(`, `)}`);return e.map(e=>J[e])}function Y(e){let t=[];for(let n of o){let r=i[n];t.push({path:u(e,`.agents`,`skills`,r),bundleId:n,scope:`central`});for(let i of C)t.push({path:u(e,i.hostDir,`skills`,r),bundleId:n,scope:`host`,hostDir:i.hostDir})}return t}function pe(e,t){let n=[];for(let r of Y(e))if(r.bundleId===t)try{v(r.path,{recursive:!0,force:!0})}catch(e){n.push(e instanceof Error?e:Error(String(e)))}if(n.length>0)throw AggregateError(n,`Failed to remove ${n.length} path(s) for ${t}`)}function X(e,t){let n;try{n=re(e)}catch(e){if(e.code!==`ENOENT`)throw e}if(n?.isSymbolicLink())throw Error(`Refusing to write through a symbolic link at ${e}. Remove the symlink and re-run project setup.`);Q(e,t)}function Z(e,t){Q(e,t)}function Q(e,t){let n;try{n=_(t)}catch{n=f(t)}let r=c(e);for(;r.length>1&&r!==p;){let t;try{t=_(r)}catch(e){if(e.code===`ENOENT`){r=c(r);continue}throw e}let i=te(n,t);if(i===``||!i.startsWith(`..`)&&!l(i))return;throw Error(`Refusing to write at ${e}: ancestor ${r} resolves to ${t}, which is outside the project directory ${n}. A symbolic link in the path likely escapes the project. Remove the symlink and re-run project setup.`)}}function $(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function me(e,t,n){try{if(y(n).size>10485760)return!1}catch{return!1}let r;try{r=g(n,`utf-8`)}catch{return!1}let i=[],a=ee(r.charCodeAt(0)===65279?r.slice(1):r,i,{allowTrailingComma:!0,disallowComments:!1});if(i.length>0||!$(a))return!1;let o=a[e.topLevelKey];if(!$(o))return!1;let s=e.serverMapSubKey?o[e.serverMapSubKey]:o;return $(s)?$(s[e.serverName(t)]):!1}function he(e,t,n={}){if(e.id!==`copilot`)return!0;try{return me(e,t,e.configPath(t,n.home))}catch{return!1}}function ge(e,t,n={}){let r=e.projectSkillPath?.(t);if(!r)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};if(!he(e,t,n))return{editorId:e.id,label:e.label,action:`skipped-prerequisite`,path:r};try{let n=a(`project`,{checkDesktop:!0}),i=c(r);X(i,t);let o=h(r)?`overwritten`:`written`;return v(i,{recursive:!0,force:!0}),ie(c(i),{recursive:!0}),ne(n,i,{recursive:!0}),{editorId:e.id,label:e.label,action:o,path:r}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}function _e(e,t){let n=e.projectSkillPath?.(t);if(!n)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};try{let r=c(n);return h(n)?(Z(r,t),v(r,{recursive:!0,force:!0}),{editorId:e.id,label:e.label,action:`removed`,path:n}):{editorId:e.id,label:e.label,action:`not-present`,path:n}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:n,error:t instanceof Error?t.message:String(t)}}}export{N as _,pe as a,fe as b,E as c,J as d,C as f,F as g,M as h,ge as i,O as l,j as m,Z as n,Y as o,A as p,_e as r,x as s,X as t,S as u,oe as v,R as y};
|
|
36
|
-
//# sourceMappingURL=write-project-skill-
|
|
36
|
+
//# sourceMappingURL=write-project-skill-cDXEyRpr.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/open-knowledge",
|
|
3
|
-
"version": "0.35.1-beta.
|
|
3
|
+
"version": "0.35.1-beta.5",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"ajv-formats": "^3.0.1",
|
|
62
62
|
"tsdown": "^0.21.7",
|
|
63
63
|
"typescript": "^5.9.3",
|
|
64
|
-
"@inkeep/open-knowledge-app": "0.35.1-beta.
|
|
65
|
-
"@inkeep/open-knowledge-core": "0.35.1-beta.
|
|
66
|
-
"@inkeep/open-knowledge-
|
|
67
|
-
"@inkeep/open-knowledge-
|
|
64
|
+
"@inkeep/open-knowledge-app": "0.35.1-beta.5",
|
|
65
|
+
"@inkeep/open-knowledge-core": "0.35.1-beta.5",
|
|
66
|
+
"@inkeep/open-knowledge-native-config": "0.0.0",
|
|
67
|
+
"@inkeep/open-knowledge-server": "0.35.1-beta.5"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build:cli": "tsdown",
|
package/dist/colors-DqFW4lvb.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,s as n,t as r}from"./colors-CpVsnmzb.mjs";export{r as accent,e as dim,t as error,n as warning};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./git-handle-CPWu4DPI.mjs";export{e as createGitInstance};
|
package/dist/init-De8ZBQcZ.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./init-Db3TNZLi.mjs";export{e as runInit};
|
package/dist/loader-BMvfVL6f.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-BOU-bdGA.mjs";export{e as loadConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-Dz3toyFv.mjs";export{t as formatPreviewBlock,e as previewContent};
|