@inkeep/open-knowledge 0.39.0-beta.9 → 0.40.0-beta.1

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 (160) hide show
  1. package/dist/{acp-harness-probe-BrOIuxee.mjs → acp-harness-probe-CI5eMrtp.mjs} +2 -2
  2. package/dist/assets/skills/discovery/SKILL.md +1 -1
  3. package/dist/assets/skills/project/SKILL.md +4 -4
  4. package/dist/assets/skills/write-skill/SKILL.md +1 -1
  5. package/dist/{banner-_FQsQkvC.mjs → banner--DGfdMN8.mjs} +2 -2
  6. package/dist/cli.mjs +62 -62
  7. package/dist/{colors-_gzKDfrv.mjs → colors-BsmVIwfM.mjs} +1 -1
  8. package/dist/colors-MGDi6UGf.mjs +1 -0
  9. package/dist/config-schema.json +81 -3
  10. package/dist/config.project-local.schema.json +50 -3
  11. package/dist/config.project.schema.json +69 -3
  12. package/dist/config.user.schema.json +38 -3
  13. package/dist/constants-CkXW_O1Z.mjs +2 -0
  14. package/dist/dist-bundle-BT5p_5Yl.mjs +1 -0
  15. package/dist/{dist-bundle-vlpIc23T.mjs → dist-bundle-CFfKBclM.mjs} +1 -1
  16. package/dist/fs-traced-CIBSRy3q.mjs +1 -0
  17. package/dist/{fs-traced-vMO6kYgZ.mjs → fs-traced-PoaSX4-V.mjs} +3 -3
  18. package/dist/{git-handle-YzX39hWc.mjs → git-handle-DQgl5oTH.mjs} +2 -2
  19. package/dist/git-handle-Dv50ya_5.mjs +1 -0
  20. package/dist/index.d.mts +25 -1
  21. package/dist/index.mjs +1 -1
  22. package/dist/init-BG8F8jyV.mjs +1 -0
  23. package/dist/{init-CPNddICq.mjs → init-DqAj6DLP.mjs} +9 -9
  24. package/dist/{is-object-Bw0-z8qH.mjs → is-object-ByG7RnjH.mjs} +1 -1
  25. package/dist/{launch-json-removal-BfuiPEr_.mjs → launch-json-removal-DMBq4-k5.mjs} +2 -2
  26. package/dist/loader-48vYo7np.mjs +1 -0
  27. package/dist/{loader-Dof4y0ze.mjs → loader-CuzKavqN.mjs} +2 -2
  28. package/dist/md-manager-BFa4uLFA.mjs +2 -0
  29. package/dist/native/native-config.darwin-arm64.node +0 -0
  30. package/dist/native/native-config.darwin-x64.node +0 -0
  31. package/dist/native/native-config.linux-arm64-gnu.node +0 -0
  32. package/dist/native/native-config.linux-arm64-musl.node +0 -0
  33. package/dist/native/native-config.linux-x64-musl.node +0 -0
  34. package/dist/native/native-config.win32-arm64-msvc.node +0 -0
  35. package/dist/native/native-config.win32-x64-msvc.node +0 -0
  36. package/dist/{open-browser-kdF24mgk.mjs → open-browser-D3OpxES8.mjs} +2 -2
  37. package/dist/parse-worker.mjs +1 -1
  38. package/dist/{preview-BCbVoSQK.mjs → preview-DNAkJMSB.mjs} +2 -2
  39. package/dist/preview-hDB5CK12.mjs +1 -0
  40. package/dist/public/assets/{ActivityModeContent-BQLss-BE.js → ActivityModeContent-dWIhYEu6.js} +1 -1
  41. package/dist/public/assets/{AgentDiffPane-B_TmNOOS.js → AgentDiffPane-ZSMGc24S.js} +1 -1
  42. package/dist/public/assets/{AgentThreadClientBinder-Be-VMGZV.js → AgentThreadClientBinder-CLmx-vqX.js} +1 -1
  43. package/dist/public/assets/{AppMenubar-hPGBtMtR.js → AppMenubar-BuB4TAd6.js} +1 -1
  44. package/dist/public/assets/CodeMirrorPropInput-C9WmN90w.js +3 -0
  45. package/dist/public/assets/{ConsentDialogBody-D9xWEY09.js → ConsentDialogBody-BBzNYhHt.js} +1 -1
  46. package/dist/public/assets/{CopyButton-Cbumgow3.js → CopyButton-Ja2824Ao.js} +1 -1
  47. package/dist/public/assets/{DocumentContext-4RBN9Oik.js → DocumentContext-BcbJIejF.js} +10 -10
  48. package/dist/public/assets/EnableSyncConfirmDialog-DPaSz-wC.js +1 -0
  49. package/dist/public/assets/FeedbackForm-BeMx2Cc0.js +1 -0
  50. package/dist/public/assets/{GraphPanel-CDzcx7vs.js → GraphPanel-BpzaeAQp.js} +2 -2
  51. package/dist/public/assets/{ManagedArtifactProperties-Bd4rE8Ks.js → ManagedArtifactProperties-CQXgVT_Z.js} +1 -1
  52. package/dist/public/assets/{McpConsentDialogBody-OqDOF7x4.js → McpConsentDialogBody-DHTkre7u.js} +1 -1
  53. package/dist/public/assets/{MermaidDocEditor-B6KK6qX2.js → MermaidDocEditor-DL9NPMko.js} +1 -1
  54. package/dist/public/assets/{PropertyPanel-BwdCsrPn.js → PropertyPanel-DEgQa4x9.js} +2 -2
  55. package/dist/public/assets/{ReportBugDialogBody-AEXnxadV.js → ReportBugDialogBody-DrIG1ML_.js} +1 -1
  56. package/dist/public/assets/SettingsDialogBody-BZ10IzbM.js +7 -0
  57. package/dist/public/assets/{ShareBranchSwitchDialog-CzeHnBZ6.js → ShareBranchSwitchDialog-C179lw0C.js} +1 -1
  58. package/dist/public/assets/{ShareReceiveDialog-DGTKtAY6.js → ShareReceiveDialog-TtY0UQrE.js} +1 -1
  59. package/dist/public/assets/{ShareReceiveMissDialog-BS5BCjjQ.js → ShareReceiveMissDialog-op0Pk4ih.js} +1 -1
  60. package/dist/public/assets/{SkillEditorActions-PVnPdxy2.js → SkillEditorActions-DVAUJ782.js} +1 -1
  61. package/dist/public/assets/{SourceEditor-YXhnts5y.js → SourceEditor-Nfwr4rkI.js} +1 -1
  62. package/dist/public/assets/{TerminalPanel-DyJkPAsZ.js → TerminalPanel-DqAeIpPV.js} +1 -1
  63. package/dist/public/assets/{TerminalSessionsHost-CfucJ1z0.js → TerminalSessionsHost-CMZ3pfB8.js} +2 -2
  64. package/dist/public/assets/{TerminalWindowApp-J6-xAbRj.js → TerminalWindowApp-C0nQcTDF.js} +1 -1
  65. package/dist/public/assets/{ThreadView-BvgNNafC.js → ThreadView-Dd8w-hhw.js} +1 -1
  66. package/dist/public/assets/{TimelineDiffPane-B9PP3AzZ.js → TimelineDiffPane-DKx6CcI9.js} +1 -1
  67. package/dist/public/assets/{agent-diff-store-BDu-qYpS.js → agent-diff-store-_LaXNJgH.js} +1 -1
  68. package/dist/public/assets/{agent-visibility-BUmsS0vL.js → agent-visibility-CaL4MDEH.js} +1 -1
  69. package/dist/public/assets/auth-state-cache-9Mxvjb5G.js +11 -0
  70. package/dist/public/assets/{calendar-p-DzPplr.js → calendar-HuZ4s1vW.js} +1 -1
  71. package/dist/public/assets/{checkbox-Cn88M3G6.js → checkbox-DAZcO8UL.js} +1 -1
  72. package/dist/public/assets/client-version-yw5_4u_I.js +1 -0
  73. package/dist/public/assets/{config-provider-BvPGEDTw.js → config-provider-BgOkEHZH.js} +2 -2
  74. package/dist/public/assets/{dist-DRspkp5n.js → dist-Bjs7qRWH.js} +1 -1
  75. package/dist/public/assets/{dist-CDKZLcnD.js → dist-CHLZ8lz0.js} +126 -126
  76. package/dist/public/assets/{doc-hash-r2oc1gt-.js → doc-hash-Bgdowslw.js} +1 -1
  77. package/dist/public/assets/documents-events-HEfBwy2y.js +1 -0
  78. package/dist/public/assets/{dropdown-menu-CcKe8PiU.js → dropdown-menu-DVTufjNA.js} +1 -1
  79. package/dist/public/assets/{file-tree-adapter-DOr3Nip1.js → file-tree-adapter-Bvk6LAfH.js} +1 -1
  80. package/dist/public/assets/index-DsA_F7eu.js +2022 -0
  81. package/dist/public/assets/index-G6x9YQiR.css +1 -0
  82. package/dist/public/assets/{keyboard-shortcuts-maIyJzSw.js → keyboard-shortcuts-DEJA0SzW.js} +1 -1
  83. package/dist/public/assets/lint-config-client-DJccpgCS.js +1 -0
  84. package/dist/public/assets/{navigation-targets-DhXblHdl.js → navigation-targets-CPuDxLos.js} +1 -1
  85. package/dist/public/assets/{open-managed-artifact-tab-DokRsPIe.js → open-managed-artifact-tab-D70MXBHT.js} +1 -1
  86. package/dist/public/assets/pending-receive-nav-store-CMbR1DlR.js +1 -0
  87. package/dist/public/assets/{prop-types-IOhQSrD8.js → prop-types-X3nIYAt7.js} +1 -1
  88. package/dist/public/assets/{receive-store-BwEPjiP1.js → receive-store-CXRtunGe.js} +1 -1
  89. package/dist/public/assets/{selection-context-DOeF93Po.js → selection-context-BiPXU2rp.js} +1 -1
  90. package/dist/public/assets/{skill-actions-D9Vn0ymW.js → skill-actions-8sFn_d3u.js} +1 -1
  91. package/dist/public/assets/{skills-api-CGbwE9vp.js → skills-api-C_fjXVRf.js} +1 -1
  92. package/dist/public/assets/{src-4ThOx6_s.js → src-Bv1hrVBW.js} +1 -1
  93. package/dist/public/assets/{target-navigation-intent-Beex9QTj.js → target-navigation-intent-DW8AJzuM.js} +1 -1
  94. package/dist/public/assets/{telemetry-impl-C3Xj4Jzm.js → telemetry-impl-5fGxwbNg.js} +1 -1
  95. package/dist/public/assets/{telemetry-startup-mmznflLy.js → telemetry-startup-CLLgwJqA.js} +1 -1
  96. package/dist/public/assets/{terminal-launch-events-C2tfnQr1.js → terminal-launch-events-CuvBwfob.js} +1 -1
  97. package/dist/public/assets/{terminal-telemetry-zqEIM46I.js → terminal-telemetry-qJ0O-9wu.js} +1 -1
  98. package/dist/public/assets/typing-burst-detector-CY0OrGne.js +6 -0
  99. package/dist/public/assets/use-activity-panel-DEqogtJb.js +1 -0
  100. package/dist/public/assets/{use-apply-config-color-theme-Ccfxcl-K.js → use-apply-config-color-theme-CbAc42DQ.js} +1 -1
  101. package/dist/public/assets/{use-collab-url-Cf1srbbW.js → use-collab-url-CDJf5CAl.js} +1 -1
  102. package/dist/public/assets/{use-live-xterm-theme-BpGfJKio.js → use-live-xterm-theme-DsNSOoA7.js} +1 -1
  103. package/dist/public/assets/{use-terminal-enabled-BEEp7vb7.js → use-terminal-enabled-CjyUXLzD.js} +1 -1
  104. package/dist/public/assets/{use-timeline-entry-diff-C1lHV9NQ.js → use-timeline-entry-diff-CaKIZSP2.js} +1 -1
  105. package/dist/public/assets/{use-workspace-C1D_I03G.js → use-workspace-CHGWiUmE.js} +1 -1
  106. package/dist/public/assets/{workspace-paths-BKmDPpqj.js → workspace-paths-DgJUp1dw.js} +1 -1
  107. package/dist/public/index.html +48 -48
  108. package/dist/{repair-launch-json-B_QBIfGY.mjs → repair-launch-json-tt6Tjedd.mjs} +2 -2
  109. package/dist/{repair-mcp-configs-DPkRNZjR.mjs → repair-mcp-configs-Bn1d1oSd.mjs} +2 -2
  110. package/dist/{repair-skills-BaZcFu4I.mjs → repair-skills-BVXDXZaA.mjs} +2 -2
  111. package/dist/repair-skills-D7MJ6bSo.mjs +1 -0
  112. package/dist/schemas/v0/config.project-local.schema.json +50 -3
  113. package/dist/schemas/v0/config.project.schema.json +69 -3
  114. package/dist/schemas/v0/config.user.schema.json +38 -3
  115. package/dist/server-lock-Bhmg0tcS.mjs +1 -0
  116. package/dist/{server-lock-BiAmhJ19.mjs → server-lock-DWsOY8Sf.mjs} +2 -2
  117. package/dist/{sleep-DcENuR74.mjs → sleep-CnRgOMGV.mjs} +24 -24
  118. package/dist/{src-DhzHOoTy.mjs → src-DQTDRmqk.mjs} +1 -1
  119. package/dist/src-DVrFd0vk.mjs +3272 -0
  120. package/dist/{src-BTo9m5ju.mjs → src-IQdx1yfl.mjs} +120 -115
  121. package/dist/src-VT3q7v5V.mjs +22 -0
  122. package/dist/start-3HnyNbf6.mjs +1 -0
  123. package/dist/{start-BzSvov1E.mjs → start-BQRik_0l.mjs} +2 -2
  124. package/dist/{write-project-skill-Dt58S1kj.mjs → write-project-skill-SrjlunKm.mjs} +4 -4
  125. package/package.json +5 -5
  126. package/dist/colors-CUOU_72x.mjs +0 -1
  127. package/dist/constants-W5X7lzwf.mjs +0 -2
  128. package/dist/dist-bundle-B-JhpGTG.mjs +0 -1
  129. package/dist/fs-traced-DOXZOlKx.mjs +0 -1
  130. package/dist/git-handle-BGt8xT_1.mjs +0 -1
  131. package/dist/init-CIi-cdDQ.mjs +0 -1
  132. package/dist/loader-BWMy7gMr.mjs +0 -1
  133. package/dist/md-manager-DPNbV4Up.mjs +0 -2
  134. package/dist/preview-DKku4BY2.mjs +0 -1
  135. package/dist/public/assets/CodeMirrorPropInput-Sjp30pzp.js +0 -3
  136. package/dist/public/assets/EnableSyncConfirmDialog-CbuJxerH.js +0 -1
  137. package/dist/public/assets/FeedbackForm-D_mXeHle.js +0 -1
  138. package/dist/public/assets/SettingsDialogBody-CAkmpKWt.js +0 -7
  139. package/dist/public/assets/auth-state-cache-DI5ppoto.js +0 -11
  140. package/dist/public/assets/client-version-CNNfEvD2.js +0 -1
  141. package/dist/public/assets/documents-events-DNDUkpJM.js +0 -1
  142. package/dist/public/assets/index-DLWWMHtL.css +0 -1
  143. package/dist/public/assets/index-Q9MYvDYY.js +0 -1995
  144. package/dist/public/assets/lint-config-client-C7TVN28Z.js +0 -1
  145. package/dist/public/assets/pending-receive-nav-store-DYgvjLiq.js +0 -1
  146. package/dist/public/assets/typing-burst-detector-D8mQRP5S.js +0 -6
  147. package/dist/public/assets/use-activity-panel-CasauzqS.js +0 -1
  148. package/dist/repair-skills-BunyY3Wb.mjs +0 -1
  149. package/dist/server-lock-BwO1WEYX.mjs +0 -1
  150. package/dist/src-YSGKFci8.mjs +0 -3264
  151. package/dist/src-kjR_dI-1.mjs +0 -22
  152. package/dist/start-REG2U44u.mjs +0 -1
  153. /package/dist/public/assets/{RegisteredAgentIcon--E1135hW.js → RegisteredAgentIcon-B57vI5w6.js} +0 -0
  154. /package/dist/public/assets/{arrow-up-right-BKliW282.js → arrow-up-right-Bzc4GmE5.js} +0 -0
  155. /package/dist/public/assets/{check-D3jznJmG.js → check-D_9hlB38.js} +0 -0
  156. /package/dist/public/assets/{chevron-down-0vl-mPeL.js → chevron-down-CQd32BUC.js} +0 -0
  157. /package/dist/public/assets/{chevron-left-fiDaD9J4.js → chevron-left-4ixwi2VD.js} +0 -0
  158. /package/dist/public/assets/{chevron-right-zaL9JagC.js → chevron-right-cXK7rcek.js} +0 -0
  159. /package/dist/public/assets/{copy-DmfcimOx.js → copy-Dwat-rG5.js} +0 -0
  160. /package/dist/public/assets/{eye-CmnH89UE.js → eye-DuFNDQPj.js} +0 -0
