@inkeep/open-knowledge 0.63.0-beta.15 → 0.63.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{acp-harness-probe-C4iHkeM8.mjs → acp-harness-probe-ClLen5mV.mjs} +2 -2
- package/dist/assets/skills/discovery/SKILL.md +12 -3
- package/dist/assets/skills/project/references/preview.md +1 -0
- package/dist/cli.d.mts +1 -7
- package/dist/cli.mjs +63 -61
- package/dist/constants--Mefqd_Y.mjs +2 -0
- package/dist/{git-handle-NTLKBuxQ.mjs → git-handle-B-wIq9_v.mjs} +2 -2
- package/dist/git-handle-Die2olDM.mjs +1 -0
- package/dist/index.d.mts +17 -1
- package/dist/index.mjs +184 -184
- package/dist/{init-XMbWjso8.mjs → init-DTAgv3R5.mjs} +34 -34
- package/dist/init-mgIG_U9p.mjs +1 -0
- package/dist/{launch-json-removal-BiZLUU31.mjs → launch-json-removal-CdUHSdLM.mjs} +2 -2
- package/dist/{loader-CVDhU5xC.mjs → loader-CX9-nOcJ.mjs} +2 -2
- package/dist/loader-CtQdAM2a.mjs +1 -0
- package/dist/md-manager-B5SZ3ICb.mjs +2 -0
- package/dist/{open-browser-gwcJC18V.mjs → open-browser-BR2Im42W.mjs} +2 -2
- package/dist/parse-worker.mjs +1 -1
- package/dist/{preview-CdSoc1z2.mjs → preview-Be1nfx_a.mjs} +2 -2
- package/dist/preview-CxQ9YhvK.mjs +1 -0
- package/dist/public/assets/{ActivityModeContent-CkdaznRM.js → ActivityModeContent-CHILMZNT.js} +1 -1
- package/dist/public/assets/{AddPropertiesButton-CvM0BKAc.js → AddPropertiesButton-N2hquuuJ.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-Bnwlf1Li.js → AgentDiffPane-DZIVlX7T.js} +1 -1
- package/dist/public/assets/{AgentThreadClientBinder-D3-u9JDY.js → AgentThreadClientBinder-D-WSZFly.js} +1 -1
- package/dist/public/assets/{BugReportHistory-C0wa0XGQ.js → BugReportHistory-Do8Akfia.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-DHqxk14p.js → BugReportHistoryDialog-CUVvL_V_.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-CG6EP7Wy.js → CodeMirrorPropInput-BonPS-HY.js} +1 -1
- package/dist/public/assets/DocumentContext-CHklKdJU.js +38 -0
- package/dist/public/assets/{EditorModeToggle-bhfSOn_q.js → EditorModeToggle-ry71w-tr.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-B6yilqtJ.js → EnableSyncConfirmDialog-MNxsnx25.js} +1 -1
- package/dist/public/assets/{ExcalidrawDocEditor-bKvVPHEp.js → ExcalidrawDocEditor-B60Bbxuj.js} +1 -1
- package/dist/public/assets/FeedbackForm-Bg4JztCb.js +1 -0
- package/dist/public/assets/{GraphPanel-BUCcv-kh.js → GraphPanel-Doc3UkYk.js} +1 -1
- package/dist/public/assets/{ImportSkillDialog-DZ0eTUfk.js → ImportSkillDialog-CJDNe4Hm.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-Bjo--Jlu.js → LintConfigEditor-C7bY5Vg9.js} +1 -1
- package/dist/public/assets/{ManagedArtifactProperties-DOopSr77.js → ManagedArtifactProperties-Bjd-HmPr.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-Bq1W2pn6.js +1 -0
- package/dist/public/assets/{MermaidDocEditor-Bnr9cCBQ.js → MermaidDocEditor-98PHlD5d.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-Cqo45U9W.js → PropertyDisplayRow-gpEd0kfb.js} +1 -1
- package/dist/public/assets/{ReportBugDialogBody-IBysJpfl.js → ReportBugDialogBody-BAu2r8QZ.js} +1 -1
- package/dist/public/assets/{SchemaConfigEditor-DRO7Pk3U.js → SchemaConfigEditor-vjVfM5Sj.js} +1 -1
- package/dist/public/assets/{SessionsHost-DPPwdpa6.js → SessionsHost-cu-i_Py-.js} +2 -2
- package/dist/public/assets/{SettingsDialogBody-DS5WxJ_c.js → SettingsDialogBody-CO2rU2Ts.js} +1 -1
- package/dist/public/assets/{ShareBranchSwitchDialog-AhlfSSFn.js → ShareBranchSwitchDialog-DYyy9FZ6.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-CtBx5On-.js → ShareReceiveDialog-Bf8y_Djr.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-DLEnh_5D.js → ShareReceiveMissDialog-2dn8BUR-.js} +1 -1
- package/dist/public/assets/{SkillCostValue-CvzNMqXu.js → SkillCostValue-DdoKihcJ.js} +1 -1
- package/dist/public/assets/{SkillEditBanner-tXNHuYvo.js → SkillEditBanner-B5Rhz1sK.js} +1 -1
- package/dist/public/assets/{SkillInstallMenu-Ekfu2KMU.js → SkillInstallMenu-BbGLFnIp.js} +1 -1
- package/dist/public/assets/{SkillOriginInline-o3OTyjM5.js → SkillOriginInline-BLqb-Q9f.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-CNe6pc04.js → SkillToolbarControls-DuseqJHs.js} +1 -1
- package/dist/public/assets/{SlidesToolbarControls-3EMlFJ8t.js → SlidesToolbarControls-HDhusqiO.js} +1 -1
- package/dist/public/assets/{SourceEditor-kFqRpbcx.js → SourceEditor-Clg6eI_3.js} +1 -1
- package/dist/public/assets/{TerminalPanel-BCA5YFGB.js → TerminalPanel-CLna_vO1.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-D0UuAi49.js → TerminalWindowApp-gPY6AEoz.js} +1 -1
- package/dist/public/assets/{TextDocEditor-BDYvjXou.js → TextDocEditor-CklZnKak.js} +1 -1
- package/dist/public/assets/{ThreadView-Ca9jMAPt.js → ThreadView-Cx7IoasQ.js} +1 -1
- package/dist/public/assets/{TimelineDiffPane-CXMGhQWd.js → TimelineDiffPane-6_BmgW-q.js} +1 -1
- package/dist/public/assets/{agent-diff-store-BWKp12gT.js → agent-diff-store-BQ63ociD.js} +1 -1
- package/dist/public/assets/{auth-state-cache-CE8T6IzT.js → auth-state-cache-BoEHhg1J.js} +1 -1
- package/dist/public/assets/{bug-report-send-manager-D8S8BM9G.js → bug-report-send-manager-i5VL8tcj.js} +1 -1
- package/dist/public/assets/{client-version-DgFD9pEA.js → client-version-B5-HmGfc.js} +1 -1
- package/dist/public/assets/{comment-chips-lFGydPzB.js → comment-chips-BJp4Z6gM.js} +1 -1
- package/dist/public/assets/{config-provider-dIusLQHf.js → config-provider-EruTjtaU.js} +1 -1
- package/dist/public/assets/{dist-ClHGFbjP2.js → dist-CnzPyMX52.js} +1 -1
- package/dist/public/assets/{doc-paths-DAr9Ew0q.js → doc-paths-BRPkH6xf.js} +1 -1
- package/dist/public/assets/{documents-events-BYjMJCtr.js → documents-events-CCQgw0nj.js} +1 -1
- package/dist/public/assets/{file-tree-adapter-DsXEGhjb.js → file-tree-adapter-CUCkGST6.js} +1 -1
- package/dist/public/assets/{file-tree-utils-B2Axpvgc.js → file-tree-utils-rWtfRJr1.js} +1 -1
- package/dist/public/assets/{folder-config-api-yRQlw6u0.js → folder-config-api-lyyhTvfi.js} +1 -1
- package/dist/public/assets/i18n-B6VtcWE-.js +1 -0
- package/dist/public/assets/index-71h2S3L-.js +2196 -0
- package/dist/public/assets/{lint-config-client-CvBLe774.js → lint-config-client-CUY7G3d1.js} +1 -1
- package/dist/public/assets/{markdownlint-rule-browser-DPzJ-2Lh.js → markdownlint-rule-browser-Dz_YV4nb.js} +1 -1
- package/dist/public/assets/page-list-cache-B3hpCgnI.js +1 -0
- package/dist/public/assets/{pending-receive-nav-store-DWJKoDM1.js → pending-receive-nav-store-GeyTv6vL.js} +1 -1
- package/dist/public/assets/{progress-0OtpqQCi.js → progress-COZ-vSR3.js} +1 -1
- package/dist/public/assets/{prop-types-CNBRspY6.js → prop-types-B_H9lOE2.js} +1 -1
- package/dist/public/assets/{receive-store-B9Ct8-SS.js → receive-store-C2e1W-CK.js} +1 -1
- package/dist/public/assets/{selection-context-DpPu_Xh_.js → selection-context-ExCMrk51.js} +1 -1
- package/dist/public/assets/{skill-scope-2ZCES3JH.js → skill-scope-mDqM7wzc.js} +1 -1
- package/dist/public/assets/{skills-api--ee5EeEm.js → skills-api-PeIbMIpS.js} +1 -1
- package/dist/public/assets/{src-DbondUJS.js → src-DoJGoHbH.js} +1 -1
- package/dist/public/assets/{tag-pill-input-BNoYWhVX.js → tag-pill-input-DGdY4F_y.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-DHP7_t_c.js → target-navigation-intent-BAfh4f5r.js} +1 -1
- package/dist/public/assets/{terminal-cli-display-BocYbbO4.js → terminal-cli-display-B9RLqrD0.js} +1 -1
- package/dist/public/assets/{terminal-launch-events-CAYVVL7j.js → terminal-launch-events-T1RxH2D_.js} +1 -1
- package/dist/public/assets/{terminal-telemetry-DVozpHQ9.js → terminal-telemetry-2xaVQF-W.js} +1 -1
- package/dist/public/assets/{typing-burst-detector-BRCl1pVd.js → typing-burst-detector-4uDZY4-2.js} +1 -1
- package/dist/public/assets/{uninstall-buWlLaEV.js → uninstall-DwDCHx8s.js} +1 -1
- package/dist/public/assets/{use-activity-panel-7QCLjFWD.js → use-activity-panel-cGCIgDHR.js} +1 -1
- package/dist/public/assets/{use-apply-config-color-theme-CFCI2GNF.js → use-apply-config-color-theme-Ds1FD3HK.js} +1 -1
- package/dist/public/assets/{use-collab-url-DEYfnaMS.js → use-collab-url-Cy83Ius9.js} +1 -1
- package/dist/public/assets/{use-live-xterm-theme-BFOnU-eC.js → use-live-xterm-theme-DaoAg9zj.js} +1 -1
- package/dist/public/assets/{use-open-skill-Cb6nVVrt.js → use-open-skill-BJdJacrt.js} +1 -1
- package/dist/public/assets/{use-settings-route-BoEnTMeF.js → use-settings-route-CJVQDwmj.js} +1 -1
- package/dist/public/assets/{use-skill-origin-DDhmkGv4.js → use-skill-origin-BSotwjrK.js} +1 -1
- package/dist/public/assets/{use-skills-D4lRvSJa.js → use-skills-C787R0nA.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-CTRJVZCQ.js → use-terminal-enabled-CGA4TB6i.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-DRN0Y_os.js → use-timeline-entry-diff-C9r_zVID.js} +1 -1
- package/dist/public/assets/{use-workspace-BuMImy8_.js → use-workspace-rmOBMRnx.js} +1 -1
- package/dist/public/index.html +45 -45
- package/dist/public/uninstall.html +3 -3
- package/dist/{repair-launch-json-CGiiCy_y.mjs → repair-launch-json-FhJ1-gFe.mjs} +2 -2
- package/dist/{repair-mcp-configs-DJluMHvw.mjs → repair-mcp-configs-CVOPExvD.mjs} +2 -2
- package/dist/repair-skills-BAuMFgEP.mjs +1 -0
- package/dist/{repair-skills-DjaHfS6E.mjs → repair-skills-Bc9E4eeA.mjs} +2 -2
- package/dist/{resolve-project-root-CPytwxzP.mjs → resolve-project-root-C8lkeQRG.mjs} +3 -3
- package/dist/server-lock-6JxF9TCZ.mjs +1 -0
- package/dist/{server-lock-_XWgcmNh.mjs → server-lock-D3VEPV5W.mjs} +2 -2
- package/dist/{skill-teardown-D9VvS5qp.mjs → skill-teardown-CrI8hOjf.mjs} +2 -2
- package/dist/src-BYHpzYVs.mjs +1 -0
- package/dist/src-BjxleI-A.mjs +20 -0
- package/dist/src-CADYcyVw.mjs +2038 -0
- package/dist/{src-B5PnzP5L.mjs → src-DI-4tHhA.mjs} +2 -2
- package/dist/src-DKJ4ztC7.mjs +1 -0
- package/dist/{start-CR2CT-vo.mjs → start-BjlDf_Bu.mjs} +3 -3
- package/dist/start-Dbcx2ERQ.mjs +1 -0
- package/package.json +4 -4
- package/dist/constants-BRkzM7uA.mjs +0 -2
- package/dist/git-handle-CxBV0Wpn.mjs +0 -1
- package/dist/init-CZpSLmdU.mjs +0 -1
- package/dist/loader-DMPwRLmw.mjs +0 -1
- package/dist/md-manager-BZ9HvsZ5.mjs +0 -2
- package/dist/preview-R0sdPHy_.mjs +0 -1
- package/dist/public/assets/DocumentContext-Bvx7mXXE.js +0 -38
- package/dist/public/assets/FeedbackForm-BcWkKyUY.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-DyBKBJky.js +0 -1
- package/dist/public/assets/i18n-DxXpBJoo.js +0 -1
- package/dist/public/assets/index-BbMnlVFR.js +0 -2196
- package/dist/public/assets/page-list-cache-DJODoSOh.js +0 -1
- package/dist/repair-skills-B6gZ9sOT.mjs +0 -1
- package/dist/server-lock-CyzgE09K.mjs +0 -1
- package/dist/src-BWl-Pf3T.mjs +0 -1
- package/dist/src-BvV3skiE.mjs +0 -20
- package/dist/src-Cgbvt9_P.mjs +0 -2038
- package/dist/src-Y4R4Qtqe.mjs +0 -1
- package/dist/start-m2eSE7Im.mjs +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bo as e,D as t,Es as n,Fo as r,Ho as i,Io as a,Ko as o,Lo as s,Ts as c,Uo as l,Ur as u,Zi as d,jo as f,js as p,ks as m,qo as h,zo as g}from"./dist-ClHGFbjP2.js";import{r as _}from"./doc-paths-DAr9Ew0q.js";import{o as v,r as y}from"./file-tree-utils-B2Axpvgc.js";function b(e){return e.scope===`project`?o(x(e)):l(e.scope,e.name,e.hostQualifier)}function x(e){return e.canonicalPath??e.path}function S(e,t){return e.scope===`project`?`${x(e).replace(/\/SKILL\.mdx?$/i,``)}/${o(t)}`:i(e.scope,e.name,t,e.hostQualifier)}function C(e){let t=s(e);return t?.kind===`skill`?t.name:null}function w(e){let t=e.trim();return{normalizedTarget:t.replace(/^\.\/+/,``).replace(/^\/+/,``).replace(/\/+$/g,``),expectsFolder:/\/+$/.test(t)}}function T(e){return _(e).replace(/\/+$/g,``)}function E(e){let t=new Set;for(let n of e)for(let e of y(n))t.add(e);return t}function D(e,t){if(!t)return;let n=d(e);if(n)return t.get(n)}function O(e,t){if(!t||e.includes(`/`))return;let n=d(e);if(n)return t.get(n)}function k(e,t){return t?`${e}${t}`:(e.split(`/`).pop()??``).lastIndexOf(`.`)>0?e:`${e}.md`}function A(e,t){if(!v(e)||g(e)||t.pages.has(e))return null;let n=k(e,t.docExt);return{kind:`asset`,target:n,assetPath:n,mediaKind:p(n.slice(n.lastIndexOf(`.`)+1))}}function j(t,i){if(f(t)){let n=a(t);if(n?.kind===`skill`&&n.scope===`project`){let t=e(n.name);return{kind:`doc`,target:t,docName:t}}let i=r(t);if(i){let e=h(i.folder,i.name);return{kind:`doc`,target:e,docName:e}}return{kind:`doc`,target:t,docName:t}}if(C(t))return{kind:`doc`,target:t,docName:t};let o=g(t);if(o){let e=h(o.folder,o.name);return{kind:`doc`,target:e,docName:e}}let{normalizedTarget:s,expectsFolder:l}=w(t);if(!s)return{kind:`missing`,target:s};if(!l&&(m(s)||n(s)||c(s)))return{kind:`doc`,target:s,docName:s};let u=T(t);if(!l&&i.pages.has(s))return{kind:`doc`,target:s,docName:s};if(!l&&u!==s&&i.pages.has(u))return{kind:`doc`,target:u,docName:u};if(!l){let e=D(u,i.pagesBySlug);if(e)return{kind:`doc`,target:e,docName:e}}let d=`${u}/index`;if(i.pages.has(d))return{kind:`folder-index`,target:u,folderPath:u,docName:d,noteKind:`canonical-index`};let p=u.split(`/`).pop(),_=p?`${u}/${p}`:null;if(_&&i.pages.has(_))return{kind:`folder-index`,target:u,folderPath:u,docName:_,noteKind:`legacy-folder-note`};if(!l){let e=O(u,i.pagesByBasename);if(e)return{kind:`doc`,target:e,docName:e}}if((i.folderPaths??E(i.pages)).has(u))return{kind:`folder`,target:u,folderPath:u};if(!l){let e=A(s,i);if(e)return e}return{kind:`missing`,target:u||s}}function M(e){return e.kind===`folder-index`?{kind:`folder`,target:e.folderPath,folderPath:e.folderPath}:e}function N(e,n,r=t){return typeof n!=`number`||!u(n,r)?null:{kind:`large-file`,target:e,docName:e,size:n,limit:r}}function P(e,n,r=t){return e.kind!==`doc`&&e.kind!==`folder-index`?e:N(e.docName,n.get(e.docName)?.size,r)??e}function F(e){switch(e.kind){case`doc`:case`folder-index`:case`large-file`:return e.docName;case`missing`:return e.target;case`asset`:case`skill-file`:case`skills`:case`skill-preview`:case`folder`:return null}}var I=null,L=new Set;function R(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function z(e,t){return e===null?!1:e===t?!0:R(e.pages,t.pages)&&R(e.folderPaths,t.folderPaths)&&R(e.assetPaths??new Set,t.assetPaths??new Set)&&R(e.filePaths??new Set,t.filePaths??new Set)&&B(e.pageIcons,t.pageIcons)}function B(e,t){if(e===t)return!0;let n=e?.size??0;if(n!==(t?.size??0))return!1;if(n===0)return!0;for(let[n,r]of e)if(t.get(n)!==r)return!1;return!0}function V(e){let t=new Map;for(let[n,r]of e){let e=r.icon;typeof e==`string`&&e.trim()!==``&&t.set(n,e)}return t}function H(){return I}function U(e){if(!z(I,e)){I=e;for(let t of Array.from(L))try{t(e)}catch(e){console.error(`[page-list-cache] subscriber threw:`,e)}}}function W(e){if(L.add(e),I!==null)try{e(I)}catch(e){console.error(`[page-list-cache] subscriber threw on replay:`,e)}return()=>{L.delete(e)}}export{E as a,N as c,P as d,C as f,W as i,A as l,b as m,H as n,F as o,S as p,U as r,M as s,V as t,j as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./repair-skills-DjaHfS6E.mjs";export{e as repairSkills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,o as t,s as n}from"./server-lock-_XWgcmNh.mjs";export{e as markServerLockDraining,t as releaseServerLock,n as updateServerLockPort};
|
package/dist/src-BWl-Pf3T.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./src-B5PnzP5L.mjs";import"./resolve-project-root-CPytwxzP.mjs";import"./src-BvV3skiE.mjs";import"./acp-harness-probe-C4iHkeM8.mjs";import"./init-XMbWjso8.mjs";import{n as e}from"./loader-CVDhU5xC.mjs";import"./skill-teardown-D9VvS5qp.mjs";import"./preview-CdSoc1z2.mjs";import"./mcp-migrate-event-9DFnNzHa.mjs";export{e as loadConfig};
|
package/dist/src-BvV3skiE.mjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DTipWd-i.mjs";import{K as t,pt as n,q as r}from"./sleep-BZo73vVn.mjs";import{Bc as i,Do as a,Fc as o,Pc as s,lt as c,ut as l,zc as u}from"./src-B5PnzP5L.mjs";import{Ri as d,ct as f,di as p,kn as m,lt as h,ot as g,st as ee}from"./src-Cgbvt9_P.mjs";import{D as _,F as v,I as y,k as b}from"./fs-traced-Cu6kXy54.mjs";import{C as x,S,_ as C,f as w,r as T}from"./server-lock-_XWgcmNh.mjs";import{t as E}from"./yazl-DejPO9b3.mjs";import{h as D,m as te,x as ne}from"./resolve-project-root-CPytwxzP.mjs";import{c as O}from"./colors-DSyAT9Cz.mjs";import{a as k,i as re}from"./acp-harness-probe-C4iHkeM8.mjs";import{D as ie,E as A,S as ae,T as j,_ as oe,b as se,o as ce}from"./init-XMbWjso8.mjs";import{n as le}from"./constants-BRkzM7uA.mjs";import{t as M}from"./is-object-Bw0-z8qH.mjs";import"./loader-CVDhU5xC.mjs";import"./skill-teardown-D9VvS5qp.mjs";import"./preview-CdSoc1z2.mjs";import{execSync as ue,spawnSync as de}from"node:child_process";import{basename as N,dirname as P,join as F,relative as fe,resolve as I,sep as pe}from"node:path";import{cpSync as me,createWriteStream as he,existsSync as L,lstatSync as ge,mkdirSync as R,mkdtempSync as _e,readFileSync as z,readdirSync as B,readlinkSync as ve,rmSync as ye,statSync as be,writeFileSync as V}from"node:fs";import{arch as xe,freemem as Se,homedir as H,hostname as Ce,platform as we,release as Te,tmpdir as Ee,totalmem as De,type as Oe,uptime as ke}from"node:os";import"node:fs/promises";import{createHash as Ae}from"node:crypto";var je=n();const Me=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function Ne(e,t,n=m){if(e!==void 0&&!Me.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let Pe=null;function Fe(e){Pe=e}function Ie(){return Pe??process.cwd()}function U(){return F(H(),`.ok`,`bug-reports`)}function Le(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=U(),r=`${t}-bugreport`,i=F(n,`${r}.zip`);for(let e=2;L(i);e+=1)i=F(n,`${r}-${e}.zip`);return i}function Re(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let e=z(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return L(F(e,`.ok`))?Ae(`sha256`).update(I(e)).digest(`hex`).slice(0,12):null}function ze(){let e={timestamp:new Date().toISOString(),platform:we(),osType:Oe(),osRelease:Te(),hostname:`[redacted]`,uptime:ke(),freeMem:Se(),totalMem:De(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=ue(`sw_vers -productVersion 2>/dev/null`,d({encoding:`utf8`})).trim()}catch{}try{let t=F(__dirname,`..`,`..`,`package.json`);L(t)&&(e.okVersion=JSON.parse(z(t,`utf8`)).version)}catch{}return e}const Be=[{prefix:`cli`,projectTagged:!0},{prefix:`desktop`,projectTagged:!1},{prefix:`mcp`,projectTagged:!1}];function Ve(e){let t=N(e);return Be.some(e=>e.projectTagged&&t.startsWith(`${e.prefix}.`))}function He(e,t){return Ke(e,t).files}const Ue=[`ShipIt_stderr.log`,`ShipIt_stdout.log`];function We(e,t=k){let n=F(e,`${t}.ShipIt`);return L(n)?Ue.map(e=>F(n,e)).filter(e=>L(e)):[]}function Ge(e){if(!L(e))return[];try{let t=new Map;for(let n of B(e).filter(e=>e.endsWith(`.yaml`)).sort()){let e=n.endsWith(`.sent.yaml`)?n.slice(0,-u.length):n.slice(0,-5),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return[...t.values()].slice(-25).flat().map(t=>F(e,t))}catch{return[]}}function Ke(e,t){if(!L(t))return{files:[],excludedByProjectSlug:0};let n=B(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>F(t,e));if(!e)return{files:n,excludedByProjectSlug:0};let r=n.filter(Ve),i=[],a=r.filter(t=>{try{return z(t,`utf8`).includes(`"project":"${e}"`)}catch{return i.push(t),!1}});if(a.length===0)return{files:n,excludedByProjectSlug:0};let o=new Set([...a,...i]);return{files:n.filter(e=>!Ve(e)||o.has(e)),excludedByProjectSlug:r.length-o.size}}function qe(e){let t=F(e,`.ok`,`local`);return L(t)?{files:[`server.lock`,`last-spawn-error.log`,c].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Je(e){let t=F(e,`.ok`,`local`,`logs`);return L(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Ye(e){if(e.redact){let{redacted:t,patterns:n,lineCount:r}=o(e.content);e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name),n.length>0&&e.redactions.push({file:e.name,lineCount:r,patterns:n})}else e.zipfile.addBuffer(Buffer.from(e.content,`utf8`),e.name),e.bundleFiles.push(e.name)}function W(e){for(let t of e.files)try{Ye({zipfile:e.zipfile,name:`${e.prefix}/${N(t)}`,content:z(t,`utf8`),redact:e.redact,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function Xe(t){let{redact:n,outputPath:r,logger:a}=t,o=t.userLogsDir??F(H(),`.ok`,`logs`),c=t.projectDir?Re(t.projectDir,a):null;R(P(r),{recursive:!0}),a?.info({projectSlug:c},`gathering diagnostic data`);let l=ze();l.desktop=t.desktop??null,l.language=t.language??null;let{files:u,excludedByProjectSlug:d}=Ke(c,o),{files:f}=t.projectDir?qe(t.projectDir):{files:[]},{files:p}=t.projectDir?Je(t.projectDir):{files:[]},m=t.shipItLogFiles??[];a?.info({logFileCount:u.length,logFilesExcludedByProjectSlug:d,lockFileCount:f.length,localSinkFileCount:p.length,shipItLogFileCount:m.length},`files collected`);let h=[],g=[],{ZipFile:ee}=await import(`./yazl-BwMlCqRQ.mjs`).then(t=>e(t.default,1)),_=new ee;W({zipfile:_,files:[...u,...m],prefix:`logs`,redact:n,bundleFiles:g,redactions:h,logger:a}),W({zipfile:_,files:f,prefix:`lockdir`,redact:n,bundleFiles:g,redactions:h,logger:a}),W({zipfile:_,files:p,prefix:`local-logs`,redact:n,bundleFiles:g,redactions:h,logger:a}),W({zipfile:_,files:t.bugReportLedgerFiles??[],prefix:i,redact:n,bundleFiles:g,redactions:h,logger:a});for(let e of t.extraFiles??[])try{let t=z(e.sourcePath),n=`extra/${e.zipName??N(e.sourcePath)}`;_.addBuffer(t,n),g.push(n)}catch(t){a?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&Ye({zipfile:_,name:`note.txt`,content:t.note,redact:n,bundleFiles:g,redactions:h});let v=JSON.stringify(l,null,2);_.addBuffer(Buffer.from(v,`utf8`),`sysinfo.json`),g.push(`sysinfo.json`);let y={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:c,files:g,redactions:h,sysinfo:l};_.addBuffer(Buffer.from(JSON.stringify(y,null,2),`utf8`),`MANIFEST.json`);let b=h.reduce((e,t)=>e+t.lineCount,0),x=new Set(m.map(e=>`logs/${N(e)}`)),S=g.filter(e=>x.has(e)),C=new Set((t.bugReportLedgerFiles??[]).map(e=>`${i}/${N(e)}`)),w=g.filter(e=>C.has(e)),T=c?g.filter(e=>e.startsWith(`logs/`)&&!Ve(e)&&!x.has(e)):[],E=[`# Bug Report Bundle`,``,`Generated: ${y.generatedAt}`,`Project: ${c??`(unscoped)`}`,`Discipline version: ${y.disciplineVersion}`,``,`## Contents`,``,...g.map(e=>`- ${e}`),``,`## Privacy`,``,...T.length>0?[`Scope: some collected logs are user-wide rather than project-scoped.`,`These are written once per machine per day and can contain activity`,`from other projects open on this machine, including captured console`,`output:`,...T.map(e=>`- ${e}`),``]:[],...S.length>0?[`Installer logs: written by the macOS update helper rather than by`,`OpenKnowledge itself, and machine-wide rather than scoped to any one`,`project. They record the install and update history of this app on`,`this machine. Only this app is collected, never other applications`,`that use the same update mechanism:`,...S.map(e=>`- ${e}`),``]:[],...w.length>0?[`Send history: a small record for each bug report previously generated`,`on this machine — when it was generated, whether sending it`,`succeeded, and why it failed if it did. This is what makes a failed`,`send diagnosable at all. It is machine-wide rather than scoped to`,`this project, so it names the other projects reports were filed`,`from. It carries no document content:`,...w.map(e=>`- ${e}`),``]:[],...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${s.join(`, `)}`,b>0?`${b} line(s) were scrubbed across ${h.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,``,`This bundle is safe to attach to a GitHub issue.`]:[`Redaction was disabled for this bundle; file contents are unmodified.`]].join(`
|
|
2
|
-
`);_.addBuffer(Buffer.from(E,`utf8`),`README.md`),_.end();let D=he(r);return _.outputStream.pipe(D),await new Promise((e,t)=>{D.on(`close`,e),D.on(`error`,t)}),a?.info({bundlePath:r,fileCount:g.length,redactionCount:b},`bundle written`),{zipPath:r,summary:{projectSlug:c,files:g,redactions:h,redactedLineCount:b,generatedAt:y.generatedAt}}}var Ze=e(E(),1),G=e(O(),1);function Qe(e){return y({absPath:b(`user`,e,e),sideline:!1,warn:()=>{}}).value.appearance?.language??`system`}function $e({home:e=H(),env:n=process.env}={}){let i=Qe(e),{override:o,preferenceList:s}=_(n),{locale:c,source:l}=a({override:o,storedPreference:i,supportedLocales:r,preferenceList:s,autoDetectableLocales:t});return{preference:i,locale:c,source:l,systemLanguages:s}}function et(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function tt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function K(e,t){if(typeof e==`string`)return et(e,t.contentDir);if(Array.isArray(e))return e.map(e=>K(e,t));if(!tt(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=K(i,t);return n}function nt(e,t){let n=z(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
|
|
3
|
-
`),i=n.split(`
|
|
4
|
-
`),a=[];for(let e=0;e<i.length;e++){let n=i[e]??``;if(!(e===i.length-1&&n===``)){if(n.length===0){a.push(``);continue}try{let e=K(JSON.parse(n),t);a.push(JSON.stringify(e))}catch{a.push(n)}}}V(e,r?`${a.join(`
|
|
5
|
-
`)}\n`:a.join(`
|
|
6
|
-
`))}function rt(e,t){let n=z(e,`utf-8`);if(n.trim().length!==0)try{let r=K(JSON.parse(n),t),i=n.endsWith(`
|
|
7
|
-
`)?`
|
|
8
|
-
`:``;V(e,`${JSON.stringify(r,null,2)}${i}`)}catch{let r=et(n,t.contentDir);r!==n&&V(e,r)}}function it(e,t){let n=z(e,`utf-8`),r=et(n,t.contentDir);r!==n&&V(e,r)}function at(e){try{return B(e,{withFileTypes:!0}).filter(e=>e.isFile()).map(t=>F(e,t.name))}catch{return[]}}const ot=new Set([`agent-presence.json`,`agent-effects.json`,`runtime.json`]);function st(e){return/\.log\.\d+$/.test(e)}function ct(e){return e.endsWith(`.jsonl`)||e.endsWith(`.log`)||st(e)}function lt(e){let t={contentDir:e.contentDir};for(let n of[`telemetry`,`logs`,`process`])for(let r of at(F(e.stagingDir,n)))ct(r)?nt(r,t):r.endsWith(`.json`)?rt(r,t):it(r,t);for(let n of at(F(e.stagingDir,`state`))){let e=N(n);n.endsWith(`.jsonl`)?nt(n,t):ot.has(e)?rt(n,t):it(n,t)}}const ut=[`.ok`,`local`,`telemetry`],dt=[`.ok`,`local`,`logs`],ft=[`.ok`,`local`,`loss-capture`],pt=`spans-current.jsonl`,mt=`spans-prev.jsonl`,ht=`server-current.jsonl`,gt=`server-prev.jsonl`,_t=`loss-current.jsonl`,vt=`loss-prev.jsonl`;function yt(e){return F(e,...ut,pt)}function bt(e){return F(e,...ut,mt)}function xt(e){return F(e,...dt,ht)}function St(e){return F(e,...dt,gt)}function Ct(e){return F(e,...ft,_t)}function wt(e){return F(e,...ft,vt)}const Tt=1e3;async function Et(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-presence`,{signal:AbortSignal.timeout(Tt)});return t.ok?await t.text():null}catch{return null}}async function Dt(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-effects`,{signal:AbortSignal.timeout(Tt)});return t.ok?await t.text():null}catch{return null}}async function Ot(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/watcher-recent`,{signal:AbortSignal.timeout(Tt)});return t.ok?await t.text():null}catch{return null}}function kt(e){try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return null;let n=t.decisions;return Array.isArray(n)?n.length===0?``:`${n.map(e=>JSON.stringify(e)).join(`
|
|
9
|
-
`)}\n`:null}catch{return null}}function At(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=de(`git`,[`-C`,t,`log`,`--oneline`,`-50`],d({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function jt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=de(`git`,[`-C`,t,`for-each-ref`,`--sort=-creatordate`,`--count=50`,`--format=%(refname)%09%(creatordate:iso-strict)%09%(contents:subject)`,`refs/checkpoints/`],d({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function Mt(){let e=process.env.OK_DESKTOP_VERSION,t=process.env.OK_DESKTOP_PACKAGED,n=process.env.OK_DESKTOP_CHANNEL;return e===void 0||t===void 0||n===void 0?null:{electronVersion:e,packaged:t===`1`||t.toLowerCase()===`true`,channel:n}}function Nt(){return{nodeVersion:process.version,platform:we(),arch:xe()}}function Pt(){return process.env.OTEL_SDK_DISABLED===`false`}function q(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ft(e){if(!L(e))return{};let t;try{t=(0,je.parse)(z(e,`utf-8`))}catch(t){return console.warn(`[ok diagnose bundle] failed to parse ${e} for manifest config; manifest will report schema defaults. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!q(t))return{};let n=t.telemetry;if(!q(n))return{};let r=n.localSink;return q(r)?r:{}}function It(e){return typeof e==`boolean`?e:void 0}function Lt(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function J(e){if(q(e))return Lt(e.maxBytes)}function Rt(e){let t=Ft(b(`project`,e)),n=Ft(b(`project-local`,e));return{enabled:It(n.enabled)??It(t.enabled)??!0,spansMaxBytes:J(n.spans)??J(t.spans)??52428800,logsMaxBytes:J(n.logs)??J(t.logs)??26214400}}function zt(e){return Ae(`sha256`).update(e).digest(`hex`)}function Bt(e){let t=z(e),n=0;for(let e=0;e<t.length;e++)t[e]===10&&n++;return n}function Vt(e){let t=z(e,`utf-8`),n=`"doc.name"`,r=0,i=t.indexOf(n);for(;i!==-1;)r++,i=t.indexOf(n,i+10);return r}function Y(e,t){if(!L(e))return!1;try{return R(P(t),{recursive:!0}),me(e,t),!0}catch{return!1}}function Ht(e){let t=[],n=e=>{let r=B(e,{withFileTypes:!0});for(let i of r){let r=F(e,i.name);i.isDirectory()?n(r):i.isFile()&&t.push(r)}};return n(e),t.sort()}const Ut=new Set([`.jsonl`]);function Wt(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Ut.has(e.slice(t))}const Gt=new Set([`.jsonl`,`.json`,`.txt`,`.log`,`.lock`,`.yaml`,`.yml`]);function Kt(e){if(st(e))return!0;let t=e.lastIndexOf(`.`);return t===-1?!1:Gt.has(e.slice(t))}function qt(e){let t=[];for(let n of Ht(e)){let r=Jt(e,n);if(!Kt(r))continue;let{redacted:i,patterns:a,lineCount:s}=o(z(n,`utf-8`));a.length!==0&&(V(n,i),t.push({file:r,lineCount:s,patterns:a}))}return{redactions:t,redactedLineCount:t.reduce((e,t)=>e+t.lineCount,0)}}function Jt(e,t){return fe(e,t).split(pe).join(`/`)}async function Yt(e){let t=I(e.contentDir),n=I(e.projectDir??e.contentDir),r=e.deps??{},a=r.fetchAgentPresence??Et,o=r.fetchAgentEffects??Dt,s=r.fetchWatcherRecent??Ot,u=r.readShadowHead??At,d=r.readCheckpointRefs??jt,f=r.now??(()=>new Date),p=r.okVersion??(()=>le),m=r.readDesktopEnv??Mt,h=r.readLanguage??$e,g=r.readRuntime??Nt,ee=r.isOtlpPushEnabled??Pt,_=_e(F(Ee(),`ok-bundle-`));try{R(F(_,`telemetry`),{recursive:!0}),R(F(_,`logs`),{recursive:!0}),R(F(_,`state`),{recursive:!0}),Y(yt(n),F(_,`telemetry`,pt)),Y(bt(n),F(_,`telemetry`,mt)),Y(xt(n),F(_,`logs`,ht)),Y(St(n),F(_,`logs`,gt));for(let t of e.userLogFiles??[])Y(t,F(_,`logs`,N(t)));for(let t of e.userStateFiles??[])Y(t,F(_,i,N(t)));let v=F(n,`.ok`,`local`),y=F(v,`server.lock`),b=`not-running`,x=`no server.lock`,S=null;if(L(y)){Y(y,F(_,`state`,`server.lock`));try{let e=z(y,`utf-8`),t=JSON.parse(e);typeof t.port==`number`?S=t.port:x=`lock present but no port`}catch{x=`lock present but unparseable`}}if(S!==null){let e=await a(S);e===null?x=`agent-presence endpoint at :${S} unreachable`:(V(F(_,`state`,`agent-presence.json`),e),b=`running`,x=``);let t=await o(S);t!==null&&V(F(_,`state`,`agent-effects.json`),t);let n=await s(S);if(n!==null){let e=kt(n);e!==null&&V(F(_,`state`,`watcher-recent.jsonl`),e)}}let C=u(t);C!==null&&V(F(_,`state`,`shadow-head.txt`),C);let w=d(t);w!==null&&V(F(_,`state`,`checkpoint-refs.txt`),w),Y(Ct(n),F(_,`state`,_t)),Y(wt(n),F(_,`state`,vt)),Y(F(v,`last-spawn-error.log`),F(_,`state`,`last-spawn-error.log`)),Y(F(v,l),F(_,`state`,l)),Y(F(v,c),F(_,`state`,c));let T=g(),E=m(),D=h(),te={ok:{version:p(),nodeVersion:T.nodeVersion,platform:T.platform,arch:T.arch},host:{desktop:E,language:D}};V(F(_,`state`,`runtime.json`),`${JSON.stringify(te,null,2)}\n`);let ne=b===`running`?`running
|
|
10
|
-
`:`not-running (${x})\n`;if(V(F(_,`state`,`server-status.txt`),ne),e.processDir&&L(e.processDir)){let t=F(_,`process`);R(t,{recursive:!0}),me(e.processDir,t,{recursive:!0})}let O=e.redact===!0;O&<({stagingDir:_,contentDir:t}),e.note&&V(F(_,`note.txt`),e.note);let k=null;e.scrubSecrets===!0&&(k=qt(_));for(let t of e.extraFiles??[])Y(t.sourcePath,F(_,`extra`,t.zipName??N(t.sourcePath)))||r.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let re=Rt(n),ie=Ht(_),A=[],ae=0,j=0;for(let e of ie){let t=Jt(_,e),n=be(e).size,r=Wt(t)?Bt(e):0;A.push({path:t,bytes:n,lines:r}),ae+=n,t.startsWith(`telemetry/`)&&Wt(t)&&(j+=Vt(e))}let oe={applied:O};k!==null&&(oe.secretScrub=k);let se={schemaVersion:2,createdAt:f().toISOString(),ok:{version:p(),nodeVersion:T.nodeVersion,platform:T.platform,arch:T.arch},host:{desktop:E,language:D},contentDir:{pathSha256:zt(t),absolutePath:O?`<CONTENT_DIR>`:t},telemetry:{localSink:re,otlpPushEnabled:ee()},redaction:oe,serverStatus:b,files:A};V(F(_,`manifest.json`),`${JSON.stringify(se,null,2)}\n`);let ce=ie.some(e=>{try{return z(e,`utf-8`).includes(t)}catch{return!1}}),le={totalBytes:ae,fileCount:A.length,docNameCount:j,contentDirVisible:ce,redacted:O},M=!1;return{stagingDir:_,manifest:se,summary:le,cleanup:()=>{M||(M=!0,ye(_,{recursive:!0,force:!0}))}}}catch(e){throw ye(_,{recursive:!0,force:!0}),e}}async function Xt(e){let{collected:t,outputPath:n}=e,r=P(n);if(!L(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);let i=new Ze.ZipFile,a=Ht(t.stagingDir);for(let e of a){let n=Jt(t.stagingDir,e);i.addFile(e,n)}i.end();let o=he(n);return i.outputStream.pipe(o),await new Promise((e,t)=>{o.on(`close`,e),o.on(`error`,t),i.outputStream.on(`error`,t)}),n}function Zt(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let t=(0,je.parse)(z(n,`utf-8`)),r=M(t)?t.content:void 0,i=M(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return I(e,i)}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml; falling back to project root as content dir`)}return I(e)}async function Qt(e,t,n,r){let i=Re(t,e.logger),a=await Yt({contentDir:Zt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,userLogFiles:[...He(i,e.userLogsDir??F(H(),`.ok`,`logs`)),...We(e.cachesDir??F(H(),`Library`,`Caches`))],userStateFiles:Ge(e.bugReportsDir??U()),deps:{readDesktopEnv:n,readLanguage:r,logger:e.logger}});try{R(P(e.outputPath),{recursive:!0}),await Xt({collected:a,outputPath:e.outputPath});let t=a.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:i,files:a.manifest.files.map(e=>e.path),redactions:t?.redactions??[],redactedLineCount:t?.redactedLineCount??0,generatedAt:a.manifest.createdAt}}}finally{a.cleanup()}}async function $t(e){let{projectDir:t}=e,n=e.readDesktopEnv??Mt,r=e.readLanguage??$e;if(e.level===`full`&&t!==void 0)return Qt(e,t,n,r);let{zipPath:i,summary:a}=await Xe({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,shipItLogFiles:We(e.cachesDir??F(H(),`Library`,`Caches`)),bugReportLedgerFiles:Ge(e.bugReportsDir??U()),logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n(),language:r()});return{zipPath:i,summary:{level:e.level,systemWide:t===void 0,projectSlug:a.projectSlug,files:a.files,redactions:a.redactions,redactedLineCount:a.redactedLineCount,generatedAt:a.generatedAt}}}function en(e,t){if(!L(e))return{status:`missing`,lockPath:e};let n;try{n=JSON.parse(z(e,`utf-8`))}catch{return{status:`corrupt`,lockPath:e}}if(!n||typeof n!=`object`||!x(n.pid))return{status:`corrupt`,lockPath:e};let r=n;if(!(t.isAlive??S)(r.pid))return{status:`dead-pid`,lockPath:e,lock:r};if(typeof r.machineId==`string`)return r.machineId===(t.machineId??C())?{status:`alive`,lockPath:e,lock:r}:{status:`foreign-host`,lockPath:e,lock:r};let i=t.host??Ce();return r.hostname===i?{status:`alive`,lockPath:e,lock:r}:{status:`foreign-host`,lockPath:e,lock:r}}function X(e,t,n={}){return en(w(e,t),n)}function Z(e,t={}){return en(F(e,`ui.lock`),t)}function tn(e){return e.replace(/:\d+$/,``)}function nn(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/(?:[^/?#]*@)?([^@/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:tn(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[^/?#]*@)?([^@/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:tn(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:tn(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.\-~%]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}const rn=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function an(e){return F(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const on={existsSync:e=>L(e),readFileSync:(e,t)=>z(e,t),lstatSync:e=>ge(e),readlinkSync:e=>ve(e)};function sn(e,t=on){let n=an(e);if(!t.existsSync(n))return null;try{let e=JSON.parse(t.readFileSync(n,`utf8`));return e?.version===1?e:null}catch{return null}}function cn(e){let t=e.replace(rn,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function ln(e,t,n=on){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function un(e){return te(e)||D(e)||ae(e)}const dn=10*1024*1024;function fn(e,t,n,r){let i=ce(e,t,n,r);if(i.kind===`absent`||i.kind===`no-entry`)return{kind:`not-present`};if(i.kind===`decline`)return{kind:`declined`,reason:i.reason};if(!un(i.entry))return{kind:`left-foreign`};let a;try{a=r??e.configPath(t,n)}catch{return{kind:`not-present`}}let o=e.serverName(t);if(e.format===`file`){ye(a,{force:!0});let e=re(t,n);return{kind:`removed`,trust:e.action,...e.error===void 0?{}:{trustError:e.error}}}return e.format===`toml`?hn(a,o):e.format===`yaml`?mn(a,e.topLevelKey,o):pn(a,e.topLevelKey,e.serverMapSubKey,o)}function pn(e,t,n,r){let i;try{i=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(i,`utf-8`)>dn)return{kind:`declined`,reason:`oversize`};let{text:a,changed:o}=ie(i,oe(t,n,r));return o?(v(e,a,{mode:j(e)}),{kind:`removed`}):{kind:`not-present`}}function mn(e,t,n){let r;try{r=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(r,`utf-8`)>dn)return{kind:`declined`,reason:`oversize`};let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=(0,je.parseDocument)(a);if(o.errors.length>0)return{kind:`declined`,reason:`unparseable`};let s=[t,n];if(!o.hasIn(s))return{kind:`not-present`};o.deleteIn(s);let c=o.toString(),l=A(a);a.trim()===``||a.endsWith(`
|
|
11
|
-
`)?c.endsWith(`
|
|
12
|
-
`)||(c=`${c}\n`):c=c.replace(/\n+$/,``),l&&(c=c.replace(/\r\n/g,`
|
|
13
|
-
`).replace(/\n/g,`\r
|
|
14
|
-
`));let u=`${i?``:``}${c}`;return u!==r&&v(e,u,{mode:j(e)}),{kind:`removed`}}function hn(e,t){let n=se();if(n.backend===`fallback`)return{kind:`declined`,reason:`no-native-writer`};let r;try{r=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=A(a),s=a.trim()===``||a.endsWith(`
|
|
15
|
-
`),c;try{c=n.removeEntry(a,t)}catch{return{kind:`declined`,reason:`unparseable`}}if(!c.existed)return{kind:`not-present`};let l=c.text;s?l.endsWith(`
|
|
16
|
-
`)||(l=`${l}\n`):l=l.replace(/\n+$/,``),o&&(l=l.replace(/\r\n/g,`
|
|
17
|
-
`).replace(/\n/g,`\r
|
|
18
|
-
`));let u=`${i?``:``}${l}`;return u!==r&&v(e,u,{mode:j(e)}),{kind:`removed`}}function gn(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function _n(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function vn(e,t,n,r){if(t.status===`missing`||t.status===`corrupt`)return null;let i=t.lock,a=t.status===`alive`&&T(i)?{port:i.port,status:t.status,pid:i.pid,startedAt:i.startedAt,usage:r}:null;return{directory:i.worktreeRoot,server:{port:i.port,status:t.status,pid:i.pid,startedAt:i.startedAt,usage:r},ui:a,hostname:i.hostname,lockPath:t.lockPath,binary:n==null?null:ee(n),command:n,isDesktop:gn(n)}}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:`stale`}const yn=new Set([`running`,`desktop`,`foreign`]);function bn(e){switch(e){case`running`:return G.default.green(e);case`desktop`:return G.default.blue(e);case`foreign`:return G.default.cyan(e);case`stale`:return G.default.yellow(e)}}function xn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function Sn(e){return`${xn(e.server.usage)} | ${xn(e.ui?.usage??null)}`}function Cn(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null?`—`:String(e.ui.port)}`}function wn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>[e.directory,Cn(e),Sn(e),Q(e),String(e.server.pid),_n(e.server.startedAt),e.binary??`—`]),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=bn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=G.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
|
|
19
|
-
`)}async function Tn(e={}){let t=e.discover??g,n=e.inspect??X,r=e.log??(e=>console.log(e)),i=e.resolveCommand??f,a=e.resolveUsage??h,o=await t(),s=[];for(let e of o){let t=n(e,`server`),r=vn(e,t,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid));r!=null&&s.push(r)}if(e.json){let e=s.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(wn(e.all?s:s.filter(e=>yn.has(Q(e)))))}function En(){return new ne(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await Tn({all:t.all===!0||e===`all`,json:t.json===!0})})}function Dn(e,t,n={}){let r=n.isAlive??S,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function On(e){let t=e.inspect??(t=>t===`ui`?Z(e.lockDir):X(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=Dn(t(`server`),t(`ui`),{isAlive:e.isAlive});if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function kn(e,t=S){let n=await g(),r=null;for(let i of n){let n=X(i,`server`),a=Z(i);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function An(e){let t=On({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function jn(e){return new ne(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=On({lockDir:p(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await Tn({});return}if(n===`all`){let e=await g();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=X(n,`server`),r=Z(n);!$(e,S)&&!$(r,S)||(An(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await kn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}An(t);return}An(p(I(Ie(),n)))})}export{U as _,rn as a,Ne as b,sn as c,Z as d,X as f,Le as g,Xt as h,fn as i,cn as l,Yt as m,jn as n,ln as o,$t as p,En as r,an as s,On as t,nn as u,Ie as v,Fe as y};
|
|
20
|
-
//# sourceMappingURL=src-BvV3skiE.mjs.map
|