@inkeep/open-knowledge 0.62.1 → 0.63.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/acp-harness-probe-BLxtOeJP.mjs +7 -0
  2. package/dist/cli.mjs +61 -61
  3. package/dist/constants-CXrNCX02.mjs +2 -0
  4. package/dist/git-handle-Bp1KC5ON.mjs +1 -0
  5. package/dist/{git-handle-B1_kHwxU.mjs → git-handle-DBSBLTQr.mjs} +3 -3
  6. package/dist/index.d.mts +84 -25
  7. package/dist/index.mjs +210 -209
  8. package/dist/init-B-JC6toB.mjs +1 -0
  9. package/dist/{init-BBNz5uLM.mjs → init-CFBWWVL6.mjs} +16 -16
  10. package/dist/{launch-json-removal-IEs1IGNc.mjs → launch-json-removal-BiR8TkdA.mjs} +2 -2
  11. package/dist/{loader-DMkVDmiG.mjs → loader-BTqWazXb.mjs} +2 -2
  12. package/dist/loader-CpTJ3qxR.mjs +1 -0
  13. package/dist/md-manager-YCnEcytX.mjs +2 -0
  14. package/dist/{open-browser-Bjj7OZGh.mjs → open-browser-ycZBGuNV.mjs} +2 -2
  15. package/dist/parse-worker.mjs +1 -1
  16. package/dist/preview-D6sAAZcw.mjs +1 -0
  17. package/dist/{preview-BmIvw6sE.mjs → preview-bcFQvR8X.mjs} +2 -2
  18. package/dist/public/assets/{ActivityModeContent-UgHvlRfm.js → ActivityModeContent-DKNTU3xF.js} +1 -1
  19. package/dist/public/assets/{AddPropertiesButton-BDADcHDL.js → AddPropertiesButton-DqpU3aSu.js} +1 -1
  20. package/dist/public/assets/{AgentDiffPane-ilX8XDNa.js → AgentDiffPane-9yWEGSlA.js} +1 -1
  21. package/dist/public/assets/{AgentThreadClientBinder-sEhhcDlu.js → AgentThreadClientBinder-B7GHdT50.js} +1 -1
  22. package/dist/public/assets/{BugReportHistory-C-CVBV3l.js → BugReportHistory-CDjs-UvS.js} +1 -1
  23. package/dist/public/assets/{BugReportHistoryDialog-DHt-VFrA.js → BugReportHistoryDialog-gMqpgd_4.js} +1 -1
  24. package/dist/public/assets/{CodeMirrorPropInput-7DWVEyfk.js → CodeMirrorPropInput-BkPz1S4U.js} +1 -1
  25. package/dist/public/assets/{DocumentContext-BIdKuiG7.js → DocumentContext-uEkPWsfu.js} +1 -1
  26. package/dist/public/assets/{EditorModeToggle-D6QnlYh6.js → EditorModeToggle-BdGWhpIY.js} +1 -1
  27. package/dist/public/assets/{EnableSyncConfirmDialog-AO57yzbd.js → EnableSyncConfirmDialog-BI3oSfND.js} +1 -1
  28. package/dist/public/assets/{ExcalidrawDocEditor-Bam5rV4w.js → ExcalidrawDocEditor-DBz9XgPR.js} +1 -1
  29. package/dist/public/assets/FeedbackForm-jEEgxvE6.js +1 -0
  30. package/dist/public/assets/{GraphPanel-Dx93IooL.js → GraphPanel-fAs0m1k4.js} +1 -1
  31. package/dist/public/assets/{ImportSkillDialog-DW6Z89kM.js → ImportSkillDialog-DoECJCyD.js} +1 -1
  32. package/dist/public/assets/{LintConfigEditor-BeI-xPUE.js → LintConfigEditor-BbQC5XBO.js} +1 -1
  33. package/dist/public/assets/ManagedArtifactProperties-BPM5-upl.js +1 -0
  34. package/dist/public/assets/{ManagedArtifactProperties-BZO9kI8m.js → ManagedArtifactProperties-gZ33ParZ.js} +1 -1
  35. package/dist/public/assets/{MermaidDocEditor-Cd89HPoy.js → MermaidDocEditor-BLuA0Zbi.js} +1 -1
  36. package/dist/public/assets/{PropertyDisplayRow-CG8-hCCj.js → PropertyDisplayRow-CQC5Z0n6.js} +1 -1
  37. package/dist/public/assets/{ReportBugDialogBody-DBA0DIqE.js → ReportBugDialogBody-7G3gDx90.js} +1 -1
  38. package/dist/public/assets/{SchemaConfigEditor-DpFGHtSP.js → SchemaConfigEditor-DJdskJ7F.js} +1 -1
  39. package/dist/public/assets/{SessionsHost-DlaikM-O.js → SessionsHost-zVHqq9cr.js} +2 -2
  40. package/dist/public/assets/SettingsDialogBody-CHR0gEF6.js +12 -0
  41. package/dist/public/assets/ShareBranchSwitchDialog-BVSorWIl.js +1 -0
  42. package/dist/public/assets/{ShareReceiveDialog-8IdsRTvy.js → ShareReceiveDialog-MMs7AIMS.js} +1 -1
  43. package/dist/public/assets/{ShareReceiveMissDialog-Mz-t9oAA.js → ShareReceiveMissDialog-Brs6R8I6.js} +1 -1
  44. package/dist/public/assets/{SkillCostValue-Cku3M1db.js → SkillCostValue-_Y5l2XwJ.js} +1 -1
  45. package/dist/public/assets/{SkillEditBanner-BCy7jpzl.js → SkillEditBanner-D7_vEL-Q.js} +1 -1
  46. package/dist/public/assets/{SkillInstallMenu-BCHCe8z8.js → SkillInstallMenu-B06AbDvI.js} +1 -1
  47. package/dist/public/assets/{SkillOriginInline-C1xgG8JC.js → SkillOriginInline-CPhIPMvZ.js} +1 -1
  48. package/dist/public/assets/{SkillToolbarControls-JpHel_UB.js → SkillToolbarControls-D53zgCnN.js} +1 -1
  49. package/dist/public/assets/{SlidesToolbarControls-BB3yJWH1.js → SlidesToolbarControls-BMDuGCKO.js} +1 -1
  50. package/dist/public/assets/{SourceEditor-DNieshsS.js → SourceEditor--mA47noe.js} +1 -1
  51. package/dist/public/assets/{TerminalPanel-D9R7DZt8.js → TerminalPanel-CyBB22vO.js} +1 -1
  52. package/dist/public/assets/{TerminalWindowApp-BxE3Ym8E.js → TerminalWindowApp-DuCRqNRC.js} +1 -1
  53. package/dist/public/assets/{TextDocEditor-D8XWlX40.js → TextDocEditor-Bll9nONn.js} +1 -1
  54. package/dist/public/assets/{ThreadView-69VZaOlR.js → ThreadView-CZ-jRmGS.js} +1 -1
  55. package/dist/public/assets/{TimelineDiffPane-C3vnfLo5.js → TimelineDiffPane-BQAeLDdZ.js} +1 -1
  56. package/dist/public/assets/{agent-diff-store-BhRxu1mZ.js → agent-diff-store-BqTBnCD3.js} +1 -1
  57. package/dist/public/assets/auth-state-cache-CFoMX9IK.js +11 -0
  58. package/dist/public/assets/{bug-report-send-manager-Bh0TzGvX.js → bug-report-send-manager-BVeLqplu.js} +1 -1
  59. package/dist/public/assets/client-version-D29tmSfy.js +1 -0
  60. package/dist/public/assets/{comment-chips-C2rVq4II.js → comment-chips-vycRkjQG.js} +1 -1
  61. package/dist/public/assets/{config-provider-D-IaOGA6.js → config-provider-Cn54Nsso.js} +3 -3
  62. package/dist/public/assets/{dist-DvxceSuh2.js → dist-D3fPY7nj2.js} +1 -1
  63. package/dist/public/assets/{doc-paths-Ci9V3GJP.js → doc-paths-82OyHgqG.js} +1 -1
  64. package/dist/public/assets/{documents-events-KFNF8M1t.js → documents-events-DuT0NGpP.js} +1 -1
  65. package/dist/public/assets/{file-tree-adapter-BsjkSG-e.js → file-tree-adapter-QHHr7v_y.js} +1 -1
  66. package/dist/public/assets/{file-tree-utils-Ds7HkJwf.js → file-tree-utils-dEjn4DTA.js} +1 -1
  67. package/dist/public/assets/{folder-config-api-BWqau0tQ.js → folder-config-api-CCs-JTL1.js} +1 -1
  68. package/dist/public/assets/globals-CgRBo3fB.css +1 -0
  69. package/dist/public/assets/i18n-CrTwsN89.js +1 -0
  70. package/dist/public/assets/{index-CSzWQRes.js → index-uWwSanPO.js} +8 -8
  71. package/dist/public/assets/{lint-config-client-Dv_IZf02.js → lint-config-client-sUKnaDfE.js} +1 -1
  72. package/dist/public/assets/{markdownlint-rule-browser-B8m3JJ8Y.js → markdownlint-rule-browser-DoSn8IJz.js} +1 -1
  73. package/dist/public/assets/messages-B8yzAqdX.js +1 -0
  74. package/dist/public/assets/messages-B_leGMuj.js +1 -0
  75. package/dist/public/assets/messages-BjsESsFx.js +1 -0
  76. package/dist/public/assets/messages-CgRQxqOr.js +1 -0
  77. package/dist/public/assets/messages-ClYIPasG.js +1 -0
  78. package/dist/public/assets/messages-DKj1XaXP.js +1 -0
  79. package/dist/public/assets/messages-DoiuiDAc.js +1 -0
  80. package/dist/public/assets/messages-WY-HJ7CG.js +1 -0
  81. package/dist/public/assets/messages-XTC09BUs.js +1 -0
  82. package/dist/public/assets/messages-rsgDLMpR.js +1 -0
  83. package/dist/public/assets/messages-rvWZA8Dv.js +1 -0
  84. package/dist/public/assets/messages-su76b0h7.js +1 -0
  85. package/dist/public/assets/{page-list-cache-DeM2R6LV.js → page-list-cache-SxA5m5if.js} +1 -1
  86. package/dist/public/assets/{pending-receive-nav-store-BVpMc8JM.js → pending-receive-nav-store-DY4RHmGg.js} +1 -1
  87. package/dist/public/assets/{progress-BA2juWmV.js → progress-Cfh7jhIR.js} +1 -1
  88. package/dist/public/assets/{prop-types-CCaA1wTK.js → prop-types-CPMCR1bB.js} +1 -1
  89. package/dist/public/assets/{receive-store-8SCgMS8t.js → receive-store-DXkS-6fp.js} +1 -1
  90. package/dist/public/assets/{selection-context-zszi1QFC.js → selection-context-C2jhGMgO.js} +1 -1
  91. package/dist/public/assets/{skill-scope-BuVzIUXk.js → skill-scope-CSgNqFEM.js} +1 -1
  92. package/dist/public/assets/{skills-api-Dep6MiKT.js → skills-api-Bk-f3oIn.js} +1 -1
  93. package/dist/public/assets/{src-BSLRefUx.js → src-COmrouI5.js} +1 -1
  94. package/dist/public/assets/{tag-pill-input-CQS5NOhF.js → tag-pill-input-vXWkMHt_.js} +1 -1
  95. package/dist/public/assets/{target-navigation-intent-pKpCjs2S.js → target-navigation-intent-B6pF65mo.js} +1 -1
  96. package/dist/public/assets/{telemetry-impl-Cj_q40Ol.js → telemetry-impl-DKudPu9V.js} +1 -1
  97. package/dist/public/assets/{telemetry-startup-DPx9iYCc.js → telemetry-startup-wvejDKve.js} +1 -1
  98. package/dist/public/assets/{terminal-cli-display-HlY8wnKB.js → terminal-cli-display-D8ya3OyM.js} +1 -1
  99. package/dist/public/assets/{terminal-launch-events-DF6gr1Aw.js → terminal-launch-events-CEw1ZoL3.js} +1 -1
  100. package/dist/public/assets/{terminal-telemetry-DIQemiSP.js → terminal-telemetry-BkPbxfR9.js} +1 -1
  101. package/dist/public/assets/{typing-burst-detector-DIEPcqLu.js → typing-burst-detector-D8opQPVA.js} +1 -1
  102. package/dist/public/assets/{uninstall-hrTOWrpH.js → uninstall-D6ZjikLo.js} +1 -1
  103. package/dist/public/assets/{use-activity-panel-DmQb6ftt.js → use-activity-panel-Cob7wbER.js} +1 -1
  104. package/dist/public/assets/{use-apply-config-color-theme-CgQvQTC8.js → use-apply-config-color-theme-Chbv5kIz.js} +1 -1
  105. package/dist/public/assets/{use-collab-url-D-KUuG97.js → use-collab-url-CLES09HL.js} +1 -1
  106. package/dist/public/assets/{use-live-xterm-theme-9u7r8aAP.js → use-live-xterm-theme-BeGlZWUx.js} +1 -1
  107. package/dist/public/assets/{use-open-skill-DPLvxchh.js → use-open-skill-DggswBlG.js} +1 -1
  108. package/dist/public/assets/{use-settings-route-DVQFDRof.js → use-settings-route-1RDLdzh1.js} +1 -1
  109. package/dist/public/assets/{use-skill-origin-R1sRvauo.js → use-skill-origin-BPSEVtzI.js} +1 -1
  110. package/dist/public/assets/{use-skills-DAq8jAZe.js → use-skills-X0D5g-_u.js} +1 -1
  111. package/dist/public/assets/{use-terminal-enabled-Dr8J6UFC.js → use-terminal-enabled-FDOP0Dht.js} +1 -1
  112. package/dist/public/assets/{use-timeline-entry-diff--6rU6lJA.js → use-timeline-entry-diff-CDYxwT8Z.js} +1 -1
  113. package/dist/public/assets/{use-workspace-CmQoGWbG.js → use-workspace-BuKQ4WE6.js} +1 -1
  114. package/dist/public/index.html +48 -48
  115. package/dist/public/uninstall.html +6 -6
  116. package/dist/{repair-launch-json-CuGClx3V.mjs → repair-launch-json-DAAbCvvm.mjs} +2 -2
  117. package/dist/{repair-mcp-configs-BLjx-rrv.mjs → repair-mcp-configs-BN-aQmcz.mjs} +2 -2
  118. package/dist/repair-skills-DnJVC8BQ.mjs +1 -0
  119. package/dist/{repair-skills-Dem7BC1X.mjs → repair-skills-Dye90u_k.mjs} +2 -2
  120. package/dist/{resolve-project-root-D42xTuDS.mjs → resolve-project-root-Bc1ADd86.mjs} +3 -3
  121. package/dist/server-lock-0Z4DgFB6.mjs +1 -0
  122. package/dist/{server-lock-DgBmHnv3.mjs → server-lock-DmHwX0B4.mjs} +2 -2
  123. package/dist/{skill-teardown-R_4ZT4ie.mjs → skill-teardown-D6lPMY6n.mjs} +2 -2
  124. package/dist/{src-CWk71iRz.mjs → src-BOzh5nAU.mjs} +127 -127
  125. package/dist/{src-B51qQNNF.mjs → src-BqTdx7nf.mjs} +395 -394
  126. package/dist/src-CEwAgAUS.mjs +1 -0
  127. package/dist/src-CzJVDa-w.mjs +1 -0
  128. package/dist/src-DYGvbcXO.mjs +20 -0
  129. package/dist/start-CXzNBszs.mjs +5 -0
  130. package/dist/start-DCYQqoBl.mjs +1 -0
  131. package/package.json +5 -5
  132. package/dist/acp-harness-probe-BJlYDk3f.mjs +0 -6
  133. package/dist/constants-mSr6wUwB.mjs +0 -2
  134. package/dist/git-handle-Bzo9zPMA.mjs +0 -1
  135. package/dist/init-CHjsSRDX.mjs +0 -1
  136. package/dist/loader-DpcqK3Ja.mjs +0 -1
  137. package/dist/md-manager-BmiopEw3.mjs +0 -2
  138. package/dist/preview-BS5kzZtr.mjs +0 -1
  139. package/dist/public/assets/FeedbackForm-CdHrYizt.js +0 -1
  140. package/dist/public/assets/ManagedArtifactProperties-B5LwwYXJ.js +0 -1
  141. package/dist/public/assets/SettingsDialogBody-De-5QcmZ.js +0 -12
  142. package/dist/public/assets/ShareBranchSwitchDialog-7Edp8Hzf.js +0 -1
  143. package/dist/public/assets/auth-state-cache-DBv0mprN.js +0 -11
  144. package/dist/public/assets/client-version-Qo8hmlER.js +0 -1
  145. package/dist/public/assets/globals-CicL60No.css +0 -1
  146. package/dist/public/assets/i18n-k3aI0GNV.js +0 -1
  147. package/dist/public/assets/messages-B0BMmqnn.js +0 -1
  148. package/dist/public/assets/messages-B5c6YyNP.js +0 -1
  149. package/dist/public/assets/messages-BzE-c_Uj.js +0 -1
  150. package/dist/public/assets/messages-CNojGJ24.js +0 -1
  151. package/dist/public/assets/messages-CPhl6p5K.js +0 -1
  152. package/dist/public/assets/messages-CUIoZBqe.js +0 -1
  153. package/dist/public/assets/messages-Cw1qxDcG.js +0 -1
  154. package/dist/public/assets/messages-D2PtImxe.js +0 -1
  155. package/dist/public/assets/messages-DEYBrYWV.js +0 -1
  156. package/dist/public/assets/messages-DPi-3ors.js +0 -1
  157. package/dist/public/assets/messages-FV0LJygj.js +0 -1
  158. package/dist/public/assets/messages-bf96uLMn.js +0 -1
  159. package/dist/repair-skills-T5QwtV-L.mjs +0 -1
  160. package/dist/server-lock-BIFxlKM5.mjs +0 -1
  161. package/dist/src-0PkIjmrm.mjs +0 -20
  162. package/dist/src-C7zPHrjN.mjs +0 -1
  163. package/dist/src-DYP_-J_-.mjs +0 -1
  164. package/dist/start-BFWqfEiC.mjs +0 -1
  165. package/dist/start-CMhe7yh7.mjs +0 -5
  166. /package/dist/public/assets/{globals-BuKzWnho.js → globals-4Lwslben.js} +0 -0
