@inkeep/open-knowledge 0.38.0-beta.9 → 0.38.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.
- package/dist/THIRD_PARTY_NOTICES.md +7 -6
- package/dist/{acp-harness-probe-BXgvrzfd.mjs → acp-harness-probe-BiIP2ma7.mjs} +2 -2
- package/dist/assets/skills/discovery/SKILL.md +1 -1
- package/dist/assets/skills/project/SKILL.md +1 -1
- package/dist/assets/skills/write-skill/SKILL.md +1 -1
- package/dist/cli.mjs +62 -64
- package/dist/constants-C66Cr63I.mjs +2 -0
- package/dist/git-handle-DluCIpMR.mjs +1 -0
- package/dist/{git-handle-B30Z3S49.mjs → git-handle-DnLoe9hy.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/init-Bos4UGuO.mjs +1 -0
- package/dist/{init-CzBUWeSe.mjs → init-CZem0BSM.mjs} +5 -5
- package/dist/{launch-json-removal-4bMDpY61.mjs → launch-json-removal-DhJlKIWu.mjs} +2 -2
- package/dist/loader-BZ4AallX.mjs +1 -0
- package/dist/{loader-DigniDF3.mjs → loader-Bi9_RmKT.mjs} +2 -2
- package/dist/md-manager-DtA0LK6p.mjs +2 -0
- package/dist/{open-browser-D6esrKJP.mjs → open-browser-Bbzq7Z7d.mjs} +2 -2
- package/dist/parse-worker.mjs +1 -1
- package/dist/preview-DJVI5fyI.mjs +1 -0
- package/dist/{preview-bPeVpuMS.mjs → preview-ofV-XWka.mjs} +2 -2
- package/dist/public/assets/{ActivityModeContent-BMPZl3tb.js → ActivityModeContent-CQTRie_S.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-Cw5qpBlW.js → AgentDiffPane-ZsuLVO9W.js} +1 -1
- package/dist/public/assets/{AgentThreadClientBinder-CBCAdG4p.js → AgentThreadClientBinder-poPjsQXP.js} +1 -1
- package/dist/public/assets/{AppMenubar-hPGBtMtR.js → AppMenubar-DqlpmcU7.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-QvShYcbF.js → CodeMirrorPropInput-DUwQlljh.js} +3 -3
- package/dist/public/assets/{DocumentContext-BvywpAcT.js → DocumentContext-CPZffvoA.js} +2 -2
- package/dist/public/assets/{EnableSyncConfirmDialog-5rWSIoBH.js → EnableSyncConfirmDialog-BfZ_iVD2.js} +1 -1
- package/dist/public/assets/{FeedbackForm-BGZFeizL.js → FeedbackForm-BUn96JmL.js} +1 -1
- package/dist/public/assets/{GraphPanel-CG7ehFyf.js → GraphPanel-BjCltqW1.js} +1 -1
- package/dist/public/assets/{ManagedArtifactProperties-DHph_UjU.js → ManagedArtifactProperties-CHmkRShb.js} +1 -1
- package/dist/public/assets/{McpConsentDialogBody-BEu_w4lu.js → McpConsentDialogBody-B0VkhB1e.js} +1 -1
- package/dist/public/assets/{MermaidDocEditor-CkwmBdaN.js → MermaidDocEditor-cedDjA-A.js} +1 -1
- package/dist/public/assets/PropertyPanel-CpcpWkfS.js +2 -0
- package/dist/public/assets/{ReportBugDialogBody--5aXNg8I.js → ReportBugDialogBody-hPmCfQyc.js} +1 -1
- package/dist/public/assets/{SettingsDialogBody-DjAi_I1t.js → SettingsDialogBody-B6_psJil.js} +1 -1
- package/dist/public/assets/{ShareBranchSwitchDialog-Dz3x9STZ.js → ShareBranchSwitchDialog-GXTPAgND.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-B4PVwjNG.js → ShareReceiveDialog-IVAS4xf8.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-CfmR8h5c.js → ShareReceiveMissDialog-ClkBICGx.js} +1 -1
- package/dist/public/assets/{SkillEditorActions-Dr52b0PZ.js → SkillEditorActions-BEtnBlep.js} +1 -1
- package/dist/public/assets/{SourceEditor-DSyO1lGU.js → SourceEditor-Bp45kdTW.js} +1 -1
- package/dist/public/assets/{TerminalPanel-BpSo4w0_.js → TerminalPanel-CUoZt7C0.js} +1 -1
- package/dist/public/assets/{TerminalSessionsHost-C289EqcI.js → TerminalSessionsHost-CNebjNFj.js} +2 -2
- package/dist/public/assets/{TerminalWindowApp-Bd8MRyRT.js → TerminalWindowApp-B6bT25Jw.js} +1 -1
- package/dist/public/assets/{ThreadView-DNyNBhL-.js → ThreadView-CmIHLGuV.js} +1 -1
- package/dist/public/assets/{TimelineDiffPane-oLpdDeEi.js → TimelineDiffPane-DffKOwf1.js} +1 -1
- package/dist/public/assets/{abnfDiagram-VRR7QNED-D9F9DXsr.js → abnfDiagram-VRR7QNED-VSTZcs2U.js} +1 -1
- package/dist/public/assets/{agent-diff-store-Bd0NDaYd.js → agent-diff-store-D6N0WX_4.js} +1 -1
- package/dist/public/assets/{agent-visibility-bo7-lQPw.js → agent-visibility-Z2AQQ5Ce.js} +1 -1
- package/dist/public/assets/architecture-TIHT7OUA-ei5hsjAY.js +1 -0
- package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-DfsVDv0h.js → architectureDiagram-ZJ3FMSHR-CdM-QQxh.js} +1 -1
- package/dist/public/assets/{auth-state-cache-DPxIwzLQ.js → auth-state-cache-CfU3gJ3i.js} +1 -1
- package/dist/public/assets/{chunk-5FCAYU7R-BZbSx9vA.js → chunk-5FCAYU7R-NiUcHUPk.js} +1 -1
- package/dist/public/assets/{chunk-5HE753X5-B2Flc7i4.js → chunk-5HE753X5-Dg-RP8eS.js} +1 -1
- package/dist/public/assets/{chunk-5JV3BV7I-B6P7lOib.js → chunk-5JV3BV7I-B4O-mi81.js} +1 -1
- package/dist/public/assets/{chunk-5TONJI2A-Bx2IxKM5.js → chunk-5TONJI2A-0kIjpsBw.js} +1 -1
- package/dist/public/assets/{chunk-BIQX33UG-BK09YW6f.js → chunk-BIQX33UG-D48fi9B_.js} +1 -1
- package/dist/public/assets/{chunk-CQNSW5MT-BAtlNSBX.js → chunk-CQNSW5MT-v0U-WvYg.js} +1 -1
- package/dist/public/assets/{chunk-CYSBUYHQ-D8hsDORv.js → chunk-CYSBUYHQ-DxqLAiLc.js} +1 -1
- package/dist/public/assets/{chunk-EMLP6XTP-ChQSYJxh.js → chunk-EMLP6XTP-CJ9U9-wH.js} +1 -1
- package/dist/public/assets/{chunk-JG7HCLWE-Biog_J3i.js → chunk-JG7HCLWE-C-1xmmk6.js} +1 -1
- package/dist/public/assets/{chunk-MOZMSUNE-CPb1eEls.js → chunk-MOZMSUNE-C1Vt9ku6.js} +1 -1
- package/dist/public/assets/{chunk-OSBZ3O6U-DLOl9lpV.js → chunk-OSBZ3O6U-C6W744Of.js} +1 -1
- package/dist/public/assets/{chunk-QBLGF6JB-CXHeFNVR.js → chunk-QBLGF6JB-gEqmaH-L.js} +1 -1
- package/dist/public/assets/{chunk-R7FJI6CG-C16CHt3a.js → chunk-R7FJI6CG-BDAk393G.js} +1 -1
- package/dist/public/assets/{chunk-U6XO7XAA-DbjPtJON.js → chunk-U6XO7XAA-BrFJStxD.js} +1 -1
- package/dist/public/assets/{chunk-YOTPTUD7-CI44npHy.js → chunk-YOTPTUD7-D0J4uIcv.js} +1 -1
- package/dist/public/assets/client-version-BBhtdyiC.js +1 -0
- package/dist/public/assets/{config-provider-DEma7e0E.js → config-provider-DstRVgzH.js} +1 -1
- package/dist/public/assets/cynefin-VYW2F7L2-CSnwYRoV.js +1 -0
- package/dist/public/assets/{cynefinDiagram-TSTJHNR4-BerNcsRY.js → cynefinDiagram-TSTJHNR4-BSgy8cxo.js} +1 -1
- package/dist/public/assets/{diagram-FQU43EPY-Bn3pI3fo.js → diagram-FQU43EPY-CMvIHgbq.js} +1 -1
- package/dist/public/assets/{diagram-G47NLZAW-DlmHXzE8.js → diagram-G47NLZAW-fKFf9jF_.js} +1 -1
- package/dist/public/assets/{diagram-NH7WQ7WH-DSU5C3aY.js → diagram-NH7WQ7WH-B7-_M2pB.js} +1 -1
- package/dist/public/assets/{diagram-OA4YK3LP-BxczHUUr.js → diagram-OA4YK3LP-DZtbNsi6.js} +1 -1
- package/dist/public/assets/{diagram-WEI45ONY-9RfHZ21T.js → diagram-WEI45ONY-CCuX-lrB.js} +1 -1
- package/dist/public/assets/dist-BS_gC2L8.js +124 -0
- package/dist/public/assets/{dist-BmKvzgDR.js → dist-DKsN2Ojq.js} +1 -1
- package/dist/public/assets/{dist-df-v6kvy.js → dist-Vm1kQiqo.js} +64 -64
- package/dist/public/assets/{doc-hash-NyLrtNo2.js → doc-hash-B8kD24Kw.js} +1 -1
- package/dist/public/assets/{documents-events-BHJB8gGz.js → documents-events-DQ6Iario.js} +1 -1
- package/dist/public/assets/{ebnfDiagram-CCIWWBDH-D2xzvzqw.js → ebnfDiagram-CCIWWBDH-lTULSp5K.js} +1 -1
- package/dist/public/assets/eventmodeling-45OFAUF4-DaV8ZCTn.js +1 -0
- package/dist/public/assets/{file-tree-adapter-BnZwo5Ls.js → file-tree-adapter-eftmn56d.js} +1 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-P9_tpoZt.js +1 -0
- package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-LRtYXzVh.js → gitGraphDiagram-IHSO6WYX-DST3agGX.js} +1 -1
- package/dist/public/assets/index-BgQgA_cx.js +1995 -0
- package/dist/public/assets/index-POPidK7Y.css +1 -0
- package/dist/public/assets/info-DKCQHKI2-DJJ8FtaQ.js +1 -0
- package/dist/public/assets/{infoDiagram-FWYZ7A6U-CoQbECuU.js → infoDiagram-FWYZ7A6U-Cj1rH5Ql.js} +1 -1
- package/dist/public/assets/{keyboard-shortcuts-Ctc7xams.js → keyboard-shortcuts-DZ9kTSZ4.js} +1 -1
- package/dist/public/assets/{lint-config-client-BwIg_Zty.js → lint-config-client-Bg-6mquJ.js} +1 -1
- package/dist/public/assets/{mermaid-parser.core-3Xu6H-xr.js → mermaid-parser.core-BO-Jr815.js} +2 -2
- package/dist/public/assets/{mermaid.core-BgfUsmdk.js → mermaid.core-BQ2yyMHt.js} +3 -3
- package/dist/public/assets/{navigation-targets-D1rdXyAI.js → navigation-targets-4J3F85tT.js} +1 -1
- package/dist/public/assets/{open-managed-artifact-tab-MjzvjrV8.js → open-managed-artifact-tab-ze9HkqWn.js} +1 -1
- package/dist/public/assets/packet-7NZHBO7P-DOwsFu9x.js +1 -0
- package/dist/public/assets/{pegDiagram-2B236MQR-BWoigFVh.js → pegDiagram-2B236MQR-VQ3qdS5Z.js} +1 -1
- package/dist/public/assets/{pending-receive-nav-store-D7HSeXpy.js → pending-receive-nav-store-CVDTioM4.js} +1 -1
- package/dist/public/assets/pie-RZYD4A2V-DEV7c1Ne.js +1 -0
- package/dist/public/assets/{pieDiagram-ENE6RG2P-CkC6m5hO.js → pieDiagram-ENE6RG2P-B5fNaqzS.js} +1 -1
- package/dist/public/assets/{prop-types-C0wWXvTx.js → prop-types-B0l6ZN6O.js} +1 -1
- package/dist/public/assets/radar-I7S5WNFK-B607lrnK.js +1 -0
- package/dist/public/assets/railroad-3IZDKUUU-CRgAnFFT.js +1 -0
- package/dist/public/assets/railroad-abnf-AHOZXSZD-DulrY9_U.js +1 -0
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-D8e0kEYb.js +1 -0
- package/dist/public/assets/railroad-peg-LSFZ7HO6-C2iIAAkK.js +1 -0
- package/dist/public/assets/{railroadDiagram-RFXS5EU6-DFdEG7eg.js → railroadDiagram-RFXS5EU6-hi-XN2Rm.js} +1 -1
- package/dist/public/assets/{receive-store-B3ygF-LA.js → receive-store-jfaprLyZ.js} +1 -1
- package/dist/public/assets/{selection-context-t5daNj99.js → selection-context-BpEA0WhV.js} +1 -1
- package/dist/public/assets/{skill-actions-DeZSwOo7.js → skill-actions-s_ATobEI.js} +1 -1
- package/dist/public/assets/{skills-api-vt4KnCX6.js → skills-api-CYoD9FQt.js} +1 -1
- package/dist/public/assets/{src-BS_Yyi8K.js → src-B-pNk3y3.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-DNrmu8Sx.js → target-navigation-intent-95GTKrco.js} +1 -1
- package/dist/public/assets/{telemetry-impl-DEJSJ5rS.js → telemetry-impl-BgQUPJ0t.js} +1 -1
- package/dist/public/assets/{telemetry-startup-Bvr_iW-w.js → telemetry-startup-DcvNN2rn.js} +1 -1
- package/dist/public/assets/{terminal-launch-events-vDhBoD8w.js → terminal-launch-events-D0NkBM4g.js} +1 -1
- package/dist/public/assets/{terminal-telemetry-D1lMQO11.js → terminal-telemetry-DxZXlrf4.js} +1 -1
- package/dist/public/assets/treeView-QDETBFTQ-DIWn4fzK.js +1 -0
- package/dist/public/assets/treemap-6X3UGDF4-WPqEPk4A.js +1 -0
- package/dist/public/assets/{typing-burst-detector-GlRUPS8u.js → typing-burst-detector-CI_4wux0.js} +1 -1
- package/dist/public/assets/{use-activity-panel-Dq1IdrW7.js → use-activity-panel-DoU5dDI7.js} +1 -1
- package/dist/public/assets/{use-apply-config-color-theme-R1RZkk5a.js → use-apply-config-color-theme-DBdIMwiU.js} +1 -1
- package/dist/public/assets/{use-collab-url-B-LUA0g9.js → use-collab-url-CwAStsIj.js} +1 -1
- package/dist/public/assets/{use-live-xterm-theme-DW54zfIk.js → use-live-xterm-theme-oqXGh0AM.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-CqEC-KDC.js → use-terminal-enabled-B1QnDzPO.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-CHEjXPj0.js → use-timeline-entry-diff-C_hkFzJg.js} +2 -2
- package/dist/public/assets/{use-workspace-0T1cdRp3.js → use-workspace-DyAcZSjY.js} +1 -1
- package/dist/public/assets/wardley-OPB4EBWU-CFdyGX48.js +1 -0
- package/dist/public/assets/{wardleyDiagram-EHGQE667-C30zq5TO.js → wardleyDiagram-EHGQE667-ZOtSnSGU.js} +1 -1
- package/dist/public/assets/{workspace-paths-nkXut9sM.js → workspace-paths-B_ozK4P-.js} +1 -1
- package/dist/public/assets/{zod-BmQcPlGk.js → zod-CCGVCn6n.js} +1 -1
- package/dist/public/index.html +36 -36
- package/dist/{repair-launch-json-BXp_E5e-.mjs → repair-launch-json-BGucssnq.mjs} +2 -2
- package/dist/{repair-mcp-configs-CecsGNcz.mjs → repair-mcp-configs-DmRQJ8ZA.mjs} +2 -2
- package/dist/{repair-skills-B7V4_S1t.mjs → repair-skills-DaVaOiQC.mjs} +2 -2
- package/dist/repair-skills-vw_jVt0o.mjs +1 -0
- package/dist/server-lock-DZZ64TDY.mjs +1 -0
- package/dist/{server-lock-CSEWSPO0.mjs → server-lock-DzWMWbLN.mjs} +2 -2
- package/dist/{src-FuRMJntf.mjs → src-Cwu3lS3D.mjs} +107 -107
- package/dist/{src-BEhsONIX.mjs → src-DJ0-ChPY.mjs} +6 -6
- package/dist/src-DxAg43k_.mjs +3264 -0
- package/dist/{src-DuSq_ZD1.mjs → src-eVRfK1KK.mjs} +1 -1
- package/dist/start-9DwCccQZ.mjs +3 -0
- package/dist/start-CyWHw24I.mjs +1 -0
- package/dist/{write-project-skill-BD-Ei4Cn.mjs → write-project-skill-DtERurRT.mjs} +4 -4
- package/package.json +4 -4
- package/dist/constants-BJqUJSv-.mjs +0 -2
- package/dist/git-handle-RhB108wn.mjs +0 -1
- package/dist/init-4NtP5JU0.mjs +0 -1
- package/dist/loader-BgbJbbJx.mjs +0 -1
- package/dist/md-manager-DqdW_K1F.mjs +0 -2
- package/dist/preview-CoMTeiii.mjs +0 -1
- package/dist/public/assets/PropertyPanel-SSFVfVqt.js +0 -2
- package/dist/public/assets/architecture-TIHT7OUA-B1GVwxkr.js +0 -1
- package/dist/public/assets/client-version-CCRyjBYZ.js +0 -1
- package/dist/public/assets/cynefin-VYW2F7L2-IoPsg8uT.js +0 -1
- package/dist/public/assets/dist-DfKVxirz.js +0 -124
- package/dist/public/assets/eventmodeling-45OFAUF4-Miu5EHpe.js +0 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-OmjugmYN.js +0 -1
- package/dist/public/assets/index-CJ7E0pG6.css +0 -1
- package/dist/public/assets/index-NnhVM8i9.js +0 -1995
- package/dist/public/assets/info-DKCQHKI2-BNI5cXhn.js +0 -1
- package/dist/public/assets/packet-7NZHBO7P-B_5BB2Lm.js +0 -1
- package/dist/public/assets/pie-RZYD4A2V-DN_XCApP.js +0 -1
- package/dist/public/assets/radar-I7S5WNFK-KdS1Y0nk.js +0 -1
- package/dist/public/assets/railroad-3IZDKUUU-CargXMo2.js +0 -1
- package/dist/public/assets/railroad-abnf-AHOZXSZD-rKz-719h.js +0 -1
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-BwxcIuUm.js +0 -1
- package/dist/public/assets/railroad-peg-LSFZ7HO6-D-qfZOX5.js +0 -1
- package/dist/public/assets/treeView-QDETBFTQ-ocdjjjzR.js +0 -1
- package/dist/public/assets/treemap-6X3UGDF4-PQZ2TLFo.js +0 -1
- package/dist/public/assets/wardley-OPB4EBWU-CAyNEwcQ.js +0 -1
- package/dist/repair-skills-OJT-GLmM.mjs +0 -1
- package/dist/server-lock-BjmrAQDi.mjs +0 -1
- package/dist/src-DBW4MhVj.mjs +0 -3264
- package/dist/start-BLpCv7H7.mjs +0 -3
- package/dist/start-ByI_eq9k.mjs +0 -1
- /package/dist/public/assets/{chunk-KEIR6QF5-dYt3HMDt.js → chunk-KEIR6QF5-CFEoHvxJ.js} +0 -0
- /package/dist/public/assets/{dist-Y35lJRjm.js → dist-BneDw0Gk.js} +0 -0
- /package/dist/public/assets/{panzoom.es-DSQCRJbU.js → panzoom.es-BH0upAOZ.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DTipWd-i.mjs";import{F as t,I as n,
|
|
1
|
+
import{o as e}from"./chunk-DTipWd-i.mjs";import{F as t,I as n,la as r}from"./src-Cwu3lS3D.mjs";import{Er as i,Nr as a,it as o,ma as s,nt as c,rn as l,rt as u,tt as d}from"./src-DxAg43k_.mjs";import{U as f}from"./sleep-DcENuR74.mjs";import{O as p,P as m}from"./fs-traced-B-qtPUmb.mjs";import{S as h,u as g,v as _,x as v}from"./server-lock-DzWMWbLN.mjs";import{t as y}from"./yazl-BafwB467.mjs";import{_ as b,g as x,i as ee,l as te,x as S}from"./write-project-skill-DtERurRT.mjs";import"./acp-harness-probe-BiIP2ma7.mjs";import{E as ne,S as re,T as ie,_ as C,b as w,o as ae,v as oe,w as T}from"./init-CZem0BSM.mjs";import{n as E}from"./constants-C66Cr63I.mjs";import{t as D}from"./is-object-Bw0-z8qH.mjs";import"./loader-Bi9_RmKT.mjs";import{c as O}from"./colors-_gzKDfrv.mjs";import"./preview-ofV-XWka.mjs";import{execSync as k,spawnSync as se}from"node:child_process";import{basename as A,dirname as j,isAbsolute as ce,join as M,relative as le,resolve as N,sep as ue}from"node:path";import{cpSync as de,createWriteStream as fe,existsSync as P,lstatSync as pe,mkdirSync as F,mkdtempSync as me,readFileSync as I,readdirSync as he,readlinkSync as ge,rmSync as L,statSync as _e,writeFileSync as R}from"node:fs";import{arch as ve,freemem as ye,homedir as be,hostname as xe,platform as Se,release as Ce,tmpdir as we,totalmem as Te,type as Ee,uptime as De}from"node:os";import{realpath as z}from"node:fs/promises";import{createHash as B}from"node:crypto";const Oe=[{name:`macos-home-path`,regex:/\/Users\/[^/]+\//g,replacement:`~/`},{name:`linux-home-path`,regex:/\/home\/[^/]+\//g,replacement:`~/`},{name:`github-pat`,regex:/\b(ghp_|gho_|ghu_|ghs_|ghr_)[A-Za-z0-9]{36,}\b/g,replacement:`[REDACTED-GH-PAT]`},{name:`aws-access-key`,regex:/\b(AKIA|ASIA|ABIA)[A-Z2-7]{16}\b/g,replacement:`[REDACTED-AWS-KEY]`},{name:`anthropic-key`,regex:/\bsk-ant-api03-[A-Za-z0-9_-]{20,}\b/g,replacement:`[REDACTED-ANTHROPIC]`},{name:`openai-key`,regex:/\bsk-[A-Za-z0-9]{20,}\b/g,replacement:`[REDACTED-OPENAI]`},{name:`bearer-token`,regex:/([Aa]uthorization:\s*[Bb]earer\s+)\S+/g,replacement:`$1[REDACTED]`},{name:`jwt`,regex:/eyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g,replacement:`[REDACTED-JWT]`},{name:`url-credentials`,regex:/:\/\/[^/\s:@]+:[^/\s:@]+@/g,replacement:`://[REDACTED]@`}],ke=Oe.map(e=>e.name);function V(e){let t=new Set,n=0;return{redacted:e.split(`
|
|
2
2
|
`).map(e=>{let r=e;for(let{name:e,regex:i,replacement:a}of Oe)i.lastIndex=0,i.test(r)&&(t.add(e),n++,i.lastIndex=0,r=r.replace(i,a));return r}).join(`
|
|
3
3
|
`),patterns:[...t],lineCount:n}}function Ae(){return M(be(),`.ok`,`bug-reports`)}function je(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`);return M(Ae(),`${t}-bugreport.zip`)}function Me(e,t){let n=M(e,`.ok`,`config.yml`);if(P(n))try{let e=I(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 P(M(e,`.ok`))?B(`sha256`).update(N(e)).digest(`hex`).slice(0,12):null}function Ne(){let e={timestamp:new Date().toISOString(),platform:Se(),osType:Ee(),osRelease:Ce(),hostname:`[redacted]`,uptime:De(),freeMem:ye(),totalMem:Te(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=k(`sw_vers -productVersion 2>/dev/null`,a({encoding:`utf8`})).trim()}catch{}try{let t=M(__dirname,`..`,`..`,`package.json`);P(t)&&(e.okVersion=JSON.parse(I(t,`utf8`)).version)}catch{}return e}function Pe(e,t){if(!P(t))return{files:[]};let n=he(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>M(t,e));if(e&&n.length>0){let t=n.filter(t=>{try{return I(t,`utf8`).includes(`"project":"${e}"`)}catch{return!0}});t.length>0&&(n=t)}return{files:n}}function Fe(e){let n=M(e,`.ok`,`local`);return P(n)?{files:[`server.lock`,`last-spawn-error.log`,t].map(e=>M(n,e)).filter(e=>P(e))}:{files:[]}}function Ie(e){let t=M(e,`.ok`,`local`,`logs`);return P(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>M(t,e)).filter(e=>P(e))}:{files:[]}}function Le(e){if(e.redact){let{redacted:t,patterns:n,lineCount:r}=V(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 H(e){for(let t of e.files)try{Le({zipfile:e.zipfile,name:`${e.prefix}/${A(t)}`,content:I(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 Re(t){let{redact:n,outputPath:r,logger:i}=t,a=t.userLogsDir??M(be(),`.ok`,`logs`),o=t.projectDir?Me(t.projectDir,i):null;F(j(r),{recursive:!0}),i?.info({projectSlug:o},`gathering diagnostic data`);let s=Ne();s.desktop=t.desktop??null;let{files:c}=Pe(o,a),{files:l}=t.projectDir?Fe(t.projectDir):{files:[]},{files:u}=t.projectDir?Ie(t.projectDir):{files:[]};i?.info({logFileCount:c.length,lockFileCount:l.length,localSinkFileCount:u.length},`files collected`);let d=[],f=[],{ZipFile:p}=await import(`./yazl-vwTkB7U0.mjs`).then(t=>e(t.default,1)),m=new p;H({zipfile:m,files:c,prefix:`logs`,redact:n,bundleFiles:f,redactions:d,logger:i}),H({zipfile:m,files:l,prefix:`lockdir`,redact:n,bundleFiles:f,redactions:d,logger:i}),H({zipfile:m,files:u,prefix:`local-logs`,redact:n,bundleFiles:f,redactions:d,logger:i});for(let e of t.extraFiles??[])try{let t=I(e.sourcePath),n=`extra/${e.zipName??A(e.sourcePath)}`;m.addBuffer(t,n),f.push(n)}catch(t){i?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&Le({zipfile:m,name:`note.txt`,content:t.note,redact:n,bundleFiles:f,redactions:d});let h=JSON.stringify(s,null,2);m.addBuffer(Buffer.from(h,`utf8`),`sysinfo.json`),f.push(`sysinfo.json`);let g={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:o,files:f,redactions:d,sysinfo:s};m.addBuffer(Buffer.from(JSON.stringify(g,null,2),`utf8`),`MANIFEST.json`);let _=d.reduce((e,t)=>e+t.lineCount,0),v=[`# Bug Report Bundle`,``,`Generated: ${g.generatedAt}`,`Project: ${o??`(unscoped)`}`,`Discipline version: ${g.disciplineVersion}`,``,`## Contents`,``,...f.map(e=>`- ${e}`),``,`## Privacy`,``,...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${ke.join(`, `)}`,_>0?`${_} line(s) were scrubbed across ${d.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(`
|
|
4
4
|
`);m.addBuffer(Buffer.from(v,`utf8`),`README.md`),m.end();let y=fe(r);return m.outputStream.pipe(y),await new Promise((e,t)=>{y.on(`close`,e),y.on(`error`,t)}),i?.info({bundlePath:r,fileCount:f.length,redactionCount:_},`bundle written`),{zipPath:r,summary:{projectSlug:o,files:f,redactions:d,redactedLineCount:_,generatedAt:g.generatedAt}}}var U=f(),ze=e(y(),1);const Be=new Set([`doc.name`,`currentDoc`]);function Ve(e){return`doc:${B(`sha256`).update(e).digest(`hex`).slice(0,8)}`}function He(e,t,n){let r=e.docNameMap[n];if(r===void 0){e.docNameMap[n]=t;return}if(r===t)return;let i=e.docNameCollisions[n];i?i.includes(t)||i.push(t):e.docNameCollisions[n]=[t]}function Ue(e,t){let n=t.originalToHashed.get(e);if(n!==void 0)return n;let r=Ve(e);return t.originalToHashed.set(e,r),He(t,e,r),r}function W(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function G(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function K(e,t){if(typeof e==`string`)return W(e,t.contentDir);if(Array.isArray(e))return e.map(e=>K(e,t));if(!G(e))return e;let n=typeof e.key==`string`&&Be.has(e.key)&&G(e.value)&&typeof e.value.stringValue==`string`?e.value.stringValue:null,r={};for(let[i,a]of Object.entries(e))if(n!==null&&i===`value`&&G(a)){let e=Ue(n,t);r[i]={...a,stringValue:e}}else Be.has(i)&&typeof a==`string`?r[i]=Ue(a,t):r[i]=K(a,t);return r}function We(e,t){if(t.originalToHashed.size===0)return e;let n=Array.from(t.originalToHashed.entries()).sort(([e],[t])=>t.length-e.length),r=e;for(let[e,t]of n)e.length!==0&&r.includes(e)&&(r=r.split(e).join(t));return r}function Ge(e,t){let n=I(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
|
|
@@ -9,14 +9,14 @@ import{o as e}from"./chunk-DTipWd-i.mjs";import{F as t,I as n,fa as r}from"./src
|
|
|
9
9
|
`)?`
|
|
10
10
|
`:``;R(e,`${JSON.stringify(r,null,2)}${i}`)}catch{let r=We(W(n,t.contentDir),t);r!==n&&R(e,r)}}function qe(e,t){let n=I(e,`utf-8`),r=W(n,t.contentDir);r!==n&&R(e,r)}function Je(e){try{return he(e,{withFileTypes:!0}).filter(e=>e.isFile()).map(t=>M(e,t.name))}catch{return[]}}const Ye=new Set([`agent-presence.json`,`agent-effects.json`,`runtime.json`]);function Xe(e){let t={contentDir:e.contentDir,docNameMap:{},originalToHashed:new Map,docNameCollisions:{}};for(let n of[`telemetry`,`logs`,`process`])for(let r of Je(M(e.stagingDir,n)))r.endsWith(`.jsonl`)?Ge(r,t):r.endsWith(`.json`)?Ke(r,t):qe(r,t);for(let n of Je(M(e.stagingDir,`state`))){let e=A(n);n.endsWith(`.jsonl`)?Ge(n,t):Ye.has(e)?Ke(n,t):qe(n,t)}return{docNameMap:t.docNameMap,docNameCollisions:t.docNameCollisions}}const Ze=[`.ok`,`local`,`telemetry`],Qe=[`.ok`,`local`,`logs`],$e=`spans-current.jsonl`,et=`spans-prev.jsonl`,tt=`server-current.jsonl`,nt=`server-prev.jsonl`;function rt(e){return M(e,...Ze,$e)}function it(e){return M(e,...Ze,et)}function at(e){return M(e,...Qe,tt)}function ot(e){return M(e,...Qe,nt)}const st=1e3;async function ct(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-presence`,{signal:AbortSignal.timeout(st)});return t.ok?await t.text():null}catch{return null}}async function lt(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-effects`,{signal:AbortSignal.timeout(st)});return t.ok?await t.text():null}catch{return null}}async function ut(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/watcher-recent`,{signal:AbortSignal.timeout(st)});return t.ok?await t.text():null}catch{return null}}function dt(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(`
|
|
11
11
|
`)}\n`:null}catch{return null}}function ft(e){let t=M(e,`.git`,`ok`);if(!P(t))return null;let n=se(`git`,[`-C`,t,`log`,`--oneline`,`-50`],a({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function pt(e){let t=M(e,`.git`,`ok`);if(!P(t))return null;let n=se(`git`,[`-C`,t,`for-each-ref`,`--sort=-creatordate`,`--count=50`,`--format=%(refname)%09%(creatordate:iso-strict)%09%(contents:subject)`,`refs/checkpoints/`],a({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 ht(){return{nodeVersion:process.version,platform:Se(),arch:ve()}}function gt(){return process.env.OTEL_SDK_DISABLED===`false`}function q(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _t(e){if(!P(e))return{};let t;try{t=(0,U.parse)(I(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 vt(e){return typeof e==`boolean`?e:void 0}function yt(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function J(e){if(q(e))return yt(e.maxBytes)}function bt(e){let t=_t(p(`project`,e)),n=_t(p(`project-local`,e));return{enabled:vt(n.enabled)??vt(t.enabled)??!0,spansMaxBytes:J(n.spans)??J(t.spans)??52428800,logsMaxBytes:J(n.logs)??J(t.logs)??26214400}}function xt(e){return B(`sha256`).update(e).digest(`hex`)}function St(e){let t=I(e),n=0;for(let e=0;e<t.length;e++)t[e]===10&&n++;return n}function Ct(e){let t=I(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){return P(e)?(F(j(t),{recursive:!0}),de(e,t),!0):!1}function wt(e){let t=[],n=e=>{let r=he(e,{withFileTypes:!0});for(let i of r){let r=M(e,i.name);i.isDirectory()?n(r):i.isFile()&&t.push(r)}};return n(e),t.sort()}const Tt=new Set([`.jsonl`]);function Et(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Tt.has(e.slice(t))}const Dt=new Set([`.jsonl`,`.json`,`.txt`,`.log`,`.lock`]);function Ot(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Dt.has(e.slice(t))}function kt(e){let t=[];for(let n of wt(e)){let r=At(e,n);if(!Ot(r))continue;let{redacted:i,patterns:a,lineCount:o}=V(I(n,`utf-8`));a.length!==0&&(R(n,i),t.push({file:r,lineCount:o,patterns:a}))}return{redactions:t,redactedLineCount:t.reduce((e,t)=>e+t.lineCount,0)}}function At(e,t){return le(e,t).split(ue).join(`/`)}async function jt(e){let r=N(e.contentDir),i=N(e.projectDir??e.contentDir),a=e.deps??{},o=a.fetchAgentPresence??ct,s=a.fetchAgentEffects??lt,c=a.fetchWatcherRecent??ut,l=a.readShadowHead??ft,u=a.readCheckpointRefs??pt,d=a.now??(()=>new Date),f=a.okVersion??(()=>E),p=a.readDesktopEnv??mt,m=a.readRuntime??ht,h=a.isOtlpPushEnabled??gt,g=me(M(we(),`ok-bundle-`));try{F(M(g,`telemetry`),{recursive:!0}),F(M(g,`logs`),{recursive:!0}),F(M(g,`state`),{recursive:!0}),Y(rt(i),M(g,`telemetry`,$e)),Y(it(i),M(g,`telemetry`,et)),Y(at(i),M(g,`logs`,tt)),Y(ot(i),M(g,`logs`,nt));let _=M(i,`.ok`,`local`),v=M(_,`server.lock`),y=`not-running`,b=`no server.lock`,x=null;if(P(v)){Y(v,M(g,`state`,`server.lock`));try{let e=I(v,`utf-8`),t=JSON.parse(e);typeof t.port==`number`?x=t.port:b=`lock present but no port`}catch{b=`lock present but unparseable`}}if(x!==null){let e=await o(x);e===null?b=`agent-presence endpoint at :${x} unreachable`:(R(M(g,`state`,`agent-presence.json`),e),y=`running`,b=``);let t=await s(x);t!==null&&R(M(g,`state`,`agent-effects.json`),t);let n=await c(x);if(n!==null){let e=dt(n);e!==null&&R(M(g,`state`,`watcher-recent.jsonl`),e)}}let ee=l(r);ee!==null&&R(M(g,`state`,`shadow-head.txt`),ee);let te=u(r);te!==null&&R(M(g,`state`,`checkpoint-refs.txt`),te),Y(M(_,`last-spawn-error.log`),M(g,`state`,`last-spawn-error.log`)),Y(M(_,n),M(g,`state`,n)),Y(M(_,t),M(g,`state`,t));let S=m(),ne=p(),re={ok:{version:f(),nodeVersion:S.nodeVersion,platform:S.platform,arch:S.arch},host:{desktop:ne}};R(M(g,`state`,`runtime.json`),`${JSON.stringify(re,null,2)}\n`);let ie=y===`running`?`running
|
|
12
|
-
`:`not-running (${b})\n`;if(R(M(g,`state`,`server-status.txt`),ie),e.processDir&&P(e.processDir)){let t=M(g,`process`);F(t,{recursive:!0}),de(e.processDir,t,{recursive:!0})}let C=null;e.redact===!0&&(C=Xe({stagingDir:g,contentDir:r})),e.note&&R(M(g,`note.txt`),e.note);let w=null;e.scrubSecrets===!0&&(w=kt(g));for(let t of e.extraFiles??[])Y(t.sourcePath,M(g,`extra`,t.zipName??A(t.sourcePath)))||a.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let ae=bt(i),oe=wt(g),T=[],E=0,D=0;for(let e of oe){let t=At(g,e),n=_e(e).size,r=Et(t)?St(e):0;T.push({path:t,bytes:n,lines:r}),E+=n,t.startsWith(`telemetry/`)&&Et(t)&&(D+=Ct(e))}let O=C===null?{applied:!1,docNameMapSidecar:null}:Object.keys(C.docNameCollisions).length>0?{applied:!0,docNameMapSidecar:null,docNameCollisions:C.docNameCollisions}:{applied:!0,docNameMapSidecar:null};w!==null&&(O.secretScrub=w);let k={schemaVersion:1,createdAt:d().toISOString(),ok:{version:f(),nodeVersion:S.nodeVersion,platform:S.platform,arch:S.arch},host:{desktop:ne},contentDir:{pathSha256:xt(r),absolutePath:C===null?r:`<CONTENT_DIR>`},telemetry:{localSink:ae,otlpPushEnabled:h()},redaction:O,serverStatus:y,files:T};R(M(g,`manifest.json`),`${JSON.stringify(k,null,2)}\n`);let se=oe.some(e=>{try{return I(e,`utf-8`).includes(r)}catch{return!1}}),j={totalBytes:E,fileCount:T.length,docNameCount:D,contentDirVisible:se,redacted:C!==null},ce=!1;return{stagingDir:g,manifest:k,summary:j,redactionMapPayload:C===null?null:{docNameMap:C.docNameMap,docNameCollisions:C.docNameCollisions},cleanup:()=>{ce||(ce=!0,L(g,{recursive:!0,force:!0}))}}}catch(e){throw L(g,{recursive:!0,force:!0}),e}}async function Mt(e){let{collected:t,outputPath:n}=e,r=j(n);if(!P(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);if(t.redactionMapPayload!==null){let e=`${A(n,`.zip`)}.docnames.json`,r={...t.manifest,redaction:{...t.manifest.redaction,applied:!0,docNameMapSidecar:e}};R(M(t.stagingDir,`manifest.json`),`${JSON.stringify(r,null,2)}\n`)}let i=new ze.ZipFile,a=wt(t.stagingDir);for(let e of a){let n=At(t.stagingDir,e);i.addFile(e,n)}i.end(),t.redactionMapPayload!==null&&R(M(r,`${A(n,`.zip`)}.docnames.json`),`${JSON.stringify({docNameMap:t.redactionMapPayload.docNameMap,docNameCollisions:t.redactionMapPayload.docNameCollisions},null,2)}\n`,{mode:384});let o=fe(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 Nt(e,t){let n=M(e,`.ok`,`config.yml`);if(P(n))try{let t=(0,U.parse)(I(n,`utf-8`)),r=D(t)?t.content:void 0,i=D(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return N(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 N(e)}async function Pt(e,t,n){let r=await jt({contentDir:Nt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,deps:{readDesktopEnv:n,logger:e.logger}});try{F(j(e.outputPath),{recursive:!0}),await Mt({collected:r,outputPath:e.outputPath});let n=r.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:Me(t,e.logger),files:r.manifest.files.map(e=>e.path),redactions:n?.redactions??[],redactedLineCount:n?.redactedLineCount??0,generatedAt:r.manifest.createdAt}}}finally{r.cleanup()}}async function Ft(e){let{projectDir:t}=e,n=e.readDesktopEnv??mt;if(e.level===`full`&&t!==void 0)return Pt(e,t,n);let{zipPath:r,summary:i}=await Re({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function X(e,t,n={}){let r=g(e,t);if(!P(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(I(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!h(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??v)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??_())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??xe();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function It(e){return e.replace(/:\d+$/,``)}function Lt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:It(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:It(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:It(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}function Rt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=r(t.hostname);if(n===null)return null;let i=t.pathname.split(`/`).filter(e=>e.length>0);if(i.length<5||i[2]!==`blob`)return null;let a,o,s,c;try{a=decodeURIComponent(i[0]),o=decodeURIComponent(i[1]),s=decodeURIComponent(i[3]),c=i.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!a||!o||!s||c.length===0||c.some(e=>e.length===0)?null:{host:n,owner:a,repo:o,branch:s,path:c.join(`/`)}}function zt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=r(t.hostname);if(n===null)return null;let i=t.pathname.split(`/`);if(i.length<5||i[0]!==``||i[3]!==`tree`)return null;let a=i.slice(5);a.length===1&&a[0]===``&&a.pop();let o,s,c,l;try{o=decodeURIComponent(i[1]),s=decodeURIComponent(i[2]),c=decodeURIComponent(i[4]),l=a.map(e=>decodeURIComponent(e))}catch{return null}return!o||!s||!c||l.some(e=>e.length===0)?null:{host:n,owner:o,repo:s,branch:c,path:l.join(`/`)}}function Bt(e){let t=Rt(e);if(t)return{kind:`doc`,...t};let n=zt(e);return n?{kind:`folder`,...n}:null}var Z=e(O(),1);const Vt=`# >>> open-knowledge cli >>>`,Ht=`# <<< open-knowledge cli <<<`,Ut=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Wt(e){return M(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Gt={existsSync:e=>P(e),readFileSync:(e,t)=>I(e,t),lstatSync:e=>pe(e),readlinkSync:e=>ge(e)};function Kt(e,t=Gt){let n=Wt(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 qt(e){let t=e.replace(Ut,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function Jt(e,t,n=Gt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function Yt(e){return x(e)||b(e)||
|
|
12
|
+
`:`not-running (${b})\n`;if(R(M(g,`state`,`server-status.txt`),ie),e.processDir&&P(e.processDir)){let t=M(g,`process`);F(t,{recursive:!0}),de(e.processDir,t,{recursive:!0})}let C=null;e.redact===!0&&(C=Xe({stagingDir:g,contentDir:r})),e.note&&R(M(g,`note.txt`),e.note);let w=null;e.scrubSecrets===!0&&(w=kt(g));for(let t of e.extraFiles??[])Y(t.sourcePath,M(g,`extra`,t.zipName??A(t.sourcePath)))||a.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let ae=bt(i),oe=wt(g),T=[],E=0,D=0;for(let e of oe){let t=At(g,e),n=_e(e).size,r=Et(t)?St(e):0;T.push({path:t,bytes:n,lines:r}),E+=n,t.startsWith(`telemetry/`)&&Et(t)&&(D+=Ct(e))}let O=C===null?{applied:!1,docNameMapSidecar:null}:Object.keys(C.docNameCollisions).length>0?{applied:!0,docNameMapSidecar:null,docNameCollisions:C.docNameCollisions}:{applied:!0,docNameMapSidecar:null};w!==null&&(O.secretScrub=w);let k={schemaVersion:1,createdAt:d().toISOString(),ok:{version:f(),nodeVersion:S.nodeVersion,platform:S.platform,arch:S.arch},host:{desktop:ne},contentDir:{pathSha256:xt(r),absolutePath:C===null?r:`<CONTENT_DIR>`},telemetry:{localSink:ae,otlpPushEnabled:h()},redaction:O,serverStatus:y,files:T};R(M(g,`manifest.json`),`${JSON.stringify(k,null,2)}\n`);let se=oe.some(e=>{try{return I(e,`utf-8`).includes(r)}catch{return!1}}),j={totalBytes:E,fileCount:T.length,docNameCount:D,contentDirVisible:se,redacted:C!==null},ce=!1;return{stagingDir:g,manifest:k,summary:j,redactionMapPayload:C===null?null:{docNameMap:C.docNameMap,docNameCollisions:C.docNameCollisions},cleanup:()=>{ce||(ce=!0,L(g,{recursive:!0,force:!0}))}}}catch(e){throw L(g,{recursive:!0,force:!0}),e}}async function Mt(e){let{collected:t,outputPath:n}=e,r=j(n);if(!P(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);if(t.redactionMapPayload!==null){let e=`${A(n,`.zip`)}.docnames.json`,r={...t.manifest,redaction:{...t.manifest.redaction,applied:!0,docNameMapSidecar:e}};R(M(t.stagingDir,`manifest.json`),`${JSON.stringify(r,null,2)}\n`)}let i=new ze.ZipFile,a=wt(t.stagingDir);for(let e of a){let n=At(t.stagingDir,e);i.addFile(e,n)}i.end(),t.redactionMapPayload!==null&&R(M(r,`${A(n,`.zip`)}.docnames.json`),`${JSON.stringify({docNameMap:t.redactionMapPayload.docNameMap,docNameCollisions:t.redactionMapPayload.docNameCollisions},null,2)}\n`,{mode:384});let o=fe(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 Nt(e,t){let n=M(e,`.ok`,`config.yml`);if(P(n))try{let t=(0,U.parse)(I(n,`utf-8`)),r=D(t)?t.content:void 0,i=D(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return N(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 N(e)}async function Pt(e,t,n){let r=await jt({contentDir:Nt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,deps:{readDesktopEnv:n,logger:e.logger}});try{F(j(e.outputPath),{recursive:!0}),await Mt({collected:r,outputPath:e.outputPath});let n=r.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:Me(t,e.logger),files:r.manifest.files.map(e=>e.path),redactions:n?.redactions??[],redactedLineCount:n?.redactedLineCount??0,generatedAt:r.manifest.createdAt}}}finally{r.cleanup()}}async function Ft(e){let{projectDir:t}=e,n=e.readDesktopEnv??mt;if(e.level===`full`&&t!==void 0)return Pt(e,t,n);let{zipPath:r,summary:i}=await Re({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function X(e,t,n={}){let r=g(e,t);if(!P(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(I(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!h(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??v)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??_())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??xe();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function It(e){return e.replace(/:\d+$/,``)}function Lt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:It(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:It(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:It(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}function Rt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=r(t.hostname);if(n===null)return null;let i=t.pathname.split(`/`).filter(e=>e.length>0);if(i.length<5||i[2]!==`blob`)return null;let a,o,s,c;try{a=decodeURIComponent(i[0]),o=decodeURIComponent(i[1]),s=decodeURIComponent(i[3]),c=i.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!a||!o||!s||c.length===0||c.some(e=>e.length===0)?null:{host:n,owner:a,repo:o,branch:s,path:c.join(`/`)}}function zt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=r(t.hostname);if(n===null)return null;let i=t.pathname.split(`/`);if(i.length<5||i[0]!==``||i[3]!==`tree`)return null;let a=i.slice(5);a.length===1&&a[0]===``&&a.pop();let o,s,c,l;try{o=decodeURIComponent(i[1]),s=decodeURIComponent(i[2]),c=decodeURIComponent(i[4]),l=a.map(e=>decodeURIComponent(e))}catch{return null}return!o||!s||!c||l.some(e=>e.length===0)?null:{host:n,owner:o,repo:s,branch:c,path:l.join(`/`)}}function Bt(e){let t=Rt(e);if(t)return{kind:`doc`,...t};let n=zt(e);return n?{kind:`folder`,...n}:null}var Z=e(O(),1);const Vt=`# >>> open-knowledge cli >>>`,Ht=`# <<< open-knowledge cli <<<`,Ut=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Wt(e){return M(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Gt={existsSync:e=>P(e),readFileSync:(e,t)=>I(e,t),lstatSync:e=>pe(e),readlinkSync:e=>ge(e)};function Kt(e,t=Gt){let n=Wt(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 qt(e){let t=e.replace(Ut,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function Jt(e,t,n=Gt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function Yt(e){return x(e)||b(e)||re(e)}const Xt=10*1024*1024;function Zt(e,t,n,r){let i=ae(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(!Yt(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);return e.format===`file`?(L(a,{force:!0}),{kind:`removed`}):e.format===`toml`?en(a,o):e.format===`yaml`?$t(a,e.topLevelKey,o):Qt(a,e.topLevelKey,e.serverMapSubKey,o)}function Qt(e,t,n,r){let i;try{i=I(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(i,`utf-8`)>Xt)return{kind:`declined`,reason:`oversize`};let{text:a,changed:o}=ne(i,C(t,n,r));return o?(m(e,a,{mode:T(e)}),{kind:`removed`}):{kind:`not-present`}}function $t(e,t,n){let r;try{r=I(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(r,`utf-8`)>Xt)return{kind:`declined`,reason:`oversize`};let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=(0,U.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=ie(a);a.trim()===``||a.endsWith(`
|
|
13
13
|
`)?c.endsWith(`
|
|
14
14
|
`)||(c=`${c}\n`):c=c.replace(/\n+$/,``),l&&(c=c.replace(/\r\n/g,`
|
|
15
15
|
`).replace(/\n/g,`\r
|
|
16
|
-
`));let u=`${i?``:``}${c}`;return u!==r&&m(e,u,{mode:
|
|
16
|
+
`));let u=`${i?``:``}${c}`;return u!==r&&m(e,u,{mode:T(e)}),{kind:`removed`}}function en(e,t){let n=w();if(n.backend===`fallback`)return{kind:`declined`,reason:`no-native-writer`};let r;try{r=I(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=ie(a),s=a.trim()===``||a.endsWith(`
|
|
17
17
|
`),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(`
|
|
18
18
|
`)||(l=`${l}\n`):l=l.replace(/\n+$/,``),o&&(l=l.replace(/\r\n/g,`
|
|
19
19
|
`).replace(/\n/g,`\r
|
|
20
|
-
`));let u=`${i?``:``}${l}`;return u!==r&&m(e,u,{mode:
|
|
21
|
-
`)}async function _n(e={}){let t=e.discover??d,n=e.inspect??X,r=e.log??(e=>console.log(e)),i=e.resolveCommand??u,a=e.resolveUsage??o,s=await t(),c=[];for(let e of s){let t=n(e,`server`),r=n(e,`ui`),o=ln(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:a(r.lock.pid));o!=null&&c.push(o)}if(e.json){let e=c.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(gn(e.all?c:c.filter(e=>dn.has(Q(e)))))}function vn(){return new S(`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 _n({all:t.all===!0||e===`all`,json:t.json===!0})})}function yn(e,t,n={}){let r=n.isAlive??v,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 bn(e){let t=e.inspect??(t=>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=yn(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 xn(e,t=v){let n=await d(),r=null;for(let i of n){let n=X(i,`server`),a=X(i,`ui`);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 Sn(e){let t=bn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function Cn(e){return new S(`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=bn({lockDir:i(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 _n({});return}if(n===`all`){let e=await d();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=X(n,`ui`);!$(e,v)&&!$(r,v)||(Sn(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 xn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}Sn(t);return}Sn(i(N(on(),n)))})}function wn(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function Tn(e,t){let n,i;try{n=await z(N(e)),i=await z(N(j(e)))}catch{return{kind:`not-git`}}if(!En(n,i))return{kind:`symlink-escape`};let a=M(n,`.git`),o;try{o=_e(a)}catch{return{kind:`not-git`}}if(o.isDirectory()){let e;try{e=await z(a)}catch{return{kind:`not-git`}}if(!En(e,n))return{kind:`symlink-escape`}}else if(!o.isFile())return{kind:`not-git`};let c=s(n);if(c.kind!==`repository`)return{kind:`not-git`};let l=c.repository.readRemoteUrl(`origin`);if(l.kind===`unreadable`)return{kind:`not-git`};if(l.kind===`absent`)return l.reason===`config-missing`?{kind:`not-git`}:{kind:`no-origin`};let u=l.url,d=Lt(u);if(d===null)return{kind:`non-github`};let f=r(d.hostname);if(f===null)return{kind:`non-github`};let p=f===t.host.toLowerCase(),m=d.owner.toLowerCase()===t.owner.toLowerCase(),h=d.name.toLowerCase()===t.repo.toLowerCase();return!p&&m&&h?{kind:`wrong-host`,actualHost:f}:!p||!m||!h?{kind:`wrong-repo`,actualOwner:d.owner,actualRepo:d.name}:{kind:`ok`,gitRemoteUrl:`https://${f}/${d.owner}/${d.name}.git`}}function En(e,t){if(e===t)return!0;let n=le(t,e);return n.length>0&&!n.startsWith(`..`)&&!ce(n)}const Dn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=
|
|
22
|
-
//# sourceMappingURL=src-
|
|
20
|
+
`));let u=`${i?``:``}${l}`;return u!==r&&m(e,u,{mode:T(e)}),{kind:`removed`}}const tn=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function nn(e,t,n=l){if(e!==void 0&&!tn.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let rn=null;function an(e){rn=e}function on(){return rn??process.cwd()}function sn(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function cn(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 ln(e,t,n,r,i,a){if(t.status===`missing`||t.status===`corrupt`)return null;let o=t.lock,s=null;if(n.status!==`missing`&&n.status!==`corrupt`){let e=n.lock;s={port:e.port,status:n.status,pid:e.pid,startedAt:e.startedAt,usage:a}}return{directory:o.worktreeRoot,server:{port:o.port,status:t.status,pid:o.pid,startedAt:o.startedAt,usage:i},ui:s,hostname:o.hostname,lockPath:t.lockPath,binary:r==null?null:c(r),command:r,isDesktop:sn(r)}}function un(e){return e.ui==null?!1:e.ui.status===`alive`||e.ui.status===`foreign-host`}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:t===`dead-pid`&&un(e)?`ui-orphan`:`stale`}const dn=new Set([`running`,`desktop`,`foreign`,`ui-orphan`]);function fn(e){switch(e){case`running`:return Z.default.green(e);case`desktop`:return Z.default.blue(e);case`foreign`:return Z.default.cyan(e);case`ui-orphan`:return Z.default.magenta(e);case`stale`:return Z.default.yellow(e)}}function pn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function mn(e){return`${pn(e.server.usage)} | ${pn(e.ui?.usage??null)}`}function hn(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null||e.ui.status===`dead-pid`?`—`:String(e.ui.port)}`}function gn(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=>{let t=Q(e),n=t===`ui-orphan`&&e.ui!=null?e.ui.pid:e.server.pid;return[e.directory,hn(e),mn(e),t,String(n),cn(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=fn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=Z.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
|
|
21
|
+
`)}async function _n(e={}){let t=e.discover??d,n=e.inspect??X,r=e.log??(e=>console.log(e)),i=e.resolveCommand??u,a=e.resolveUsage??o,s=await t(),c=[];for(let e of s){let t=n(e,`server`),r=n(e,`ui`),o=ln(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:a(r.lock.pid));o!=null&&c.push(o)}if(e.json){let e=c.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(gn(e.all?c:c.filter(e=>dn.has(Q(e)))))}function vn(){return new S(`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 _n({all:t.all===!0||e===`all`,json:t.json===!0})})}function yn(e,t,n={}){let r=n.isAlive??v,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 bn(e){let t=e.inspect??(t=>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=yn(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 xn(e,t=v){let n=await d(),r=null;for(let i of n){let n=X(i,`server`),a=X(i,`ui`);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 Sn(e){let t=bn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function Cn(e){return new S(`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=bn({lockDir:i(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 _n({});return}if(n===`all`){let e=await d();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=X(n,`ui`);!$(e,v)&&!$(r,v)||(Sn(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 xn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}Sn(t);return}Sn(i(N(on(),n)))})}function wn(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function Tn(e,t){let n,i;try{n=await z(N(e)),i=await z(N(j(e)))}catch{return{kind:`not-git`}}if(!En(n,i))return{kind:`symlink-escape`};let a=M(n,`.git`),o;try{o=_e(a)}catch{return{kind:`not-git`}}if(o.isDirectory()){let e;try{e=await z(a)}catch{return{kind:`not-git`}}if(!En(e,n))return{kind:`symlink-escape`}}else if(!o.isFile())return{kind:`not-git`};let c=s(n);if(c.kind!==`repository`)return{kind:`not-git`};let l=c.repository.readRemoteUrl(`origin`);if(l.kind===`unreadable`)return{kind:`not-git`};if(l.kind===`absent`)return l.reason===`config-missing`?{kind:`not-git`}:{kind:`no-origin`};let u=l.url,d=Lt(u);if(d===null)return{kind:`non-github`};let f=r(d.hostname);if(f===null)return{kind:`non-github`};let p=f===t.host.toLowerCase(),m=d.owner.toLowerCase()===t.owner.toLowerCase(),h=d.name.toLowerCase()===t.repo.toLowerCase();return!p&&m&&h?{kind:`wrong-host`,actualHost:f}:!p||!m||!h?{kind:`wrong-repo`,actualOwner:d.owner,actualRepo:d.name}:{kind:`ok`,gitRemoteUrl:`https://${f}/${d.owner}/${d.name}.git`}}function En(e,t){if(e===t)return!0;let n=le(t,e);return n.length>0&&!n.startsWith(`..`)&&!ce(n)}const Dn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=oe(e,t,n,void 0,r);return i.action===`written`||i.action===`overwritten`?{integration:`mcp-config`,editorId:e.id,action:i.action,path:i.configPath}:i.action===`failed`?{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:i.error??`unknown failure`}:i.action===`declined`?{integration:`mcp-config`,editorId:e.id,action:`declined`,path:i.configPath,...i.declineReason===void 0?{}:{reason:i.declineReason}}:{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:`unexpected project-scope action: ${i.action}`}}catch(t){return{integration:`mcp-config`,editorId:e.id,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}},{id:`project-skill`,write(e,t,n){try{let r=ee(e,t,{home:n.home});return{integration:`project-skill`,editorId:e.id,action:r.action,...r.path?{path:r.path}:{},...r.error?{error:r.error}:{}}}catch(t){return{integration:`project-skill`,editorId:e.id,action:`failed`,error:t instanceof Error?t.message:String(t)}}}}];function On(e,t,n={},r=Dn){let i=[];for(let a of t){let t=te[a];for(let a of r)i.push(a.write(t,e,n))}return i}function kn(e,t,n={}){return{integrations:On(e,t,n)}}export{Ft as C,V as D,je as E,X as S,Mt as T,qt as _,Cn as a,zt as b,an as c,Vt as d,Ut as f,Kt as g,Wt as h,bn as i,nn as l,Jt as m,Tn as n,vn as o,Ht as p,wn as r,on as s,kn as t,Zt as u,Rt as v,jt as w,Lt as x,Bt as y};
|
|
22
|
+
//# sourceMappingURL=src-DJ0-ChPY.mjs.map
|