@inkeep/open-knowledge 0.47.0-beta.2 → 0.47.0-beta.20
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/{acp-harness-probe-BYLCx-9P.mjs → acp-harness-probe-B3EeoS0N.mjs} +2 -2
- package/dist/assets/skills/project/SKILL.md +1 -1
- package/dist/assets/skills/project/references/preview.md +2 -2
- package/dist/cli.mjs +62 -62
- package/dist/config-schema.json +45 -2
- package/dist/config.user.schema.json +45 -2
- package/dist/constants-C-pPgjfZ.mjs +2 -0
- package/dist/{fs-traced-OS6B1cZZ.mjs → fs-traced-ArlA_yTp.mjs} +2 -2
- package/dist/fs-traced-C9U9YUGm.mjs +1 -0
- package/dist/git-handle-C8yML4WA.mjs +1 -0
- package/dist/{git-handle-RLYVdszV.mjs → git-handle-D0JshIxh.mjs} +2 -2
- package/dist/index.d.mts +23 -2
- package/dist/index.mjs +1 -1
- package/dist/init-CY5-y_QL.mjs +1 -0
- package/dist/{init-4qi6zG9S.mjs → init-DUVs7gkg.mjs} +11 -11
- package/dist/{launch-json-removal-CwrvAwfU.mjs → launch-json-removal-ByZWV17S.mjs} +2 -2
- package/dist/{loader-cuv9j2d2.mjs → loader-56EW7KvY.mjs} +2 -2
- package/dist/loader-CcgJhzJ1.mjs +1 -0
- package/dist/md-manager-2FlXlcPD.mjs +2 -0
- package/dist/{open-browser-4sOlBbCM.mjs → open-browser-TU_nA_Sm.mjs} +2 -2
- package/dist/parse-worker.mjs +1 -1
- package/dist/preview-48Yh0ELI.mjs +1 -0
- package/dist/{preview-BQIDNBdK.mjs → preview-ClnNvPKv.mjs} +2 -2
- package/dist/public/assets/{ActivityModeContent-DnjDjPFp.js → ActivityModeContent-D3YT_cL3.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-Th6j3NhO.js → AgentDiffPane-BCIrjLxd.js} +2 -2
- package/dist/public/assets/{AgentThreadClientBinder-BVm5Ldhz.js → AgentThreadClientBinder-BdHHup4k.js} +1 -1
- package/dist/public/assets/{BugReportHistory-D5qnl9oj.js → BugReportHistory-B_qUtT_t.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-Da9QnJRc.js → BugReportHistoryDialog-CZdY9Wqt.js} +1 -1
- package/dist/public/assets/{ChangedOutsideBadge-DVfCTGd2.js → ChangedOutsideBadge--Hze6vD1.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-DmM8F7PJ.js → CodeMirrorPropInput-BfYJOB1U.js} +3 -3
- package/dist/public/assets/{ConsentDialogBody-CB447Y2k.js → ConsentDialogBody-TldLlXQA.js} +1 -1
- package/dist/public/assets/DiffView-by44lBMn.js +3 -0
- package/dist/public/assets/DocumentContext-BpUSHG7l.js +38 -0
- package/dist/public/assets/{EditorModeToggle-DKuXrb9b.js → EditorModeToggle-DLnTYb-h.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-BQttSYlY.js → EnableSyncConfirmDialog-wfbNMORg.js} +1 -1
- package/dist/public/assets/FeedbackForm-D34S4Lei.js +1 -0
- package/dist/public/assets/{GraphPanel-DK2w8FEz.js → GraphPanel-DcFOscrG.js} +1 -1
- package/dist/public/assets/{ImportSkillDialog-DHfVuiKL.js → ImportSkillDialog-C21eWM_C.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-B-7Pe22_.js → LintConfigEditor-yHM3zNKy.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-BKmB2Biq.js +2 -0
- package/dist/public/assets/ManagedArtifactProperties-Bz4VLtAN.js +1 -0
- package/dist/public/assets/{McpConsentDialogBody-DPMIdjmd.js → McpConsentDialogBody-DMOmHuL7.js} +1 -1
- package/dist/public/assets/{Mermaid-BePjlqwg.js → Mermaid-DeqR50Io.js} +2 -2
- package/dist/public/assets/{MermaidDocEditor-CBHNf1No.js → MermaidDocEditor-Brsvw0SI.js} +1 -1
- package/dist/public/assets/{RegisteredAgentIcon-H3tp7x07.js → RegisteredAgentIcon-MOyQ-5gc.js} +1 -1
- package/dist/public/assets/ReportBugDialogBody-et6slT5A.js +3 -0
- package/dist/public/assets/{SchemaConfigEditor-DG-dOTBT.js → SchemaConfigEditor-CDfilRoj.js} +1 -1
- package/dist/public/assets/{SessionsHost-DjbdveAp.js → SessionsHost-BGzKrV22.js} +2 -2
- package/dist/public/assets/SettingsDialogBody-DCVQf8Sd.js +12 -0
- package/dist/public/assets/{ShareBranchSwitchDialog-CyWPLWZG.js → ShareBranchSwitchDialog-Cq3P5fIG.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-C-fxd4DJ.js → ShareReceiveDialog-BZMp2nd8.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-Y4PyuUCZ.js → ShareReceiveMissDialog-CtBVQ8M0.js} +1 -1
- package/dist/public/assets/{SkillEditBanner-Dbu0PwqP.js → SkillEditBanner-vKY168Q9.js} +1 -1
- package/dist/public/assets/{SkillOriginInline-DuFc7cZs.js → SkillOriginInline-DgP96Q7o.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-B4k3LXLX.js → SkillToolbarControls-_SvouuNK.js} +1 -1
- package/dist/public/assets/SourceEditor-CEU2fHXS.js +1 -0
- package/dist/public/assets/{TerminalPanel-DkXL03UX.js → TerminalPanel-D_zDvWvD.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-DH34WwKL.js → TerminalWindowApp-DyVBq2Ss.js} +1 -1
- package/dist/public/assets/{TextDocEditor-DEdxUQxb.js → TextDocEditor-BL_-QkB7.js} +1 -1
- package/dist/public/assets/ThreadView-ChbqsfCR.js +6 -0
- package/dist/public/assets/{TimelineDiffPane-DSvFVt40.js → TimelineDiffPane-Dqrp96vQ.js} +2 -2
- package/dist/public/assets/{abnfDiagram-VRR7QNED-CR4UO3a9.js → abnfDiagram-VRR7QNED-BnbsMtSZ.js} +1 -1
- package/dist/public/assets/{agent-diff-store-BX4UT3y1.js → agent-diff-store-x2lZWEbT.js} +1 -1
- package/dist/public/assets/{agent-visibility-CYBYXsoR.js → agent-visibility-DooA6q6Y.js} +1 -1
- package/dist/public/assets/{arc-BLA1oiJE.js → arc-CVPlXeVn.js} +1 -1
- package/dist/public/assets/architecture-TIHT7OUA-Bu3B2Eu7.js +1 -0
- package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-BzyE8ILE.js → architectureDiagram-ZJ3FMSHR-Dosr6E3U.js} +1 -1
- package/dist/public/assets/auth-state-cache-UtyGZJkf.js +11 -0
- package/dist/public/assets/{blockDiagram-677ZJIJ3-BWKj-1q6.js → blockDiagram-677ZJIJ3-DlZp8ItG.js} +1 -1
- package/dist/public/assets/{c4Diagram-LMCZKHZV-DrEdH4Bj.js → c4Diagram-LMCZKHZV-ET_5c2OJ.js} +1 -1
- package/dist/public/assets/{calendar-DLNiQf9e.js → calendar-DQGpktO3.js} +1 -1
- package/dist/public/assets/channel-DjvQf__j.js +1 -0
- package/dist/public/assets/{checkbox-DoJAOcMt.js → checkbox-IqSEcunZ.js} +1 -1
- package/dist/public/assets/chunk-2Q5K7J3B-DeGCwTid.js +1 -0
- package/dist/public/assets/{chunk-32BRIVSS-BYVl5jAx.js → chunk-32BRIVSS-DNo-6ebx.js} +1 -1
- package/dist/public/assets/{chunk-52WLFC77-DaoBlZDo.js → chunk-52WLFC77-C6b3SFZy.js} +1 -1
- package/dist/public/assets/{chunk-5FCAYU7R-CVOgng3o.js → chunk-5FCAYU7R-CTroACwQ.js} +1 -1
- package/dist/public/assets/{chunk-5HE753X5-CD6gRM54.js → chunk-5HE753X5-BiVTlY9X.js} +1 -1
- package/dist/public/assets/{chunk-5JV3BV7I-C7ouju6I.js → chunk-5JV3BV7I-D5PSiL8d.js} +1 -1
- package/dist/public/assets/{chunk-5TONJI2A-BKisaZuR.js → chunk-5TONJI2A-Bxf6m0R0.js} +1 -1
- package/dist/public/assets/{chunk-5VM5RSS4-DldpLG4q.js → chunk-5VM5RSS4-CRkhjuQ5.js} +1 -1
- package/dist/public/assets/{chunk-7BUUIJ7U-B8p2bGIc.js → chunk-7BUUIJ7U-CIezx2MS.js} +1 -1
- package/dist/public/assets/{chunk-BIQX33UG-B-IlaACl.js → chunk-BIQX33UG-4vkcoUCs.js} +1 -1
- package/dist/public/assets/{chunk-BO2N2NFS-ic3Vmg5d.js → chunk-BO2N2NFS-B4sTS3Wn.js} +3 -3
- package/dist/public/assets/{chunk-C7G6YPKG-P_jPwciU.js → chunk-C7G6YPKG-DUEN2-Z_.js} +1 -1
- package/dist/public/assets/{chunk-CQNSW5MT-BoHYZDmN.js → chunk-CQNSW5MT-DY98Y9zl.js} +1 -1
- package/dist/public/assets/{chunk-CYSBUYHQ-BtnyZlJv.js → chunk-CYSBUYHQ-BK-vm9jf.js} +1 -1
- package/dist/public/assets/{chunk-EMLP6XTP-D_CFM3mi.js → chunk-EMLP6XTP-DZw4ZtXy.js} +1 -1
- package/dist/public/assets/{chunk-EX3LRPZG-ClnlXkCf.js → chunk-EX3LRPZG-yoDTr-PU.js} +1 -1
- package/dist/public/assets/{chunk-FWX5IMBZ-FFK1ngmB.js → chunk-FWX5IMBZ-BiIbzhiq.js} +2 -2
- package/dist/public/assets/{chunk-HOUHSVGY-BWwdD6sU.js → chunk-HOUHSVGY-Badw-z6W.js} +1 -1
- package/dist/public/assets/{chunk-ICXQ74PX-MYNcPnbp.js → chunk-ICXQ74PX-D2JPv1Gr.js} +1 -1
- package/dist/public/assets/{chunk-JG7HCLWE-jpq6rFyK.js → chunk-JG7HCLWE-DvlaYzpW.js} +1 -1
- package/dist/public/assets/{chunk-JWPE2WC7-BUo8MoXj.js → chunk-JWPE2WC7-CLgWJdHV.js} +1 -1
- package/dist/public/assets/{chunk-MOJQB5TN-CWrsqiJp.js → chunk-MOJQB5TN-DcXz8tHG.js} +1 -1
- package/dist/public/assets/{chunk-MOZMSUNE-bwYn0Kww.js → chunk-MOZMSUNE-BGXPWMly.js} +1 -1
- package/dist/public/assets/{chunk-OGEWGWER-CPRvTjbs.js → chunk-OGEWGWER-Cb9fL0HE.js} +1 -1
- package/dist/public/assets/{chunk-OSBZ3O6U-CUc7n3PO.js → chunk-OSBZ3O6U-DWgnErEt.js} +1 -1
- package/dist/public/assets/{chunk-PUDLZKDR-DYRvIzSN.js → chunk-PUDLZKDR-BaaHT_On.js} +1 -1
- package/dist/public/assets/{chunk-Q4XR5HBZ-C1-YIhba.js → chunk-Q4XR5HBZ-BwhG6EW6.js} +1 -1
- package/dist/public/assets/{chunk-QBLGF6JB-DOtavLb0.js → chunk-QBLGF6JB-4F2Itui7.js} +1 -1
- package/dist/public/assets/{chunk-R7FJI6CG-CWhtEDe1.js → chunk-R7FJI6CG-hR8tQLXq.js} +1 -1
- package/dist/public/assets/{chunk-RYQCIY6F-D8KQw2wV.js → chunk-RYQCIY6F-DycaSFT5.js} +1 -1
- package/dist/public/assets/{chunk-U6XO7XAA-CMfN73K7.js → chunk-U6XO7XAA-CHI_dfPQ.js} +1 -1
- package/dist/public/assets/{chunk-V7JOEXUC-pOJltdgR.js → chunk-V7JOEXUC-BkqBW0FT.js} +1 -1
- package/dist/public/assets/chunk-VAUOI2AC-CgZT0oz9.js +1 -0
- package/dist/public/assets/{chunk-VR4S4FIN-DZW_5hST.js → chunk-VR4S4FIN-uOOHuLS4.js} +1 -1
- package/dist/public/assets/{chunk-WYO6CB5R-CALegXxo.js → chunk-WYO6CB5R-vMJfXjXv.js} +1 -1
- package/dist/public/assets/chunk-XXDRQBXY-DjPNLLex.js +1 -0
- package/dist/public/assets/{chunk-YOTPTUD7-DzE2J0ru.js → chunk-YOTPTUD7-Cg9yDbvj.js} +1 -1
- package/dist/public/assets/{chunk-ZGVPDNZ5-gA_FvYeM.js → chunk-ZGVPDNZ5-Dg2m5m88.js} +1 -1
- package/dist/public/assets/{chunk-ZIRB5QZD-DTzEX6O5.js → chunk-ZIRB5QZD-DuiWBTeF.js} +1 -1
- package/dist/public/assets/classDiagram-OUVF2IWQ-CJ4TXwAt.js +1 -0
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-CQLf9yeG.js +1 -0
- package/dist/public/assets/{client-version-DN8Gnc8R.js → client-version-BeO7mg7I.js} +1 -1
- package/dist/public/assets/{cm-theme-BCzjFmR8.js → cm-theme-hkm-VXmY.js} +1 -1
- package/dist/public/assets/comment-chips-CnL7Mdk6.js +7 -0
- package/dist/public/assets/config-context-DO4l6dU6.js +1 -0
- package/dist/public/assets/config-provider-BmNEf-_4.js +4 -0
- package/dist/public/assets/{cose-bilkent-JH36ORCC-Dfdgm0c_.js → cose-bilkent-JH36ORCC-YCEFr4ip.js} +1 -1
- package/dist/public/assets/cynefin-VYW2F7L2-Dh2yc-Yt.js +1 -0
- package/dist/public/assets/{cynefinDiagram-TSTJHNR4-Cw46kgPb.js → cynefinDiagram-TSTJHNR4-BN7bqTzy.js} +1 -1
- package/dist/public/assets/{dagre-Bx2kZZfx.js → dagre-4yTvJ5bN.js} +1 -1
- package/dist/public/assets/{dagre-VKFMJZFB-BZXSt5WP.js → dagre-VKFMJZFB-DlQyYi34.js} +1 -1
- package/dist/public/assets/{diagram-FQU43EPY-d7V3h8SU.js → diagram-FQU43EPY-DaKZOj7t.js} +1 -1
- package/dist/public/assets/{diagram-G47NLZAW-UEIcjgnl.js → diagram-G47NLZAW-DjL0bkk2.js} +1 -1
- package/dist/public/assets/{diagram-NH7WQ7WH-VelQiPV8.js → diagram-NH7WQ7WH-BFVKsCaX.js} +1 -1
- package/dist/public/assets/{diagram-OA4YK3LP-DSOrpt5z.js → diagram-OA4YK3LP-CXLUBG3X.js} +1 -1
- package/dist/public/assets/{diagram-WEI45ONY-C2KGJAjs.js → diagram-WEI45ONY-4JXEHpGs.js} +1 -1
- package/dist/public/assets/{dialog-FGMqkFjm.js → dialog-CCQHftjy.js} +1 -1
- package/dist/public/assets/{dist-D0E_Pe_n.js → dist-6M032-rx.js} +1 -1
- package/dist/public/assets/{dist-BSFcbUmR.js → dist-B3siOv8e.js} +1 -1
- package/dist/public/assets/{dist-Br-Gb0Mn2.js → dist-BkKhGRrp2.js} +1 -1
- package/dist/public/assets/{dist-D1CcITrZ.js → dist-C11p0Ish.js} +1 -1
- package/dist/public/assets/{dist-DIn3VYDc2.js → dist-CLzUuFWF2.js} +182 -180
- package/dist/public/assets/{dist-BpT9gASx.js → dist-Cq2eW_l0.js} +1 -1
- package/dist/public/assets/{dist-DetO1WI6.js → dist-D-N_uAqc.js} +1 -1
- package/dist/public/assets/{dist-BiwnBosN2.js → dist-DOpBKTtD.js} +1 -1
- package/dist/public/assets/{dist-ButMY3R3.js → dist-DTdK5ajW.js} +1 -1
- package/dist/public/assets/{dist-CZG2zXVq.js → dist-DYeLFwEq.js} +1 -1
- package/dist/public/assets/{dist-7c4LkvyR.js → dist-DmIoZuDL.js} +1 -1
- package/dist/public/assets/{dist-PVNGgT7j.js → dist-EhhPm2QX.js} +1 -1
- package/dist/public/assets/{dist-2Zg1mqwY.js → dist-KXQQa8Xt.js} +1 -1
- package/dist/public/assets/{dist-CK9mVFzk.js → dist-p_jJ7IYj.js} +1 -1
- package/dist/public/assets/{doc-paths-KCjzuC60.js → doc-paths-D7j_eEce.js} +1 -1
- package/dist/public/assets/{documents-events-FrlFXuC-.js → documents-events-BXEDUEK0.js} +1 -1
- package/dist/public/assets/{ebnfDiagram-CCIWWBDH-ZrmzNbWG.js → ebnfDiagram-CCIWWBDH-BYS8OeyH.js} +1 -1
- package/dist/public/assets/{erDiagram-Q63AITRT-BBTP0qHZ.js → erDiagram-Q63AITRT-DJnXYkWL.js} +1 -1
- package/dist/public/assets/eventmodeling-45OFAUF4-CoqTTBqG.js +1 -0
- package/dist/public/assets/{file-tree-adapter-BBMHbQG5.js → file-tree-adapter-CjX34jcF.js} +1 -1
- package/dist/public/assets/{file-tree-utils-DeyBapi2.js → file-tree-utils-Ce34hqQC.js} +1 -1
- package/dist/public/assets/flowDiagram-23GEKE2U-BuF1ujIX.js +1 -0
- package/dist/public/assets/{folder-config-api-OU19qNKs.js → folder-config-api-B4ZIaRYS.js} +1 -1
- package/dist/public/assets/follow-file-B0woPClO.js +1 -0
- package/dist/public/assets/{ganttDiagram-NO4QXBWP-BNFd_PNq.js → ganttDiagram-NO4QXBWP-DItaKOAF.js} +1 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-D2tde3MB.js +1 -0
- package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-Bh6zKfrc.js → gitGraphDiagram-IHSO6WYX-DHQDAgYw.js} +1 -1
- package/dist/public/assets/globals-BMBVXTkN.css +1 -0
- package/dist/public/assets/{globals-D4ycChQP.js → globals-C8FNtceU.js} +2 -2
- package/dist/public/assets/{graphlib-BIjbwrWA.js → graphlib-2sje7ygs.js} +1 -1
- package/dist/public/assets/{highlighted-body-OFNGDK62-Bk6-lgsP.js → highlighted-body-OFNGDK62-B67nCp45.js} +1 -1
- package/dist/public/assets/index-VIf9lkOi.js +2092 -0
- package/dist/public/assets/info-DKCQHKI2-DIQGY0RW.js +1 -0
- package/dist/public/assets/{infoDiagram-FWYZ7A6U-BEVnShNr.js → infoDiagram-FWYZ7A6U-DEoYqFCv.js} +1 -1
- package/dist/public/assets/{input-group-cP5PCk_d.js → input-group-DySyX67I.js} +1 -1
- package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-3BFj-gt2.js → ishikawaDiagram-FXEZZL3T-nCaxlJmo.js} +1 -1
- package/dist/public/assets/{journeyDiagram-5HDEW3XC-DZXVJa-m.js → journeyDiagram-5HDEW3XC-SSk-SIOT.js} +1 -1
- package/dist/public/assets/{kanban-definition-HUTT4EX6-ZEJY2PY6.js → kanban-definition-HUTT4EX6-DRKBtZF0.js} +1 -1
- package/dist/public/assets/{line-CBrFSVI1.js → line-D6Xvw2WQ.js} +1 -1
- package/dist/public/assets/{linear-HAqJanW2.js → linear-CUFA2OWO.js} +1 -1
- package/dist/public/assets/{lint-config-client-D7DpNIwn.js → lint-config-client-5M2PwjWj.js} +1 -1
- package/dist/public/assets/{map-CUyVBcsz.js → map-DbAr_xa0.js} +1 -1
- package/dist/public/assets/{markdownlint-rule-browser-eFxHHf9q.js → markdownlint-rule-browser-Bh_v81ob.js} +1 -1
- package/dist/public/assets/mermaid-GHXKKRXX-Dejo0Qfr.js +1 -0
- package/dist/public/assets/{mermaid-parser.core-CAIoUhyF.js → mermaid-parser.core-B8FUrn7y.js} +2 -2
- package/dist/public/assets/{mermaid.core-BSPhkPvD.js → mermaid.core-PVP9iSLZ.js} +3 -3
- package/dist/public/assets/{mindmap-definition-LN4V7U3C-d7Yar9sd.js → mindmap-definition-LN4V7U3C-DZarlxka.js} +1 -1
- package/dist/public/assets/{navigation-targets-BDSeZX3c.js → navigation-targets-CBDcAPCE.js} +1 -1
- package/dist/public/assets/{now-DrceMm81.js → now-B4vxsI1S.js} +1 -1
- package/dist/public/assets/{open-managed-artifact-tab-Wkw7QMir.js → open-managed-artifact-tab-CD2IVH49.js} +1 -1
- package/dist/public/assets/{ordinal-DOdOZcEj.js → ordinal-Cfxeoxe-.js} +1 -1
- package/dist/public/assets/packet-7NZHBO7P-C6h6PguP.js +1 -0
- package/dist/public/assets/{pegDiagram-2B236MQR-CEUK_J9s.js → pegDiagram-2B236MQR-xOZS-dXD.js} +1 -1
- package/dist/public/assets/{pending-receive-nav-store-BN0afFCO.js → pending-receive-nav-store-Biw1Epvx.js} +1 -1
- package/dist/public/assets/pie-RZYD4A2V-BgsL62qC.js +1 -0
- package/dist/public/assets/{pieDiagram-ENE6RG2P-BKd67Ppo.js → pieDiagram-ENE6RG2P-DCp62t84.js} +1 -1
- package/dist/public/assets/{project-paths-DF-eCznB.js → project-paths-CMGR87VL.js} +1 -1
- package/dist/public/assets/{prop-types-MABP6X1c.js → prop-types-CzBvMPTy.js} +1 -1
- package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-GOJ4Ru_Z.js → quadrantDiagram-ABIIQ3AL-BDn0FSq4.js} +1 -1
- package/dist/public/assets/radar-I7S5WNFK-2Fukjsh1.js +1 -0
- package/dist/public/assets/{radio-group-MAC3jHHk.js → radio-group-CvYE9US5.js} +1 -1
- package/dist/public/assets/railroad-3IZDKUUU-BXQstaOW.js +1 -0
- package/dist/public/assets/railroad-abnf-AHOZXSZD-D4DJxFB6.js +1 -0
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-B9wL5Mgq.js +1 -0
- package/dist/public/assets/railroad-peg-LSFZ7HO6-TRaMzMt0.js +1 -0
- package/dist/public/assets/{railroadDiagram-RFXS5EU6-hbmjTFrg.js → railroadDiagram-RFXS5EU6-C8pvuwMD.js} +1 -1
- package/dist/public/assets/{receive-store-CTNYU3q-.js → receive-store-8-NLCTcl.js} +1 -1
- package/dist/public/assets/{requirementDiagram-TGXJPOKE-BiEasTaW.js → requirementDiagram-TGXJPOKE-D_WWP7vX.js} +1 -1
- package/dist/public/assets/{sankeyDiagram-HTMAVEWB-DgAnFftC.js → sankeyDiagram-HTMAVEWB-B5F6SKgf.js} +1 -1
- package/dist/public/assets/{schema-fields-view-intent-DVVFEaIP.js → schema-fields-view-intent-Df0KnOO8.js} +1 -1
- package/dist/public/assets/{selection-context-BgucOSM-.js → selection-context-e4f29ln_.js} +1 -1
- package/dist/public/assets/{sequenceDiagram-DBY2YBRQ-CTQ250gM.js → sequenceDiagram-DBY2YBRQ-Q2j2kfBA.js} +1 -1
- package/dist/public/assets/{sizeCapture-X5ZJPWSS-CdOK33Lp.js → sizeCapture-X5ZJPWSS-B6c4PqMD.js} +1 -1
- package/dist/public/assets/skill-actions-BRtvvjCU.js +2 -0
- package/dist/public/assets/skill-scope-DQD8O86J.js +1 -0
- package/dist/public/assets/{skills-api-BCiYKVSk.js → skills-api-CmrsjdWe.js} +1 -1
- package/dist/public/assets/{src-CprZUkQE.js → src-BFmudBKQ.js} +1 -1
- package/dist/public/assets/{src-C_O1F_4l.js → src-DFNABQhY.js} +1 -1
- package/dist/public/assets/{stateDiagram-2N3HPSRC-XnGXamTb.js → stateDiagram-2N3HPSRC-rRceSq2o.js} +1 -1
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-D6QBedzc.js +1 -0
- package/dist/public/assets/{swimlanes-5IMT3BWC-DoENgZhK.js → swimlanes-5IMT3BWC-BCV0gUXz.js} +2 -2
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-DTjtbbG7.js +8 -0
- package/dist/public/assets/{tag-pill-input-3Bkld5bN.js → tag-pill-input-MTbs9SQK.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-BZ8rve8n.js → target-navigation-intent-O-KNJVho.js} +1 -1
- package/dist/public/assets/{telemetry-impl-BnnSgCUt.js → telemetry-impl-D8fmQ-sL.js} +2 -2
- package/dist/public/assets/{telemetry-startup-Bm4eG3HE.js → telemetry-startup-DC_TV8BC.js} +1 -1
- package/dist/public/assets/{terminal-launch-events-DbpTBIvl.js → terminal-launch-events-BBXOhZSh.js} +1 -1
- package/dist/public/assets/{terminal-telemetry-BMiT9GUh.js → terminal-telemetry-B4AWY5_A.js} +1 -1
- package/dist/public/assets/text-viewer-languages-Bnw74F7h.js +2 -0
- package/dist/public/assets/{thread-client-Boy5ZhFJ.js → thread-client-BVh92ozO.js} +1 -1
- package/dist/public/assets/{timeline-definition-FHXFAJF6-Dz7EyUrw.js → timeline-definition-FHXFAJF6-gfnw-IEO.js} +1 -1
- package/dist/public/assets/treeView-QDETBFTQ-DItjR5Rl.js +1 -0
- package/dist/public/assets/treemap-6X3UGDF4-D1JSLPGs.js +1 -0
- package/dist/public/assets/{typing-burst-detector-DDN6b6N7.js → typing-burst-detector-BC_MP6fa.js} +3 -3
- package/dist/public/assets/{uninstall-DJBDkbwq.js → uninstall-D1vd3-cj.js} +1 -1
- package/dist/public/assets/{use-activity-panel-CInEut0L.js → use-activity-panel-D8J3vm0W.js} +1 -1
- package/dist/public/assets/{use-collab-url-ecWCytiv.js → use-collab-url-ryL1J_Cn.js} +1 -1
- package/dist/public/assets/use-live-xterm-theme-Bit3P-w4.js +1 -0
- package/dist/public/assets/{use-open-skill-C3UqDa0B.js → use-open-skill-CItHgrjr.js} +1 -1
- package/dist/public/assets/{use-settings-route-CYvmk4XT.js → use-settings-route-DzedD2vL.js} +1 -1
- package/dist/public/assets/{use-skill-directory-Ce1Wy5Qf.js → use-skill-directory-zc2nSEYt.js} +1 -1
- package/dist/public/assets/{use-skill-origin-DscI7Fo0.js → use-skill-origin-C_LYVSfo.js} +1 -1
- package/dist/public/assets/{use-skills-B19yYlmR.js → use-skills-DrxE5iKU.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-D556BQSW.js → use-terminal-enabled-CXM-nkD1.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-C_2VFthE.js → use-timeline-entry-diff-BvT74ai9.js} +1 -1
- package/dist/public/assets/{use-workspace-008C-zhL.js → use-workspace-Di9mo5VO.js} +1 -1
- package/dist/public/assets/{vennDiagram-L72KCM5P-CSiYKx1Y.js → vennDiagram-L72KCM5P-CbI7Ws0x.js} +1 -1
- package/dist/public/assets/wardley-OPB4EBWU-BEy33__G.js +1 -0
- package/dist/public/assets/{wardleyDiagram-EHGQE667-CGZiBV3f.js → wardleyDiagram-EHGQE667-CDUlKkhj.js} +1 -1
- package/dist/public/assets/{xychartDiagram-FW5EYKEG-CQtMPqdH.js → xychartDiagram-FW5EYKEG-BnHJ2vZS.js} +1 -1
- package/dist/public/index.html +128 -115
- package/dist/public/uninstall.html +11 -11
- package/dist/{repair-launch-json-BDkJpah_.mjs → repair-launch-json-CQDV30jI.mjs} +2 -2
- package/dist/{repair-mcp-configs-DnQc3393.mjs → repair-mcp-configs-BUZaj3Gg.mjs} +2 -2
- package/dist/{repair-skills-BikzcmQr.mjs → repair-skills-DueNXSu9.mjs} +2 -2
- package/dist/repair-skills-rWKf_ECf.mjs +1 -0
- package/dist/schemas/v0/config.user.schema.json +45 -2
- package/dist/{server-lock-DgWnoftI.mjs → server-lock-3ByzWRdV.mjs} +2 -2
- package/dist/server-lock-BqPFXabR.mjs +1 -0
- package/dist/{sleep-C5OfWWWx.mjs → sleep-ByqzSHar.mjs} +2 -2
- package/dist/{src-CWDcUomk.mjs → src-C_7vTM-s.mjs} +427 -427
- package/dist/src-DoFFGGEx.mjs +20 -0
- package/dist/{src-pJ6LEXKc.mjs → src-czIvvgm0.mjs} +125 -123
- package/dist/src-xynSvLbg.mjs +1 -0
- package/dist/{start-B8X4x2RR.mjs → start-BFlyahE1.mjs} +3 -3
- package/dist/start-DMNwAWYy.mjs +1 -0
- package/dist/{write-project-skill-B8LGhuHT.mjs → write-project-skill-DpGXCFNK.mjs} +4 -4
- package/package.json +4 -4
- package/dist/constants-CHd7yi0X.mjs +0 -2
- package/dist/fs-traced-CbQ-GS7x.mjs +0 -1
- package/dist/git-handle-D0uAjBAd.mjs +0 -1
- package/dist/init-DVGGoG7U.mjs +0 -1
- package/dist/loader-Da51ptLu.mjs +0 -1
- package/dist/md-manager-CrYbAiKl.mjs +0 -2
- package/dist/preview-CpHlywZf.mjs +0 -1
- package/dist/public/assets/DiffView-BBC1fcoF.js +0 -3
- package/dist/public/assets/DocumentContext-B0g_vd8N.js +0 -38
- package/dist/public/assets/FeedbackForm-FbNH_TYS.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-B-Y5eayN.js +0 -8
- package/dist/public/assets/ManagedArtifactProperties-Ddk1e_f6.js +0 -1
- package/dist/public/assets/ReportBugDialogBody-CXLxw7Fr.js +0 -3
- package/dist/public/assets/SettingsDialogBody-CFwua7VK.js +0 -12
- package/dist/public/assets/SourceEditor-BCMM4zJn.js +0 -1
- package/dist/public/assets/ThreadView-ktubIY9d.js +0 -6
- package/dist/public/assets/architecture-TIHT7OUA-4xbw6BHT.js +0 -1
- package/dist/public/assets/auth-state-cache-ZZgXmLCf.js +0 -11
- package/dist/public/assets/channel-W8Wrr3Pm.js +0 -1
- package/dist/public/assets/chunk-2Q5K7J3B-CTVQtWlX.js +0 -1
- package/dist/public/assets/chunk-VAUOI2AC-DXm68bP_.js +0 -1
- package/dist/public/assets/chunk-XXDRQBXY-AFNsmOQr.js +0 -1
- package/dist/public/assets/classDiagram-OUVF2IWQ-Cw2xj9dC.js +0 -1
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-BizmfFXw.js +0 -1
- package/dist/public/assets/config-context-CdjtvoAz.js +0 -1
- package/dist/public/assets/config-provider-CKct7q_G.js +0 -4
- package/dist/public/assets/cynefin-VYW2F7L2-PIqjqGI8.js +0 -1
- package/dist/public/assets/eventmodeling-45OFAUF4-BXfoXwmF.js +0 -1
- package/dist/public/assets/flowDiagram-23GEKE2U-BmjC2t41.js +0 -1
- package/dist/public/assets/follow-file-B9Rl63vu.js +0 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-CO_Nyook.js +0 -1
- package/dist/public/assets/globals-BLjNYywW.css +0 -1
- package/dist/public/assets/index-Bnezs-Zg.js +0 -2092
- package/dist/public/assets/info-DKCQHKI2-Qu4WNhHa.js +0 -1
- package/dist/public/assets/mermaid-GHXKKRXX-D5iPyEgH.js +0 -1
- package/dist/public/assets/packet-7NZHBO7P-DYoxmend.js +0 -1
- package/dist/public/assets/pie-RZYD4A2V-C5oywqmk.js +0 -1
- package/dist/public/assets/radar-I7S5WNFK-adGffv9k.js +0 -1
- package/dist/public/assets/railroad-3IZDKUUU-D4AY10Mc.js +0 -1
- package/dist/public/assets/railroad-abnf-AHOZXSZD-CSShZExy.js +0 -1
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-Dl_rhwOm.js +0 -1
- package/dist/public/assets/railroad-peg-LSFZ7HO6-B2JvE7nW.js +0 -1
- package/dist/public/assets/skill-actions-By3ZQhYp.js +0 -2
- package/dist/public/assets/skill-scope-DkGQeaIH.js +0 -1
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-DSmEVntN.js +0 -1
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-BDr_w1kf.js +0 -8
- package/dist/public/assets/text-viewer-languages-BZtGVaBl.js +0 -2
- package/dist/public/assets/treeView-QDETBFTQ-qMpkjbKi.js +0 -1
- package/dist/public/assets/treemap-6X3UGDF4-BW1Uc-Dj.js +0 -1
- package/dist/public/assets/use-live-xterm-theme-Bf72FxVk.js +0 -1
- package/dist/public/assets/wardley-OPB4EBWU-BBZU6-hF.js +0 -1
- package/dist/repair-skills-CCM2p_7S.mjs +0 -1
- package/dist/server-lock-CiN5OJ-t.mjs +0 -1
- package/dist/src-CGOjzQCL.mjs +0 -1
- package/dist/src-Drda0pBn.mjs +0 -20
- package/dist/start-CPV4EUy8.mjs +0 -1
- /package/dist/public/assets/{ActivityPanelDiffView-BXFg3amj.js → ActivityPanelDiffView-DZrMHlZH.js} +0 -0
- /package/dist/public/assets/{AppMenubar-ORka9Zwj.js → AppMenubar-CD82DZmT.js} +0 -0
- /package/dist/public/assets/{ConfigSharingInfoTooltip-C4ydhukC.js → ConfigSharingInfoTooltip-D_b3sMDA.js} +0 -0
- /package/dist/public/assets/{SkillModeBanner-BPmqGiVe.js → SkillModeBanner-DFgrdWyf.js} +0 -0
- /package/dist/public/assets/{__vite-browser-external-CVGzy5OC.js → __vite-browser-external-CL4duhlG.js} +0 -0
- /package/dist/public/assets/{agent-presence-Dn2bQ2Pn.js → agent-presence-DuXF7V6Q.js} +0 -0
- /package/dist/public/assets/{array-CxykTcx8.js → array-DRGYhAwX.js} +0 -0
- /package/dist/public/assets/{asset-dispatch-BOfThpQD.js → asset-dispatch-O9x3rXhj.js} +0 -0
- /package/dist/public/assets/{auth-prompt-store-CeUwLE3s.js → auth-prompt-store-DQ_HcDxh.js} +0 -0
- /package/dist/public/assets/{badge-CAMtyz4F.js → badge-CnYDYmI5.js} +0 -0
- /package/dist/public/assets/{chunk-KEIR6QF5-DQW1nIEN.js → chunk-KEIR6QF5-CTDrJ2_V.js} +0 -0
- /package/dist/public/assets/{chunk-Y2CYZVJY-Dp_m2dHs.js → chunk-Y2CYZVJY-WQQLMo_s.js} +0 -0
- /package/dist/public/assets/{clike-D2Qtyj0W.js → clike-BfpXCH0g.js} +0 -0
- /package/dist/public/assets/{clipboard-adapter-Brbch5VX.js → clipboard-adapter-DPkNOslT.js} +0 -0
- /package/dist/public/assets/{colors-DxV0gzKw.js → colors-BY0RBIvp.js} +0 -0
- /package/dist/public/assets/{copilot-_tsUyzgD.js → copilot-CuzHDCzI.js} +0 -0
- /package/dist/public/assets/{cursor-D_UKSHL6.js → cursor-W0skD8YU.js} +0 -0
- /package/dist/public/assets/{cytoscape.esm-Yabh0yK_.js → cytoscape.esm-Ck6hca6m.js} +0 -0
- /package/dist/public/assets/{defaultLocale-BwEiHuJD.js → defaultLocale-C9lDPH35.js} +0 -0
- /package/dist/public/assets/{desktop-bridge-types-FXg4M54A.js → desktop-bridge-types-BwR5S9HF.js} +0 -0
- /package/dist/public/assets/{diff-Dke_3Gcp.js → diff-CvjWTdgS.js} +0 -0
- /package/dist/public/assets/{dist-yoZDDKeY.js → dist-CTHTGkF4.js} +0 -0
- /package/dist/public/assets/{dist-CzC3AWOn.js → dist-CpRBr-Ct.js} +0 -0
- /package/dist/public/assets/{dist-CPBLOoKm.js → dist-DIZJMUWy.js} +0 -0
- /package/dist/public/assets/{dist-uN7pEWl0.js → dist-DmEZHXvB.js} +0 -0
- /package/dist/public/assets/{dist-BNDNcytQ.js → dist-lPnSB2_D.js} +0 -0
- /package/dist/public/assets/{documents-fetch-DhfOkJYw.js → documents-fetch-DK-kdvYE.js} +0 -0
- /package/dist/public/assets/{external-link-Dvu-nzFi.js → external-link-COF7NUCm.js} +0 -0
- /package/dist/public/assets/{field-CmzMDU7U.js → field-7smx8aeY.js} +0 -0
- /package/dist/public/assets/{file-tree-rename-validation-1Yh3dC3l.js → file-tree-rename-validation-DEz_ryBu.js} +0 -0
- /package/dist/public/assets/{form-DJq6IJkN.js → form-D-Z78Sh8.js} +0 -0
- /package/dist/public/assets/{format-DAPkd5Gj.js → format-CFFWVvag.js} +0 -0
- /package/dist/public/assets/{go-CcjpRIwm.js → go-D-9nxjMR.js} +0 -0
- /package/dist/public/assets/{init-c3-Nu4HJ.js → init-Dpr8Tcj2.js} +0 -0
- /package/dist/public/assets/{input-Cm94Cun3.js → input-CtKG6a5B.js} +0 -0
- /package/dist/public/assets/{isObject-cN229uXS.js → isObject-B_BLuINR.js} +0 -0
- /package/dist/public/assets/{libesm-DXt8eMZu.js → libesm-Dcsy_--i.js} +0 -0
- /package/dist/public/assets/{lint-plugin-meta-BxfSlkph.js → lint-plugin-meta-BnniPb1r.js} +0 -0
- /package/dist/public/assets/{lru-string-cache-Dvzy2WTu.js → lru-string-cache-jJ5hyYK1.js} +0 -0
- /package/dist/public/assets/{lua-DxmBbMX2.js → lua-qAotk3Jg.js} +0 -0
- /package/dist/public/assets/{mcp-consent-store-BcrhbRwc.js → mcp-consent-store-Dz4H-8gV.js} +0 -0
- /package/dist/public/assets/{min-BZE3RIbd.js → min-CCEG0l64.js} +0 -0
- /package/dist/public/assets/{minus-DfB0TQSz.js → minus-C4B0dZfA.js} +0 -0
- /package/dist/public/assets/{overlay-layers-Bzzqy8A3.js → overlay-layers-CBGNHxJK.js} +0 -0
- /package/dist/public/assets/{panel-Bjv8raTx.js → panel-UxAkffLp.js} +0 -0
- /package/dist/public/assets/{panel-right-open-ypUBRt7V.js → panel-right-open-DuqyjMS8.js} +0 -0
- /package/dist/public/assets/{panzoom.es-BG-eqGqR.js → panzoom.es-H6kNXvjN.js} +0 -0
- /package/dist/public/assets/{paperclip-DQzUb6fY.js → paperclip-BDIpg8Sx.js} +0 -0
- /package/dist/public/assets/{parse-api-error-Dmlzsw8v.js → parse-api-error-BFe1cdS7.js} +0 -0
- /package/dist/public/assets/{path-C0vgPxDI.js → path-56QyJhyg.js} +0 -0
- /package/dist/public/assets/{pdf-Cvbt6FaY.js → pdf-CYHvv2Oq.js} +0 -0
- /package/dist/public/assets/{pdf.worker-D0hSc7ZI.js → pdf.worker-B8Ju19hh.js} +0 -0
- /package/dist/public/assets/{perl-CTbv8SzR.js → perl-E4P7BXaC.js} +0 -0
- /package/dist/public/assets/{properties-CJVfsSwL.js → properties-DXHbGwrb.js} +0 -0
- /package/dist/public/assets/{r-DePwCFla.js → r-DCDstkyG.js} +0 -0
- /package/dist/public/assets/{refresh-cw-CTfHLdRW.js → refresh-cw-s-1Jcbef.js} +0 -0
- /package/dist/public/assets/{rough.esm-jZQkcmER.js → rough.esm-DE_lJ5Ge.js} +0 -0
- /package/dist/public/assets/{ruby-CbNmqTQ7.js → ruby-DeKk3LV3.js} +0 -0
- /package/dist/public/assets/{share-metadata-rows-CuFlpaJB.js → share-metadata-rows-B1YjvGbL.js} +0 -0
- /package/dist/public/assets/{shell-PtNEZQbu.js → shell-BRtU48Yb.js} +0 -0
- /package/dist/public/assets/{skeleton-Zj40UZU5.js → skeleton-DS8zjX9Q.js} +0 -0
- /package/dist/public/assets/{sortable.esm-BuA5-2It.js → sortable.esm-DR5PU-kX.js} +0 -0
- /package/dist/public/assets/{sql-DLytrKWQ.js → sql-XsKG_-B3.js} +0 -0
- /package/dist/public/assets/{square-pen-DbfX_rTK.js → square-pen-CJ1htiTi.js} +0 -0
- /package/dist/public/assets/{src-D9TuoXKa.js → src-DLd5TgYd.js} +0 -0
- /package/dist/public/assets/{startup-marks-B88RuIAa.js → startup-marks-BJYEMeGu.js} +0 -0
- /package/dist/public/assets/{stex-C_UPsIFu.js → stex-B3qxBOBU.js} +0 -0
- /package/dist/public/assets/{swift-BqNeJfD7.js → swift-CGhDVaQR.js} +0 -0
- /package/dist/public/assets/{textarea-Cl4IJ1LU.js → textarea-CUVLEZhx.js} +0 -0
- /package/dist/public/assets/{thread-draft-staging-XfhEE_6X.js → thread-draft-staging-BXLyxk1u.js} +0 -0
- /package/dist/public/assets/{timeline-diff-store-B-Ea84Rl.js → timeline-diff-store-sC1fl4YV.js} +0 -0
- /package/dist/public/assets/{toml-Cboq-aWW.js → toml-DkvxgD0C.js} +0 -0
- /package/dist/public/assets/{trash-2-WxyktwvM.js → trash-2-B8G0hzas.js} +0 -0
- /package/dist/public/assets/{triangle-alert-C2yId37R.js → triangle-alert-aDFrGIbV.js} +0 -0
- /package/dist/public/assets/{undo-2-DlBBaLMR.js → undo-2-DKF_XXr6.js} +0 -0
- /package/dist/public/assets/{use-installed-clis-BpdGnrVu.js → use-installed-clis-B7_xP0xS.js} +0 -0
- /package/dist/public/assets/{useLintConfigViewMode-DHyC74de.js → useLintConfigViewMode-C3vaXrG0.js} +0 -0
- /package/dist/public/assets/{wrench-BvqzH63x.js → wrench-tsJ759Zo.js} +0 -0
- /package/dist/public/assets/{x-xV4a4mi6.js → x-DIcZlcqo.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ao as e,No as t,P as n,Po as r,R as i,Yo as a,Zo as o,d as s,l as c,ss as l,ws as u}from"./src-czIvvgm0.mjs";import{$ as d,$i as f,$n as p,$r as m,$t as h,A as g,Ai as _,An as v,Ar as y,At as b,B as x,Bi as S,Bn as C,Br as w,Bt as T,C as E,Ci as D,Cn as O,Ct as k,D as A,Di as j,Dn as M,Dt as N,E as P,Ei as F,En as I,Et as L,F as R,Fi as z,Fn as B,Fr as V,Ft as H,G as U,Gi as W,Gn as G,Gr as K,Gt as q,H as J,Hi as Y,Hn as X,Hr as Z,Ht as Q,I as $,Ii as ee,In as te,Ir as ne,It as re,J as ie,Ji as ae,Jn as oe,Jr as se,Jt as ce,K as le,Ki as ue,Kn as de,Kr as fe,Kt as pe,L as me,Li as he,Ln as ge,Lr as _e,Lt as ve,M as ye,Mi as be,Mn as xe,Mr as Se,Mt as Ce,N as we,Ni as Te,Nn as Ee,Nr as De,Nt as Oe,O as ke,Oi as Ae,On as je,Or as Me,Ot as Ne,P as Pe,Pi as Fe,Pn as Ie,Pr as Le,Pt as Re,Q as ze,Qi as Be,Qn as Ve,Qr as He,Qt as Ue,R as We,Ri as Ge,Rn as Ke,Rr as qe,Rt as Je,S as Ye,Si as Xe,Sn as Ze,Sr as Qe,St as $e,T as et,Ti as tt,Tn as nt,Tt as rt,U as it,Ui as at,Un as ot,Ur as st,Ut as ct,V as lt,Vi as ut,Vn as dt,Vr as ft,Vt as pt,W as mt,Wi as ht,Wn as gt,Wr as _t,Wt as vt,X as yt,Xi as bt,Xn as xt,Xr as St,Xt as Ct,Y as wt,Yi as Tt,Yn as Et,Yr as Dt,Yt as Ot,Z as kt,Zi as At,Zn as jt,Zr as Mt,Zt as Nt,_ as Pt,_a as Ft,_i as It,_n as Lt,_r as Rt,_t as zt,a as Bt,aa as Vt,ai as Ht,an as Ut,ar as Wt,at as Gt,b as Kt,bi as qt,bn as Jt,br as Yt,bt as Xt,c as Zt,ca as Qt,ci as $t,cn as en,cr as tn,d as nn,da as rn,di as an,dn as on,dr as sn,ea as cn,ei as ln,en as un,er as dn,et as fn,f as pn,fa as mn,fi as hn,fn as gn,fr as _n,g as vn,ga as yn,gn as bn,gr as xn,gt as Sn,h as Cn,ha as wn,hi as Tn,hn as En,hr as Dn,ht as On,i as kn,ia as An,ii as jn,in as Mn,ir as Nn,it as Pn,j as Fn,ji as In,jn as Ln,jr as Rn,jt as zn,k as Bn,ki as Vn,kn as Hn,kr as Un,kt as Wn,l as Gn,la as Kn,li as qn,ln as Jn,lr as Yn,m as Xn,ma as Zn,mi as Qn,mn as $n,mr as er,mt as tr,n as nr,na as rr,ni as ir,nn as ar,nr as or,nt as sr,o as cr,oa as lr,oi as ur,on as dr,or as fr,ot as pr,p as mr,pa as hr,pi as gr,pn as _r,pr as vr,q as yr,qi as br,qn as xr,qr as Sr,qt as Cr,r as wr,ra as Tr,ri as Er,rn as Dr,rr as Or,rt as kr,s as Ar,sa as jr,si as Mr,sn as Nr,sr as Pr,st as Fr,t as Ir,ta as Lr,ti as Rr,tn as zr,tr as Br,tt as Vr,u as Hr,ua as Ur,ui as Wr,un as Gr,ur as Kr,v as qr,va as Jr,vi as Yr,vn as Xr,vr as Zr,vt as Qr,w as $r,wi as ei,wn as ti,wt as ni,x as ri,xi as ii,xn as ai,xr as oi,xt as si,y as ci,yi as li,yn as ui,yr as di,yt as fi,z as pi,zi as mi,zn as hi,zr as gi,zt as _i}from"./src-C_7vTM-s.mjs";import{C as vi,E as yi,T as bi,_ as xi,b as Si,c as Ci,d as wi,g as Ti,i as Ei,l as Di,m as Oi,n as ki,p as Ai,s as ji,t as Mi,u as Ni,v as Pi,w as Fi,x as Ii,y as Li}from"./fs-traced-ArlA_yTp.mjs";import{a as Ri,d as zi,f as Bi,i as Vi,l as Hi,n as Ui,r as Wi,t as Gi,u as Ki}from"./logger-5LePyO3n.mjs";import{S as qi,_ as Ji,a as Yi,c as Xi,f as Zi,g as Qi,h as $i,i as ea,l as ta,m as na,n as ra,o as ia,p as aa,r as oa,s as sa,t as ca,u as la,v as ua,x as da}from"./server-lock-3ByzWRdV.mjs";export{Kn as AGENT_ID_MAX_LEN,Ur as AGENT_ID_RE,tt as AGENT_WRITE_ORIGIN,yn as AcpPermissionStore,hr as AcpRegistry,qt as AcpThreadManager,Yr as AgentFocusBroadcaster,It as AgentPresenceBroadcaster,F as AgentSessionCapacityError,j as AgentSessionManager,On as AutoStartDisabledError,tn as BUNDLE_IDS,Yn as BUNDLE_SCOPE,Kr as BUNDLE_SKILL_NAME,hi as BacklinkIndex,he as CC1Broadcaster,o as CC1_CONTRACT_VERSION,Jn as CONFIG_FILENAME,Ee as CONFLICT_MARKER_RE,Se as CURSOR_BUNDLE_PATHS_BY_PLATFORM,Pt as ConfigSchema,at as DEFAULT_CHECKPOINT_RETENTION,se as DEFAULT_EMBEDDINGS_DIMENSIONS,Re as DEFAULT_PACK_ID,lt as DocumentDurabilityState,Dt as EMBEDDINGS_API_KEY_ENV,Zn as FEATURED_AGENT_IDS,ht as FILE_SYSTEM_WRITER,ge as FILE_WATCHER_ORIGIN,Z as FileEmbeddingsBackend,Ct as GIT_PREFLIGHT_FAIL_SPAN_NAME,W as GIT_UPSTREAM_WRITER,Ft as GitDirAccessError,Ue as GitNotAvailableError,h as GitTooOldError,Sn as HOCUSPOCUS_AUTH_REJECTION_REASONS,zt as HocuspocusAuthRejection,Qr as HocuspocusAuthTokenSchema,qe as INSTALLED_AGENTS_SCHEMES,a as LINEAGE_EPOCH_KEY,We as LIVE_DERIVED_INDEX_DEBOUNCE_MS,H as LOG_MD_TEMPLATE,ni as MANAGED_RENAME_ORIGIN,ii as MAX_ACP_THREADS,Ae as MAX_AGENT_SESSIONS,D as MCP_CONNECTION_ID_HEADER,e as MCP_SERVER_NAME,Vn as MIN_EVICTABLE_IDLE_MS,un as MIN_GIT_VERSION,J as MISSING_OK_CONFIG_MESSAGE,Jr as MalformedGitPointerError,fn as McpLogger,it as MissingOkConfigError,In as OBSERVER_SYNC_ORIGIN,Gr as OK_OKIGNORE_TEMPLATE,t as ORPHAN_MODES,u as PROTOCOL_VERSION,Gi as PinoLogger,Xi as ProcessLockCollisionError,Gn as ProjectGitInitError,rt as ROLLBACK_ORIGIN,on as ROOT_GITIGNORE_TEMPLATE,Qi as RUNTIME_VERSION,Wr as RemoteConfigError,ue as SERVICE_WRITER,Or as SKILL_INSTALL_EVENTS_FILE_REL,n as SKILL_STATE_TARGETS,re as STARTER_FOLDERS,ve as STARTER_FOLDER_FRONTMATTER_FILENAME,Je as STARTER_PACKS,_i as STARTER_PACK_IDS,T as STARTER_TEMPLATES,et as STATE_MANIFEST_FILENAME,Ji as STATE_SCHEMA_VERSION,l as SYSTEM_DOC_NAME,pe as SeedPrerequisiteError,Cr as SeedRootDirError,ca as ServerLockCollisionError,Ir as SingleFileNotAFileError,nr as SingleFileNotFoundError,wr as SingleFileNotMarkdownError,P as StateManifestError,Ke as TagIndex,sn as USER_GLOBAL_BUNDLE_IDS,dt as UiLockCollisionError,L as __getShowAllWalkStatsForTesting,N as __resetShowAllWalkStatsForTesting,ta as acquireProcessLock,ra as acquireServerLock,X as acquireUiLock,_ as applyAgentMarkdownWrite,Ln as applyExternalChange,Oe as applySeed,A as assertCompatibleStateManifest,zr as assertGitAvailable,ui as assertNeverDiskEvent,li as attachAcpThreadSocket,tr as attachIdleShutdown,qr as bootServer,de as buildAndOpenSkill,gn as buildConfigYmlContent,wt as buildExecResult,Xe as buildOkMcpStdioCommand,Wt as buildSkillZip,pt as buildStarterFolderFrontmatterYaml,br as buildWipTree,_n as bundleSkillMdPath,st as canonicalProjectKey,Jt as classifyEvents,Mi as classifyFsPath,_t as clearAllEmbeddingsKeys,Mt as clearContributors,Q as coercePackId,c as colorFromSeed,ae as commitUpstreamImport,Tt as commitWip,bt as commitWipFromTree,ar as compareSemver,Dn as composeEffectiveLinterConfig,xn as composeFrontmatterSchemasConfig,Ie as containsConflictMarkers,ai as contentHash,He as contributorCount,Pe as countShadowObjects,R as countStaleAgentWipRefs,$ as countWipRefs,Ne as createApiExtension,Mr as createAssetServeMiddleware,U as createCollaborationHost,Me as createContentFilter,Un as createContentFilterAsync,K as createEmbeddingsSecretStore,kn as createEphemeralProjectDir,xe as createExternalChangeHandler,pn as createFileLogger,pi as createLiveDerivedIndexExtension,yr as createMcpHttpHandler,gi as createOsProbe,we as createPersistenceExtension,E as createServer,Fn as createServerObserverExtension,Fe as createStreamingErrorWriter,Ui as createTestLogger,fe as describeStoredEmbeddingsKey,vn as detectClaudeDesktopPresence,Dr as detectGit,ke as detectProjectShape,xr as detectUserSkillHosts,kr as discoverLockDirs,di as discoverMarkdownlintConfig,Nt as emitPreflightFailureSpan,yt as encodeDocName,kt as encodeFolderRoute,ze as encodeSkillRoute,Hr as ensureProjectGit,_r as ensureProjectSkillGitignore,z as errorResponse,Ze as evictStaleTrackerEntries,Wn as extractHeadings,Pn as extractOkBinaryPath,C as extractWikiLinksFromMarkdown,Mn as fallbackPaths,nn as findEnclosingGitRoot,Lt as findEnclosingProjectRoot,Yt as findNativeMarkdownlintFile,mr as flushFileLogger,fi as formatAuthRejectionWire,m as formatContributors,ln as formatContributorsFrom,zn as formatPackRationale,At as gcCheckpointRefs,Vr as getCurrentMcpLogger,jn as getLocalDir,Xn as getLogFilePath,Wi as getLogger,Cn as getLogsDir,ua as getMachineId,Li as getMeter,An as getMetrics,Si as getTracer,Vt as handleCollabSocketError,De as handleSpawnCursor,an as hasForwardingHeaders,me as hasGcLogLatch,s as iconFromClientName,lr as incrementCollabSocketFilteredError,jr as incrementServerObserverFire,$n as initContent,Be as initShadowRepo,Ii as initTelemetry,Kt as initToleranceTelemetryWriter,Fr as installPrettyZodErrors,Vi as installTestLoggers,oe as installUserSkill,qn as isAllowedApiOrigin,Qn as isAllowedWorkspaceHostHeader,Ge as isConfigDoc,Xt as isHocuspocusAuthRejectionReason,ct as isKnownPackId,mi as isLinkIndexExcludedDoc,Tn as isLoopbackAddress,S as isManagedArtifactDoc,r as isOrphanMode,be as isPairedWriteOrigin,Le as isPathWithinDir,da as isProcessAlive,Xr as isProjectRoot,hn as isRemoteAdmitted,ut as isReservedForUserTree,O as isSelfWrite,Y as isSystemDoc,ri as isToleranceTelemetryEnabled,qi as isValidLockPid,ti as lastKnownHash,f as listRescueCheckpoints,vt as listStarterPacks,wn as loadCustomAgents,ye as loadPrincipal,la as lockFilePath,Ri as loggerFactory,Hi as logsCurrentPath,Ki as logsPreviousPath,Sr as makeLazyEmbeddingsKeyStore,oa as markServerLockDraining,mt as mountMcpAndApi,ki as normalizeFsPath,vr as originGitHubHost,En as packageVersionMajorMinor,si as parseAuthRejectionWire,Ut as parseGitVersion,$e as parseHocuspocusAuthToken,le as parseKeepaliveConnectionId,nt as pathToDocName,Ce as planSeed,Bt as prepareSingleFileOpen,Gt as processCommand,pr as processUsage,Et as readAllTargets,xt as readBundleDecision,oi as readOwnNativeRules,Zi as readProcessLock,aa as readProcessLockDetailed,x as readProjectHeadState,ft as readProjectLocalSemanticConfig,ea as readServerLock,jt as readServerPackageVersion,Ve as readSkillInstallStateSnapshot,Bn as readStateManifest,p as readTargetRecordedAt,dn as readTargetVersion,ot as readUiLock,B as reconcile,Rr as recordContributor,Nn as recordSkillInstallEvent,ie as registerAllTools,I as registerWrite,na as releaseProcessLock,Yi as releaseServerLock,gt as releaseUiLock,M as removeLastKnownHash,Qt as resetMetrics,i as resolveBundleEnabled,fr as resolveBundledSkillDir,Ht as resolveContentDir,V as resolveCursorBinaryDefault,ne as resolveCursorSpawnInvocation,Rt as resolveEffectiveLinterConfig,St as resolveEmbeddingsCredential,ur as resolveLockDir,Zr as resolveNativeConfigForDoc,Qe as resolveNativeMarkdownlintConfig,q as resolvePack,Ar as resolvePackageVersion,gr as resolveRemoteAccess,d as resolveUiInfo,ir as restoreContributors,ci as restoreLifecycleFromConflictsJson,y as rewriteMarkdownLinksForDocumentRename,Rn as rewriteWikiLinksForDocumentRename,dr as runAuthReposSubprocess,Nr as runAuthStatusSubprocess,ce as runCloneSubprocess,en as runDeviceFlowSubprocess,sr as runWithMcpLogger,$t as safeContentPath,b as safeSubdir,cn as safetyCheckpoint,ei as sanitizeClientName,Lr as saveInMemoryCheckpoint,rr as saveVersion,k as seedBasenameIndex,cr as serializeError,vi as setActiveSpanAttributes,Te as setupServerObservers,Tr as shadowGit,Fi as shutdownTelemetry,zi as spansCurrentPath,Bi as spansPreviousPath,_e as spawnDetached,te as splitMarkdownBlocks,je as startWatcher,ee as streamingProblemEvent,Er as swapContributors,Ye as teardownToleranceTelemetryWriter,rn as toBroadcasterKey,Ei as tracedAppendFileSync,ji as tracedLinkSync,Ci as tracedMkdir,Di as tracedMkdirSync,Ni as tracedRename,wi as tracedRenameSync,Ai as tracedRmSync,Oi as tracedRmdirSync,Ti as tracedUnlinkSync,xi as tracedWriteFile,Pi as tracedWriteFileSync,$r as trustSystemCertificates,Zt as untrackTrackedProjectSkillProjection,Hn as updateLastKnownHash,$i as updateProcessLockPort,ia as updateServerLockPort,G as updateUiLockPort,mn as validateAgentId,Ot as validateCloneInputs,Pr as validateSkillZip,sa as waitForServerLockDrain,w as withHiddenWindowsConsole,bi as withSpan,yi as withSpanSync,Br as writeBundleDecision,er as writeMarkdownlintRule,bn as writeRootGitignoreForNewRepo,g as writeStateManifest,or as writeTargetVersion,v as writeTracker};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Q as e,Y as t}from"./src-pJ6LEXKc.mjs";import{Jr as n,Vr as r,a as i,yn as a}from"./src-CWDcUomk.mjs";import{E as o,T as s}from"./write-project-skill-B8LGhuHT.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-BYLCx-9P.mjs";import{n as d}from"./constants-CHd7yi0X.mjs";import{spawn as f}from"node:child_process";import{basename as p,join as m,posix as h,resolve as g,win32 as _}from"node:path";import{closeSync as v,existsSync as y,mkdirSync as b,openSync as x,statSync as S}from"node:fs";import{homedir as C}from"node:os";import{rm as w}from"node:fs/promises";import{setTimeout as T}from"node:timers/promises";function E(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function D(e,t,n={}){let i=(n.spawn??f)(e,[...t],r({detached:!0,stdio:`ignore`,env:E(n.env??process.env)}));return i.unref(),i}const O=`OpenKnowledge.app`,k=`/Applications/${O}`;function A(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return S(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function j(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(M(e,k))return k;let t=m(e.homeDir??C(),`Applications`,O);return M(e,t)?t:null}function M(e,t){return N(e,m(t,`Contents`,`MacOS`,`OpenKnowledge`))}function N(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const ee=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function P(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of ee){let r=_.join(t,`Programs`,n,`OpenKnowledge.exe`);if(N(e,r))return r}return null}function F(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return N(e,t)?t:null}function I(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?j(e):e.platform===`win32`?P(e):F(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:!(e.isTTY===!0||e.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function L(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){D(`open`,[`-b`,`com.inkeep.open-knowledge`],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}D(i,[],{spawn:e.spawn})}function R(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function z(e){return h.join(h.dirname(e),`..`,`Frameworks`,`OpenKnowledge Server.app`,`Contents`,`MacOS`,`OpenKnowledge Helper`)}const te=/\/[^/]+\.app\/Contents\/MacOS\/[^/]+$/;function ne(e){if(e.platform!==`darwin`||!te.test(e.execPath))return null;let t=z(e.execPath);return e.exists(t)?t:null}function B(e={}){let t=e.execPath??process.execPath,n=e.platform??process.platform,r=e.argv??process.argv,i=e.exists??y,a=r[1];return a?{command:ne({execPath:t,platform:n,exists:i})??t,prefixArgs:[a]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(r)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function V(e,t){return e.host??t.HOST??`127.0.0.1`}function H(e,t){return t&&(e===`::`||e===`::1`||e===`[::1]`||e===`localhost`||e===`0.0.0.0`)?{host:`127.0.0.1`,coerced:!0}:{host:e,coerced:!1}}function U(e){let t=p(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var W=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function G(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function K(t){y(t.lockDir)||b(t.lockDir,{recursive:!0});let n=x(m(t.lockDir,e),`w`),r=t.spawn??f,{PORT:i,...a}=process.env,o=B();try{let e=r(o.command,[...o.prefixArgs,...t.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,n],windowsHide:!0,cwd:t.cwd,env:{...a,ELECTRON_RUN_AS_NODE:`1`}});return e.unref(),e}finally{try{v(n)}catch{}}}function q(e,t,n,r=!1){return e??(n!==void 0||r?void 0:t)}function J(e,t){return e!==void 0&&t!==null&&t.port>0&&t.draining!==!0}function Y(e,t,n){return e??+(t!=null&&!n)}async function X(e){let t=e.spawn??f,n=B(),{PORT:r,...i}=process.env,a=t(n.command,[...n.prefixArgs,`ui`,`--port`,String(e.uiPort)],{cwd:e.cwd,stdio:`inherit`,windowsHide:!0,env:{...i,ELECTRON_RUN_AS_NODE:`1`}}),o=!1,s=e=>{o=!0;try{a.kill(e)}catch{}},c=()=>s(`SIGINT`),l=()=>s(`SIGTERM`);process.once(`SIGINT`,c),process.once(`SIGTERM`,l),await new Promise(e=>{a.on(`exit`,(t,n)=>{process.exitCode=Y(t,n,o),e()}),a.on(`error`,t=>{console.error(`[start] connect fallback: failed to spawn ok ui — ${t instanceof Error?t.message:String(t)}`),process.exitCode=1,e()})}),process.removeListener(`SIGINT`,c),process.removeListener(`SIGTERM`,l)}async function Z(e){let t=e.now()+e.timeoutMs;for(;e.now()<t;){let t=e.readUiLock();if(t&&t.port>0)return t.port;await e.sleep(e.pollIntervalMs)}let n=e.readUiLock();return n&&n.port>0?n.port:null}const re=t;function ie(e,t,n=e=>w(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}}}}function ae(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let t=e.sigtermGraceMs??re,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>T(e)),i=e.reason??`teardown`;try{let a=e.readUiLock(),o=e.spawnedUiPid();if(a&&e.isAlive(a.pid)&&a.pid!==o)e.log?.info({pid:a.pid,port:a.port,spawnedUiPid:o},`${i}: ui.lock holder is not our spawned sibling — leaving it alone`);else if(a&&e.isAlive(a.pid))try{e.killPid(a.pid,`SIGTERM`),e.log?.info({pid:a.pid,port:a.port},`${i}: SIGTERM UI sibling`);let o=Date.now()+t;for(;Date.now()<o&&e.isAlive(a.pid);)await r(n);if(e.isAlive(a.pid))try{e.killPid(a.pid,`SIGKILL`),e.log?.warn({pid:a.pid,graceMs:t},`${i}: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:a.pid,err:t},`${i}: SIGKILL failed`)}}catch(t){e.log?.warn({pid:a.pid,err:t},`${i}: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t},`${i}: UI lookup failed; proceeding`)}}function oe(e){let{destroy:t,...n}=e;return async()=>{await Q({...n,reason:`idle-shutdown`}),await t()}}async function se(e){let{config:t,cwd:r,host:o}=e,s=e.skipAutoInit??!1,d=e.skipUiAutoSpawn??!1,f=e.idleThresholdMs??18e5,{existsSync:p,mkdirSync:m}=await import(`node:fs`),{basename:h,dirname:g}=await import(`node:path`),{bootServer:_,getLogger:v,isProcessAlive:y,readUiLock:b,resolveContentDir:x,resolveLockDir:S,waitForServerLockDrain:C}=await import(`./src-CGOjzQCL.mjs`),w=e.log??v(`start`),E=e.singleFile!==void 0,D=e.projectDir??r,O=E?i(e.singleFile).canonicalFilePath:void 0,k=O?g(O):void 0,A=O?h(O):void 0;if(!E){if(!s&&!a(r))throw new W(r);let t=process.env.OK_RECLAIM_DISABLE??null,n=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&w.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-DnQc3393.mjs`)).repairMcpConfigs)({projectDir:r,reclaimDisableEnv:t,logger:n})}catch(e){w.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-BDkJpah_.mjs`)).repairLaunchJson)({projectDir:r,reclaimDisableEnv:t,logger:n})}catch(e){w.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-CCM2p_7S.mjs`)).repairSkills)({projectDir:r,reclaimDisableEnv:t,logger:n})}catch(e){w.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let j=k??x(t,r);!E&&!p(j)&&(m(j,{recursive:!0}),w.info({contentDir:j},`Created content directory`));let M=null,N=null,ee=async({lockDir:t})=>{if(M=G({uiLock:b(t),isAlive:y}),M.action===`spawn`&&!d)try{let n=e.uiPort===void 0?void 0:[`ui`,`--port`,String(e.uiPort)];N=K({lockDir:t,cwd:r,spawn:e.spawn,args:n}).pid??null,w.info({reason:M.reason,uiPort:e.uiPort},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else M.action===`skip`&&w.info({port:M.port,pid:M.pid},`UI already running at port ${M.port}`)},P=e.reactShellDistDir===void 0,F=c(),I=n();{let e=S(E?D:r),t=Date.now(),n=await C(e);n!==`no-drain`&&w.info({event:`start-waited-for-draining-predecessor`,outcome:n,waitedMs:Date.now()-t,drainLockDir:e},n===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}let L=await _({config:t,contentDir:j,projectDir:E?D:r,contentRoot:E?void 0:t.content.dir,port:e.port,host:o,...e.enableRemote===!0?{enableRemote:!0}:{},quiet:!1,detectGh:l,tokenStore:F,embeddingsKeyStore:I,...E?{ephemeral:!0,singleDocRelPath:A,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>u(e,t),attachUiSibling:P,idleShutdownMs:f,skipAutoInit:!0,...P?{spawnUiSiblingFn:ee}:{},idleShutdownHandler:t=>{let n=oe({readUiLock:()=>b(L.lockDir),spawnedUiPid:()=>N,isAlive:y,killPid:(e,t)=>{process.kill(e,t)},destroy:t,log:w});return ae(E?ie(n,D):n,{log:w,exit:e.idleExit})},log:w,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}});M||={action:`skip`,reason:`alive`,pid:0,port:0};let R=M,z=null;if(R.action===`skip`)z=R.port>0?R.port:null;else if(!d){let t=e.uiBindTimeoutMs??3e3;z=await Z({readUiLock:()=>b(L.lockDir),now:Date.now,sleep:e=>T(e),timeoutMs:t,pollIntervalMs:50}),z===null&&w.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:L.httpServer,destroy:L.destroy,lockDir:L.lockDir,contentDir:j,port:L.port,ready:L.ready,degraded:L.degraded,uiSpawnDecision:M,spawnedUiPid:N,resolvedUiPort:z}}function ce(e){if(e===`browser`||e===`app`)return e;throw new o(`--mode must be 'browser' or 'app'`)}function le(e){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<1||t>65535)throw new o(`--ui-port must be a port number between 1 and 65535`);return t}function ue(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function $(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function de(e,t){let n=ue(process.env);n!==null&&(process.env.OK_CONSOLE_LEVEL=n);let{renderBanner:r}=await import(`./banner--DGfdMN8.mjs`),{accent:i,dim:a,error:o,warning:s}=await import(`./colors-MGDi6UGf.mjs`),c=process.cwd(),l=t.remote!==void 0&&t.remote!==!1,u=typeof t.remote==`string`?t.remote:void 0,f=u===void 0?e:{...e,remote:{...e.remote,url:u}};process.title=U(c),l&&(typeof f.remote?.url!=`string`||f.remote.url===``)&&(console.error(o("--remote requires a public tunnel URL — pass it (`ok start --remote https://<your-tunnel-host>`) or set remote.url in .ok/config.yml.")),process.exit(78)),l&&console.warn(s([``,`⚠ REMOTE ACCESS ENABLED — no server-side authentication.`,` Anyone who can reach ${f.remote?.url} has FULL control of this`,` knowledge base, including sync, publishing, credentials, and local operations.`,` Restrict who can reach it at the tunnel: ngrok OAuth, Cloudflare Access,`,` Tailscale ACLs, or equivalent edge auth.`,``].join(`
|
|
2
|
-
`)));let p=V(t,process.env),m=H(p,l);m.coerced&&console.warn(`remote access is enabled and ${p} is not an IPv4 loopback bind — tunnels proxy to 127.0.0.1, so binding ${p} would leave the tunnel dialing a dead port. Using 127.0.0.1.`);let h=m.host,_=t.port===void 0?void 0:Number(t.port),v=process.env.PORT?Number(process.env.PORT):void 0,b=t.uiPort===void 0?void 0:Number(t.uiPort);l&&_===void 0&&v!==void 0&&console.warn(`remote access is enabled — ignoring env PORT=${process.env.PORT}; the tunnel's port mapping targets the stable remote port (${f.remote?.port}). Pass --port to override deliberately.`);let x=q(_,v,b,l)??(l?f.remote?.port:void 0);if(b!==void 0){let{readServerLock:e,resolveLockDir:t}=await import(`./src-
|
|
1
|
+
import{Q as e,Y as t}from"./src-czIvvgm0.mjs";import{Br as n,a as r,qr as i,vn as a}from"./src-C_7vTM-s.mjs";import{E as o,T as s}from"./write-project-skill-DpGXCFNK.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-B3EeoS0N.mjs";import{n as d}from"./constants-C-pPgjfZ.mjs";import{spawn as f}from"node:child_process";import{basename as p,join as m,posix as h,resolve as g,win32 as _}from"node:path";import{closeSync as v,existsSync as y,mkdirSync as b,openSync as x,statSync as S}from"node:fs";import{homedir as C}from"node:os";import{rm as w}from"node:fs/promises";import{setTimeout as T}from"node:timers/promises";function E(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function D(e,t,r={}){let i=(r.spawn??f)(e,[...t],n({detached:!0,stdio:`ignore`,env:E(r.env??process.env)}));return i.unref(),i}const O=`OpenKnowledge.app`,k=`/Applications/${O}`;function A(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return S(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function j(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(M(e,k))return k;let t=m(e.homeDir??C(),`Applications`,O);return M(e,t)?t:null}function M(e,t){return N(e,m(t,`Contents`,`MacOS`,`OpenKnowledge`))}function N(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const ee=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function P(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of ee){let r=_.join(t,`Programs`,n,`OpenKnowledge.exe`);if(N(e,r))return r}return null}function F(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return N(e,t)?t:null}function I(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?j(e):e.platform===`win32`?P(e):F(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:!(e.isTTY===!0||e.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function L(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){D(`open`,[`-b`,`com.inkeep.open-knowledge`],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}D(i,[],{spawn:e.spawn})}function R(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function z(e){return h.join(h.dirname(e),`..`,`Frameworks`,`OpenKnowledge Server.app`,`Contents`,`MacOS`,`OpenKnowledge Helper`)}const te=/\/[^/]+\.app\/Contents\/MacOS\/[^/]+$/;function ne(e){if(e.platform!==`darwin`||!te.test(e.execPath))return null;let t=z(e.execPath);return e.exists(t)?t:null}function B(e={}){let t=e.execPath??process.execPath,n=e.platform??process.platform,r=e.argv??process.argv,i=e.exists??y,a=r[1];return a?{command:ne({execPath:t,platform:n,exists:i})??t,prefixArgs:[a]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(r)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function V(e,t){return e.host??t.HOST??`127.0.0.1`}function H(e,t){return t&&(e===`::`||e===`::1`||e===`[::1]`||e===`localhost`||e===`0.0.0.0`)?{host:`127.0.0.1`,coerced:!0}:{host:e,coerced:!1}}function U(e){let t=p(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var W=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function G(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function K(t){y(t.lockDir)||b(t.lockDir,{recursive:!0});let n=x(m(t.lockDir,e),`w`),r=t.spawn??f,{PORT:i,...a}=process.env,o=B();try{let e=r(o.command,[...o.prefixArgs,...t.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,n],windowsHide:!0,cwd:t.cwd,env:{...a,ELECTRON_RUN_AS_NODE:`1`}});return e.unref(),e}finally{try{v(n)}catch{}}}function q(e,t,n,r=!1){return e??(n!==void 0||r?void 0:t)}function J(e,t){return e!==void 0&&t!==null&&t.port>0&&t.draining!==!0}function Y(e,t,n){return e??+(t!=null&&!n)}async function X(e){let t=e.spawn??f,n=B(),{PORT:r,...i}=process.env,a=t(n.command,[...n.prefixArgs,`ui`,`--port`,String(e.uiPort)],{cwd:e.cwd,stdio:`inherit`,windowsHide:!0,env:{...i,ELECTRON_RUN_AS_NODE:`1`}}),o=!1,s=e=>{o=!0;try{a.kill(e)}catch{}},c=()=>s(`SIGINT`),l=()=>s(`SIGTERM`);process.once(`SIGINT`,c),process.once(`SIGTERM`,l),await new Promise(e=>{a.on(`exit`,(t,n)=>{process.exitCode=Y(t,n,o),e()}),a.on(`error`,t=>{console.error(`[start] connect fallback: failed to spawn ok ui — ${t instanceof Error?t.message:String(t)}`),process.exitCode=1,e()})}),process.removeListener(`SIGINT`,c),process.removeListener(`SIGTERM`,l)}async function Z(e){let t=e.now()+e.timeoutMs;for(;e.now()<t;){let t=e.readUiLock();if(t&&t.port>0)return t.port;await e.sleep(e.pollIntervalMs)}let n=e.readUiLock();return n&&n.port>0?n.port:null}const re=t;function ie(e,t,n=e=>w(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}}}}function ae(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let t=e.sigtermGraceMs??re,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>T(e)),i=e.reason??`teardown`;try{let a=e.readUiLock(),o=e.spawnedUiPid();if(a&&e.isAlive(a.pid)&&a.pid!==o)e.log?.info({pid:a.pid,port:a.port,spawnedUiPid:o},`${i}: ui.lock holder is not our spawned sibling — leaving it alone`);else if(a&&e.isAlive(a.pid))try{e.killPid(a.pid,`SIGTERM`),e.log?.info({pid:a.pid,port:a.port},`${i}: SIGTERM UI sibling`);let o=Date.now()+t;for(;Date.now()<o&&e.isAlive(a.pid);)await r(n);if(e.isAlive(a.pid))try{e.killPid(a.pid,`SIGKILL`),e.log?.warn({pid:a.pid,graceMs:t},`${i}: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:a.pid,err:t},`${i}: SIGKILL failed`)}}catch(t){e.log?.warn({pid:a.pid,err:t},`${i}: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t},`${i}: UI lookup failed; proceeding`)}}function oe(e){let{destroy:t,...n}=e;return async()=>{await Q({...n,reason:`idle-shutdown`}),await t()}}async function se(e){let{config:t,cwd:n,host:o}=e,s=e.skipAutoInit??!1,d=e.skipUiAutoSpawn??!1,f=e.idleThresholdMs??18e5,{existsSync:p,mkdirSync:m}=await import(`node:fs`),{basename:h,dirname:g}=await import(`node:path`),{bootServer:_,getLogger:v,isProcessAlive:y,readUiLock:b,resolveContentDir:x,resolveLockDir:S,waitForServerLockDrain:C}=await import(`./src-xynSvLbg.mjs`),w=e.log??v(`start`),E=e.singleFile!==void 0,D=e.projectDir??n,O=E?r(e.singleFile).canonicalFilePath:void 0,k=O?g(O):void 0,A=O?h(O):void 0;if(!E){if(!s&&!a(n))throw new W(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&w.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-BUZaj3Gg.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-CQDV30jI.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-rWKf_ECf.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let j=k??x(t,n);!E&&!p(j)&&(m(j,{recursive:!0}),w.info({contentDir:j},`Created content directory`));let M=null,N=null,ee=async({lockDir:t})=>{if(M=G({uiLock:b(t),isAlive:y}),M.action===`spawn`&&!d)try{let r=e.uiPort===void 0?void 0:[`ui`,`--port`,String(e.uiPort)];N=K({lockDir:t,cwd:n,spawn:e.spawn,args:r}).pid??null,w.info({reason:M.reason,uiPort:e.uiPort},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else M.action===`skip`&&w.info({port:M.port,pid:M.pid},`UI already running at port ${M.port}`)},P=e.reactShellDistDir===void 0,F=c(),I=i();{let e=S(E?D:n),t=Date.now(),r=await C(e);r!==`no-drain`&&w.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}let L=await _({config:t,contentDir:j,projectDir:E?D:n,contentRoot:E?void 0:t.content.dir,port:e.port,host:o,...e.enableRemote===!0?{enableRemote:!0}:{},quiet:!1,detectGh:l,tokenStore:F,embeddingsKeyStore:I,...E?{ephemeral:!0,singleDocRelPath:A,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>u(e,t),attachUiSibling:P,idleShutdownMs:f,skipAutoInit:!0,...P?{spawnUiSiblingFn:ee}:{},idleShutdownHandler:t=>{let n=oe({readUiLock:()=>b(L.lockDir),spawnedUiPid:()=>N,isAlive:y,killPid:(e,t)=>{process.kill(e,t)},destroy:t,log:w});return ae(E?ie(n,D):n,{log:w,exit:e.idleExit})},log:w,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}});M||={action:`skip`,reason:`alive`,pid:0,port:0};let R=M,z=null;if(R.action===`skip`)z=R.port>0?R.port:null;else if(!d){let t=e.uiBindTimeoutMs??3e3;z=await Z({readUiLock:()=>b(L.lockDir),now:Date.now,sleep:e=>T(e),timeoutMs:t,pollIntervalMs:50}),z===null&&w.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:L.httpServer,destroy:L.destroy,lockDir:L.lockDir,contentDir:j,port:L.port,ready:L.ready,degraded:L.degraded,uiSpawnDecision:M,spawnedUiPid:N,resolvedUiPort:z}}function ce(e){if(e===`browser`||e===`app`)return e;throw new o(`--mode must be 'browser' or 'app'`)}function le(e){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<1||t>65535)throw new o(`--ui-port must be a port number between 1 and 65535`);return t}function ue(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function $(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function de(e,t){let n=ue(process.env);n!==null&&(process.env.OK_CONSOLE_LEVEL=n);let{renderBanner:r}=await import(`./banner--DGfdMN8.mjs`),{accent:i,dim:a,error:o,warning:s}=await import(`./colors-MGDi6UGf.mjs`),c=process.cwd(),l=t.remote!==void 0&&t.remote!==!1,u=typeof t.remote==`string`?t.remote:void 0,f=u===void 0?e:{...e,remote:{...e.remote,url:u}};process.title=U(c),l&&(typeof f.remote?.url!=`string`||f.remote.url===``)&&(console.error(o("--remote requires a public tunnel URL — pass it (`ok start --remote https://<your-tunnel-host>`) or set remote.url in .ok/config.yml.")),process.exit(78)),l&&console.warn(s([``,`⚠ REMOTE ACCESS ENABLED — no server-side authentication.`,` Anyone who can reach ${f.remote?.url} has FULL control of this`,` knowledge base, including sync, publishing, credentials, and local operations.`,` Restrict who can reach it at the tunnel: ngrok OAuth, Cloudflare Access,`,` Tailscale ACLs, or equivalent edge auth.`,``].join(`
|
|
2
|
+
`)));let p=V(t,process.env),m=H(p,l);m.coerced&&console.warn(`remote access is enabled and ${p} is not an IPv4 loopback bind — tunnels proxy to 127.0.0.1, so binding ${p} would leave the tunnel dialing a dead port. Using 127.0.0.1.`);let h=m.host,_=t.port===void 0?void 0:Number(t.port),v=process.env.PORT?Number(process.env.PORT):void 0,b=t.uiPort===void 0?void 0:Number(t.uiPort);l&&_===void 0&&v!==void 0&&console.warn(`remote access is enabled — ignoring env PORT=${process.env.PORT}; the tunnel's port mapping targets the stable remote port (${f.remote?.port}). Pass --port to override deliberately.`);let x=q(_,v,b,l)??(l?f.remote?.port:void 0);if(b!==void 0){let{readServerLock:e,resolveLockDir:t}=await import(`./src-xynSvLbg.mjs`);if(J(b,e(t(c)))){await X({cwd:c,uiPort:b});return}}let S=t.reactShellDistDir;if(l&&S===void 0){let e=import.meta.dirname??new URL(`.`,import.meta.url).pathname;S=[g(e,`public`),g(e,`../../app/dist`),g(e,`../../../app/dist`)].find(e=>y(e)),S===void 0&&console.warn(`remote access: bundled web UI not found — serving /mcp and /api only over the tunnel.`)}let C;try{C=await se({config:f,cwd:c,host:h,port:x,...b===void 0?{}:{uiPort:b},...t.serveContentAssets===void 0?{}:{serveContentAssets:t.serveContentAssets},...S?{reactShellDistDir:S}:{},...t.singleFile?{singleFile:t.singleFile}:{},...t.projectDir?{projectDir:t.projectDir}:{},...l?{enableRemote:!0}:{}})}catch(e){e instanceof W&&(console.error(o(e.message)),process.exit(1));let t=await import(`./src-xynSvLbg.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.RemoteConfigError&&(console.error(o(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(o(e.message)),process.exit(1)),b!==void 0&&fe(e,t)){await X({cwd:c,uiPort:b});return}let n=pe(e,c,t);n!==null&&(console.error(o(n)),process.exit(1)),console.error(`${o(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let w=!1,T=async e=>{if(w)return;w=!0;let[t,...n]=$(e);console.log(i(`\n${t}`));for(let e of n)console.log(a(` ${e}`));if(C.spawnedUiPid!==null)try{let{getLogger:e,isProcessAlive:t,readUiLock:n}=await import(`./src-xynSvLbg.mjs`);await Q({readUiLock:()=>n(C.lockDir),spawnedUiPid:()=>C.spawnedUiPid,isAlive:t,killPid:(e,t)=>process.kill(e,t),log:e(`start`),reason:`shutdown`})}catch(e){console.error(`${o(`ui sibling teardown failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`)}try{await C.destroy()}catch(e){console.error(`${o(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{T(`SIGINT`)}),process.once(`SIGTERM`,()=>{T(`SIGTERM`)});let E=`http://${h}:${C.port}`,D=h===`0.0.0.0`||h===`::`?`http://0.0.0.0:${C.port}`:void 0,O=C.resolvedUiPort,k=O!==null&&O>0?`http://${h}:${O}`:E;console.log(r({name:`open-knowledge`,version:d,localUrl:k,apiUrl:k===E?void 0:E,networkUrl:D,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let A={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};C.ready.then(async()=>{if(C.degraded.length>0){console.log();for(let e of C.degraded){let t=A[e]??`${e} (check server logs for details)`;console.warn(` ${s(`⚠`)} ${s(e)}: ${a(t)}`)}console.log()}if(t.open){let{openBrowser:e}=await import(`./open-browser-TU_nA_Sm.mjs`);e(k)}}).catch(e=>{console.error(` ${o(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}function fe(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function pe(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=m(t,`.ok`),r=n.readServerLock(e);return r?r.kind===`interactive`?`OpenKnowledge desktop is currently running on this project. Quit it or use --cwd to point elsewhere.`:r.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function me(e){return new s(`start`).description(`Start the knowledge base collab server`).option(`-p, --port <port>`,`Server port`,void 0).option(`--ui-port <port>`,`Pin the ok ui sibling to <port> and connect (not exit) if a server already runs here — the worktree-preview recipe path`,le).option(`-H, --host <host>`,`Server host`,void 0).option(`--open`,`Open browser after start`).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,ce).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path> (suppresses ok ui sibling)`).option(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).option(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).option(`--remote [url]`,`Serve through a tunnel: admit requests carrying the tunnel Host with NO server-side auth (anyone who can reach the URL has full control — restrict access at the tunnel with edge auth). Bare --remote uses remote.url from .ok/config.yml; --remote <url> supplies it for this run.`).action(async t=>{let n=e();if(t.mode===`app`){t.open&&(process.stderr.write(`error: option '--mode=app' cannot be combined with '--open' (--open opens a browser tab against the local server, which app mode does not boot)
|
|
3
3
|
`),process.exit(2));let e=[];if(t.port!==void 0&&e.push(`--port`),t.uiPort!==void 0&&e.push(`--ui-port`),t.host!==void 0&&e.push(`--host`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=I(A());if(n.available){L({spawn:f},n);return}console.error(R(n.reason)),process.exit(1)}await de(n,t)})}export{B as C,D,L as E,ae as S,I as T,K as _,H as a,pe as b,G as c,fe as d,q as f,J as g,de as h,oe as i,U as l,ue as m,Z as n,Y as o,V as p,se as r,X as s,W as t,$ as u,me as v,A as w,ie as x,Q as y};
|
|
4
|
-
//# sourceMappingURL=start-
|
|
4
|
+
//# sourceMappingURL=start-BFlyahE1.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e,r as t,v as n}from"./start-BFlyahE1.mjs";export{t as bootStartServer,e as resolveHost,n as startCommand};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{
|
|
1
|
+
import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{Ao as r,Bo as i,Wo as a,zo as o}from"./src-czIvvgm0.mjs";import{Er as s,dr as c,or as l,ur as u}from"./src-C_7vTM-s.mjs";import{basename as d,dirname as f,isAbsolute as p,join as m,posix as h,relative as g,resolve as _,sep as v,win32 as y}from"node:path";import{cpSync as ee,existsSync as b,lstatSync as x,mkdirSync as te,readFileSync as ne,readdirSync as re,realpathSync as S,rmSync as C,rmdirSync as ie,statSync as ae}from"node:fs";import{homedir as w}from"node:os";var T=n((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),E=n((e=>{let{InvalidArgumentError:t}=T();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),D=n((e=>{let{humanReadableArgName:t}=E();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
|
|
2
2
|
`)}displayWidth(e){return r(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
|
|
3
3
|
`+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
|
|
4
4
|
`)}};function r(e){return e.replace(/\x1b\[\d*(;\d*)*m/g,``)}e.Help=n,e.stripColor=r})),O=n((e=>{let{InvalidArgumentError:t}=T();var n=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=a(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?i(this.name().replace(/^no-/,``)):i(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},r=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r===void 0?!1:r;return t.negate===(i===e)}};function i(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function a(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
|
|
@@ -16,7 +16,7 @@ Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._life
|
|
|
16
16
|
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
17
17
|
- ${t?`searched for local subcommand relative to directory '${t}'`:`no directory for search for local subcommand, use .executableDir() to supply a custom directory`}`;throw Error(r)}_executeSubCommand(e,t){t=t.slice();let n=!1,s=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function c(e,t){let n=i.resolve(e,t);if(a.existsSync(n))return n;if(s.includes(i.extname(t)))return;let r=s.find(e=>a.existsSync(`${n}${e}`));if(r)return`${n}${r}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let u=e._executableFile||`${this._name}-${e._name}`,d=this._executableDir||``;if(this._scriptPath){let e;try{e=a.realpathSync(this._scriptPath)}catch{e=this._scriptPath}d=i.resolve(i.dirname(e),d)}if(d){let t=c(d,u);if(!t&&!e._executableFile&&this._scriptPath){let n=i.basename(this._scriptPath,i.extname(this._scriptPath));n!==this._name&&(t=c(d,`${n}-${e._name}`))}u=t||u}n=s.includes(i.extname(u));let f;o.platform===`win32`?(this._checkForMissingExecutable(u,d,e._name),t.unshift(u),t=g(o.execArgv).concat(t),f=r.spawn(o.execPath,t,{stdio:`inherit`})):n?(t.unshift(u),t=g(o.execArgv).concat(t),f=r.spawn(o.argv[0],t,{stdio:`inherit`})):f=r.spawn(u,t,{stdio:`inherit`}),f.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{o.on(e,()=>{f.killed===!1&&f.exitCode===null&&f.kill(e)})});let p=this._exitCallback;f.on(`close`,e=>{e??=1,p?p(new l(e,`commander.executeSubCommandAsync`,`(close)`)):o.exit(e)}),f.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(u,d,e._name);else if(t.code===`EACCES`)throw Error(`'${u}' not executable`);if(!p)o.exit(1);else{let e=new l(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,p(e)}}),this.runningCommand=f}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)===void 0?!1:this.getOptionValueSource(t)!==`default`});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}else if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
18
18
|
`),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in o.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,o.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new p(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=m(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${e.length}.`;this.error(r,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=m(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>c(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=i.basename(e,i.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(o.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
|
|
19
|
-
Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function g(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _(){if(o.env.NO_COLOR||o.env.FORCE_COLOR===`0`||o.env.FORCE_COLOR===`false`)return!1;if(o.env.FORCE_COLOR||o.env.CLICOLOR_FORCE!==void 0)return!0}t.Command=h,t.useColor=_}));const{program:ce,createCommand:le,createArgument:ue,createOption:de,CommanderError:fe,InvalidArgumentError:pe,InvalidOptionArgumentError:me,Command:he,Argument:ge,Option:_e,Help:ve}=t(n((e=>{let{Argument:t}=E(),{Command:n}=se(),{CommanderError:r,InvalidArgumentError:i}=T(),{Help:a}=D(),{Option:o}=O();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default,k=o,A=
|
|
19
|
+
Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function g(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _(){if(o.env.NO_COLOR||o.env.FORCE_COLOR===`0`||o.env.FORCE_COLOR===`false`)return!1;if(o.env.FORCE_COLOR||o.env.CLICOLOR_FORCE!==void 0)return!0}t.Command=h,t.useColor=_}));const{program:ce,createCommand:le,createArgument:ue,createOption:de,CommanderError:fe,InvalidArgumentError:pe,InvalidOptionArgumentError:me,Command:he,Argument:ge,Option:_e,Help:ve}=t(n((e=>{let{Argument:t}=E(),{Command:n}=se(),{CommanderError:r,InvalidArgumentError:i}=T(),{Help:a}=D(),{Option:o}=O();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default,k=o,A=i,j=a,M=`node`,N={MCP_DEBUG:`1`,OK_LOG_FILE:`/tmp/ok-mcp.log`},P=`# ok-mcp-v2
|
|
20
20
|
USER_BUNDLE="$HOME/Applications/OpenKnowledge.app/Contents/Resources/cli/bin/ok.sh"
|
|
21
21
|
[ -f "$USER_BUNDLE" ] && [ -x "$USER_BUNDLE" ] && exec "$USER_BUNDLE" mcp
|
|
22
22
|
BUNDLE="/Applications/OpenKnowledge.app/Contents/Resources/cli/bin/ok.sh"
|
|
@@ -52,5 +52,5 @@ foreach ($d in $dirs) {
|
|
|
52
52
|
if (Test-Path -LiteralPath $probe -PathType Leaf) { & $probe -y '@inkeep/open-knowledge@latest' mcp; exit $LASTEXITCODE }
|
|
53
53
|
}
|
|
54
54
|
[Console]::Error.WriteLine('OpenKnowledge: install Node.js 24+ (npm i -g @inkeep/open-knowledge), then restart your editor')
|
|
55
|
-
exit 127`,I=`// ok-pi-bridge`,L=`${I}-v1`,ye=`ok-pi-managed-extension`;function be(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.command===`/bin/sh`){if(!Array.isArray(t.args)||t.args[0]!==`-l`||t.args[1]!==`-c`)return!1;let e=t.args[2];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command===`powershell`){if(!Array.isArray(t.args)||t.args[0]!==`-NoProfile`||t.args[1]!==`-NonInteractive`||t.args[2]!==`-Command`)return!1;let e=t.args[3];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}if(t.type===`local`&&Array.isArray(t.command)){if(t.command[0]===`/bin/sh`){if(t.command[1]!==`-l`||t.command[2]!==`-c`)return!1;let e=t.command[3];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command[0]===`powershell`){if(t.command[1]!==`-NoProfile`||t.command[2]!==`-NonInteractive`||t.command[3]!==`-Command`)return!1;let e=t.command[4];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}return!1}if(t.command===`ok-pi-managed-extension`){if(!Array.isArray(t.args))return!1;let e=t.args[0];return typeof e==`string`&&e.startsWith(L)}return!1}function R(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=_(e);if(d(t)===`cli.mjs`&&d(f(t))===`dist`)return t;let n=t.split(v),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return m(i.length===0?v:i.join(v),`packages`,`cli`,`dist`,`cli.mjs`)}function z(e={}){return e.mode===`dev`?{command:M,args:[R(),`mcp`],env:{...N}}:(e.platformName??process.platform)===`win32`?{command:`powershell`,args:[`-NoProfile`,`-NonInteractive`,`-Command`,F]}:{command:`/bin/sh`,args:[`-l`,`-c`,P]}}function xe(e={}){return e.mode===`dev`?{type:`local`,enabled:!0,command:[M,R(),`mcp`],environment:{...N}}:(e.platformName??process.platform)===`win32`?{type:`local`,enabled:!0,command:[`powershell`,`-NoProfile`,`-NonInteractive`,`-Command`,F]}:{type:`local`,enabled:!0,command:[`/bin/sh`,`-l`,`-c`,P]}}function Se(e){if(typeof e!=`object`||!e)return!1;let t=e;return B(t,z({mode:`published`,platformName:`darwin`}))||B(t,z({mode:`published`,platformName:`win32`}))}function B(e,t){return Object.keys(e).length===Object.keys(t).length?Ce(e,t):!1}function Ce(e,t){if(e.command!==t.command)return!1;let n=t.args;return!Array.isArray(n)||!Array.isArray(e.args)||e.args.length!==n.length?!1:e.args.every((e,t)=>e===n[t])}function V(e,t){let n=e=>typeof e==`string`&&e.includes(`# ok-mcp`);return t===`/bin/sh`?e[0]===`-l`&&e[1]===`-c`&&n(e[2]):t===`powershell`?e[0]===`-NoProfile`&&e[1]===`-NonInteractive`&&e[2]===`-Command`&&n(e[3]):!1}function we(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.enabled===!1||typeof t.command!=`string`||!Array.isArray(t.args)?!1:V(t.args,t.command)}function Te(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.type!==`local`||t.enabled===!1||!Array.isArray(t.command))return!1;let[n,...r]=t.command;return typeof n==`string`&&V(r,n)}function H(e){return e===`win32`?y:h}function Ee(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env,i=H(t);return t===`darwin`?i.join(n,`Library`,`Application Support`):t===`win32`?r.APPDATA??i.join(n,`AppData`,`Roaming`):r.XDG_CONFIG_HOME??i.join(n,`.config`)}function De(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.claude.json`)}function U(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env;if(t===`darwin`)return h.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??y.join(n,`AppData`,`Roaming`);return y.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function W(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.cursor`,`mcp.json`)}function Oe(e={}){let t=e.platformName??process.platform,n=e.home??w();return(e.env??process.env).CODEX_HOME??H(t).join(n,`.codex`)}function ke(e={}){return H(e.platformName??process.platform).join(Oe(e),`config.toml`)}function G(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=(e.env??process.env).COPILOT_HOME??H(t).join(n,`.copilot`);return H(t).join(r,`mcp-config.json`)}function Ae(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env,i=H(t);if(t===`win32`){let e=r.APPDATA??i.join(n,`AppData`,`Roaming`);return i.join(e,`opencode`)}let a=r.XDG_CONFIG_HOME??i.join(n,`.config`);return i.join(a,`opencode`)}function K(e={}){return H(e.platformName??process.platform).join(Ae(e),`opencode.json`)}function je(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.openclaw`,`openclaw.json`)}function Me(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.hermes`,`config.yaml`)}function Ne(e={}){let t=e.platformName??process.platform,n=e.home??w();return(e.env??process.env).PI_CODING_AGENT_DIR??H(t).join(n,`.pi`,`agent`)}function Pe(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.gemini`,`config`,`mcp_config.json`)}function Fe(e,t){let n=H(t),r=n.join(e,`.lmstudio`,`mcp.json`),i=n.join(e,`.cache`,`lm-studio`,`mcp.json`);return t===`darwin`?[i,r]:[r,i]}function q(e={}){let t=e.platformName??process.platform,n=Fe(e.home??w(),t);return n.find(e=>b(e))||n.find(e=>b(f(e)))||n[0]}function Ie(e){let t=e.serverName(``);return e.format===`toml`?`[${e.topLevelKey}.${t}]`:[e.topLevelKey,e.serverMapSubKey,t].filter(Boolean).join(`.`)}function Le(e,t){let n;try{n=e.configPath(``,t)}catch{return null}return n.startsWith(`${t}/`)?`~${n.slice(t.length)}`:n}const J={claude:{id:`claude`,label:A.claude,configPath:(e,t)=>De({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.claude`),projectConfigPath:e=>m(e,`.mcp.json`),projectSkillPath:e=>m(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)},"claude-desktop":{id:`claude-desktop`,label:A[`claude-desktop`],configPath:(e,t)=>U({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(U({home:t}))},cursor:{id:`cursor`,label:A.cursor,configPath:(e,t)=>W({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(W({home:t})),projectConfigPath:e=>m(e,`.cursor`,`mcp.json`),projectSkillPath:e=>m(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)},codex:{id:`codex`,label:A.codex,configPath:(e,t)=>ke({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(ke({home:t})),projectConfigPath:e=>m(e,`.codex`,`config.toml`),projectSkillPath:e=>m(e,`.codex`,`skills`,`open-knowledge`,`SKILL.md`)},copilot:{id:`copilot`,label:A.copilot,configPath:(e,t)=>G({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(G({home:t})),projectSkillPath:e=>m(e,`.github`,`skills`,`open-knowledge`,`SKILL.md`)},opencode:{id:`opencode`,label:A.opencode,configPath:(e,t)=>K({home:t}),format:`json`,topLevelKey:`mcp`,serverName:()=>i,buildEntry:(e,t)=>xe(t),scope:`global`,detectPath:(e,t)=>f(K({home:t})),projectConfigPath:e=>m(e,`opencode.json`),projectSkillPath:e=>m(e,`.opencode`,`skills`,`open-knowledge`,`SKILL.md`)},openclaw:{id:`openclaw`,label:A.openclaw,configPath:(e,t)=>je({home:t}),format:`json`,topLevelKey:`mcp`,serverMapSubKey:`servers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.openclaw`),offerOnlyWhenDetected:!0},pi:{id:`pi`,label:A.pi,configPath:()=>{throw Error("Pi has no user-global MCP config; OK's integration is the project-scoped bridge extension at .pi/extensions/open-knowledge.ts (run `ok init` in the project).")},format:`file`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:()=>{throw Error(`Pi has no MCP entry shape; the managed bridge file is built by buildPiExtensionSource (integrations/pi-extension.ts).`)},scope:`project`,detectPath:(e,t)=>Ne({home:t}),projectConfigPath:e=>m(e,`.pi`,`extensions`,`open-knowledge.ts`),projectSkillPath:e=>m(e,`.pi`,`skills`,`open-knowledge`,`SKILL.md`)},antigravity:{id:`antigravity`,label:A.antigravity,configPath:(e,t)=>Pe({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.gemini`),offerOnlyWhenDetected:!0},"lm-studio":{id:`lm-studio`,label:A[`lm-studio`],configPath:(e,t)=>q({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(q({home:t})),offerOnlyWhenDetected:!0},hermes:{id:`hermes`,label:A.hermes,configPath:(e,t)=>Me({home:t}),format:`yaml`,topLevelKey:`mcp_servers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.hermes`),offerOnlyWhenDetected:!0}};function Re(e){let t=e.filter(e=>!Object.hasOwn(J,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${k.join(`, `)}`);return e.map(e=>J[e])}const Y=[{hostDir:`.adal`,pruneRoot:`.adal`},{hostDir:`.aider-desk`,pruneRoot:`.aider-desk`},{hostDir:`.astrbot/data`,pruneRoot:`.astrbot`},{hostDir:`.augment`,pruneRoot:`.augment`},{hostDir:`.autohand`,pruneRoot:`.autohand`},{hostDir:`.bob`,pruneRoot:`.bob`},{hostDir:`.codeartsdoer`,pruneRoot:`.codeartsdoer`},{hostDir:`.codebuddy`,pruneRoot:`.codebuddy`},{hostDir:`.codeium/windsurf`,pruneRoot:`.codeium`},{hostDir:`.codemaker`,pruneRoot:`.codemaker`},{hostDir:`.codestudio`,pruneRoot:`.codestudio`},{hostDir:`.commandcode`,pruneRoot:`.commandcode`},{hostDir:`.config/crush`,pruneRoot:`.config/crush`},{hostDir:`.config/devin`,pruneRoot:`.config/devin`},{hostDir:`.config/goose`,pruneRoot:`.config/goose`},{hostDir:`.config/kimchi/harness`,pruneRoot:`.config/kimchi`},{hostDir:`.continue`,pruneRoot:`.continue`},{hostDir:`.factory`,pruneRoot:`.factory`},{hostDir:`.forge`,pruneRoot:`.forge`},{hostDir:`.grok`,pruneRoot:`.grok`},{hostDir:`.iflow`,pruneRoot:`.iflow`},{hostDir:`.inferencesh`,pruneRoot:`.inferencesh`},{hostDir:`.jazz`,pruneRoot:`.jazz`},{hostDir:`.junie`,pruneRoot:`.junie`},{hostDir:`.kilocode`,pruneRoot:`.kilocode`},{hostDir:`.kiro`,pruneRoot:`.kiro`},{hostDir:`.kode`,pruneRoot:`.kode`},{hostDir:`.lingma`,pruneRoot:`.lingma`},{hostDir:`.mcpjam`,pruneRoot:`.mcpjam`},{hostDir:`.moxby`,pruneRoot:`.moxby`},{hostDir:`.mux`,pruneRoot:`.mux`},{hostDir:`.neovate`,pruneRoot:`.neovate`},{hostDir:`.ona`,pruneRoot:`.ona`},{hostDir:`.openhands`,pruneRoot:`.openhands`},{hostDir:`.pochi`,pruneRoot:`.pochi`},{hostDir:`.qoder`,pruneRoot:`.qoder`},{hostDir:`.qoder-cn`,pruneRoot:`.qoder-cn`},{hostDir:`.qwen`,pruneRoot:`.qwen`},{hostDir:`.reasonix`,pruneRoot:`.reasonix`},{hostDir:`.roo`,pruneRoot:`.roo`},{hostDir:`.rovodev`,pruneRoot:`.rovodev`},{hostDir:`.snowflake/cortex`,pruneRoot:`.snowflake`},{hostDir:`.tabnine/agent`,pruneRoot:`.tabnine`},{hostDir:`.terramind`,pruneRoot:`.terramind`},{hostDir:`.tinycloud`,pruneRoot:`.tinycloud`},{hostDir:`.trae`,pruneRoot:`.trae`},{hostDir:`.trae-cn`,pruneRoot:`.trae-cn`},{hostDir:`.vibe`,pruneRoot:`.vibe`},{hostDir:`.zcode`,pruneRoot:`.zcode`},{hostDir:`.zencoder`,pruneRoot:`.zencoder`}],X=[...l.map(e=>c[e]),`open-knowledge`];function Z(e){if(!p(e))throw Error(`skill cleanup requires an absolute home directory; got ${JSON.stringify(e)}`);let t=_(e);if(t===v||f(t)===t)throw Error(`skill cleanup refuses to operate on the filesystem root (${t})`);return t}function Q(e,t){let n=g(e,t);if(n.startsWith(`..`)||p(n))return!1;let r=e;for(let e of n.split(v)){r=m(r,e);try{if(!x(r).isDirectory())return!1}catch{return!1}}return!0}function ze(e,t){try{return re(e).every(n=>t.has(m(e,n)))}catch{return!1}}function Be(e){let t=Z(e),n=[],r=[],i=new Set;for(let e of Y){let a=m(t,e.hostDir,`skills`);if(!Q(t,a))continue;let o=X.map(e=>m(a,e)).filter(e=>b(e));n.push(...o);for(let e of o)i.add(e);let s=m(t,e.pruneRoot),c=a;for(;ze(c,i)&&(r.push(c),i.add(c),c!==s);){let e=f(c);if(e===c||e===t||!e.startsWith(t+v))break;c=e}}return{skillDirs:n,emptyDirs:r}}function Ve(e){try{if(!x(e).isDirectory())return!1;let t=re(e);return t.length===0||t.includes(`SKILL.md`)}catch{return!1}}function He(e){let t=new Set,n=new Set;for(let r of Y){let i=m(e,r.hostDir,`skills`);for(let e of X)t.add(m(i,e));let a=m(e,r.pruneRoot),o=i;for(;n.add(o),o!==a;){let t=f(o);if(t===o||t===e||!t.startsWith(e+v))break;o=t}}return{skillDirs:t,emptyDirs:n}}function Ue(e,t){let n=Z(e),r=He(n),i=[...t.skillDirs.filter(e=>!r.skillDirs.has(e)),...t.emptyDirs.filter(e=>!r.emptyDirs.has(e))];if(i.length>0)throw Error(`refusing skill cleanup — ${i.length} path(s) outside the known legacy set: ${i.join(`, `)}`);let a=[];for(let e of t.skillDirs)if(Q(n,e)&&Ve(e))try{C(e,{recursive:!0,force:!0}),a.push(e)}catch{}for(let e of t.emptyDirs)if(Q(n,e))try{ie(e),a.push(e)}catch{}return a}function We(e){let t=Z(e),n=[];for(let e of l){let r=c[e];n.push({path:m(t,`.agents`,`skills`,r),bundleId:e,scope:`central`});for(let i of j)n.push({path:m(t,i.hostDir,`skills`,r),bundleId:e,scope:`host`,hostDir:i.hostDir})}return n}function Ge(e,t){let n=[];for(let r of We(e))if(r.bundleId===t)try{C(r.path,{recursive:!0,force:!0})}catch(e){n.push(e instanceof Error?e:Error(String(e)))}if(n.length>0)throw AggregateError(n,`Failed to remove ${n.length} path(s) for ${t}`)}function Ke(e,t){let n;try{n=x(e)}catch(e){if(e.code!==`ENOENT`)throw e}if(n?.isSymbolicLink())throw Error(`Refusing to write through a symbolic link at ${e}. Remove the symlink and re-run project setup.`);Je(e,t)}function qe(e,t){Je(e,t)}function Je(e,t){let n;try{n=S(t)}catch{n=_(t)}let r=f(e);for(;r.length>1&&r!==v;){let t;try{t=S(r)}catch(e){if(e.code===`ENOENT`){r=f(r);continue}throw e}let i=g(n,t);if(i===``||!i.startsWith(`..`)&&!p(i))return;throw Error(`Refusing to write at ${e}: ancestor ${r} resolves to ${t}, which is outside the project directory ${n}. A symbolic link in the path likely escapes the project. Remove the symlink and re-run project setup.`)}}function $(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ye(e,t,n){try{if(ae(n).size>10485760)return!1}catch{return!1}let r;try{r=ne(n,`utf-8`)}catch{return!1}let i=[],a=s(r.charCodeAt(0)===65279?r.slice(1):r,i,{allowTrailingComma:!0,disallowComments:!1});if(i.length>0||!$(a))return!1;let o=a[e.topLevelKey];if(!$(o))return!1;let c=e.serverMapSubKey?o[e.serverMapSubKey]:o;return $(c)?$(c[e.serverName(t)]):!1}function Xe(e,t,n={}){if(e.id!==`copilot`)return!0;try{return Ye(e,t,e.configPath(t,n.home))}catch{return!1}}function Ze(e,t,n={}){let r=e.projectSkillPath?.(t);if(!r)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};if(!Xe(e,t,n))return{editorId:e.id,label:e.label,action:`skipped-prerequisite`,path:r};try{let n=u(`project`,{checkDesktop:!0}),i=f(r);Ke(i,t);let a=b(r)?`overwritten`:`written`;return C(i,{recursive:!0,force:!0}),te(f(i),{recursive:!0}),ee(n,i,{recursive:!0}),{editorId:e.id,label:e.label,action:a,path:r}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}function Qe(e,t){let n=e.projectSkillPath?.(t);if(!n)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};try{let r=f(n);return b(n)?(qe(r,t),C(r,{recursive:!0,force:!0}),{editorId:e.id,label:e.label,action:`removed`,path:n}):{editorId:e.id,label:e.label,action:`not-present`,path:n}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:n,error:t instanceof Error?t.message:String(t)}}}export{Ee as C,_e as D,pe as E,Te as S,he as T,Le as _,Ue as a,be as b,We as c,J as d,j as f,z as g,ye as h,Ze as i,k as l,L as m,qe as n,Be as o,I as p,Qe as r,Ge as s,Ke as t,A as u,Ie as v,Re as w,Se as x,we as y};
|
|
56
|
-
//# sourceMappingURL=write-project-skill-
|
|
55
|
+
exit 127`,I=`// ok-pi-bridge`,L=`${I}-v1`,ye=`ok-pi-managed-extension`;function be(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.command===`/bin/sh`){if(!Array.isArray(t.args)||t.args[0]!==`-l`||t.args[1]!==`-c`)return!1;let e=t.args[2];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command===`powershell`){if(!Array.isArray(t.args)||t.args[0]!==`-NoProfile`||t.args[1]!==`-NonInteractive`||t.args[2]!==`-Command`)return!1;let e=t.args[3];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}if(t.type===`local`&&Array.isArray(t.command)){if(t.command[0]===`/bin/sh`){if(t.command[1]!==`-l`||t.command[2]!==`-c`)return!1;let e=t.command[3];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command[0]===`powershell`){if(t.command[1]!==`-NoProfile`||t.command[2]!==`-NonInteractive`||t.command[3]!==`-Command`)return!1;let e=t.command[4];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}return!1}if(t.command===`ok-pi-managed-extension`){if(!Array.isArray(t.args))return!1;let e=t.args[0];return typeof e==`string`&&e.startsWith(L)}return!1}function R(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=_(e);if(d(t)===`cli.mjs`&&d(f(t))===`dist`)return t;let n=t.split(v),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return m(i.length===0?v:i.join(v),`packages`,`cli`,`dist`,`cli.mjs`)}function z(e={}){return e.mode===`dev`?{command:M,args:[R(),`mcp`],env:{...N}}:(e.platformName??process.platform)===`win32`?{command:`powershell`,args:[`-NoProfile`,`-NonInteractive`,`-Command`,F]}:{command:`/bin/sh`,args:[`-l`,`-c`,P]}}function xe(e={}){return e.mode===`dev`?{type:`local`,enabled:!0,command:[M,R(),`mcp`],environment:{...N}}:(e.platformName??process.platform)===`win32`?{type:`local`,enabled:!0,command:[`powershell`,`-NoProfile`,`-NonInteractive`,`-Command`,F]}:{type:`local`,enabled:!0,command:[`/bin/sh`,`-l`,`-c`,P]}}function Se(e){if(typeof e!=`object`||!e)return!1;let t=e;return B(t,z({mode:`published`,platformName:`darwin`}))||B(t,z({mode:`published`,platformName:`win32`}))}function B(e,t){return Object.keys(e).length===Object.keys(t).length?Ce(e,t):!1}function Ce(e,t){if(e.command!==t.command)return!1;let n=t.args;return!Array.isArray(n)||!Array.isArray(e.args)||e.args.length!==n.length?!1:e.args.every((e,t)=>e===n[t])}function V(e,t){let n=e=>typeof e==`string`&&e.includes(`# ok-mcp`);return t===`/bin/sh`?e[0]===`-l`&&e[1]===`-c`&&n(e[2]):t===`powershell`?e[0]===`-NoProfile`&&e[1]===`-NonInteractive`&&e[2]===`-Command`&&n(e[3]):!1}function we(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.enabled===!1||typeof t.command!=`string`||!Array.isArray(t.args)?!1:V(t.args,t.command)}function Te(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.type!==`local`||t.enabled===!1||!Array.isArray(t.command))return!1;let[n,...r]=t.command;return typeof n==`string`&&V(r,n)}function H(e){return e===`win32`?y:h}function Ee(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env,i=H(t);return t===`darwin`?i.join(n,`Library`,`Application Support`):t===`win32`?r.APPDATA??i.join(n,`AppData`,`Roaming`):r.XDG_CONFIG_HOME??i.join(n,`.config`)}function De(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.claude.json`)}function U(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env;if(t===`darwin`)return h.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??y.join(n,`AppData`,`Roaming`);return y.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function W(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.cursor`,`mcp.json`)}function Oe(e={}){let t=e.platformName??process.platform,n=e.home??w();return(e.env??process.env).CODEX_HOME??H(t).join(n,`.codex`)}function ke(e={}){return H(e.platformName??process.platform).join(Oe(e),`config.toml`)}function G(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=(e.env??process.env).COPILOT_HOME??H(t).join(n,`.copilot`);return H(t).join(r,`mcp-config.json`)}function Ae(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env,i=H(t);if(t===`win32`){let e=r.APPDATA??i.join(n,`AppData`,`Roaming`);return i.join(e,`opencode`)}let a=r.XDG_CONFIG_HOME??i.join(n,`.config`);return i.join(a,`opencode`)}function K(e={}){return H(e.platformName??process.platform).join(Ae(e),`opencode.json`)}function je(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.openclaw`,`openclaw.json`)}function Me(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.hermes`,`config.yaml`)}function Ne(e={}){let t=e.platformName??process.platform,n=e.home??w();return(e.env??process.env).PI_CODING_AGENT_DIR??H(t).join(n,`.pi`,`agent`)}function Pe(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.gemini`,`config`,`mcp_config.json`)}function Fe(e,t){let n=H(t),r=n.join(e,`.lmstudio`,`mcp.json`),i=n.join(e,`.cache`,`lm-studio`,`mcp.json`);return t===`darwin`?[i,r]:[r,i]}function q(e={}){let t=e.platformName??process.platform,n=Fe(e.home??w(),t);return n.find(e=>b(e))||n.find(e=>b(f(e)))||n[0]}function Ie(e){let t=e.serverName(``);return e.format===`toml`?`[${e.topLevelKey}.${t}]`:[e.topLevelKey,e.serverMapSubKey,t].filter(Boolean).join(`.`)}function Le(e,t){let n;try{n=e.configPath(``,t)}catch{return null}return n.startsWith(`${t}/`)?`~${n.slice(t.length)}`:n}const J={claude:{id:`claude`,label:A.claude,configPath:(e,t)=>De({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.claude`),projectConfigPath:e=>m(e,`.mcp.json`),projectSkillPath:e=>m(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)},"claude-desktop":{id:`claude-desktop`,label:A[`claude-desktop`],configPath:(e,t)=>U({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(U({home:t}))},cursor:{id:`cursor`,label:A.cursor,configPath:(e,t)=>W({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(W({home:t})),projectConfigPath:e=>m(e,`.cursor`,`mcp.json`),projectSkillPath:e=>m(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)},codex:{id:`codex`,label:A.codex,configPath:(e,t)=>ke({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(ke({home:t})),projectConfigPath:e=>m(e,`.codex`,`config.toml`),projectSkillPath:e=>m(e,`.codex`,`skills`,`open-knowledge`,`SKILL.md`)},copilot:{id:`copilot`,label:A.copilot,configPath:(e,t)=>G({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(G({home:t})),projectSkillPath:e=>m(e,`.github`,`skills`,`open-knowledge`,`SKILL.md`)},opencode:{id:`opencode`,label:A.opencode,configPath:(e,t)=>K({home:t}),format:`json`,topLevelKey:`mcp`,serverName:()=>r,buildEntry:(e,t)=>xe(t),scope:`global`,detectPath:(e,t)=>f(K({home:t})),projectConfigPath:e=>m(e,`opencode.json`),projectSkillPath:e=>m(e,`.opencode`,`skills`,`open-knowledge`,`SKILL.md`)},openclaw:{id:`openclaw`,label:A.openclaw,configPath:(e,t)=>je({home:t}),format:`json`,topLevelKey:`mcp`,serverMapSubKey:`servers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.openclaw`),offerOnlyWhenDetected:!0},pi:{id:`pi`,label:A.pi,configPath:()=>{throw Error("Pi has no user-global MCP config; OK's integration is the project-scoped bridge extension at .pi/extensions/open-knowledge.ts (run `ok init` in the project).")},format:`file`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:()=>{throw Error(`Pi has no MCP entry shape; the managed bridge file is built by buildPiExtensionSource (integrations/pi-extension.ts).`)},scope:`project`,detectPath:(e,t)=>Ne({home:t}),projectConfigPath:e=>m(e,`.pi`,`extensions`,`open-knowledge.ts`),projectSkillPath:e=>m(e,`.pi`,`skills`,`open-knowledge`,`SKILL.md`)},antigravity:{id:`antigravity`,label:A.antigravity,configPath:(e,t)=>Pe({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.gemini`),offerOnlyWhenDetected:!0},"lm-studio":{id:`lm-studio`,label:A[`lm-studio`],configPath:(e,t)=>q({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(q({home:t})),offerOnlyWhenDetected:!0},hermes:{id:`hermes`,label:A.hermes,configPath:(e,t)=>Me({home:t}),format:`yaml`,topLevelKey:`mcp_servers`,serverName:()=>r,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.hermes`),offerOnlyWhenDetected:!0}};function Re(e){let t=e.filter(e=>!Object.hasOwn(J,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${k.join(`, `)}`);return e.map(e=>J[e])}const Y=[{hostDir:`.adal`,pruneRoot:`.adal`},{hostDir:`.aider-desk`,pruneRoot:`.aider-desk`},{hostDir:`.astrbot/data`,pruneRoot:`.astrbot`},{hostDir:`.augment`,pruneRoot:`.augment`},{hostDir:`.autohand`,pruneRoot:`.autohand`},{hostDir:`.bob`,pruneRoot:`.bob`},{hostDir:`.codeartsdoer`,pruneRoot:`.codeartsdoer`},{hostDir:`.codebuddy`,pruneRoot:`.codebuddy`},{hostDir:`.codeium/windsurf`,pruneRoot:`.codeium`},{hostDir:`.codemaker`,pruneRoot:`.codemaker`},{hostDir:`.codestudio`,pruneRoot:`.codestudio`},{hostDir:`.commandcode`,pruneRoot:`.commandcode`},{hostDir:`.config/crush`,pruneRoot:`.config/crush`},{hostDir:`.config/devin`,pruneRoot:`.config/devin`},{hostDir:`.config/goose`,pruneRoot:`.config/goose`},{hostDir:`.config/kimchi/harness`,pruneRoot:`.config/kimchi`},{hostDir:`.continue`,pruneRoot:`.continue`},{hostDir:`.factory`,pruneRoot:`.factory`},{hostDir:`.forge`,pruneRoot:`.forge`},{hostDir:`.grok`,pruneRoot:`.grok`},{hostDir:`.iflow`,pruneRoot:`.iflow`},{hostDir:`.inferencesh`,pruneRoot:`.inferencesh`},{hostDir:`.jazz`,pruneRoot:`.jazz`},{hostDir:`.junie`,pruneRoot:`.junie`},{hostDir:`.kilocode`,pruneRoot:`.kilocode`},{hostDir:`.kiro`,pruneRoot:`.kiro`},{hostDir:`.kode`,pruneRoot:`.kode`},{hostDir:`.lingma`,pruneRoot:`.lingma`},{hostDir:`.mcpjam`,pruneRoot:`.mcpjam`},{hostDir:`.moxby`,pruneRoot:`.moxby`},{hostDir:`.mux`,pruneRoot:`.mux`},{hostDir:`.neovate`,pruneRoot:`.neovate`},{hostDir:`.ona`,pruneRoot:`.ona`},{hostDir:`.openhands`,pruneRoot:`.openhands`},{hostDir:`.pochi`,pruneRoot:`.pochi`},{hostDir:`.qoder`,pruneRoot:`.qoder`},{hostDir:`.qoder-cn`,pruneRoot:`.qoder-cn`},{hostDir:`.qwen`,pruneRoot:`.qwen`},{hostDir:`.reasonix`,pruneRoot:`.reasonix`},{hostDir:`.roo`,pruneRoot:`.roo`},{hostDir:`.rovodev`,pruneRoot:`.rovodev`},{hostDir:`.snowflake/cortex`,pruneRoot:`.snowflake`},{hostDir:`.tabnine/agent`,pruneRoot:`.tabnine`},{hostDir:`.terramind`,pruneRoot:`.terramind`},{hostDir:`.tinycloud`,pruneRoot:`.tinycloud`},{hostDir:`.trae`,pruneRoot:`.trae`},{hostDir:`.trae-cn`,pruneRoot:`.trae-cn`},{hostDir:`.vibe`,pruneRoot:`.vibe`},{hostDir:`.zcode`,pruneRoot:`.zcode`},{hostDir:`.zencoder`,pruneRoot:`.zencoder`}],X=[...c.map(e=>u[e]),`open-knowledge`];function Z(e){if(!p(e))throw Error(`skill cleanup requires an absolute home directory; got ${JSON.stringify(e)}`);let t=_(e);if(t===v||f(t)===t)throw Error(`skill cleanup refuses to operate on the filesystem root (${t})`);return t}function Q(e,t){let n=g(e,t);if(n.startsWith(`..`)||p(n))return!1;let r=e;for(let e of n.split(v)){r=m(r,e);try{if(!x(r).isDirectory())return!1}catch{return!1}}return!0}function ze(e,t){try{return re(e).every(n=>t.has(m(e,n)))}catch{return!1}}function Be(e){let t=Z(e),n=[],r=[],i=new Set;for(let e of Y){let a=m(t,e.hostDir,`skills`);if(!Q(t,a))continue;let o=X.map(e=>m(a,e)).filter(e=>b(e));n.push(...o);for(let e of o)i.add(e);let s=m(t,e.pruneRoot),c=a;for(;ze(c,i)&&(r.push(c),i.add(c),c!==s);){let e=f(c);if(e===c||e===t||!e.startsWith(t+v))break;c=e}}return{skillDirs:n,emptyDirs:r}}function Ve(e){try{if(!x(e).isDirectory())return!1;let t=re(e);return t.length===0||t.includes(`SKILL.md`)}catch{return!1}}function He(e){let t=new Set,n=new Set;for(let r of Y){let i=m(e,r.hostDir,`skills`);for(let e of X)t.add(m(i,e));let a=m(e,r.pruneRoot),o=i;for(;n.add(o),o!==a;){let t=f(o);if(t===o||t===e||!t.startsWith(e+v))break;o=t}}return{skillDirs:t,emptyDirs:n}}function Ue(e,t){let n=Z(e),r=He(n),i=[...t.skillDirs.filter(e=>!r.skillDirs.has(e)),...t.emptyDirs.filter(e=>!r.emptyDirs.has(e))];if(i.length>0)throw Error(`refusing skill cleanup — ${i.length} path(s) outside the known legacy set: ${i.join(`, `)}`);let a=[];for(let e of t.skillDirs)if(Q(n,e)&&Ve(e))try{C(e,{recursive:!0,force:!0}),a.push(e)}catch{}for(let e of t.emptyDirs)if(Q(n,e))try{ie(e),a.push(e)}catch{}return a}function We(e){let t=Z(e),n=[];for(let e of c){let r=u[e];n.push({path:m(t,`.agents`,`skills`,r),bundleId:e,scope:`central`});for(let i of j)n.push({path:m(t,i.hostDir,`skills`,r),bundleId:e,scope:`host`,hostDir:i.hostDir})}return n}function Ge(e,t){let n=[];for(let r of We(e))if(r.bundleId===t)try{C(r.path,{recursive:!0,force:!0})}catch(e){n.push(e instanceof Error?e:Error(String(e)))}if(n.length>0)throw AggregateError(n,`Failed to remove ${n.length} path(s) for ${t}`)}function Ke(e,t){let n;try{n=x(e)}catch(e){if(e.code!==`ENOENT`)throw e}if(n?.isSymbolicLink())throw Error(`Refusing to write through a symbolic link at ${e}. Remove the symlink and re-run project setup.`);Je(e,t)}function qe(e,t){Je(e,t)}function Je(e,t){let n;try{n=S(t)}catch{n=_(t)}let r=f(e);for(;r.length>1&&r!==v;){let t;try{t=S(r)}catch(e){if(e.code===`ENOENT`){r=f(r);continue}throw e}let i=g(n,t);if(i===``||!i.startsWith(`..`)&&!p(i))return;throw Error(`Refusing to write at ${e}: ancestor ${r} resolves to ${t}, which is outside the project directory ${n}. A symbolic link in the path likely escapes the project. Remove the symlink and re-run project setup.`)}}function $(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ye(e,t,n){try{if(ae(n).size>10485760)return!1}catch{return!1}let r;try{r=ne(n,`utf-8`)}catch{return!1}let i=[],a=s(r.charCodeAt(0)===65279?r.slice(1):r,i,{allowTrailingComma:!0,disallowComments:!1});if(i.length>0||!$(a))return!1;let o=a[e.topLevelKey];if(!$(o))return!1;let c=e.serverMapSubKey?o[e.serverMapSubKey]:o;return $(c)?$(c[e.serverName(t)]):!1}function Xe(e,t,n={}){if(e.id!==`copilot`)return!0;try{return Ye(e,t,e.configPath(t,n.home))}catch{return!1}}function Ze(e,t,n={}){let r=e.projectSkillPath?.(t);if(!r)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};if(!Xe(e,t,n))return{editorId:e.id,label:e.label,action:`skipped-prerequisite`,path:r};try{let n=l(`project`,{checkDesktop:!0}),i=f(r);Ke(i,t);let a=b(r)?`overwritten`:`written`;return C(i,{recursive:!0,force:!0}),te(f(i),{recursive:!0}),ee(n,i,{recursive:!0}),{editorId:e.id,label:e.label,action:a,path:r}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}function Qe(e,t){let n=e.projectSkillPath?.(t);if(!n)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};try{let r=f(n);return b(n)?(qe(r,t),C(r,{recursive:!0,force:!0}),{editorId:e.id,label:e.label,action:`removed`,path:n}):{editorId:e.id,label:e.label,action:`not-present`,path:n}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:n,error:t instanceof Error?t.message:String(t)}}}export{Ee as C,_e as D,pe as E,Te as S,he as T,Le as _,Ue as a,be as b,We as c,J as d,j as f,z as g,ye as h,Ze as i,k as l,L as m,qe as n,Be as o,I as p,Qe as r,Ge as s,Ke as t,A as u,Ie as v,Re as w,Se as x,we as y};
|
|
56
|
+
//# sourceMappingURL=write-project-skill-DpGXCFNK.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/open-knowledge",
|
|
3
|
-
"version": "0.47.0-beta.
|
|
3
|
+
"version": "0.47.0-beta.20",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"ajv-formats": "^3.0.1",
|
|
62
62
|
"tsdown": "^0.21.7",
|
|
63
63
|
"typescript": "^5.9.3",
|
|
64
|
+
"@inkeep/open-knowledge-app": "0.47.0-beta.20",
|
|
65
|
+
"@inkeep/open-knowledge-core": "0.47.0-beta.20",
|
|
64
66
|
"@inkeep/open-knowledge-native-config": "0.0.0",
|
|
65
|
-
"@inkeep/open-knowledge-
|
|
66
|
-
"@inkeep/open-knowledge-server": "0.47.0-beta.2",
|
|
67
|
-
"@inkeep/open-knowledge-app": "0.47.0-beta.2"
|
|
67
|
+
"@inkeep/open-knowledge-server": "0.47.0-beta.20"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build:cli": "tsdown",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as t}from"./fs-traced-OS6B1cZZ.mjs";export{t as tracedMkdir,e as tracedWriteFile};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./git-handle-RLYVdszV.mjs";export{e as createGitInstance};
|
package/dist/init-DVGGoG7U.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./init-4qi6zG9S.mjs";export{e as runInit};
|
package/dist/loader-Da51ptLu.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-cuv9j2d2.mjs";export{e as loadConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-BQIDNBdK.mjs";export{t as formatPreviewBlock,e as previewContent};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./jsx-runtime-BUgB2tll.js";import{t as n}from"./react-f2sANaYj.js";import{n as r,r as i}from"./dist-Nvb76hAm.js";import{n as a}from"./dist-PQ5KMVDh.js";import{t as o}from"./react-dom-DPxgxlDT.js";import{t as s}from"./compiler-runtime-BfE3aGVn.js";import{t as c}from"./button-RQ5o7P7w.js";import{t as l}from"./dist-CzC3AWOn.js";import{$ as u,Et as d,Ft as f,I as p,It as m,J as h,Lt as g,Mt as _,Nt as v,Ot as ee,Q as te,X as y,Z as b,jt as x,k as ne,kt as S,ot as C,w,wt as T,xt as E}from"./dist-BNDNcytQ.js";import{o as re,t as D}from"./cm-theme-BCzjFmR8.js";import{n as ie}from"./dist-BiwnBosN2.js";import{t as ae}from"./dist-CZG2zXVq.js";var oe=e(o(),1),se=s(),O=e(n(),1),k=null;function ce(e){let t=(0,se.c)(3),n=(0,O.useRef)(null),r,i;return t[0]===e?(r=t[1],i=t[2]):(r=()=>{if(!e)return;let t=n.current;if(!t)return;let r={};k=r;let i=document.documentElement,a=null,o=()=>{if(k!==r)return;let e=`${t.offsetHeight}px`;e!==a&&(a=e,i.style.setProperty(`--conflict-footer-height`,e))};o();let s=new ResizeObserver(o);return s.observe(t),()=>{s.disconnect(),k===r&&(k=null,i.style.removeProperty(`--conflict-footer-height`))}},i=[e],t[0]=e,t[1]=r,t[2]=i),(0,O.useEffect)(r,i),n}var A=class e{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}offset(t,n=t){return new e(this.fromA+t,this.toA+t,this.fromB+n,this.toB+n)}};function j(e,t,n,r,i,a){if(e==r)return[];let o=B(e,t,n,r,i,a),s=V(e,t+o,n,r,i+o,a);t+=o,n-=s,i+=o,a-=s;let c=n-t,l=a-i;if(!c||!l)return[new A(t,n,i,a)];if(c>l){let o=e.slice(t,n).indexOf(r.slice(i,a));if(o>-1)return[new A(t,t+o,i,i),new A(t+o+l,n,a,a)]}else if(l>c){let o=r.slice(i,a).indexOf(e.slice(t,n));if(o>-1)return[new A(t,t,i,i+o),new A(n,n,i+o+c,a)]}if(c==1||l==1)return[new A(t,n,i,a)];let u=de(e,t,n,r,i,a);if(u){let[o,s,c]=u;return j(e,t,o,r,i,s).concat(j(e,o+c,n,r,s+c,a))}return le(e,t,n,r,i,a)}var M=1e9,N=0,P=!1;function le(e,t,n,r,i,a){let o=n-t,s=a-i;if(M<1e9&&Math.min(o,s)>M*16||N>0&&Date.now()>N)return Math.min(o,s)>M*64?[new A(t,n,i,a)]:fe(e,t,n,r,i,a);let c=Math.ceil((o+s)/2);I.reset(c),L.reset(c);let l=(n,a)=>e.charCodeAt(t+n)==r.charCodeAt(i+a),u=(t,i)=>e.charCodeAt(n-t-1)==r.charCodeAt(a-i-1),d=(o-s)%2==0?null:L,f=d?null:I;for(let p=0;p<c;p++){if(p>M||N>0&&!(p&63)&&Date.now()>N)return fe(e,t,n,r,i,a);let m=I.advance(p,o,s,c,d,!1,l)||L.advance(p,o,s,c,f,!0,u);if(m)return R(e,t,n,t+m[0],r,i,a,i+m[1])}return[new A(t,n,i,a)]}var F=class{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let e=0;e<this.len;e++)this.vec[e]=-1;this.vec[e+1]=0,this.start=this.end=0}advance(e,t,n,r,i,a,o){for(let s=-e+this.start;s<=e-this.end;s+=2){let c=r+s,l=s==-e||s!=e&&this.vec[c-1]<this.vec[c+1]?this.vec[c+1]:this.vec[c-1]+1,u=l-s;for(;l<t&&u<n&&o(l,u);)l++,u++;if(this.vec[c]=l,l>t)this.end+=2;else if(u>n)this.start+=2;else if(i){let e=r+(t-n)-s;if(e>=0&&e<this.len&&i.vec[e]!=-1)if(a){let n=i.vec[e];if(n>=t-l)return[n,r+n-e]}else{let n=t-i.vec[e];if(l>=n)return[l,u]}}}return null}},I=new F,L=new F;function R(e,t,n,r,i,a,o,s){let c=!1;return!U(e,r)&&++r==n&&(c=!0),!U(i,s)&&++s==o&&(c=!0),c?[new A(t,n,a,o)]:j(e,t,r,i,a,s).concat(j(e,r,n,i,s,o))}function z(e,t){let n=1,r=Math.min(e,t);for(;n<r;)n<<=1;return n}function B(e,t,n,r,i,a){if(t==n||t==a||e.charCodeAt(t)!=r.charCodeAt(i))return 0;let o=z(n-t,a-i);for(let s=t,c=i;;){let i=s+o,l=c+o;if(i>n||l>a||e.slice(s,i)!=r.slice(c,l)){if(o==1)return s-t-+!U(e,s);o>>=1}else if(i==n||l==a)return i-t;else s=i,c=l}}function V(e,t,n,r,i,a){if(t==n||i==a||e.charCodeAt(n-1)!=r.charCodeAt(a-1))return 0;let o=z(n-t,a-i);for(let s=n,c=a;;){let a=s-o,l=c-o;if(a<t||l<i||e.slice(a,s)!=r.slice(l,c)){if(o==1)return n-s-+!U(e,s);o>>=1}else if(a==t||l==i)return n-a;else s=a,c=l}}function ue(e,t,n,r,i,a,o,s){let c=r.slice(i,a),l=null;for(;;){if(l||o<s)return l;for(let s=t+o;;){U(e,s)||s++;let u=s+o;if(U(e,u)||(u+=u==s+1?1:-1),u>=n)break;let d=e.slice(s,u),f=-1;for(;(f=c.indexOf(d,f+1))!=-1;){let o=B(e,u,n,r,i+f+d.length,a),c=V(e,t,s,r,i,i+f),p=d.length+o+c;(!l||l[2]<p)&&(l=[s-c,i+f-c,p])}s=u}if(s<0)return l;o>>=1}}function de(e,t,n,r,i,a){let o=n-t,s=a-i;if(o<s){let o=de(r,i,a,e,t,n);return o&&[o[1],o[0],o[2]]}return o<4||s*2<o?null:ue(e,t,n,r,i,a,Math.floor(o/4),-1)}function fe(e,t,n,r,i,a){P=!0;let o=n-t,s=a-i,c;if(o<s){let s=ue(r,i,a,e,t,n,Math.floor(o/6),50);c=s&&[s[1],s[0],s[2]]}else c=ue(e,t,n,r,i,a,Math.floor(s/6),50);if(!c)return[new A(t,n,i,a)];let[l,u,d]=c;return j(e,t,l,r,i,u).concat(j(e,l+d,n,r,u+d,a))}function pe(e,t){for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];r.toA>i.fromA-t&&r.toB>i.fromB-t&&(e[n-1]=new A(r.fromA,i.toA,r.fromB,i.toB),e.splice(n--,1))}}function me(e,t,n){for(;;){pe(n,1);let r=!1;for(let i=0;i<n.length;i++){let a=n[i],o,s;(o=B(e,a.fromA,a.toA,t,a.fromB,a.toB))&&(a=n[i]=new A(a.fromA+o,a.toA,a.fromB+o,a.toB)),(s=V(e,a.fromA,a.toA,t,a.fromB,a.toB))&&(a=n[i]=new A(a.fromA,a.toA-s,a.fromB,a.toB-s));let c=a.toA-a.fromA,l=a.toB-a.fromB;if(c&&l)continue;let u=a.fromA-(i?n[i-1].toA:0),d=(i<n.length-1?n[i+1].fromA:e.length)-a.toA;if(!u||!d)continue;let f=c?e.slice(a.fromA,a.toA):t.slice(a.fromB,a.toB);u<=f.length&&e.slice(a.fromA-u,a.fromA)==f.slice(f.length-u)?(n[i]=new A(a.fromA-u,a.toA-u,a.fromB-u,a.toB-u),r=!0):d<=f.length&&e.slice(a.toA,a.toA+d)==f.slice(0,d)&&(n[i]=new A(a.fromA+d,a.toA+d,a.fromB+d,a.toB+d),r=!0)}if(!r)break}return n}function he(e,t,n){for(let r=0,i=0;i<e.length;i++){let a=e[i],o=a.toA-a.fromA,s=a.toB-a.fromB;if(o&&s||o>3||s>3){let c=i==e.length-1?t.length:e[i+1].fromA,l=a.fromA-r,u=c-a.toA,d=xe(t,a.fromA,l),f=be(t,a.toA,u),p=a.fromA-d,m=f-a.toA;if((!o||!s)&&p&&m){let l=Math.max(o,s),[u,h,g]=o?[t,a.fromA,a.toA]:[n,a.fromB,a.toB];l>p&&t.slice(d,a.fromA)==u.slice(g-p,g)?(a=e[i]=new A(d,d+o,a.fromB-p,a.toB-p),d=a.fromA,f=be(t,a.toA,c-a.toA)):l>m&&t.slice(a.toA,f)==u.slice(h,h+m)&&(a=e[i]=new A(f-o,f,a.fromB+m,a.toB+m),f=a.toA,d=xe(t,a.fromA,a.fromA-r)),p=a.fromA-d,m=f-a.toA}if(p||m)a=e[i]=new A(a.fromA-p,a.toA+m,a.fromB-p,a.toB+m);else if(!o){let t=Ce(n,a.fromB,a.toB),r,o=t<0?-1:Se(n,a.toB,a.fromB);t>-1&&(r=t-a.fromB)<=u&&n.slice(a.fromB,t)==n.slice(a.toB,a.toB+r)?a=e[i]=a.offset(r):o>-1&&(r=a.toB-o)<=l&&n.slice(a.fromB-r,a.fromB)==n.slice(o,a.toB)&&(a=e[i]=a.offset(-r))}else if(!s){let n=Ce(t,a.fromA,a.toA),r,o=n<0?-1:Se(t,a.toA,a.fromA);n>-1&&(r=n-a.fromA)<=u&&t.slice(a.fromA,n)==t.slice(a.toA,a.toA+r)?a=e[i]=a.offset(r):o>-1&&(r=a.toA-o)<=l&&t.slice(a.fromA-r,a.fromA)==t.slice(o,a.toA)&&(a=e[i]=a.offset(-r))}}r=a.toA}return pe(e,3),e}var H;try{H=RegExp(`[\\p{Alphabetic}\\p{Number}]`,`u`)}catch{}function ge(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function _e(e,t){if(t==e.length)return 0;let n=e.charCodeAt(t);return n<192?+!!ge(n):H?!we(n)||t==e.length-1?+!!H.test(String.fromCharCode(n)):H.test(e.slice(t,t+2))?2:0:0}function ve(e,t){if(!t)return 0;let n=e.charCodeAt(t-1);return n<192?+!!ge(n):H?!Te(n)||t==1?+!!H.test(String.fromCharCode(n)):H.test(e.slice(t-2,t))?2:0:0}var ye=8;function be(e,t,n){if(t==e.length||!ve(e,t))return t;for(let r=t,i=t+n,a=0;a<ye;a++){let t=_e(e,r);if(!t||r+t>i)return r;r+=t}return t}function xe(e,t,n){if(!t||!_e(e,t))return t;for(let r=t,i=t-n,a=0;a<ye;a++){let t=ve(e,r);if(!t||r-t<i)return r;r-=t}return t}function Se(e,t,n){for(;t!=n;t--)if(e.charCodeAt(t-1)==10)return t;return-1}function Ce(e,t,n){for(;t!=n;t++)if(e.charCodeAt(t)==10)return t;return-1}var we=e=>e>=55296&&e<=56319,Te=e=>e>=56320&&e<=57343;function U(e,t){return!t||t==e.length||!we(e.charCodeAt(t-1))||!Te(e.charCodeAt(t))}function Ee(e,t,n){let r=n?.override;return r?r(e,t):(M=(n?.scanLimit??1e9)>>1,N=n?.timeout?Date.now()+n.timeout:0,P=!1,me(e,t,j(e,0,e.length,t,0,t.length)))}function De(){return!P}function Oe(e,t,n){return he(Ee(e,t,n),e,t)}var W=S.define({combine:e=>e[0]}),ke=f.define(),Ae=S.define(),G=m.define({create(e){return null},update(e,t){for(let n of t.effects)n.is(ke)&&(e=n.value);for(let n of t.state.facet(Ae))e=n(e,t);return e}});function je(e){let t=e.field(G,!1);if(!t)return null;let n=e.facet(W);return{chunks:t,side:n?n.side:null}}var K=class e{constructor(e,t,n,r,i,a=!0){this.changes=e,this.fromA=t,this.toA=n,this.fromB=r,this.toB=i,this.precise=a}offset(t,n){return t||n?new e(this.changes,this.fromA+t,this.toA+t,this.fromB+n,this.toB+n,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,t,n){return Pe(Oe(e.toString(),t.toString(),n),e,t,0,0,De())}static updateA(e,t,n,r,i){return Le(Ie(e,r,!0,n.length),e,t,n,i)}static updateB(e,t,n,r,i){return Le(Ie(e,r,!1,t.length),e,t,n,i)}};function Me(e,t,n,r){let i=n.lineAt(e),a=r.lineAt(t);return i.to==e&&a.to==t&&e<n.length&&t<r.length?[e+1,t+1]:[i.from,a.from]}function Ne(e,t,n,r){let i=n.lineAt(e),a=r.lineAt(t);return i.from==e&&a.from==t?[e,t]:[i.to+1,a.to+1]}function Pe(e,t,n,r,i,a){let o=[];for(let s=0;s<e.length;s++){let c=e[s],[l,u]=Me(c.fromA+r,c.fromB+i,t,n),[d,f]=Ne(c.toA+r,c.toB+i,t,n),p=[c.offset(-l+r,-u+i)];for(;s<e.length-1;){let a=e[s+1],[o,c]=Me(a.fromA+r,a.fromB+i,t,n);if(o>d+1&&c>f+1)break;p.push(a.offset(-l+r,-u+i)),[d,f]=Ne(a.toA+r,a.toB+i,t,n),s++}o.push(new K(p,l,Math.max(l,d),u,Math.max(u,f),a))}return o}var q=1e3;function Fe(e,t,n,r){let i=0,a=e.length;for(;;){if(i==a){let r=0,a=0;i&&({toA:r,toB:a}=e[i-1]);let o=t-(n?r:a);return[r+o,a+o]}let o=i+a>>1,s=e[o],[c,l]=n?[s.fromA,s.toA]:[s.fromB,s.toB];if(c>t)a=o;else if(l<=t)i=o+1;else return r?[s.fromA,s.fromB]:[s.toA,s.toB]}}function Ie(e,t,n,r){let i=[];return t.iterChangedRanges((a,o,s,c)=>{let l=0,u=n?t.length:r,d=0,f=n?r:t.length;a>q&&([l,d]=Fe(e,a-q,n,!0)),o<t.length-q&&([u,f]=Fe(e,o+q,n,!1));let p=c-s-(o-a),m,[h,g]=n?[p,0]:[0,p];i.length&&(m=i[i.length-1]).toA>=l?i[i.length-1]={fromA:m.fromA,fromB:m.fromB,toA:u,toB:f,diffA:m.diffA+h,diffB:m.diffB+g}:i.push({fromA:l,toA:u,fromB:d,toB:f,diffA:h,diffB:g})}),i}function Le(e,t,n,r,i){if(!e.length)return t;let a=[];for(let o=0,s=0,c=0,l=0;;o++){let u=o==e.length?null:e[o],d=u?u.fromA+s:n.length,f=u?u.fromB+c:r.length;for(;l<t.length;){let e=t[l];if(u&&(e.toA+s>d||e.toB+c>f))break;a.push(e.offset(s,c)),l++}if(!u)break;let p=u.toA+s+u.diffA,m=u.toB+c+u.diffB,h=Oe(n.sliceString(d,p),r.sliceString(f,m),i);for(let e of Pe(h,n,r,d,f,De()))a.push(e);for(s+=u.diffA,c+=u.diffB;l<t.length;){let e=t[l];if(e.fromA+s>p&&e.fromB+c>m)break;l++}}return a}var Re={scanLimit:500},J=te.fromClass(class{constructor(e){({deco:this.deco,gutter:this.gutter}=qe(e))}update(e){(e.docChanged||e.viewportChanged||ze(e.startState,e.state)||Be(e.startState,e.state))&&({deco:this.deco,gutter:this.gutter}=qe(e.view))}},{decorations:e=>e.deco}),Y=x.low(C({class:`cm-changeGutter`,markers:e=>e.plugin(J)?.gutter||_.empty}));function ze(e,t){return e.field(G,!1)!=t.field(G,!1)}function Be(e,t){return e.facet(W)!=t.facet(W)}var Ve=h.line({class:`cm-changedLine`}),He=h.mark({class:`cm-changedText`}),Ue=h.mark({tagName:`ins`,class:`cm-insertedLine`}),We=h.mark({tagName:`del`,class:`cm-deletedLine`}),Ge=new class extends b{constructor(){super(...arguments),this.elementClass=`cm-changedLineGutter`}};function Ke(e,t,n,r,i,a){let o=n?e.fromA:e.fromB,s=n?e.toA:e.toB,c=0;if(o!=s){i.add(o,o,Ve),i.add(o,s,n?We:Ue),a&&a.add(o,o,Ge);for(let l=t.iterRange(o,s-1),u=o;!l.next().done;){if(l.lineBreak){u++,i.add(u,u,Ve),a&&a.add(u,u,Ge);continue}let t=u+l.value.length;if(r)for(;c<e.changes.length;){let r=e.changes[c],a=o+(n?r.fromA:r.fromB),s=o+(n?r.toA:r.toB),l=Math.max(u,a),d=Math.min(t,s);if(l<d&&i.add(l,d,He),s<t)c++;else break}u=t}}}function qe(e){let t=e.state.field(G),{side:n,highlightChanges:r,markGutter:i,overrideChunk:a}=e.state.facet(W),o=n==`a`,s=new v,c=i?new v:null,{from:l,to:u}=e.viewport;for(let n of t){if((o?n.fromA:n.fromB)>=u)break;(o?n.toA:n.toB)>l&&(!a||!a(e.state,n,s,c))&&Ke(n,e.state.doc,o,r,s,c)}return{deco:s.finish(),gutter:c&&c.finish()}}var X=class extends u{constructor(e){super(),this.height=e}eq(e){return this.height==e.height}toDOM(){let e=document.createElement(`div`);return e.className=`cm-mergeSpacer`,e.style.height=this.height+`px`,e}updateDOM(e){return e.style.height=this.height+`px`,!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Je=f.define({map:(e,t)=>e.map(t)}),Z=m.define({create:()=>h.none,update:(e,t)=>{for(let e of t.effects)if(e.is(Je))return e.value;return e.map(t.changes)},provide:e=>y.decorations.from(e)}),Ye=.01;function Xe(e,t){if(e.size!=t.size)return!1;let n=e.iter(),r=t.iter();for(;n.value;){if(n.from!=r.from||Math.abs(n.value.spec.widget.height-r.value.spec.widget.height)>1)return!1;n.next(),r.next()}return!0}function Ze(e,t,n){let r=new v,i=new v,a=e.state.field(Z).iter(),o=t.state.field(Z).iter(),s=0,c=0,l=0,u=0,d=e.viewport,f=t.viewport;for(let p=0;;p++){let m=p<n.length?n[p]:null,g=m?m.fromA:e.state.doc.length,_=m?m.fromB:t.state.doc.length;if(s<g){let n=e.lineBlockAt(s).top+l-(t.lineBlockAt(c).top+u);n<-Ye?(l-=n,r.add(s,s,h.widget({widget:new X(-n),block:!0,side:-1}))):n>Ye&&(u+=n,i.add(c,c,h.widget({widget:new X(n),block:!0,side:-1})))}if(g>s+1e3&&s<d.from&&g>d.from&&c<f.from&&_>f.from){let e=Math.min(d.from-s,f.from-c);s+=e,c+=e,p--}else if(m)s=m.toA,c=m.toB;else break;for(;a.value&&a.from<s;)l-=a.value.spec.widget.height,a.next();for(;o.value&&o.from<c;)u-=o.value.spec.widget.height,o.next()}for(;a.value;)l-=a.value.spec.widget.height,a.next();for(;o.value;)u-=o.value.spec.widget.height,o.next();let p=e.contentHeight+l-(t.contentHeight+u);p<Ye?r.add(e.state.doc.length,e.state.doc.length,h.widget({widget:new X(-p),block:!0,side:1})):p>Ye&&i.add(t.state.doc.length,t.state.doc.length,h.widget({widget:new X(p),block:!0,side:1}));let m=r.finish(),g=i.finish();Xe(m,e.state.field(Z))||e.dispatch({effects:Je.of(m)}),Xe(g,t.state.field(Z))||t.dispatch({effects:Je.of(g)})}var Qe=f.define({map:(e,t)=>t.mapPos(e)}),$e=class extends u{constructor(e){super(),this.lines=e}eq(e){return this.lines==e.lines}toDOM(e){let t=document.createElement(`div`);return t.className=`cm-collapsedLines`,t.textContent=e.state.phrase(`$ unchanged lines`,this.lines),t.addEventListener(`click`,t=>{let n=e.posAtDOM(t.target);e.dispatch({effects:Qe.of(n)});let{side:r,sibling:i}=e.state.facet(W);i&&i().dispatch({effects:Qe.of(et(n,e.state.field(G),r==`a`))})}),t}ignoreEvent(e){return e instanceof MouseEvent}get estimatedHeight(){return 27}get type(){return`collapsed-unchanged-code`}};function et(e,t,n){let r=0,i=0;for(let a=0;;a++){let o=a<t.length?t[a]:null;if(!o||(n?o.fromA:o.fromB)>=e)return i+(e-r);[r,i]=n?[o.toA,o.toB]:[o.toB,o.toA]}}var tt=m.define({create(e){return h.none},update(e,t){e=e.map(t.changes);for(let n of t.effects)n.is(Qe)&&(e=e.update({filter:e=>e!=n.value}));if(e.size&&t.state.field(G)!=t.startState.field(G,!1)){let n=t.state.facet(W).side==`a`,r=[];for(let i of t.state.field(G))e.between(n?i.fromA:i.fromB,n?i.toA:i.toB,e=>{r.push(e)});r.length&&(e=e.update({filter:e=>r.indexOf(e)<0}))}return e},provide:e=>y.decorations.from(e)});function nt({margin:e=3,minSize:t=4}){return tt.init(n=>rt(n,e,t))}function rt(e,t,n){let r=new v,i=e.facet(W).side==`a`,a=e.field(G),o=1;for(let s=0;;s++){let c=s<a.length?a[s]:null,l=s?o+t:1,u=c?e.doc.lineAt(i?c.fromA:c.fromB).number-1-t:e.doc.lines,d=u-l+1;if(d>=n&&r.add(e.doc.line(l).from,e.doc.line(u).to,h.replace({widget:new $e(d),block:!0})),!c)break;o=e.doc.lineAt(Math.min(e.doc.length,i?c.toA:c.toB)).number}return r.finish()}var it=y.styleModule.of(new E({".cm-mergeView":{overflowY:`auto`},".cm-mergeViewEditors":{display:`flex`,alignItems:`stretch`},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:`hidden`},".cm-merge-revert":{width:`1.6em`,flexGrow:0,flexShrink:0,position:`relative`},".cm-merge-revert button":{position:`absolute`,display:`block`,width:`100%`,boxSizing:`border-box`,textAlign:`center`,background:`none`,border:`none`,font:`inherit`,cursor:`pointer`}})),at=y.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:`auto !important`,overflowY:`visible !important`},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:`rgba(160, 128, 100, .08)`},"&.cm-merge-b .cm-changedLine, .cm-inlineChangedLine":{backgroundColor:`rgba(100, 160, 128, .08)`},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:`linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat`},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:`linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat`},"&light.cm-merge-b .cm-changedText":{background:`linear-gradient(#22bb22aa, #22bb22aa) bottom/100% 2px no-repeat`},"&dark.cm-merge-b .cm-changedText":{background:`linear-gradient(#88ff88aa, #88ff88aa) bottom/100% 2px no-repeat`},"&.cm-merge-b .cm-deletedText":{background:`#ff000033`},".cm-insertedLine, .cm-deletedLine, .cm-deletedLine del":{textDecoration:`none`},".cm-deletedChunk":{paddingLeft:`6px`,"& .cm-chunkButtons":{position:`absolute`,insetInlineEnd:`5px`},"& button":{border:`none`,cursor:`pointer`,color:`white`,margin:`0 2px`,borderRadius:`3px`,"&[name=accept]":{background:`#2a2`},"&[name=reject]":{background:`#d43`}}},".cm-collapsedLines":{padding:`5px 5px 5px 10px`,cursor:`pointer`,"&:before":{content:`"⦚"`,marginInlineEnd:`7px`},"&:after":{content:`"⦚"`,marginInlineStart:`7px`}},"&light .cm-collapsedLines":{color:`#444`,background:`linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)`},"&dark .cm-collapsedLines":{color:`#ddd`,background:`linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)`},".cm-changeGutter":{width:`3px`,paddingLeft:`1px`},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:`#e43`},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:`#fa9`},"&light.cm-merge-b .cm-changedLineGutter":{background:`#2b2`},"&dark.cm-merge-b .cm-changedLineGutter":{background:`#8f8`},".cm-inlineChangedLineGutter":{background:`#75d`}}),ot=new d,st=new d,ct=class{constructor(e){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=e.diffConfig||Re;let t=[x.low(J),at,it,Z,y.updateListener.of(e=>{this.measuring<0&&(e.heightChanged||e.viewportChanged)&&!e.transactions.some(e=>e.effects.some(e=>e.is(Je)))&&this.measure()})],n=[W.of({side:`a`,sibling:()=>this.b,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&n.push(Y);let r=ee.create({doc:e.a.doc,selection:e.a.selection,extensions:[e.a.extensions||[],y.editorAttributes.of({class:`cm-merge-a`}),st.of(n),t]}),i=[W.of({side:`b`,sibling:()=>this.a,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&i.push(Y);let a=ee.create({doc:e.b.doc,selection:e.b.selection,extensions:[e.b.extensions||[],y.editorAttributes.of({class:`cm-merge-b`}),st.of(i),t]});this.chunks=K.build(r.doc,a.doc,this.diffConf);let o=[G.init(()=>this.chunks),ot.of(e.collapseUnchanged?nt(e.collapseUnchanged):[])];r=r.update({effects:f.appendConfig.of(o)}).state,a=a.update({effects:f.appendConfig.of(o)}).state,this.dom=document.createElement(`div`),this.dom.className=`cm-mergeView`,this.editorDOM=this.dom.appendChild(document.createElement(`div`)),this.editorDOM.className=`cm-mergeViewEditors`;let s=e.orientation||`a-b`,c=document.createElement(`div`);c.className=`cm-mergeViewEditor`;let l=document.createElement(`div`);l.className=`cm-mergeViewEditor`,this.editorDOM.appendChild(s==`a-b`?c:l),this.editorDOM.appendChild(s==`a-b`?l:c),this.a=new y({state:r,parent:c,root:e.root,dispatchTransactions:e=>this.dispatch(e,this.a)}),this.b=new y({state:a,parent:l,root:e.root,dispatchTransactions:e=>this.dispatch(e,this.b)}),this.setupRevertControls(!!e.revertControls,e.revertControls==`b-to-a`,e.renderRevertControl),e.parent&&e.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(e,t){if(e.some(e=>e.docChanged)){let n=e[e.length-1],r=e.reduce((e,t)=>e.compose(t.changes),T.empty(e[0].startState.doc.length));this.chunks=t==this.a?K.updateA(this.chunks,n.newDoc,this.b.state.doc,r,this.diffConf):K.updateB(this.chunks,this.a.state.doc,n.newDoc,r,this.diffConf),t.update([...e,n.state.update({effects:ke.of(this.chunks)})]);let i=t==this.a?this.b:this.a;i.update([i.state.update({effects:ke.of(this.chunks)})]),this.scheduleMeasure()}else t.update(e)}reconfigure(e){if(`diffConfig`in e&&(this.diffConf=e.diffConfig),`orientation`in e){let t=e.orientation!=`b-a`;if(t!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let e=this.a.dom.parentNode,n=this.b.dom.parentNode;e.remove(),n.remove(),this.editorDOM.insertBefore(t?e:n,this.editorDOM.firstChild),this.editorDOM.appendChild(t?n:e),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent=``)}}if(`revertControls`in e||`renderRevertControl`in e){let t=!!this.revertDOM,n=this.revertToA,r=this.renderRevert;`revertControls`in e&&(t=!!e.revertControls,n=e.revertControls==`b-to-a`),`renderRevertControl`in e&&(r=e.renderRevertControl),this.setupRevertControls(t,n,r)}let t=`highlightChanges`in e,n=`gutter`in e,r=`collapseUnchanged`in e;if(t||n||r){let i=[],a=[];if(t||n){let r=this.a.state.facet(W),o=n?e.gutter!==!1:r.markGutter,s=t?e.highlightChanges!==!1:r.highlightChanges;i.push(st.reconfigure([W.of({side:`a`,sibling:()=>this.b,highlightChanges:s,markGutter:o}),o?Y:[]])),a.push(st.reconfigure([W.of({side:`b`,sibling:()=>this.a,highlightChanges:s,markGutter:o}),o?Y:[]]))}if(r){let t=ot.reconfigure(e.collapseUnchanged?nt(e.collapseUnchanged):[]);i.push(t),a.push(t)}this.a.dispatch({effects:i}),this.b.dispatch({effects:a})}this.scheduleMeasure()}setupRevertControls(e,t,n){this.revertToA=t,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=n,!e&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):e&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement(`div`),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener(`mousedown`,e=>this.revertClicked(e)),this.revertDOM.className=`cm-merge-revert`):this.revertDOM&&(this.revertDOM.textContent=``)}scheduleMeasure(){this.measuring<0&&(this.measuring=(this.dom.ownerDocument.defaultView||window).requestAnimationFrame(()=>{this.measuring=-1,this.measure()}))}measure(){Ze(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let e=this.revertDOM,t=e.firstChild,n=this.a.viewport,r=this.b.viewport;for(let i=0;i<this.chunks.length;i++){let a=this.chunks[i];if(a.fromA>n.to||a.fromB>r.to)break;if(a.fromA<n.from||a.fromB<r.from)continue;let o=this.a.lineBlockAt(a.fromA).top+`px`;for(;t&&+t.dataset.chunk<i;)t=lt(t);t&&t.dataset.chunk==String(i)?(t.style.top!=o&&(t.style.top=o),t=t.nextSibling):e.insertBefore(this.renderRevertButton(o,i),t)}for(;t;)t=lt(t)}renderRevertButton(e,t){let n;if(this.renderRevert)n=this.renderRevert();else{n=document.createElement(`button`);let e=this.a.state.phrase(`Revert this chunk`);n.setAttribute(`aria-label`,e),n.setAttribute(`title`,e),n.textContent=this.revertToLeft?`⇜`:`⇝`}return n.style.top=e,n.setAttribute(`data-chunk`,String(t)),n}revertClicked(e){let t=e.target,n;for(;t&&t.parentNode!=this.revertDOM;)t=t.parentNode;if(t&&(n=this.chunks[t.dataset.chunk])){let[t,r,i,a,o,s]=this.revertToA?[this.b,this.a,n.fromB,n.toB,n.fromA,n.toA]:[this.a,this.b,n.fromA,n.toA,n.fromB,n.toB],c=t.state.sliceDoc(i,Math.max(i,a-1));i!=a&&s<=r.state.doc.length&&(c+=t.state.lineBreak),r.dispatch({changes:{from:o,to:Math.min(r.state.doc.length,s),insert:c},userEvent:`revert`}),e.preventDefault()}}destroy(){this.a.destroy(),this.b.destroy(),this.measuring>-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}};function lt(e){let t=e.nextSibling;return e.remove(),t}var ut=new class extends b{constructor(){super(...arguments),this.elementClass=`cm-deletedLineGutter`}},dt=x.low(C({class:`cm-changeGutter`,markers:e=>e.plugin(J)?.gutter||_.empty,widgetMarker:(e,t)=>t instanceof ht?ut:null}));function ft(e){let t=typeof e.original==`string`?g.of(e.original.split(/\r?\n/)):e.original,n=e.diffConfig||Re;return[x.low(J),bt,at,y.editorAttributes.of({class:`cm-merge-b`}),Ae.of((e,t)=>{let r=t.effects.find(e=>e.is(pt));return r&&(e=K.updateA(e,r.value.doc,t.startState.doc,r.value.changes,n)),t.docChanged&&(e=K.updateB(e,t.state.field(Q),t.newDoc,t.changes,n)),e}),W.of({highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1,syntaxHighlightDeletions:e.syntaxHighlightDeletions!==!1,syntaxHighlightDeletionsMaxLength:3e3,mergeControls:e.mergeControls??!0,overrideChunk:e.allowInlineDiffs?Et:void 0,side:`b`}),Q.init(()=>t),e.gutter===!1?[]:dt,e.collapseUnchanged?nt(e.collapseUnchanged):[],G.init(e=>K.build(t,e.doc,n))]}var pt=f.define(),Q=m.define({create:()=>g.empty,update(e,t){for(let n of t.effects)n.is(pt)&&(e=n.value.doc);return e}}),mt=new WeakMap,ht=class extends u{constructor(e){super(),this.buildDOM=e,this.dom=null}eq(e){return this.dom==e.dom}toDOM(e){return this.dom||=this.buildDOM(e)}};function gt(e,t,n){let r=mt.get(t.changes);if(r)return r;let i=h.widget({block:!0,side:-1,widget:new ht(r=>{let{highlightChanges:i,syntaxHighlightDeletions:a,syntaxHighlightDeletionsMaxLength:o,mergeControls:s}=e.facet(W),c=document.createElement(`div`);if(c.className=`cm-deletedChunk`,s){let t=c.appendChild(document.createElement(`div`));t.className=`cm-chunkButtons`;let n=e=>{e.preventDefault(),_t(r,r.posAtDOM(c))},i=e=>{e.preventDefault(),vt(r,r.posAtDOM(c))};if(typeof s==`function`)t.appendChild(s(`accept`,n)),t.appendChild(s(`reject`,i));else{let r=t.appendChild(document.createElement(`button`));r.name=`accept`,r.textContent=e.phrase(`Accept`),r.onmousedown=n;let a=t.appendChild(document.createElement(`button`));a.name=`reject`,a.textContent=e.phrase(`Reject`),a.onmousedown=i}}if(n||t.fromA>=t.toA)return c;let l=r.state.field(Q).sliceString(t.fromA,t.endA),u=a&&e.facet(ne),d=g(),f=t.changes,m=0,h=!1;function g(){let e=c.appendChild(document.createElement(`div`));return e.className=`cm-deletedLine`,e.appendChild(document.createElement(`del`))}function _(e,t,n){for(let r=e;r<t;){if(l.charAt(r)==`
|
|
2
|
-
`){d.firstChild||d.appendChild(document.createElement(`br`)),d=g(),r++;continue}let e=t,a=n+(h?` cm-deletedText`:``),o=!1,s=l.indexOf(`
|
|
3
|
-
`,r);if(s>-1&&s<t&&(e=s),i&&m<f.length){let t=Math.max(0,h?f[m].toA:f[m].fromA);t<=e&&(e=t,h&&m++,o=!0)}if(e>r){let t=document.createTextNode(l.slice(r,e));if(a){let e=d.appendChild(document.createElement(`span`));e.className=a,e.appendChild(t)}else d.appendChild(t);r=e}o&&(h=!h)}}if(u&&t.toA-t.fromA<=o){let t=u.parser.parse(l),n=0;p(t,{style:t=>w(e,t)},(e,t,r)=>{e>n&&_(n,e,``),_(e,t,r),n=t}),_(n,l.length,``)}else _(0,l.length,``);return d.firstChild||d.appendChild(document.createElement(`br`)),c})});return mt.set(t.changes,i),i}function _t(e,t){let{state:n}=e,r=t??n.selection.main.head,i=e.state.field(G).find(e=>e.fromB<=r&&e.endB>=r);if(!i)return!1;let a=e.state.sliceDoc(i.fromB,Math.max(i.fromB,i.toB-1)),o=e.state.field(Q);i.fromB!=i.toB&&i.toA<=o.length&&(a+=e.state.lineBreak);let s=T.of({from:i.fromA,to:Math.min(o.length,i.toA),insert:a},o.length);return e.dispatch({effects:pt.of({doc:s.apply(o),changes:s}),userEvent:`accept`}),!0}function vt(e,t){let{state:n}=e,r=t??n.selection.main.head,i=n.field(G).find(e=>e.fromB<=r&&e.endB>=r);if(!i)return!1;let a=n.field(Q).sliceString(i.fromA,Math.max(i.fromA,i.toA-1));return i.fromA!=i.toA&&i.toB<=n.doc.length&&(a+=n.lineBreak),e.dispatch({changes:{from:i.fromB,to:Math.min(n.doc.length,i.toB),insert:a},userEvent:`revert`}),!0}function yt(e){let t=new v;for(let n of e.field(G)){let r=e.facet(W).overrideChunk&&St(e,n);t.add(n.fromB,n.fromB,gt(e,n,!!r))}return t.finish()}var bt=m.define({create:e=>yt(e),update(e,t){return t.state.field(G,!1)==t.startState.field(G,!1)?e:yt(t.state)},provide:e=>y.decorations.from(e)}),xt=new WeakMap;function St(e,t){let n=xt.get(t);if(n!==void 0)return n;n=null;let r=e.field(Q),i=e.doc,a=r.lineAt(t.endA).number-r.lineAt(t.fromA).number+1,o=i.lineAt(t.endB).number-i.lineAt(t.fromB).number+1;abort:if(a==o&&a<10){let e=[],i=0,o=t.fromA,s=t.fromB;for(let n of t.changes){if(n.fromA<n.toA){i+=n.toA-n.fromA;let t=r.sliceString(o+n.fromA,o+n.toA);if(/\n/.test(t))break abort;e.push(h.widget({widget:new Ct(t),side:-1}).range(s+n.fromB))}n.fromB<n.toB&&e.push(He.range(s+n.fromB,s+n.toB))}i<t.endA-t.fromA-a*2&&(n=e)}return xt.set(t,n),n}var Ct=class extends u{constructor(e){super(),this.text=e}eq(e){return this.text==e.text}toDOM(e){let t=document.createElement(`del`);return t.className=`cm-deletedText`,t.textContent=this.text,t}},wt=new class extends b{constructor(){super(...arguments),this.elementClass=`cm-inlineChangedLineGutter`}},Tt=h.line({class:`cm-inlineChangedLine`});function Et(e,t,n,r){let i=St(e,t),a=0;if(!i)return!1;for(let o=e.doc.lineAt(t.fromB);;){for(r&&r.add(o.from,o.from,wt),n.add(o.from,o.from,Tt);a<i.length&&i[a].to<=o.to;){let e=i[a++];n.add(e.from,e.to,e.value)}if(o.to>=t.endB)break;o=e.doc.lineAt(o.to+1)}return!0}var $=t(),Dt=D({dark:!0,background:`var(--background)`,gutterBackground:`var(--muted)`}),Ot=D({dark:!1,background:`var(--background)`,gutterBackground:`var(--muted)`}),kt=y.theme({".cm-deletedChunk .cm-chunkButtons":{display:`flex`,gap:`0.25rem`},".cm-deletedChunk .cm-chunkButtons button[data-slot='button']":{margin:`0`,border:`1px solid transparent`,borderRadius:`min(var(--radius-md), 10px)`,color:`var(--primary-foreground)`},".cm-deletedChunk .cm-chunkButtons button[data-slot='button'][data-variant='destructive']":{color:`var(--destructive)`}});function At({addControl:e,nextId:t,removeControl:n,root:r}){return(i,a)=>{let o=document.createElement(`span`);o.className=`inline-flex`;let s=t();return e({id:s,host:o,type:i,action:a}),queueMicrotask(()=>{r.contains(o)||n(s)}),o}}function jt(e){let t=(0,se.c)(33),{oldContent:n,newContent:o,layout:s,conflictMode:u,previewMode:d,oursOverride:f,onResolve:p,onAbort:m}=e,{_:h}=i(),g=f??o,_=(0,O.useRef)(null),v=(0,O.useRef)(null),te=(0,O.useRef)(0),{resolvedTheme:b}=a(),x=(0,O.useRef)(p),ne=(0,O.useRef)(m),[S,C]=(0,O.useState)(null),w;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(w=[],t[0]=w):w=t[0];let[T,E]=(0,O.useState)(w),D=ce(u===!0),k;t[1]!==m||t[2]!==p?(k=()=>{x.current=p,ne.current=m},t[1]=m,t[2]=p,t[3]=k):k=t[3],(0,O.useEffect)(k);let A,j;t[4]!==u||t[5]!==g||t[6]!==s||t[7]!==n||t[8]!==d||t[9]!==b?(A=()=>{let e=_.current;if(!e)return;E([]);let t=new Map,r=!1,i=e=>{r||!t.delete(e)||E(t=>t.filter(t=>t.id!==e))},a=new MutationObserver(()=>{for(let[n,r]of t)e.contains(r)||i(n)});a.observe(e,{childList:!0,subtree:!0});let o=b===`dark`?Dt:Ot,c=[y.editable.of(!1),ee.readOnly.of(!0)],l=[ae,ie(),...c,o,y.lineWrapping];if(v.current&&=(v.current.destroy(),null),d)v.current=new y({doc:g,extensions:l,parent:e}),C(null);else if(u){let a=At({addControl:e=>{r||(t.set(e.id,e.host),E(t=>[...t,e]))},nextId:()=>(te.current+=1,te.current),removeControl:i,root:e}),s=new y({doc:g,extensions:[ae,ie(),y.editable.of(!1),o,kt,y.lineWrapping,ft({original:n,highlightChanges:!0,gutter:!0,mergeControls:a,collapseUnchanged:{margin:3,minSize:4}}),y.updateListener.of(e=>{let t=je(e.state);C(t?t.chunks.length:0)})],parent:e});v.current=s;let c=je(s.state);C(c?c.chunks.length:0)}else s===`split`?v.current=new ct({a:{doc:n,extensions:l},b:{doc:g,extensions:l},parent:e,highlightChanges:!0,gutter:!0,collapseUnchanged:{margin:3,minSize:4}}):v.current=new y({doc:g,extensions:[...l,ft({original:n,highlightChanges:!0,gutter:!0,mergeControls:!1,collapseUnchanged:{margin:3,minSize:4}})],parent:e});return()=>{r=!0,a.disconnect(),v.current&&=(v.current.destroy(),null)}},j=[n,g,s,b,u,d],t[4]=u,t[5]=g,t[6]=s,t[7]=n,t[8]=d,t[9]=b,t[10]=A,t[11]=j):(A=t[10],j=t[11]),(0,O.useEffect)(A,j);let M;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(M=function(){let e=v.current;!e||!(e instanceof y)||x.current?.(e.state.doc.toString())},t[12]=M):M=t[12];let N=M,P;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(P=function(){let e=v.current;!e||!(e instanceof y)||re(e)},t[13]=P):P=t[13];let le=P,F=S===0,I;t[14]!==h||t[15]!==S?(I=S===null?``:S===0?h({id:`lPzyrU`}):l._({id:`8FqTCr`,values:{chunksRemaining:S}}),t[14]=h,t[15]=S,t[16]=I):I=t[16];let L=I,R;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(`div`,{ref:_,className:`diff-view min-h-0 flex-1 overflow-y-auto subtle-scrollbar`}),t[17]=R):R=t[17];let z;if(t[18]!==h||t[19]!==T){let e;t[21]===h?e=t[22]:(e=e=>(0,oe.createPortal)((0,$.jsx)(c,{type:`button`,variant:e.type===`accept`?`default`:`destructive`,size:`xs`,onClick:t=>{e.action(t.nativeEvent)},children:e.type===`accept`?h({id:`g3UF2V`}):h({id:`1t_NnN`})}),e.host,e.id),t[21]=h,t[22]=e),z=T.map(e),t[18]=h,t[19]=T,t[20]=z}else z=t[20];let B;t[23]!==F||t[24]!==D||t[25]!==u||t[26]!==L||t[27]!==m||t[28]!==p?(B=u&&(0,$.jsxs)(`div`,{ref:D,className:`flex items-center justify-between gap-2 px-3 py-2 border-t shrink-0`,children:[(0,$.jsx)(`span`,{className:`text-xs ${F?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`}`,children:L}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[m&&(0,$.jsx)(c,{className:`uppercase font-mono`,variant:`ghost`,size:`sm`,onClick:m,children:(0,$.jsx)(r,{id:`XyOUTJ`})}),(0,$.jsx)(c,{className:`uppercase font-mono`,variant:`outline`,size:`sm`,onClick:le,children:`Undo`}),p&&(0,$.jsx)(c,{variant:`default`,size:`sm`,disabled:!F,onClick:N,children:(0,$.jsx)(r,{id:`Lcehxn`})})]})]}),t[23]=F,t[24]=D,t[25]=u,t[26]=L,t[27]=m,t[28]=p,t[29]=B):B=t[29];let V;return t[30]!==B||t[31]!==z?(V=(0,$.jsxs)(`div`,{className:`flex flex-col h-full`,children:[R,z,B]}),t[30]=B,t[31]=z,t[32]=V):V=t[32],V}export{ce as n,jt as t};
|