@@ -0,0 +1,7 @@
1
+ import{pt as e}from"./sleep-D4NlDISj.mjs";import{Ri as t}from"./src-BqTdx7nf.mjs";import{F as n,M as r,N as i}from"./fs-traced-Dm4NQ6S5.mjs";import{b as a,g as o,m as s,p as c,s as l}from"./resolve-project-root-Bc1ADd86.mjs";import{S as ee,T as u,d as te,o as d,v as f,x as ne}from"./init-CFBWWVL6.mjs";import{t as p}from"./is-object-Bw0-z8qH.mjs";import{execFileSync as m,spawn as h}from"node:child_process";import{basename as re,dirname as g,join as _,resolve as ie,win32 as v}from"node:path";import{existsSync as y,mkdirSync as b,readFileSync as x,readdirSync as ae,statSync as oe,writeFileSync as se}from"node:fs";import{homedir as S}from"node:os";var C=e();const w=`open-knowledge`;function T(e){try{e()}catch{}}var E=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(w,e).getPassword()}catch(t){return T(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return T(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return T(()=>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(w,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(w,e).deletePassword()}catch{}}},D=class{backend=`file`;authFile;constructor(e){this.authFile=e??_(S(),`.ok`,`auth.yml`)}read(){if(!y(this.authFile))return{};try{return(0,C.parse)(x(this.authFile,`utf-8`))??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=g(this.authFile);y(t)||b(t,{recursive:!0,mode:448}),se(this.authFile,(0,C.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)}},ce=class{backend=`keyring`;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 O(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(w,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
2
+ `),T(()=>t?.onBackendSelected?.({backend:`keyring`})),new ce(new E(t?.onKeychainRead),new D(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`),T(()=>t?.onBackendSelected?.({backend:`file`,reason:r})),new D(e)}}function k(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 D(e))},n)});try{return await Promise.race([O(e),r])}catch{return new D(e)}finally{t!==null&&clearTimeout(t)}})(),t}}function le(e){let t=k(e);return{async get(e){let n=await(await t()).get(e);return n===null?null:{token:n.token,login:n.login}}}}function ue(e){let t=k(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 de(e,t){let n=[],r=new D(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(w,`__probe__`);let r,a=await new E(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(w,e).deletePassword(),n.push(`keychain`)}catch(e){i=e instanceof Error?e.name:`delete-error`}}catch{}return{touched:n,keychainError:i}}const fe=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],A={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function j(e,t={}){let{login:n}=t,r=t._exec??m,i=M(t._fileExists??y),a=e?[`--hostname`,e]:[];if(n){let e=N(r,i,[`auth`,`token`,...a,`--user`,n]);if(e)return{available:!0,token:e,resolvedLogin:n,fallback:!1}}let o=N(r,i,[`auth`,`token`,...a]);return o?n?{available:!0,token:o,fallback:!0}:{available:!0,token:o}:{available:!1}}function M(e){return[`gh`,...fe.filter(e)]}function N(e,t,n){for(let r of t)try{let t=e(r,n,A).toString().trim();if(t.length>0)return t}catch{}}function P(e,t={}){let n=t._exec??m,r=M(t._fileExists??y),i=[`auth`,`status`,...e?[`--hostname`,e]:[]],a=N(n,r,[...i,`--json`,`hosts`]);if(a!==void 0){let t=I(a,e);if(t)return t}let o=N(n,r,i);if(o!==void 0){let e=V(o);if(e.length>0)return e}}function F(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function I(e,t){let n;try{n=JSON.parse(e)}catch{return}let r=F(F(n)?.hosts);if(!r||t!==void 0&&r[t]===void 0)return;let i=t===void 0?Object.values(r):[r[t]],a=[];for(let e of i){if(!Array.isArray(e))return;for(let t of e){let e=F(t);if(!e)continue;let n=e.login;typeof n!=`string`||n.length===0||a.push({login:n,active:e.active===!0})}}return a}const L=/Logged in to \S+ account (\S+) \(/,R=/(?:Failed to log in to|Timeout trying to log in to) \S+/,z=/^\s*-\s*Active account:\s*true\s*$/,B=/\u001b\[[0-9;]*m/g;function V(e){let t=[],n;for(let r of e.split(`
3
+ `)){let e=r.replace(B,``),i=L.exec(e)?.[1];if(i){n={login:i,active:!1},t.push(n);continue}if(R.test(e)){n=void 0;continue}n&&z.test(e)&&(n.active=!0)}return t}function pe(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function H(e){let t=e?.code;return t===`ENOENT`||t===`EACCES`||t===`EPERM`?{ok:!1,reason:`not-installed`}:{ok:!1,reason:`spawn-error`}}function U(e){return t({detached:!0,stdio:`ignore`,shell:!1,env:pe(e)})}function W(e,t,n={}){let r=(n.spawn??h)(e,[...t],U(n.env??process.env));return r.unref(),r}function me(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],U(n.env??process.env));i.once(`error`,e=>{clearTimeout(c),s(H(e))}),i.once(`spawn`,()=>{clearTimeout(c),s({ok:!0})});try{i.unref()}catch{}}catch(e){clearTimeout(c),s(H(e))}})}const G=`com.inkeep.open-knowledge`,K=`OpenKnowledge.app`,q=`/Applications/${K}`;function he(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return oe(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function ge(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(J(e,q))return q;let t=_(e.homeDir??S(),`Applications`,K);return J(e,t)?t:null}function J(e,t){return Y(e,_(t,`Contents`,`MacOS`,`OpenKnowledge`))}function Y(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const _e=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function ve(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 _e){let r=v.join(t,`Programs`,n,`OpenKnowledge.exe`);if(Y(e,r))return r}return null}function ye(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return Y(e,t)?t:null}function be(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`?ge(e):e.platform===`win32`?ve(e):ye(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 xe(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`){W(`open`,[`-b`,G],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}W(i,[],{spawn:e.spawn})}function Se(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=ie(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=x(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 p(r)?{state:r[t]===!0?`trusted`:`untrusted`,entries:r,trailingNewline:n.endsWith(`
4
+ `)}:{state:`unreadable`,entries:null,trailingNewline:!1}}function Ce(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=re(e);try{return{names:ae(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 we(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=ne(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 Te(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 Te(e,t){try{b(g(e),{recursive:!0})}catch(e){return{action:`failed`,error:e instanceof Error?e.message:String(e)}}let i={action:`added`};try{await r(`${e}.lock`,async()=>{let r=Q(e,t);if(r.state===`trusted`){i.action=`already-trusted`;return}if(r.entries===null){i.action=`refused-unreadable`;return}let a={...r.entries,[t]:!0},o=JSON.stringify(a,null,2)+(r.trailingNewline?`
5
+ `:``),s=u(e);n(e,o,s===void 0?void 0:{mode:s}),i.action=`added`})}catch(e){return{action:`failed`,error:e instanceof Error?e.message:String(e)}}return i.action===`refused-unreadable`?{action:`refused-unreadable`,error:`trust store is not a readable JSON object`}:{action:i.action}}function Ee(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(!y(r.trustPath))return{action:`not-present`};let o={action:`removed`};try{i(`${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 i=JSON.stringify(t,null,2)+(e.trailingNewline?`
6
+ `:``),a=u(r.trustPath);n(r.trustPath,i,a===void 0?void 0:{mode:a}),o.action=`removed`})}catch(e){return{action:`failed`,error:e instanceof Error?e.message:String(e)}}return o.action===`refused-unreadable`?{action:`refused-unreadable`,error:`trust store is not a readable JSON object`}:{action:o.action}}function De(e){return e===`opencode`?o:c}function Oe(e,t,n){let r=l[e],i=De(e),a=[],o=r.projectConfigPath?.(t);o!==void 0&&a.push({scope:`project`,configPath:o});try{a.push({scope:`user`,configPath:r.configPath(t,n)})}catch{}for(let o of a){let a=te(r,t,n,o.configPath);if(a!==null&&i(a))return{editorId:e,scope:o.scope,configPath:o.configPath}}return null}export{ue as _,G as a,xe as c,me as d,j as f,le as g,O as h,Ee as i,Se as l,de as m,we as n,he as o,P as p,Ce as r,be as s,Oe as t,W as u};
7
+ //# sourceMappingURL=acp-harness-probe-BLxtOeJP.mjs.map