@inkeep/open-knowledge 0.46.0-beta.13 → 0.46.0-beta.15
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-BfbkLxMd.mjs → acp-harness-probe-DAX_xywv.mjs} +3 -3
- package/dist/cli.mjs +49 -49
- package/dist/constants-EdMPlb3h.mjs +2 -0
- package/dist/fs-traced-DB5c--Vd.mjs +1 -0
- package/dist/{fs-traced-B-x7hAhD.mjs → fs-traced-wfI5VoOz.mjs} +4 -4
- package/dist/git-handle-CMWGPj44.mjs +1 -0
- package/dist/{git-handle-M_t2H6C-.mjs → git-handle-TtCDd9Le.mjs} +2 -2
- package/dist/index.d.mts +17 -1
- package/dist/index.mjs +1 -1
- package/dist/init-BT0kDAbD.mjs +1 -0
- package/dist/{init-DJvgtKke.mjs → init-DIP7y9dQ.mjs} +37 -37
- package/dist/{launch-json-removal-1939Vm-0.mjs → launch-json-removal-BRxZbYKL.mjs} +2 -2
- package/dist/loader-D9iWusRx.mjs +1 -0
- package/dist/{loader-DZ3vC2N-.mjs → loader-cpIcgfcU.mjs} +3 -3
- package/dist/md-manager-wJEAbIvp.mjs +2 -0
- package/dist/{open-browser-BsKTF04c.mjs → open-browser-BiK9JzSf.mjs} +2 -2
- package/dist/parse-worker.mjs +1 -1
- package/dist/{preview-Bfh6RWYE.mjs → preview-2rjk4dI0.mjs} +2 -2
- package/dist/preview-LjFEzkiH.mjs +1 -0
- package/dist/public/assets/ActivityModeContent-BSGDxL9R.js +1 -0
- package/dist/public/assets/{AgentDiffPane-DM8oQapu.js → AgentDiffPane-D7bJvGdp.js} +2 -2
- package/dist/public/assets/{AgentThreadClientBinder-BE7sGGt4.js → AgentThreadClientBinder-CaTryHIE.js} +1 -1
- package/dist/public/assets/AppMenubar-rFZzqUIz.js +1 -0
- package/dist/public/assets/{BugReportHistory-CaAYnGNR.js → BugReportHistory-DJY_ATlh.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-DFfft492.js → BugReportHistoryDialog-BIDjQ_82.js} +1 -1
- package/dist/public/assets/ChangedOutsideBadge-C-Qu_Pl8.js +1 -0
- package/dist/public/assets/CodeMirrorPropInput-CRKAndsx.js +3 -0
- package/dist/public/assets/{ConfigSharingInfoTooltip-QTCODx7g.js → ConfigSharingInfoTooltip-OJruUI3H.js} +1 -1
- package/dist/public/assets/{ConsentDialogBody-U4UzjnaQ.js → ConsentDialogBody-DRrUivNs.js} +1 -1
- package/dist/public/assets/{CopyButton-O0Y9mXoH.js → CopyButton-Dk8yDsPs.js} +1 -1
- package/dist/public/assets/{DiffView-kKTjtgKq.js → DiffView-DITcPuOr.js} +1 -1
- package/dist/public/assets/DocumentContext-COt_qsrp.js +38 -0
- package/dist/public/assets/EditorModeToggle-N6JjLfr-.js +1 -0
- package/dist/public/assets/EnableSyncConfirmDialog-Bc_A_XCY.js +1 -0
- package/dist/public/assets/FeedbackForm-6V4HIjNZ.js +1 -0
- package/dist/public/assets/{GraphPanel-DZVUW5Ne.js → GraphPanel-aAVgqxld.js} +2 -2
- package/dist/public/assets/ImportSkillDialog-LkmkJ0YU.js +1 -0
- package/dist/public/assets/{LintConfigEditor-DZEV5zwj.js → LintConfigEditor-9eXwxoS2.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-Bte_ppBh.js +2 -0
- package/dist/public/assets/ManagedArtifactProperties-TmTNhIv4.js +1 -0
- package/dist/public/assets/McpConsentDialogBody-090py53F.js +1 -0
- package/dist/public/assets/Mermaid-BQAWkx48.js +2 -0
- package/dist/public/assets/MermaidDocEditor-C_G_ovY8.js +1 -0
- package/dist/public/assets/RegisteredAgentIcon-UInuA1Ei.js +1 -0
- package/dist/public/assets/ReportBugDialogBody-5eJLreAy.js +3 -0
- package/dist/public/assets/SchemaConfigEditor-DcJSH6Kd.js +1 -0
- package/dist/public/assets/SessionsHost-WDNxt2rN.js +2 -0
- package/dist/public/assets/SettingsDialogBody-DYeGMO3E.js +7 -0
- package/dist/public/assets/{ShareBranchSwitchDialog-D54uq5Dv.js → ShareBranchSwitchDialog-Dm4ZdzUl.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-CoskdBM6.js → ShareReceiveDialog-Cd240Jdo.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-Byg3PSFa.js → ShareReceiveMissDialog--hmiMg2v.js} +1 -1
- package/dist/public/assets/{SkillEditBanner-Dtk_Dd6-.js → SkillEditBanner-DIJcGPhx.js} +1 -1
- package/dist/public/assets/SkillModeBanner-BPmqGiVe.js +1 -0
- package/dist/public/assets/SkillOriginInline-M3Vr6Vl3.js +1 -0
- package/dist/public/assets/SkillToolbarControls-CkezCxAG.js +1 -0
- package/dist/public/assets/{SourceEditor-8qossd7Q.js → SourceEditor-D3d3_XjY.js} +1 -1
- package/dist/public/assets/{TerminalPanel-C4TfiKjZ.js → TerminalPanel-DEwu_bZF.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-BV4Va3sn.js → TerminalWindowApp-DwRc5JuX.js} +1 -1
- package/dist/public/assets/TextDocEditor-4ayETwjy.js +1 -0
- package/dist/public/assets/{ThreadView-BZlK-XfA.js → ThreadView-DDsiP7tO.js} +3 -3
- package/dist/public/assets/TimelineDiffPane-EP2JbHka.js +2 -0
- package/dist/public/assets/{abnfDiagram-VRR7QNED-CYyOqigz.js → abnfDiagram-VRR7QNED-DHJtI87X.js} +1 -1
- package/dist/public/assets/{agent-diff-store-BptHmEsn.js → agent-diff-store-NxhFZCYu.js} +1 -1
- package/dist/public/assets/agent-visibility-BVTKArCQ.js +1 -0
- package/dist/public/assets/{arc-DpnwTjlg.js → arc-CcVRsw3e.js} +1 -1
- package/dist/public/assets/architecture-TIHT7OUA-B22-UzyM.js +1 -0
- package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-BArScuNA.js → architectureDiagram-ZJ3FMSHR-CiwaxO5n.js} +1 -1
- package/dist/public/assets/arrow-up-right-CinCNAo3.js +1 -0
- package/dist/public/assets/auth-state-cache-DeOaKoC3.js +11 -0
- package/dist/public/assets/badge-DwfQ2IQa.js +1 -0
- package/dist/public/assets/{blockDiagram-677ZJIJ3-BKdJnykw.js → blockDiagram-677ZJIJ3-0zO7n7Sf.js} +1 -1
- package/dist/public/assets/{braces-CqiL3TOP.js → braces-CsvuNjsR.js} +1 -1
- package/dist/public/assets/button-D3xSRfT4.js +1 -0
- package/dist/public/assets/{c4Diagram-LMCZKHZV-BGzHBzYq.js → c4Diagram-LMCZKHZV-C662qesx.js} +1 -1
- package/dist/public/assets/calendar-BRay90Yd.js +1 -0
- package/dist/public/assets/{case-sensitive-DcowXaLf.js → case-sensitive-OXVu8f1h.js} +1 -1
- package/dist/public/assets/channel-DfI0YSva.js +1 -0
- package/dist/public/assets/check-D1JmbeH0.js +1 -0
- package/dist/public/assets/checkbox-Cq1BnJ3x.js +1 -0
- package/dist/public/assets/{chevron-down-BJumc1E_.js → chevron-down-BH5tpfEN.js} +1 -1
- package/dist/public/assets/chevron-left-CbL-Ysx_.js +1 -0
- package/dist/public/assets/chevron-right-COaV_K3r.js +1 -0
- package/dist/public/assets/chevron-up-CSNoGrd3.js +1 -0
- package/dist/public/assets/chunk-2Q5K7J3B-BSFIGC1j.js +1 -0
- package/dist/public/assets/{chunk-32BRIVSS-DWFi-mYl.js → chunk-32BRIVSS-CydyM0Ml.js} +1 -1
- package/dist/public/assets/{chunk-52WLFC77-C3ewIu0v.js → chunk-52WLFC77-cG-DvO_j.js} +1 -1
- package/dist/public/assets/{chunk-5FCAYU7R-DH0H_TSt.js → chunk-5FCAYU7R-Bxw_oikr.js} +1 -1
- package/dist/public/assets/{chunk-5HE753X5-COZLeOUQ.js → chunk-5HE753X5-DKXmxfLW.js} +1 -1
- package/dist/public/assets/{chunk-5JV3BV7I-BtSn9e5l.js → chunk-5JV3BV7I-DvmJcvTR.js} +1 -1
- package/dist/public/assets/{chunk-5TONJI2A-CyVAUHQY.js → chunk-5TONJI2A-DzotvxWN.js} +1 -1
- package/dist/public/assets/{chunk-5VM5RSS4-DkfDxTnu.js → chunk-5VM5RSS4-BhXaeUUw.js} +1 -1
- package/dist/public/assets/{chunk-7BUUIJ7U-Bwj5weSU.js → chunk-7BUUIJ7U-nkQ2KUUq.js} +1 -1
- package/dist/public/assets/{chunk-BIQX33UG-WShnA3hi.js → chunk-BIQX33UG-dgZifYB8.js} +1 -1
- package/dist/public/assets/{chunk-BO2N2NFS-0fL-jnUT.js → chunk-BO2N2NFS-BgpjQQXT.js} +3 -3
- package/dist/public/assets/{chunk-C7G6YPKG-JOVwaeql.js → chunk-C7G6YPKG-DeJ7KSfD.js} +1 -1
- package/dist/public/assets/{chunk-CQNSW5MT-DmFd2LFl.js → chunk-CQNSW5MT-WJU8lHxD.js} +1 -1
- package/dist/public/assets/{chunk-CYSBUYHQ-BOCWcr_T.js → chunk-CYSBUYHQ-5BxfdOgL.js} +1 -1
- package/dist/public/assets/{chunk-EMLP6XTP-_039-Ubh.js → chunk-EMLP6XTP-mSjYkSCS.js} +1 -1
- package/dist/public/assets/{chunk-EX3LRPZG-CMgFCagr.js → chunk-EX3LRPZG-BNd6Cxwo.js} +1 -1
- package/dist/public/assets/{chunk-FWX5IMBZ-C4vKCoUv.js → chunk-FWX5IMBZ-CXQqiinv.js} +2 -2
- package/dist/public/assets/{chunk-HOUHSVGY-CZX004Ef.js → chunk-HOUHSVGY-FQeseOdw.js} +1 -1
- package/dist/public/assets/{chunk-ICXQ74PX-B_iuJAXS.js → chunk-ICXQ74PX-QBz75RJe.js} +1 -1
- package/dist/public/assets/{chunk-JG7HCLWE-CtDpq51e.js → chunk-JG7HCLWE-ClAPLVoN.js} +1 -1
- package/dist/public/assets/{chunk-JWPE2WC7-pDBBV-ex.js → chunk-JWPE2WC7-D00QuO4l.js} +1 -1
- package/dist/public/assets/{chunk-MOJQB5TN-BOLftHeO.js → chunk-MOJQB5TN-BHolK4Fc.js} +1 -1
- package/dist/public/assets/{chunk-MOZMSUNE-B90rFhRO.js → chunk-MOZMSUNE-B2zrwpvW.js} +1 -1
- package/dist/public/assets/{chunk-OGEWGWER-dIUHPavN.js → chunk-OGEWGWER-D9rNoxcC.js} +1 -1
- package/dist/public/assets/{chunk-OSBZ3O6U-C8f7zxUa.js → chunk-OSBZ3O6U-pMDQqwwa.js} +1 -1
- package/dist/public/assets/{chunk-PUDLZKDR-QPYzmUFw.js → chunk-PUDLZKDR-zvmgn7x_.js} +1 -1
- package/dist/public/assets/{chunk-Q4XR5HBZ--1adMSrR.js → chunk-Q4XR5HBZ-FwXZQ9hY.js} +1 -1
- package/dist/public/assets/{chunk-QBLGF6JB-q87mQ87z.js → chunk-QBLGF6JB-gQMNwA9k.js} +1 -1
- package/dist/public/assets/{chunk-R7FJI6CG-B5NnR0wG.js → chunk-R7FJI6CG-4qEQ9dBZ.js} +1 -1
- package/dist/public/assets/{chunk-RYQCIY6F-BnIBPlEn.js → chunk-RYQCIY6F-BV0ikdQB.js} +1 -1
- package/dist/public/assets/{chunk-U6XO7XAA-DuxWv8i1.js → chunk-U6XO7XAA-CaNmcaAV.js} +1 -1
- package/dist/public/assets/{chunk-V7JOEXUC-zQePb8W4.js → chunk-V7JOEXUC-CsJjje8x.js} +1 -1
- package/dist/public/assets/chunk-VAUOI2AC-B_byVmRb.js +1 -0
- package/dist/public/assets/{chunk-VR4S4FIN-DOfDyz67.js → chunk-VR4S4FIN-bcHVGPIL.js} +1 -1
- package/dist/public/assets/{chunk-WYO6CB5R-DAcO6KqN.js → chunk-WYO6CB5R-BMZjhy31.js} +1 -1
- package/dist/public/assets/chunk-XXDRQBXY-BW_2kVvu.js +1 -0
- package/dist/public/assets/{chunk-YOTPTUD7-DSjCnGGQ.js → chunk-YOTPTUD7-NNZ-Yv3s.js} +1 -1
- package/dist/public/assets/{chunk-ZGVPDNZ5-CnXHsnX3.js → chunk-ZGVPDNZ5-DN7h9evR.js} +1 -1
- package/dist/public/assets/{chunk-ZIRB5QZD-rA251rHW.js → chunk-ZIRB5QZD-BUzL4gtl.js} +1 -1
- package/dist/public/assets/classDiagram-OUVF2IWQ-D-ugBPkQ.js +1 -0
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-Bn6YRP9I.js +1 -0
- package/dist/public/assets/{client-version-9mDVHFsH.js → client-version-BhYZd6K_.js} +1 -1
- package/dist/public/assets/{comment-chips-zzwDt2eW.js → comment-chips-qxdAVfqd.js} +2 -2
- package/dist/public/assets/{config-provider-CqysOmJk.js → config-provider-C5VnXykq.js} +2 -2
- package/dist/public/assets/{cose-bilkent-JH36ORCC-BO3tFb1k.js → cose-bilkent-JH36ORCC-C3tuxXMJ.js} +1 -1
- package/dist/public/assets/createLucideIcon-wbFLvDA-.js +1 -0
- package/dist/public/assets/cynefin-VYW2F7L2-g7Kr3o9e.js +1 -0
- package/dist/public/assets/{cynefinDiagram-TSTJHNR4-kMgUnu_c.js → cynefinDiagram-TSTJHNR4-gF8dJ8RL.js} +1 -1
- package/dist/public/assets/{dagre-DmGue-PX.js → dagre-DqpVUR-3.js} +1 -1
- package/dist/public/assets/{dagre-VKFMJZFB-CgYSDfeg.js → dagre-VKFMJZFB-Bdh7Hq5O.js} +1 -1
- package/dist/public/assets/{diagram-FQU43EPY-XRWiX7Im.js → diagram-FQU43EPY-BZ8uLueR.js} +1 -1
- package/dist/public/assets/{diagram-G47NLZAW-BzqAYczi.js → diagram-G47NLZAW-QyYub_Y-.js} +1 -1
- package/dist/public/assets/{diagram-NH7WQ7WH-CAOpGCwL.js → diagram-NH7WQ7WH-BZmKErWp.js} +1 -1
- package/dist/public/assets/{diagram-OA4YK3LP-CsYFi60N.js → diagram-OA4YK3LP-X4I0Ny_1.js} +1 -1
- package/dist/public/assets/{diagram-WEI45ONY-BPyyv8e3.js → diagram-WEI45ONY-Dvn-EcwS.js} +1 -1
- package/dist/public/assets/{dialog-CkjkuWLF.js → dialog-BRwYcDyc.js} +1 -1
- package/dist/public/assets/{dist-CTPwMRld.js → dist-1bY-7L2j.js} +1 -1
- package/dist/public/assets/{dist-DA8rIjtg.js → dist-4KAJEfHq.js} +1 -1
- package/dist/public/assets/{dist-MQd-Irtl.js → dist-9KHzlPis.js} +1 -1
- package/dist/public/assets/{dist-_8wb0R99.js → dist-B5YN73un.js} +1 -1
- package/dist/public/assets/{dist-Bdhn2jv42.js → dist-B_pBFyj72.js} +1 -1
- package/dist/public/assets/{dist-BkSGIgDv.js → dist-BawYG08a.js} +1 -1
- package/dist/public/assets/{dist-C2ZNHEgX.js → dist-BhBnufkS.js} +1 -1
- package/dist/public/assets/{dist-B4smVaZm2.js → dist-D8RKvolB2.js} +179 -179
- package/dist/public/assets/{dist-FPlC48Ke.js → dist-DhrsAcRJ.js} +1 -1
- package/dist/public/assets/{dist-CKHaw45-.js → dist-DmGGmoBk.js} +1 -1
- package/dist/public/assets/{dist-Dqtgp0QD2.js → dist-Dsr-OKxp2.js} +1 -1
- package/dist/public/assets/{dist-BK-fqCFD.js → dist-Dtdr1fU5.js} +1 -1
- package/dist/public/assets/{dist-D2AiGKcA.js → dist-ZmxLttHl.js} +1 -1
- package/dist/public/assets/{dist-CEBfbNax.js → dist-zNz6UTbN.js} +1 -1
- package/dist/public/assets/{doc-paths-DPN-3rhq.js → doc-paths-CBQZMJ5n.js} +1 -1
- package/dist/public/assets/{documents-events-DYwaAqwG.js → documents-events-CUD1Vtsd.js} +1 -1
- package/dist/public/assets/{download-D3RTVXwv.js → download-C_7Cu8X8.js} +1 -1
- package/dist/public/assets/dropdown-menu-BvpO8ueR.js +1 -0
- package/dist/public/assets/{ebnfDiagram-CCIWWBDH-CUTAjine.js → ebnfDiagram-CCIWWBDH-Bee-0Vsa.js} +1 -1
- package/dist/public/assets/{erDiagram-Q63AITRT-BSu96D8g.js → erDiagram-Q63AITRT-DxkcAaEh.js} +1 -1
- package/dist/public/assets/{esm-DbmiTy2g.js → esm-Dn0h--OG.js} +1 -1
- package/dist/public/assets/eventmodeling-45OFAUF4-DdR7ha8I.js +1 -0
- package/dist/public/assets/{eye-yERBaQWj.js → eye-DGKT_dXT.js} +1 -1
- package/dist/public/assets/field-mSLytCEk.js +1 -0
- package/dist/public/assets/file-tree-adapter-CRvIFP_w.js +1 -0
- package/dist/public/assets/{file-tree-utils-BYKXMiDK.js → file-tree-utils-Bz8x8io4.js} +1 -1
- package/dist/public/assets/flowDiagram-23GEKE2U-BAuyQn3U.js +1 -0
- package/dist/public/assets/{folder-8ceGqZIO.js → folder-CyL8AyXY.js} +1 -1
- package/dist/public/assets/{folder-config-api-CDok_aFN.js → folder-config-api-DI42D8Ib.js} +1 -1
- package/dist/public/assets/{folder-open-CvyyCBOn.js → folder-open-DxWbBr3T.js} +1 -1
- package/dist/public/assets/follow-file-DYsc20_7.js +1 -0
- package/dist/public/assets/form-DipRd6xO.js +1 -0
- package/dist/public/assets/{ganttDiagram-NO4QXBWP-Crrr-q7s.js → ganttDiagram-NO4QXBWP-CfKrR8t0.js} +1 -1
- package/dist/public/assets/{git-branch-oPfvsh1I.js → git-branch-v159JGOd.js} +1 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-B9_Hbzw_.js +1 -0
- package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-BdMHODo-.js → gitGraphDiagram-IHSO6WYX-l_eG9uKD.js} +1 -1
- package/dist/public/assets/globals-Ba8zXfL4.css +1 -0
- package/dist/public/assets/{globals-DpFuWoOb.js → globals-Wwv5HfuY.js} +2 -2
- package/dist/public/assets/{graphlib-DIVfLvlR.js → graphlib-2mbBufU8.js} +1 -1
- package/dist/public/assets/{hash-DP25l_li.js → hash-C-OUp5vU.js} +1 -1
- package/dist/public/assets/{highlighted-body-OFNGDK62-Cue0vPGT.js → highlighted-body-OFNGDK62-BIipOt-U.js} +1 -1
- package/dist/public/assets/index-BgOJcvk8.js +2092 -0
- package/dist/public/assets/info-DKCQHKI2-BQeDe2mR.js +1 -0
- package/dist/public/assets/{info-Bza7Xa6D.js → info-DybUB5k_.js} +1 -1
- package/dist/public/assets/{infoDiagram-FWYZ7A6U-_RNxdwPC.js → infoDiagram-FWYZ7A6U-DgvJ7Awn.js} +1 -1
- package/dist/public/assets/input-DcoGZoTQ.js +1 -0
- package/dist/public/assets/input-group-DpE_QejY.js +1 -0
- package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-BbXzN7UF.js → ishikawaDiagram-FXEZZL3T-DQ4Gskk4.js} +1 -1
- package/dist/public/assets/{journeyDiagram-5HDEW3XC-BqwkEnJh.js → journeyDiagram-5HDEW3XC-DPs0RcwQ.js} +1 -1
- package/dist/public/assets/{kanban-definition-HUTT4EX6-CX-ROP0U.js → kanban-definition-HUTT4EX6-Ck2HSfan.js} +1 -1
- package/dist/public/assets/label-CGqMAe0S.js +1 -0
- package/dist/public/assets/{line-D0lohJ6a.js → line-DWKLErsv.js} +1 -1
- package/dist/public/assets/{linear-By98wvuz.js → linear-dbIThZWJ.js} +1 -1
- package/dist/public/assets/{lint-config-client-CqIt6_m6.js → lint-config-client-B3CFuMcz.js} +1 -1
- package/dist/public/assets/loader-circle-C4uszcbe.js +1 -0
- package/dist/public/assets/{map-XagOZNs9.js → map-DCuMc749.js} +1 -1
- package/dist/public/assets/{markdownlint-rule-browser-B9Uf4v2H.js → markdownlint-rule-browser-taWXhAIu.js} +1 -1
- package/dist/public/assets/mermaid-GHXKKRXX-DE1vq5OK.js +1 -0
- package/dist/public/assets/{mermaid-parser.core-DtOR1aVt.js → mermaid-parser.core-B2uYfibA.js} +2 -2
- package/dist/public/assets/{mermaid.core-DFRkYHGF.js → mermaid.core-BUTR3k00.js} +3 -3
- package/dist/public/assets/{mindmap-definition-LN4V7U3C-BPq8CY-V.js → mindmap-definition-LN4V7U3C-CjuwnrRK.js} +1 -1
- package/dist/public/assets/minus-dDmjPbo4.js +1 -0
- package/dist/public/assets/{miss-dialog-store-DBqQ_Nyn.js → miss-dialog-store-DRsTysxn.js} +1 -1
- package/dist/public/assets/navigation-targets-Cqw8JcW2.js +1 -0
- package/dist/public/assets/{now-BJ6wHiq6.js → now-D9M3Ys6o.js} +1 -1
- package/dist/public/assets/{open-managed-artifact-tab-BRW0Boal.js → open-managed-artifact-tab-BJBa-17A.js} +1 -1
- package/dist/public/assets/{ordinal-BhGTF2Fp.js → ordinal-DdrNAXbu.js} +1 -1
- package/dist/public/assets/packet-7NZHBO7P-BW9abikZ.js +1 -0
- package/dist/public/assets/panel-Bjv8raTx.js +1 -0
- package/dist/public/assets/{panel-right-open-ChixO1pm.js → panel-right-open-EPKoGQBE.js} +1 -1
- package/dist/public/assets/{paperclip-CFZOhV8C.js → paperclip-DSaV3jTp.js} +1 -1
- package/dist/public/assets/{pegDiagram-2B236MQR-Bs6HaUdW.js → pegDiagram-2B236MQR-BbkSvB2I.js} +1 -1
- package/dist/public/assets/{pending-receive-nav-store-C5kqBBL2.js → pending-receive-nav-store-BZZR-nkd.js} +1 -1
- package/dist/public/assets/pie-RZYD4A2V-D86NaVqt.js +1 -0
- package/dist/public/assets/{pieDiagram-ENE6RG2P-BBo6EMS4.js → pieDiagram-ENE6RG2P-mC03ntFr.js} +1 -1
- package/dist/public/assets/project-paths-DZoifJi3.js +1 -0
- package/dist/public/assets/{prop-types-CwT5q2dg.js → prop-types-UV1Ku4nq.js} +1 -1
- package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-qmZeOoSr.js → quadrantDiagram-ABIIQ3AL-C5Wf9EzX.js} +1 -1
- package/dist/public/assets/radar-I7S5WNFK-DQAd0dLq.js +1 -0
- package/dist/public/assets/radio-group-DxMM4tU-.js +1 -0
- package/dist/public/assets/railroad-3IZDKUUU-BpjxCYYP.js +1 -0
- package/dist/public/assets/railroad-abnf-AHOZXSZD-BVzINhcN.js +1 -0
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-FAz3aWnD.js +1 -0
- package/dist/public/assets/railroad-peg-LSFZ7HO6-Smtu6BYl.js +1 -0
- package/dist/public/assets/{railroadDiagram-RFXS5EU6-DE_EvwtV.js → railroadDiagram-RFXS5EU6-D5k_b8X2.js} +1 -1
- package/dist/public/assets/{receive-store-9n3T9AKo.js → receive-store-CqvpoBpo.js} +1 -1
- package/dist/public/assets/{refresh-cw-D3t5sdqM.js → refresh-cw-DaKSQ-xL.js} +1 -1
- package/dist/public/assets/{requirementDiagram-TGXJPOKE-BZ-rKt8B.js → requirementDiagram-TGXJPOKE-sZXA_y1K.js} +1 -1
- package/dist/public/assets/{sankeyDiagram-HTMAVEWB-B9AZEJIc.js → sankeyDiagram-HTMAVEWB-VaejSuXD.js} +1 -1
- package/dist/public/assets/schema-fields-view-intent-BMcQ1vbw.js +1 -0
- package/dist/public/assets/select-DnZ213p0.js +1 -0
- package/dist/public/assets/{selection-context-Ei6PWK1c.js → selection-context-SAJ9lGhe.js} +1 -1
- package/dist/public/assets/separator-BhGCtoZc.js +1 -0
- package/dist/public/assets/{sequenceDiagram-DBY2YBRQ-DR0l3jeO.js → sequenceDiagram-DBY2YBRQ-nCH-USjy.js} +1 -1
- package/dist/public/assets/{sizeCapture-X5ZJPWSS-CK3vwB3X.js → sizeCapture-X5ZJPWSS-CyNe-U3Z.js} +1 -1
- package/dist/public/assets/skeleton-Zj40UZU5.js +1 -0
- package/dist/public/assets/skill-actions-bjJCqQ6r.js +2 -0
- package/dist/public/assets/{skill-scope-QSVdjA7g.js → skill-scope-CEk2zosm.js} +1 -1
- package/dist/public/assets/{skills-api-DPk4ScTz.js → skills-api-DqNFNsgd.js} +1 -1
- package/dist/public/assets/{square-pen-wqme9vlv.js → square-pen-BETfUJNH.js} +1 -1
- package/dist/public/assets/{src-rG3yqT5Z.js → src-D2I-MNPe.js} +1 -1
- package/dist/public/assets/{src-DsJU4LsJ.js → src-DFZupjZD.js} +1 -1
- package/dist/public/assets/{stateDiagram-2N3HPSRC-DEWfQHsO.js → stateDiagram-2N3HPSRC-uY9Mif8t.js} +1 -1
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-BdS5vmc7.js +1 -0
- package/dist/public/assets/{swimlanes-5IMT3BWC-B6x4Ld9j.js → swimlanes-5IMT3BWC-cGipHfZ5.js} +2 -2
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-Do_H-wCL.js +8 -0
- package/dist/public/assets/switch-BQ3qkbBx.js +1 -0
- package/dist/public/assets/tabs-C54rwljA.js +1 -0
- package/dist/public/assets/tag-pill-input-Dm-oHELs.js +1 -0
- package/dist/public/assets/{target-navigation-intent-Bo9uuBEh.js → target-navigation-intent-D4NuVWIm.js} +1 -1
- package/dist/public/assets/{telemetry-impl-D4kQ8pzt.js → telemetry-impl-wWahzeD4.js} +2 -2
- package/dist/public/assets/{telemetry-startup-B15S0fJ7.js → telemetry-startup-DqooJFoo.js} +1 -1
- package/dist/public/assets/terminal-input-events-D7rv6nZZ.js +1 -0
- package/dist/public/assets/terminal-launch-events-DPnh23jk.js +1 -0
- package/dist/public/assets/{terminal-telemetry-46cHbbgd.js → terminal-telemetry-C0iAhsN9.js} +1 -1
- package/dist/public/assets/text-viewer-languages-qm3MvP0J.js +2 -0
- package/dist/public/assets/textarea-Cl4IJ1LU.js +1 -0
- package/dist/public/assets/{thread-client-DpMjiK2J.js → thread-client-CylUCx4y.js} +1 -1
- package/dist/public/assets/{timeline-definition-FHXFAJF6-DB7l9JZO.js → timeline-definition-FHXFAJF6-BaWSHiEf.js} +1 -1
- package/dist/public/assets/toggle-group-DpvWeoN9.js +1 -0
- package/dist/public/assets/tooltip-CtvLp_YK.js +1 -0
- package/dist/public/assets/{trash-2-5vqPZUBk.js → trash-2-YBQNhePb.js} +1 -1
- package/dist/public/assets/treeView-QDETBFTQ-BgORrhQ0.js +1 -0
- package/dist/public/assets/treemap-6X3UGDF4-Zr5ZEdj0.js +1 -0
- package/dist/public/assets/{triangle-alert-BwCftF1V.js → triangle-alert-Dk8dL1G6.js} +1 -1
- package/dist/public/assets/{typing-burst-detector-CKkV0qHr.js → typing-burst-detector-aQ1X_8Fj.js} +1 -1
- package/dist/public/assets/{undo-2-BRIW1mxN.js → undo-2-1g5Fg6rD.js} +1 -1
- package/dist/public/assets/uninstall-CZ4_m9Qa.js +1 -0
- package/dist/public/assets/{use-activity-panel-BrntKM08.js → use-activity-panel-CrUZg0eD.js} +1 -1
- package/dist/public/assets/{use-apply-config-color-theme-BeVjXtPt.js → use-apply-config-color-theme-CFZIZmfZ.js} +2 -2
- package/dist/public/assets/{use-collab-url-DNKvlkVI.js → use-collab-url-DrWInPcY.js} +1 -1
- package/dist/public/assets/{use-live-xterm-theme-zW4nzNGd.js → use-live-xterm-theme-C7ahxcoU.js} +1 -1
- package/dist/public/assets/{use-open-skill-Bs2T3l_Z.js → use-open-skill-BQedNtMG.js} +1 -1
- package/dist/public/assets/{use-settings-route-Dw-Hb0ex.js → use-settings-route-DHvE2hA4.js} +1 -1
- package/dist/public/assets/{use-skill-directory-CB4briga.js → use-skill-directory-CVAgFkVK.js} +1 -1
- package/dist/public/assets/{use-skills-luzjx-1h.js → use-skills-LdaAjRrH.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-BmqysEmJ.js → use-terminal-enabled-DwK_rPTk.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-5XrGZxUG.js → use-timeline-entry-diff-B5KnaOaD.js} +2 -2
- package/dist/public/assets/{use-workspace-Bi_k2cyZ.js → use-workspace-Csf6sHD8.js} +1 -1
- package/dist/public/assets/utils-CPqDy6Hr.js +1 -0
- package/dist/public/assets/{vennDiagram-L72KCM5P-D6bPpaIm.js → vennDiagram-L72KCM5P-boRPAxOy.js} +1 -1
- package/dist/public/assets/wardley-OPB4EBWU-WeTAUrVk.js +1 -0
- package/dist/public/assets/{wardleyDiagram-EHGQE667-9U25ZM8P.js → wardleyDiagram-EHGQE667-vi90NC-5.js} +1 -1
- package/dist/public/assets/{wrench-CqOvU1qQ.js → wrench-86_Xzzag.js} +1 -1
- package/dist/public/assets/x-M_y7ybHr.js +1 -0
- package/dist/public/assets/{xychartDiagram-FW5EYKEG-WSgFIUEO.js → xychartDiagram-FW5EYKEG-Ckph0Tnv.js} +1 -1
- package/dist/public/index.html +133 -129
- package/dist/public/uninstall.html +18 -17
- package/dist/{repair-launch-json-BnuZxbzl.mjs → repair-launch-json-CarG9t5g.mjs} +2 -2
- package/dist/repair-mcp-configs-tqX3x1ff.mjs +2 -0
- package/dist/{repair-skills-dd5mv1UC.mjs → repair-skills-B5s_18d0.mjs} +2 -2
- package/dist/repair-skills-ByGIGa0z.mjs +1 -0
- package/dist/{server-lock-CiLY7g7M.mjs → server-lock-CCS3UzJQ.mjs} +2 -2
- package/dist/server-lock-CKTWPQax.mjs +1 -0
- package/dist/{sleep-IcuyYCzq.mjs → sleep-TXRFWg8x.mjs} +5 -5
- package/dist/{src-vPHpv2Pv.mjs → src-C9yhZBbO.mjs} +21 -21
- package/dist/src-CJQ7Tr0x.mjs +2030 -0
- package/dist/{src-BV_ssChu.mjs → src-CrCGhUc5.mjs} +4 -4
- package/dist/{src-FJfcW5Wa.mjs → src-Dmoupsem.mjs} +1 -1
- package/dist/{start-CrQRZ2iN.mjs → start-DLGlqNhM.mjs} +3 -3
- package/dist/start-DLutC_zQ.mjs +1 -0
- package/dist/{write-project-skill-9Bg5smOa.mjs → write-project-skill-BIBvYtT6.mjs} +3 -3
- package/package.json +4 -4
- package/dist/constants-Tj2BXHLz.mjs +0 -2
- package/dist/fs-traced-Bi88qem0.mjs +0 -1
- package/dist/git-handle-CIs--jPt.mjs +0 -1
- package/dist/init-DAEIZfnY.mjs +0 -1
- package/dist/loader-DjGgIOZB.mjs +0 -1
- package/dist/md-manager-BYBAWLMu.mjs +0 -2
- package/dist/preview-BRsYNNVp.mjs +0 -1
- package/dist/public/assets/ActivityModeContent-DBIuWjYz.js +0 -1
- package/dist/public/assets/AppMenubar-7eBxIB37.js +0 -1
- package/dist/public/assets/ChangedOutsideBadge-HeyxmqeX.js +0 -1
- package/dist/public/assets/CodeMirrorPropInput-ni9vC7Fz.js +0 -3
- package/dist/public/assets/DocumentContext-DOLytv_M.js +0 -38
- package/dist/public/assets/EditorModeToggle-CNorGTYw.js +0 -2
- package/dist/public/assets/EnableSyncConfirmDialog-BIggEySP.js +0 -1
- package/dist/public/assets/FeedbackForm-CxZ7wWPb.js +0 -1
- package/dist/public/assets/ImportSkillDialog-CDNt7ygs.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-AwlBn5fa.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-DUL9cmXF.js +0 -2
- package/dist/public/assets/McpConsentDialogBody-BMrE5RK5.js +0 -1
- package/dist/public/assets/MermaidDocEditor-DNa5Mst7.js +0 -1
- package/dist/public/assets/RegisteredAgentIcon-CHh3fima.js +0 -1
- package/dist/public/assets/ReportBugDialogBody-C3Dct-EA.js +0 -3
- package/dist/public/assets/SchemaConfigEditor-IN_XqunA.js +0 -1
- package/dist/public/assets/SessionsHost-CYxR-RCl.js +0 -2
- package/dist/public/assets/SettingsDialogBody-zEVCcY6i.js +0 -7
- package/dist/public/assets/SkillModeBanner-CsKHM-QY.js +0 -1
- package/dist/public/assets/SkillOriginInline-Bi8XGbK6.js +0 -1
- package/dist/public/assets/SkillToolbarControls-t4VQIap4.js +0 -1
- package/dist/public/assets/TimelineDiffPane-Ox3ktjmx.js +0 -2
- package/dist/public/assets/agent-visibility-Bt2OD_n5.js +0 -1
- package/dist/public/assets/architecture-TIHT7OUA-Bl7-zFAE.js +0 -1
- package/dist/public/assets/arrow-up-right-BZsQghvQ.js +0 -1
- package/dist/public/assets/auth-state-cache-DpJsYOVr.js +0 -11
- package/dist/public/assets/badge-DB5BJfSU.js +0 -1
- package/dist/public/assets/button-oSXzJYWO.js +0 -1
- package/dist/public/assets/calendar-C2lP75MI.js +0 -1
- package/dist/public/assets/channel-Bf_IZmsH.js +0 -1
- package/dist/public/assets/check-DA7_vRdO.js +0 -1
- package/dist/public/assets/checkbox-DYPwCq3O.js +0 -1
- package/dist/public/assets/chevron-left-D8z-buF6.js +0 -1
- package/dist/public/assets/chevron-right-CgsPV9lV.js +0 -1
- package/dist/public/assets/chunk-2Q5K7J3B-CBNXZghD.js +0 -1
- package/dist/public/assets/chunk-VAUOI2AC-K9aKY8La.js +0 -1
- package/dist/public/assets/chunk-XXDRQBXY-CRN6FsNM.js +0 -1
- package/dist/public/assets/classDiagram-OUVF2IWQ-B8NyhReL.js +0 -1
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-To5zrK6k.js +0 -1
- package/dist/public/assets/createLucideIcon-BiRV80uZ.js +0 -1
- package/dist/public/assets/cynefin-VYW2F7L2-DjK3ZZKp.js +0 -1
- package/dist/public/assets/dropdown-menu-D2umi56L.js +0 -1
- package/dist/public/assets/eventmodeling-45OFAUF4-C3gCuhXd.js +0 -1
- package/dist/public/assets/field-i4kPdg1V.js +0 -1
- package/dist/public/assets/file-tree-adapter-B3YYQMKE.js +0 -1
- package/dist/public/assets/flowDiagram-23GEKE2U-V8thnmzy.js +0 -1
- package/dist/public/assets/follow-file-BpD8YozT.js +0 -1
- package/dist/public/assets/form-lIFpKMVU.js +0 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-BERn_Vnm.js +0 -1
- package/dist/public/assets/globals-GzZHGkrT.css +0 -1
- package/dist/public/assets/index-Bbf0BHeh.js +0 -2092
- package/dist/public/assets/info-DKCQHKI2-xuBgM0S3.js +0 -1
- package/dist/public/assets/input-C4n4n5Hc.js +0 -1
- package/dist/public/assets/input-group-C_H5NgPX.js +0 -1
- package/dist/public/assets/label-Ds0LTB-Z.js +0 -1
- package/dist/public/assets/loader-circle-Cn2Xr4cN.js +0 -1
- package/dist/public/assets/mermaid-GHXKKRXX-CFTslKYT.js +0 -1
- package/dist/public/assets/minus-CBRjUXY7.js +0 -1
- package/dist/public/assets/navigation-targets-CvdOYknS.js +0 -1
- package/dist/public/assets/packet-7NZHBO7P-DhQWKabl.js +0 -1
- package/dist/public/assets/panel-FwLLPu5s.js +0 -1
- package/dist/public/assets/pie-RZYD4A2V-DaewLp2Y.js +0 -1
- package/dist/public/assets/project-paths-Cgrv2qcw.js +0 -1
- package/dist/public/assets/radar-I7S5WNFK-DljmjJ2C.js +0 -1
- package/dist/public/assets/radio-group-DFFiLDEM.js +0 -1
- package/dist/public/assets/railroad-3IZDKUUU-6CgLOfBJ.js +0 -1
- package/dist/public/assets/railroad-abnf-AHOZXSZD-DQ60e1aW.js +0 -1
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-Da8xQ_1N.js +0 -1
- package/dist/public/assets/railroad-peg-LSFZ7HO6-CDOeiUF5.js +0 -1
- package/dist/public/assets/schema-fields-view-intent-SQVE5W3s.js +0 -1
- package/dist/public/assets/select-DyVZCohx.js +0 -1
- package/dist/public/assets/separator-4_yBRx-q.js +0 -1
- package/dist/public/assets/skeleton-BlTc8h6X.js +0 -1
- package/dist/public/assets/skill-actions-6lbXpkx6.js +0 -2
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-aJyvpelO.js +0 -1
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-NoFAxBaw.js +0 -8
- package/dist/public/assets/switch-CsstPO-E.js +0 -1
- package/dist/public/assets/tabs-C8ykgpIi.js +0 -1
- package/dist/public/assets/tag-pill-input-Bi-VYc9q.js +0 -1
- package/dist/public/assets/terminal-input-events-B8xUcID4.js +0 -1
- package/dist/public/assets/terminal-launch-events-CCUJ6bvs.js +0 -1
- package/dist/public/assets/textarea-DKb-eo87.js +0 -1
- package/dist/public/assets/toggle-group-DMfnQ5Pd.js +0 -1
- package/dist/public/assets/tooltip-DkZ6fphS.js +0 -1
- package/dist/public/assets/treeView-QDETBFTQ-Ds4YBLMo.js +0 -1
- package/dist/public/assets/treemap-6X3UGDF4-D2ccHx16.js +0 -1
- package/dist/public/assets/uninstall-C2Z7mcqE.js +0 -1
- package/dist/public/assets/wardley-OPB4EBWU-JuWm1scq.js +0 -1
- package/dist/public/assets/x-C6kVbc_i.js +0 -1
- package/dist/repair-mcp-configs-Cbg7X3jU.mjs +0 -2
- package/dist/repair-skills-PgjKx2Kj.mjs +0 -1
- package/dist/server-lock-toF-I3k7.mjs +0 -1
- package/dist/src-BexdiJ2F.mjs +0 -2030
- package/dist/start-CBKXj6gj.mjs +0 -1
- /package/dist/public/assets/{ActivityPanelDiffView-ZX0cv7Dl.js → ActivityPanelDiffView-DzcGG-3T.js} +0 -0
- /package/dist/public/assets/{__vite-browser-external-DwydhYHF.js → __vite-browser-external-DRftbq1J.js} +0 -0
- /package/dist/public/assets/{agent-presence-BcWu61SE.js → agent-presence-DspgbUIJ.js} +0 -0
- /package/dist/public/assets/{array-DpLqdF3L.js → array-BlR6RSqS.js} +0 -0
- /package/dist/public/assets/{auth-prompt-store-CmyRhcKh.js → auth-prompt-store-2KB0Hew5.js} +0 -0
- /package/dist/public/assets/{chunk-KEIR6QF5-Bf0oDx3Z.js → chunk-KEIR6QF5-Cvu_RfZc.js} +0 -0
- /package/dist/public/assets/{chunk-Y2CYZVJY-PbmsUfAu.js → chunk-Y2CYZVJY-BavonG01.js} +0 -0
- /package/dist/public/assets/{clike-BrXLgO2o.js → clike-BTKURkAr.js} +0 -0
- /package/dist/public/assets/{clipboard-adapter-B3lKEXcw.js → clipboard-adapter-Brbch5VX.js} +0 -0
- /package/dist/public/assets/{colors-B-WRw0bG.js → colors-DThYSuj1.js} +0 -0
- /package/dist/public/assets/{copilot-BkvifxDd.js → copilot-_tsUyzgD.js} +0 -0
- /package/dist/public/assets/{cursor-D-FuCbK1.js → cursor-D_UKSHL6.js} +0 -0
- /package/dist/public/assets/{cytoscape.esm-BkIkmBTc.js → cytoscape.esm-CcKBPOPz.js} +0 -0
- /package/dist/public/assets/{defaultLocale-DoD61tXl.js → defaultLocale-Bj1aksfd.js} +0 -0
- /package/dist/public/assets/{desktop-bridge-types-5ScET3Cg.js → desktop-bridge-types-cNTLS5xb.js} +0 -0
- /package/dist/public/assets/{diff-DTEjW6Ec.js → diff-CC9Zbhye.js} +0 -0
- /package/dist/public/assets/{dist-D4eaXg-1.js → dist-BKO-SihH.js} +0 -0
- /package/dist/public/assets/{dist-BVbCw0G-.js → dist-BNVxnBBw.js} +0 -0
- /package/dist/public/assets/{dist-CA7QPULb.js → dist-CublDHOR.js} +0 -0
- /package/dist/public/assets/{dist-DuwTJb1j.js → dist-Du3GTGo5.js} +0 -0
- /package/dist/public/assets/{dist-6Q9yuoli.js → dist-pl6OT5yc.js} +0 -0
- /package/dist/public/assets/{documents-fetch-AfOPbdF_.js → documents-fetch-D4kwvrzo.js} +0 -0
- /package/dist/public/assets/{external-link-LAxhzgCI.js → external-link-CKZFgCFq.js} +0 -0
- /package/dist/public/assets/{file-tree-rename-validation-CkkVvtpx.js → file-tree-rename-validation-BH8L3cc3.js} +0 -0
- /package/dist/public/assets/{format-Bj7zR862.js → format-DAPkd5Gj.js} +0 -0
- /package/dist/public/assets/{go-D3-a1upg.js → go-BOoSlAXr.js} +0 -0
- /package/dist/public/assets/{init-D0AX7DDe.js → init-tTyHApSS.js} +0 -0
- /package/dist/public/assets/{isObject-Bs1dF4ay.js → isObject-CS6pZNNk.js} +0 -0
- /package/dist/public/assets/{libesm-D5Z2fjiR.js → libesm-COuF-Ycc.js} +0 -0
- /package/dist/public/assets/{lint-plugin-meta-DEfDN-Lf.js → lint-plugin-meta-BxfSlkph.js} +0 -0
- /package/dist/public/assets/{lru-string-cache-CHVwK1CS.js → lru-string-cache-DXyh0UqD.js} +0 -0
- /package/dist/public/assets/{lua-B71IklsF.js → lua-Dxo01oIG.js} +0 -0
- /package/dist/public/assets/{mcp-consent-store-B7QM8uoo.js → mcp-consent-store-BivjPpLe.js} +0 -0
- /package/dist/public/assets/{min-nSRrTGDE.js → min-B52VabRz.js} +0 -0
- /package/dist/public/assets/{overlay-layers-cTOQ-1PW.js → overlay-layers-DGwgwjHg.js} +0 -0
- /package/dist/public/assets/{panzoom.es-D_Inq3Bn.js → panzoom.es-JQqfaE6_.js} +0 -0
- /package/dist/public/assets/{parse-api-error-CqQte8A1.js → parse-api-error-CGRziNbI.js} +0 -0
- /package/dist/public/assets/{path-rUjnF-It.js → path-BTSnI4V0.js} +0 -0
- /package/dist/public/assets/{pdf-B6i840eQ.js → pdf-DDNlrbvd.js} +0 -0
- /package/dist/public/assets/{pdf.worker-BVtQmJKT.js → pdf.worker-MgQT7Lb-.js} +0 -0
- /package/dist/public/assets/{perl-B5Ul8OcV.js → perl-L_d0-K7D.js} +0 -0
- /package/dist/public/assets/{properties-CWbs0haa.js → properties-B1mL7FEj.js} +0 -0
- /package/dist/public/assets/{r-DcrAlDW2.js → r-D1HJ6WJD.js} +0 -0
- /package/dist/public/assets/{rough.esm-BfebUORF.js → rough.esm-FREjYXwx.js} +0 -0
- /package/dist/public/assets/{ruby-i1xYQ9jV.js → ruby-BWJ7ZkjF.js} +0 -0
- /package/dist/public/assets/{share-metadata-rows-D1HTNYwn.js → share-metadata-rows-c17l05D6.js} +0 -0
- /package/dist/public/assets/{shell-cUw_P8eQ.js → shell-ul8ysUs1.js} +0 -0
- /package/dist/public/assets/{sortable.esm-ByX1chKY.js → sortable.esm-BuA5-2It.js} +0 -0
- /package/dist/public/assets/{sql-xiwUJ94E.js → sql-BJVFbIWu.js} +0 -0
- /package/dist/public/assets/{src-DkpCd49O.js → src-CIOeKeVw.js} +0 -0
- /package/dist/public/assets/{startup-marks-BHZdrXwz.js → startup-marks-Bl-kvAXX.js} +0 -0
- /package/dist/public/assets/{stex-rJmw0eOd.js → stex-WCjgSIWy.js} +0 -0
- /package/dist/public/assets/{swift-Cl1DeyT6.js → swift-BmJYIPlb.js} +0 -0
- /package/dist/public/assets/{thread-draft-staging-CygDRDTa.js → thread-draft-staging-Df0IT4FR.js} +0 -0
- /package/dist/public/assets/{timeline-diff-store-C89mH-2r.js → timeline-diff-store-B-Ea84Rl.js} +0 -0
- /package/dist/public/assets/{toml-B2JpJCpy.js → toml-BOOm8Wvq.js} +0 -0
- /package/dist/public/assets/{use-installed-clis-BR1AXhaE.js → use-installed-clis-BpdGnrVu.js} +0 -0
- /package/dist/public/assets/{useLintConfigViewMode-eMibVVkV.js → useLintConfigViewMode-15VleUG7.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DTipWd-i.mjs";import{Ao as t,X as n,Z as r,ms as i,ps as a}from"./src-
|
|
1
|
+
import{o as e}from"./chunk-DTipWd-i.mjs";import{Ao as t,X as n,Z as r,ms as i,ps as a}from"./src-C9yhZBbO.mjs";import{Vr as o,at as s,it as c,nt as l,rt as u,si as d,vn as f,xa as p}from"./src-CJQ7Tr0x.mjs";import{q as m}from"./sleep-TXRFWg8x.mjs";import{O as h,P as g}from"./fs-traced-wfI5VoOz.mjs";import{S as _,u as v,v as y,x as b}from"./server-lock-CCS3UzJQ.mjs";import{t as x}from"./yazl-BafwB467.mjs";import{T as S,b as C,d as w,i as T,x as ee}from"./write-project-skill-BIBvYtT6.mjs";import{c as te}from"./colors-BsmVIwfM.mjs";import"./acp-harness-probe-DAX_xywv.mjs";import{D as E,E as D,S as ne,T as O,_ as k,b as re,o as ie,v as A}from"./init-DIP7y9dQ.mjs";import{n as ae}from"./constants-EdMPlb3h.mjs";import{t as j}from"./is-object-ByG7RnjH.mjs";import"./loader-cpIcgfcU.mjs";import"./preview-2rjk4dI0.mjs";import{execSync as oe,spawnSync as M}from"node:child_process";import{basename as N,dirname as P,isAbsolute as se,join as F,relative as ce,resolve as I,sep as le}from"node:path";import{cpSync as ue,createWriteStream as de,existsSync as L,lstatSync as fe,mkdirSync as R,mkdtempSync as pe,readFileSync as z,readdirSync as me,readlinkSync as he,rmSync as ge,statSync as _e,writeFileSync as B}from"node:fs";import{arch as ve,freemem as ye,homedir as be,hostname as xe,platform as Se,release as Ce,tmpdir as we,totalmem as Te,type as Ee,uptime as De}from"node:os";import{realpath as V}from"node:fs/promises";import{createHash as Oe}from"node:crypto";var H=m();const ke=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function Ae(e,t,n=f){if(e!==void 0&&!ke.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let je=null;function Me(e){je=e}function Ne(){return je??process.cwd()}function Pe(){return F(be(),`.ok`,`bug-reports`)}function Fe(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=Pe(),r=`${t}-bugreport`,i=F(n,`${r}.zip`);for(let e=2;L(i);e+=1)i=F(n,`${r}-${e}.zip`);return i}function Ie(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let e=z(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return L(F(e,`.ok`))?Oe(`sha256`).update(I(e)).digest(`hex`).slice(0,12):null}function Le(){let e={timestamp:new Date().toISOString(),platform:Se(),osType:Ee(),osRelease:Ce(),hostname:`[redacted]`,uptime:De(),freeMem:ye(),totalMem:Te(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=oe(`sw_vers -productVersion 2>/dev/null`,o({encoding:`utf8`})).trim()}catch{}try{let t=F(__dirname,`..`,`..`,`package.json`);L(t)&&(e.okVersion=JSON.parse(z(t,`utf8`)).version)}catch{}return e}function Re(e,t){return ze(e,t).files}function ze(e,t){if(!L(t))return{files:[]};let n=me(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>F(t,e));if(e&&n.length>0){let t=n.filter(t=>{try{return z(t,`utf8`).includes(`"project":"${e}"`)}catch{return!0}});t.length>0&&(n=t)}return{files:n}}function Be(e){let t=F(e,`.ok`,`local`);return L(t)?{files:[`server.lock`,`last-spawn-error.log`,n].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Ve(e){let t=F(e,`.ok`,`local`,`logs`);return L(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function He(e){if(e.redact){let{redacted:t,patterns:n,lineCount:r}=i(e.content);e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name),n.length>0&&e.redactions.push({file:e.name,lineCount:r,patterns:n})}else e.zipfile.addBuffer(Buffer.from(e.content,`utf8`),e.name),e.bundleFiles.push(e.name)}function U(e){for(let t of e.files)try{He({zipfile:e.zipfile,name:`${e.prefix}/${N(t)}`,content:z(t,`utf8`),redact:e.redact,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function Ue(t){let{redact:n,outputPath:r,logger:i}=t,o=t.userLogsDir??F(be(),`.ok`,`logs`),s=t.projectDir?Ie(t.projectDir,i):null;R(P(r),{recursive:!0}),i?.info({projectSlug:s},`gathering diagnostic data`);let c=Le();c.desktop=t.desktop??null;let{files:l}=ze(s,o),{files:u}=t.projectDir?Be(t.projectDir):{files:[]},{files:d}=t.projectDir?Ve(t.projectDir):{files:[]};i?.info({logFileCount:l.length,lockFileCount:u.length,localSinkFileCount:d.length},`files collected`);let f=[],p=[],{ZipFile:m}=await import(`./yazl-vwTkB7U0.mjs`).then(t=>e(t.default,1)),h=new m;U({zipfile:h,files:l,prefix:`logs`,redact:n,bundleFiles:p,redactions:f,logger:i}),U({zipfile:h,files:u,prefix:`lockdir`,redact:n,bundleFiles:p,redactions:f,logger:i}),U({zipfile:h,files:d,prefix:`local-logs`,redact:n,bundleFiles:p,redactions:f,logger:i});for(let e of t.extraFiles??[])try{let t=z(e.sourcePath),n=`extra/${e.zipName??N(e.sourcePath)}`;h.addBuffer(t,n),p.push(n)}catch(t){i?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&He({zipfile:h,name:`note.txt`,content:t.note,redact:n,bundleFiles:p,redactions:f});let g=JSON.stringify(c,null,2);h.addBuffer(Buffer.from(g,`utf8`),`sysinfo.json`),p.push(`sysinfo.json`);let _={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:s,files:p,redactions:f,sysinfo:c};h.addBuffer(Buffer.from(JSON.stringify(_,null,2),`utf8`),`MANIFEST.json`);let v=f.reduce((e,t)=>e+t.lineCount,0),y=[`# Bug Report Bundle`,``,`Generated: ${_.generatedAt}`,`Project: ${s??`(unscoped)`}`,`Discipline version: ${_.disciplineVersion}`,``,`## Contents`,``,...p.map(e=>`- ${e}`),``,`## Privacy`,``,...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${a.join(`, `)}`,v>0?`${v} line(s) were scrubbed across ${f.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,``,`This bundle is safe to attach to a GitHub issue.`]:[`Redaction was disabled for this bundle; file contents are unmodified.`]].join(`
|
|
2
2
|
`);h.addBuffer(Buffer.from(y,`utf8`),`README.md`),h.end();let b=de(r);return h.outputStream.pipe(b),await new Promise((e,t)=>{b.on(`close`,e),b.on(`error`,t)}),i?.info({bundlePath:r,fileCount:p.length,redactionCount:v},`bundle written`),{zipPath:r,summary:{projectSlug:s,files:p,redactions:f,redactedLineCount:v,generatedAt:_.generatedAt}}}var We=e(x(),1),W=e(te(),1);function G(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function Ge(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function K(e,t){if(typeof e==`string`)return G(e,t.contentDir);if(Array.isArray(e))return e.map(e=>K(e,t));if(!Ge(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=K(i,t);return n}function Ke(e,t){let n=z(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
|
|
3
3
|
`),i=n.split(`
|
|
4
4
|
`),a=[];for(let e=0;e<i.length;e++){let n=i[e]??``;if(!(e===i.length-1&&n===``)){if(n.length===0){a.push(``);continue}try{let e=K(JSON.parse(n),t);a.push(JSON.stringify(e))}catch{a.push(n)}}}B(e,r?`${a.join(`
|
|
@@ -7,7 +7,7 @@ import{o as e}from"./chunk-DTipWd-i.mjs";import{Ao as t,X as n,Z as r,ms as i,ps
|
|
|
7
7
|
`)?`
|
|
8
8
|
`:``;B(e,`${JSON.stringify(r,null,2)}${i}`)}catch{let r=G(n,t.contentDir);r!==n&&B(e,r)}}function Je(e,t){let n=z(e,`utf-8`),r=G(n,t.contentDir);r!==n&&B(e,r)}function Ye(e){try{return me(e,{withFileTypes:!0}).filter(e=>e.isFile()).map(t=>F(e,t.name))}catch{return[]}}const Xe=new Set([`agent-presence.json`,`agent-effects.json`,`runtime.json`]);function Ze(e){return/\.log\.\d+$/.test(e)}function Qe(e){return e.endsWith(`.jsonl`)||e.endsWith(`.log`)||Ze(e)}function $e(e){let t={contentDir:e.contentDir};for(let n of[`telemetry`,`logs`,`process`])for(let r of Ye(F(e.stagingDir,n)))Qe(r)?Ke(r,t):r.endsWith(`.json`)?qe(r,t):Je(r,t);for(let n of Ye(F(e.stagingDir,`state`))){let e=N(n);n.endsWith(`.jsonl`)?Ke(n,t):Xe.has(e)?qe(n,t):Je(n,t)}}const et=[`.ok`,`local`,`telemetry`],tt=[`.ok`,`local`,`logs`],nt=[`.ok`,`local`,`loss-capture`],rt=`spans-current.jsonl`,it=`spans-prev.jsonl`,at=`server-current.jsonl`,ot=`server-prev.jsonl`,st=`loss-current.jsonl`,ct=`loss-prev.jsonl`;function lt(e){return F(e,...et,rt)}function ut(e){return F(e,...et,it)}function dt(e){return F(e,...tt,at)}function ft(e){return F(e,...tt,ot)}function pt(e){return F(e,...nt,st)}function mt(e){return F(e,...nt,ct)}const q=1e3;async function ht(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-presence`,{signal:AbortSignal.timeout(q)});return t.ok?await t.text():null}catch{return null}}async function gt(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-effects`,{signal:AbortSignal.timeout(q)});return t.ok?await t.text():null}catch{return null}}async function _t(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/watcher-recent`,{signal:AbortSignal.timeout(q)});return t.ok?await t.text():null}catch{return null}}function vt(e){try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return null;let n=t.decisions;return Array.isArray(n)?n.length===0?``:`${n.map(e=>JSON.stringify(e)).join(`
|
|
9
9
|
`)}\n`:null}catch{return null}}function yt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=M(`git`,[`-C`,t,`log`,`--oneline`,`-50`],o({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function bt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=M(`git`,[`-C`,t,`for-each-ref`,`--sort=-creatordate`,`--count=50`,`--format=%(refname)%09%(creatordate:iso-strict)%09%(contents:subject)`,`refs/checkpoints/`],o({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function xt(){let e=process.env.OK_DESKTOP_VERSION,t=process.env.OK_DESKTOP_PACKAGED,n=process.env.OK_DESKTOP_CHANNEL;return e===void 0||t===void 0||n===void 0?null:{electronVersion:e,packaged:t===`1`||t.toLowerCase()===`true`,channel:n}}function St(){return{nodeVersion:process.version,platform:Se(),arch:ve()}}function Ct(){return process.env.OTEL_SDK_DISABLED===`false`}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function wt(e){if(!L(e))return{};let t;try{t=(0,H.parse)(z(e,`utf-8`))}catch(t){return console.warn(`[ok diagnose bundle] failed to parse ${e} for manifest config; manifest will report schema defaults. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!J(t))return{};let n=t.telemetry;if(!J(n))return{};let r=n.localSink;return J(r)?r:{}}function Tt(e){return typeof e==`boolean`?e:void 0}function Et(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Y(e){if(J(e))return Et(e.maxBytes)}function Dt(e){let t=wt(h(`project`,e)),n=wt(h(`project-local`,e));return{enabled:Tt(n.enabled)??Tt(t.enabled)??!0,spansMaxBytes:Y(n.spans)??Y(t.spans)??52428800,logsMaxBytes:Y(n.logs)??Y(t.logs)??26214400}}function Ot(e){return Oe(`sha256`).update(e).digest(`hex`)}function kt(e){let t=z(e),n=0;for(let e=0;e<t.length;e++)t[e]===10&&n++;return n}function At(e){let t=z(e,`utf-8`),n=`"doc.name"`,r=0,i=t.indexOf(n);for(;i!==-1;)r++,i=t.indexOf(n,i+10);return r}function X(e,t){return L(e)?(R(P(t),{recursive:!0}),ue(e,t),!0):!1}function jt(e){let t=[],n=e=>{let r=me(e,{withFileTypes:!0});for(let i of r){let r=F(e,i.name);i.isDirectory()?n(r):i.isFile()&&t.push(r)}};return n(e),t.sort()}const Mt=new Set([`.jsonl`]);function Nt(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Mt.has(e.slice(t))}const Pt=new Set([`.jsonl`,`.json`,`.txt`,`.log`,`.lock`]);function Ft(e){if(Ze(e))return!0;let t=e.lastIndexOf(`.`);return t===-1?!1:Pt.has(e.slice(t))}function It(e){let t=[];for(let n of jt(e)){let r=Lt(e,n);if(!Ft(r))continue;let{redacted:a,patterns:o,lineCount:s}=i(z(n,`utf-8`));o.length!==0&&(B(n,a),t.push({file:r,lineCount:s,patterns:o}))}return{redactions:t,redactedLineCount:t.reduce((e,t)=>e+t.lineCount,0)}}function Lt(e,t){return ce(e,t).split(le).join(`/`)}async function Rt(e){let t=I(e.contentDir),i=I(e.projectDir??e.contentDir),a=e.deps??{},o=a.fetchAgentPresence??ht,s=a.fetchAgentEffects??gt,c=a.fetchWatcherRecent??_t,l=a.readShadowHead??yt,u=a.readCheckpointRefs??bt,d=a.now??(()=>new Date),f=a.okVersion??(()=>ae),p=a.readDesktopEnv??xt,m=a.readRuntime??St,h=a.isOtlpPushEnabled??Ct,g=pe(F(we(),`ok-bundle-`));try{R(F(g,`telemetry`),{recursive:!0}),R(F(g,`logs`),{recursive:!0}),R(F(g,`state`),{recursive:!0}),X(lt(i),F(g,`telemetry`,rt)),X(ut(i),F(g,`telemetry`,it)),X(dt(i),F(g,`logs`,at)),X(ft(i),F(g,`logs`,ot));for(let t of e.userLogFiles??[])X(t,F(g,`logs`,N(t)));let _=F(i,`.ok`,`local`),v=F(_,`server.lock`),y=`not-running`,b=`no server.lock`,x=null;if(L(v)){X(v,F(g,`state`,`server.lock`));try{let e=z(v,`utf-8`),t=JSON.parse(e);typeof t.port==`number`?x=t.port:b=`lock present but no port`}catch{b=`lock present but unparseable`}}if(x!==null){let e=await o(x);e===null?b=`agent-presence endpoint at :${x} unreachable`:(B(F(g,`state`,`agent-presence.json`),e),y=`running`,b=``);let t=await s(x);t!==null&&B(F(g,`state`,`agent-effects.json`),t);let n=await c(x);if(n!==null){let e=vt(n);e!==null&&B(F(g,`state`,`watcher-recent.jsonl`),e)}}let S=l(t);S!==null&&B(F(g,`state`,`shadow-head.txt`),S);let C=u(t);C!==null&&B(F(g,`state`,`checkpoint-refs.txt`),C),X(pt(i),F(g,`state`,st)),X(mt(i),F(g,`state`,ct)),X(F(_,`last-spawn-error.log`),F(g,`state`,`last-spawn-error.log`)),X(F(_,r),F(g,`state`,r)),X(F(_,n),F(g,`state`,n));let w=m(),T=p(),ee={ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:T}};B(F(g,`state`,`runtime.json`),`${JSON.stringify(ee,null,2)}\n`);let te=y===`running`?`running
|
|
10
|
-
`:`not-running (${b})\n`;if(B(F(g,`state`,`server-status.txt`),te),e.processDir&&L(e.processDir)){let t=F(g,`process`);R(t,{recursive:!0}),ue(e.processDir,t,{recursive:!0})}let E=e.redact===!0;E&&$e({stagingDir:g,contentDir:t}),e.note&&B(F(g,`note.txt`),e.note);let D=null;e.scrubSecrets===!0&&(D=It(g));for(let t of e.extraFiles??[])X(t.sourcePath,F(g,`extra`,t.zipName??N(t.sourcePath)))||a.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let ne=Dt(i),O=jt(g),k=[],re=0,ie=0;for(let e of O){let t=Lt(g,e),n=_e(e).size,r=Nt(t)?kt(e):0;k.push({path:t,bytes:n,lines:r}),re+=n,t.startsWith(`telemetry/`)&&Nt(t)&&(ie+=At(e))}let A={applied:E};D!==null&&(A.secretScrub=D);let ae={schemaVersion:2,createdAt:d().toISOString(),ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:T},contentDir:{pathSha256:Ot(t),absolutePath:E?`<CONTENT_DIR>`:t},telemetry:{localSink:ne,otlpPushEnabled:h()},redaction:A,serverStatus:y,files:k};B(F(g,`manifest.json`),`${JSON.stringify(ae,null,2)}\n`);let j=O.some(e=>{try{return z(e,`utf-8`).includes(t)}catch{return!1}}),oe={totalBytes:re,fileCount:k.length,docNameCount:ie,contentDirVisible:j,redacted:E},M=!1;return{stagingDir:g,manifest:ae,summary:oe,cleanup:()=>{M||(M=!0,ge(g,{recursive:!0,force:!0}))}}}catch(e){throw ge(g,{recursive:!0,force:!0}),e}}async function zt(e){let{collected:t,outputPath:n}=e,r=P(n);if(!L(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);let i=new We.ZipFile,a=jt(t.stagingDir);for(let e of a){let n=Lt(t.stagingDir,e);i.addFile(e,n)}i.end();let o=de(n);return i.outputStream.pipe(o),await new Promise((e,t)=>{o.on(`close`,e),o.on(`error`,t),i.outputStream.on(`error`,t)}),n}function Bt(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let t=(0,H.parse)(z(n,`utf-8`)),r=j(t)?t.content:void 0,i=j(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return I(e,i)}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml; falling back to project root as content dir`)}return I(e)}async function Vt(e,t,n){let r=Ie(t,e.logger),i=await Rt({contentDir:Bt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,userLogFiles:Re(r,e.userLogsDir??F(be(),`.ok`,`logs`)),deps:{readDesktopEnv:n,logger:e.logger}});try{R(P(e.outputPath),{recursive:!0}),await zt({collected:i,outputPath:e.outputPath});let t=i.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:r,files:i.manifest.files.map(e=>e.path),redactions:t?.redactions??[],redactedLineCount:t?.redactedLineCount??0,generatedAt:i.manifest.createdAt}}}finally{i.cleanup()}}async function Ht(e){let{projectDir:t}=e,n=e.readDesktopEnv??xt;if(e.level===`full`&&t!==void 0)return Vt(e,t,n);let{zipPath:r,summary:i}=await Ue({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function Z(e,t,n={}){let r=v(e,t);if(!L(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(z(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!_(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??b)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??y())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??xe();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function Ut(e){return e.replace(/:\d+$/,``)}function Wt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function Gt(e){let n;try{n=new URL(e)}catch{return null}if(n.protocol!==`https:`)return null;let r=t(n.hostname);if(r===null)return null;let i=n.pathname.split(`/`).filter(e=>e.length>0);if(i.length<5||i[2]!==`blob`)return null;let a,o,s,c;try{a=decodeURIComponent(i[0]),o=decodeURIComponent(i[1]),s=decodeURIComponent(i[3]),c=i.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!a||!o||!s||c.length===0||c.some(e=>e.length===0)?null:{host:r,owner:a,repo:o,branch:s,path:c.join(`/`)}}function Kt(e){let n;try{n=new URL(e)}catch{return null}if(n.protocol!==`https:`)return null;let r=t(n.hostname);if(r===null)return null;let i=n.pathname.split(`/`);if(i.length<5||i[0]!==``||i[3]!==`tree`)return null;let a=i.slice(5);a.length===1&&a[0]===``&&a.pop();let o,s,c,l;try{o=decodeURIComponent(i[1]),s=decodeURIComponent(i[2]),c=decodeURIComponent(i[4]),l=a.map(e=>decodeURIComponent(e))}catch{return null}return!o||!s||!c||l.some(e=>e.length===0)?null:{host:r,owner:o,repo:s,branch:c,path:l.join(`/`)}}function qt(e){let t=Gt(e);if(t)return{kind:`doc`,...t};let n=Kt(e);return n?{kind:`folder`,...n}:null}const Jt=`# >>> open-knowledge cli >>>`,Yt=`# <<< open-knowledge cli <<<`,Xt=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Zt(e){return F(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Qt={existsSync:e=>L(e),readFileSync:(e,t)=>z(e,t),lstatSync:e=>fe(e),readlinkSync:e=>he(e)};function $t(e,t=Qt){let n=Zt(e);if(!t.existsSync(n))return null;try{let e=JSON.parse(t.readFileSync(n,`utf8`));return e?.version===1?e:null}catch{return null}}function en(e){let t=e.replace(Xt,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function tn(e,t,n=Qt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function nn(e){return
|
|
10
|
+
`:`not-running (${b})\n`;if(B(F(g,`state`,`server-status.txt`),te),e.processDir&&L(e.processDir)){let t=F(g,`process`);R(t,{recursive:!0}),ue(e.processDir,t,{recursive:!0})}let E=e.redact===!0;E&&$e({stagingDir:g,contentDir:t}),e.note&&B(F(g,`note.txt`),e.note);let D=null;e.scrubSecrets===!0&&(D=It(g));for(let t of e.extraFiles??[])X(t.sourcePath,F(g,`extra`,t.zipName??N(t.sourcePath)))||a.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let ne=Dt(i),O=jt(g),k=[],re=0,ie=0;for(let e of O){let t=Lt(g,e),n=_e(e).size,r=Nt(t)?kt(e):0;k.push({path:t,bytes:n,lines:r}),re+=n,t.startsWith(`telemetry/`)&&Nt(t)&&(ie+=At(e))}let A={applied:E};D!==null&&(A.secretScrub=D);let ae={schemaVersion:2,createdAt:d().toISOString(),ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:T},contentDir:{pathSha256:Ot(t),absolutePath:E?`<CONTENT_DIR>`:t},telemetry:{localSink:ne,otlpPushEnabled:h()},redaction:A,serverStatus:y,files:k};B(F(g,`manifest.json`),`${JSON.stringify(ae,null,2)}\n`);let j=O.some(e=>{try{return z(e,`utf-8`).includes(t)}catch{return!1}}),oe={totalBytes:re,fileCount:k.length,docNameCount:ie,contentDirVisible:j,redacted:E},M=!1;return{stagingDir:g,manifest:ae,summary:oe,cleanup:()=>{M||(M=!0,ge(g,{recursive:!0,force:!0}))}}}catch(e){throw ge(g,{recursive:!0,force:!0}),e}}async function zt(e){let{collected:t,outputPath:n}=e,r=P(n);if(!L(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);let i=new We.ZipFile,a=jt(t.stagingDir);for(let e of a){let n=Lt(t.stagingDir,e);i.addFile(e,n)}i.end();let o=de(n);return i.outputStream.pipe(o),await new Promise((e,t)=>{o.on(`close`,e),o.on(`error`,t),i.outputStream.on(`error`,t)}),n}function Bt(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let t=(0,H.parse)(z(n,`utf-8`)),r=j(t)?t.content:void 0,i=j(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return I(e,i)}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml; falling back to project root as content dir`)}return I(e)}async function Vt(e,t,n){let r=Ie(t,e.logger),i=await Rt({contentDir:Bt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,userLogFiles:Re(r,e.userLogsDir??F(be(),`.ok`,`logs`)),deps:{readDesktopEnv:n,logger:e.logger}});try{R(P(e.outputPath),{recursive:!0}),await zt({collected:i,outputPath:e.outputPath});let t=i.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:r,files:i.manifest.files.map(e=>e.path),redactions:t?.redactions??[],redactedLineCount:t?.redactedLineCount??0,generatedAt:i.manifest.createdAt}}}finally{i.cleanup()}}async function Ht(e){let{projectDir:t}=e,n=e.readDesktopEnv??xt;if(e.level===`full`&&t!==void 0)return Vt(e,t,n);let{zipPath:r,summary:i}=await Ue({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function Z(e,t,n={}){let r=v(e,t);if(!L(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(z(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!_(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??b)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??y())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??xe();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function Ut(e){return e.replace(/:\d+$/,``)}function Wt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function Gt(e){let n;try{n=new URL(e)}catch{return null}if(n.protocol!==`https:`)return null;let r=t(n.hostname);if(r===null)return null;let i=n.pathname.split(`/`).filter(e=>e.length>0);if(i.length<5||i[2]!==`blob`)return null;let a,o,s,c;try{a=decodeURIComponent(i[0]),o=decodeURIComponent(i[1]),s=decodeURIComponent(i[3]),c=i.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!a||!o||!s||c.length===0||c.some(e=>e.length===0)?null:{host:r,owner:a,repo:o,branch:s,path:c.join(`/`)}}function Kt(e){let n;try{n=new URL(e)}catch{return null}if(n.protocol!==`https:`)return null;let r=t(n.hostname);if(r===null)return null;let i=n.pathname.split(`/`);if(i.length<5||i[0]!==``||i[3]!==`tree`)return null;let a=i.slice(5);a.length===1&&a[0]===``&&a.pop();let o,s,c,l;try{o=decodeURIComponent(i[1]),s=decodeURIComponent(i[2]),c=decodeURIComponent(i[4]),l=a.map(e=>decodeURIComponent(e))}catch{return null}return!o||!s||!c||l.some(e=>e.length===0)?null:{host:r,owner:o,repo:s,branch:c,path:l.join(`/`)}}function qt(e){let t=Gt(e);if(t)return{kind:`doc`,...t};let n=Kt(e);return n?{kind:`folder`,...n}:null}const Jt=`# >>> open-knowledge cli >>>`,Yt=`# <<< open-knowledge cli <<<`,Xt=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Zt(e){return F(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Qt={existsSync:e=>L(e),readFileSync:(e,t)=>z(e,t),lstatSync:e=>fe(e),readlinkSync:e=>he(e)};function $t(e,t=Qt){let n=Zt(e);if(!t.existsSync(n))return null;try{let e=JSON.parse(t.readFileSync(n,`utf8`));return e?.version===1?e:null}catch{return null}}function en(e){let t=e.replace(Xt,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function tn(e,t,n=Qt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function nn(e){return C(e)||ee(e)||ne(e)}const rn=10*1024*1024;function an(e,t,n,r){let i=ie(e,t,n,r);if(i.kind===`absent`||i.kind===`no-entry`)return{kind:`not-present`};if(i.kind===`decline`)return{kind:`declined`,reason:i.reason};if(!nn(i.entry))return{kind:`left-foreign`};let a;try{a=r??e.configPath(t,n)}catch{return{kind:`not-present`}}let o=e.serverName(t);return e.format===`file`?(ge(a,{force:!0}),{kind:`removed`}):e.format===`toml`?cn(a,o):e.format===`yaml`?sn(a,e.topLevelKey,o):on(a,e.topLevelKey,e.serverMapSubKey,o)}function on(e,t,n,r){let i;try{i=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(i,`utf-8`)>rn)return{kind:`declined`,reason:`oversize`};let{text:a,changed:o}=E(i,k(t,n,r));return o?(g(e,a,{mode:O(e)}),{kind:`removed`}):{kind:`not-present`}}function sn(e,t,n){let r;try{r=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(r,`utf-8`)>rn)return{kind:`declined`,reason:`oversize`};let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=(0,H.parseDocument)(a);if(o.errors.length>0)return{kind:`declined`,reason:`unparseable`};let s=[t,n];if(!o.hasIn(s))return{kind:`not-present`};o.deleteIn(s);let c=o.toString(),l=D(a);a.trim()===``||a.endsWith(`
|
|
11
11
|
`)?c.endsWith(`
|
|
12
12
|
`)||(c=`${c}\n`):c=c.replace(/\n+$/,``),l&&(c=c.replace(/\r\n/g,`
|
|
13
13
|
`).replace(/\n/g,`\r
|
|
@@ -16,5 +16,5 @@ import{o as e}from"./chunk-DTipWd-i.mjs";import{Ao as t,X as n,Z as r,ms as i,ps
|
|
|
16
16
|
`)||(l=`${l}\n`):l=l.replace(/\n+$/,``),o&&(l=l.replace(/\r\n/g,`
|
|
17
17
|
`).replace(/\n/g,`\r
|
|
18
18
|
`));let u=`${i?``:``}${l}`;return u!==r&&g(e,u,{mode:O(e)}),{kind:`removed`}}function ln(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function un(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function dn(e,t,n,r,i,a){if(t.status===`missing`||t.status===`corrupt`)return null;let o=t.lock,s=null;if(n.status!==`missing`&&n.status!==`corrupt`){let e=n.lock;s={port:e.port,status:n.status,pid:e.pid,startedAt:e.startedAt,usage:a}}return{directory:o.worktreeRoot,server:{port:o.port,status:t.status,pid:o.pid,startedAt:o.startedAt,usage:i},ui:s,hostname:o.hostname,lockPath:t.lockPath,binary:r==null?null:u(r),command:r,isDesktop:ln(r)}}function fn(e){return e.ui==null?!1:e.ui.status===`alive`||e.ui.status===`foreign-host`}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:t===`dead-pid`&&fn(e)?`ui-orphan`:`stale`}const pn=new Set([`running`,`desktop`,`foreign`,`ui-orphan`]);function mn(e){switch(e){case`running`:return W.default.green(e);case`desktop`:return W.default.blue(e);case`foreign`:return W.default.cyan(e);case`ui-orphan`:return W.default.magenta(e);case`stale`:return W.default.yellow(e)}}function hn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function gn(e){return`${hn(e.server.usage)} | ${hn(e.ui?.usage??null)}`}function _n(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null||e.ui.status===`dead-pid`?`—`:String(e.ui.port)}`}function vn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>{let t=Q(e),n=t===`ui-orphan`&&e.ui!=null?e.ui.pid:e.server.pid;return[e.directory,_n(e),gn(e),t,String(n),un(e.server.startedAt),e.binary??`—`]}),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=mn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=W.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
|
|
19
|
-
`)}async function yn(e={}){let t=e.discover??l,n=e.inspect??Z,r=e.log??(e=>console.log(e)),i=e.resolveCommand??c,a=e.resolveUsage??s,o=await t(),u=[];for(let e of o){let t=n(e,`server`),r=n(e,`ui`),o=dn(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:a(r.lock.pid));o!=null&&u.push(o)}if(e.json){let e=u.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(vn(e.all?u:u.filter(e=>pn.has(Q(e)))))}function bn(){return new S(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await yn({all:t.all===!0||e===`all`,json:t.json===!0})})}function xn(e,t,n={}){let r=n.isAlive??b,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function Sn(e){let t=e.inspect??(t=>Z(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=xn(t(`server`),t(`ui`),{isAlive:e.isAlive});if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function Cn(e,t=b){let n=await l(),r=null;for(let i of n){let n=Z(i,`server`),a=Z(i,`ui`);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function wn(e){let t=Sn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function Tn(e){return new S(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=Sn({lockDir:d(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await yn({});return}if(n===`all`){let e=await l();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=Z(n,`server`),r=Z(n,`ui`);!$(e,b)&&!$(r,b)||(wn(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await Cn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}wn(t);return}wn(d(I(Ne(),n)))})}function En(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function Dn(e,n){let r,i;try{r=await V(I(e)),i=await V(I(P(e)))}catch{return{kind:`not-git`}}if(!On(r,i))return{kind:`symlink-escape`};let a=F(r,`.git`),o;try{o=_e(a)}catch{return{kind:`not-git`}}if(o.isDirectory()){let e;try{e=await V(a)}catch{return{kind:`not-git`}}if(!On(e,r))return{kind:`symlink-escape`}}else if(!o.isFile())return{kind:`not-git`};let s=p(r);if(s.kind!==`repository`)return{kind:`not-git`};let c=s.repository.readRemoteUrl(`origin`);if(c.kind===`unreadable`)return{kind:`not-git`};if(c.kind===`absent`)return c.reason===`config-missing`?{kind:`not-git`}:{kind:`no-origin`};let l=c.url,u=Wt(l);if(u===null)return{kind:`non-github`};let d=t(u.hostname);if(d===null)return{kind:`non-github`};let f=d===n.host.toLowerCase(),m=u.owner.toLowerCase()===n.owner.toLowerCase(),h=u.name.toLowerCase()===n.repo.toLowerCase();return!f&&m&&h?{kind:`wrong-host`,actualHost:d}:!f||!m||!h?{kind:`wrong-repo`,actualOwner:u.owner,actualRepo:u.name}:{kind:`ok`,gitRemoteUrl:`https://${d}/${u.owner}/${u.name}.git`}}function On(e,t){if(e===t)return!0;let n=ce(t,e);return n.length>0&&!n.startsWith(`..`)&&!se(n)}const kn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=A(e,t,n,void 0,r);return i.action===`written`||i.action===`overwritten`?{integration:`mcp-config`,editorId:e.id,action:i.action,path:i.configPath}:i.action===`failed`?{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:i.error??`unknown failure`}:i.action===`declined`?{integration:`mcp-config`,editorId:e.id,action:`declined`,path:i.configPath,...i.declineReason===void 0?{}:{reason:i.declineReason}}:{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:`unexpected project-scope action: ${i.action}`}}catch(t){return{integration:`mcp-config`,editorId:e.id,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}},{id:`project-skill`,write(e,t,n){try{let r=
|
|
20
|
-
//# sourceMappingURL=src-
|
|
19
|
+
`)}async function yn(e={}){let t=e.discover??l,n=e.inspect??Z,r=e.log??(e=>console.log(e)),i=e.resolveCommand??c,a=e.resolveUsage??s,o=await t(),u=[];for(let e of o){let t=n(e,`server`),r=n(e,`ui`),o=dn(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:a(r.lock.pid));o!=null&&u.push(o)}if(e.json){let e=u.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(vn(e.all?u:u.filter(e=>pn.has(Q(e)))))}function bn(){return new S(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await yn({all:t.all===!0||e===`all`,json:t.json===!0})})}function xn(e,t,n={}){let r=n.isAlive??b,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function Sn(e){let t=e.inspect??(t=>Z(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=xn(t(`server`),t(`ui`),{isAlive:e.isAlive});if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function Cn(e,t=b){let n=await l(),r=null;for(let i of n){let n=Z(i,`server`),a=Z(i,`ui`);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function wn(e){let t=Sn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function Tn(e){return new S(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=Sn({lockDir:d(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await yn({});return}if(n===`all`){let e=await l();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=Z(n,`server`),r=Z(n,`ui`);!$(e,b)&&!$(r,b)||(wn(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await Cn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}wn(t);return}wn(d(I(Ne(),n)))})}function En(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function Dn(e,n){let r,i;try{r=await V(I(e)),i=await V(I(P(e)))}catch{return{kind:`not-git`}}if(!On(r,i))return{kind:`symlink-escape`};let a=F(r,`.git`),o;try{o=_e(a)}catch{return{kind:`not-git`}}if(o.isDirectory()){let e;try{e=await V(a)}catch{return{kind:`not-git`}}if(!On(e,r))return{kind:`symlink-escape`}}else if(!o.isFile())return{kind:`not-git`};let s=p(r);if(s.kind!==`repository`)return{kind:`not-git`};let c=s.repository.readRemoteUrl(`origin`);if(c.kind===`unreadable`)return{kind:`not-git`};if(c.kind===`absent`)return c.reason===`config-missing`?{kind:`not-git`}:{kind:`no-origin`};let l=c.url,u=Wt(l);if(u===null)return{kind:`non-github`};let d=t(u.hostname);if(d===null)return{kind:`non-github`};let f=d===n.host.toLowerCase(),m=u.owner.toLowerCase()===n.owner.toLowerCase(),h=u.name.toLowerCase()===n.repo.toLowerCase();return!f&&m&&h?{kind:`wrong-host`,actualHost:d}:!f||!m||!h?{kind:`wrong-repo`,actualOwner:u.owner,actualRepo:u.name}:{kind:`ok`,gitRemoteUrl:`https://${d}/${u.owner}/${u.name}.git`}}function On(e,t){if(e===t)return!0;let n=ce(t,e);return n.length>0&&!n.startsWith(`..`)&&!se(n)}const kn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=A(e,t,n,void 0,r);return i.action===`written`||i.action===`overwritten`?{integration:`mcp-config`,editorId:e.id,action:i.action,path:i.configPath}:i.action===`failed`?{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:i.error??`unknown failure`}:i.action===`declined`?{integration:`mcp-config`,editorId:e.id,action:`declined`,path:i.configPath,...i.declineReason===void 0?{}:{reason:i.declineReason}}:{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:`unexpected project-scope action: ${i.action}`}}catch(t){return{integration:`mcp-config`,editorId:e.id,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}},{id:`project-skill`,write(e,t,n){try{let r=T(e,t,{home:n.home});return{integration:`project-skill`,editorId:e.id,action:r.action,...r.path?{path:r.path}:{},...r.error?{error:r.error}:{}}}catch(t){return{integration:`project-skill`,editorId:e.id,action:`failed`,error:t instanceof Error?t.message:String(t)}}}}];function An(e,t,n={},r=kn){let i=[];for(let a of t){let t=w[a];for(let a of r)i.push(a.write(t,e,n))}return i}function jn(e,t,n={}){return{integrations:An(e,t,n)}}export{Fe as C,Ae as D,Me as E,zt as S,Ne as T,Kt as _,Tn as a,Ht as b,Jt as c,tn as d,Zt as f,qt as g,Gt as h,Sn as i,Xt as l,en as m,Dn as n,bn as o,$t as p,En as r,an as s,jn as t,Yt as u,Wt as v,Pe as w,Rt as x,Z as y};
|
|
20
|
+
//# sourceMappingURL=src-CrCGhUc5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Do as e,Eo as t,Ho as n,P as r,R as i,To as a,Wo as o,_s as s,d as c,es as l,l as u}from"./src-vPHpv2Pv.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,Cr as k,Ct as A,D as j,Di as M,Dn as N,Dt as P,E as F,Ei as I,En as L,Et as R,F as z,Fi as B,Fn as V,Fr as H,Ft as U,G as W,Gi as G,Gn as K,Gr as q,Gt as J,H as Y,Hi as X,Hn as Z,Hr as Q,Ht as $,I as ee,Ii as te,In as ne,Ir as re,It as ie,J as ae,Ji as oe,Jn as se,Jr as ce,Jt as le,K as ue,Ki as de,Kn as fe,Kr as pe,Kt as me,L as he,Li as ge,Ln as _e,Lr as ve,Lt as ye,M as be,Mi as xe,Mn as Se,Mr as Ce,Mt as we,N as Te,Ni as Ee,Nn as De,Nr as Oe,Nt as ke,O as Ae,Oi as je,On 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,_n as It,_r as Lt,_t as Rt,a as zt,aa as Bt,ai as Vt,an as Ht,ar as Ut,at as Wt,b as Gt,bi as Kt,bn as qt,br as Jt,bt as Yt,c as Xt,ca as Zt,ci as Qt,cn as $t,cr as en,ct 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,gi as bn,gn as xn,gr as Sn,gt as Cn,h as wn,ha as Tn,hi as En,hn as Dn,hr as On,ht as kn,i as An,ia as jn,ii as Mn,in as Nn,ir as Pn,it as Fn,j as In,ji as Ln,jn as Rn,jr as zn,jt as Bn,k as Vn,ki as Hn,kn as Un,kr as Wn,kt as Gn,l as Kn,la as qn,li as Jn,ln as Yn,lr as Xn,m as Zn,ma as Qn,mi as $n,mn as er,mr 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,vi as Jr,vn as Yr,vr as Xr,vt as Zr,w as Qr,wi as $r,wn as ei,wt as ti,x as ni,xi as ri,xn as ii,xr as ai,xt as oi,y as si,yi as ci,yn as li,yr as ui,yt as di,z as fi,zi as pi,zn as mi,zr as hi,zt as gi}from"./src-BexdiJ2F.mjs";import{C as _i,E as vi,T as yi,_ as bi,b as xi,c as Si,d as Ci,g as wi,i as Ti,l as Ei,m as Di,n as Oi,p as ki,s as Ai,t as ji,u as Mi,v as Ni,w as Pi,x as Fi,y as Ii}from"./fs-traced-B-x7hAhD.mjs";import{a as Li,d as Ri,f as zi,i as Bi,l as Vi,n as Hi,r as Ui,t as Wi,u as Gi}from"./logger-B7Z8XO-z.mjs";import{S as Ki,_ as qi,a as Ji,c as Yi,f as Xi,g as Zi,h as Qi,i as $i,l as ea,m as ta,n as na,o as ra,p as ia,r as aa,s as oa,t as sa,u as ca,v as la,x as ua}from"./server-lock-CiLY7g7M.mjs";export{Zt as AGENT_ID_MAX_LEN,qn as AGENT_ID_RE,$r as AGENT_WRITE_ORIGIN,Tn as AcpPermissionStore,mn as AcpRegistry,ri as AcpThreadManager,ci as AgentFocusBroadcaster,Jr as AgentPresenceBroadcaster,tt as AgentSessionCapacityError,I as AgentSessionManager,Cn as AutoStartDisabledError,Xn as BUNDLE_IDS,Kr as BUNDLE_SCOPE,sn as BUNDLE_SKILL_NAME,C as BacklinkIndex,te as CC1Broadcaster,o as CC1_CONTRACT_VERSION,Gr as CONFIG_FILENAME,Ie as CONFLICT_MARKER_RE,Oe as CURSOR_BUNDLE_PATHS_BY_PLATFORM,Pt as ConfigSchema,X as DEFAULT_CHECKPOINT_RETENTION,Dt as DEFAULT_EMBEDDINGS_DIMENSIONS,U as DEFAULT_PACK_ID,lt as DocumentDurabilityState,St as EMBEDDINGS_API_KEY_ENV,hr as FEATURED_AGENT_IDS,at as FILE_SYSTEM_WRITER,Ke as FILE_WATCHER_ORIGIN,st as FileEmbeddingsBackend,Nt as GIT_PREFLIGHT_FAIL_SPAN_NAME,ht as GIT_UPSTREAM_WRITER,yn as GitDirAccessError,h as GitNotAvailableError,un as GitTooOldError,Rt as HOCUSPOCUS_AUTH_REJECTION_REASONS,Zr as HocuspocusAuthRejection,di as HocuspocusAuthTokenSchema,hi as INSTALLED_AGENTS_SCHEMES,n as LINEAGE_EPOCH_KEY,We as LIVE_DERIVED_INDEX_DEBOUNCE_MS,ie as LOG_MD_TEMPLATE,rt as MANAGED_RENAME_ORIGIN,Xe as MAX_ACP_THREADS,M as MAX_AGENT_SESSIONS,Fr as MCP_CONNECTION_ID_HEADER,a as MCP_SERVER_NAME,je as MIN_EVICTABLE_IDLE_MS,zr as MIN_GIT_VERSION,Y as MISSING_OK_CONFIG_MESSAGE,Ft as MalformedGitPointerError,d as McpLogger,it as MissingOkConfigError,_ as OBSERVER_SYNC_ORIGIN,on as OK_OKIGNORE_TEMPLATE,t as ORPHAN_MODES,s as PROTOCOL_VERSION,Wi as PinoLogger,Yi as ProcessLockCollisionError,Kn as ProjectGitInitError,R as ROLLBACK_ORIGIN,gn as ROOT_GITIGNORE_TEMPLATE,Zi as RUNTIME_VERSION,an as RemoteConfigError,G as SERVICE_WRITER,Pn as SKILL_INSTALL_EVENTS_FILE_REL,r as SKILL_STATE_TARGETS,ye as STARTER_FOLDERS,Je as STARTER_FOLDER_FRONTMATTER_FILENAME,gi as STARTER_PACKS,T as STARTER_PACK_IDS,pt as STARTER_TEMPLATES,et as STATE_MANIFEST_FILENAME,qi as STATE_SCHEMA_VERSION,l as SYSTEM_DOC_NAME,Cr as SeedPrerequisiteError,le as SeedRootDirError,sa as ServerLockCollisionError,Ir as SingleFileNotAFileError,nr as SingleFileNotFoundError,wr as SingleFileNotMarkdownError,F as StateManifestError,mi as TagIndex,_n as USER_GLOBAL_BUNDLE_IDS,Z as UiLockCollisionError,P as __getShowAllWalkStatsForTesting,Ne as __resetShowAllWalkStatsForTesting,ea as acquireProcessLock,na as acquireServerLock,ot as acquireUiLock,Hn as applyAgentMarkdownWrite,Se as applyExternalChange,Re as applySeed,j as assertCompatibleStateManifest,ar as assertGitAvailable,qt as assertNeverDiskEvent,Kt as attachAcpThreadSocket,kn as attachIdleShutdown,qr as bootServer,xr as buildAndOpenSkill,_r as buildConfigYmlContent,ae as buildExecResult,D as buildOkMcpStdioCommand,fr as buildSkillZip,$ as buildStarterFolderFrontmatterYaml,de as buildWipTree,vr as bundleSkillMdPath,_t as canonicalProjectKey,ii as classifyEvents,ji as classifyFsPath,q as clearAllEmbeddingsKeys,He as clearContributors,ct as coercePackId,u as colorFromSeed,br as commitUpstreamImport,oe as commitWip,Tt as commitWipFromTree,Dr as compareSemver,Sn as composeEffectiveLinterConfig,Lt as composeFrontmatterSchemasConfig,V as containsConflictMarkers,Ze as contentHash,m as contributorCount,Pe as countShadowObjects,z as countStaleAgentWipRefs,ee as countWipRefs,Gn as createApiExtension,Qt as createAssetServeMiddleware,Wn as createContentFilter,y as createContentFilterAsync,pe as createEmbeddingsSecretStore,An as createEphemeralProjectDir,De as createExternalChangeHandler,pn as createFileLogger,fi as createLiveDerivedIndexExtension,ue as createMcpHttpHandler,w as createOsProbe,Te as createPersistenceExtension,E as createServer,In as createServerObserverExtension,Ee as createStreamingErrorWriter,Hi as createTestLogger,Sr as describeStoredEmbeddingsKey,vn as detectClaudeDesktopPresence,Nn as detectGit,Ae as detectProjectShape,se as detectUserSkillHosts,sr as discoverLockDirs,Jt as discoverMarkdownlintConfig,Ue as emitPreflightFailureSpan,wt as encodeDocName,yt as encodeFolderRoute,kt as encodeSkillRoute,Hr as ensureProjectGit,er as ensureProjectSkillGitignore,Fe as errorResponse,O as evictStaleTrackerEntries,b as extractHeadings,kr as extractOkBinaryPath,dt as extractWikiLinksFromMarkdown,Ht as fallbackPaths,nn as findEnclosingGitRoot,Yr as findEnclosingProjectRoot,ai as findNativeMarkdownlintFile,mr as flushFileLogger,Yt as formatAuthRejectionWire,ln as formatContributors,Rr as formatContributorsFrom,we as formatPackRationale,bt as gcCheckpointRefs,fn as getCurrentMcpLogger,Vt as getLocalDir,Zn as getLogFilePath,Ui as getLogger,wn as getLogsDir,la as getMachineId,Ii as getMeter,Tr as getMetrics,xi as getTracer,jn as handleCollabSocketError,Le as handleSpawnCursor,hn as hasForwardingHeaders,he as hasGcLogLatch,c as iconFromClientName,Bt as incrementCollabSocketFilteredError,lr as incrementServerObserverFire,Dn as initContent,At as initShadowRepo,Fi as initTelemetry,Gt as initToleranceTelemetryWriter,pr as installPrettyZodErrors,Bi as installTestLoggers,Et as installUserSkill,Wr as isAllowedApiOrigin,En as isAllowedWorkspaceHostHeader,ge as isConfigDoc,oi as isHocuspocusAuthRejectionReason,vt as isKnownPackId,Ge as isLinkIndexExcludedDoc,bn as isLoopbackAddress,pi as isManagedArtifactDoc,e as isOrphanMode,Ln as isPairedWriteOrigin,H as isPathWithinDir,ua as isProcessAlive,li as isProjectRoot,gr as isRemoteAdmitted,S as isReservedForUserTree,ei as isSelfWrite,ut as isSystemDoc,ni as isToleranceTelemetryEnabled,Ki as isValidLockPid,nt as lastKnownHash,Be as listRescueCheckpoints,J as listStarterPacks,Qn as loadCustomAgents,be as loadPrincipal,ca as lockFilePath,Li as loggerFactory,Vi as logsCurrentPath,Gi as logsPreviousPath,ce as makeLazyEmbeddingsKeyStore,aa as markServerLockDraining,mt as mountMcpAndApi,Oi as normalizeFsPath,tr as originGitHubHost,xn as packageVersionMajorMinor,$e as parseAuthRejectionWire,dr as parseGitVersion,A as parseHocuspocusAuthToken,W as parseKeepaliveConnectionId,L as pathToDocName,ke as planSeed,zt as prepareSingleFileOpen,Fn as processCommand,Wt as processUsage,xt as readAllTargets,jt as readBundleDecision,Qe as readOwnNativeRules,Xi as readProcessLock,ia as readProcessLockDetailed,x as readProjectHeadState,Q as readProjectLocalSemanticConfig,$i as readServerLock,Ve as readServerPackageVersion,p as readSkillInstallStateSnapshot,Vn as readStateManifest,dn as readTargetRecordedAt,Br as readTargetVersion,gt as readUiLock,ne as reconcile,ir as recordContributor,Ut as recordSkillInstallEvent,yr as registerAllTools,N as registerWrite,ta as releaseProcessLock,Ji as releaseServerLock,K as releaseUiLock,Me as removeLastKnownHash,jr as resetMetrics,i as resolveBundleEnabled,Pr as resolveBundledSkillDir,ur as resolveContentDir,re as resolveCursorBinaryDefault,ve as resolveCursorSpawnInvocation,Xr as resolveEffectiveLinterConfig,Mt as resolveEmbeddingsCredential,Mr as resolveLockDir,ui as resolveNativeConfigForDoc,k as resolveNativeMarkdownlintConfig,me as resolvePack,Ar as resolvePackageVersion,$n as resolveRemoteAccess,ze as resolveUiInfo,Er as restoreContributors,si as restoreLifecycleFromConflictsJson,zn as rewriteMarkdownLinksForDocumentRename,Ce as rewriteWikiLinksForDocumentRename,Nr as runAuthReposSubprocess,$t as runAuthStatusSubprocess,Ot as runCloneSubprocess,Yn as runDeviceFlowSubprocess,Vr as runWithMcpLogger,Jn as safeContentPath,Bn as safeSubdir,f as safetyCheckpoint,tn as sanitizeClientName,cn as saveInMemoryCheckpoint,Lr as saveVersion,ti as seedBasenameIndex,cr as serializeError,_i as setActiveSpanAttributes,xe as setupServerObservers,rr as shadowGit,Pi as shutdownTelemetry,Ri as spansCurrentPath,zi as spansPreviousPath,qe as spawnDetached,_e as splitMarkdownBlocks,Un as startWatcher,B as streamingProblemEvent,Mn as swapContributors,Ye as teardownToleranceTelemetryWriter,Ur as toBroadcasterKey,Ti as tracedAppendFileSync,Ai as tracedLinkSync,Si as tracedMkdir,Ei as tracedMkdirSync,Mi as tracedRename,Ci as tracedRenameSync,ki as tracedRmSync,Di as tracedRmdirSync,wi as tracedUnlinkSync,bi as tracedWriteFile,Ni as tracedWriteFileSync,Qr as trustSystemCertificates,Xt as untrackTrackedProjectSkillProjection,v as updateLastKnownHash,Qi as updateProcessLockPort,ra as updateServerLockPort,fe as updateUiLockPort,rn as validateAgentId,Ct as validateCloneInputs,en as validateSkillZip,oa as waitForServerLockDrain,ft as withHiddenWindowsConsole,yi as withSpan,vi as withSpanSync,or as writeBundleDecision,On as writeMarkdownlintRule,It as writeRootGitignoreForNewRepo,g as writeStateManifest,Or as writeTargetVersion,Rn as writeTracker};
|
|
1
|
+
import{Do as e,Eo as t,Ho as n,P as r,R as i,To as a,Wo as o,_s as s,d as c,es as l,l as u}from"./src-C9yhZBbO.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,Cr as k,Ct as A,D as j,Di as M,Dn as N,Dt as P,E as F,Ei as I,En as L,Et as R,F as z,Fi as B,Fn as V,Fr as H,Ft as U,G as W,Gi as G,Gn as K,Gr as q,Gt as J,H as Y,Hi as X,Hn as Z,Hr as Q,Ht as $,I as ee,Ii as te,In as ne,Ir as re,It as ie,J as ae,Ji as oe,Jn as se,Jr as ce,Jt as le,K as ue,Ki as de,Kn as fe,Kr as pe,Kt as me,L as he,Li as ge,Ln as _e,Lr as ve,Lt as ye,M as be,Mi as xe,Mn as Se,Mr as Ce,Mt as we,N as Te,Ni as Ee,Nn as De,Nr as Oe,Nt as ke,O as Ae,Oi as je,On 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,_n as It,_r as Lt,_t as Rt,a as zt,aa as Bt,ai as Vt,an as Ht,ar as Ut,at as Wt,b as Gt,bi as Kt,bn as qt,br as Jt,bt as Yt,c as Xt,ca as Zt,ci as Qt,cn as $t,cr as en,ct 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,gi as bn,gn as xn,gr as Sn,gt as Cn,h as wn,ha as Tn,hi as En,hn as Dn,hr as On,ht as kn,i as An,ia as jn,ii as Mn,in as Nn,ir as Pn,it as Fn,j as In,ji as Ln,jn as Rn,jr as zn,jt as Bn,k as Vn,ki as Hn,kn as Un,kr as Wn,kt as Gn,l as Kn,la as qn,li as Jn,ln as Yn,lr as Xn,m as Zn,ma as Qn,mi as $n,mn as er,mr 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,vi as Jr,vn as Yr,vr as Xr,vt as Zr,w as Qr,wi as $r,wn as ei,wt as ti,x as ni,xi as ri,xn as ii,xr as ai,xt as oi,y as si,yi as ci,yn as li,yr as ui,yt as di,z as fi,zi as pi,zn as mi,zr as hi,zt as gi}from"./src-CJQ7Tr0x.mjs";import{C as _i,E as vi,T as yi,_ as bi,b as xi,c as Si,d as Ci,g as wi,i as Ti,l as Ei,m as Di,n as Oi,p as ki,s as Ai,t as ji,u as Mi,v as Ni,w as Pi,x as Fi,y as Ii}from"./fs-traced-wfI5VoOz.mjs";import{a as Li,d as Ri,f as zi,i as Bi,l as Vi,n as Hi,r as Ui,t as Wi,u as Gi}from"./logger-B7Z8XO-z.mjs";import{S as Ki,_ as qi,a as Ji,c as Yi,f as Xi,g as Zi,h as Qi,i as $i,l as ea,m as ta,n as na,o as ra,p as ia,r as aa,s as oa,t as sa,u as ca,v as la,x as ua}from"./server-lock-CCS3UzJQ.mjs";export{Zt as AGENT_ID_MAX_LEN,qn as AGENT_ID_RE,$r as AGENT_WRITE_ORIGIN,Tn as AcpPermissionStore,mn as AcpRegistry,ri as AcpThreadManager,ci as AgentFocusBroadcaster,Jr as AgentPresenceBroadcaster,tt as AgentSessionCapacityError,I as AgentSessionManager,Cn as AutoStartDisabledError,Xn as BUNDLE_IDS,Kr as BUNDLE_SCOPE,sn as BUNDLE_SKILL_NAME,C as BacklinkIndex,te as CC1Broadcaster,o as CC1_CONTRACT_VERSION,Gr as CONFIG_FILENAME,Ie as CONFLICT_MARKER_RE,Oe as CURSOR_BUNDLE_PATHS_BY_PLATFORM,Pt as ConfigSchema,X as DEFAULT_CHECKPOINT_RETENTION,Dt as DEFAULT_EMBEDDINGS_DIMENSIONS,U as DEFAULT_PACK_ID,lt as DocumentDurabilityState,St as EMBEDDINGS_API_KEY_ENV,hr as FEATURED_AGENT_IDS,at as FILE_SYSTEM_WRITER,Ke as FILE_WATCHER_ORIGIN,st as FileEmbeddingsBackend,Nt as GIT_PREFLIGHT_FAIL_SPAN_NAME,ht as GIT_UPSTREAM_WRITER,yn as GitDirAccessError,h as GitNotAvailableError,un as GitTooOldError,Rt as HOCUSPOCUS_AUTH_REJECTION_REASONS,Zr as HocuspocusAuthRejection,di as HocuspocusAuthTokenSchema,hi as INSTALLED_AGENTS_SCHEMES,n as LINEAGE_EPOCH_KEY,We as LIVE_DERIVED_INDEX_DEBOUNCE_MS,ie as LOG_MD_TEMPLATE,rt as MANAGED_RENAME_ORIGIN,Xe as MAX_ACP_THREADS,M as MAX_AGENT_SESSIONS,Fr as MCP_CONNECTION_ID_HEADER,a as MCP_SERVER_NAME,je as MIN_EVICTABLE_IDLE_MS,zr as MIN_GIT_VERSION,Y as MISSING_OK_CONFIG_MESSAGE,Ft as MalformedGitPointerError,d as McpLogger,it as MissingOkConfigError,_ as OBSERVER_SYNC_ORIGIN,on as OK_OKIGNORE_TEMPLATE,t as ORPHAN_MODES,s as PROTOCOL_VERSION,Wi as PinoLogger,Yi as ProcessLockCollisionError,Kn as ProjectGitInitError,R as ROLLBACK_ORIGIN,gn as ROOT_GITIGNORE_TEMPLATE,Zi as RUNTIME_VERSION,an as RemoteConfigError,G as SERVICE_WRITER,Pn as SKILL_INSTALL_EVENTS_FILE_REL,r as SKILL_STATE_TARGETS,ye as STARTER_FOLDERS,Je as STARTER_FOLDER_FRONTMATTER_FILENAME,gi as STARTER_PACKS,T as STARTER_PACK_IDS,pt as STARTER_TEMPLATES,et as STATE_MANIFEST_FILENAME,qi as STATE_SCHEMA_VERSION,l as SYSTEM_DOC_NAME,Cr as SeedPrerequisiteError,le as SeedRootDirError,sa as ServerLockCollisionError,Ir as SingleFileNotAFileError,nr as SingleFileNotFoundError,wr as SingleFileNotMarkdownError,F as StateManifestError,mi as TagIndex,_n as USER_GLOBAL_BUNDLE_IDS,Z as UiLockCollisionError,P as __getShowAllWalkStatsForTesting,Ne as __resetShowAllWalkStatsForTesting,ea as acquireProcessLock,na as acquireServerLock,ot as acquireUiLock,Hn as applyAgentMarkdownWrite,Se as applyExternalChange,Re as applySeed,j as assertCompatibleStateManifest,ar as assertGitAvailable,qt as assertNeverDiskEvent,Kt as attachAcpThreadSocket,kn as attachIdleShutdown,qr as bootServer,xr as buildAndOpenSkill,_r as buildConfigYmlContent,ae as buildExecResult,D as buildOkMcpStdioCommand,fr as buildSkillZip,$ as buildStarterFolderFrontmatterYaml,de as buildWipTree,vr as bundleSkillMdPath,_t as canonicalProjectKey,ii as classifyEvents,ji as classifyFsPath,q as clearAllEmbeddingsKeys,He as clearContributors,ct as coercePackId,u as colorFromSeed,br as commitUpstreamImport,oe as commitWip,Tt as commitWipFromTree,Dr as compareSemver,Sn as composeEffectiveLinterConfig,Lt as composeFrontmatterSchemasConfig,V as containsConflictMarkers,Ze as contentHash,m as contributorCount,Pe as countShadowObjects,z as countStaleAgentWipRefs,ee as countWipRefs,Gn as createApiExtension,Qt as createAssetServeMiddleware,Wn as createContentFilter,y as createContentFilterAsync,pe as createEmbeddingsSecretStore,An as createEphemeralProjectDir,De as createExternalChangeHandler,pn as createFileLogger,fi as createLiveDerivedIndexExtension,ue as createMcpHttpHandler,w as createOsProbe,Te as createPersistenceExtension,E as createServer,In as createServerObserverExtension,Ee as createStreamingErrorWriter,Hi as createTestLogger,Sr as describeStoredEmbeddingsKey,vn as detectClaudeDesktopPresence,Nn as detectGit,Ae as detectProjectShape,se as detectUserSkillHosts,sr as discoverLockDirs,Jt as discoverMarkdownlintConfig,Ue as emitPreflightFailureSpan,wt as encodeDocName,yt as encodeFolderRoute,kt as encodeSkillRoute,Hr as ensureProjectGit,er as ensureProjectSkillGitignore,Fe as errorResponse,O as evictStaleTrackerEntries,b as extractHeadings,kr as extractOkBinaryPath,dt as extractWikiLinksFromMarkdown,Ht as fallbackPaths,nn as findEnclosingGitRoot,Yr as findEnclosingProjectRoot,ai as findNativeMarkdownlintFile,mr as flushFileLogger,Yt as formatAuthRejectionWire,ln as formatContributors,Rr as formatContributorsFrom,we as formatPackRationale,bt as gcCheckpointRefs,fn as getCurrentMcpLogger,Vt as getLocalDir,Zn as getLogFilePath,Ui as getLogger,wn as getLogsDir,la as getMachineId,Ii as getMeter,Tr as getMetrics,xi as getTracer,jn as handleCollabSocketError,Le as handleSpawnCursor,hn as hasForwardingHeaders,he as hasGcLogLatch,c as iconFromClientName,Bt as incrementCollabSocketFilteredError,lr as incrementServerObserverFire,Dn as initContent,At as initShadowRepo,Fi as initTelemetry,Gt as initToleranceTelemetryWriter,pr as installPrettyZodErrors,Bi as installTestLoggers,Et as installUserSkill,Wr as isAllowedApiOrigin,En as isAllowedWorkspaceHostHeader,ge as isConfigDoc,oi as isHocuspocusAuthRejectionReason,vt as isKnownPackId,Ge as isLinkIndexExcludedDoc,bn as isLoopbackAddress,pi as isManagedArtifactDoc,e as isOrphanMode,Ln as isPairedWriteOrigin,H as isPathWithinDir,ua as isProcessAlive,li as isProjectRoot,gr as isRemoteAdmitted,S as isReservedForUserTree,ei as isSelfWrite,ut as isSystemDoc,ni as isToleranceTelemetryEnabled,Ki as isValidLockPid,nt as lastKnownHash,Be as listRescueCheckpoints,J as listStarterPacks,Qn as loadCustomAgents,be as loadPrincipal,ca as lockFilePath,Li as loggerFactory,Vi as logsCurrentPath,Gi as logsPreviousPath,ce as makeLazyEmbeddingsKeyStore,aa as markServerLockDraining,mt as mountMcpAndApi,Oi as normalizeFsPath,tr as originGitHubHost,xn as packageVersionMajorMinor,$e as parseAuthRejectionWire,dr as parseGitVersion,A as parseHocuspocusAuthToken,W as parseKeepaliveConnectionId,L as pathToDocName,ke as planSeed,zt as prepareSingleFileOpen,Fn as processCommand,Wt as processUsage,xt as readAllTargets,jt as readBundleDecision,Qe as readOwnNativeRules,Xi as readProcessLock,ia as readProcessLockDetailed,x as readProjectHeadState,Q as readProjectLocalSemanticConfig,$i as readServerLock,Ve as readServerPackageVersion,p as readSkillInstallStateSnapshot,Vn as readStateManifest,dn as readTargetRecordedAt,Br as readTargetVersion,gt as readUiLock,ne as reconcile,ir as recordContributor,Ut as recordSkillInstallEvent,yr as registerAllTools,N as registerWrite,ta as releaseProcessLock,Ji as releaseServerLock,K as releaseUiLock,Me as removeLastKnownHash,jr as resetMetrics,i as resolveBundleEnabled,Pr as resolveBundledSkillDir,ur as resolveContentDir,re as resolveCursorBinaryDefault,ve as resolveCursorSpawnInvocation,Xr as resolveEffectiveLinterConfig,Mt as resolveEmbeddingsCredential,Mr as resolveLockDir,ui as resolveNativeConfigForDoc,k as resolveNativeMarkdownlintConfig,me as resolvePack,Ar as resolvePackageVersion,$n as resolveRemoteAccess,ze as resolveUiInfo,Er as restoreContributors,si as restoreLifecycleFromConflictsJson,zn as rewriteMarkdownLinksForDocumentRename,Ce as rewriteWikiLinksForDocumentRename,Nr as runAuthReposSubprocess,$t as runAuthStatusSubprocess,Ot as runCloneSubprocess,Yn as runDeviceFlowSubprocess,Vr as runWithMcpLogger,Jn as safeContentPath,Bn as safeSubdir,f as safetyCheckpoint,tn as sanitizeClientName,cn as saveInMemoryCheckpoint,Lr as saveVersion,ti as seedBasenameIndex,cr as serializeError,_i as setActiveSpanAttributes,xe as setupServerObservers,rr as shadowGit,Pi as shutdownTelemetry,Ri as spansCurrentPath,zi as spansPreviousPath,qe as spawnDetached,_e as splitMarkdownBlocks,Un as startWatcher,B as streamingProblemEvent,Mn as swapContributors,Ye as teardownToleranceTelemetryWriter,Ur as toBroadcasterKey,Ti as tracedAppendFileSync,Ai as tracedLinkSync,Si as tracedMkdir,Ei as tracedMkdirSync,Mi as tracedRename,Ci as tracedRenameSync,ki as tracedRmSync,Di as tracedRmdirSync,wi as tracedUnlinkSync,bi as tracedWriteFile,Ni as tracedWriteFileSync,Qr as trustSystemCertificates,Xt as untrackTrackedProjectSkillProjection,v as updateLastKnownHash,Qi as updateProcessLockPort,ra as updateServerLockPort,fe as updateUiLockPort,rn as validateAgentId,Ct as validateCloneInputs,en as validateSkillZip,oa as waitForServerLockDrain,ft as withHiddenWindowsConsole,yi as withSpan,vi as withSpanSync,or as writeBundleDecision,On as writeMarkdownlintRule,It as writeRootGitignoreForNewRepo,g as writeStateManifest,Or as writeTargetVersion,Rn as writeTracker};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Q as e,Y as t}from"./src-vPHpv2Pv.mjs";import{Jr as n,Vr as r,a as i,yn as a}from"./src-BexdiJ2F.mjs";import{C as o,w as s}from"./write-project-skill-9Bg5smOa.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-BfbkLxMd.mjs";import{n as d}from"./constants-Tj2BXHLz.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-FJfcW5Wa.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-Cbg7X3jU.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-BnuZxbzl.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-PgjKx2Kj.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 s(`--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 s(`--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-C9yhZBbO.mjs";import{Jr as n,Vr as r,a as i,yn as a}from"./src-CJQ7Tr0x.mjs";import{E as o,T as s}from"./write-project-skill-BIBvYtT6.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-DAX_xywv.mjs";import{n as d}from"./constants-EdMPlb3h.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-Dmoupsem.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-tqX3x1ff.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-CarG9t5g.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-ByGIGa0z.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-Dmoupsem.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-Dmoupsem.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-Dmoupsem.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-BiK9JzSf.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-DLGlqNhM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e,r as t,v as n}from"./start-DLGlqNhM.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{Lo as r,Mo as i,No as a,To as o}from"./src-
|
|
1
|
+
import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{Lo as r,Mo as i,No as a,To as o}from"./src-C9yhZBbO.mjs";import{Dr as s,dr as c,fr as l,sr as u}from"./src-CJQ7Tr0x.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}
|
|
@@ -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 G(e={}){return H(e.platformName??process.platform).join(Oe(e),`config.toml`)}function K(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 ke(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 q(e={}){return H(e.platformName??process.platform).join(ke(e),`opencode.json`)}function Ae(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.openclaw`,`openclaw.json`)}function je(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.hermes`,`config.yaml`)}function Me(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 Ne(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.gemini`,`config`,`mcp_config.json`)}function Pe(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 J(e={}){let t=e.platformName??process.platform,n=Pe(e.home??w(),t);return n.find(e=>b(e))||n.find(e=>b(f(e)))||n[0]}const Y={claude:{id:`claude`,label:A.claude,configPath:(e,t)=>De({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,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:()=>o,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:()=>o,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)=>G({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>o,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(G({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)=>K({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(K({home:t})),projectSkillPath:e=>m(e,`.github`,`skills`,`open-knowledge`,`SKILL.md`)},opencode:{id:`opencode`,label:A.opencode,configPath:(e,t)=>q({home:t}),format:`json`,topLevelKey:`mcp`,serverName:()=>o,buildEntry:(e,t)=>xe(t),scope:`global`,detectPath:(e,t)=>f(q({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)=>Ae({home:t}),format:`json`,topLevelKey:`mcp`,serverMapSubKey:`servers`,serverName:()=>o,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:()=>o,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)=>Me({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)=>Ne({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,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)=>J({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>o,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(J({home:t})),offerOnlyWhenDetected:!0},hermes:{id:`hermes`,label:A.hermes,configPath:(e,t)=>je({home:t}),format:`yaml`,topLevelKey:`mcp_servers`,serverName:()=>o,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.hermes`),offerOnlyWhenDetected:!0}};function Fe(e){let t=e.filter(e=>!Object.hasOwn(Y,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${k.join(`, `)}`);return e.map(e=>Y[e])}const Ie=[{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`}],Le=[...l.map(e=>c[e]),`open-knowledge`];function X(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 Z(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 Re(e,t){try{return re(e).every(n=>t.has(m(e,n)))}catch{return!1}}function ze(e){let t=X(e),n=[],r=[],i=new Set;for(let e of Ie){let a=m(t,e.hostDir,`skills`);if(!Z(t,a))continue;let o=Le.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(;Re(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 Be(e){try{if(!x(e).isDirectory())return!1;let t=re(e);return t.length===0||t.includes(`SKILL.md`)}catch{return!1}}function Ve(e){let t=new Set,n=new Set;for(let r of Ie){let i=m(e,r.hostDir,`skills`);for(let e of Le)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 He(e,t){let n=X(e),r=Ve(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(Z(n,e)&&Be(e))try{C(e,{recursive:!0,force:!0}),a.push(e)}catch{}for(let e of t.emptyDirs)if(Z(n,e))try{ie(e),a.push(e)}catch{}return a}function Q(e){let t=X(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 Ue(e,t){let n=[];for(let r of Q(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 We(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.`);Ke(e,t)}function Ge(e,t){Ke(e,t)}function Ke(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 qe(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 Je(e,t,n={}){if(e.id!==`copilot`)return!0;try{return qe(e,t,e.configPath(t,n.home))}catch{return!1}}function Ye(e,t,n={}){let r=e.projectSkillPath?.(t);if(!r)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};if(!Je(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);We(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 Xe(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)?(Ge(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{he as C,Fe as S,_e as T,we as _,He as a,Te as b,Q as c,Y as d,j as f,z as g,ye as h,Ye as i,k as l,L as m,Ge as n,ze as o,I as p,Xe as r,Ue as s,We as t,A as u,be as v,pe as w,Ee as x,Se 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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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:()=>o,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-BIBvYtT6.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/open-knowledge",
|
|
3
|
-
"version": "0.46.0-beta.
|
|
3
|
+
"version": "0.46.0-beta.15",
|
|
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.46.0-beta.13",
|
|
65
64
|
"@inkeep/open-knowledge-native-config": "0.0.0",
|
|
66
|
-
"@inkeep/open-knowledge-
|
|
67
|
-
"@inkeep/open-knowledge-
|
|
65
|
+
"@inkeep/open-knowledge-app": "0.46.0-beta.15",
|
|
66
|
+
"@inkeep/open-knowledge-server": "0.46.0-beta.15",
|
|
67
|
+
"@inkeep/open-knowledge-core": "0.46.0-beta.15"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build:cli": "tsdown",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as t}from"./fs-traced-B-x7hAhD.mjs";export{t as tracedMkdir,e as tracedWriteFile};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./git-handle-M_t2H6C-.mjs";export{e as createGitInstance};
|
package/dist/init-DAEIZfnY.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./init-DJvgtKke.mjs";export{e as runInit};
|
package/dist/loader-DjGgIOZB.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-DZ3vC2N-.mjs";export{e as loadConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-Bfh6RWYE.mjs";export{t as formatPreviewBlock,e as previewContent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./jsx-runtime-BUgB2tll.js";import{a as n,i as r}from"./DocumentContext-DOLytv_M.js";import{t as i}from"./react-f2sANaYj.js";import{n as a,r as o}from"./dist-Nvb76hAm.js";import{t as s}from"./compiler-runtime-BfE3aGVn.js";import{t as c}from"./button-oSXzJYWO.js";import{i as l,n as u,t as d}from"./tooltip-DkZ6fphS.js";import{a as f,c as p,i as m,o as h,s as g,t as _}from"./dialog-CkjkuWLF.js";import{mt as v}from"./CodeMirrorPropInput-ni9vC7Fz.js";import{r as y}from"./CopyButton-O0Y9mXoH.js";import{i as b}from"./prop-types-CwT5q2dg.js";import{t as x}from"./loader-circle-Cn2Xr4cN.js";import{t as S}from"./undo-2-BRIW1mxN.js";import{n as C}from"./dist-BVbCw0G-.js";import{t as w}from"./dist-DuwTJb1j.js";import{c as T}from"./navigation-targets-CvdOYknS.js";import{a as E,i as D,n as O,o as k,t as A}from"./agent-diff-store-BptHmEsn.js";import{t as j}from"./timeline-diff-store-C89mH-2r.js";import{n as M}from"./use-activity-panel-BrntKM08.js";var N=s(),P=e(i(),1),F=t();function I(e,t){let n=Math.max(0,t-e);if(n<6e4){let e=Math.round(n/1e3);return w._({id:`pbwTg6`,values:{seconds:e}})}if(n<36e5){let e=Math.round(n/6e4);return w._({id:`_rP3HI`,values:{minutes:e}})}return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function ee(e){let t=(0,N.c)(86),{burst:n,docName:r,editCount:i,sessionAlive:s,inFlight:v,onOpenDiff:y,onRestore:b}=e,{_:C}=o(),[w,T]=(0,P.useState)(te),D,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>{let e=setInterval(()=>T(Date.now()),3e4);return()=>clearInterval(e)},O=[],t[0]=D,t[1]=O):(D=t[0],O=t[1]),(0,P.useEffect)(D,O);let[k,A]=(0,P.useState)(!1),j=E(),M=n.stackIndex+1,ee=j?.docName===r&&j.keptCount===M,L=i-M,ne=!s||v||L<=0,re;t[2]!==L||t[3]!==b?(re=function(){A(!1),b(L)},t[2]=L,t[3]=b,t[4]=re):re=t[4];let ie=re,R;t[5]!==n||t[6]!==y?(R=()=>y(n),t[5]=n,t[6]=y,t[7]=R):R=t[7];let z;t[8]!==C||t[9]!==M||t[10]!==r?(z=C({id:`Z79bnE`,values:{burstNumber:M,docName:r}}),t[8]=C,t[9]=M,t[10]=r,t[11]=z):z=t[11];let ae=ee?`bg-muted`:`hover:bg-muted/40`,oe;t[12]===ae?oe=t[13]:(oe=[`flex min-w-0 flex-1 items-center gap-2 px-4 py-1.5 text-xs text-muted-foreground transition-colors`,ae],t[12]=ae,t[13]=oe);let se=oe.join(` `),B;t[14]!==n.ts||t[15]!==w?(B=I(n.ts,w),t[14]=n.ts,t[15]=w,t[16]=B):B=t[16];let V;t[17]===B?V=t[18]:(V=(0,F.jsx)(`span`,{className:`font-mono`,children:B}),t[17]=B,t[18]=V);let H;t[19]===n.additions?H=t[20]:(H=(0,F.jsxs)(`span`,{className:`text-green-600 dark:text-green-400`,children:[`+`,n.additions]}),t[19]=n.additions,t[20]=H);let U;t[21]===n.deletions?U=t[22]:(U=(0,F.jsxs)(`span`,{className:`text-red-600 dark:text-red-400`,children:[`−`,n.deletions]}),t[21]=n.deletions,t[22]=U);let W;t[23]!==H||t[24]!==U?(W=(0,F.jsxs)(`span`,{className:`ml-auto font-mono`,children:[H,` `,U]}),t[23]=H,t[24]=U,t[25]=W):W=t[25];let G;t[26]!==ee||t[27]!==V||t[28]!==W||t[29]!==R||t[30]!==z||t[31]!==se?(G=(0,F.jsxs)(`button`,{type:`button`,onClick:R,"aria-pressed":ee,"aria-label":z,"data-testid":`activity-panel-burst-open`,className:se,children:[V,W]}),t[26]=ee,t[27]=V,t[28]=W,t[29]=R,t[30]=z,t[31]=se,t[32]=G):G=t[32];let ce;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,F.jsx)(`span`,{"aria-hidden":`true`,className:`mx-1.5 h-3 w-px shrink-0 bg-border`}),t[33]=ce):ce=t[33];let K;t[34]!==C||t[35]!==M||t[36]!==r?(K=C({id:`Zhe80e`,values:{burstNumber:M,docName:r}}),t[34]=C,t[35]=M,t[36]=r,t[37]=K):K=t[37];let le;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>A(!0),t[38]=le):le=t[38];let q;t[39]===v?q=t[40]:(q=v?(0,F.jsx)(x,{className:`size-3 animate-spin`,"aria-hidden":`true`}):(0,F.jsx)(S,{className:`size-3`,"aria-hidden":`true`}),t[39]=v,t[40]=q);let J;t[41]!==ne||t[42]!==K||t[43]!==q?(J=(0,F.jsx)(l,{asChild:!0,children:(0,F.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,className:`size-6 shrink-0 text-muted-foreground hover:text-destructive`,"data-testid":`activity-panel-burst-restore`,"aria-label":K,disabled:ne,onClick:le,children:q})}),t[41]=ne,t[42]=K,t[43]=q,t[44]=J):J=t[44];let Y;t[45]!==C||t[46]!==L||t[47]!==s?(Y=C(s?L>0?{id:`SOPwPh`}:{id:`62bOuM`}:{id:`NzFvyK`}),t[45]=C,t[46]=L,t[47]=s,t[48]=Y):Y=t[48];let X;t[49]===Y?X=t[50]:(X=(0,F.jsx)(u,{side:`left`,children:Y}),t[49]=Y,t[50]=X);let Z;t[51]!==J||t[52]!==X?(Z=(0,F.jsxs)(d,{children:[J,X]}),t[51]=J,t[52]=X,t[53]=Z):Z=t[53];let Q;t[54]!==G||t[55]!==Z?(Q=(0,F.jsxs)(`div`,{className:`flex items-center border-t border-border/50 pr-3`,children:[G,ce,Z]}),t[54]=G,t[55]=Z,t[56]=Q):Q=t[56];let ue;t[57]===v?ue=t[58]:(ue=e=>{!e&&!v?A(!1):e&&A(!0)},t[57]=v,t[58]=ue);let de;t[59]===C?de=t[60]:(de=C({id:`a4FRQv`}),t[59]=C,t[60]=de);let fe;t[61]===de?fe=t[62]:(fe=(0,F.jsx)(p,{children:de}),t[61]=de,t[62]=fe);let pe;t[63]===L?pe=t[64]:(pe=(0,F.jsx)(f,{children:(0,F.jsx)(a,{id:`LKIPzv`,values:{laterEdits:L}})}),t[63]=L,t[64]=pe);let $;t[65]!==fe||t[66]!==pe?($=(0,F.jsxs)(g,{children:[fe,pe]}),t[65]=fe,t[66]=pe,t[67]=$):$=t[67];let me;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,F.jsx)(c,{variant:`outline`,"data-testid":`activity-panel-burst-restore-cancel`,onClick:()=>A(!1),children:(0,F.jsx)(a,{id:`dEgA5A`})}),t[68]=me):me=t[68];let he;t[69]===v?he=t[70]:(he=v?(0,F.jsx)(x,{className:`mr-2 size-4 animate-spin`,"aria-hidden":`true`}):null,t[69]=v,t[70]=he);let ge;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,F.jsx)(a,{id:`9uI_rE`}),t[71]=ge):ge=t[71];let _e;t[72]!==ie||t[73]!==v||t[74]!==he?(_e=(0,F.jsxs)(h,{children:[me,(0,F.jsxs)(c,{variant:`destructive`,"data-testid":`activity-panel-burst-restore-confirm`,disabled:v,onClick:ie,children:[he,ge]})]}),t[72]=ie,t[73]=v,t[74]=he,t[75]=_e):_e=t[75];let ve;t[76]!==$||t[77]!==_e?(ve=(0,F.jsxs)(m,{children:[$,_e]}),t[76]=$,t[77]=_e,t[78]=ve):ve=t[78];let ye;t[79]!==k||t[80]!==ue||t[81]!==ve?(ye=(0,F.jsx)(_,{open:k,onOpenChange:ue,children:ve}),t[79]=k,t[80]=ue,t[81]=ve,t[82]=ye):ye=t[82];let be;return t[83]!==Q||t[84]!==ye?(be=(0,F.jsxs)(F.Fragment,{children:[Q,ye]}),t[83]=Q,t[84]=ye,t[85]=be):be=t[85],be}function te(){return Date.now()}function L(e,t){let n=Math.max(0,t-e);if(n<6e4){let e=Math.round(n/1e3);return w._({id:`pbwTg6`,values:{seconds:e}})}if(n<36e5){let e=Math.round(n/6e4);return w._({id:`_rP3HI`,values:{minutes:e}})}let r=Math.round(n/36e5);return w._({id:`nYeBmY`,values:{hours:r}})}function ne(e){let t=(0,N.c)(56),{file:n,sessionAlive:r,isWriting:i,onNavigate:s,onUndoDrop:c,onSetVersion:l}=e,{_:u}=o(),{docName:d}=n,[f,p]=(0,P.useState)(!1),[m,h]=(0,P.useState)(re),g,_;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>{let e=setInterval(()=>h(Date.now()),3e4);return()=>clearInterval(e)},_=[],t[0]=g,t[1]=_):(g=t[0],_=t[1]),(0,P.useEffect)(g,_);let v=n.bursts.length,y;t[2]!==n.docName||t[3]!==c||t[4]!==r||t[5]!==f?(y=e=>{e<=0||!r||f||(p(!0),Promise.resolve(c(n.docName,e)).finally(()=>{p(!1),A()}))},t[2]=n.docName,t[3]=c,t[4]=r,t[5]=f,t[6]=y):y=t[6];let b=y;if(n.bursts.length===0)return null;let x;t[7]!==n.docName||t[8]!==s?(x=()=>s(n.docName),t[7]=n.docName,t[8]=s,t[9]=x):x=t[9];let S;t[10]!==u||t[11]!==d?(S=u({id:`QcpeeE`,values:{docName:d}}),t[10]=u,t[11]=d,t[12]=S):S=t[12];let C;t[13]!==n.docName||t[14]!==x||t[15]!==S?(C=(0,F.jsx)(`button`,{type:`button`,onClick:x,className:`min-w-0 flex-1 truncate text-left text-foreground hover:underline focus-visible:outline-ring`,"aria-label":S,"data-testid":`activity-panel-file-row-filename`,title:n.docName,children:n.docName}),t[13]=n.docName,t[14]=x,t[15]=S,t[16]=C):C=t[16];let w;t[17]===n.additionsTotal?w=t[18]:(w=(0,F.jsxs)(`span`,{className:`text-green-600 dark:text-green-400`,children:[`+`,n.additionsTotal]}),t[17]=n.additionsTotal,t[18]=w);let T;t[19]===n.deletionsTotal?T=t[20]:(T=(0,F.jsxs)(`span`,{className:`text-red-600 dark:text-red-400`,children:[`−`,n.deletionsTotal]}),t[19]=n.deletionsTotal,t[20]=T);let E;t[21]!==w||t[22]!==T?(E=(0,F.jsxs)(`span`,{className:`shrink-0 font-mono text-xs`,children:[w,` `,T]}),t[21]=w,t[22]=T,t[23]=E):E=t[23];let D;t[24]!==n.lastTs||t[25]!==m?(D=L(n.lastTs,m),t[24]=n.lastTs,t[25]=m,t[26]=D):D=t[26];let O;t[27]===D?O=t[28]:(O=(0,F.jsx)(`span`,{className:`shrink-0 font-mono text-[11px] text-muted-foreground`,children:D}),t[27]=D,t[28]=O);let k;t[29]===i?k=t[30]:(k=i?(0,F.jsx)(`span`,{className:`shrink-0 text-[11px] text-primary animate-pulse`,role:`status`,children:(0,F.jsx)(a,{id:`6q0rnH`})}):null,t[29]=i,t[30]=k);let j;t[31]!==O||t[32]!==k||t[33]!==C||t[34]!==E?(j=(0,F.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-sm`,children:[C,E,O,k]}),t[31]=O,t[32]=k,t[33]=C,t[34]=E,t[35]=j):j=t[35];let M;if(t[36]!==b||t[37]!==v||t[38]!==n.bursts||t[39]!==n.docName||t[40]!==l||t[41]!==r||t[42]!==f){let e;t[44]!==b||t[45]!==v||t[46]!==n.docName||t[47]!==l||t[48]!==r||t[49]!==f?(e=e=>(0,F.jsx)(ee,{burst:e,docName:n.docName,editCount:v,sessionAlive:r,inFlight:f,onOpenDiff:e=>l(e.stackIndex+1),onRestore:b},`${n.docName}:${e.stackIndex}`),t[44]=b,t[45]=v,t[46]=n.docName,t[47]=l,t[48]=r,t[49]=f,t[50]=e):e=t[50],M=n.bursts.map(e),t[36]=b,t[37]=v,t[38]=n.bursts,t[39]=n.docName,t[40]=l,t[41]=r,t[42]=f,t[43]=M}else M=t[43];let I;t[51]===M?I=t[52]:(I=(0,F.jsx)(`div`,{children:M}),t[51]=M,t[52]=I);let te;return t[53]!==j||t[54]!==I?(te=(0,F.jsxs)(`div`,{className:`border-b border-border`,"data-testid":`activity-panel-file-row`,children:[j,I]}),t[53]=j,t[54]=I,t[55]=te):te=t[55],te}function re(){return Date.now()}async function ie(e){let t=await fetch(`/api/agent-undo`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({...e,agentId:e.connectionId})});if(!t.ok)throw Error(`agent-undo failed: HTTP ${t.status}`)}function R(e){return`#/${e.split(`/`).map(e=>encodeURIComponent(e)).join(`/`)}`}function z(e){typeof window>`u`||(window.location.hash=R(e))}function ae(){let e=(0,N.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(x,{className:`mr-2 size-4 animate-spin`,"aria-hidden":`true`}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,F.jsxs)(`div`,{className:`flex h-full items-center justify-center p-6 text-muted-foreground`,role:`status`,"aria-busy":`true`,children:[t,(0,F.jsx)(`span`,{className:`text-sm`,children:(0,F.jsx)(a,{id:`ONPvOb`})})]}),e[1]=n):n=e[1],n}function oe(e){let t=(0,N.c)(10),{error:n,onRetry:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,F.jsx)(y,{className:`size-6 text-destructive`,"aria-hidden":`true`}),t[0]=i):i=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,F.jsx)(`p`,{className:`text-sm font-medium`,children:(0,F.jsx)(a,{id:`DhLHEb`})}),t[1]=o):o=t[1];let s;t[2]===n?s=t[3]:(s=(0,F.jsxs)(`div`,{className:`space-y-1`,children:[o,(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n})]}),t[2]=n,t[3]=s);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,F.jsx)(a,{id:`6gRgw8`}),t[4]=l):l=t[4];let u;t[5]===r?u=t[6]:(u=(0,F.jsx)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:r,children:l}),t[5]=r,t[6]=u);let d;return t[7]!==s||t[8]!==u?(d=(0,F.jsxs)(`div`,{className:`flex flex-col items-center gap-3 p-6 text-center`,role:`alert`,"data-testid":`activity-panel-error`,children:[i,s,u]}),t[7]=s,t[8]=u,t[9]=d):d=t[9],d}function se(){let e=(0,N.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(`div`,{className:`flex h-full items-center justify-center p-6 text-muted-foreground`,"data-testid":`activity-panel-empty`,children:(0,F.jsx)(`p`,{className:`text-sm italic`,children:(0,F.jsx)(a,{id:`iuTKci`})})}),e[0]=t):t=e[0],t}function B(e){let t=(0,N.c)(12),{onExit:n,showBackButton:r}=e,{_:i}=o(),s;t[0]===i?s=t[1]:(s=i({id:`kYL1lH`}),t[0]=i,t[1]=s);let c;t[2]!==n||t[3]!==r?(c=r?(0,F.jsx)(V,{onClick:n}):null,t[2]=n,t[3]=r,t[4]=c):c=t[4];let l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,F.jsx)(`h2`,{className:`truncate text-sm font-medium`,children:(0,F.jsx)(a,{id:`kYL1lH`})}),t[5]=l):l=t[5];let u;t[6]===c?u=t[7]:(u=(0,F.jsxs)(`div`,{className:`flex shrink-0 flex-row items-center gap-2 border-b border-border px-3 py-2`,children:[c,l]}),t[6]=c,t[7]=u);let d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,F.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-6 text-muted-foreground`,children:(0,F.jsx)(`p`,{className:`text-center text-sm italic`,children:(0,F.jsx)(a,{id:`D_WKe_`})})}),t[8]=d):d=t[8];let f;return t[9]!==s||t[10]!==u?(f=(0,F.jsxs)(`section`,{className:`flex h-full min-h-0 flex-col`,"data-testid":`activity-panel-no-agent`,"aria-label":s,children:[u,d]}),t[9]=s,t[10]=u,t[11]=f):f=t[11],f}function V(e){let t=(0,N.c)(9),{onClick:n}=e,{_:r}=o(),i;t[0]===r?i=t[1]:(i=r({id:`ogAuyr`}),t[0]=r,t[1]=i);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,F.jsx)(v,{}),t[2]=s):s=t[2];let f;t[3]!==n||t[4]!==i?(f=(0,F.jsx)(l,{asChild:!0,children:(0,F.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,className:`size-7 shrink-0`,onClick:n,"aria-label":i,"data-testid":`docpanel-exit-agent-mode`,children:s})}),t[3]=n,t[4]=i,t[5]=f):f=t[5];let p;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,F.jsx)(u,{side:`bottom`,children:(0,F.jsx)(a,{id:`ogAuyr`})}),t[6]=p):p=t[6];let m;return t[7]===f?m=t[8]:(m=(0,F.jsxs)(d,{children:[f,p]}),t[7]=f,t[8]=m),m}function H(e){let t=(0,N.c)(9),{lastTs:n}=e,[r]=(0,P.useState)(U),i;t[0]!==n||t[1]!==r?(i=n?W(r-n):null,t[0]=n,t[1]=r,t[2]=i):i=t[2];let o=i,s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,F.jsx)(`span`,{className:`font-medium`,children:(0,F.jsx)(a,{id:`LCUy_N`})}),t[3]=s):s=t[3];let c;t[4]===o?c=t[5]:(c=o?(0,F.jsxs)(`span`,{children:[` · `,o]}):null,t[4]=o,t[5]=c);let l;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,F.jsx)(`div`,{className:`mt-1 opacity-80`,children:(0,F.jsx)(a,{id:`GK-IRZ`})}),t[6]=l):l=t[6];let u;return t[7]===c?u=t[8]:(u=(0,F.jsxs)(`div`,{className:`border-b border-border bg-muted/40 px-4 py-3 text-xs text-muted-foreground`,"data-testid":`activity-panel-session-ended`,children:[s,c,l]}),t[7]=c,t[8]=u),u}function U(){return Date.now()}function W(e){let t=Math.max(0,e);if(t<6e4){let e=Math.round(t/1e3);return w._({id:`pbwTg6`,values:{seconds:e}})}if(t<36e5){let e=Math.round(t/6e4);return w._({id:`_rP3HI`,values:{minutes:e}})}let n=Math.round(t/36e5);return w._({id:`nYeBmY`,values:{hours:n}})}function G(e){let t=(0,N.c)(10),{agent:n,size:r}=e,i=r===void 0?28:r,a;t[0]!==n.color||t[1]!==i?(a={backgroundColor:n.color,width:i,height:i},t[0]=n.color,t[1]=i,t[2]=a):a=t[2];let o=i*.57,s=i*.57,c;t[3]!==n.icon||t[4]!==o||t[5]!==s?(c=(0,F.jsx)(k,{icon:n.icon,width:o,height:s}),t[3]=n.icon,t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;return t[7]!==a||t[8]!==c?(l=(0,F.jsx)(`span`,{className:`inline-flex shrink-0 items-center justify-center rounded-full text-white ring-2 ring-background`,style:a,"aria-hidden":`true`,children:c}),t[7]=a,t[8]=c,t[9]=l):l=t[9],l}function ce(e){let t=(0,N.c)(25),{data:n,status:r,error:i,reload:s,onExit:c,onNavigate:l,onUndoDrop:u,onSetVersion:d,showBackButton:f}=e,{_:p}=o(),m=n?.files?.[0]?.lastTs??null,h=n?.files?.length??0,g;t[0]===p?g=t[1]:(g=p({id:`kYL1lH`}),t[0]=p,t[1]=g);let _;t[2]!==c||t[3]!==f?(_=f?(0,F.jsx)(V,{onClick:c}):null,t[2]=c,t[3]=f,t[4]=_):_=t[4];let v;t[5]!==n||t[6]!==h||t[7]!==m?(v=n?.agent?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(G,{agent:n.agent}),(0,F.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,F.jsx)(`h2`,{className:`truncate text-sm font-medium`,children:n.agent.displayName}),(0,F.jsxs)(`p`,{className:`truncate text-xs text-muted-foreground`,children:[n.sessionAlive?(0,F.jsx)(a,{id:`F6pfE9`}):m===null?(0,F.jsx)(a,{id:`PMyJ9C`}):(0,F.jsx)(a,{id:`237hSL`}),n.files.length>0?(0,F.jsxs)(F.Fragment,{children:[` · `,(0,F.jsx)(a,{id:`u3BOHd`,values:{fileCount:h}})]}):null]})]})]}):(0,F.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,F.jsx)(`h2`,{className:`truncate text-sm font-medium`,children:(0,F.jsx)(a,{id:`kYL1lH`})})}),t[5]=n,t[6]=h,t[7]=m,t[8]=v):v=t[8];let y;t[9]!==_||t[10]!==v?(y=(0,F.jsxs)(`div`,{className:`flex flex-row items-center gap-2 border-b border-border px-3 py-2 shrink-0`,children:[_,v]}),t[9]=_,t[10]=v,t[11]=y):y=t[11];let b;t[12]!==n||t[13]!==i||t[14]!==m||t[15]!==l||t[16]!==d||t[17]!==u||t[18]!==s||t[19]!==r?(b=(0,F.jsx)(`div`,{className:`flex-1 overflow-y-auto`,"data-testid":`activity-panel-body`,children:r===`loading`&&n===null?(0,F.jsx)(ae,{}):r===`error`&&i?(0,F.jsx)(oe,{error:i,onRetry:s}):n===null?(0,F.jsx)(se,{}):(0,F.jsxs)(F.Fragment,{children:[!n.sessionAlive&&m!==null?(0,F.jsx)(H,{lastTs:m}):null,n.files.length===0?(0,F.jsx)(se,{}):n.files.map(e=>(0,F.jsx)(ne,{file:e,sessionAlive:n.sessionAlive,isWriting:n.writingDocs.has(e.docName),onNavigate:l,onUndoDrop:u,onSetVersion:t=>d(e,t)},e.docName))]})}),t[12]=n,t[13]=i,t[14]=m,t[15]=l,t[16]=d,t[17]=u,t[18]=s,t[19]=r,t[20]=b):b=t[20];let x;return t[21]!==g||t[22]!==y||t[23]!==b?(x=(0,F.jsxs)(`section`,{className:`flex h-full min-h-0 flex-col`,"data-testid":`activity-panel`,"aria-label":g,children:[y,b]}),t[21]=g,t[22]=y,t[23]=b,t[24]=x):x=t[24],x}function K(e){let t=(0,N.c)(30),i;t[0]===e?i=t[1]:(i=e===void 0?{}:e,t[0]=e,t[1]=i);let{showBackButton:a}=i,s=a===void 0?!0:a,{_:c}=o(),{docPanelAgentId:l,closeActivityPanel:u}=r(),{openTargetTransition:d}=n(),{pageMeta:f}=b(),{data:p,status:m,error:h,reload:g}=M(l),_,v;if(t[2]!==p||t[3]!==l?(_=()=>{if(!(!p||l===null))for(let e of p.files)D(l,e.docName,e.bursts.length)},v=[p,l],t[2]=p,t[3]=l,t[4]=_,t[5]=v):(_=t[4],v=t[5]),(0,P.useEffect)(_,v),l===null){let e;return t[6]!==u||t[7]!==s?(e=(0,F.jsx)(B,{onExit:u,showBackButton:s}),t[6]=u,t[7]=s,t[8]=e):e=t[8],e}let y;t[9]!==d||t[10]!==f?(y=e=>{d(T({kind:`doc`,target:e,docName:e},f)),z(e)},t[9]=d,t[10]=f,t[11]=y):y=t[11];let x=y,S;t[12]!==p||t[13]!==l?(S=(e,t)=>{if(!p?.agent||l===null)return;j();let n=e.bursts.length;O({agentId:l,agentName:p.agent.displayName,agentColor:p.agent.color,agentIcon:p.agent.icon,docName:e.docName,keptCount:Math.max(0,Math.min(t,n)),maxVersions:n})},t[12]=p,t[13]=l,t[14]=S):S=t[14];let w=S,E;t[15]!==c||t[16]!==p||t[17]!==l||t[18]!==g?(E=async(e,t)=>{if(!(t<=0))try{await ie({connectionId:l,docName:e,scope:`count`,count:t,agentName:p?.agent?.displayName}),C.success(c(t===1?{id:`-dNlfM`,values:{docName:e}}:{id:`ApeA0n`,values:{dropCount:t,docName:e}})),g()}catch(e){let t=e,n=t instanceof Error?t.message:String(t);C.error(c({id:`EqrC_R`,values:{message:n}})),g()}},t[15]=c,t[16]=p,t[17]=l,t[18]=g,t[19]=E):E=t[19];let k=E,A;return t[20]!==u||t[21]!==p||t[22]!==h||t[23]!==x||t[24]!==w||t[25]!==k||t[26]!==g||t[27]!==s||t[28]!==m?(A=(0,F.jsx)(ce,{data:p,status:m,error:h,reload:g,onExit:u,onNavigate:x,onUndoDrop:k,onSetVersion:w,showBackButton:s}),t[20]=u,t[21]=p,t[22]=h,t[23]=x,t[24]=w,t[25]=k,t[26]=g,t[27]=s,t[28]=m,t[29]=A):A=t[29],A}export{K as ActivityModeContent};
|