@@ -1,3 +1,3 @@
1
- import{U as e}from"./sleep-DcENuR74.mjs";import{h as t,l as n,v as r}from"./write-project-skill-Dt58S1kj.mjs";import{d as i}from"./init-CPNddICq.mjs";import{execFileSync as a}from"node:child_process";import{dirname as o,join as s}from"node:path";import{existsSync as c,mkdirSync as l,readFileSync as u,writeFileSync as d}from"node:fs";import{homedir as f}from"node:os";var p=e();const m=`open-knowledge`;function h(e){try{e()}catch{}}var g=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(m,e).getPassword()}catch(t){return h(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return h(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return h(()=>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(m,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(m,e).deletePassword()}catch{}}},_=class{backend=`file`;authFile;constructor(e){this.authFile=e??s(f(),`.ok`,`auth.yml`)}read(){if(!c(this.authFile))return{};try{return(0,p.parse)(u(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=o(this.authFile);c(t)||l(t,{recursive:!0,mode:448}),d(this.authFile,(0,p.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)}},v=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 y(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(m,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
1
+ import{G as e}from"./sleep-CnRgOMGV.mjs";import{h as t,l as n,v as r}from"./write-project-skill-SrjlunKm.mjs";import{d as i}from"./init-DqAj6DLP.mjs";import{execFileSync as a}from"node:child_process";import{dirname as o,join as s}from"node:path";import{existsSync as c,mkdirSync as l,readFileSync as u,writeFileSync as d}from"node:fs";import{homedir as f}from"node:os";var p=e();const m=`open-knowledge`;function h(e){try{e()}catch{}}var g=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(m,e).getPassword()}catch(t){return h(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return h(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return h(()=>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(m,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(m,e).deletePassword()}catch{}}},_=class{backend=`file`;authFile;constructor(e){this.authFile=e??s(f(),`.ok`,`auth.yml`)}read(){if(!c(this.authFile))return{};try{return(0,p.parse)(u(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=o(this.authFile);c(t)||l(t,{recursive:!0,mode:448}),d(this.authFile,(0,p.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)}},v=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 y(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(m,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
2
2
  `),h(()=>t?.onBackendSelected?.({backend:`keyring`})),new v(new g(t?.onKeychainRead),new _(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`),h(()=>t?.onBackendSelected?.({backend:`file`,reason:r})),new _(e)}}function b(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 _(e))},n)});try{return await Promise.race([y(e),r])}catch{return new _(e)}finally{t!==null&&clearTimeout(t)}})(),t}}function x(e){let t=b(e);return{async get(e){let n=await(await t()).get(e);return n===null?null:{token:n.token}}}}function S(e){let t=b(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 C(e,t){let n=[],r=new _(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(m,`__probe__`);let r,a=await new g(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(m,e).deletePassword(),n.push(`keychain`)}catch(e){i=e instanceof Error?e.name:`delete-error`}}catch{}return{touched:n,keychainError:i}}const w=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],T={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function E(e,t={}){let n=t._exec??a,r=t._fileExists??c,i=[`auth`,`token`,...e?[`--hostname`,e]:[]],o=[`gh`,...w.filter(r)];for(let e of o)try{let t=n(e,i,T).toString().trim();if(t.length>0)return{available:!0,token:t}}catch{}return{available:!1}}function D(e,a,o){let s=n[e],c=e===`opencode`?r:t,l=[],u=s.projectConfigPath?.(a);u!==void 0&&l.push({scope:`project`,configPath:u});try{l.push({scope:`user`,configPath:s.configPath(a,o)})}catch{}for(let t of l){let n=i(s,a,o,t.configPath);if(n!==null&&c(n))return{editorId:e,scope:t.scope,configPath:t.configPath}}return null}export{x as a,y as i,E as n,S as o,C as r,D as t};
3
- //# sourceMappingURL=acp-harness-probe-BrOIuxee.mjs.map
3
+ //# sourceMappingURL=acp-harness-probe-CI5eMrtp.mjs.map
@@ -3,7 +3,7 @@ name: open-knowledge-discovery
3
3
  description: "Read when the user asks what OpenKnowledge is, wants to install it on a repository, wants to share an OpenKnowledge project with collaborators, or asks how `ok init` / `ok cowork` / OK Desktop set up a project. Do NOT load to perform OpenKnowledge reads/writes — the runtime guidance for editing markdown inside an initialized OK project ships as a separate project-local skill at `.claude/skills/open-knowledge/` whenever `ok init` runs. If the user appears to be editing markdown inside a `.ok/` project and this is the only OK skill loaded, advise them to re-run `ok init` to install the project-local skill."
4
4
  compatibility: "Any agent host — no MCP server required. Pure discovery + install guidance."
5
5
  metadata:
6
- version: "0.39.0-beta.9"
6
+ version: "0.40.0-beta.1"
7
7
  author: "Inkeep"
8
8
  repository: "https://github.com/inkeep/open-knowledge"
9
9
  ---
@@ -3,7 +3,7 @@ name: open-knowledge
3
3
  description: "Authoritative agent-runtime contract for working inside an OpenKnowledge project — a markdown-CRDT knowledge base exposed over MCP. Use whenever reading, listing, searching, editing, or linting any `.md` or `.mdx` file in the project, and before any `mcp__open-knowledge__*` tool call (`exec`, `search`, `write`, `edit`, `lint`, and the rest). Installed by `ok init`, so its presence means this is an OpenKnowledge project and it governs every markdown file here. Covers the read/write tool surface, grounding and linking rules, folder/template conventions, the live browser preview, and the rule that OK's MCP tools — never native file tools — handle in-scope markdown."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server + code execution."
5
5
  metadata:
6
- version: "0.39.0-beta.9"
6
+ version: "0.40.0-beta.1"
7
7
  author: "Inkeep"
8
8
  repository: "https://github.com/inkeep/open-knowledge"
9
9
  ---
@@ -24,9 +24,9 @@ OpenKnowledge (OK) is a markdown-CRDT collaboration platform exposed via MCP. Th
24
24
  5. **Direct questions:** a plain business question ("which customers…", "what did we decide about…") routes to `search` / `exec` + a cited chat answer — no "research" keyword needed. Persist only when durable + multi-doc + not already covered, and *offer* first. See `references/corpus-qa.md`.
25
25
  6. **Authoring or improving a skill** ("write/make a skill", "improve this skill", "turn this into a skill"): STOP and invoke the **`open-knowledge-write-skill`** skill — it owns scope choice (project vs global), the SKILL.md contract, evaluation, and install; don't improvise from this skill. Author through the `skill` target (`write({ skill })`), never a raw `.ok/skills/…` document. **Never read, diff, or edit the installed projections under `.claude/skills/` · `.cursor/skills/` · `.codex/skills/` · `.opencode/skills/` · `.pi/skills/` · `.agents/skills/`** — `install` generates them and overwrites them on the next sync; they are NOT source of truth.
26
26
 
27
- ## Tool index — 20 tools (router; the MCP tool descriptions carry each tool's full contract)
27
+ ## Tool index — 21 tools (router; the MCP tool descriptions carry each tool's full contract)
28
28
 
29
- - **Reads** — `exec` (primary; read-only `cat`/`ls`/`grep`/`find`/`head`/`tail`/`wc`/`sort`/`uniq`/`cut` + frontmatter/backlink/history enrichment; one command or one pipe, not a shell), `search` (ranked BM25 + recency), `history` (versions for a doc), `links` (`kind: backlinks|forward|dead|orphans|hubs|suggest`, or an array for a one-call audit), `skills` (find + read skills: omit `name` to LIST every skill across Project + Global, pass `name` to READ one — addressed by `name`+`scope`, NEVER by path), `config` (resolved config), `palette` (markdown-native authoring forms + `html preview` starters + theme tokens; `palette({ components })` for JSX schemas), `preview_url` (browser preview URL on demand), `share_link` (GitHub-substrate share URL; read-only, errors when no GitHub remote), `lint` (content-rule / markdown-lint violations: pass `document` for one doc, or omit to audit the whole project — each violation carries `source`/`code` (flat id `source/code`) + `message` + `range` + `severity`; pass `fix: true` with `document` to auto-fix fixable rules in place — attributed and live in the preview, not a shell edit; the rest need `edit`/`write`).
29
+ - **Reads** — `exec` (primary; read-only `cat`/`ls`/`grep`/`find`/`head`/`tail`/`wc`/`sort`/`uniq`/`cut` + frontmatter/backlink/history enrichment; one command or one pipe, not a shell), `search` (ranked BM25 + recency), `history` (versions for a doc), `links` (`kind: backlinks|forward|dead|orphans|hubs|suggest`, or an array for a one-call audit), `skills` (find + read skills: omit `name` to LIST every skill across Project + Global, pass `name` to READ one — addressed by `name`+`scope`, NEVER by path), `config` (resolved config), `palette` (markdown-native authoring forms + `html preview` starters + theme tokens; `palette({ components })` for JSX schemas), `preview_url` (browser preview URL on demand), `share_link` (GitHub-substrate share URL; read-only, errors when no GitHub remote), `lint` (markdown-lint violations: pass `document` for one doc, omit for the whole project; pass `fix: true` with `document` to auto-fix fixable rules in place — attributed, live in the preview; the rest need `edit`/`write`), `audit` (every lint violation + broken internal link in one read-only report, by source file with lines; `path` scopes; for link VALIDATION use this, not `links`).
30
30
  - **Writes** — four native CRUD verbs, polymorphic over `document` / `folder` / `template` / `skill` / `asset` (pass EXACTLY ONE target, nested under its address key): `write` (create/overwrite; `write({ skill: { name, description, body, scope? } })` authors a skill → `.ok/skills/<name>/SKILL.md`, a **Draft** until `install`), `edit` (body find/replace OR frontmatter merge-patch; no asset), `delete` (remove), `move` (move/rename, rewrites referrers; a skill also takes `scope`/`toScope` to move Project↔Global — history resets, re-`install`). Output mirrors the input target key; the preview envelope (`previewUrl`, `warning`) stays top-level. Plus `install` (the Draft → Installed step for a `skill` — projects it into your editors; run after `write({ skill })`), `checkpoint` (named version), and `restore_version` (roll back). A folder's frontmatter is open-shape and self-only (does NOT cascade); templates are what new docs start with. **Authoring/improving a skill? invoke `open-knowledge-write-skill` (TL;DR #6), don't improvise.**
31
31
  - **Conflicts** — `conflicts` (`kind: list|content`), `resolve_conflict` (write a resolution + commit; destructive). See `references/conflict-resolution.md`.
32
32
  - **Workflow** — `workflow` (`kind: ingest|research|consolidate|discover`; procedural guides, not data). See `references/workflow-guides.md`.
@@ -82,7 +82,7 @@ Knowledge-base docs are factual artifacts. Every claim must be traceable, and **
82
82
 
83
83
  ## Linking — standard markdown links (MUST)
84
84
 
85
- Link every noun-phrase that names another document — `[text](./relative/path.md)` — and link liberally. **Every link must resolve to a doc that exists by the time you're done** (a same-pass forward-reference you create later in the pass is fine; for one that genuinely won't exist, leave the mention as plain prose + a tracked task). Never backtick a link (`` `[text](./foo.md)` `` is a bug) and never use HTML `<a>`. **Read `brokenLinks` on every `write`/`edit` response: `[]` means all links resolve; a populated list names each broken `href` + `reason` (`no-such-doc` / `no-such-file` / `unresolvable`) — fix them in a follow-up `edit`.** `links({ kind: "dead" })` is the authoritative end-state audit (the editor's red-underline is slug-tolerant and lies, so trust the tool). External web sources are NOT inline body links (see Grounding). Full rule set + the `[[Page]]` legacy note: `references/linking.md`.
85
+ Link every noun-phrase that names another document — `[text](./relative/path.md)` — and link liberally. **Every link must resolve to a doc that exists by the time you're done** (a same-pass forward-reference you create later in the pass is fine; for one that genuinely won't exist, leave the mention as plain prose + a tracked task). Never backtick a link (`` `[text](./foo.md)` `` is a bug) and never use HTML `<a>`. **Read `brokenLinks` on every `write`/`edit` response: `[]` means all links resolve; a populated list names each broken `href` + `reason` (`no-such-doc` / `no-such-file` / `unresolvable`) — fix them in a follow-up `edit`.** `audit` is the authoritative end-state link check (the editor's red-underline is slug-tolerant and lies, so trust the tool). External web sources are NOT inline body links (see Grounding). Full rule set + the `[[Page]]` legacy note: `references/linking.md`.
86
86
 
87
87
  ## Folders, frontmatter, templates
88
88
 
@@ -3,7 +3,7 @@ name: open-knowledge-write-skill
3
3
  description: "Use when the user wants to create, author, write, or design a new Agent Skill (a SKILL.md) — for OpenKnowledge or for their editors — including requests like 'help me write a skill', 'make a skill that…', 'turn this workflow into a skill', or improving an existing skill's triggering and discipline. Also use when capturing reusable agent guidance that should live as an installable skill rather than a one-off prompt. Covers choosing scope (project vs global), the SKILL.md frontmatter contract, progressive-disclosure structure, evaluating the skill, and installing it into the user's editors."
4
4
  compatibility: "OpenKnowledge project recommended (uses the `write` / `edit` / `install` MCP verbs). Authoring + validation are pure file ops; live preview + eval want a running server (`ok start`)."
5
5
  metadata:
6
- version: "0.38.4"
6
+ version: "0.39.4"
7
7
  author: "Inkeep"
8
8
  repository: "https://github.com/inkeep/open-knowledge"
9
9
  ---
@@ -1,3 +1,3 @@
1
- import{a as e,i as t,n,t as r}from"./colors-_gzKDfrv.mjs";const i={single:{topLeft:`┌`,top:`─`,topRight:`┐`,right:`│`,bottomRight:`┘`,bottom:`─`,bottomLeft:`└`,left:`│`},double:{topLeft:`╔`,top:`═`,topRight:`╗`,right:`║`,bottomRight:`╝`,bottom:`═`,bottomLeft:`╚`,left:`║`},round:{topLeft:`╭`,top:`─`,topRight:`╮`,right:`│`,bottomRight:`╯`,bottom:`─`,bottomLeft:`╰`,left:`│`},bold:{topLeft:`┏`,top:`━`,topRight:`┓`,right:`┃`,bottomRight:`┛`,bottom:`━`,bottomLeft:`┗`,left:`┃`},singleDouble:{topLeft:`╓`,top:`─`,topRight:`╖`,right:`║`,bottomRight:`╜`,bottom:`─`,bottomLeft:`╙`,left:`║`},doubleSingle:{topLeft:`╒`,top:`═`,topRight:`╕`,right:`│`,bottomRight:`╛`,bottom:`═`,bottomLeft:`╘`,left:`│`},classic:{topLeft:`+`,top:`-`,topRight:`+`,right:`|`,bottomRight:`+`,bottom:`-`,bottomLeft:`+`,left:`|`},arrow:{topLeft:`↘`,top:`↓`,topRight:`↙`,right:`←`,bottomRight:`↖`,bottom:`↑`,bottomLeft:`↗`,left:`→`}}.round;function a(a){let o=[],s=`${a.name} v${a.version}`;o.push({plain:s,colored:r(s)}),o.push({plain:``,colored:``});let c=a.apiUrl?`Editor: `:`Local: `;if(o.push({plain:`${c}${a.localUrl}`,colored:`${c}${e(t(a.localUrl),a.localUrl)}`}),a.apiUrl){let t=`API: `;o.push({plain:`${t}${a.apiUrl}`,colored:`${t}${n(e(a.apiUrl,a.apiUrl))}`})}if(a.networkUrl){let n=`Network: `;o.push({plain:`${n}${a.networkUrl}`,colored:`${n}${e(t(a.networkUrl),a.networkUrl)}`})}if(a.nextSteps&&a.nextSteps.length>0){o.push({plain:``,colored:``});for(let e of a.nextSteps)o.push({plain:e,colored:n(e)})}o.push({plain:``,colored:``});let l=`Press Ctrl+C to stop`;o.push({plain:l,colored:n(l)});let u=Math.max(...o.map(e=>e.plain.length)),d=u+4,f=` ${i.topLeft}${i.top.repeat(d)}${i.topRight}`,p=` ${i.bottomLeft}${i.bottom.repeat(d)}${i.bottomRight}`;return[``,f,...o.map(e=>{let t=u-e.plain.length;return` ${i.left}${` `.repeat(2)}${e.colored}${` `.repeat(t+2)}${i.right}`}),p,``].join(`
1
+ import{a as e,i as t,n,t as r}from"./colors-BsmVIwfM.mjs";const i={single:{topLeft:`┌`,top:`─`,topRight:`┐`,right:`│`,bottomRight:`┘`,bottom:`─`,bottomLeft:`└`,left:`│`},double:{topLeft:`╔`,top:`═`,topRight:`╗`,right:`║`,bottomRight:`╝`,bottom:`═`,bottomLeft:`╚`,left:`║`},round:{topLeft:`╭`,top:`─`,topRight:`╮`,right:`│`,bottomRight:`╯`,bottom:`─`,bottomLeft:`╰`,left:`│`},bold:{topLeft:`┏`,top:`━`,topRight:`┓`,right:`┃`,bottomRight:`┛`,bottom:`━`,bottomLeft:`┗`,left:`┃`},singleDouble:{topLeft:`╓`,top:`─`,topRight:`╖`,right:`║`,bottomRight:`╜`,bottom:`─`,bottomLeft:`╙`,left:`║`},doubleSingle:{topLeft:`╒`,top:`═`,topRight:`╕`,right:`│`,bottomRight:`╛`,bottom:`═`,bottomLeft:`╘`,left:`│`},classic:{topLeft:`+`,top:`-`,topRight:`+`,right:`|`,bottomRight:`+`,bottom:`-`,bottomLeft:`+`,left:`|`},arrow:{topLeft:`↘`,top:`↓`,topRight:`↙`,right:`←`,bottomRight:`↖`,bottom:`↑`,bottomLeft:`↗`,left:`→`}}.round;function a(a){let o=[],s=`${a.name} v${a.version}`;o.push({plain:s,colored:r(s)}),o.push({plain:``,colored:``});let c=a.apiUrl?`Editor: `:`Local: `;if(o.push({plain:`${c}${a.localUrl}`,colored:`${c}${e(t(a.localUrl),a.localUrl)}`}),a.apiUrl){let t=`API: `;o.push({plain:`${t}${a.apiUrl}`,colored:`${t}${n(e(a.apiUrl,a.apiUrl))}`})}if(a.networkUrl){let n=`Network: `;o.push({plain:`${n}${a.networkUrl}`,colored:`${n}${e(t(a.networkUrl),a.networkUrl)}`})}if(a.nextSteps&&a.nextSteps.length>0){o.push({plain:``,colored:``});for(let e of a.nextSteps)o.push({plain:e,colored:n(e)})}o.push({plain:``,colored:``});let l=`Press Ctrl+C to stop`;o.push({plain:l,colored:n(l)});let u=Math.max(...o.map(e=>e.plain.length)),d=u+4,f=` ${i.topLeft}${i.top.repeat(d)}${i.topRight}`,p=` ${i.bottomLeft}${i.bottom.repeat(d)}${i.bottomRight}`;return[``,f,...o.map(e=>{let t=u-e.plain.length;return` ${i.left}${` `.repeat(2)}${e.colored}${` `.repeat(t+2)}${i.right}`}),p,``].join(`
2
2
  `)}export{a as renderBanner};
3
- //# sourceMappingURL=banner-_FQsQkvC.mjs.map
3
+ //# sourceMappingURL=banner--DGfdMN8.mjs.map