@inkeep/open-knowledge 0.69.0-beta.0 → 0.69.0-beta.2
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/{acp-harness-probe-DFULI4zt.mjs → acp-harness-probe-Bs3HbLyk.mjs} +1 -1
- package/dist/cli.mjs +51 -51
- package/dist/constants-CbxS7WLY.mjs +1 -0
- package/dist/{dist-D3ncRY-r.mjs → dist-D-X0Yg3B.mjs} +1 -1
- package/dist/dist-rXSsjKu4.mjs +2099 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +1 -1
- package/dist/init-B5WCv6mM.mjs +1 -0
- package/dist/{init-BRZOzHT1.mjs → init-avbDpR2d.mjs} +5 -5
- package/dist/{launch-json-removal-B7Up0mgM.mjs → launch-json-removal-BRzLv-YA.mjs} +1 -1
- package/dist/{loader-CJWS9p3X.mjs → loader-D0cTOcYg.mjs} +1 -1
- package/dist/loader-xgIt7e0Z.mjs +1 -0
- package/dist/{md-manager-BGnqyqi1-CZR6BFG9.mjs → md-manager-BGnqyqi1-eohu_6wW.mjs} +106 -106
- package/dist/{open-browser-J-HkPHyq.mjs → open-browser-DTJSqTQH.mjs} +1 -1
- package/dist/parse-worker.mjs +1 -1
- package/dist/preview-DMWr0Q4g.mjs +1 -0
- package/dist/{preview-OVFyIYa-.mjs → preview-eVq0X2EP.mjs} +1 -1
- package/dist/public/assets/{ActivityModeContent-Zc2SXbM7.js → ActivityModeContent-D-gOyyIg.js} +1 -1
- package/dist/public/assets/{AddPropertiesButton-CfgZluhc.js → AddPropertiesButton-DMepIRAv.js} +2 -2
- package/dist/public/assets/{AgentDiffPane-B3WSZOfe.js → AgentDiffPane-ZCO1qj1L.js} +1 -1
- package/dist/public/assets/{AgentThreadClientBinder-Bw1_X-_O.js → AgentThreadClientBinder-BfjceESQ.js} +1 -1
- package/dist/public/assets/{BugReportHistory-C0mgfepv.js → BugReportHistory-BOcf2TVz.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-CQw-Sqwh.js → BugReportHistoryDialog-BcrJpQj8.js} +1 -1
- package/dist/public/assets/CodeMirrorPropInput-DY70O775.js +3 -0
- package/dist/public/assets/{ConsentDialogBody-CD-D26ZE.js → ConsentDialogBody-BeUUwMln.js} +1 -1
- package/dist/public/assets/{DiffViewBoundary-Yy2aqABc.js → DiffViewBoundary-BwXxurEj.js} +1 -1
- package/dist/public/assets/DocumentContext-vBNJ-Cdr.js +38 -0
- package/dist/public/assets/{EditorModeToggle-C-GbkTqp.js → EditorModeToggle-Bm-mLnCb.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-CyXofuPa.js → EnableSyncConfirmDialog-BFcf4emo.js} +1 -1
- package/dist/public/assets/{ExcalidrawDocEditor-D_dI0p0K.js → ExcalidrawDocEditor-ByygowKy.js} +1 -1
- package/dist/public/assets/FeedbackForm-BEeIBVH4.js +1 -0
- package/dist/public/assets/{GraphPanel-BvL7oMih.js → GraphPanel-DWLNgPlg.js} +2 -2
- package/dist/public/assets/{ImageAttachments-DLRyPKzs.js → ImageAttachments-D4vMwJQE.js} +1 -1
- package/dist/public/assets/{ImportSkillDialog-YXnYByQ2.js → ImportSkillDialog-D8Y7cySO.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-BhmFozmU.js → LintConfigEditor-qw85cybs.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-BZNiVx42.js +1 -0
- package/dist/public/assets/ManagedArtifactProperties-Cw5KWGzG.js +1 -0
- package/dist/public/assets/{MermaidDocEditor-D32L_IKD.js → MermaidDocEditor-cvNMIn9f.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-MQspNHC2.js → PropertyDisplayRow-CjzV4-Vt.js} +1 -1
- package/dist/public/assets/ReportBugDialogBody-DxnhiTGI.js +3 -0
- package/dist/public/assets/{ReportBugMenuTrigger-CRPp2gW8.js → ReportBugMenuTrigger-DLTNh3tw.js} +2 -2
- package/dist/public/assets/{SchemaConfigEditor-DBoqvFoe.js → SchemaConfigEditor-njM43CFG.js} +1 -1
- package/dist/public/assets/{SessionsHost-B0FcTwIf.js → SessionsHost-C1RzXIMS.js} +2 -2
- package/dist/public/assets/{SettingsDialogBody-DIpVgiMA.js → SettingsDialogBody-DTvvW_Zx.js} +4 -4
- package/dist/public/assets/{ShareBranchSwitchDialog-DT-MsN_7.js → ShareBranchSwitchDialog-B8GaAtHa.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-D5U7eb0K.js → ShareReceiveDialog-CfN5tWAX.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-BQYFcNCG.js → ShareReceiveMissDialog-C9ecBdyq.js} +1 -1
- package/dist/public/assets/{SkillCostValue-B8shQ8aS.js → SkillCostValue-CbiGwlcy.js} +1 -1
- package/dist/public/assets/{SkillEditBanner-C9hq4ADD.js → SkillEditBanner-8SDCYqSK.js} +1 -1
- package/dist/public/assets/{SkillForkDialog-DxZSklig.js → SkillForkDialog-DA2bv7Ze.js} +1 -1
- package/dist/public/assets/{SkillInstallMenu-B0Rgp5dj.js → SkillInstallMenu-Cdo0N4rZ.js} +2 -2
- package/dist/public/assets/{SkillOriginInline-CSc-CNEN.js → SkillOriginInline-jp5eBUDV.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-DK8kTZWd.js → SkillToolbarControls-CFhVVqUX.js} +1 -1
- package/dist/public/assets/{SlidesToolbarControls-CupBuOxP.js → SlidesToolbarControls-WsHoiZbF.js} +1 -1
- package/dist/public/assets/SourceEditor-BKtF1CXz.js +1 -0
- package/dist/public/assets/{TerminalPanel-_Qa_82n0.js → TerminalPanel-DqnJUJYd.js} +3 -3
- package/dist/public/assets/{TerminalWindowApp-DF3Gb6RF.js → TerminalWindowApp-HnSyl8Yq.js} +1 -1
- package/dist/public/assets/{TextDocEditor-u8A_VeSo.js → TextDocEditor-C1pZKMJy.js} +1 -1
- package/dist/public/assets/{ThreadView-BD8CXYJ6.js → ThreadView-BM18mhAx.js} +1 -1
- package/dist/public/assets/{TimelineDiffPane-t-rUOsO8.js → TimelineDiffPane-BygEanlK.js} +1 -1
- package/dist/public/assets/{agent-diff-store-iAzgNJJS.js → agent-diff-store-CPizJ_eo.js} +1 -1
- package/dist/public/assets/auth-state-cache-BYTdrNrU.js +11 -0
- package/dist/public/assets/{bug-report-send-manager-Drf4dy2T.js → bug-report-send-manager-CHJKmtN2.js} +1 -1
- package/dist/public/assets/client-version-SQ-LgVkc.js +1 -0
- package/dist/public/assets/{comment-chips-D665bZ0y.js → comment-chips-Cbbf5tPC.js} +1 -1
- package/dist/public/assets/config-provider-2yYopfHI.js +5 -0
- package/dist/public/assets/{dist-CNsXnHvV.js → dist-CwxvIm9B.js} +1 -1
- package/dist/public/assets/{doc-hash-LMNyBpXx.js → doc-hash-BH9rk2WZ.js} +1 -1
- package/dist/public/assets/{doc-undo-manager-CfmlCR13.js → doc-undo-manager-CgPwSDHm.js} +1 -1
- package/dist/public/assets/{documents-events-BsmTsjmz.js → documents-events-BB7BIo88.js} +1 -1
- package/dist/public/assets/{file-tree-adapter-uQcc4ckN.js → file-tree-adapter-DyYOxysT.js} +1 -1
- package/dist/public/assets/{file-tree-utils-CPRyzplX.js → file-tree-utils-u5xqn0BX.js} +1 -1
- package/dist/public/assets/{folder-config-api-BDwh3aC-.js → folder-config-api-CVMW4D2j.js} +1 -1
- package/dist/public/assets/i18n-rBGyf4l3.js +1 -0
- package/dist/public/assets/{index-CtBO8elu.js → index--d9VPJh4.js} +14 -14
- package/dist/public/assets/{launcher-selection-DEVYkMjA.js → launcher-selection-BWG2fxav.js} +1 -1
- package/dist/public/assets/{lint-config-client-CCpNmoZV.js → lint-config-client-DVi1icXy.js} +1 -1
- package/dist/public/assets/{markdownlint-rule-browser-DUyduHWT.js → markdownlint-rule-browser-mxUTuxp0.js} +1 -1
- package/dist/public/assets/page-list-cache-CYe_1O03.js +1 -0
- package/dist/public/assets/{pending-receive-nav-store-3uXvslja.js → pending-receive-nav-store-DcN0rbT1.js} +1 -1
- package/dist/public/assets/{progress-Cn_FRDiV.js → progress-pgO8UB4m.js} +3 -3
- package/dist/public/assets/{project-paths-C32mx08r.js → project-paths-DM1xnwOC.js} +1 -1
- package/dist/public/assets/{prop-types-BIu1D6lu.js → prop-types-CjN08vlQ.js} +1 -1
- package/dist/public/assets/{receive-store-Buh0t9ET.js → receive-store-Cead1yYo.js} +1 -1
- package/dist/public/assets/{selection-context-BiowxoFh.js → selection-context-Bc6kodP9.js} +1 -1
- package/dist/public/assets/{skill-scope-B3Nj1tJp.js → skill-scope-DcddcyFv.js} +1 -1
- package/dist/public/assets/{skills-api-B10NOC1T.js → skills-api-DKrztKUX.js} +1 -1
- package/dist/public/assets/{src-Kpep1xON.js → src-tCMUadGy.js} +1 -1
- package/dist/public/assets/{startup-marks-8bSkgTX4.js → startup-marks-BsUZ1tFg.js} +1 -1
- package/dist/public/assets/{tag-pill-input-u6SD8qUI.js → tag-pill-input-BV-jU72q.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-BkhueaqY.js → target-navigation-intent-BA3Z0hPP.js} +1 -1
- package/dist/public/assets/{telemetry-impl-DkxI3ruc.js → telemetry-impl-D8b0Lz4E.js} +1 -1
- package/dist/public/assets/{telemetry-startup-je6mAmwN.js → telemetry-startup-tdRVaPoP.js} +1 -1
- package/dist/public/assets/{terminal-cli-display-CnPFJMVj.js → terminal-cli-display-CRS9W4N1.js} +1 -1
- package/dist/public/assets/{terminal-command-events-BYlQRupR.js → terminal-command-events-D_Zfew8Q.js} +1 -1
- package/dist/public/assets/{typing-burst-detector-CimABhX5.js → typing-burst-detector-BWyPshFG.js} +3 -3
- package/dist/public/assets/{uninstall-Dq_EhrWx.js → uninstall-CAwByItk.js} +1 -1
- package/dist/public/assets/{use-activity-panel-BCWlQC3x.js → use-activity-panel-CRfGEqEf.js} +1 -1
- package/dist/public/assets/{use-apply-config-color-theme-CJrBTcY0.js → use-apply-config-color-theme-DJxDbMcj.js} +1 -1
- package/dist/public/assets/{use-collab-url-BAJGqgUn.js → use-collab-url-C3cEeGf_.js} +1 -1
- package/dist/public/assets/{use-conflicts-VdPxluxU.js → use-conflicts-DZLpbdwE.js} +1 -1
- package/dist/public/assets/{use-live-xterm-theme-DBfQaRdI.js → use-live-xterm-theme-CYIvo-kA.js} +1 -1
- package/dist/public/assets/{use-open-skill-lm9BfHZr.js → use-open-skill-DVsmIGYC.js} +1 -1
- package/dist/public/assets/{use-settings-route-DNht5G-T.js → use-settings-route-B1GSbeY4.js} +1 -1
- package/dist/public/assets/{use-skill-origin-BrXpsMVc.js → use-skill-origin-B_MYd0ur.js} +1 -1
- package/dist/public/assets/{use-skills-OgedLfu1.js → use-skills-CRcq3oxw.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-DR6sPeKA.js → use-terminal-enabled-3oU29-6-.js} +1 -1
- package/dist/public/assets/use-timeline-entry-diff-CweASqOk.js +5 -0
- package/dist/public/assets/{use-workspace-d3dSSgXw.js → use-workspace-C8m25tLq.js} +1 -1
- package/dist/public/index.html +50 -50
- package/dist/public/uninstall.html +3 -3
- package/dist/{repair-launch-json-B4vY3obG.mjs → repair-launch-json-CabIRTtK.mjs} +1 -1
- package/dist/{repair-mcp-configs-BrTYR9lx.mjs → repair-mcp-configs-CaVn2st7.mjs} +1 -1
- package/dist/repair-skills-5EO0Uwch.mjs +1 -0
- package/dist/{repair-skills-BM2Pl7Yv.mjs → repair-skills-hGJGjJEr.mjs} +1 -1
- package/dist/{resolve-project-root-B81XfrMj.mjs → resolve-project-root-Dyi1SFSV.mjs} +3 -3
- package/dist/{skill-teardown-DbinmoNc.mjs → skill-teardown-BIi-5NQJ.mjs} +1 -1
- package/dist/src-0Szi8CN8.mjs +1 -0
- package/dist/src-Bcky4fUd.mjs +19 -0
- package/dist/start-B-bgMgfO.mjs +1 -0
- package/dist/{start-DDg_zG0r.mjs → start-C1aGoQLD.mjs} +3 -3
- package/package.json +4 -4
- package/dist/constants-lVHaYJwx.mjs +0 -1
- package/dist/dist-3_s68BnD.mjs +0 -2099
- package/dist/init-DeaYy4BN.mjs +0 -1
- package/dist/loader-BupEYZRX.mjs +0 -1
- package/dist/preview-DwXHObKU.mjs +0 -1
- package/dist/public/assets/CodeMirrorPropInput-D0aTVBuW.js +0 -3
- package/dist/public/assets/DocumentContext-DCptSL-u.js +0 -38
- package/dist/public/assets/FeedbackForm-CVAVZ9B2.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-CJbVr2ED.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-DlbjGs9m.js +0 -1
- package/dist/public/assets/ReportBugDialogBody-BBw4Gvfh.js +0 -3
- package/dist/public/assets/SourceEditor-C-ZpGOKU.js +0 -1
- package/dist/public/assets/auth-state-cache-1ThajazI.js +0 -11
- package/dist/public/assets/client-version-DgpXcdyD.js +0 -1
- package/dist/public/assets/config-provider-DMJPXf-P.js +0 -5
- package/dist/public/assets/i18n-DGYi-XXf.js +0 -1
- package/dist/public/assets/page-list-cache-CSQWCWRt.js +0 -1
- package/dist/public/assets/use-timeline-entry-diff-aa7Yb8h1.js +0 -5
- package/dist/repair-skills-2wSF-8Tv.mjs +0 -1
- package/dist/src-BFvXQfJ0.mjs +0 -19
- package/dist/src-f8P7QEGT.mjs +0 -1
- package/dist/start-DOrRpkix.mjs +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{$l as e}from"./md-manager-BGnqyqi1-eohu_6wW.mjs";import{$a as t,Do as n,Eo as r,xo as i}from"./dist-rXSsjKu4.mjs";import{b as a,g as o,m as s,p as c,s as l}from"./resolve-project-root-Dyi1SFSV.mjs";import{S as ee,T as u,d as te,o as d,v as f,x as p}from"./init-avbDpR2d.mjs";import{t as m}from"./is-object-BGze3w87.mjs";import{spawn as h}from"node:child_process";import{basename as ne,dirname as g,join as _,resolve as v,win32 as y}from"node:path";import{existsSync as b,mkdirSync as x,readFileSync as S,readdirSync as C,statSync as w,writeFileSync as T}from"node:fs";import{homedir as E}from"node:os";var D=e();const O=`open-knowledge`;function k(e){try{e()}catch{}}var A=class{backend=`keyring`;onKeychainRead;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(O,e).getPassword()}catch(t){return k(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return k(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return k(()=>this.onKeychainRead?.({kind:`corrupt-entry`,host:e,error:`corrupt-entry`})),null}}async set(e,t,n,r){let{Entry:i}=await import(`@napi-rs/keyring`),a=new i(O,e),o={login:t,token:n,...r};a.setPassword(JSON.stringify(o))}async clear(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{new t(O,e).deletePassword()}catch{}}},j=class{backend=`file`;authFile;constructor(e){this.authFile=e??_(E(),`.ok`,`auth.yml`)}read(){if(!b(this.authFile))return{};try{let e=S(this.authFile,`utf-8`);return(0,D.parse)(e)??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=g(this.authFile);b(t)||x(t,{recursive:!0,mode:448}),T(this.authFile,(0,D.stringify)(e),{mode:384})}async get(e){return this.read()[e]??null}async set(e,t,n,r){let i=this.read();i[e]={login:t,token:n,...r},this.write(i)}async clear(e){let t=this.read();delete t[e],this.write(t)}},M=class{backend=`keyring`;keychain;file;constructor(e,t){this.keychain=e,this.file=t}async get(e){let t=await this.keychain.get(e);if(t!=null)return t;let n=await this.file.get(e);if(n==null)return null;try{await this.keychain.set(e,n.login,n.token,{gitProtocol:n.gitProtocol,name:n.name,email:n.email}),await this.file.clear(e),process.stderr.write(`[auth] migrated ${e} credential from ~/.ok/auth.yml to the OS keychain\n`)}catch{}return n}set(e,t,n,r){return this.keychain.set(e,t,n,r)}async clear(e){await this.keychain.clear(e),await this.file.get(e)!=null&&await this.file.clear(e)}};async function N(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(O,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
|
|
2
2
|
`),k(()=>t?.onBackendSelected?.({backend:`keyring`})),new M(new A(t?.onKeychainRead),new j(e))}catch(n){let r=n instanceof Error?`${n.name}: ${n.message}`:String(n);return process.stderr.write(`[auth] token storage: file (~/.ok/auth.yml) — OS keychain unavailable: ${r}\n`),k(()=>t?.onBackendSelected?.({backend:`file`,reason:r})),new j(e)}}function P(e){let t=null;return function(){if(t)return t;let n=2e3;return t=(async()=>{let t=null,r=new Promise(r=>{t=setTimeout(()=>{process.stderr.write(`[auth] token storage: keyring init exceeded ${n}ms; falling back to file (~/.ok/auth.yml)\n`),r(new j(e))},n)});try{return await Promise.race([N(e),r])}catch{return new j(e)}finally{t!==null&&clearTimeout(t)}})(),t}}function re(e){let t=P(e);return{async get(e){let n=await(await t()).get(e);return n===null?null:{token:n.token,login:n.login}}}}function F(e){let t=P(e);return{backend:`file`,async get(e){return(await t()).get(e)},async set(e,n,r,i){return(await t()).set(e,n,r,i)},async clear(e){return(await t()).clear(e)}}}async function I(e,t){let n=[],r=new j(t);await r.get(e)!=null&&(await r.clear(e),n.push(`file`));let i;try{let{Entry:t}=await import(`@napi-rs/keyring`);new t(O,`__probe__`);let r,a=await new A(e=>{e.kind===`read-error`&&(r=e.error??`read-error`)}).get(e);if(r!==void 0)i=r;else if(a!=null)try{new t(O,e).deletePassword(),n.push(`keychain`)}catch(e){i=e instanceof Error?e.name:`delete-error`}}catch{}return{touched:n,keychainError:i}}function L(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function R(e){let t=e?.code;return t===`ENOENT`||t===`EACCES`||t===`EPERM`?{ok:!1,reason:`not-installed`}:{ok:!1,reason:`spawn-error`}}function z(e){return t({detached:!0,stdio:`ignore`,shell:!1,env:L(e)})}function B(e,t,n={}){let r=(n.spawn??h)(e,[...t],z(n.env??process.env));return r.unref(),r}function V(e,t,n={}){let r=n.spawn??h,i=n.timeoutMs??2e3;return new Promise(a=>{let o=!1,s=e=>{o||(o=!0,a(e))},c=setTimeout(()=>s({ok:!1,reason:`timeout`}),i);try{let i=r(e,[...t],z(n.env??process.env));i.once(`error`,e=>{clearTimeout(c),s(R(e))}),i.once(`spawn`,()=>{clearTimeout(c),s({ok:!0})});try{i.unref()}catch{}}catch(e){clearTimeout(c),s(R(e))}})}const H=`com.inkeep.open-knowledge`,U=`OpenKnowledge.app`,W=`/Applications/${U}`;function G(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return w(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function K(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(q(e,W))return W;let t=e.homeDir??E(),n=_(t,`Applications`,U);return q(e,n)?n:null}function q(e,t){return J(e,_(t,`Contents`,`MacOS`,`OpenKnowledge`))}function J(e,t){try{let n=e.statSync(t);return n?typeof n.isFile==`function`&&n.isFile():!1}catch{return!1}}const Y=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function ie(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of Y){let r=y.join(t,`Programs`,n,`OpenKnowledge.exe`);if(J(e,r))return r}return null}function ae(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return J(e,t)?t:null}function oe(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?K(e):e.platform===`win32`?ie(e):ae(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.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function se(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){B(`open`,[`-b`,H],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}B(i,[],{spawn:e.spawn})}function ce(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it from https://openknowledge.ai/download, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. 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 the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function X(e,t){let n=v(e),r=t===void 0?a():a({home:t,env:{}});return{cwd:n,bridgePath:l.pi.projectConfigPath?.(n)??``,trustPath:_(r,`trust.json`)}}function Z(e,t,n){let r=d(l.pi,e,n,t);if(r.kind===`absent`)return{state:`absent`,text:null};if(r.kind!==`present`)return{state:`unreadable`,text:null};let i=r.entry,a=Array.isArray(i.args)&&typeof i.args[0]==`string`?i.args[0]:null;return s(i)?{state:`own-current`,text:a}:ee(i)?{state:`own-stale`,text:a}:{state:`foreign`,text:a}}function Q(e,t){let n;try{n=S(e,`utf-8`)}catch(e){let t=e.code;return t===`ENOENT`||t===`ENOTDIR`?{state:`untrusted`,entries:{},trailingNewline:!1}:{state:`unreadable`,entries:null,trailingNewline:!1}}if(n.trim()===``)return{state:`untrusted`,entries:{},trailingNewline:!1};let r;try{r=JSON.parse(n)}catch{return{state:`unreadable`,entries:null,trailingNewline:!1}}return m(r)?{state:r[t]===!0?`trusted`:`untrusted`,entries:r,trailingNewline:n.endsWith(`
|
|
3
3
|
`)}:{state:`unreadable`,entries:null,trailingNewline:!1}}function le(e,t){let n=X(e,t),r=Z(n.cwd,n.bridgePath,t).state,i=Q(n.trustPath,n.cwd).state;return{...n,bridge:r,trust:i,bridgeLoadable:(r===`own-current`||r===`own-stale`)&&i===`trusted`,otherExtensions:$(n.bridgePath).names}}function $(e){let t=g(e),n=ne(e);try{return{names:C(t).filter(e=>e!==n&&e.endsWith(`.ts`)).sort(),verified:!0}}catch(e){let t=e.code;return{names:[],verified:t===`ENOENT`||t===`ENOTDIR`}}}async function ue(e,t={mode:`published`},n){let r=X(e,n),i=Z(r.cwd,r.bridgePath,n);if(i.state===`foreign`)return{...r,ok:!1,bridge:`refused-foreign`,trust:`skipped`};if(i.state===`unreadable`)return{...r,ok:!1,bridge:`refused-unreadable`,trust:`skipped`};let a;if(i.state===`absent`)a=`written`;else{let e;try{e=p(t)}catch{e=void 0}a=e!==void 0&&i.text===e?`unchanged`:`refreshed`}if(a!==`unchanged`){let e=f(l.pi,r.cwd,t,n,r.bridgePath);if(e.action!==`written`&&e.action!==`overwritten`)return{...r,ok:!1,bridge:`failed`,trust:`skipped`,error:e.error??`bridge write ${e.action}`}}let o=await de(r.trustPath,r.cwd);return{...r,ok:o.action===`already-trusted`||o.action===`added`,bridge:a,trust:o.action,...o.error===void 0?{}:{error:o.error}}}async function de(e,t){try{x(g(e),{recursive:!0})}catch(e){return{action:`failed`,error:e instanceof Error?e.message:String(e)}}let n={action:`added`};try{await r(`${e}.lock`,async()=>{let r=Q(e,t);if(r.state===`trusted`){n.action=`already-trusted`;return}if(r.entries===null){n.action=`refused-unreadable`;return}let a={...r.entries,[t]:!0},o=JSON.stringify(a,null,2)+(r.trailingNewline?`
|
|
4
4
|
`:``),s=u(e);i(e,o,s===void 0?void 0:{mode:s}),n.action=`added`})}catch(e){return{action:`failed`,error:e instanceof Error?e.message:String(e)}}return n.action===`refused-unreadable`?{action:`refused-unreadable`,error:`trust store is not a readable JSON object`}:{action:n.action}}function fe(e,t){let r=X(e,t),a=$(r.bridgePath);if(!a.verified)return{action:`kept-unverified`,error:`could not read the Pi extensions folder`};if(a.names.length>0)return{action:`kept-shared`};if(!b(r.trustPath))return{action:`not-present`};let o={action:`removed`};try{n(`${r.trustPath}.lock`,()=>{let e=Q(r.trustPath,r.cwd);if(e.entries===null){o.action=e.state===`unreadable`?`refused-unreadable`:`not-present`;return}if(!(r.cwd in e.entries)){o.action=`not-present`;return}let t={...e.entries};delete t[r.cwd];let n=JSON.stringify(t,null,2)+(e.trailingNewline?`
|