@inkeep/open-knowledge 0.46.0-beta.6 → 0.46.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/THIRD_PARTY_NOTICES.md +10 -0
- package/dist/{acp-harness-probe-Bhr8FI29.mjs → acp-harness-probe-4DjqrOhu.mjs} +2 -2
- package/dist/assets/skills/discovery/SKILL.md +1 -2
- package/dist/assets/skills/packs/codebase-wiki/SKILL.md +6 -7
- package/dist/assets/skills/packs/codebase-wiki/references/generate-and-refresh.md +160 -0
- package/dist/assets/skills/packs/entity-vault/SKILL.md +2 -3
- package/dist/assets/skills/packs/knowledge-base/SKILL.md +26 -9
- package/dist/assets/skills/packs/knowledge-base/consolidate/SKILL.md +160 -0
- package/dist/assets/skills/packs/knowledge-base/research/SKILL.md +375 -0
- package/dist/assets/skills/packs/okf/SKILL.md +2 -3
- package/dist/assets/skills/packs/plain-notes/SKILL.md +4 -3
- package/dist/assets/skills/packs/software-lifecycle/SKILL.md +14 -3
- package/dist/assets/skills/packs/software-lifecycle/frame-a-proposal/SKILL.md +222 -0
- package/dist/assets/skills/packs/software-lifecycle/record-a-decision/SKILL.md +188 -0
- package/dist/assets/skills/packs/software-lifecycle/review-a-design/SKILL.md +137 -0
- package/dist/assets/skills/packs/software-lifecycle/write-a-postmortem/SKILL.md +202 -0
- package/dist/assets/skills/packs/software-lifecycle/write-a-spec/SKILL.md +298 -0
- package/dist/assets/skills/packs/worldbuilding/SKILL.md +2 -3
- package/dist/assets/skills/packs/writing-pipeline/SKILL.md +5 -3
- package/dist/assets/skills/project/SKILL.md +29 -30
- package/dist/assets/skills/project/references/anti-patterns.md +1 -1
- package/dist/assets/skills/project/references/corpus-qa.md +1 -1
- package/dist/assets/skills/project/references/folder-model.md +1 -1
- package/dist/assets/skills/project/references/ingest-and-sources.md +230 -13
- package/dist/assets/skills/project/references/onboard-existing-repo.md +319 -0
- package/dist/assets/skills/project/references/preview.md +1 -1
- package/dist/assets/skills/project/references/setup.md +6 -0
- package/dist/assets/skills/project/references/starter-packs.md +41 -0
- package/dist/assets/skills/write-skill/SKILL.md +69 -28
- package/dist/assets/skills/write-skill/references/pressure-testing.md +4 -3
- package/dist/cli.mjs +62 -62
- package/dist/constants-GWFx-UC8.mjs +2 -0
- package/dist/{git-handle-CK_JXuyw.mjs → git-handle-CUCj-M_k.mjs} +2 -2
- package/dist/git-handle-c0ljFZis.mjs +1 -0
- package/dist/index.mjs +1 -1
- package/dist/{init-DoPgyAbZ.mjs → init-DWCsIT2Y.mjs} +37 -37
- package/dist/init-ZV2BMIkj.mjs +1 -0
- package/dist/{launch-json-removal-iD7o5ZhH.mjs → launch-json-removal-BCxhJz-M.mjs} +2 -2
- package/dist/{loader-doXjfQUX.mjs → loader-84N4YMxM.mjs} +2 -2
- package/dist/loader-gOaiaXCo.mjs +1 -0
- package/dist/md-manager-usiCjUg4.mjs +2 -0
- package/dist/{open-browser-BHXl6F9O.mjs → open-browser-D-fJ9iwf.mjs} +2 -2
- package/dist/parse-worker.mjs +1 -1
- package/dist/{preview-C67jEM8C.mjs → preview-Ce0jIM-0.mjs} +2 -2
- package/dist/preview-TJlA1vTS.mjs +1 -0
- package/dist/public/assets/ActivityModeContent-DwfZoDZE.js +1 -0
- package/dist/public/assets/{AgentDiffPane-6bk9bV9U.js → AgentDiffPane-BwPzooAs.js} +2 -2
- package/dist/public/assets/{AgentThreadClientBinder-u3ZVSSHE.js → AgentThreadClientBinder-Lk-U9Zg5.js} +1 -1
- package/dist/public/assets/AppMenubar-7eBxIB37.js +1 -0
- package/dist/public/assets/{BugReportHistory-D_60pb7r.js → BugReportHistory-CaAYnGNR.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-BzJsPoev.js → BugReportHistoryDialog-DFfft492.js} +1 -1
- package/dist/public/assets/ChangedOutsideBadge-Colj6RSy.js +1 -0
- package/dist/public/assets/CodeMirrorPropInput-BPdsBH1q.js +3 -0
- package/dist/public/assets/{ConfigSharingInfoTooltip-BMJ7SIjf.js → ConfigSharingInfoTooltip-QTCODx7g.js} +1 -1
- package/dist/public/assets/{ConsentDialogBody-DWXqUhzJ.js → ConsentDialogBody-U4UzjnaQ.js} +1 -1
- package/dist/public/assets/CopyButton-O0Y9mXoH.js +1 -0
- package/dist/public/assets/DiffView-kKTjtgKq.js +3 -0
- package/dist/public/assets/DocumentContext-e2BbWZTU.js +38 -0
- package/dist/public/assets/EditorModeToggle-DLKntrL5.js +2 -0
- package/dist/public/assets/EnableSyncConfirmDialog-B7V1Wevc.js +1 -0
- package/dist/public/assets/FeedbackForm-YYOLAdPR.js +1 -0
- package/dist/public/assets/{GraphPanel-DZMLD8ni.js → GraphPanel-D3gnL5o6.js} +2 -2
- package/dist/public/assets/ImportSkillDialog-BNwWAA09.js +1 -0
- package/dist/public/assets/{LintConfigEditor-k9WOKYkq.js → LintConfigEditor-BUt6XicS.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-3CrCQfFo.js +2 -0
- package/dist/public/assets/ManagedArtifactProperties-DK6O07ZX.js +1 -0
- package/dist/public/assets/McpConsentDialogBody-CTl5E-Pz.js +1 -0
- package/dist/public/assets/{MermaidDocEditor-CGsfhioE.js → MermaidDocEditor-rdCH3a-W.js} +1 -1
- package/dist/public/assets/{RegisteredAgentIcon-CyQDojW_.js → RegisteredAgentIcon-CHh3fima.js} +1 -1
- package/dist/public/assets/{ReportBugDialogBody-CdEV6nCR.js → ReportBugDialogBody-DfS6oBiL.js} +1 -1
- package/dist/public/assets/SchemaConfigEditor-DaRdC9By.js +1 -0
- package/dist/public/assets/SettingsDialogBody-JKJ7DbBe.js +7 -0
- package/dist/public/assets/{ShareBranchSwitchDialog-jGb4KF7T.js → ShareBranchSwitchDialog-BT-R1a5Z.js} +1 -1
- package/dist/public/assets/ShareReceiveDialog-D7WQ4KbX.js +1 -0
- package/dist/public/assets/ShareReceiveMissDialog-AS-ub3Fc.js +1 -0
- package/dist/public/assets/SkillEditBanner-DPe0it-V.js +1 -0
- package/dist/public/assets/SkillModeBanner-CsKHM-QY.js +1 -0
- package/dist/public/assets/SkillOriginInline-VUn5IDZk.js +1 -0
- package/dist/public/assets/SkillToolbarControls-CzJ4nZzA.js +1 -0
- package/dist/public/assets/SourceEditor-C-cUCtJw.js +1 -0
- package/dist/public/assets/{TerminalPanel-BHN2VN4r.js → TerminalPanel-yzvzgUXS.js} +3 -3
- package/dist/public/assets/TerminalSessionsHost-dj1xA_0P.js +2 -0
- package/dist/public/assets/{TerminalWindowApp-CntBjoWb.js → TerminalWindowApp-B6EhrqIb.js} +1 -1
- package/dist/public/assets/ThreadView-aANZPCSh.js +6 -0
- package/dist/public/assets/TimelineDiffPane-u9qtPOhN.js +2 -0
- package/dist/public/assets/{abnfDiagram-VRR7QNED-Cyah47m9.js → abnfDiagram-VRR7QNED-CYyOqigz.js} +1 -1
- package/dist/public/assets/agent-diff-store-DKxdS6mK.js +1 -0
- package/dist/public/assets/agent-visibility-Dz2lrJHw.js +1 -0
- package/dist/public/assets/{arc-B3aheyNj.js → arc-DpnwTjlg.js} +1 -1
- package/dist/public/assets/architecture-TIHT7OUA-Bl7-zFAE.js +1 -0
- package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-lZYHIfAt.js → architectureDiagram-ZJ3FMSHR-BArScuNA.js} +1 -1
- package/dist/public/assets/arrow-up-right-BZsQghvQ.js +1 -0
- package/dist/public/assets/auth-state-cache-C9Qx3bjQ.js +11 -0
- package/dist/public/assets/badge-DB5BJfSU.js +1 -0
- package/dist/public/assets/{blockDiagram-677ZJIJ3-mULu-3uH.js → blockDiagram-677ZJIJ3-BKdJnykw.js} +1 -1
- package/dist/public/assets/{braces-DwnwFx_V.js → braces-CqiL3TOP.js} +1 -1
- package/dist/public/assets/button-oSXzJYWO.js +1 -0
- package/dist/public/assets/{c4Diagram-LMCZKHZV-DN4YpCzk.js → c4Diagram-LMCZKHZV-BGzHBzYq.js} +1 -1
- package/dist/public/assets/{calendar-DqGTQwGe.js → calendar-C2lP75MI.js} +1 -1
- package/dist/public/assets/{case-sensitive-nl0tWMnZ.js → case-sensitive-DcowXaLf.js} +1 -1
- package/dist/public/assets/channel-Bf_IZmsH.js +1 -0
- package/dist/public/assets/check-DA7_vRdO.js +1 -0
- package/dist/public/assets/checkbox-DYPwCq3O.js +1 -0
- package/dist/public/assets/{chevron-down-Bx9f3tW-.js → chevron-down-BJumc1E_.js} +1 -1
- package/dist/public/assets/chevron-left-D8z-buF6.js +1 -0
- package/dist/public/assets/chevron-right-CgsPV9lV.js +1 -0
- package/dist/public/assets/chunk-2Q5K7J3B-CBNXZghD.js +1 -0
- package/dist/public/assets/{chunk-32BRIVSS-DqkgLIEw.js → chunk-32BRIVSS-DWFi-mYl.js} +1 -1
- package/dist/public/assets/{chunk-52WLFC77-9s8UsQXp.js → chunk-52WLFC77-C3ewIu0v.js} +1 -1
- package/dist/public/assets/{chunk-5FCAYU7R-CkSFjjQr.js → chunk-5FCAYU7R-DH0H_TSt.js} +1 -1
- package/dist/public/assets/{chunk-5HE753X5-C1Ig4mMr.js → chunk-5HE753X5-COZLeOUQ.js} +1 -1
- package/dist/public/assets/{chunk-5JV3BV7I-CIggZV0d.js → chunk-5JV3BV7I-BtSn9e5l.js} +1 -1
- package/dist/public/assets/{chunk-5TONJI2A-BklATmUd.js → chunk-5TONJI2A-CyVAUHQY.js} +1 -1
- package/dist/public/assets/{chunk-5VM5RSS4-g5HeYq-z.js → chunk-5VM5RSS4-DkfDxTnu.js} +1 -1
- package/dist/public/assets/{chunk-7BUUIJ7U-Dw__VSpN.js → chunk-7BUUIJ7U-Bwj5weSU.js} +1 -1
- package/dist/public/assets/{chunk-BIQX33UG-CRLx_yn0.js → chunk-BIQX33UG-WShnA3hi.js} +1 -1
- package/dist/public/assets/{chunk-BO2N2NFS-BptiXfus.js → chunk-BO2N2NFS-0fL-jnUT.js} +4 -4
- package/dist/public/assets/{chunk-C7G6YPKG-CmP7ozUj.js → chunk-C7G6YPKG-JOVwaeql.js} +1 -1
- package/dist/public/assets/{chunk-CQNSW5MT-BZUHEMrz.js → chunk-CQNSW5MT-DmFd2LFl.js} +1 -1
- package/dist/public/assets/{chunk-CYSBUYHQ-BRTRwmYZ.js → chunk-CYSBUYHQ-BOCWcr_T.js} +1 -1
- package/dist/public/assets/{chunk-EMLP6XTP-DHUO1B6Q.js → chunk-EMLP6XTP-_039-Ubh.js} +1 -1
- package/dist/public/assets/{chunk-EX3LRPZG-aq_XJzX2.js → chunk-EX3LRPZG-CMgFCagr.js} +1 -1
- package/dist/public/assets/{chunk-FWX5IMBZ-rnR9hrS_.js → chunk-FWX5IMBZ-C4vKCoUv.js} +2 -2
- package/dist/public/assets/{chunk-HOUHSVGY-D0096-9K.js → chunk-HOUHSVGY-CZX004Ef.js} +1 -1
- package/dist/public/assets/{chunk-ICXQ74PX-BUnmDgqa.js → chunk-ICXQ74PX-B_iuJAXS.js} +1 -1
- package/dist/public/assets/{chunk-JG7HCLWE-BwRUs0j6.js → chunk-JG7HCLWE-CtDpq51e.js} +1 -1
- package/dist/public/assets/{chunk-JWPE2WC7-BOwE-mq8.js → chunk-JWPE2WC7-pDBBV-ex.js} +1 -1
- package/dist/public/assets/{chunk-MOJQB5TN-CYyw3U64.js → chunk-MOJQB5TN-BOLftHeO.js} +1 -1
- package/dist/public/assets/{chunk-MOZMSUNE-_aAOLW1j.js → chunk-MOZMSUNE-B90rFhRO.js} +1 -1
- package/dist/public/assets/{chunk-OGEWGWER-DLH_3q-Z.js → chunk-OGEWGWER-dIUHPavN.js} +1 -1
- package/dist/public/assets/{chunk-OSBZ3O6U-BOkYzK-N.js → chunk-OSBZ3O6U-C8f7zxUa.js} +1 -1
- package/dist/public/assets/{chunk-PUDLZKDR-Co9OjZVi.js → chunk-PUDLZKDR-QPYzmUFw.js} +1 -1
- package/dist/public/assets/{chunk-Q4XR5HBZ-CjNiHUWo.js → chunk-Q4XR5HBZ--1adMSrR.js} +1 -1
- package/dist/public/assets/{chunk-QBLGF6JB-Cf-f1lin.js → chunk-QBLGF6JB-q87mQ87z.js} +1 -1
- package/dist/public/assets/{chunk-R7FJI6CG-C_nyMdyL.js → chunk-R7FJI6CG-B5NnR0wG.js} +1 -1
- package/dist/public/assets/{chunk-RYQCIY6F-DXXN4Rzo.js → chunk-RYQCIY6F-BnIBPlEn.js} +1 -1
- package/dist/public/assets/{chunk-U6XO7XAA-Hw5M1kkd.js → chunk-U6XO7XAA-DuxWv8i1.js} +1 -1
- package/dist/public/assets/{chunk-V7JOEXUC-CLdet7qK.js → chunk-V7JOEXUC-zQePb8W4.js} +1 -1
- package/dist/public/assets/chunk-VAUOI2AC-K9aKY8La.js +1 -0
- package/dist/public/assets/{chunk-VR4S4FIN-CnZ3Jw81.js → chunk-VR4S4FIN-DOfDyz67.js} +1 -1
- package/dist/public/assets/{chunk-WYO6CB5R-C-c-Ja6D.js → chunk-WYO6CB5R-DAcO6KqN.js} +2 -2
- package/dist/public/assets/chunk-XXDRQBXY-CRN6FsNM.js +1 -0
- package/dist/public/assets/{chunk-YOTPTUD7-CBowI675.js → chunk-YOTPTUD7-DSjCnGGQ.js} +1 -1
- package/dist/public/assets/{chunk-ZGVPDNZ5-DfBSa8vW.js → chunk-ZGVPDNZ5-CnXHsnX3.js} +1 -1
- package/dist/public/assets/{chunk-ZIRB5QZD-Cas2Em51.js → chunk-ZIRB5QZD-rA251rHW.js} +1 -1
- package/dist/public/assets/classDiagram-OUVF2IWQ-B8NyhReL.js +1 -0
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-To5zrK6k.js +1 -0
- package/dist/public/assets/client-version-DmJhhHKP.js +1 -0
- package/dist/public/assets/collapsible-BTn3nxAn.js +1 -0
- package/dist/public/assets/{comment-chips-BYH7v5tl.js → comment-chips-i9o0Cefh.js} +2 -2
- package/dist/public/assets/{config-provider-B9kQH9zn.js → config-provider-CYJIA2qw.js} +2 -2
- package/dist/public/assets/{cose-bilkent-JH36ORCC-CzZaHQ2l.js → cose-bilkent-JH36ORCC-BO3tFb1k.js} +1 -1
- package/dist/public/assets/createLucideIcon-BiRV80uZ.js +1 -0
- package/dist/public/assets/cynefin-VYW2F7L2-DjK3ZZKp.js +1 -0
- package/dist/public/assets/{cynefinDiagram-TSTJHNR4-7PYslCmH.js → cynefinDiagram-TSTJHNR4-kMgUnu_c.js} +1 -1
- package/dist/public/assets/{dagre-BeM31D08.js → dagre-DmGue-PX.js} +1 -1
- package/dist/public/assets/{dagre-VKFMJZFB-DsY-o9S9.js → dagre-VKFMJZFB-CgYSDfeg.js} +1 -1
- package/dist/public/assets/{diagram-FQU43EPY-Cc40Oq-m.js → diagram-FQU43EPY-XRWiX7Im.js} +1 -1
- package/dist/public/assets/{diagram-G47NLZAW-DdbiGkJk.js → diagram-G47NLZAW-BzqAYczi.js} +1 -1
- package/dist/public/assets/{diagram-NH7WQ7WH-BoEA_7qN.js → diagram-NH7WQ7WH-CAOpGCwL.js} +1 -1
- package/dist/public/assets/{diagram-OA4YK3LP-ChsGI8c4.js → diagram-OA4YK3LP-CsYFi60N.js} +1 -1
- package/dist/public/assets/{diagram-WEI45ONY-znZ94tAq.js → diagram-WEI45ONY-BPyyv8e3.js} +1 -1
- package/dist/public/assets/dialog-CkjkuWLF.js +5 -0
- package/dist/public/assets/dist-1J1E9P12.js +1 -0
- package/dist/public/assets/{dist-D7mv9smG.js → dist-6Q9yuoli.js} +1 -1
- package/dist/public/assets/dist-BCIZY0Wq.js +1 -0
- package/dist/public/assets/{dist-Dcu3hl7e.js → dist-BK-fqCFD.js} +1 -1
- package/dist/public/assets/{dist-DEamjSXE.js → dist-BM4ov2mK.js} +1 -1
- package/dist/public/assets/dist-BVNHmhkE.js +1 -0
- package/dist/public/assets/{dist-B25wDFyk.js → dist-Bdhn2jv42.js} +1 -1
- package/dist/public/assets/{dist-P9LB04An.js → dist-BkSGIgDv.js} +1 -1
- package/dist/public/assets/dist-C22Eiu6U.js +1 -0
- package/dist/public/assets/{dist-CxGvJvCN.js → dist-C2ZNHEgX.js} +1 -1
- package/dist/public/assets/dist-CEBfbNax.js +1 -0
- package/dist/public/assets/{dist-Dolq1sN0.js → dist-CKHaw45-.js} +1 -1
- package/dist/public/assets/{dist-DlSSwTCj.js → dist-CTPwMRld.js} +1 -1
- package/dist/public/assets/{dist-DmIoqGC0.js → dist-D2AiGKcA.js} +1 -1
- package/dist/public/assets/dist-D57Bktz_.js +1 -0
- package/dist/public/assets/{dist-CsRIthsw2.js → dist-DA8rIjtg.js} +1 -1
- package/dist/public/assets/dist-DcPsSRVd.js +1 -0
- package/dist/public/assets/{dist-BMMI5Kdg.js → dist-Dqtgp0QD2.js} +1 -1
- package/dist/public/assets/dist-Dyi4atb6.js +1 -0
- package/dist/public/assets/{dist-DdFyq-YY.js → dist-FPlC48Ke.js} +1 -1
- package/dist/public/assets/{dist-C7VIqwIG.js → dist-MQd-Irtl.js} +1 -1
- package/dist/public/assets/{dist-C4Kl8QaT.js → dist-_8wb0R99.js} +1 -1
- package/dist/public/assets/{dist-DJbbCXtB.js → dist-fOA99pqU2.js} +184 -182
- package/dist/public/assets/doc-paths-C6A87aH3.js +1 -0
- package/dist/public/assets/documents-events-Dr9N-4vu.js +1 -0
- package/dist/public/assets/download-D3RTVXwv.js +1 -0
- package/dist/public/assets/dropdown-menu-D2umi56L.js +1 -0
- package/dist/public/assets/{ebnfDiagram-CCIWWBDH-DX6whEUG.js → ebnfDiagram-CCIWWBDH-CUTAjine.js} +1 -1
- package/dist/public/assets/{erDiagram-Q63AITRT-CgloxApp.js → erDiagram-Q63AITRT-BSu96D8g.js} +1 -1
- package/dist/public/assets/es2015-Du0OjwY5.js +41 -0
- package/dist/public/assets/{esm-QF0-_nlB.js → esm-DbmiTy2g.js} +1 -1
- package/dist/public/assets/eventmodeling-45OFAUF4-C3gCuhXd.js +1 -0
- package/dist/public/assets/{eye-CASw1HTi.js → eye-yERBaQWj.js} +1 -1
- package/dist/public/assets/field-i4kPdg1V.js +1 -0
- package/dist/public/assets/file-tree-adapter-CvmXjY-P.js +1 -0
- package/dist/public/assets/file-tree-utils-DL3JhHtX.js +1 -0
- package/dist/public/assets/flowDiagram-23GEKE2U-V8thnmzy.js +1 -0
- package/dist/public/assets/folder-8ceGqZIO.js +1 -0
- package/dist/public/assets/folder-config-api-DdtJAaIR.js +1 -0
- package/dist/public/assets/{folder-open-wLd69QUc.js → folder-open-CvyyCBOn.js} +1 -1
- package/dist/public/assets/follow-file-BpD8YozT.js +1 -0
- package/dist/public/assets/form-lIFpKMVU.js +1 -0
- package/dist/public/assets/{ganttDiagram-NO4QXBWP-BZQXYXPf.js → ganttDiagram-NO4QXBWP-Crrr-q7s.js} +1 -1
- package/dist/public/assets/{git-branch-CMJAiYLz.js → git-branch-oPfvsh1I.js} +1 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-BERn_Vnm.js +1 -0
- package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-DnT15zfc.js → gitGraphDiagram-IHSO6WYX-BdMHODo-.js} +1 -1
- package/dist/public/assets/{globals-CdX3jOLC.js → globals-B5uVOYYT.js} +2 -2
- package/dist/public/assets/globals-C6R3KMxA.css +1 -0
- package/dist/public/assets/{graphlib-CIYGRnfF.js → graphlib-DIVfLvlR.js} +1 -1
- package/dist/public/assets/{hash-DNKDqZ18.js → hash-DP25l_li.js} +1 -1
- package/dist/public/assets/{highlighted-body-OFNGDK62-DN5QVB2g.js → highlighted-body-OFNGDK62-Cue0vPGT.js} +1 -1
- package/dist/public/assets/index-DoyHoCFU.js +2092 -0
- package/dist/public/assets/{info-yKMseklR.js → info-Bza7Xa6D.js} +1 -1
- package/dist/public/assets/info-DKCQHKI2-xuBgM0S3.js +1 -0
- package/dist/public/assets/{infoDiagram-FWYZ7A6U-CPJF9vn1.js → infoDiagram-FWYZ7A6U-_RNxdwPC.js} +1 -1
- package/dist/public/assets/input-C4n4n5Hc.js +1 -0
- package/dist/public/assets/input-group-C_H5NgPX.js +1 -0
- package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-CPmyb7Oh.js → ishikawaDiagram-FXEZZL3T-BbXzN7UF.js} +1 -1
- package/dist/public/assets/{journeyDiagram-5HDEW3XC-DHsl5S9z.js → journeyDiagram-5HDEW3XC-BqwkEnJh.js} +1 -1
- package/dist/public/assets/{kanban-definition-HUTT4EX6-BS2xX-qh.js → kanban-definition-HUTT4EX6-CX-ROP0U.js} +1 -1
- package/dist/public/assets/{label-DyipnO5I.js → label-Ds0LTB-Z.js} +1 -1
- package/dist/public/assets/{line-PfwSO0Y4.js → line-D0lohJ6a.js} +1 -1
- package/dist/public/assets/{linear-DY7zcaob.js → linear-By98wvuz.js} +1 -1
- package/dist/public/assets/lint-config-client-Cc5n1dKz.js +1 -0
- package/dist/public/assets/loader-circle-Cn2Xr4cN.js +1 -0
- package/dist/public/assets/{map-B5g_BAkn.js → map-XagOZNs9.js} +1 -1
- package/dist/public/assets/markdownlint-rule-browser-C5r1T2gD.js +1 -0
- package/dist/public/assets/mermaid-GHXKKRXX-CFTslKYT.js +1 -0
- package/dist/public/assets/{mermaid-parser.core-DtiAO5KW.js → mermaid-parser.core-DtOR1aVt.js} +2 -2
- package/dist/public/assets/{mermaid.core-2-fa7F6R.js → mermaid.core-DFRkYHGF.js} +3 -3
- package/dist/public/assets/{mindmap-definition-LN4V7U3C-CTVrQgzc.js → mindmap-definition-LN4V7U3C-BPq8CY-V.js} +1 -1
- package/dist/public/assets/minus-CBRjUXY7.js +1 -0
- package/dist/public/assets/{miss-dialog-store-Bx4JLuKB.js → miss-dialog-store-DBqQ_Nyn.js} +1 -1
- package/dist/public/assets/navigation-targets-CgViVl5N.js +1 -0
- package/dist/public/assets/{now-bAD2ZsK-.js → now-BJ6wHiq6.js} +1 -1
- package/dist/public/assets/open-managed-artifact-tab-B9P9gMUF.js +1 -0
- package/dist/public/assets/{ordinal-Dj8tTCMd.js → ordinal-BhGTF2Fp.js} +1 -1
- package/dist/public/assets/packet-7NZHBO7P-DhQWKabl.js +1 -0
- package/dist/public/assets/panel-FwLLPu5s.js +1 -0
- package/dist/public/assets/{panel-right-open-CWgBRlZa.js → panel-right-open-ChixO1pm.js} +1 -1
- package/dist/public/assets/{paperclip-FiPqbd6f.js → paperclip-CFZOhV8C.js} +1 -1
- package/dist/public/assets/{pegDiagram-2B236MQR-DVy6JL4F.js → pegDiagram-2B236MQR-Bs6HaUdW.js} +1 -1
- package/dist/public/assets/pending-receive-nav-store-lElziPqC.js +1 -0
- package/dist/public/assets/pie-RZYD4A2V-DaewLp2Y.js +1 -0
- package/dist/public/assets/{pieDiagram-ENE6RG2P-Kxbx45IP.js → pieDiagram-ENE6RG2P-BBo6EMS4.js} +1 -1
- package/dist/public/assets/{project-paths-DdZAF_-I.js → project-paths-Cgrv2qcw.js} +1 -1
- package/dist/public/assets/prop-types-Bzfc0oqg.js +1 -0
- package/dist/public/assets/{propagation-api-OHat7V1z.js → propagation-api-DCmicIMI.js} +1 -1
- package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-BbCFEjhq.js → quadrantDiagram-ABIIQ3AL-qmZeOoSr.js} +1 -1
- package/dist/public/assets/radar-I7S5WNFK-DljmjJ2C.js +1 -0
- package/dist/public/assets/radio-group-DFFiLDEM.js +1 -0
- package/dist/public/assets/railroad-3IZDKUUU-6CgLOfBJ.js +1 -0
- package/dist/public/assets/railroad-abnf-AHOZXSZD-DQ60e1aW.js +1 -0
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-Da8xQ_1N.js +1 -0
- package/dist/public/assets/railroad-peg-LSFZ7HO6-CDOeiUF5.js +1 -0
- package/dist/public/assets/{railroadDiagram-RFXS5EU6-6SEpaCgo.js → railroadDiagram-RFXS5EU6-DE_EvwtV.js} +1 -1
- package/dist/public/assets/{receive-store-C8NL_Ow-.js → receive-store-Bz-bzj4g.js} +1 -1
- package/dist/public/assets/{refresh-cw-DClG_qgN.js → refresh-cw-D3t5sdqM.js} +1 -1
- package/dist/public/assets/{requirementDiagram-TGXJPOKE-brbJ6VUS.js → requirementDiagram-TGXJPOKE-BZ-rKt8B.js} +1 -1
- package/dist/public/assets/{sankeyDiagram-HTMAVEWB-DT0MK3ep.js → sankeyDiagram-HTMAVEWB-B9AZEJIc.js} +1 -1
- package/dist/public/assets/{schema-fields-view-intent-CDu72Aty.js → schema-fields-view-intent-SQVE5W3s.js} +1 -1
- package/dist/public/assets/select-DyVZCohx.js +1 -0
- package/dist/public/assets/{selection-context-BNYOSYyM.js → selection-context-DdcFoUdp.js} +1 -1
- package/dist/public/assets/{separator-DExEeoYE.js → separator-4_yBRx-q.js} +1 -1
- package/dist/public/assets/{sequenceDiagram-DBY2YBRQ-BPJt9blB.js → sequenceDiagram-DBY2YBRQ-DR0l3jeO.js} +1 -1
- package/dist/public/assets/{sizeCapture-X5ZJPWSS-1l7G4SwD.js → sizeCapture-X5ZJPWSS-CK3vwB3X.js} +1 -1
- package/dist/public/assets/skeleton-BlTc8h6X.js +1 -0
- package/dist/public/assets/skill-actions-DCU7_Sac.js +2 -0
- package/dist/public/assets/skill-scope-CYrWegR8.js +1 -0
- package/dist/public/assets/skills-api-CC0Fy08A.js +1 -0
- package/dist/public/assets/square-pen-wqme9vlv.js +1 -0
- package/dist/public/assets/{src-U1RHfo7d.js → src-BULLuFw_.js} +1 -1
- package/dist/public/assets/{src-CaBa9Z1L.js → src-DsJU4LsJ.js} +1 -1
- package/dist/public/assets/{stateDiagram-2N3HPSRC-QGlUFt6h.js → stateDiagram-2N3HPSRC-DEWfQHsO.js} +1 -1
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-aJyvpelO.js +1 -0
- package/dist/public/assets/{swimlanes-5IMT3BWC-BHsr6MBF.js → swimlanes-5IMT3BWC-B6x4Ld9j.js} +2 -2
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-NoFAxBaw.js +8 -0
- package/dist/public/assets/switch-CsstPO-E.js +1 -0
- package/dist/public/assets/tabs-C8ykgpIi.js +1 -0
- package/dist/public/assets/tag-pill-input-7XN11_mj.js +1 -0
- package/dist/public/assets/target-navigation-intent-D2OBNu7k.js +1 -0
- package/dist/public/assets/{telemetry-impl-DV07MMfz.js → telemetry-impl-D4kQ8pzt.js} +2 -2
- package/dist/public/assets/telemetry-startup-B15S0fJ7.js +1 -0
- package/dist/public/assets/terminal-input-events-B8xUcID4.js +1 -0
- package/dist/public/assets/terminal-launch-events-nCAKTwef.js +1 -0
- package/dist/public/assets/{terminal-telemetry-CvNM4wYv.js → terminal-telemetry-vp1G0ekC.js} +1 -1
- package/dist/public/assets/textarea-DKb-eo87.js +1 -0
- package/dist/public/assets/{thread-client-CSOJeVWW.js → thread-client-KM4rZX_M.js} +1 -1
- package/dist/public/assets/{timeline-definition-FHXFAJF6-DitS4FqW.js → timeline-definition-FHXFAJF6-DB7l9JZO.js} +1 -1
- package/dist/public/assets/timeline-diff-store-C89mH-2r.js +1 -0
- package/dist/public/assets/{toggle-group-CjXmmTGy.js → toggle-group-DMfnQ5Pd.js} +1 -1
- package/dist/public/assets/tooltip-DkZ6fphS.js +1 -0
- package/dist/public/assets/{trash-2-DE3a7L75.js → trash-2-5vqPZUBk.js} +1 -1
- package/dist/public/assets/treeView-QDETBFTQ-Ds4YBLMo.js +1 -0
- package/dist/public/assets/treemap-6X3UGDF4-D2ccHx16.js +1 -0
- package/dist/public/assets/{triangle-alert-Bcc1P5yx.js → triangle-alert-BwCftF1V.js} +1 -1
- package/dist/public/assets/typing-burst-detector-DlPntV7a.js +8 -0
- package/dist/public/assets/undo-2-BRIW1mxN.js +1 -0
- package/dist/public/assets/uninstall-m1tFru3-.js +1 -0
- package/dist/public/assets/use-activity-panel--7zr9R-m.js +1 -0
- package/dist/public/assets/use-apply-config-color-theme-CFiJF3-G.js +2 -0
- package/dist/public/assets/use-collab-url-CVCbUQ9-.js +1 -0
- package/dist/public/assets/{use-live-xterm-theme-B2MdP4nP.js → use-live-xterm-theme-CAutS4BK.js} +1 -1
- package/dist/public/assets/use-open-skill-CxYgcPyr.js +1 -0
- package/dist/public/assets/use-settings-route-b4_ubAQl.js +1 -0
- package/dist/public/assets/use-skill-directory-DacYw073.js +1 -0
- package/dist/public/assets/use-skills-CQ-I1uBW.js +1 -0
- package/dist/public/assets/use-terminal-enabled-Czv-AS7W.js +1 -0
- package/dist/public/assets/use-timeline-entry-diff--zp5POjE.js +6 -0
- package/dist/public/assets/use-workspace-DoTTAGcg.js +1 -0
- package/dist/public/assets/{vennDiagram-L72KCM5P-D7jabRjK.js → vennDiagram-L72KCM5P-D6bPpaIm.js} +1 -1
- package/dist/public/assets/wardley-OPB4EBWU-JuWm1scq.js +1 -0
- package/dist/public/assets/{wardleyDiagram-EHGQE667-C3olh_ef.js → wardleyDiagram-EHGQE667-9U25ZM8P.js} +1 -1
- package/dist/public/assets/{wrench-4e3jxe5l.js → wrench-CqOvU1qQ.js} +1 -1
- package/dist/public/assets/x-C6kVbc_i.js +1 -0
- package/dist/public/assets/{xychartDiagram-FW5EYKEG-WqIWQJdh.js → xychartDiagram-FW5EYKEG-WSgFIUEO.js} +1 -1
- package/dist/public/index.html +148 -138
- package/dist/public/uninstall.html +26 -25
- package/dist/{repair-launch-json-CvIvu8iY.mjs → repair-launch-json-DKnGHC3s.mjs} +2 -2
- package/dist/{repair-mcp-configs-Bm9hjjRi.mjs → repair-mcp-configs-BNqk430t.mjs} +2 -2
- package/dist/repair-skills-COiT9pxq.mjs +1 -0
- package/dist/repair-skills-HLaZ-M-Y.mjs +4 -0
- package/dist/server-lock-DTx_HmnT.mjs +1 -0
- package/dist/{server-lock-D7crxuP7.mjs → server-lock-N4bxkmqA.mjs} +2 -2
- package/dist/{src-DPfeLt-2.mjs → src-B9fZz8CV.mjs} +6 -6
- package/dist/{src-DmtkLnli.mjs → src-BAuCUhtO.mjs} +121 -120
- package/dist/src-BldBF2Y_.mjs +1 -0
- package/dist/src-CBxmkYgG.mjs +2030 -0
- package/dist/{start-CbJoa5l7.mjs → start-CGRdHb1G.mjs} +3 -3
- package/dist/start-uD8bt0wq.mjs +1 -0
- package/dist/{write-project-skill-BzhJIXSv.mjs → write-project-skill-DZsw6Rkw.mjs} +4 -4
- package/package.json +4 -4
- package/dist/assets/skills/project/references/workflow-guides.md +0 -30
- package/dist/constants-CScYQw9V.mjs +0 -2
- package/dist/git-handle-DyS9-xsk.mjs +0 -1
- package/dist/init-BIInZq9o.mjs +0 -1
- package/dist/loader-BC9hZLNV.mjs +0 -1
- package/dist/md-manager-BWTSpVXC.mjs +0 -2
- package/dist/preview-DrXnMxVX.mjs +0 -1
- package/dist/public/assets/ActivityModeContent-BquAhT5x.js +0 -1
- package/dist/public/assets/AppMenubar-DHWqgWXl.js +0 -1
- package/dist/public/assets/CodeMirrorPropInput-DOcEkWLX.js +0 -3
- package/dist/public/assets/CopyButton-1Q6Wnnjb.js +0 -1
- package/dist/public/assets/DocumentContext-uE-Jpe8-.js +0 -38
- package/dist/public/assets/EditorModeToggle-DBmNyzRU.js +0 -2
- package/dist/public/assets/EnableSyncConfirmDialog-Dufpw3Xm.js +0 -1
- package/dist/public/assets/FeedbackForm-CuzqS5aL.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-xXR4EKXf.js +0 -1
- package/dist/public/assets/McpConsentDialogBody-CHmK7aXE.js +0 -1
- package/dist/public/assets/PropertyPanel-C0kyK4Hh.js +0 -2
- package/dist/public/assets/SchemaConfigEditor-BFx4ZhVm.js +0 -1
- package/dist/public/assets/SettingsDialogBody-Chz13SZG.js +0 -7
- package/dist/public/assets/ShareReceiveDialog-C7_nVZOF.js +0 -1
- package/dist/public/assets/ShareReceiveMissDialog-Dv1nzqQa.js +0 -1
- package/dist/public/assets/SkillEditorActions-2WrfNbQp.js +0 -1
- package/dist/public/assets/SourceEditor-CmpVF187.js +0 -1
- package/dist/public/assets/TerminalSessionsHost-Yz2cECTk.js +0 -2
- package/dist/public/assets/ThreadView-loAOfVAD.js +0 -6
- package/dist/public/assets/TimelineDiffPane-C5gRZMQN.js +0 -2
- package/dist/public/assets/agent-diff-store-BvRAZqCN.js +0 -1
- package/dist/public/assets/agent-visibility-DJ6Bc0aU.js +0 -1
- package/dist/public/assets/architecture-TIHT7OUA-BfFQVb2N.js +0 -1
- package/dist/public/assets/arrow-up-right-obRIg3Sv.js +0 -1
- package/dist/public/assets/auth-state-cache-CEu3ZBI_.js +0 -11
- package/dist/public/assets/badge-DXHoKHez.js +0 -1
- package/dist/public/assets/button-Gol9BgNB.js +0 -1
- package/dist/public/assets/channel-D04u7HkE.js +0 -1
- package/dist/public/assets/check-GqWaoTdV.js +0 -1
- package/dist/public/assets/checkbox-BkZH9Oy1.js +0 -1
- package/dist/public/assets/chevron-left-BQ6OM94c.js +0 -1
- package/dist/public/assets/chevron-right-C8oTR6gu.js +0 -1
- package/dist/public/assets/chunk-2Q5K7J3B-Cczs20mb.js +0 -1
- package/dist/public/assets/chunk-VAUOI2AC-D9H5NlkH.js +0 -1
- package/dist/public/assets/chunk-XXDRQBXY-BjAUTr8E.js +0 -1
- package/dist/public/assets/classDiagram-OUVF2IWQ-BCgYs9Pk.js +0 -1
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-BpVLL4-U.js +0 -1
- package/dist/public/assets/client-version-MIkctMik.js +0 -1
- package/dist/public/assets/collapsible-B1mS1n9y.js +0 -1
- package/dist/public/assets/config-context-D3FvmHZm.js +0 -1
- package/dist/public/assets/copy-9EDFYcyR.js +0 -1
- package/dist/public/assets/createLucideIcon-DAkhoPjT.js +0 -1
- package/dist/public/assets/cynefin-VYW2F7L2-BVFEANjh.js +0 -1
- package/dist/public/assets/dialog-6-bc7qPg.js +0 -5
- package/dist/public/assets/dist-BJa2CfR3.js +0 -1
- package/dist/public/assets/dist-BNcdLYQI.js +0 -1
- package/dist/public/assets/dist-BjDuLI_j.js +0 -1
- package/dist/public/assets/dist-D6h-uzOv.js +0 -1
- package/dist/public/assets/dist-DAU1MdSo.js +0 -1
- package/dist/public/assets/dist-DPWWCZ4h.js +0 -1
- package/dist/public/assets/dist-nHZgBxFS.js +0 -1
- package/dist/public/assets/doc-hash-BbU2eA08.js +0 -1
- package/dist/public/assets/documents-events-C-mYs64z.js +0 -1
- package/dist/public/assets/dropdown-menu-xw8WTdb-.js +0 -1
- package/dist/public/assets/es2015-BNlmLq62.js +0 -41
- package/dist/public/assets/eventmodeling-45OFAUF4-usNuB_rF.js +0 -1
- package/dist/public/assets/field-BNyAQHKf.js +0 -1
- package/dist/public/assets/file-tree-adapter-c4ru9pmD.js +0 -1
- package/dist/public/assets/file-tree-utils-Lc0SvgnU.js +0 -1
- package/dist/public/assets/flowDiagram-23GEKE2U-CDs0Vlps.js +0 -1
- package/dist/public/assets/follow-file-BVJ6G9Hs.js +0 -1
- package/dist/public/assets/form-gDsa08Xi.js +0 -1
- package/dist/public/assets/gitGraph-TEB2WS4Q-DXc_YvuI.js +0 -1
- package/dist/public/assets/globals-Cf_md-qZ.css +0 -1
- package/dist/public/assets/index-DVlIcKqo.js +0 -2014
- package/dist/public/assets/info-DKCQHKI2-C0DL9Ht0.js +0 -1
- package/dist/public/assets/input-D4OPkja2.js +0 -1
- package/dist/public/assets/lint-config-client-DJg7YDu3.js +0 -1
- package/dist/public/assets/loader-circle-Cg5SU7AZ.js +0 -1
- package/dist/public/assets/markdownlint-rule-browser-6yvn3dt6.js +0 -1
- package/dist/public/assets/mermaid-GHXKKRXX-C9klxgAS.js +0 -1
- package/dist/public/assets/minus-CI_HyT1V.js +0 -1
- package/dist/public/assets/navigation-targets-DwSgIIy0.js +0 -1
- package/dist/public/assets/open-managed-artifact-tab-Dpz9X1m_.js +0 -1
- package/dist/public/assets/packet-7NZHBO7P-BpFruX6n.js +0 -1
- package/dist/public/assets/panel-BbxjQP3-.js +0 -1
- package/dist/public/assets/pending-receive-nav-store-t5K6mYGs.js +0 -1
- package/dist/public/assets/pie-RZYD4A2V-lVpCCOkJ.js +0 -1
- package/dist/public/assets/prop-types-65NJPmd-.js +0 -1
- package/dist/public/assets/radar-I7S5WNFK-Bd-i9axl.js +0 -1
- package/dist/public/assets/radio-group-CGEdWasQ.js +0 -1
- package/dist/public/assets/railroad-3IZDKUUU-D6ewe_eA.js +0 -1
- package/dist/public/assets/railroad-abnf-AHOZXSZD-DKqyYXL-.js +0 -1
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-CtMezBX2.js +0 -1
- package/dist/public/assets/railroad-peg-LSFZ7HO6-DJ-63J6n.js +0 -1
- package/dist/public/assets/skeleton-Mo1oLtEu.js +0 -1
- package/dist/public/assets/skill-actions-ByBHG3Gh.js +0 -1
- package/dist/public/assets/skills-api-DWPhWBud.js +0 -1
- package/dist/public/assets/sliders-horizontal-BNv-Koqw.js +0 -1
- package/dist/public/assets/square-pen-C1vIlMAW.js +0 -1
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-D_6D-nLI.js +0 -1
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-cqXTLbrM.js +0 -8
- package/dist/public/assets/switch-DYic2V-1.js +0 -1
- package/dist/public/assets/tag-pill-input-BHj4spSb.js +0 -1
- package/dist/public/assets/target-navigation-intent-B5jnqgZ_.js +0 -1
- package/dist/public/assets/telemetry-startup-Cy1VVosp.js +0 -1
- package/dist/public/assets/terminal-input-events-C5UuEsAB.js +0 -1
- package/dist/public/assets/terminal-launch-events-CtZeptxC.js +0 -1
- package/dist/public/assets/textarea-bScbzsdX.js +0 -1
- package/dist/public/assets/timeline-diff-store-BwCud4Ug.js +0 -1
- package/dist/public/assets/tooltip-B4J7VHmA.js +0 -1
- package/dist/public/assets/treeView-QDETBFTQ-CuznZlQn.js +0 -1
- package/dist/public/assets/treemap-6X3UGDF4-DCd6umeO.js +0 -1
- package/dist/public/assets/typing-burst-detector-CZREoy8B.js +0 -8
- package/dist/public/assets/uninstall-CA1cQCnA.js +0 -1
- package/dist/public/assets/use-activity-panel-DWxDopZd.js +0 -1
- package/dist/public/assets/use-apply-config-color-theme-DSCn9I0W.js +0 -2
- package/dist/public/assets/use-collab-url-CE02D4PJ.js +0 -1
- package/dist/public/assets/use-settings-route-BX1P2p9-.js +0 -1
- package/dist/public/assets/use-terminal-enabled-BlXFMDFQ.js +0 -1
- package/dist/public/assets/use-timeline-entry-diff-BI1BVnmy.js +0 -6
- package/dist/public/assets/use-workspace-DcPrrukl.js +0 -1
- package/dist/public/assets/wardley-OPB4EBWU-DH0Qf9r4.js +0 -1
- package/dist/public/assets/workspace-paths-CU85-ZRd.js +0 -1
- package/dist/public/assets/x-Du5jsNHa.js +0 -1
- package/dist/repair-skills-BHY_AeM4.mjs +0 -4
- package/dist/repair-skills-CUT1NbJx.mjs +0 -1
- package/dist/server-lock-CG809RrD.mjs +0 -1
- package/dist/src-D4iCDwsy.mjs +0 -1
- package/dist/src-T1lGYBC1.mjs +0 -3275
- package/dist/start-Bc8dmiQL.mjs +0 -1
- /package/dist/public/assets/{ActivityPanelDiffView-DYFlG61N.js → ActivityPanelDiffView-ZX0cv7Dl.js} +0 -0
- /package/dist/public/assets/{__vite-browser-external-z7jTWlYs.js → __vite-browser-external-DwydhYHF.js} +0 -0
- /package/dist/public/assets/{agent-presence-BdWbAeV-.js → agent-presence-BcWu61SE.js} +0 -0
- /package/dist/public/assets/{array-CC6md2n_.js → array-DpLqdF3L.js} +0 -0
- /package/dist/public/assets/{chunk-KEIR6QF5-BppCe61B.js → chunk-KEIR6QF5-Bf0oDx3Z.js} +0 -0
- /package/dist/public/assets/{chunk-Y2CYZVJY-CP7lNZai.js → chunk-Y2CYZVJY-PbmsUfAu.js} +0 -0
- /package/dist/public/assets/{clike-BAopx-wt.js → clike-BrXLgO2o.js} +0 -0
- /package/dist/public/assets/{clipboard-adapter-ZCy01ehf.js → clipboard-adapter-B3lKEXcw.js} +0 -0
- /package/dist/public/assets/{colors-QyrgP4ww.js → colors-B-WRw0bG.js} +0 -0
- /package/dist/public/assets/{copilot-BiqH8PgI.js → copilot-BkvifxDd.js} +0 -0
- /package/dist/public/assets/{cursor-BDHSyD-9.js → cursor-D-FuCbK1.js} +0 -0
- /package/dist/public/assets/{cytoscape.esm-Ci36Fm6r.js → cytoscape.esm-BkIkmBTc.js} +0 -0
- /package/dist/public/assets/{defaultLocale-ByXO85kN.js → defaultLocale-DoD61tXl.js} +0 -0
- /package/dist/public/assets/{desktop-bridge-types-DHaZbwZ0.js → desktop-bridge-types-5ScET3Cg.js} +0 -0
- /package/dist/public/assets/{diff-KHO8LkSI.js → diff-DTEjW6Ec.js} +0 -0
- /package/dist/public/assets/{dist-B8I5m7M1.js → dist-BVbCw0G-.js} +0 -0
- /package/dist/public/assets/{dist-Cljnhi3D.js → dist-CA7QPULb.js} +0 -0
- /package/dist/public/assets/{dist-DFt8VaPU.js → dist-CF921uP8.js} +0 -0
- /package/dist/public/assets/{dist-Bpk5HQQh.js → dist-D4eaXg-1.js} +0 -0
- /package/dist/public/assets/{dist-BCZq3DKc.js → dist-DuwTJb1j.js} +0 -0
- /package/dist/public/assets/{documents-fetch-Db-Ikele.js → documents-fetch-AfOPbdF_.js} +0 -0
- /package/dist/public/assets/{external-link-Ct0_ujyY.js → external-link-LAxhzgCI.js} +0 -0
- /package/dist/public/assets/{file-tree-rename-validation-DDA1ck2Y.js → file-tree-rename-validation-CkkVvtpx.js} +0 -0
- /package/dist/public/assets/{floating-ui.dom-DxCSXcm6.js → floating-ui.dom-DQ0F0qgY.js} +0 -0
- /package/dist/public/assets/{format-4tjAvLkN.js → format-Bj7zR862.js} +0 -0
- /package/dist/public/assets/{go-7c8IMl4m.js → go-D3-a1upg.js} +0 -0
- /package/dist/public/assets/{init-CL1Yxhhi.js → init-D0AX7DDe.js} +0 -0
- /package/dist/public/assets/{isObject-5PVyZ800.js → isObject-Bs1dF4ay.js} +0 -0
- /package/dist/public/assets/{katex-BlgnTlTx.js → katex-DGLcd7nU.js} +0 -0
- /package/dist/public/assets/{lib-Iu39CNZE.js → lib-RJCjKODX.js} +0 -0
- /package/dist/public/assets/{libesm-WVpTb_tB.js → libesm-D5Z2fjiR.js} +0 -0
- /package/dist/public/assets/{lint-plugin-meta-BoxMoaxR.js → lint-plugin-meta-DEfDN-Lf.js} +0 -0
- /package/dist/public/assets/{lru-string-cache-7Y9kMeow.js → lru-string-cache-CHVwK1CS.js} +0 -0
- /package/dist/public/assets/{lua-DnREcbBQ.js → lua-B71IklsF.js} +0 -0
- /package/dist/public/assets/{markdownit-YwcN3EvW.js → markdownit-BIJhOARi.js} +0 -0
- /package/dist/public/assets/{mcp-consent-store-CDAQY6Np.js → mcp-consent-store-B7QM8uoo.js} +0 -0
- /package/dist/public/assets/{min-DVq-2erP.js → min-nSRrTGDE.js} +0 -0
- /package/dist/public/assets/{overlay-layers-Dhz8IqAf.js → overlay-layers-cTOQ-1PW.js} +0 -0
- /package/dist/public/assets/{panzoom.es-D0o6IaL6.js → panzoom.es-D_Inq3Bn.js} +0 -0
- /package/dist/public/assets/{parse-api-error-BtEL2kxi.js → parse-api-error-CqQte8A1.js} +0 -0
- /package/dist/public/assets/{path-BGTOauh6.js → path-rUjnF-It.js} +0 -0
- /package/dist/public/assets/{pdf-DLVdEoR9.js → pdf-B6i840eQ.js} +0 -0
- /package/dist/public/assets/{pdf.worker-Cuhr1SjJ.js → pdf.worker-BVtQmJKT.js} +0 -0
- /package/dist/public/assets/{perl-D6YK7dbe.js → perl-B5Ul8OcV.js} +0 -0
- /package/dist/public/assets/{properties-BPzWpIa7.js → properties-CWbs0haa.js} +0 -0
- /package/dist/public/assets/{r-tzVlUzeq.js → r-DcrAlDW2.js} +0 -0
- /package/dist/public/assets/{rough.esm-kQd3CdGR.js → rough.esm-BfebUORF.js} +0 -0
- /package/dist/public/assets/{ruby-_eAC-08N.js → ruby-i1xYQ9jV.js} +0 -0
- /package/dist/public/assets/{share-metadata-rows-Ds3RIKZ4.js → share-metadata-rows-aPZCgxxk.js} +0 -0
- /package/dist/public/assets/{shell-CRkrz4LQ.js → shell-cUw_P8eQ.js} +0 -0
- /package/dist/public/assets/{sortable.esm-_jt9EfAF.js → sortable.esm-ByX1chKY.js} +0 -0
- /package/dist/public/assets/{sql-BtxU5QDI.js → sql-xiwUJ94E.js} +0 -0
- /package/dist/public/assets/{src-BJaEWo8x.js → src-DkpCd49O.js} +0 -0
- /package/dist/public/assets/{startup-marks-CyxDWRgR.js → startup-marks-BHZdrXwz.js} +0 -0
- /package/dist/public/assets/{stex-EWGki41Z.js → stex-rJmw0eOd.js} +0 -0
- /package/dist/public/assets/{swift-BmtuXdIg.js → swift-Cl1DeyT6.js} +0 -0
- /package/dist/public/assets/{thread-draft-staging-CKJIG41d.js → thread-draft-staging-t1CtDp8W.js} +0 -0
- /package/dist/public/assets/{toml-yD0H4nkp.js → toml-B2JpJCpy.js} +0 -0
- /package/dist/public/assets/{trace-api-DHyWZzIa.js → trace-api-C3cW9MnH.js} +0 -0
- /package/dist/public/assets/{use-installed-clis-8r2iSkgN.js → use-installed-clis-BR1AXhaE.js} +0 -0
- /package/dist/public/assets/{useLintConfigViewMode-CyzSEZ5z.js → useLintConfigViewMode-eMibVVkV.js} +0 -0
- /package/dist/public/assets/{w3c-keyname-DtWCia6R.js → w3c-keyname-DKgbz_c6.js} +0 -0
- /package/dist/public/assets/{worktree-store-B-NxI13K.js → worktree-store-Cn9IFis3.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{F as e,R as t}from"./src-DmtkLnli.mjs";import{Gr as n,Qr as r,a as i,dn as a}from"./src-T1lGYBC1.mjs";import{C as o,w as s}from"./write-project-skill-BzhJIXSv.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-Bhr8FI29.mjs";import{n as d}from"./constants-CScYQw9V.mjs";import{spawn as f}from"node:child_process";import{basename as p,join as m,posix as h,resolve as g,win32 as _}from"node:path";import{closeSync as v,existsSync as y,mkdirSync as b,openSync as x,statSync as S}from"node:fs";import{homedir as C}from"node:os";import{rm as w}from"node:fs/promises";import{setTimeout as T}from"node:timers/promises";function E(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function D(e,t,r={}){let i=(r.spawn??f)(e,[...t],n({detached:!0,stdio:`ignore`,env:E(r.env??process.env)}));return i.unref(),i}const O=`OpenKnowledge.app`,k=`/Applications/${O}`;function A(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return S(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function j(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(M(e,k))return k;let t=m(e.homeDir??C(),`Applications`,O);return M(e,t)?t:null}function M(e,t){return N(e,m(t,`Contents`,`MacOS`,`OpenKnowledge`))}function N(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const ee=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function P(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of ee){let r=_.join(t,`Programs`,n,`OpenKnowledge.exe`);if(N(e,r))return r}return null}function F(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return N(e,t)?t:null}function I(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?j(e):e.platform===`win32`?P(e):F(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:!(e.isTTY===!0||e.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function L(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){D(`open`,[`-b`,`com.inkeep.open-knowledge`],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}D(i,[],{spawn:e.spawn})}function R(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function z(e){return h.join(h.dirname(e),`..`,`Frameworks`,`OpenKnowledge Server.app`,`Contents`,`MacOS`,`OpenKnowledge Helper`)}const te=/\/[^/]+\.app\/Contents\/MacOS\/[^/]+$/;function ne(e){if(e.platform!==`darwin`||!te.test(e.execPath))return null;let t=z(e.execPath);return e.exists(t)?t:null}function B(e={}){let t=e.execPath??process.execPath,n=e.platform??process.platform,r=e.argv??process.argv,i=e.exists??y,a=r[1];return a?{command:ne({execPath:t,platform:n,exists:i})??t,prefixArgs:[a]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(r)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function V(e,t){return e.host??t.HOST??`127.0.0.1`}function H(e,t){return t&&(e===`::`||e===`::1`||e===`[::1]`||e===`localhost`||e===`0.0.0.0`)?{host:`127.0.0.1`,coerced:!0}:{host:e,coerced:!1}}function U(e){let t=p(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var W=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function G(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function K(e){y(e.lockDir)||b(e.lockDir,{recursive:!0});let n=x(m(e.lockDir,t),`w`),r=e.spawn??f,{PORT:i,...a}=process.env,o=B();try{let t=r(o.command,[...o.prefixArgs,...e.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,n],windowsHide:!0,cwd:e.cwd,env:{...a,ELECTRON_RUN_AS_NODE:`1`}});return t.unref(),t}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=e;function ie(e,t,n=e=>w(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}}}}function ae(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let t=e.sigtermGraceMs??re,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>T(e)),i=e.reason??`teardown`;try{let a=e.readUiLock(),o=e.spawnedUiPid();if(a&&e.isAlive(a.pid)&&a.pid!==o)e.log?.info({pid:a.pid,port:a.port,spawnedUiPid:o},`${i}: ui.lock holder is not our spawned sibling — leaving it alone`);else if(a&&e.isAlive(a.pid))try{e.killPid(a.pid,`SIGTERM`),e.log?.info({pid:a.pid,port:a.port},`${i}: SIGTERM UI sibling`);let o=Date.now()+t;for(;Date.now()<o&&e.isAlive(a.pid);)await r(n);if(e.isAlive(a.pid))try{e.killPid(a.pid,`SIGKILL`),e.log?.warn({pid:a.pid,graceMs:t},`${i}: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:a.pid,err:t},`${i}: SIGKILL failed`)}}catch(t){e.log?.warn({pid:a.pid,err:t},`${i}: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t},`${i}: UI lookup failed; proceeding`)}}function oe(e){let{destroy:t,...n}=e;return async()=>{await Q({...n,reason:`idle-shutdown`}),await t()}}async function se(e){let{config:t,cwd:n,host:o}=e,s=e.skipAutoInit??!1,d=e.skipUiAutoSpawn??!1,f=e.idleThresholdMs??18e5,{existsSync:p,mkdirSync:m}=await import(`node:fs`),{basename:h,dirname:g}=await import(`node:path`),{bootServer:_,getLogger:v,isProcessAlive:y,readUiLock:b,resolveContentDir:x,resolveLockDir:S,waitForServerLockDrain:C}=await import(`./src-D4iCDwsy.mjs`),w=e.log??v(`start`),E=e.singleFile!==void 0,D=e.projectDir??n,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(n))throw new W(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&w.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-Bm9hjjRi.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-CvIvu8iY.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-CUT1NbJx.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let j=k??x(t,n);!E&&!p(j)&&(m(j,{recursive:!0}),w.info({contentDir:j},`Created content directory`));let M=null,N=null,ee=async({lockDir:t})=>{if(M=G({uiLock:b(t),isAlive:y}),M.action===`spawn`&&!d)try{let r=e.uiPort===void 0?void 0:[`ui`,`--port`,String(e.uiPort)];N=K({lockDir:t,cwd:n,spawn:e.spawn,args:r}).pid??null,w.info({reason:M.reason,uiPort:e.uiPort},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else M.action===`skip`&&w.info({port:M.port,pid:M.pid},`UI already running at port ${M.port}`)},P=e.reactShellDistDir===void 0,F=c(),I=r();{let e=S(E?D:n),t=Date.now(),r=await C(e);r!==`no-drain`&&w.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}let L=await _({config:t,contentDir:j,projectDir:E?D:n,contentRoot:E?void 0:t.content.dir,port:e.port,host:o,...e.enableRemote===!0?{enableRemote:!0}:{},quiet:!1,detectGh:l,tokenStore:F,embeddingsKeyStore:I,...E?{ephemeral:!0,singleDocRelPath:A,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>u(e,t),attachUiSibling:P,idleShutdownMs:f,skipAutoInit:!0,...P?{spawnUiSiblingFn:ee}:{},idleShutdownHandler:t=>{let n=oe({readUiLock:()=>b(L.lockDir),spawnedUiPid:()=>N,isAlive:y,killPid:(e,t)=>{process.kill(e,t)},destroy:t,log:w});return ae(E?ie(n,D):n,{log:w,exit:e.idleExit})},log:w,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}});M||={action:`skip`,reason:`alive`,pid:0,port:0};let R=M,z=null;if(R.action===`skip`)z=R.port>0?R.port:null;else if(!d){let t=e.uiBindTimeoutMs??3e3;z=await Z({readUiLock:()=>b(L.lockDir),now:Date.now,sleep:e=>T(e),timeoutMs:t,pollIntervalMs:50}),z===null&&w.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:L.httpServer,destroy:L.destroy,lockDir:L.lockDir,contentDir:j,port:L.port,ready:L.ready,degraded:L.degraded,uiSpawnDecision:M,spawnedUiPid:N,resolvedUiPort:z}}function ce(e){if(e===`browser`||e===`app`)return e;throw new 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-BAuCUhtO.mjs";import{Jr as n,Vr as r,a as i,yn as a}from"./src-CBxmkYgG.mjs";import{C as o,w as s}from"./write-project-skill-DZsw6Rkw.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-4DjqrOhu.mjs";import{n as d}from"./constants-GWFx-UC8.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-BldBF2Y_.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-BNqk430t.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-DKnGHC3s.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-COiT9pxq.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-BldBF2Y_.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-BldBF2Y_.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-BldBF2Y_.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-D-fJ9iwf.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 o(`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-CGRdHb1G.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e,r as t,v as n}from"./start-CGRdHb1G.mjs";export{t as bootStartServer,e as resolveHost,n as startCommand};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{
|
|
1
|
+
import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{Lo as r,Mo as i,No as a,To as o}from"./src-BAuCUhtO.mjs";import{Dr as s,dr as c,fr as l,sr as u}from"./src-CBxmkYgG.mjs";import{basename as d,dirname as f,isAbsolute as p,join as m,posix as h,relative as g,resolve as _,sep as v,win32 as y}from"node:path";import{cpSync as ee,existsSync as b,lstatSync as x,mkdirSync as te,readFileSync as ne,readdirSync as re,realpathSync as S,rmSync as C,rmdirSync as ie,statSync as ae}from"node:fs";import{homedir as w}from"node:os";var T=n((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),E=n((e=>{let{InvalidArgumentError:t}=T();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),D=n((e=>{let{humanReadableArgName:t}=E();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
|
|
2
2
|
`)}displayWidth(e){return r(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
|
|
3
3
|
`+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
|
|
4
4
|
`)}};function r(e){return e.replace(/\x1b\[\d*(;\d*)*m/g,``)}e.Help=n,e.stripColor=r})),O=n((e=>{let{InvalidArgumentError:t}=T();var n=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=a(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?i(this.name().replace(/^no-/,``)):i(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},r=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r===void 0?!1:r;return t.negate===(i===e)}};function i(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function a(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
|
|
@@ -16,7 +16,7 @@ Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._life
|
|
|
16
16
|
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
17
17
|
- ${t?`searched for local subcommand relative to directory '${t}'`:`no directory for search for local subcommand, use .executableDir() to supply a custom directory`}`;throw Error(r)}_executeSubCommand(e,t){t=t.slice();let n=!1,s=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function c(e,t){let n=i.resolve(e,t);if(a.existsSync(n))return n;if(s.includes(i.extname(t)))return;let r=s.find(e=>a.existsSync(`${n}${e}`));if(r)return`${n}${r}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let u=e._executableFile||`${this._name}-${e._name}`,d=this._executableDir||``;if(this._scriptPath){let e;try{e=a.realpathSync(this._scriptPath)}catch{e=this._scriptPath}d=i.resolve(i.dirname(e),d)}if(d){let t=c(d,u);if(!t&&!e._executableFile&&this._scriptPath){let n=i.basename(this._scriptPath,i.extname(this._scriptPath));n!==this._name&&(t=c(d,`${n}-${e._name}`))}u=t||u}n=s.includes(i.extname(u));let f;o.platform===`win32`?(this._checkForMissingExecutable(u,d,e._name),t.unshift(u),t=g(o.execArgv).concat(t),f=r.spawn(o.execPath,t,{stdio:`inherit`})):n?(t.unshift(u),t=g(o.execArgv).concat(t),f=r.spawn(o.argv[0],t,{stdio:`inherit`})):f=r.spawn(u,t,{stdio:`inherit`}),f.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{o.on(e,()=>{f.killed===!1&&f.exitCode===null&&f.kill(e)})});let p=this._exitCallback;f.on(`close`,e=>{e??=1,p?p(new l(e,`commander.executeSubCommandAsync`,`(close)`)):o.exit(e)}),f.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(u,d,e._name);else if(t.code===`EACCES`)throw Error(`'${u}' not executable`);if(!p)o.exit(1);else{let e=new l(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,p(e)}}),this.runningCommand=f}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)===void 0?!1:this.getOptionValueSource(t)!==`default`});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}else if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
18
18
|
`),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in o.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,o.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new p(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=m(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${e.length}.`;this.error(r,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=m(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>c(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=i.basename(e,i.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(o.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
|
|
19
|
-
Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function g(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _(){if(o.env.NO_COLOR||o.env.FORCE_COLOR===`0`||o.env.FORCE_COLOR===`false`)return!1;if(o.env.FORCE_COLOR||o.env.CLICOLOR_FORCE!==void 0)return!0}t.Command=h,t.useColor=_}));const{program:ce,createCommand:le,createArgument:ue,createOption:de,CommanderError:fe,InvalidArgumentError:pe,InvalidOptionArgumentError:me,Command:he,Argument:ge,Option:_e,Help:ve}=t(n((e=>{let{Argument:t}=E(),{Command:n}=se(),{CommanderError:r,InvalidArgumentError:i}=T(),{Help:a}=D(),{Option:o}=O();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default,k=
|
|
19
|
+
Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function g(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _(){if(o.env.NO_COLOR||o.env.FORCE_COLOR===`0`||o.env.FORCE_COLOR===`false`)return!1;if(o.env.FORCE_COLOR||o.env.CLICOLOR_FORCE!==void 0)return!0}t.Command=h,t.useColor=_}));const{program:ce,createCommand:le,createArgument:ue,createOption:de,CommanderError:fe,InvalidArgumentError:pe,InvalidOptionArgumentError:me,Command:he,Argument:ge,Option:_e,Help:ve}=t(n((e=>{let{Argument:t}=E(),{Command:n}=se(),{CommanderError:r,InvalidArgumentError:i}=T(),{Help:a}=D(),{Option:o}=O();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default,k=i,A=a,j=r,M=`node`,N={MCP_DEBUG:`1`,OK_LOG_FILE:`/tmp/ok-mcp.log`},P=`# ok-mcp-v2
|
|
20
20
|
USER_BUNDLE="$HOME/Applications/OpenKnowledge.app/Contents/Resources/cli/bin/ok.sh"
|
|
21
21
|
[ -f "$USER_BUNDLE" ] && [ -x "$USER_BUNDLE" ] && exec "$USER_BUNDLE" mcp
|
|
22
22
|
BUNDLE="/Applications/OpenKnowledge.app/Contents/Resources/cli/bin/ok.sh"
|
|
@@ -52,5 +52,5 @@ foreach ($d in $dirs) {
|
|
|
52
52
|
if (Test-Path -LiteralPath $probe -PathType Leaf) { & $probe -y '@inkeep/open-knowledge@latest' mcp; exit $LASTEXITCODE }
|
|
53
53
|
}
|
|
54
54
|
[Console]::Error.WriteLine('OpenKnowledge: install Node.js 24+ (npm i -g @inkeep/open-knowledge), then restart your editor')
|
|
55
|
-
exit 127`,I=`// ok-pi-bridge`,L=`${I}-v1`,ye=`ok-pi-managed-extension`;function be(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.command===`/bin/sh`){if(!Array.isArray(t.args)||t.args[0]!==`-l`||t.args[1]!==`-c`)return!1;let e=t.args[2];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command===`powershell`){if(!Array.isArray(t.args)||t.args[0]!==`-NoProfile`||t.args[1]!==`-NonInteractive`||t.args[2]!==`-Command`)return!1;let e=t.args[3];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}if(t.type===`local`&&Array.isArray(t.command)){if(t.command[0]===`/bin/sh`){if(t.command[1]!==`-l`||t.command[2]!==`-c`)return!1;let e=t.command[3];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command[0]===`powershell`){if(t.command[1]!==`-NoProfile`||t.command[2]!==`-NonInteractive`||t.command[3]!==`-Command`)return!1;let e=t.command[4];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}return!1}if(t.command===`ok-pi-managed-extension`){if(!Array.isArray(t.args))return!1;let e=t.args[0];return typeof e==`string`&&e.startsWith(L)}return!1}function R(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=_(e);if(d(t)===`cli.mjs`&&d(f(t))===`dist`)return t;let n=t.split(v),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return m(i.length===0?v:i.join(v),`packages`,`cli`,`dist`,`cli.mjs`)}function z(e={}){return e.mode===`dev`?{command:M,args:[R(),`mcp`],env:{...N}}:(e.platformName??process.platform)===`win32`?{command:`powershell`,args:[`-NoProfile`,`-NonInteractive`,`-Command`,F]}:{command:`/bin/sh`,args:[`-l`,`-c`,P]}}function xe(e={}){return e.mode===`dev`?{type:`local`,enabled:!0,command:[M,R(),`mcp`],environment:{...N}}:(e.platformName??process.platform)===`win32`?{type:`local`,enabled:!0,command:[`powershell`,`-NoProfile`,`-NonInteractive`,`-Command`,F]}:{type:`local`,enabled:!0,command:[`/bin/sh`,`-l`,`-c`,P]}}function Se(e){if(typeof e!=`object`||!e)return!1;let t=e;return B(t,z({mode:`published`,platformName:`darwin`}))||B(t,z({mode:`published`,platformName:`win32`}))}function B(e,t){return Object.keys(e).length===Object.keys(t).length?Ce(e,t):!1}function Ce(e,t){if(e.command!==t.command)return!1;let n=t.args;return!Array.isArray(n)||!Array.isArray(e.args)||e.args.length!==n.length?!1:e.args.every((e,t)=>e===n[t])}function V(e,t){let n=e=>typeof e==`string`&&e.includes(`# ok-mcp`);return t===`/bin/sh`?e[0]===`-l`&&e[1]===`-c`&&n(e[2]):t===`powershell`?e[0]===`-NoProfile`&&e[1]===`-NonInteractive`&&e[2]===`-Command`&&n(e[3]):!1}function we(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.enabled===!1||typeof t.command!=`string`||!Array.isArray(t.args)?!1:V(t.args,t.command)}function Te(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.type!==`local`||t.enabled===!1||!Array.isArray(t.command))return!1;let[n,...r]=t.command;return typeof n==`string`&&V(r,n)}function H(e){return e===`win32`?y:h}function Ee(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env,i=H(t);return t===`darwin`?i.join(n,`Library`,`Application Support`):t===`win32`?r.APPDATA??i.join(n,`AppData`,`Roaming`):r.XDG_CONFIG_HOME??i.join(n,`.config`)}function De(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.claude.json`)}function U(e={}){let t=e.platformName??process.platform,n=e.home??w(),r=e.env??process.env;if(t===`darwin`)return h.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??y.join(n,`AppData`,`Roaming`);return y.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function W(e={}){let t=e.platformName??process.platform,n=e.home??w();return H(t).join(n,`.cursor`,`mcp.json`)}function Oe(e={}){let t=e.platformName??process.platform,n=e.home??w();return(e.env??process.env).CODEX_HOME??H(t).join(n,`.codex`)}function 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:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.claude`),projectConfigPath:e=>m(e,`.mcp.json`),projectSkillPath:e=>m(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)},"claude-desktop":{id:`claude-desktop`,label:A[`claude-desktop`],configPath:(e,t)=>U({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(U({home:t}))},cursor:{id:`cursor`,label:A.cursor,configPath:(e,t)=>W({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(W({home:t})),projectConfigPath:e=>m(e,`.cursor`,`mcp.json`),projectSkillPath:e=>m(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)},codex:{id:`codex`,label:A.codex,configPath:(e,t)=>G({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>i,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:()=>i,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:()=>i,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:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.openclaw`),offerOnlyWhenDetected:!0},pi:{id:`pi`,label:A.pi,configPath:()=>{throw Error("Pi has no user-global MCP config; OK's integration is the project-scoped bridge extension at .pi/extensions/open-knowledge.ts (run `ok init` in the project).")},format:`file`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:()=>{throw Error(`Pi has no MCP entry shape; the managed bridge file is built by buildPiExtensionSource (integrations/pi-extension.ts).`)},scope:`project`,detectPath:(e,t)=>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:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>m(t??w(),`.gemini`),offerOnlyWhenDetected:!0},"lm-studio":{id:`lm-studio`,label:A[`lm-studio`],configPath:(e,t)=>J({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,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:()=>i,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=[...c.map(e=>l[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 c){let r=l[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=u(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 s=e.serverMapSubKey?o[e.serverMapSubKey]:o;return $(s)?$(s[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=s(`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 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-DZsw6Rkw.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.8",
|
|
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-
|
|
64
|
+
"@inkeep/open-knowledge-server": "0.46.0-beta.8",
|
|
65
65
|
"@inkeep/open-knowledge-native-config": "0.0.0",
|
|
66
|
-
"@inkeep/open-knowledge-core": "0.46.0-beta.
|
|
67
|
-
"@inkeep/open-knowledge-
|
|
66
|
+
"@inkeep/open-knowledge-core": "0.46.0-beta.8",
|
|
67
|
+
"@inkeep/open-knowledge-app": "0.46.0-beta.8"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build:cli": "tsdown",
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Workflow tools — depth
|
|
2
|
-
|
|
3
|
-
(Core carries the dispatch table + "these are your default move". This file carries the operating detail.)
|
|
4
|
-
|
|
5
|
-
One MCP tool — `workflow` — builds on the read/write primitives, dispatched on `kind`. **It returns *procedural guidance* (a multi-step instructional body), not fetched data.** Calling `workflow({ kind: 'ingest', source: "https://…" })` does not download and write a doc for you — it returns a multi-step plan you then execute. Same for the `research` / `consolidate` / `discover` kinds. Plan to follow the numbered steps in order; don't skip the STOP gates.
|
|
6
|
-
|
|
7
|
-
Three kinds correspond to [Karpathy's three-layer knowledge-base pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) (`ingest` / `research` / `consolidate`); the fourth (`discover`) operates at the project-metadata layer and is the brownfield counterpart to the greenfield `ok seed` CLI.
|
|
8
|
-
|
|
9
|
-
Typical day-2 flow: user shares a URL → `ingest` (preserve) → user asks "now research this" → `research` (provisional article + `ingest`s more sources as needed) → decision lands → `consolidate` (canonical article, supersedes the research).
|
|
10
|
-
|
|
11
|
-
**Autonomy gates vs session-level autonomy.** Per-tool STOP gates (e.g. `research`'s scoping gate, `consolidate`'s decision-confirmation gate) are not overridden by session-level "work without stopping for clarifying questions" hints. The session-level hint covers trivial back-and-forth ("which file did you mean?"); per-tool gates exist for 1-way-door decisions where the tool deliberately wants confirmation before continuing. When in doubt, treat the per-tool gate as authoritative and the session-level autonomy hint as a default for the in-between turns.
|
|
12
|
-
|
|
13
|
-
**Do not chain silently.** After `ingest`, ask the user whether to proceed to `research`. After `research`, let the user decide whether the findings are ready to `consolidate`. Each tool completes on its own terms — the user drives the transitions.
|
|
14
|
-
|
|
15
|
-
**Repeat invocations.** The `workflow` tool returns its full instructional body on every call, including 2nd / 3rd / Nth invocation in the same session. If you've already received a tool's body earlier this session, you can skim the repeat for changes (the body can evolve across server versions) but you don't need to re-internalize it — proceed to the next step with the new arguments.
|
|
16
|
-
|
|
17
|
-
**Project scaffolding — two paths.** **Empty repo:** run `ok seed` once from a terminal (scaffolds the layout + seeds `log.md` + folder defaults). **Existing content:** invoke `workflow({ kind: 'discover' })`. Neither is required; the four workflow kinds work against any folder structure. Only mention each when explicitly relevant.
|
|
18
|
-
|
|
19
|
-
**Starter packs — reference for inspiration.** The `ok` CLI (a Bash surface beside the MCP tools; other verbs `ok start` / `ok open` are documented in the core) ships proven layouts you can study to build a *similar* structure of your own — adapt the idea, don't clone the pack:
|
|
20
|
-
|
|
21
|
-
- `knowledge-base` — source-grounded research articles
|
|
22
|
-
- `software-lifecycle` — proposals, decisions, specs
|
|
23
|
-
- `codebase-wiki` — agent-authored wiki of your codebase
|
|
24
|
-
- `plain-notes` — notes + daily journal
|
|
25
|
-
- `worldbuilding` — fiction story wiki
|
|
26
|
-
- `writing-pipeline` — drafts → published
|
|
27
|
-
- `entity-vault` — people / companies / meetings (personal CRM)
|
|
28
|
-
- `okf` — Open Knowledge Format–conformant base
|
|
29
|
-
|
|
30
|
-
To reference one **without installing it**: `ok seed --list-packs` (the menu) → `ok seed --pack <name> --dry-run` (its folders + the *why* of each folder + templates; writes nothing). Then either adapt the ideas into your own folders (`write({ folder })` + a template) or adopt the pack as-is by re-running without `--dry-run`. Reach for this when a user wants structure and an archetype fits — propose a tailored variant, not a verbatim copy.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./git-handle-CK_JXuyw.mjs";export{e as createGitInstance};
|
package/dist/init-BIInZq9o.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./init-DoPgyAbZ.mjs";export{e as runInit};
|
package/dist/loader-BC9hZLNV.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-doXjfQUX.mjs";export{e as loadConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-C67jEM8C.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{i as n,r}from"./DocumentContext-uE-Jpe8-.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-Gol9BgNB.js";import{i as l,n as u,t as d}from"./tooltip-B4J7VHmA.js";import{a as f,c as p,i as m,o as h,s as g,t as _}from"./dialog-6-bc7qPg.js";import{ft as v}from"./CodeMirrorPropInput-DOcEkWLX.js";import{n as y}from"./CopyButton-1Q6Wnnjb.js";import{i as b}from"./prop-types-65NJPmd-.js";import{t as x}from"./loader-circle-Cg5SU7AZ.js";import{i as S,t as C}from"./timeline-diff-store-BwCud4Ug.js";import{n as w}from"./dist-B8I5m7M1.js";import{t as T}from"./dist-BCZq3DKc.js";import{s as E}from"./navigation-targets-DwSgIIy0.js";import{a as D,i as O,n as k,o as A,t as j}from"./agent-diff-store-BvRAZqCN.js";import{n as M}from"./use-activity-panel-DWxDopZd.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 T._({id:`pbwTg6`,values:{seconds:e}})}if(n<36e5){let e=Math.round(n/6e4);return T._({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),E,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=setInterval(()=>T(Date.now()),3e4);return()=>clearInterval(e)},O=[],t[0]=E,t[1]=O):(E=t[0],O=t[1]),(0,P.useEffect)(E,O);let[k,A]=(0,P.useState)(!1),j=D(),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 $;t[57]===v?$=t[58]:($=e=>{!e&&!v?A(!1):e&&A(!0)},t[57]=v,t[58]=$);let ue;t[59]===C?ue=t[60]:(ue=C({id:`a4FRQv`}),t[59]=C,t[60]=ue);let de;t[61]===ue?de=t[62]:(de=(0,F.jsx)(p,{children:ue}),t[61]=ue,t[62]=de);let fe;t[63]===L?fe=t[64]:(fe=(0,F.jsx)(f,{children:(0,F.jsx)(a,{id:`LKIPzv`,values:{laterEdits:L}})}),t[63]=L,t[64]=fe);let pe;t[65]!==de||t[66]!==fe?(pe=(0,F.jsxs)(g,{children:[de,fe]}),t[65]=de,t[66]=fe,t[67]=pe):pe=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]!==pe||t[77]!==_e?(ve=(0,F.jsxs)(m,{children:[pe,_e]}),t[76]=pe,t[77]=_e,t[78]=ve):ve=t[78];let ye;t[79]!==k||t[80]!==$||t[81]!==ve?(ye=(0,F.jsx)(_,{open:k,onOpenChange:$,children:ve}),t[79]=k,t[80]=$,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 T._({id:`pbwTg6`,values:{seconds:e}})}if(n<36e5){let e=Math.round(n/6e4);return T._({id:`_rP3HI`,values:{minutes:e}})}let r=Math.round(n/36e5);return T._({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),j()}))},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 A;t[31]!==O||t[32]!==k||t[33]!==C||t[34]!==E?(A=(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]=A):A=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]!==A||t[54]!==I?(te=(0,F.jsxs)(`div`,{className:`border-b border-border`,"data-testid":`activity-panel-file-row`,children:[A,I]}),t[53]=A,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 T._({id:`pbwTg6`,values:{seconds:e}})}if(t<36e5){let e=Math.round(t/6e4);return T._({id:`_rP3HI`,values:{minutes:e}})}let n=Math.round(t/36e5);return T._({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)(A,{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)O(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(E({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;C();let n=e.bursts.length;k({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 T=S,D;t[15]!==c||t[16]!==p||t[17]!==l||t[18]!==g?(D=async(e,t)=>{if(!(t<=0))try{await ie({connectionId:l,docName:e,scope:`count`,count:t,agentName:p?.agent?.displayName}),w.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);w.error(c({id:`EqrC_R`,values:{message:n}})),g()}},t[15]=c,t[16]=p,t[17]=l,t[18]=g,t[19]=D):D=t[19];let A=D,j;return t[20]!==u||t[21]!==p||t[22]!==h||t[23]!==x||t[24]!==T||t[25]!==A||t[26]!==g||t[27]!==s||t[28]!==m?(j=(0,F.jsx)(ce,{data:p,status:m,error:h,reload:g,onExit:u,onNavigate:x,onUndoDrop:A,onSetVersion:T,showBackButton:s}),t[20]=u,t[21]=p,t[22]=h,t[23]=x,t[24]=T,t[25]=A,t[26]=g,t[27]=s,t[28]=m,t[29]=j):j=t[29],j}export{K as ActivityModeContent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./jsx-runtime-BUgB2tll.js";import{t as n}from"./react-f2sANaYj.js";import{r}from"./dist-Nvb76hAm.js";import{t as i}from"./compiler-runtime-BfE3aGVn.js";import{o as a,s as o}from"./createLucideIcon-DAkhoPjT.js";import{c as s,i as c,l,n as u,o as d}from"./dist-D6h-uzOv.js";import{n as f,t as p}from"./dist-BjDuLI_j.js";import{n as ee,r as m,t as h}from"./dist-DAU1MdSo.js";import{_ as g,a as _,c as te,d as ne,f as re,g as v,h as ie,i as y,l as ae,m as b,n as oe,o as x,p as S,r as se,s as ce,t as le,u as ue}from"./dist-BJa2CfR3.js";import{t as de}from"./check-GqWaoTdV.js";import{t as fe}from"./chevron-right-C8oTR6gu.js";var C=e(n(),1),w=t(),T=`Menubar`,[E,pe,D]=f(T),[me,he]=s(T,[D,m]),O=g(),k=m(),[ge,A]=me(T),_e=C.forwardRef((e,t)=>{let{__scopeMenubar:n,value:r,onValueChange:i,defaultValue:a,loop:o=!0,dir:s,...u}=e,d=p(s),f=k(n),[m,h]=c({prop:r,onChange:i,defaultProp:a??``,caller:T}),[g,_]=C.useState(null);return(0,w.jsx)(ge,{scope:n,value:m,onMenuOpen:C.useCallback(e=>{h(e),_(e)},[h]),onMenuClose:C.useCallback(()=>h(``),[h]),onMenuToggle:C.useCallback(e=>{h(t=>t?``:e),_(e)},[h]),dir:d,loop:o,children:(0,w.jsx)(E.Provider,{scope:n,children:(0,w.jsx)(E.Slot,{scope:n,children:(0,w.jsx)(ee,{asChild:!0,...f,orientation:`horizontal`,loop:o,dir:d,currentTabStopId:g,onCurrentTabStopIdChange:_,children:(0,w.jsx)(l.div,{role:`menubar`,...u,ref:t})})})})})});_e.displayName=T;var j=`MenubarMenu`,[M,N]=me(j),ve=e=>{let{__scopeMenubar:t,value:n,...r}=e,i=u(),a=n||i||`LEGACY_REACT_AUTO_VALUE`,o=A(j,t),s=O(t),c=C.useRef(null),l=C.useRef(!1),d=o.value===a;return C.useEffect(()=>{d||(l.current=!1)},[d]),(0,w.jsx)(M,{scope:t,value:a,triggerId:u(),triggerRef:c,contentId:u(),wasKeyboardTriggerOpenRef:l,children:(0,w.jsx)(re,{...s,open:d,onOpenChange:e=>{e||o.onMenuClose()},modal:!1,dir:o.dir,...r})})};ve.displayName=j;var P=`MenubarTrigger`,F=C.forwardRef((e,t)=>{let{__scopeMenubar:n,disabled:r=!1,...i}=e,o=k(n),s=O(n),c=A(P,n),u=N(P,n),f=C.useRef(null),p=a(t,f,u.triggerRef),[ee,m]=C.useState(!1),g=c.value===u.value;return(0,w.jsx)(E.ItemSlot,{scope:n,value:u.value,disabled:r,children:(0,w.jsx)(h,{asChild:!0,...o,focusable:!r,tabStopId:u.value,children:(0,w.jsx)(le,{asChild:!0,...s,children:(0,w.jsx)(l.button,{type:`button`,role:`menuitem`,id:u.triggerId,"aria-haspopup":`menu`,"aria-expanded":g,"aria-controls":g?u.contentId:void 0,"data-highlighted":ee?``:void 0,"data-state":g?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:p,onPointerDown:d(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(c.onMenuOpen(u.value),g||e.preventDefault())}),onPointerEnter:d(e.onPointerEnter,()=>{c.value&&!g&&(c.onMenuOpen(u.value),f.current?.focus())}),onKeyDown:d(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&c.onMenuToggle(u.value),e.key===`ArrowDown`&&c.onMenuOpen(u.value),[`Enter`,` `,`ArrowDown`].includes(e.key)&&(u.wasKeyboardTriggerOpenRef.current=!0,e.preventDefault()))}),onFocus:d(e.onFocus,()=>m(!0)),onBlur:d(e.onBlur,()=>m(!1))})})})})});F.displayName=P;var ye=`MenubarPortal`,be=e=>{let{__scopeMenubar:t,...n}=e,r=O(t);return(0,w.jsx)(ae,{...r,...n})};be.displayName=ye;var I=`MenubarContent`,L=C.forwardRef((e,t)=>{let{__scopeMenubar:n,align:r=`start`,...i}=e,a=O(n),o=A(I,n),s=N(I,n),c=pe(n),l=C.useRef(!1);return(0,w.jsx)(y,{id:s.contentId,"aria-labelledby":s.triggerId,"data-radix-menubar-content":``,...a,...i,ref:t,align:r,onCloseAutoFocus:d(e.onCloseAutoFocus,e=>{!o.value&&!l.current&&s.triggerRef.current?.focus(),l.current=!1,e.preventDefault()}),onFocusOutside:d(e.onFocusOutside,e=>{let t=e.target;c().some(e=>e.ref.current?.contains(t))&&e.preventDefault()}),onInteractOutside:d(e.onInteractOutside,()=>{l.current=!0}),onEntryFocus:e=>{s.wasKeyboardTriggerOpenRef.current||e.preventDefault()},onKeyDown:d(e.onKeyDown,e=>{if([`ArrowRight`,`ArrowLeft`].includes(e.key)){let t=e.target,n=t.hasAttribute(`data-radix-menubar-subtrigger`),r=t.closest(`[data-radix-menubar-content]`)!==e.currentTarget,i=(o.dir===`rtl`?`ArrowRight`:`ArrowLeft`)===e.key;if(!i&&n||r&&i)return;let a=c().filter(e=>!e.disabled).map(e=>e.value);i&&a.reverse();let l=a.indexOf(s.value);a=o.loop?Ne(a,l+1):a.slice(l+1);let[u]=a;u&&o.onMenuOpen(u)}},{checkForDefaultPrevented:!1}),style:{...e.style,"--radix-menubar-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-menubar-content-available-width":`var(--radix-popper-available-width)`,"--radix-menubar-content-available-height":`var(--radix-popper-available-height)`,"--radix-menubar-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-menubar-trigger-height":`var(--radix-popper-anchor-height)`}})});L.displayName=I;var xe=`MenubarGroup`,R=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(_,{...i,...r,ref:t})});R.displayName=xe;var Se=`MenubarLabel`,Ce=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(te,{...i,...r,ref:t})});Ce.displayName=Se;var z=`MenubarItem`,B=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(x,{...i,...r,ref:t})});B.displayName=z;var we=`MenubarCheckboxItem`,Te=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(se,{...i,...r,ref:t})});Te.displayName=we;var V=`MenubarRadioGroup`,Ee=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(ue,{...i,...r,ref:t})});Ee.displayName=V;var H=`MenubarRadioItem`,De=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(ne,{...i,...r,ref:t})});De.displayName=H;var Oe=`MenubarItemIndicator`,U=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(ce,{...i,...r,ref:t})});U.displayName=Oe;var ke=`MenubarSeparator`,Ae=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(S,{...i,...r,ref:t})});Ae.displayName=ke;var W=`MenubarArrow`,G=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(oe,{...i,...r,ref:t})});G.displayName=W;var K=`MenubarSub`,q=e=>{let{__scopeMenubar:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=O(t),[s,l]=c({prop:r,defaultProp:a??!1,onChange:i,caller:K});return(0,w.jsx)(b,{...o,open:s,onOpenChange:l,children:n})};q.displayName=K;var je=`MenubarSubTrigger`,J=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(v,{"data-radix-menubar-subtrigger":``,...i,...r,ref:t})});J.displayName=je;var Y=`MenubarSubContent`,Me=C.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=O(n);return(0,w.jsx)(ie,{...i,"data-radix-menubar-content":``,...r,ref:t,style:{...e.style,"--radix-menubar-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-menubar-content-available-width":`var(--radix-popper-available-width)`,"--radix-menubar-content-available-height":`var(--radix-popper-available-height)`,"--radix-menubar-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-menubar-trigger-height":`var(--radix-popper-anchor-height)`}})});Me.displayName=Y;function Ne(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Pe=_e,Fe=ve,Ie=F,Le=be,Re=L,ze=B,Be=Te,Ve=U,He=Ae,Ue=q,We=J,Ge=Me,X=i();function Ke(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`flex h-8 items-center gap-0.5 rounded-lg border p-[3px]`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,w.jsx)(Pe,{"data-slot":`menubar`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function qe(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,w.jsx)(Fe,{"data-slot":`menubar-menu`,...n}),t[2]=n,t[3]=r),r}function Je(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,w.jsx)(Le,{"data-slot":`menubar-portal`,...n}),t[2]=n,t[3]=r),r}function Ye(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`flex items-center rounded-sm px-1.5 py-[2px] text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,w.jsx)(Ie,{"data-slot":`menubar-trigger`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Xe(e){let t=(0,X.c)(14),n,r,i,a,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],s=t[5]):({className:n,align:i,alignOffset:a,sideOffset:s,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s);let c=i===void 0?`start`:i,l=a===void 0?-4:a,u=s===void 0?8:s,d;t[6]===n?d=t[7]:(d=o(`z-50 min-w-36 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95`,n),t[6]=n,t[7]=d);let f;return t[8]!==c||t[9]!==l||t[10]!==r||t[11]!==u||t[12]!==d?(f=(0,w.jsx)(Je,{children:(0,w.jsx)(Re,{"data-slot":`menubar-content`,align:c,alignOffset:l,sideOffset:u,className:d,...r})}),t[8]=c,t[9]=l,t[10]=r,t[11]=u,t[12]=d,t[13]=f):f=t[13],f}function Z(e){let t=(0,X.c)(12),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:n,inset:r,variant:a,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let s=a===void 0?`default`:a,c;t[5]===n?c=t[6]:(c=o(`group/menubar-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!`,n),t[5]=n,t[6]=c);let l;return t[7]!==r||t[8]!==i||t[9]!==c||t[10]!==s?(l=(0,w.jsx)(ze,{"data-slot":`menubar-item`,"data-inset":r,"data-variant":s,className:c,...i}),t[7]=r,t[8]=i,t[9]=c,t[10]=s,t[11]=l):l=t[11],l}function Ze(e){let t=(0,X.c)(15),n,r,i,a,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],s=t[5]):({className:i,children:r,checked:n,inset:a,...s}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s);let c;t[6]===i?c=t[7]:(c=o(`relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0`,i),t[6]=i,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,w.jsx)(`span`,{className:`pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4`,children:(0,w.jsx)(Ve,{children:(0,w.jsx)(de,{})})}),t[8]=l):l=t[8];let u;return t[9]!==n||t[10]!==r||t[11]!==a||t[12]!==s||t[13]!==c?(u=(0,w.jsxs)(Be,{"data-slot":`menubar-checkbox-item`,"data-inset":a,className:c,checked:n,...s,children:[l,r]}),t[9]=n,t[10]=r,t[11]=a,t[12]=s,t[13]=c,t[14]=u):u=t[14],u}function Q(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`-mx-1 my-1 h-px bg-border`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,w.jsx)(He,{"data-slot":`menubar-separator`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function $(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,w.jsx)(`span`,{"data-slot":`menubar-shortcut`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Qe(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,w.jsx)(Ue,{"data-slot":`menubar-sub`,...n}),t[2]=n,t[3]=r),r}function $e(e){let t=(0,X.c)(13),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,inset:i,children:n,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let s;t[5]===r?s=t[6]:(s=o(`flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4`,r),t[5]=r,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,w.jsx)(fe,{className:`ml-auto size-4`}),t[7]=c):c=t[7];let l;return t[8]!==n||t[9]!==i||t[10]!==a||t[11]!==s?(l=(0,w.jsxs)(We,{"data-slot":`menubar-sub-trigger`,"data-inset":i,className:s,...a,children:[n,c]}),t[8]=n,t[9]=i,t[10]=a,t[11]=s,t[12]=l):l=t[12],l}function et(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,w.jsx)(Ge,{"data-slot":`menubar-sub-content`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function tt(){let e=(0,X.c)(391),{_:t}=r(),n=typeof window<`u`?window.okDesktop??null:null,[i,a]=(0,C.useState)(null);if(n==null||n.menu==null||n.platform===`darwin`)return null;let o=n.menu,s=n.platform===`win32`,c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>{o.dispatch(e).catch(nt)},e[0]=c):c=e[0];let l=c,u;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{o.dispatch({kind:`query`}).then(e=>a(e??null)).catch(()=>a(null))},e[1]=u):u=e[1];let d=u,f=i?.activeTarget.kind??null,p=i?.viewMenuState,ee;e[2]===t?ee=e[3]:(ee=t(s?{id:`rFTdVq`}:{id:`H6nKok`}),e[2]=t,e[3]=ee);let m=ee,h;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=e=>{e&&d()},e[4]=h):h=e[4];let g;e[5]===t?g=e[6]:(g=t({id:`J2eKUI`}),e[5]=t,e[6]=g);let _;e[7]===g?_=e[8]:(_=(0,w.jsx)(Ye,{className:`px-2 py-1 text-xs font-normal`,children:g}),e[7]=g,e[8]=_);let te;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>l({kind:`menu-action`,action:`new-doc`}),e[9]=te):te=e[9];let ne;e[10]===t?ne=e[11]:(ne=t({id:`HdkSiO`}),e[10]=t,e[11]=ne);let re;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,w.jsx)($,{children:`Ctrl+N`}),e[12]=re):re=e[12];let v;e[13]===ne?v=e[14]:(v=(0,w.jsxs)(Z,{onSelect:te,children:[ne,re]}),e[13]=ne,e[14]=v);let ie;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(ie=()=>l({kind:`menu-action`,action:`new-folder`}),e[15]=ie):ie=e[15];let y;e[16]===t?y=e[17]:(y=t({id:`96G6Re`}),e[16]=t,e[17]=y);let ae;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,w.jsx)($,{children:`Ctrl+Shift+N`}),e[18]=ae):ae=e[18];let b;e[19]===y?b=e[20]:(b=(0,w.jsxs)(Z,{onSelect:ie,children:[y,ae]}),e[19]=y,e[20]=b);let oe;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>l({kind:`menu-action`,action:`new-from-template`}),e[21]=oe):oe=e[21];let x;e[22]===t?x=e[23]:(x=t({id:`ioMn4Z`}),e[22]=t,e[23]=x);let S;e[24]===x?S=e[25]:(S=(0,w.jsx)(Z,{onSelect:oe,children:x}),e[24]=x,e[25]=S);let se;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,w.jsx)(Q,{}),e[26]=se):se=e[26];let ce;e[27]===t?ce=e[28]:(ce=t({id:`ten9en`}),e[27]=t,e[28]=ce);let le;e[29]===ce?le=e[30]:(le=(0,w.jsx)($e,{children:ce}),e[29]=ce,e[30]=le);let ue;e[31]!==t||e[32]!==i?(ue=(0,w.jsx)(et,{children:i==null||i.recentProjects.length===0?(0,w.jsx)(Z,{disabled:!0,children:t({id:`SvBFYA`})}):(0,w.jsxs)(w.Fragment,{children:[i.recentProjects.slice(0,10).map(e=>(0,w.jsx)(Z,{onSelect:()=>l({kind:`open-recent-project`,path:e.path}),children:e.name},e.path)),(0,w.jsx)(Q,{}),(0,w.jsx)(Z,{onSelect:()=>l({kind:`command`,command:`clear-recent-projects`}),children:t({id:`ak4LLg`})})]})}),e[31]=t,e[32]=i,e[33]=ue):ue=e[33];let de;e[34]!==le||e[35]!==ue?(de=(0,w.jsxs)(Qe,{children:[le,ue]}),e[34]=le,e[35]=ue,e[36]=de):de=e[36];let fe;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(fe=()=>l({kind:`menu-action`,action:`new-project`}),e[37]=fe):fe=e[37];let T;e[38]===t?T=e[39]:(T=t({id:`NYu2Pt`}),e[38]=t,e[39]=T);let E;e[40]===T?E=e[41]:(E=(0,w.jsx)(Z,{onSelect:fe,children:T}),e[40]=T,e[41]=E);let pe;e[42]===Symbol.for(`react.memo_cache_sentinel`)?(pe=()=>l({kind:`command`,command:`open-navigator`}),e[42]=pe):pe=e[42];let D;e[43]===t?D=e[44]:(D=t({id:`vYPvPB`}),e[43]=t,e[44]=D);let me;e[45]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,w.jsx)($,{children:`Ctrl+Shift+P`}),e[45]=me):me=e[45];let he;e[46]===D?he=e[47]:(he=(0,w.jsxs)(Z,{onSelect:pe,children:[D,me]}),e[46]=D,e[47]=he);let O;e[48]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>l({kind:`command`,command:`open-folder-dialog`}),e[48]=O):O=e[48];let k;e[49]===t?k=e[50]:(k=t({id:`FDBwmS`}),e[49]=t,e[50]=k);let ge;e[51]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,w.jsx)($,{children:`Ctrl+O`}),e[51]=ge):ge=e[51];let A;e[52]===k?A=e[53]:(A=(0,w.jsxs)(Z,{onSelect:O,children:[k,ge]}),e[52]=k,e[53]=A);let _e;e[54]===Symbol.for(`react.memo_cache_sentinel`)?(_e=(0,w.jsx)(Q,{}),e[54]=_e):_e=e[54];let j;e[55]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>l({kind:`menu-action`,action:`new-worktree`}),e[55]=j):j=e[55];let M;e[56]===t?M=e[57]:(M=t({id:`TTDXD8`}),e[56]=t,e[57]=M);let N;e[58]===M?N=e[59]:(N=(0,w.jsx)(Z,{onSelect:j,children:M}),e[58]=M,e[59]=N);let ve;e[60]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>l({kind:`menu-action`,action:`switch-worktree`}),e[60]=ve):ve=e[60];let P;e[61]===t?P=e[62]:(P=t({id:`mxGJVE`}),e[61]=t,e[62]=P);let F;e[63]===P?F=e[64]:(F=(0,w.jsx)(Z,{onSelect:ve,children:P}),e[63]=P,e[64]=F);let ye;e[65]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,w.jsx)(Q,{}),e[65]=ye):ye=e[65];let be=f!==`doc`&&f!==`folder`,I;e[66]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>l({kind:`menu-action`,action:`duplicate`}),e[66]=I):I=e[66];let L;e[67]===t?L=e[68]:(L=t({id:`euc6Ns`}),e[67]=t,e[68]=L);let xe;e[69]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,w.jsx)($,{children:`Ctrl+D`}),e[69]=xe):xe=e[69];let R;e[70]!==be||e[71]!==L?(R=(0,w.jsxs)(Z,{disabled:be,onSelect:I,children:[L,xe]}),e[70]=be,e[71]=L,e[72]=R):R=e[72];let Se=f===null,Ce;e[73]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=()=>l({kind:`menu-action`,action:`rename`}),e[73]=Ce):Ce=e[73];let z;e[74]===t?z=e[75]:(z=t({id:`2wxgft`}),e[74]=t,e[75]=z);let B;e[76]!==Se||e[77]!==z?(B=(0,w.jsx)(Z,{disabled:Se,onSelect:Ce,children:z}),e[76]=Se,e[77]=z,e[78]=B):B=e[78];let we=f===null,Te;e[79]===Symbol.for(`react.memo_cache_sentinel`)?(Te=()=>l({kind:`menu-action`,action:`move-to-trash`}),e[79]=Te):Te=e[79];let V;e[80]===t?V=e[81]:(V=t({id:`q3TWG7`}),e[80]=t,e[81]=V);let Ee;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,w.jsx)($,{children:`Ctrl+Del`}),e[82]=Ee):Ee=e[82];let H;e[83]!==we||e[84]!==V?(H=(0,w.jsxs)(Z,{disabled:we,onSelect:Te,children:[V,Ee]}),e[83]=we,e[84]=V,e[85]=H):H=e[85];let De;e[86]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,w.jsx)(Q,{}),e[86]=De):De=e[86];let Oe;e[87]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=()=>l({kind:`menu-action`,action:`reveal-in-finder`}),e[87]=Oe):Oe=e[87];let U;e[88]===m?U=e[89]:(U=(0,w.jsx)(Z,{onSelect:Oe,children:m}),e[88]=m,e[89]=U);let ke=f===`asset`,Ae;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=()=>l({kind:`menu-action`,action:`send-to-ai`}),e[90]=Ae):Ae=e[90];let W;e[91]===t?W=e[92]:(W=t({id:`O7_W_a`}),e[91]=t,e[92]=W);let G;e[93]!==ke||e[94]!==W?(G=(0,w.jsx)(Z,{disabled:ke,onSelect:Ae,children:W}),e[93]=ke,e[94]=W,e[95]=G):G=e[95];let K;e[96]===t?K=e[97]:(K=t({id:`oCZkaG`}),e[96]=t,e[97]=K);let q;e[98]===K?q=e[99]:(q=(0,w.jsx)($e,{children:K}),e[98]=K,e[99]=q);let je;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(je=()=>l({kind:`menu-action`,action:`copy-full-path`}),e[100]=je):je=e[100];let J;e[101]===t?J=e[102]:(J=t({id:`oQA-cA`}),e[101]=t,e[102]=J);let Y;e[103]===J?Y=e[104]:(Y=(0,w.jsx)(Z,{onSelect:je,children:J}),e[103]=J,e[104]=Y);let Me;e[105]===Symbol.for(`react.memo_cache_sentinel`)?(Me=()=>l({kind:`menu-action`,action:`copy-relative-path`}),e[105]=Me):Me=e[105];let Ne;e[106]===t?Ne=e[107]:(Ne=t({id:`s061i4`}),e[106]=t,e[107]=Ne);let Pe;e[108]===Ne?Pe=e[109]:(Pe=(0,w.jsx)(Z,{onSelect:Me,children:Ne}),e[108]=Ne,e[109]=Pe);let Fe;e[110]!==Y||e[111]!==Pe?(Fe=(0,w.jsxs)(et,{children:[Y,Pe]}),e[110]=Y,e[111]=Pe,e[112]=Fe):Fe=e[112];let Ie;e[113]!==q||e[114]!==Fe?(Ie=(0,w.jsxs)(Qe,{children:[q,Fe]}),e[113]=q,e[114]=Fe,e[115]=Ie):Ie=e[115];let Le;e[116]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,w.jsx)(Q,{}),e[116]=Le):Le=e[116];let Re;e[117]!==t||e[118]!==i?.canReconfigureMcpWiring?(Re=i?.canReconfigureMcpWiring===!0&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Z,{onSelect:()=>l({kind:`command`,command:`reconfigure-mcp-wiring`}),children:t({id:`zBUqvf`})}),(0,w.jsx)(Q,{})]}),e[117]=t,e[118]=i?.canReconfigureMcpWiring,e[119]=Re):Re=e[119];let ze;e[120]===Symbol.for(`react.memo_cache_sentinel`)?(ze=()=>l({kind:`command`,command:`open-settings`}),e[120]=ze):ze=e[120];let Be;e[121]===t?Be=e[122]:(Be=t({id:`uVbUP8`}),e[121]=t,e[122]=Be);let Ve;e[123]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=(0,w.jsx)($,{children:`Ctrl+,`}),e[123]=Ve):Ve=e[123];let He;e[124]===Be?He=e[125]:(He=(0,w.jsxs)(Z,{onSelect:ze,children:[Be,Ve]}),e[124]=Be,e[125]=He);let Ue;e[126]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,w.jsx)(Q,{}),e[126]=Ue):Ue=e[126];let We;e[127]===Symbol.for(`react.memo_cache_sentinel`)?(We=()=>l({kind:`role`,role:`quit`}),e[127]=We):We=e[127];let Ge;e[128]===t?Ge=e[129]:(Ge=t({id:`ydzS9x`}),e[128]=t,e[129]=Ge);let Je;e[130]===Ge?Je=e[131]:(Je=(0,w.jsx)(Z,{onSelect:We,children:Ge}),e[130]=Ge,e[131]=Je);let tt;e[132]!==b||e[133]!==S||e[134]!==de||e[135]!==E||e[136]!==he||e[137]!==A||e[138]!==N||e[139]!==F||e[140]!==R||e[141]!==B||e[142]!==H||e[143]!==U||e[144]!==G||e[145]!==Ie||e[146]!==Re||e[147]!==He||e[148]!==Je||e[149]!==v?(tt=(0,w.jsxs)(Xe,{children:[v,b,S,se,de,E,he,A,_e,N,F,ye,R,B,H,De,U,G,Ie,Le,Re,He,Ue,Je]}),e[132]=b,e[133]=S,e[134]=de,e[135]=E,e[136]=he,e[137]=A,e[138]=N,e[139]=F,e[140]=R,e[141]=B,e[142]=H,e[143]=U,e[144]=G,e[145]=Ie,e[146]=Re,e[147]=He,e[148]=Je,e[149]=v,e[150]=tt):tt=e[150];let rt;e[151]!==_||e[152]!==tt?(rt=(0,w.jsxs)(qe,{children:[_,tt]}),e[151]=_,e[152]=tt,e[153]=rt):rt=e[153];let it;e[154]===t?it=e[155]:(it=t({id:`ePK91l`}),e[154]=t,e[155]=it);let at;e[156]===it?at=e[157]:(at=(0,w.jsx)(Ye,{className:`px-2 py-1 text-xs font-normal`,children:it}),e[156]=it,e[157]=at);let ot;e[158]===Symbol.for(`react.memo_cache_sentinel`)?(ot=()=>l({kind:`role`,role:`undo`}),e[158]=ot):ot=e[158];let st;e[159]===t?st=e[160]:(st=t({id:`9uI_rE`}),e[159]=t,e[160]=st);let ct;e[161]===Symbol.for(`react.memo_cache_sentinel`)?(ct=(0,w.jsx)($,{children:`Ctrl+Z`}),e[161]=ct):ct=e[161];let lt;e[162]===st?lt=e[163]:(lt=(0,w.jsxs)(Z,{onSelect:ot,children:[st,ct]}),e[162]=st,e[163]=lt);let ut;e[164]===Symbol.for(`react.memo_cache_sentinel`)?(ut=()=>l({kind:`role`,role:`redo`}),e[164]=ut):ut=e[164];let dt;e[165]===t?dt=e[166]:(dt=t({id:`H3oH0g`}),e[165]=t,e[166]=dt);let ft;e[167]===Symbol.for(`react.memo_cache_sentinel`)?(ft=(0,w.jsx)($,{children:`Ctrl+Y`}),e[167]=ft):ft=e[167];let pt;e[168]===dt?pt=e[169]:(pt=(0,w.jsxs)(Z,{onSelect:ut,children:[dt,ft]}),e[168]=dt,e[169]=pt);let mt;e[170]===Symbol.for(`react.memo_cache_sentinel`)?(mt=(0,w.jsx)(Q,{}),e[170]=mt):mt=e[170];let ht;e[171]===Symbol.for(`react.memo_cache_sentinel`)?(ht=()=>l({kind:`role`,role:`cut`}),e[171]=ht):ht=e[171];let gt;e[172]===t?gt=e[173]:(gt=t({id:`cCd8Bs`}),e[172]=t,e[173]=gt);let _t;e[174]===Symbol.for(`react.memo_cache_sentinel`)?(_t=(0,w.jsx)($,{children:`Ctrl+X`}),e[174]=_t):_t=e[174];let vt;e[175]===gt?vt=e[176]:(vt=(0,w.jsxs)(Z,{onSelect:ht,children:[gt,_t]}),e[175]=gt,e[176]=vt);let yt;e[177]===Symbol.for(`react.memo_cache_sentinel`)?(yt=()=>l({kind:`role`,role:`copy`}),e[177]=yt):yt=e[177];let bt;e[178]===t?bt=e[179]:(bt=t({id:`he3ygx`}),e[178]=t,e[179]=bt);let xt;e[180]===Symbol.for(`react.memo_cache_sentinel`)?(xt=(0,w.jsx)($,{children:`Ctrl+C`}),e[180]=xt):xt=e[180];let St;e[181]===bt?St=e[182]:(St=(0,w.jsxs)(Z,{onSelect:yt,children:[bt,xt]}),e[181]=bt,e[182]=St);let Ct;e[183]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=()=>l({kind:`role`,role:`paste`}),e[183]=Ct):Ct=e[183];let wt;e[184]===t?wt=e[185]:(wt=t({id:`HzVv6g`}),e[184]=t,e[185]=wt);let Tt;e[186]===Symbol.for(`react.memo_cache_sentinel`)?(Tt=(0,w.jsx)($,{children:`Ctrl+V`}),e[186]=Tt):Tt=e[186];let Et;e[187]===wt?Et=e[188]:(Et=(0,w.jsxs)(Z,{onSelect:Ct,children:[wt,Tt]}),e[187]=wt,e[188]=Et);let Dt;e[189]===Symbol.for(`react.memo_cache_sentinel`)?(Dt=()=>l({kind:`role`,role:`selectAll`}),e[189]=Dt):Dt=e[189];let Ot;e[190]===t?Ot=e[191]:(Ot=t({id:`mCB6Je`}),e[190]=t,e[191]=Ot);let kt;e[192]===Symbol.for(`react.memo_cache_sentinel`)?(kt=(0,w.jsx)($,{children:`Ctrl+A`}),e[192]=kt):kt=e[192];let At;e[193]===Ot?At=e[194]:(At=(0,w.jsxs)(Z,{onSelect:Dt,children:[Ot,kt]}),e[193]=Ot,e[194]=At);let jt;e[195]===Symbol.for(`react.memo_cache_sentinel`)?(jt=(0,w.jsx)(Q,{}),e[195]=jt):jt=e[195];let Mt=i?.spellCheckEnabled??!0,Nt;e[196]===Symbol.for(`react.memo_cache_sentinel`)?(Nt=()=>l({kind:`command`,command:`toggle-spell-check`}),e[196]=Nt):Nt=e[196];let Pt;e[197]===t?Pt=e[198]:(Pt=t({id:`ZgJVnp`}),e[197]=t,e[198]=Pt);let Ft;e[199]!==Mt||e[200]!==Pt?(Ft=(0,w.jsx)(Ze,{checked:Mt,onSelect:Nt,children:Pt}),e[199]=Mt,e[200]=Pt,e[201]=Ft):Ft=e[201];let It;e[202]!==St||e[203]!==Et||e[204]!==At||e[205]!==Ft||e[206]!==lt||e[207]!==pt||e[208]!==vt?(It=(0,w.jsxs)(Xe,{children:[lt,pt,mt,vt,St,Et,At,jt,Ft]}),e[202]=St,e[203]=Et,e[204]=At,e[205]=Ft,e[206]=lt,e[207]=pt,e[208]=vt,e[209]=It):It=e[209];let Lt;e[210]!==It||e[211]!==at?(Lt=(0,w.jsxs)(qe,{children:[at,It]}),e[210]=It,e[211]=at,e[212]=Lt):Lt=e[212];let Rt;e[213]===t?Rt=e[214]:(Rt=t({id:`jpctdh`}),e[213]=t,e[214]=Rt);let zt;e[215]===Rt?zt=e[216]:(zt=(0,w.jsx)(Ye,{className:`px-2 py-1 text-xs font-normal`,children:Rt}),e[215]=Rt,e[216]=zt);let Bt;e[217]===Symbol.for(`react.memo_cache_sentinel`)?(Bt=()=>l({kind:`menu-action`,action:`navigate-back`}),e[217]=Bt):Bt=e[217];let Vt;e[218]===t?Vt=e[219]:(Vt=t({id:`iH8pgl`}),e[218]=t,e[219]=Vt);let Ht;e[220]===Symbol.for(`react.memo_cache_sentinel`)?(Ht=(0,w.jsx)($,{children:`Alt+Left`}),e[220]=Ht):Ht=e[220];let Ut;e[221]===Vt?Ut=e[222]:(Ut=(0,w.jsxs)(Z,{onSelect:Bt,children:[Vt,Ht]}),e[221]=Vt,e[222]=Ut);let Wt;e[223]===Symbol.for(`react.memo_cache_sentinel`)?(Wt=()=>l({kind:`menu-action`,action:`navigate-forward`}),e[223]=Wt):Wt=e[223];let Gt;e[224]===t?Gt=e[225]:(Gt=t({id:`rxWGWX`}),e[224]=t,e[225]=Gt);let Kt;e[226]===Symbol.for(`react.memo_cache_sentinel`)?(Kt=(0,w.jsx)($,{children:`Alt+Right`}),e[226]=Kt):Kt=e[226];let qt;e[227]===Gt?qt=e[228]:(qt=(0,w.jsxs)(Z,{onSelect:Wt,children:[Gt,Kt]}),e[227]=Gt,e[228]=qt);let Jt;e[229]===Symbol.for(`react.memo_cache_sentinel`)?(Jt=(0,w.jsx)(Q,{}),e[229]=Jt):Jt=e[229];let Yt;e[230]===Symbol.for(`react.memo_cache_sentinel`)?(Yt=()=>l({kind:`role`,role:`reload`}),e[230]=Yt):Yt=e[230];let Xt;e[231]===t?Xt=e[232]:(Xt=t({id:`HpK_8d`}),e[231]=t,e[232]=Xt);let Zt;e[233]===Xt?Zt=e[234]:(Zt=(0,w.jsx)(Z,{onSelect:Yt,children:Xt}),e[233]=Xt,e[234]=Zt);let Qt;e[235]===Symbol.for(`react.memo_cache_sentinel`)?(Qt=()=>l({kind:`role`,role:`forceReload`}),e[235]=Qt):Qt=e[235];let $t;e[236]===t?$t=e[237]:($t=t({id:`2CHoQv`}),e[236]=t,e[237]=$t);let en;e[238]===$t?en=e[239]:(en=(0,w.jsx)(Z,{onSelect:Qt,children:$t}),e[238]=$t,e[239]=en);let tn;e[240]!==t||e[241]!==i?.showDevToolsMenu?(tn=i?.showDevToolsMenu===!0&&(0,w.jsx)(Z,{onSelect:()=>l({kind:`role`,role:`toggleDevTools`}),children:t({id:`pgDlbM`})}),e[240]=t,e[241]=i?.showDevToolsMenu,e[242]=tn):tn=e[242];let nn;e[243]===Symbol.for(`react.memo_cache_sentinel`)?(nn=(0,w.jsx)(Q,{}),e[243]=nn):nn=e[243];let rn;e[244]===Symbol.for(`react.memo_cache_sentinel`)?(rn=()=>l({kind:`menu-action`,action:`toggle-sidebar`}),e[244]=rn):rn=e[244];let an;e[245]!==t||e[246]!==p?.sidebarVisible?(an=p?.sidebarVisible===!1?t({id:`151wvk`}):t({id:`Q1mtyd`}),e[245]=t,e[246]=p?.sidebarVisible,e[247]=an):an=e[247];let on;e[248]===Symbol.for(`react.memo_cache_sentinel`)?(on=(0,w.jsx)($,{children:`Ctrl+Alt+S`}),e[248]=on):on=e[248];let sn;e[249]===an?sn=e[250]:(sn=(0,w.jsxs)(Z,{onSelect:rn,children:[an,on]}),e[249]=an,e[250]=sn);let cn;e[251]===Symbol.for(`react.memo_cache_sentinel`)?(cn=()=>l({kind:`menu-action`,action:`toggle-doc-panel`}),e[251]=cn):cn=e[251];let ln;e[252]!==t||e[253]!==p?.docPanelVisible?(ln=p?.docPanelVisible===!1?t({id:`fSRzLo`}):t({id:`GSYWCm`}),e[252]=t,e[253]=p?.docPanelVisible,e[254]=ln):ln=e[254];let un;e[255]===Symbol.for(`react.memo_cache_sentinel`)?(un=(0,w.jsx)($,{children:`Ctrl+Alt+B`}),e[255]=un):un=e[255];let dn;e[256]===ln?dn=e[257]:(dn=(0,w.jsxs)(Z,{onSelect:cn,children:[ln,un]}),e[256]=ln,e[257]=dn);let fn;e[258]===Symbol.for(`react.memo_cache_sentinel`)?(fn=(0,w.jsx)(Q,{}),e[258]=fn):fn=e[258];let pn=p?.showHiddenFiles??!1,mn;e[259]===Symbol.for(`react.memo_cache_sentinel`)?(mn=()=>l({kind:`menu-action`,action:`toggle-show-hidden-files`}),e[259]=mn):mn=e[259];let hn;e[260]===t?hn=e[261]:(hn=t({id:`XcGbim`}),e[260]=t,e[261]=hn);let gn;e[262]===Symbol.for(`react.memo_cache_sentinel`)?(gn=(0,w.jsx)($,{children:`Ctrl+Shift+.`}),e[262]=gn):gn=e[262];let _n;e[263]!==pn||e[264]!==hn?(_n=(0,w.jsxs)(Ze,{checked:pn,onSelect:mn,children:[hn,gn]}),e[263]=pn,e[264]=hn,e[265]=_n):_n=e[265];let vn=p?.showOkFolders??!1,yn;e[266]===Symbol.for(`react.memo_cache_sentinel`)?(yn=()=>l({kind:`menu-action`,action:`toggle-show-ok-folders`}),e[266]=yn):yn=e[266];let bn;e[267]===t?bn=e[268]:(bn=t({id:`GHsJb8`}),e[267]=t,e[268]=bn);let xn;e[269]!==vn||e[270]!==bn?(xn=(0,w.jsx)(Ze,{checked:vn,onSelect:yn,children:bn}),e[269]=vn,e[270]=bn,e[271]=xn):xn=e[271];let Sn=p?.showOnlyMarkdownFiles??!1,Cn;e[272]===Symbol.for(`react.memo_cache_sentinel`)?(Cn=()=>l({kind:`menu-action`,action:`toggle-show-only-markdown-files`}),e[272]=Cn):Cn=e[272];let wn;e[273]===t?wn=e[274]:(wn=t({id:`WkTLN7`}),e[273]=t,e[274]=wn);let Tn;e[275]!==Sn||e[276]!==wn?(Tn=(0,w.jsx)(Ze,{checked:Sn,onSelect:Cn,children:wn}),e[275]=Sn,e[276]=wn,e[277]=Tn):Tn=e[277];let En=p?.showSkillsSection??!0,Dn;e[278]===Symbol.for(`react.memo_cache_sentinel`)?(Dn=()=>l({kind:`menu-action`,action:`toggle-show-skills-section`}),e[278]=Dn):Dn=e[278];let On;e[279]===t?On=e[280]:(On=t({id:`NF_Wcg`}),e[279]=t,e[280]=On);let kn;e[281]!==En||e[282]!==On?(kn=(0,w.jsx)(Ze,{checked:En,onSelect:Dn,children:On}),e[281]=En,e[282]=On,e[283]=kn):kn=e[283];let An;e[284]===Symbol.for(`react.memo_cache_sentinel`)?(An=(0,w.jsx)(Q,{}),e[284]=An):An=e[284];let jn;e[285]!==t||e[286]!==p?.canExpandAll?(jn=(p?.canExpandAll??!0)&&(0,w.jsx)(Z,{onSelect:()=>l({kind:`menu-action`,action:`expand-all-tree`}),children:t({id:`OlAl5i`})}),e[285]=t,e[286]=p?.canExpandAll,e[287]=jn):jn=e[287];let Mn;e[288]!==t||e[289]!==p?.canCollapseAll?(Mn=(p?.canCollapseAll??!0)&&(0,w.jsx)(Z,{onSelect:()=>l({kind:`menu-action`,action:`collapse-all-tree`}),children:t({id:`qvWGzP`})}),e[288]=t,e[289]=p?.canCollapseAll,e[290]=Mn):Mn=e[290];let Nn;e[291]===Symbol.for(`react.memo_cache_sentinel`)?(Nn=(0,w.jsx)(Q,{}),e[291]=Nn):Nn=e[291];let Pn;e[292]===Symbol.for(`react.memo_cache_sentinel`)?(Pn=()=>l({kind:`role`,role:`resetZoom`}),e[292]=Pn):Pn=e[292];let Fn;e[293]===t?Fn=e[294]:(Fn=t({id:`FF7V5K`}),e[293]=t,e[294]=Fn);let In;e[295]===Fn?In=e[296]:(In=(0,w.jsx)(Z,{onSelect:Pn,children:Fn}),e[295]=Fn,e[296]=In);let Ln;e[297]===Symbol.for(`react.memo_cache_sentinel`)?(Ln=()=>l({kind:`role`,role:`zoomIn`}),e[297]=Ln):Ln=e[297];let Rn;e[298]===t?Rn=e[299]:(Rn=t({id:`Dz7fsq`}),e[298]=t,e[299]=Rn);let zn;e[300]===Rn?zn=e[301]:(zn=(0,w.jsx)(Z,{onSelect:Ln,children:Rn}),e[300]=Rn,e[301]=zn);let Bn;e[302]===Symbol.for(`react.memo_cache_sentinel`)?(Bn=()=>l({kind:`role`,role:`zoomOut`}),e[302]=Bn):Bn=e[302];let Vn;e[303]===t?Vn=e[304]:(Vn=t({id:`bbJ-VR`}),e[303]=t,e[304]=Vn);let Hn;e[305]===Vn?Hn=e[306]:(Hn=(0,w.jsx)(Z,{onSelect:Bn,children:Vn}),e[305]=Vn,e[306]=Hn);let Un;e[307]===Symbol.for(`react.memo_cache_sentinel`)?(Un=(0,w.jsx)(Q,{}),e[307]=Un):Un=e[307];let Wn;e[308]===Symbol.for(`react.memo_cache_sentinel`)?(Wn=()=>l({kind:`role`,role:`toggleFullScreen`}),e[308]=Wn):Wn=e[308];let Gn;e[309]===t?Gn=e[310]:(Gn=t({id:`LTeJuX`}),e[309]=t,e[310]=Gn);let Kn;e[311]===Symbol.for(`react.memo_cache_sentinel`)?(Kn=(0,w.jsx)($,{children:`F11`}),e[311]=Kn):Kn=e[311];let qn;e[312]===Gn?qn=e[313]:(qn=(0,w.jsxs)(Z,{onSelect:Wn,children:[Gn,Kn]}),e[312]=Gn,e[313]=qn);let Jn;e[314]!==Ut||e[315]!==qt||e[316]!==Zt||e[317]!==en||e[318]!==tn||e[319]!==sn||e[320]!==dn||e[321]!==_n||e[322]!==xn||e[323]!==Tn||e[324]!==kn||e[325]!==jn||e[326]!==Mn||e[327]!==In||e[328]!==zn||e[329]!==Hn||e[330]!==qn?(Jn=(0,w.jsxs)(Xe,{children:[Ut,qt,Jt,Zt,en,tn,nn,sn,dn,fn,_n,xn,Tn,kn,An,jn,Mn,Nn,In,zn,Hn,Un,qn]}),e[314]=Ut,e[315]=qt,e[316]=Zt,e[317]=en,e[318]=tn,e[319]=sn,e[320]=dn,e[321]=_n,e[322]=xn,e[323]=Tn,e[324]=kn,e[325]=jn,e[326]=Mn,e[327]=In,e[328]=zn,e[329]=Hn,e[330]=qn,e[331]=Jn):Jn=e[331];let Yn;e[332]!==zt||e[333]!==Jn?(Yn=(0,w.jsxs)(qe,{children:[zt,Jn]}),e[332]=zt,e[333]=Jn,e[334]=Yn):Yn=e[334];let Xn;e[335]===t?Xn=e[336]:(Xn=t({id:`T3Mld1`}),e[335]=t,e[336]=Xn);let Zn;e[337]===Xn?Zn=e[338]:(Zn=(0,w.jsx)(Ye,{className:`px-2 py-1 text-xs font-normal`,children:Xn}),e[337]=Xn,e[338]=Zn);let Qn;e[339]===Symbol.for(`react.memo_cache_sentinel`)?(Qn=()=>l({kind:`role`,role:`minimize`}),e[339]=Qn):Qn=e[339];let $n;e[340]===t?$n=e[341]:($n=t({id:`3TSz9S`}),e[340]=t,e[341]=$n);let er;e[342]===$n?er=e[343]:(er=(0,w.jsx)(Z,{onSelect:Qn,children:$n}),e[342]=$n,e[343]=er);let tr;e[344]===Symbol.for(`react.memo_cache_sentinel`)?(tr=()=>l({kind:`role`,role:`close`}),e[344]=tr):tr=e[344];let nr;e[345]===t?nr=e[346]:(nr=t({id:`aRI3Om`}),e[345]=t,e[346]=nr);let rr;e[347]===nr?rr=e[348]:(rr=(0,w.jsx)(Z,{onSelect:tr,children:nr}),e[347]=nr,e[348]=rr);let ir;e[349]!==er||e[350]!==rr?(ir=(0,w.jsxs)(Xe,{children:[er,rr]}),e[349]=er,e[350]=rr,e[351]=ir):ir=e[351];let ar;e[352]!==Zn||e[353]!==ir?(ar=(0,w.jsxs)(qe,{children:[Zn,ir]}),e[352]=Zn,e[353]=ir,e[354]=ar):ar=e[354];let or;e[355]===t?or=e[356]:(or=t({id:`c3XJ18`}),e[355]=t,e[356]=or);let sr;e[357]===or?sr=e[358]:(sr=(0,w.jsx)(Ye,{className:`px-2 py-1 text-xs font-normal`,children:or}),e[357]=or,e[358]=sr);let cr;e[359]===Symbol.for(`react.memo_cache_sentinel`)?(cr=()=>l({kind:`command`,command:`open-github`}),e[359]=cr):cr=e[359];let lr;e[360]===t?lr=e[361]:(lr=t({id:`LeGeTf`}),e[360]=t,e[361]=lr);let ur;e[362]===lr?ur=e[363]:(ur=(0,w.jsx)(Z,{onSelect:cr,children:lr}),e[362]=lr,e[363]=ur);let dr;e[364]===Symbol.for(`react.memo_cache_sentinel`)?(dr=()=>l({kind:`menu-action`,action:`report-bug`}),e[364]=dr):dr=e[364];let fr;e[365]===t?fr=e[366]:(fr=t({id:`ft-BOm`}),e[365]=t,e[366]=fr);let pr;e[367]===fr?pr=e[368]:(pr=(0,w.jsx)(Z,{onSelect:dr,children:fr}),e[367]=fr,e[368]=pr);let mr;e[369]===Symbol.for(`react.memo_cache_sentinel`)?(mr=()=>l({kind:`menu-action`,action:`send-feedback`}),e[369]=mr):mr=e[369];let hr;e[370]===t?hr=e[371]:(hr=t({id:`_JOGC0`}),e[370]=t,e[371]=hr);let gr;e[372]===hr?gr=e[373]:(gr=(0,w.jsx)(Z,{onSelect:mr,children:hr}),e[372]=hr,e[373]=gr);let _r;e[374]!==t||e[375]!==i?.canCheckForUpdates?(_r=i?.canCheckForUpdates===!0&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Q,{}),(0,w.jsx)(Z,{onSelect:()=>l({kind:`command`,command:`check-for-updates`}),children:t({id:`3SZrdj`})})]}),e[374]=t,e[375]=i?.canCheckForUpdates,e[376]=_r):_r=e[376];let vr;e[377]!==ur||e[378]!==pr||e[379]!==gr||e[380]!==_r?(vr=(0,w.jsxs)(Xe,{children:[ur,pr,gr,_r]}),e[377]=ur,e[378]=pr,e[379]=gr,e[380]=_r,e[381]=vr):vr=e[381];let yr;e[382]!==sr||e[383]!==vr?(yr=(0,w.jsxs)(qe,{children:[sr,vr]}),e[382]=sr,e[383]=vr,e[384]=yr):yr=e[384];let br;return e[385]!==Lt||e[386]!==Yn||e[387]!==ar||e[388]!==yr||e[389]!==rt?(br=(0,w.jsxs)(Ke,{"data-testid":`app-menubar`,className:`h-auto rounded-none border-0 bg-transparent p-0 shadow-none [-webkit-app-region:no-drag]`,onValueChange:h,children:[rt,Lt,Yn,ar,yr]}),e[385]=Lt,e[386]=Yn,e[387]=ar,e[388]=yr,e[389]=rt,e[390]=br):br=e[390],br}function nt(){}export{tt as AppMenubar};
|