@inkeep/open-knowledge 0.64.0-beta.0 → 0.64.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.
Files changed (174) hide show
  1. package/dist/{acp-harness-probe-Dfn4DdCk.mjs → acp-harness-probe-DapYSp7w.mjs} +2 -2
  2. package/dist/cli.mjs +51 -51
  3. package/dist/constants-Cj0FR_KM.mjs +2 -0
  4. package/dist/{git-handle-3QlrPfzF.mjs → git-handle-29BNYqgw.mjs} +2 -2
  5. package/dist/git-handle-DfQBBy3_.mjs +1 -0
  6. package/dist/index.mjs +105 -105
  7. package/dist/{init-BcrcnD3R.mjs → init-BCMkmiKf.mjs} +5 -5
  8. package/dist/init-C-493OBd.mjs +1 -0
  9. package/dist/{launch-json-removal-B3kM3m3f.mjs → launch-json-removal-OEAESJl0.mjs} +2 -2
  10. package/dist/{loader-BwwPkGMH.mjs → loader-BwvYADno.mjs} +2 -2
  11. package/dist/loader-DZcRiYxn.mjs +1 -0
  12. package/dist/md-manager-CZcRasmz.mjs +2 -0
  13. package/dist/{open-browser-W5CxYsJ4.mjs → open-browser-aU_PSdrG.mjs} +2 -2
  14. package/dist/parse-worker.mjs +1 -1
  15. package/dist/preview-9wNQ396F.mjs +1 -0
  16. package/dist/{preview-JbKzJSop.mjs → preview-B3liLPDI.mjs} +2 -2
  17. package/dist/public/assets/{ActivityModeContent-BVDRGbN_.js → ActivityModeContent-rGNWFHTn.js} +1 -1
  18. package/dist/public/assets/{AddPropertiesButton-7dCoyBvE.js → AddPropertiesButton-2JRBAQEf.js} +1 -1
  19. package/dist/public/assets/{AgentDiffPane-Fcqpkkvc.js → AgentDiffPane-DaORQqpS.js} +1 -1
  20. package/dist/public/assets/{AgentThreadClientBinder-ZfgVB5_1.js → AgentThreadClientBinder-CJYGMIr6.js} +1 -1
  21. package/dist/public/assets/{BugReportHistory-DihyFd3f.js → BugReportHistory-Cuh__mug.js} +1 -1
  22. package/dist/public/assets/{BugReportHistoryDialog-CSNrPEOi.js → BugReportHistoryDialog-C_9BqWro.js} +1 -1
  23. package/dist/public/assets/{CodeMirrorPropInput-CZg3NpYe.js → CodeMirrorPropInput-B8JfraRG.js} +1 -1
  24. package/dist/public/assets/{ConsentDialogBody-DQ8IUXhF.js → ConsentDialogBody-CK9RceLc.js} +1 -1
  25. package/dist/public/assets/{DocumentContext-CpeWitiW.js → DocumentContext-DyBKMWUQ.js} +1 -1
  26. package/dist/public/assets/{EditorModeToggle-kVdR62fb.js → EditorModeToggle-CTMAAr-X.js} +1 -1
  27. package/dist/public/assets/{EnableSyncConfirmDialog-vDAKs3w2.js → EnableSyncConfirmDialog-D80Aucr3.js} +1 -1
  28. package/dist/public/assets/{ExcalidrawDocEditor-Bt_Sc1ig.js → ExcalidrawDocEditor-CMeQn_u0.js} +1 -1
  29. package/dist/public/assets/FeedbackForm-SUXnCd9B.js +1 -0
  30. package/dist/public/assets/{GraphPanel-DHmyVvBK.js → GraphPanel-CnxzWV5D.js} +1 -1
  31. package/dist/public/assets/{ImportSkillDialog-CspiU9oF.js → ImportSkillDialog-DUdFUw6e.js} +1 -1
  32. package/dist/public/assets/{LintConfigEditor-D4Lyz3en.js → LintConfigEditor-BC8TYjz-.js} +1 -1
  33. package/dist/public/assets/{ManagedArtifactProperties-DOw_G7X-.js → ManagedArtifactProperties-Cr21JXmD.js} +1 -1
  34. package/dist/public/assets/ManagedArtifactProperties-DVT7r-wR.js +1 -0
  35. package/dist/public/assets/{MermaidDocEditor-C0wc8LzX.js → MermaidDocEditor-CCEt4Opw.js} +1 -1
  36. package/dist/public/assets/{PropertyDisplayRow-wkm3Dp2m.js → PropertyDisplayRow-CTVCclTK.js} +2 -2
  37. package/dist/public/assets/{ReportBugDialogBody-C1oy3fl2.js → ReportBugDialogBody-VIeqRFre.js} +1 -1
  38. package/dist/public/assets/{SchemaConfigEditor-D9rcrwmV.js → SchemaConfigEditor-UcCzcUIa.js} +1 -1
  39. package/dist/public/assets/SessionsHost-gxeaEpjc.js +2 -0
  40. package/dist/public/assets/{SettingsDialogBody-CteLfmRG.js → SettingsDialogBody-CxoXcrrW.js} +1 -1
  41. package/dist/public/assets/{ShareBranchSwitchDialog-BPCd6Quz.js → ShareBranchSwitchDialog-Cee3pwDa.js} +1 -1
  42. package/dist/public/assets/{ShareReceiveDialog-CoAGSmZ4.js → ShareReceiveDialog-blTr_HPx.js} +1 -1
  43. package/dist/public/assets/{ShareReceiveMissDialog-D1sjGAKG.js → ShareReceiveMissDialog-DJ9DvFJq.js} +1 -1
  44. package/dist/public/assets/{SkillCostValue-DgVDZJg4.js → SkillCostValue-DEly99Yk.js} +1 -1
  45. package/dist/public/assets/{SkillEditBanner-lLVIBnoB.js → SkillEditBanner-bd1zvQfx.js} +1 -1
  46. package/dist/public/assets/{SkillInstallMenu-BYR9N4q6.js → SkillInstallMenu-sneUc7PA.js} +1 -1
  47. package/dist/public/assets/{SkillOriginInline-TGIhdkZT.js → SkillOriginInline-BQIo2jSh.js} +1 -1
  48. package/dist/public/assets/{SkillToolbarControls-DJM37Tzc.js → SkillToolbarControls-A3BqTaVC.js} +1 -1
  49. package/dist/public/assets/{SlidesToolbarControls-CaS6tQ5s.js → SlidesToolbarControls-DpcrHeKz.js} +1 -1
  50. package/dist/public/assets/{SourceEditor-DfCkS8Fs.js → SourceEditor-yCp7AOuC.js} +1 -1
  51. package/dist/public/assets/{TerminalPanel-B9EgBHqz.js → TerminalPanel-DitPHk-i.js} +37 -37
  52. package/dist/public/assets/TerminalStartingNotice-7XmsKQfW.js +1 -0
  53. package/dist/public/assets/{TerminalWindowApp-t4MYEnaS.js → TerminalWindowApp-CEMvQfmt.js} +1 -1
  54. package/dist/public/assets/{TextDocEditor-CWU6LK-8.js → TextDocEditor-Ckd918Mb.js} +1 -1
  55. package/dist/public/assets/{ThreadView-DvUL6MIe.js → ThreadView-DGR1KByM.js} +3 -3
  56. package/dist/public/assets/{TimelineDiffPane-CF5MGNaw.js → TimelineDiffPane-CpgSHJGN.js} +1 -1
  57. package/dist/public/assets/{agent-diff-store-DFJS7b5r.js → agent-diff-store-DzZwPUH2.js} +1 -1
  58. package/dist/public/assets/{auth-state-cache-CjWyvr0L.js → auth-state-cache-CEf8XB-q.js} +1 -1
  59. package/dist/public/assets/{bug-report-send-manager-Buxf0r5c.js → bug-report-send-manager-D19JO93p.js} +1 -1
  60. package/dist/public/assets/{chunk-BO2N2NFS-BVKS5mdX.js → chunk-BO2N2NFS-aa_rQr8f.js} +31 -31
  61. package/dist/public/assets/client-version-ow2B_U-6.js +1 -0
  62. package/dist/public/assets/{comment-chips-M-vXJPiy.js → comment-chips-C076-HNt.js} +1 -1
  63. package/dist/public/assets/{config-provider-Bavv18lD.js → config-provider-JYp7fF6x.js} +3 -3
  64. package/dist/public/assets/{dist-DSS3ixln2.js → dist-CWxNQtC52.js} +41 -41
  65. package/dist/public/assets/{doc-paths-oMq41Y7d.js → doc-paths-DgbGdxZ1.js} +1 -1
  66. package/dist/public/assets/{documents-events-DCcMe0wm.js → documents-events-DViu97ho.js} +1 -1
  67. package/dist/public/assets/{file-tree-adapter-X5fV07Z_.js → file-tree-adapter-B2J82X4l.js} +1 -1
  68. package/dist/public/assets/{file-tree-utils-DL6Pvgvd.js → file-tree-utils-MiagXf7l.js} +1 -1
  69. package/dist/public/assets/{folder-config-api-Ca2OxXT-.js → folder-config-api-CNXuE5zD.js} +1 -1
  70. package/dist/public/assets/globals-DMaCiviB.css +1 -0
  71. package/dist/public/assets/{highlighted-body-OFNGDK62-R5erL3S3.js → highlighted-body-OFNGDK62-eLakIx_-.js} +1 -1
  72. package/dist/public/assets/i18n-CqDKlhNm.js +1 -0
  73. package/dist/public/assets/{index-B0xoBPyb.js → index-CVIfHBfN.js} +18 -18
  74. package/dist/public/assets/lib-DH_OjOEF.js +29 -0
  75. package/dist/public/assets/{lint-config-client-CumTSl-t.js → lint-config-client-RzlDcfLl.js} +1 -1
  76. package/dist/public/assets/{markdownlint-rule-browser-BYdFk19L.js → markdownlint-rule-browser-Bmk3lsoP.js} +1 -1
  77. package/dist/public/assets/mermaid-GHXKKRXX-ChsT7WMf.js +1 -0
  78. package/dist/public/assets/messages-10f1hPWP.js +1 -0
  79. package/dist/public/assets/messages-5TeeUeS0.js +1 -0
  80. package/dist/public/assets/messages-8WTqq3Mp.js +1 -0
  81. package/dist/public/assets/messages-BRgdD2wL.js +1 -0
  82. package/dist/public/assets/messages-Bbr1HKxw.js +1 -0
  83. package/dist/public/assets/messages-Bo2D8MSU.js +1 -0
  84. package/dist/public/assets/messages-BoTpi3Tc.js +1 -0
  85. package/dist/public/assets/messages-CCrzx-Sh.js +1 -0
  86. package/dist/public/assets/messages-CxY3xIzN.js +1 -0
  87. package/dist/public/assets/messages-DpV3A7jU.js +1 -0
  88. package/dist/public/assets/messages-DyWXi2qN.js +1 -0
  89. package/dist/public/assets/messages-ZkMy8GOy.js +1 -0
  90. package/dist/public/assets/{page-list-cache-NegxJAbd.js → page-list-cache-CEyxAohw.js} +1 -1
  91. package/dist/public/assets/{pending-receive-nav-store-CqRn5nAG.js → pending-receive-nav-store-CTqjXsBl.js} +1 -1
  92. package/dist/public/assets/{progress-DANvCJmk.js → progress-OoUVKpXn.js} +1 -1
  93. package/dist/public/assets/{project-paths-C-SkuTbI.js → project-paths-BdGjLtxT.js} +1 -1
  94. package/dist/public/assets/{prop-types-nOgQFiCi.js → prop-types-CU7HQl68.js} +1 -1
  95. package/dist/public/assets/{receive-store-D9Px8yTN.js → receive-store-CJtiTNp3.js} +1 -1
  96. package/dist/public/assets/{selection-context-BVomF0mV.js → selection-context-DR7ab7yE.js} +1 -1
  97. package/dist/public/assets/{skill-scope-DWsJ838z.js → skill-scope-BAozv3yS.js} +1 -1
  98. package/dist/public/assets/{skills-api-BLXzXEC-.js → skills-api-DY2ILAVx.js} +1 -1
  99. package/dist/public/assets/{src-Dpmb3U7E.js → src-CGTpf8aj.js} +1 -1
  100. package/dist/public/assets/{tag-pill-input-DwIQ-TmP.js → tag-pill-input-llQtM5Z_.js} +1 -1
  101. package/dist/public/assets/{target-navigation-intent-CJUCqJBv.js → target-navigation-intent-HQou_X-w.js} +1 -1
  102. package/dist/public/assets/{telemetry-impl-DLHtoY00.js → telemetry-impl-BIepj08G.js} +2 -2
  103. package/dist/public/assets/{telemetry-startup-D2bGuqRD.js → telemetry-startup-B7OSl-z5.js} +1 -1
  104. package/dist/public/assets/{terminal-cli-display-C-s_gqLX.js → terminal-cli-display-DTFiZBBc.js} +1 -1
  105. package/dist/public/assets/terminal-launch-events-Bfi4m2vK.js +1 -0
  106. package/dist/public/assets/{terminal-telemetry-B16z13Uq.js → terminal-telemetry-CboX_HNN.js} +1 -1
  107. package/dist/public/assets/{typing-burst-detector-DlSk3HmB.js → typing-burst-detector-C4y2fKpb.js} +1 -1
  108. package/dist/public/assets/{uninstall-B_ye2J4j.js → uninstall-Bf9OgFpb.js} +1 -1
  109. package/dist/public/assets/{use-activity-panel-yR4XBbM0.js → use-activity-panel-D_OG3gXD.js} +1 -1
  110. package/dist/public/assets/{use-apply-config-color-theme-BEWFuTWv.js → use-apply-config-color-theme-H1zX9cBU.js} +1 -1
  111. package/dist/public/assets/{use-collab-url-CwkAA1lj.js → use-collab-url-Dk-3M_go.js} +1 -1
  112. package/dist/public/assets/{use-live-xterm-theme-C2sLeh-e.js → use-live-xterm-theme-ChdQbgac.js} +1 -1
  113. package/dist/public/assets/{use-open-skill-BOlvJ9db.js → use-open-skill-BeZcrVWu.js} +1 -1
  114. package/dist/public/assets/{use-settings-route-DOVNFDSn.js → use-settings-route-CHUO6Vb3.js} +1 -1
  115. package/dist/public/assets/{use-skill-origin-Cyn5juIp.js → use-skill-origin-CLzO6XeG.js} +1 -1
  116. package/dist/public/assets/{use-skills-szHEgJLb.js → use-skills-B1r84pEp.js} +1 -1
  117. package/dist/public/assets/{use-terminal-enabled-DTcNcDac.js → use-terminal-enabled-BCESHfrF.js} +1 -1
  118. package/dist/public/assets/{use-timeline-entry-diff-D79rgyyp.js → use-timeline-entry-diff-Bs-prtib.js} +1 -1
  119. package/dist/public/assets/{use-workspace-DriKk3ci.js → use-workspace-DigIBtSV.js} +1 -1
  120. package/dist/public/index.html +50 -50
  121. package/dist/public/uninstall.html +7 -7
  122. package/dist/{repair-launch-json-COgJwsBT.mjs → repair-launch-json-I3IwXFMq.mjs} +2 -2
  123. package/dist/{repair-mcp-configs-DYDyOGXO.mjs → repair-mcp-configs-B127iF24.mjs} +2 -2
  124. package/dist/repair-skills-BABpOhB_.mjs +1 -0
  125. package/dist/{repair-skills-DquHsHSZ.mjs → repair-skills-CRG-r1Xh.mjs} +2 -2
  126. package/dist/{resolve-project-root-TgFFxl73.mjs → resolve-project-root-urAKqvDX.mjs} +4 -4
  127. package/dist/server-lock-C_5VGPQF.mjs +1 -0
  128. package/dist/{server-lock-DW446_ti.mjs → server-lock-_JWkU2Mh.mjs} +2 -2
  129. package/dist/{skill-teardown-DLbNuqvC.mjs → skill-teardown-CVMrfSeZ.mjs} +2 -2
  130. package/dist/{src-nJP2O0vw.mjs → src-BRlSw7bk.mjs} +1 -1
  131. package/dist/src-CVSYGTsF.mjs +1 -0
  132. package/dist/src-CjFV1e1Z.mjs +2039 -0
  133. package/dist/{src-Cjs2mjwW.mjs → src-DhKkOAcb.mjs} +128 -128
  134. package/dist/{src-D_KoKQ_4.mjs → src-NzbRogF8.mjs} +4 -4
  135. package/dist/{start-CDpy3ivM.mjs → start-BAzV9sqe.mjs} +3 -3
  136. package/dist/start-C47k5p1a.mjs +1 -0
  137. package/package.json +4 -4
  138. package/dist/constants-BU4eKKFx.mjs +0 -2
  139. package/dist/git-handle-ACPhpYTy.mjs +0 -1
  140. package/dist/init-DxGZlS0A.mjs +0 -1
  141. package/dist/loader-B4icgd7A.mjs +0 -1
  142. package/dist/md-manager-CTy1swXK.mjs +0 -2
  143. package/dist/preview-S3f8BiEi.mjs +0 -1
  144. package/dist/public/assets/FeedbackForm-DbHLRCGV.js +0 -1
  145. package/dist/public/assets/ManagedArtifactProperties-wSMmw4k7.js +0 -1
  146. package/dist/public/assets/SessionsHost-D8_fdp2Z.js +0 -2
  147. package/dist/public/assets/client-version-B9jWAX8Y.js +0 -1
  148. package/dist/public/assets/globals-Df7vQ3KZ.css +0 -1
  149. package/dist/public/assets/i18n-BAClLrqy.js +0 -1
  150. package/dist/public/assets/lib-CQqy20Z3.js +0 -29
  151. package/dist/public/assets/mermaid-GHXKKRXX-D2pBG5L4.js +0 -1
  152. package/dist/public/assets/messages-BCzdglIs.js +0 -1
  153. package/dist/public/assets/messages-BNXhZIvP.js +0 -1
  154. package/dist/public/assets/messages-BTOATtFo.js +0 -1
  155. package/dist/public/assets/messages-CEAIJ2vr.js +0 -1
  156. package/dist/public/assets/messages-CP6EucXo.js +0 -1
  157. package/dist/public/assets/messages-CZYMn827.js +0 -1
  158. package/dist/public/assets/messages-DSiLvtAQ.js +0 -1
  159. package/dist/public/assets/messages-DeCaehhs.js +0 -1
  160. package/dist/public/assets/messages-Ds6A6ql_.js +0 -1
  161. package/dist/public/assets/messages-LQQZNjF5.js +0 -1
  162. package/dist/public/assets/messages-hYFi4d1C.js +0 -1
  163. package/dist/public/assets/messages-natrutgz.js +0 -1
  164. package/dist/public/assets/terminal-launch-events-vGjuKPQL.js +0 -1
  165. package/dist/repair-skills-CiWDpMXb.mjs +0 -1
  166. package/dist/server-lock-CKYMJfzI.mjs +0 -1
  167. package/dist/src-2igu-66q.mjs +0 -2039
  168. package/dist/src-CbNsCrxc.mjs +0 -1
  169. package/dist/start-Baqd7RHG.mjs +0 -1
  170. /package/dist/public/assets/{__vite-browser-external-BpzCr_ou.js → __vite-browser-external-Ci1NQTFf.js} +0 -0
  171. /package/dist/public/assets/{calendar-Dl_OvZ6j.js → calendar-C9Zcn0Ol.js} +0 -0
  172. /package/dist/public/assets/{code-highlighter-impl-CqBvFNiv.js → code-highlighter-impl-Cd7bLu8y.js} +0 -0
  173. /package/dist/public/assets/{globals-CTP2Nuyu.js → globals-BFYzJ2RB.js} +0 -0
  174. /package/dist/public/assets/{share-metadata-rows-CSTN28dW.js → share-metadata-rows-JAHDqWDY.js} +0 -0
@@ -1,7 +1,7 @@
1
- import{yt as e}from"./sleep-DyLEGHvt.mjs";import{Bi as t}from"./src-2igu-66q.mjs";import{I as n,N as r,P as i}from"./fs-traced-C5oeVBiQ.mjs";import{b as a,g as o,m as s,p as c,s as l}from"./resolve-project-root-TgFFxl73.mjs";import{S as ee,T as u,d as te,o as d,v as f,x as ne}from"./init-BcrcnD3R.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
1
+ import{yt as e}from"./sleep-DyLEGHvt.mjs";import{Bi as t}from"./src-CjFV1e1Z.mjs";import{I as n,N as r,P as i}from"./fs-traced-C5oeVBiQ.mjs";import{b as a,g as o,m as s,p as c,s as l}from"./resolve-project-root-urAKqvDX.mjs";import{S as ee,T as u,d as te,o as d,v as f,x as ne}from"./init-BCMkmiKf.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
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
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
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
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
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-Dfn4DdCk.mjs.map
7
+ //# sourceMappingURL=acp-harness-probe-DapYSp7w.mjs.map