@inkeep/open-knowledge 0.47.0-beta.2 → 0.47.0-beta.21

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.
Files changed (393) hide show
  1. package/dist/{acp-harness-probe-BYLCx-9P.mjs → acp-harness-probe-DXYqzFYA.mjs} +2 -2
  2. package/dist/assets/skills/project/SKILL.md +1 -1
  3. package/dist/assets/skills/project/references/preview.md +2 -2
  4. package/dist/cli.mjs +62 -62
  5. package/dist/config-schema.json +45 -2
  6. package/dist/config.user.schema.json +45 -2
  7. package/dist/constants-DlluQJ9P.mjs +2 -0
  8. package/dist/{fs-traced-OS6B1cZZ.mjs → fs-traced-ArlA_yTp.mjs} +2 -2
  9. package/dist/fs-traced-C9U9YUGm.mjs +1 -0
  10. package/dist/git-handle-C8yML4WA.mjs +1 -0
  11. package/dist/{git-handle-RLYVdszV.mjs → git-handle-D0JshIxh.mjs} +2 -2
  12. package/dist/index.d.mts +23 -2
  13. package/dist/index.mjs +1 -1
  14. package/dist/init-BH_UUTAa.mjs +1 -0
  15. package/dist/{init-4qi6zG9S.mjs → init-BqXcwHZr.mjs} +11 -11
  16. package/dist/{launch-json-removal-CwrvAwfU.mjs → launch-json-removal--78GOuKl.mjs} +2 -2
  17. package/dist/{loader-cuv9j2d2.mjs → loader-BEBLs0tu.mjs} +2 -2
  18. package/dist/loader-JMKw2q8P.mjs +1 -0
  19. package/dist/md-manager-2FlXlcPD.mjs +2 -0
  20. package/dist/{open-browser-4sOlBbCM.mjs → open-browser-TU_nA_Sm.mjs} +2 -2
  21. package/dist/parse-worker.mjs +1 -1
  22. package/dist/preview-B4LkEOYR.mjs +1 -0
  23. package/dist/{preview-BQIDNBdK.mjs → preview-iFFl27Qj.mjs} +2 -2
  24. package/dist/public/assets/{ActivityModeContent-DnjDjPFp.js → ActivityModeContent-D3YT_cL3.js} +1 -1
  25. package/dist/public/assets/{AgentDiffPane-Th6j3NhO.js → AgentDiffPane-BCIrjLxd.js} +2 -2
  26. package/dist/public/assets/{AgentThreadClientBinder-BVm5Ldhz.js → AgentThreadClientBinder-BdHHup4k.js} +1 -1
  27. package/dist/public/assets/{BugReportHistory-D5qnl9oj.js → BugReportHistory-B_qUtT_t.js} +1 -1
  28. package/dist/public/assets/{BugReportHistoryDialog-Da9QnJRc.js → BugReportHistoryDialog-CZdY9Wqt.js} +1 -1
  29. package/dist/public/assets/{ChangedOutsideBadge-DVfCTGd2.js → ChangedOutsideBadge--Hze6vD1.js} +1 -1
  30. package/dist/public/assets/{CodeMirrorPropInput-DmM8F7PJ.js → CodeMirrorPropInput-BfYJOB1U.js} +3 -3
  31. package/dist/public/assets/{ConsentDialogBody-CB447Y2k.js → ConsentDialogBody-TldLlXQA.js} +1 -1
  32. package/dist/public/assets/DiffView-by44lBMn.js +3 -0
  33. package/dist/public/assets/DocumentContext-BpUSHG7l.js +38 -0
  34. package/dist/public/assets/{EditorModeToggle-DKuXrb9b.js → EditorModeToggle-DLnTYb-h.js} +1 -1
  35. package/dist/public/assets/{EnableSyncConfirmDialog-BQttSYlY.js → EnableSyncConfirmDialog-wfbNMORg.js} +1 -1
  36. package/dist/public/assets/FeedbackForm-DBEWSa2N.js +1 -0
  37. package/dist/public/assets/{GraphPanel-DK2w8FEz.js → GraphPanel-DcFOscrG.js} +1 -1
  38. package/dist/public/assets/{ImportSkillDialog-DHfVuiKL.js → ImportSkillDialog-C21eWM_C.js} +1 -1
  39. package/dist/public/assets/{LintConfigEditor-B-7Pe22_.js → LintConfigEditor-yHM3zNKy.js} +1 -1
  40. package/dist/public/assets/ManagedArtifactProperties-BKmB2Biq.js +2 -0
  41. package/dist/public/assets/ManagedArtifactProperties-Bz4VLtAN.js +1 -0
  42. package/dist/public/assets/{McpConsentDialogBody-DPMIdjmd.js → McpConsentDialogBody-DMOmHuL7.js} +1 -1
  43. package/dist/public/assets/{Mermaid-BePjlqwg.js → Mermaid-DeqR50Io.js} +2 -2
  44. package/dist/public/assets/{MermaidDocEditor-CBHNf1No.js → MermaidDocEditor-Brsvw0SI.js} +1 -1
  45. package/dist/public/assets/{RegisteredAgentIcon-H3tp7x07.js → RegisteredAgentIcon-MOyQ-5gc.js} +1 -1
  46. package/dist/public/assets/ReportBugDialogBody-et6slT5A.js +3 -0
  47. package/dist/public/assets/{SchemaConfigEditor-DG-dOTBT.js → SchemaConfigEditor-CDfilRoj.js} +1 -1
  48. package/dist/public/assets/{SessionsHost-DjbdveAp.js → SessionsHost-BGzKrV22.js} +2 -2
  49. package/dist/public/assets/SettingsDialogBody-DCVQf8Sd.js +12 -0
  50. package/dist/public/assets/{ShareBranchSwitchDialog-CyWPLWZG.js → ShareBranchSwitchDialog-Cq3P5fIG.js} +1 -1
  51. package/dist/public/assets/{ShareReceiveDialog-C-fxd4DJ.js → ShareReceiveDialog-BZMp2nd8.js} +1 -1
  52. package/dist/public/assets/{ShareReceiveMissDialog-Y4PyuUCZ.js → ShareReceiveMissDialog-CtBVQ8M0.js} +1 -1
  53. package/dist/public/assets/{SkillEditBanner-Dbu0PwqP.js → SkillEditBanner-vKY168Q9.js} +1 -1
  54. package/dist/public/assets/{SkillOriginInline-DuFc7cZs.js → SkillOriginInline-DgP96Q7o.js} +1 -1
  55. package/dist/public/assets/{SkillToolbarControls-B4k3LXLX.js → SkillToolbarControls-_SvouuNK.js} +1 -1
  56. package/dist/public/assets/SourceEditor-CEU2fHXS.js +1 -0
  57. package/dist/public/assets/{TerminalPanel-DkXL03UX.js → TerminalPanel-D_zDvWvD.js} +1 -1
  58. package/dist/public/assets/{TerminalWindowApp-DH34WwKL.js → TerminalWindowApp-DyVBq2Ss.js} +1 -1
  59. package/dist/public/assets/{TextDocEditor-DEdxUQxb.js → TextDocEditor-BL_-QkB7.js} +1 -1
  60. package/dist/public/assets/ThreadView-ChbqsfCR.js +6 -0
  61. package/dist/public/assets/{TimelineDiffPane-DSvFVt40.js → TimelineDiffPane-Dqrp96vQ.js} +2 -2
  62. package/dist/public/assets/{abnfDiagram-VRR7QNED-CR4UO3a9.js → abnfDiagram-VRR7QNED-BnbsMtSZ.js} +1 -1
  63. package/dist/public/assets/{agent-diff-store-BX4UT3y1.js → agent-diff-store-x2lZWEbT.js} +1 -1
  64. package/dist/public/assets/{agent-visibility-CYBYXsoR.js → agent-visibility-DooA6q6Y.js} +1 -1
  65. package/dist/public/assets/{arc-BLA1oiJE.js → arc-CVPlXeVn.js} +1 -1
  66. package/dist/public/assets/architecture-TIHT7OUA-Bu3B2Eu7.js +1 -0
  67. package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-BzyE8ILE.js → architectureDiagram-ZJ3FMSHR-Dosr6E3U.js} +1 -1
  68. package/dist/public/assets/auth-state-cache-UtyGZJkf.js +11 -0
  69. package/dist/public/assets/{blockDiagram-677ZJIJ3-BWKj-1q6.js → blockDiagram-677ZJIJ3-DlZp8ItG.js} +1 -1
  70. package/dist/public/assets/{c4Diagram-LMCZKHZV-DrEdH4Bj.js → c4Diagram-LMCZKHZV-ET_5c2OJ.js} +1 -1
  71. package/dist/public/assets/{calendar-DLNiQf9e.js → calendar-DQGpktO3.js} +1 -1
  72. package/dist/public/assets/channel-DjvQf__j.js +1 -0
  73. package/dist/public/assets/{checkbox-DoJAOcMt.js → checkbox-IqSEcunZ.js} +1 -1
  74. package/dist/public/assets/chunk-2Q5K7J3B-DeGCwTid.js +1 -0
  75. package/dist/public/assets/{chunk-32BRIVSS-BYVl5jAx.js → chunk-32BRIVSS-DNo-6ebx.js} +1 -1
  76. package/dist/public/assets/{chunk-52WLFC77-DaoBlZDo.js → chunk-52WLFC77-C6b3SFZy.js} +1 -1
  77. package/dist/public/assets/{chunk-5FCAYU7R-CVOgng3o.js → chunk-5FCAYU7R-CTroACwQ.js} +1 -1
  78. package/dist/public/assets/{chunk-5HE753X5-CD6gRM54.js → chunk-5HE753X5-BiVTlY9X.js} +1 -1
  79. package/dist/public/assets/{chunk-5JV3BV7I-C7ouju6I.js → chunk-5JV3BV7I-D5PSiL8d.js} +1 -1
  80. package/dist/public/assets/{chunk-5TONJI2A-BKisaZuR.js → chunk-5TONJI2A-Bxf6m0R0.js} +1 -1
  81. package/dist/public/assets/{chunk-5VM5RSS4-DldpLG4q.js → chunk-5VM5RSS4-CRkhjuQ5.js} +1 -1
  82. package/dist/public/assets/{chunk-7BUUIJ7U-B8p2bGIc.js → chunk-7BUUIJ7U-CIezx2MS.js} +1 -1
  83. package/dist/public/assets/{chunk-BIQX33UG-B-IlaACl.js → chunk-BIQX33UG-4vkcoUCs.js} +1 -1
  84. package/dist/public/assets/{chunk-BO2N2NFS-ic3Vmg5d.js → chunk-BO2N2NFS-B4sTS3Wn.js} +3 -3
  85. package/dist/public/assets/{chunk-C7G6YPKG-P_jPwciU.js → chunk-C7G6YPKG-DUEN2-Z_.js} +1 -1
  86. package/dist/public/assets/{chunk-CQNSW5MT-BoHYZDmN.js → chunk-CQNSW5MT-DY98Y9zl.js} +1 -1
  87. package/dist/public/assets/{chunk-CYSBUYHQ-BtnyZlJv.js → chunk-CYSBUYHQ-BK-vm9jf.js} +1 -1
  88. package/dist/public/assets/{chunk-EMLP6XTP-D_CFM3mi.js → chunk-EMLP6XTP-DZw4ZtXy.js} +1 -1
  89. package/dist/public/assets/{chunk-EX3LRPZG-ClnlXkCf.js → chunk-EX3LRPZG-yoDTr-PU.js} +1 -1
  90. package/dist/public/assets/{chunk-FWX5IMBZ-FFK1ngmB.js → chunk-FWX5IMBZ-BiIbzhiq.js} +2 -2
  91. package/dist/public/assets/{chunk-HOUHSVGY-BWwdD6sU.js → chunk-HOUHSVGY-Badw-z6W.js} +1 -1
  92. package/dist/public/assets/{chunk-ICXQ74PX-MYNcPnbp.js → chunk-ICXQ74PX-D2JPv1Gr.js} +1 -1
  93. package/dist/public/assets/{chunk-JG7HCLWE-jpq6rFyK.js → chunk-JG7HCLWE-DvlaYzpW.js} +1 -1
  94. package/dist/public/assets/{chunk-JWPE2WC7-BUo8MoXj.js → chunk-JWPE2WC7-CLgWJdHV.js} +1 -1
  95. package/dist/public/assets/{chunk-MOJQB5TN-CWrsqiJp.js → chunk-MOJQB5TN-DcXz8tHG.js} +1 -1
  96. package/dist/public/assets/{chunk-MOZMSUNE-bwYn0Kww.js → chunk-MOZMSUNE-BGXPWMly.js} +1 -1
  97. package/dist/public/assets/{chunk-OGEWGWER-CPRvTjbs.js → chunk-OGEWGWER-Cb9fL0HE.js} +1 -1
  98. package/dist/public/assets/{chunk-OSBZ3O6U-CUc7n3PO.js → chunk-OSBZ3O6U-DWgnErEt.js} +1 -1
  99. package/dist/public/assets/{chunk-PUDLZKDR-DYRvIzSN.js → chunk-PUDLZKDR-BaaHT_On.js} +1 -1
  100. package/dist/public/assets/{chunk-Q4XR5HBZ-C1-YIhba.js → chunk-Q4XR5HBZ-BwhG6EW6.js} +1 -1
  101. package/dist/public/assets/{chunk-QBLGF6JB-DOtavLb0.js → chunk-QBLGF6JB-4F2Itui7.js} +1 -1
  102. package/dist/public/assets/{chunk-R7FJI6CG-CWhtEDe1.js → chunk-R7FJI6CG-hR8tQLXq.js} +1 -1
  103. package/dist/public/assets/{chunk-RYQCIY6F-D8KQw2wV.js → chunk-RYQCIY6F-DycaSFT5.js} +1 -1
  104. package/dist/public/assets/{chunk-U6XO7XAA-CMfN73K7.js → chunk-U6XO7XAA-CHI_dfPQ.js} +1 -1
  105. package/dist/public/assets/{chunk-V7JOEXUC-pOJltdgR.js → chunk-V7JOEXUC-BkqBW0FT.js} +1 -1
  106. package/dist/public/assets/chunk-VAUOI2AC-CgZT0oz9.js +1 -0
  107. package/dist/public/assets/{chunk-VR4S4FIN-DZW_5hST.js → chunk-VR4S4FIN-uOOHuLS4.js} +1 -1
  108. package/dist/public/assets/{chunk-WYO6CB5R-CALegXxo.js → chunk-WYO6CB5R-vMJfXjXv.js} +1 -1
  109. package/dist/public/assets/chunk-XXDRQBXY-DjPNLLex.js +1 -0
  110. package/dist/public/assets/{chunk-YOTPTUD7-DzE2J0ru.js → chunk-YOTPTUD7-Cg9yDbvj.js} +1 -1
  111. package/dist/public/assets/{chunk-ZGVPDNZ5-gA_FvYeM.js → chunk-ZGVPDNZ5-Dg2m5m88.js} +1 -1
  112. package/dist/public/assets/{chunk-ZIRB5QZD-DTzEX6O5.js → chunk-ZIRB5QZD-DuiWBTeF.js} +1 -1
  113. package/dist/public/assets/classDiagram-OUVF2IWQ-CJ4TXwAt.js +1 -0
  114. package/dist/public/assets/classDiagram-v2-EOCWNBFH-CQLf9yeG.js +1 -0
  115. package/dist/public/assets/{client-version-DN8Gnc8R.js → client-version-BeO7mg7I.js} +1 -1
  116. package/dist/public/assets/{cm-theme-BCzjFmR8.js → cm-theme-hkm-VXmY.js} +1 -1
  117. package/dist/public/assets/comment-chips-CnL7Mdk6.js +7 -0
  118. package/dist/public/assets/config-context-DO4l6dU6.js +1 -0
  119. package/dist/public/assets/config-provider-BmNEf-_4.js +4 -0
  120. package/dist/public/assets/{cose-bilkent-JH36ORCC-Dfdgm0c_.js → cose-bilkent-JH36ORCC-YCEFr4ip.js} +1 -1
  121. package/dist/public/assets/cynefin-VYW2F7L2-Dh2yc-Yt.js +1 -0
  122. package/dist/public/assets/{cynefinDiagram-TSTJHNR4-Cw46kgPb.js → cynefinDiagram-TSTJHNR4-BN7bqTzy.js} +1 -1
  123. package/dist/public/assets/{dagre-Bx2kZZfx.js → dagre-4yTvJ5bN.js} +1 -1
  124. package/dist/public/assets/{dagre-VKFMJZFB-BZXSt5WP.js → dagre-VKFMJZFB-DlQyYi34.js} +1 -1
  125. package/dist/public/assets/{diagram-FQU43EPY-d7V3h8SU.js → diagram-FQU43EPY-DaKZOj7t.js} +1 -1
  126. package/dist/public/assets/{diagram-G47NLZAW-UEIcjgnl.js → diagram-G47NLZAW-DjL0bkk2.js} +1 -1
  127. package/dist/public/assets/{diagram-NH7WQ7WH-VelQiPV8.js → diagram-NH7WQ7WH-BFVKsCaX.js} +1 -1
  128. package/dist/public/assets/{diagram-OA4YK3LP-DSOrpt5z.js → diagram-OA4YK3LP-CXLUBG3X.js} +1 -1
  129. package/dist/public/assets/{diagram-WEI45ONY-C2KGJAjs.js → diagram-WEI45ONY-4JXEHpGs.js} +1 -1
  130. package/dist/public/assets/{dialog-FGMqkFjm.js → dialog-CCQHftjy.js} +1 -1
  131. package/dist/public/assets/{dist-D0E_Pe_n.js → dist-6M032-rx.js} +1 -1
  132. package/dist/public/assets/{dist-BSFcbUmR.js → dist-B3siOv8e.js} +1 -1
  133. package/dist/public/assets/{dist-Br-Gb0Mn2.js → dist-BkKhGRrp2.js} +1 -1
  134. package/dist/public/assets/{dist-D1CcITrZ.js → dist-C11p0Ish.js} +1 -1
  135. package/dist/public/assets/{dist-DIn3VYDc2.js → dist-CLzUuFWF2.js} +182 -180
  136. package/dist/public/assets/{dist-BpT9gASx.js → dist-Cq2eW_l0.js} +1 -1
  137. package/dist/public/assets/{dist-DetO1WI6.js → dist-D-N_uAqc.js} +1 -1
  138. package/dist/public/assets/{dist-BiwnBosN2.js → dist-DOpBKTtD.js} +1 -1
  139. package/dist/public/assets/{dist-ButMY3R3.js → dist-DTdK5ajW.js} +1 -1
  140. package/dist/public/assets/{dist-CZG2zXVq.js → dist-DYeLFwEq.js} +1 -1
  141. package/dist/public/assets/{dist-7c4LkvyR.js → dist-DmIoZuDL.js} +1 -1
  142. package/dist/public/assets/{dist-PVNGgT7j.js → dist-EhhPm2QX.js} +1 -1
  143. package/dist/public/assets/{dist-2Zg1mqwY.js → dist-KXQQa8Xt.js} +1 -1
  144. package/dist/public/assets/{dist-CK9mVFzk.js → dist-p_jJ7IYj.js} +1 -1
  145. package/dist/public/assets/{doc-paths-KCjzuC60.js → doc-paths-D7j_eEce.js} +1 -1
  146. package/dist/public/assets/{documents-events-FrlFXuC-.js → documents-events-BXEDUEK0.js} +1 -1
  147. package/dist/public/assets/{ebnfDiagram-CCIWWBDH-ZrmzNbWG.js → ebnfDiagram-CCIWWBDH-BYS8OeyH.js} +1 -1
  148. package/dist/public/assets/{erDiagram-Q63AITRT-BBTP0qHZ.js → erDiagram-Q63AITRT-DJnXYkWL.js} +1 -1
  149. package/dist/public/assets/eventmodeling-45OFAUF4-CoqTTBqG.js +1 -0
  150. package/dist/public/assets/{file-tree-adapter-BBMHbQG5.js → file-tree-adapter-CjX34jcF.js} +1 -1
  151. package/dist/public/assets/{file-tree-utils-DeyBapi2.js → file-tree-utils-Ce34hqQC.js} +1 -1
  152. package/dist/public/assets/flowDiagram-23GEKE2U-BuF1ujIX.js +1 -0
  153. package/dist/public/assets/{folder-config-api-OU19qNKs.js → folder-config-api-B4ZIaRYS.js} +1 -1
  154. package/dist/public/assets/follow-file-B0woPClO.js +1 -0
  155. package/dist/public/assets/{ganttDiagram-NO4QXBWP-BNFd_PNq.js → ganttDiagram-NO4QXBWP-DItaKOAF.js} +1 -1
  156. package/dist/public/assets/gitGraph-TEB2WS4Q-D2tde3MB.js +1 -0
  157. package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-Bh6zKfrc.js → gitGraphDiagram-IHSO6WYX-DHQDAgYw.js} +1 -1
  158. package/dist/public/assets/globals-BMBVXTkN.css +1 -0
  159. package/dist/public/assets/{globals-D4ycChQP.js → globals-C8FNtceU.js} +2 -2
  160. package/dist/public/assets/{graphlib-BIjbwrWA.js → graphlib-2sje7ygs.js} +1 -1
  161. package/dist/public/assets/{highlighted-body-OFNGDK62-Bk6-lgsP.js → highlighted-body-OFNGDK62-B67nCp45.js} +1 -1
  162. package/dist/public/assets/index-gkgpssO7.js +2092 -0
  163. package/dist/public/assets/info-DKCQHKI2-DIQGY0RW.js +1 -0
  164. package/dist/public/assets/{infoDiagram-FWYZ7A6U-BEVnShNr.js → infoDiagram-FWYZ7A6U-DEoYqFCv.js} +1 -1
  165. package/dist/public/assets/{input-group-cP5PCk_d.js → input-group-DySyX67I.js} +1 -1
  166. package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-3BFj-gt2.js → ishikawaDiagram-FXEZZL3T-nCaxlJmo.js} +1 -1
  167. package/dist/public/assets/{journeyDiagram-5HDEW3XC-DZXVJa-m.js → journeyDiagram-5HDEW3XC-SSk-SIOT.js} +1 -1
  168. package/dist/public/assets/{kanban-definition-HUTT4EX6-ZEJY2PY6.js → kanban-definition-HUTT4EX6-DRKBtZF0.js} +1 -1
  169. package/dist/public/assets/{line-CBrFSVI1.js → line-D6Xvw2WQ.js} +1 -1
  170. package/dist/public/assets/{linear-HAqJanW2.js → linear-CUFA2OWO.js} +1 -1
  171. package/dist/public/assets/{lint-config-client-D7DpNIwn.js → lint-config-client-5M2PwjWj.js} +1 -1
  172. package/dist/public/assets/{map-CUyVBcsz.js → map-DbAr_xa0.js} +1 -1
  173. package/dist/public/assets/{markdownlint-rule-browser-eFxHHf9q.js → markdownlint-rule-browser-Bh_v81ob.js} +1 -1
  174. package/dist/public/assets/mermaid-GHXKKRXX-Dejo0Qfr.js +1 -0
  175. package/dist/public/assets/{mermaid-parser.core-CAIoUhyF.js → mermaid-parser.core-B8FUrn7y.js} +2 -2
  176. package/dist/public/assets/{mermaid.core-BSPhkPvD.js → mermaid.core-PVP9iSLZ.js} +3 -3
  177. package/dist/public/assets/{mindmap-definition-LN4V7U3C-d7Yar9sd.js → mindmap-definition-LN4V7U3C-DZarlxka.js} +1 -1
  178. package/dist/public/assets/{navigation-targets-BDSeZX3c.js → navigation-targets-CBDcAPCE.js} +1 -1
  179. package/dist/public/assets/{now-DrceMm81.js → now-B4vxsI1S.js} +1 -1
  180. package/dist/public/assets/{open-managed-artifact-tab-Wkw7QMir.js → open-managed-artifact-tab-CD2IVH49.js} +1 -1
  181. package/dist/public/assets/{ordinal-DOdOZcEj.js → ordinal-Cfxeoxe-.js} +1 -1
  182. package/dist/public/assets/packet-7NZHBO7P-C6h6PguP.js +1 -0
  183. package/dist/public/assets/{pegDiagram-2B236MQR-CEUK_J9s.js → pegDiagram-2B236MQR-xOZS-dXD.js} +1 -1
  184. package/dist/public/assets/{pending-receive-nav-store-BN0afFCO.js → pending-receive-nav-store-Biw1Epvx.js} +1 -1
  185. package/dist/public/assets/pie-RZYD4A2V-BgsL62qC.js +1 -0
  186. package/dist/public/assets/{pieDiagram-ENE6RG2P-BKd67Ppo.js → pieDiagram-ENE6RG2P-DCp62t84.js} +1 -1
  187. package/dist/public/assets/{project-paths-DF-eCznB.js → project-paths-CMGR87VL.js} +1 -1
  188. package/dist/public/assets/{prop-types-MABP6X1c.js → prop-types-CzBvMPTy.js} +1 -1
  189. package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-GOJ4Ru_Z.js → quadrantDiagram-ABIIQ3AL-BDn0FSq4.js} +1 -1
  190. package/dist/public/assets/radar-I7S5WNFK-2Fukjsh1.js +1 -0
  191. package/dist/public/assets/{radio-group-MAC3jHHk.js → radio-group-CvYE9US5.js} +1 -1
  192. package/dist/public/assets/railroad-3IZDKUUU-BXQstaOW.js +1 -0
  193. package/dist/public/assets/railroad-abnf-AHOZXSZD-D4DJxFB6.js +1 -0
  194. package/dist/public/assets/railroad-ebnf-EBAXGLYW-B9wL5Mgq.js +1 -0
  195. package/dist/public/assets/railroad-peg-LSFZ7HO6-TRaMzMt0.js +1 -0
  196. package/dist/public/assets/{railroadDiagram-RFXS5EU6-hbmjTFrg.js → railroadDiagram-RFXS5EU6-C8pvuwMD.js} +1 -1
  197. package/dist/public/assets/{receive-store-CTNYU3q-.js → receive-store-8-NLCTcl.js} +1 -1
  198. package/dist/public/assets/{requirementDiagram-TGXJPOKE-BiEasTaW.js → requirementDiagram-TGXJPOKE-D_WWP7vX.js} +1 -1
  199. package/dist/public/assets/{sankeyDiagram-HTMAVEWB-DgAnFftC.js → sankeyDiagram-HTMAVEWB-B5F6SKgf.js} +1 -1
  200. package/dist/public/assets/{schema-fields-view-intent-DVVFEaIP.js → schema-fields-view-intent-Df0KnOO8.js} +1 -1
  201. package/dist/public/assets/{selection-context-BgucOSM-.js → selection-context-e4f29ln_.js} +1 -1
  202. package/dist/public/assets/{sequenceDiagram-DBY2YBRQ-CTQ250gM.js → sequenceDiagram-DBY2YBRQ-Q2j2kfBA.js} +1 -1
  203. package/dist/public/assets/{sizeCapture-X5ZJPWSS-CdOK33Lp.js → sizeCapture-X5ZJPWSS-B6c4PqMD.js} +1 -1
  204. package/dist/public/assets/skill-actions-BRtvvjCU.js +2 -0
  205. package/dist/public/assets/skill-scope-DQD8O86J.js +1 -0
  206. package/dist/public/assets/{skills-api-BCiYKVSk.js → skills-api-CmrsjdWe.js} +1 -1
  207. package/dist/public/assets/{src-CprZUkQE.js → src-BFmudBKQ.js} +1 -1
  208. package/dist/public/assets/{src-C_O1F_4l.js → src-DFNABQhY.js} +1 -1
  209. package/dist/public/assets/{stateDiagram-2N3HPSRC-XnGXamTb.js → stateDiagram-2N3HPSRC-rRceSq2o.js} +1 -1
  210. package/dist/public/assets/stateDiagram-v2-6OUMAXLB-D6QBedzc.js +1 -0
  211. package/dist/public/assets/{swimlanes-5IMT3BWC-DoENgZhK.js → swimlanes-5IMT3BWC-BCV0gUXz.js} +2 -2
  212. package/dist/public/assets/swimlanesDiagram-G3AALYLV-DTjtbbG7.js +8 -0
  213. package/dist/public/assets/{tag-pill-input-3Bkld5bN.js → tag-pill-input-MTbs9SQK.js} +1 -1
  214. package/dist/public/assets/{target-navigation-intent-BZ8rve8n.js → target-navigation-intent-O-KNJVho.js} +1 -1
  215. package/dist/public/assets/{telemetry-impl-BnnSgCUt.js → telemetry-impl-D8fmQ-sL.js} +2 -2
  216. package/dist/public/assets/{telemetry-startup-Bm4eG3HE.js → telemetry-startup-DC_TV8BC.js} +1 -1
  217. package/dist/public/assets/{terminal-launch-events-DbpTBIvl.js → terminal-launch-events-BBXOhZSh.js} +1 -1
  218. package/dist/public/assets/{terminal-telemetry-BMiT9GUh.js → terminal-telemetry-B4AWY5_A.js} +1 -1
  219. package/dist/public/assets/text-viewer-languages-Bnw74F7h.js +2 -0
  220. package/dist/public/assets/{thread-client-Boy5ZhFJ.js → thread-client-BVh92ozO.js} +1 -1
  221. package/dist/public/assets/{timeline-definition-FHXFAJF6-Dz7EyUrw.js → timeline-definition-FHXFAJF6-gfnw-IEO.js} +1 -1
  222. package/dist/public/assets/treeView-QDETBFTQ-DItjR5Rl.js +1 -0
  223. package/dist/public/assets/treemap-6X3UGDF4-D1JSLPGs.js +1 -0
  224. package/dist/public/assets/{typing-burst-detector-DDN6b6N7.js → typing-burst-detector-BC_MP6fa.js} +3 -3
  225. package/dist/public/assets/{uninstall-DJBDkbwq.js → uninstall-D1vd3-cj.js} +1 -1
  226. package/dist/public/assets/{use-activity-panel-CInEut0L.js → use-activity-panel-D8J3vm0W.js} +1 -1
  227. package/dist/public/assets/{use-collab-url-ecWCytiv.js → use-collab-url-ryL1J_Cn.js} +1 -1
  228. package/dist/public/assets/use-live-xterm-theme-Bit3P-w4.js +1 -0
  229. package/dist/public/assets/{use-open-skill-C3UqDa0B.js → use-open-skill-CItHgrjr.js} +1 -1
  230. package/dist/public/assets/{use-settings-route-CYvmk4XT.js → use-settings-route-DzedD2vL.js} +1 -1
  231. package/dist/public/assets/{use-skill-directory-Ce1Wy5Qf.js → use-skill-directory-zc2nSEYt.js} +1 -1
  232. package/dist/public/assets/{use-skill-origin-DscI7Fo0.js → use-skill-origin-C_LYVSfo.js} +1 -1
  233. package/dist/public/assets/{use-skills-B19yYlmR.js → use-skills-DrxE5iKU.js} +1 -1
  234. package/dist/public/assets/{use-terminal-enabled-D556BQSW.js → use-terminal-enabled-CXM-nkD1.js} +1 -1
  235. package/dist/public/assets/{use-timeline-entry-diff-C_2VFthE.js → use-timeline-entry-diff-BvT74ai9.js} +1 -1
  236. package/dist/public/assets/{use-workspace-008C-zhL.js → use-workspace-Di9mo5VO.js} +1 -1
  237. package/dist/public/assets/{vennDiagram-L72KCM5P-CSiYKx1Y.js → vennDiagram-L72KCM5P-CbI7Ws0x.js} +1 -1
  238. package/dist/public/assets/wardley-OPB4EBWU-BEy33__G.js +1 -0
  239. package/dist/public/assets/{wardleyDiagram-EHGQE667-CGZiBV3f.js → wardleyDiagram-EHGQE667-CDUlKkhj.js} +1 -1
  240. package/dist/public/assets/{xychartDiagram-FW5EYKEG-CQtMPqdH.js → xychartDiagram-FW5EYKEG-BnHJ2vZS.js} +1 -1
  241. package/dist/public/index.html +128 -115
  242. package/dist/public/uninstall.html +11 -11
  243. package/dist/{repair-launch-json-BDkJpah_.mjs → repair-launch-json-DXxrE4q1.mjs} +2 -2
  244. package/dist/{repair-mcp-configs-DnQc3393.mjs → repair-mcp-configs-CJYHrV-m.mjs} +2 -2
  245. package/dist/{repair-skills-BikzcmQr.mjs → repair-skills-DueNXSu9.mjs} +2 -2
  246. package/dist/repair-skills-rWKf_ECf.mjs +1 -0
  247. package/dist/schemas/v0/config.user.schema.json +45 -2
  248. package/dist/{server-lock-DgWnoftI.mjs → server-lock-3ByzWRdV.mjs} +2 -2
  249. package/dist/server-lock-BqPFXabR.mjs +1 -0
  250. package/dist/{sleep-C5OfWWWx.mjs → sleep-ByqzSHar.mjs} +2 -2
  251. package/dist/{src-CWDcUomk.mjs → src-C_7vTM-s.mjs} +427 -427
  252. package/dist/src-CoiPAaPO.mjs +20 -0
  253. package/dist/{src-pJ6LEXKc.mjs → src-czIvvgm0.mjs} +125 -123
  254. package/dist/src-xynSvLbg.mjs +1 -0
  255. package/dist/{start-B8X4x2RR.mjs → start-BSKY8GSZ.mjs} +3 -3
  256. package/dist/start-B_TU8YFy.mjs +1 -0
  257. package/dist/{write-project-skill-B8LGhuHT.mjs → write-project-skill-DpGXCFNK.mjs} +4 -4
  258. package/package.json +4 -4
  259. package/dist/constants-CHd7yi0X.mjs +0 -2
  260. package/dist/fs-traced-CbQ-GS7x.mjs +0 -1
  261. package/dist/git-handle-D0uAjBAd.mjs +0 -1
  262. package/dist/init-DVGGoG7U.mjs +0 -1
  263. package/dist/loader-Da51ptLu.mjs +0 -1
  264. package/dist/md-manager-CrYbAiKl.mjs +0 -2
  265. package/dist/preview-CpHlywZf.mjs +0 -1
  266. package/dist/public/assets/DiffView-BBC1fcoF.js +0 -3
  267. package/dist/public/assets/DocumentContext-B0g_vd8N.js +0 -38
  268. package/dist/public/assets/FeedbackForm-FbNH_TYS.js +0 -1
  269. package/dist/public/assets/ManagedArtifactProperties-B-Y5eayN.js +0 -8
  270. package/dist/public/assets/ManagedArtifactProperties-Ddk1e_f6.js +0 -1
  271. package/dist/public/assets/ReportBugDialogBody-CXLxw7Fr.js +0 -3
  272. package/dist/public/assets/SettingsDialogBody-CFwua7VK.js +0 -12
  273. package/dist/public/assets/SourceEditor-BCMM4zJn.js +0 -1
  274. package/dist/public/assets/ThreadView-ktubIY9d.js +0 -6
  275. package/dist/public/assets/architecture-TIHT7OUA-4xbw6BHT.js +0 -1
  276. package/dist/public/assets/auth-state-cache-ZZgXmLCf.js +0 -11
  277. package/dist/public/assets/channel-W8Wrr3Pm.js +0 -1
  278. package/dist/public/assets/chunk-2Q5K7J3B-CTVQtWlX.js +0 -1
  279. package/dist/public/assets/chunk-VAUOI2AC-DXm68bP_.js +0 -1
  280. package/dist/public/assets/chunk-XXDRQBXY-AFNsmOQr.js +0 -1
  281. package/dist/public/assets/classDiagram-OUVF2IWQ-Cw2xj9dC.js +0 -1
  282. package/dist/public/assets/classDiagram-v2-EOCWNBFH-BizmfFXw.js +0 -1
  283. package/dist/public/assets/config-context-CdjtvoAz.js +0 -1
  284. package/dist/public/assets/config-provider-CKct7q_G.js +0 -4
  285. package/dist/public/assets/cynefin-VYW2F7L2-PIqjqGI8.js +0 -1
  286. package/dist/public/assets/eventmodeling-45OFAUF4-BXfoXwmF.js +0 -1
  287. package/dist/public/assets/flowDiagram-23GEKE2U-BmjC2t41.js +0 -1
  288. package/dist/public/assets/follow-file-B9Rl63vu.js +0 -1
  289. package/dist/public/assets/gitGraph-TEB2WS4Q-CO_Nyook.js +0 -1
  290. package/dist/public/assets/globals-BLjNYywW.css +0 -1
  291. package/dist/public/assets/index-Bnezs-Zg.js +0 -2092
  292. package/dist/public/assets/info-DKCQHKI2-Qu4WNhHa.js +0 -1
  293. package/dist/public/assets/mermaid-GHXKKRXX-D5iPyEgH.js +0 -1
  294. package/dist/public/assets/packet-7NZHBO7P-DYoxmend.js +0 -1
  295. package/dist/public/assets/pie-RZYD4A2V-C5oywqmk.js +0 -1
  296. package/dist/public/assets/radar-I7S5WNFK-adGffv9k.js +0 -1
  297. package/dist/public/assets/railroad-3IZDKUUU-D4AY10Mc.js +0 -1
  298. package/dist/public/assets/railroad-abnf-AHOZXSZD-CSShZExy.js +0 -1
  299. package/dist/public/assets/railroad-ebnf-EBAXGLYW-Dl_rhwOm.js +0 -1
  300. package/dist/public/assets/railroad-peg-LSFZ7HO6-B2JvE7nW.js +0 -1
  301. package/dist/public/assets/skill-actions-By3ZQhYp.js +0 -2
  302. package/dist/public/assets/skill-scope-DkGQeaIH.js +0 -1
  303. package/dist/public/assets/stateDiagram-v2-6OUMAXLB-DSmEVntN.js +0 -1
  304. package/dist/public/assets/swimlanesDiagram-G3AALYLV-BDr_w1kf.js +0 -8
  305. package/dist/public/assets/text-viewer-languages-BZtGVaBl.js +0 -2
  306. package/dist/public/assets/treeView-QDETBFTQ-qMpkjbKi.js +0 -1
  307. package/dist/public/assets/treemap-6X3UGDF4-BW1Uc-Dj.js +0 -1
  308. package/dist/public/assets/use-live-xterm-theme-Bf72FxVk.js +0 -1
  309. package/dist/public/assets/wardley-OPB4EBWU-BBZU6-hF.js +0 -1
  310. package/dist/repair-skills-CCM2p_7S.mjs +0 -1
  311. package/dist/server-lock-CiN5OJ-t.mjs +0 -1
  312. package/dist/src-CGOjzQCL.mjs +0 -1
  313. package/dist/src-Drda0pBn.mjs +0 -20
  314. package/dist/start-CPV4EUy8.mjs +0 -1
  315. /package/dist/public/assets/{ActivityPanelDiffView-BXFg3amj.js → ActivityPanelDiffView-DZrMHlZH.js} +0 -0
  316. /package/dist/public/assets/{AppMenubar-ORka9Zwj.js → AppMenubar-CD82DZmT.js} +0 -0
  317. /package/dist/public/assets/{ConfigSharingInfoTooltip-C4ydhukC.js → ConfigSharingInfoTooltip-D_b3sMDA.js} +0 -0
  318. /package/dist/public/assets/{SkillModeBanner-BPmqGiVe.js → SkillModeBanner-DFgrdWyf.js} +0 -0
  319. /package/dist/public/assets/{__vite-browser-external-CVGzy5OC.js → __vite-browser-external-CL4duhlG.js} +0 -0
  320. /package/dist/public/assets/{agent-presence-Dn2bQ2Pn.js → agent-presence-DuXF7V6Q.js} +0 -0
  321. /package/dist/public/assets/{array-CxykTcx8.js → array-DRGYhAwX.js} +0 -0
  322. /package/dist/public/assets/{asset-dispatch-BOfThpQD.js → asset-dispatch-O9x3rXhj.js} +0 -0
  323. /package/dist/public/assets/{auth-prompt-store-CeUwLE3s.js → auth-prompt-store-DQ_HcDxh.js} +0 -0
  324. /package/dist/public/assets/{badge-CAMtyz4F.js → badge-CnYDYmI5.js} +0 -0
  325. /package/dist/public/assets/{chunk-KEIR6QF5-DQW1nIEN.js → chunk-KEIR6QF5-CTDrJ2_V.js} +0 -0
  326. /package/dist/public/assets/{chunk-Y2CYZVJY-Dp_m2dHs.js → chunk-Y2CYZVJY-WQQLMo_s.js} +0 -0
  327. /package/dist/public/assets/{clike-D2Qtyj0W.js → clike-BfpXCH0g.js} +0 -0
  328. /package/dist/public/assets/{clipboard-adapter-Brbch5VX.js → clipboard-adapter-DPkNOslT.js} +0 -0
  329. /package/dist/public/assets/{colors-DxV0gzKw.js → colors-BY0RBIvp.js} +0 -0
  330. /package/dist/public/assets/{copilot-_tsUyzgD.js → copilot-CuzHDCzI.js} +0 -0
  331. /package/dist/public/assets/{cursor-D_UKSHL6.js → cursor-W0skD8YU.js} +0 -0
  332. /package/dist/public/assets/{cytoscape.esm-Yabh0yK_.js → cytoscape.esm-Ck6hca6m.js} +0 -0
  333. /package/dist/public/assets/{defaultLocale-BwEiHuJD.js → defaultLocale-C9lDPH35.js} +0 -0
  334. /package/dist/public/assets/{desktop-bridge-types-FXg4M54A.js → desktop-bridge-types-BwR5S9HF.js} +0 -0
  335. /package/dist/public/assets/{diff-Dke_3Gcp.js → diff-CvjWTdgS.js} +0 -0
  336. /package/dist/public/assets/{dist-yoZDDKeY.js → dist-CTHTGkF4.js} +0 -0
  337. /package/dist/public/assets/{dist-CzC3AWOn.js → dist-CpRBr-Ct.js} +0 -0
  338. /package/dist/public/assets/{dist-CPBLOoKm.js → dist-DIZJMUWy.js} +0 -0
  339. /package/dist/public/assets/{dist-uN7pEWl0.js → dist-DmEZHXvB.js} +0 -0
  340. /package/dist/public/assets/{dist-BNDNcytQ.js → dist-lPnSB2_D.js} +0 -0
  341. /package/dist/public/assets/{documents-fetch-DhfOkJYw.js → documents-fetch-DK-kdvYE.js} +0 -0
  342. /package/dist/public/assets/{external-link-Dvu-nzFi.js → external-link-COF7NUCm.js} +0 -0
  343. /package/dist/public/assets/{field-CmzMDU7U.js → field-7smx8aeY.js} +0 -0
  344. /package/dist/public/assets/{file-tree-rename-validation-1Yh3dC3l.js → file-tree-rename-validation-DEz_ryBu.js} +0 -0
  345. /package/dist/public/assets/{form-DJq6IJkN.js → form-D-Z78Sh8.js} +0 -0
  346. /package/dist/public/assets/{format-DAPkd5Gj.js → format-CFFWVvag.js} +0 -0
  347. /package/dist/public/assets/{go-CcjpRIwm.js → go-D-9nxjMR.js} +0 -0
  348. /package/dist/public/assets/{init-c3-Nu4HJ.js → init-Dpr8Tcj2.js} +0 -0
  349. /package/dist/public/assets/{input-Cm94Cun3.js → input-CtKG6a5B.js} +0 -0
  350. /package/dist/public/assets/{isObject-cN229uXS.js → isObject-B_BLuINR.js} +0 -0
  351. /package/dist/public/assets/{libesm-DXt8eMZu.js → libesm-Dcsy_--i.js} +0 -0
  352. /package/dist/public/assets/{lint-plugin-meta-BxfSlkph.js → lint-plugin-meta-BnniPb1r.js} +0 -0
  353. /package/dist/public/assets/{lru-string-cache-Dvzy2WTu.js → lru-string-cache-jJ5hyYK1.js} +0 -0
  354. /package/dist/public/assets/{lua-DxmBbMX2.js → lua-qAotk3Jg.js} +0 -0
  355. /package/dist/public/assets/{mcp-consent-store-BcrhbRwc.js → mcp-consent-store-Dz4H-8gV.js} +0 -0
  356. /package/dist/public/assets/{min-BZE3RIbd.js → min-CCEG0l64.js} +0 -0
  357. /package/dist/public/assets/{minus-DfB0TQSz.js → minus-C4B0dZfA.js} +0 -0
  358. /package/dist/public/assets/{overlay-layers-Bzzqy8A3.js → overlay-layers-CBGNHxJK.js} +0 -0
  359. /package/dist/public/assets/{panel-Bjv8raTx.js → panel-UxAkffLp.js} +0 -0
  360. /package/dist/public/assets/{panel-right-open-ypUBRt7V.js → panel-right-open-DuqyjMS8.js} +0 -0
  361. /package/dist/public/assets/{panzoom.es-BG-eqGqR.js → panzoom.es-H6kNXvjN.js} +0 -0
  362. /package/dist/public/assets/{paperclip-DQzUb6fY.js → paperclip-BDIpg8Sx.js} +0 -0
  363. /package/dist/public/assets/{parse-api-error-Dmlzsw8v.js → parse-api-error-BFe1cdS7.js} +0 -0
  364. /package/dist/public/assets/{path-C0vgPxDI.js → path-56QyJhyg.js} +0 -0
  365. /package/dist/public/assets/{pdf-Cvbt6FaY.js → pdf-CYHvv2Oq.js} +0 -0
  366. /package/dist/public/assets/{pdf.worker-D0hSc7ZI.js → pdf.worker-B8Ju19hh.js} +0 -0
  367. /package/dist/public/assets/{perl-CTbv8SzR.js → perl-E4P7BXaC.js} +0 -0
  368. /package/dist/public/assets/{properties-CJVfsSwL.js → properties-DXHbGwrb.js} +0 -0
  369. /package/dist/public/assets/{r-DePwCFla.js → r-DCDstkyG.js} +0 -0
  370. /package/dist/public/assets/{refresh-cw-CTfHLdRW.js → refresh-cw-s-1Jcbef.js} +0 -0
  371. /package/dist/public/assets/{rough.esm-jZQkcmER.js → rough.esm-DE_lJ5Ge.js} +0 -0
  372. /package/dist/public/assets/{ruby-CbNmqTQ7.js → ruby-DeKk3LV3.js} +0 -0
  373. /package/dist/public/assets/{share-metadata-rows-CuFlpaJB.js → share-metadata-rows-B1YjvGbL.js} +0 -0
  374. /package/dist/public/assets/{shell-PtNEZQbu.js → shell-BRtU48Yb.js} +0 -0
  375. /package/dist/public/assets/{skeleton-Zj40UZU5.js → skeleton-DS8zjX9Q.js} +0 -0
  376. /package/dist/public/assets/{sortable.esm-BuA5-2It.js → sortable.esm-DR5PU-kX.js} +0 -0
  377. /package/dist/public/assets/{sql-DLytrKWQ.js → sql-XsKG_-B3.js} +0 -0
  378. /package/dist/public/assets/{square-pen-DbfX_rTK.js → square-pen-CJ1htiTi.js} +0 -0
  379. /package/dist/public/assets/{src-D9TuoXKa.js → src-DLd5TgYd.js} +0 -0
  380. /package/dist/public/assets/{startup-marks-B88RuIAa.js → startup-marks-BJYEMeGu.js} +0 -0
  381. /package/dist/public/assets/{stex-C_UPsIFu.js → stex-B3qxBOBU.js} +0 -0
  382. /package/dist/public/assets/{swift-BqNeJfD7.js → swift-CGhDVaQR.js} +0 -0
  383. /package/dist/public/assets/{textarea-Cl4IJ1LU.js → textarea-CUVLEZhx.js} +0 -0
  384. /package/dist/public/assets/{thread-draft-staging-XfhEE_6X.js → thread-draft-staging-BXLyxk1u.js} +0 -0
  385. /package/dist/public/assets/{timeline-diff-store-B-Ea84Rl.js → timeline-diff-store-sC1fl4YV.js} +0 -0
  386. /package/dist/public/assets/{toml-Cboq-aWW.js → toml-DkvxgD0C.js} +0 -0
  387. /package/dist/public/assets/{trash-2-WxyktwvM.js → trash-2-B8G0hzas.js} +0 -0
  388. /package/dist/public/assets/{triangle-alert-C2yId37R.js → triangle-alert-aDFrGIbV.js} +0 -0
  389. /package/dist/public/assets/{undo-2-DlBBaLMR.js → undo-2-DKF_XXr6.js} +0 -0
  390. /package/dist/public/assets/{use-installed-clis-BpdGnrVu.js → use-installed-clis-B7_xP0xS.js} +0 -0
  391. /package/dist/public/assets/{useLintConfigViewMode-DHyC74de.js → useLintConfigViewMode-C3vaXrG0.js} +0 -0
  392. /package/dist/public/assets/{wrench-BvqzH63x.js → wrench-tsJ759Zo.js} +0 -0
  393. /package/dist/public/assets/{x-xV4a4mi6.js → x-DIcZlcqo.js} +0 -0
@@ -43,37 +43,49 @@
43
43
  so the BrowserWindow's vibrancy material shows through. Web mode
44
44
  (no `window.okDesktop`) skips the class so chrome stays solid.
45
45
 
46
- The IDE color palette is read from `ok-color-theme-v1` and applied as
47
- the `data-color-theme` attribute consumed by
48
- `color-themes.generated.css`. Each named IDE palette carries its own mode, so
49
- a present value forces the `dark` class (or clears it for a light palette like
50
- `catppuccin-latte`) regardless of `ok-theme-v1`. The `custom`
51
- palette is replayed from `ok-custom-theme-v1` (`{ css, dark }`): its prebuilt
52
- stylesheet is injected as a `<style>` and its `dark` flag drives the class.
53
- Paired consumers: `src/lib/use-apply-config-color-theme.ts` (writes the
54
- caches) + `src/lib/color-themes.ts` (the id allowlist — keep it in sync).
46
+ The IDE color palette comes from `ok-color-theme-pair-v1`, which holds one
47
+ palette per mode plus the mode preference that chooses between them:
48
+ `{ pref, light: { id, dark }, dark: { id, dark } }`. The script resolves
49
+ `pref` (asking the OS for `system`), reads that slot, applies its `id` as
50
+ the `data-color-theme` attribute consumed by `color-themes.generated.css`,
51
+ and takes the `dark` class straight from the slot's own flag — a palette
52
+ forces its own variant, so the flag is precomputed rather than re-derived
53
+ here. That is what keeps this script free of any theme-id knowledge.
54
+
55
+ A build that predates the pair wrote a single id to `ok-color-theme-v1`,
56
+ read only as a fallback: it applied to whatever mode was active, and
57
+ `ok-theme-v1` already carried the mode that palette forced. The app deletes
58
+ that key as soon as it writes the pair, so this branch runs at most once
59
+ per install.
60
+
61
+ The `custom` palette is replayed from `ok-custom-theme-v1`
62
+ (`{ css, dark }`): its prebuilt stylesheet is injected as a `<style>` and
63
+ its `dark` flag drives the class. Paired consumer:
64
+ `src/lib/use-apply-config-color-theme.ts` — it writes the
65
+ `ok-color-theme-pair-v1` and `ok-custom-theme-v1` caches and clears the legacy
66
+ `ok-color-theme-v1`; `ok-theme-v1` is next-themes' (see above).
55
67
 
56
68
  Single-line script body — same biome HTML-formatter constraint as
57
69
  the editor-mode FOUC above.
58
70
  -->
59
- <script>(() => { let t = 'system'; try { const r = localStorage.getItem('ok-theme-v1'); if (r === 'light' || r === 'dark' || r === 'system') t = r; } catch {} let ct = null; try { const c = localStorage.getItem('ok-color-theme-v1'); if (c && ['dracula', 'catppuccin-frappe', 'catppuccin-latte', 'monokai', 'gruvbox', 'solarized', 'custom'].includes(c)) ct = c; } catch {} let dark = t === 'dark'; if (t === 'system') { try { dark = window.matchMedia('(prefers-color-scheme: dark)').matches; } catch {} } let customCss = null; if (ct === 'custom') { try { const raw = localStorage.getItem('ok-custom-theme-v1'); if (raw) { const o = JSON.parse(raw); if (o?.css) { customCss = o.css; dark = !!o.dark; } } } catch {} if (!customCss) ct = null; } else if (ct) { dark = !['catppuccin-latte'].includes(ct); } if (dark) document.documentElement.classList.add('dark'); if (ct) document.documentElement.setAttribute('data-color-theme', ct); if (customCss) { const s = document.createElement('style'); s.id = 'ok-custom-theme'; s.textContent = customCss; document.head.appendChild(s); } if (window.okDesktop) { document.documentElement.classList.add('electron-mode'); document.documentElement.classList.add(`electron-platform-${window.okDesktop.platform}`); } })();</script>
71
+ <script>(() => { const isMode = (v) => v === 'light' || v === 'dark' || v === 'system'; const isThemeId = (v) => typeof v === 'string' && /^[a-z0-9-]{1,32}$/.test(v); let pref = 'system'; try { const r = localStorage.getItem('ok-theme-v1'); if (isMode(r)) pref = r; } catch {} let slots = null; try { const raw = localStorage.getItem('ok-color-theme-pair-v1'); if (raw) { const o = JSON.parse(raw); if (o?.light && o?.dark) { slots = o; if (isMode(o.pref)) pref = o.pref; } } } catch {} let dark = pref === 'dark'; if (pref === 'system') { try { dark = window.matchMedia('(prefers-color-scheme: dark)').matches; } catch {} } let ct = null; if (slots) { const slot = dark ? slots.dark : slots.light; if (isThemeId(slot?.id)) { dark = !!slot.dark; if (slot.id !== 'default') ct = slot.id; } } else { try { const c = localStorage.getItem('ok-color-theme-v1'); if (isThemeId(c) && c !== 'default') ct = c; } catch {} } let customCss = null; if (ct === 'custom') { try { const raw = localStorage.getItem('ok-custom-theme-v1'); if (raw) { const o = JSON.parse(raw); if (o?.css) { customCss = o.css; dark = !!o.dark; } } } catch {} if (!customCss) ct = null; } if (dark) document.documentElement.classList.add('dark'); if (ct) document.documentElement.setAttribute('data-color-theme', ct); if (customCss) { const s = document.createElement('style'); s.id = 'ok-custom-theme'; s.textContent = customCss; document.head.appendChild(s); } if (window.okDesktop) { document.documentElement.classList.add('electron-mode'); document.documentElement.classList.add(`electron-platform-${window.okDesktop.platform}`); } })();</script>
60
72
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
61
- <script type="module" crossorigin src="./assets/index-Bnezs-Zg.js"></script>
73
+ <script type="module" crossorigin src="./assets/index-gkgpssO7.js"></script>
62
74
  <link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
63
- <link rel="modulepreload" crossorigin href="./assets/dist-CzC3AWOn.js">
75
+ <link rel="modulepreload" crossorigin href="./assets/dist-CpRBr-Ct.js">
64
76
  <link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
65
77
  <link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
66
- <link rel="modulepreload" crossorigin href="./assets/globals-D4ycChQP.js">
78
+ <link rel="modulepreload" crossorigin href="./assets/globals-C8FNtceU.js">
67
79
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Chd9yIcd.js">
68
80
  <link rel="modulepreload" crossorigin href="./assets/w3c-keyname-a_sRwNLm.js">
69
- <link rel="modulepreload" crossorigin href="./assets/dist-BNDNcytQ.js">
70
- <link rel="modulepreload" crossorigin href="./assets/cm-theme-BCzjFmR8.js">
71
- <link rel="modulepreload" crossorigin href="./assets/dist-7c4LkvyR.js">
72
- <link rel="modulepreload" crossorigin href="./assets/dist-DetO1WI6.js">
73
- <link rel="modulepreload" crossorigin href="./assets/dist-CK9mVFzk.js">
74
- <link rel="modulepreload" crossorigin href="./assets/dist-D1CcITrZ.js">
75
- <link rel="modulepreload" crossorigin href="./assets/dist-Br-Gb0Mn2.js">
76
- <link rel="modulepreload" crossorigin href="./assets/dist-BiwnBosN2.js">
81
+ <link rel="modulepreload" crossorigin href="./assets/dist-lPnSB2_D.js">
82
+ <link rel="modulepreload" crossorigin href="./assets/cm-theme-hkm-VXmY.js">
83
+ <link rel="modulepreload" crossorigin href="./assets/dist-DmIoZuDL.js">
84
+ <link rel="modulepreload" crossorigin href="./assets/dist-D-N_uAqc.js">
85
+ <link rel="modulepreload" crossorigin href="./assets/dist-p_jJ7IYj.js">
86
+ <link rel="modulepreload" crossorigin href="./assets/dist-C11p0Ish.js">
87
+ <link rel="modulepreload" crossorigin href="./assets/dist-BkKhGRrp2.js">
88
+ <link rel="modulepreload" crossorigin href="./assets/dist-DOpBKTtD.js">
77
89
  <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BUgB2tll.js">
78
90
  <link rel="modulepreload" crossorigin href="./assets/dist-Nvb76hAm.js">
79
91
  <link rel="modulepreload" crossorigin href="./assets/dist-DUWYPul7.js">
@@ -81,19 +93,19 @@
81
93
  <link rel="modulepreload" crossorigin href="./assets/compiler-runtime-BfE3aGVn.js">
82
94
  <link rel="modulepreload" crossorigin href="./assets/utils-CPqDy6Hr.js">
83
95
  <link rel="modulepreload" crossorigin href="./assets/button-RQ5o7P7w.js">
84
- <link rel="modulepreload" crossorigin href="./assets/dist-BSFcbUmR.js">
85
- <link rel="modulepreload" crossorigin href="./assets/dist-CZG2zXVq.js">
96
+ <link rel="modulepreload" crossorigin href="./assets/dist-B3siOv8e.js">
97
+ <link rel="modulepreload" crossorigin href="./assets/dist-DYeLFwEq.js">
86
98
  <link rel="modulepreload" crossorigin href="./assets/dist-PQ5KMVDh.js">
87
- <link rel="modulepreload" crossorigin href="./assets/DiffView-BBC1fcoF.js">
88
- <link rel="modulepreload" crossorigin href="./assets/sortable.esm-BuA5-2It.js">
99
+ <link rel="modulepreload" crossorigin href="./assets/DiffView-by44lBMn.js">
100
+ <link rel="modulepreload" crossorigin href="./assets/sortable.esm-DR5PU-kX.js">
89
101
  <link rel="modulepreload" crossorigin href="./assets/floating-ui.dom-C0wusa09.js">
90
102
  <link rel="modulepreload" crossorigin href="./assets/trace-api-DzbWkWNJ.js">
91
103
  <link rel="modulepreload" crossorigin href="./assets/lib-oSGqv0ZH.js">
92
104
  <link rel="modulepreload" crossorigin href="./assets/markdownit-BD8ZfAkg.js">
93
- <link rel="modulepreload" crossorigin href="./assets/dist-DIn3VYDc2.js">
94
- <link rel="modulepreload" crossorigin href="./assets/client-version-DN8Gnc8R.js">
95
- <link rel="modulepreload" crossorigin href="./assets/config-context-CdjtvoAz.js">
96
- <link rel="modulepreload" crossorigin href="./assets/config-provider-CKct7q_G.js">
105
+ <link rel="modulepreload" crossorigin href="./assets/dist-CLzUuFWF2.js">
106
+ <link rel="modulepreload" crossorigin href="./assets/client-version-BeO7mg7I.js">
107
+ <link rel="modulepreload" crossorigin href="./assets/config-context-DO4l6dU6.js">
108
+ <link rel="modulepreload" crossorigin href="./assets/config-provider-BmNEf-_4.js">
97
109
  <link rel="modulepreload" crossorigin href="./assets/dist-Bi80hc1t.js">
98
110
  <link rel="modulepreload" crossorigin href="./assets/dist-CR6aO28t.js">
99
111
  <link rel="modulepreload" crossorigin href="./assets/dist-DpaqLIPT.js">
@@ -107,118 +119,119 @@
107
119
  <link rel="modulepreload" crossorigin href="./assets/chevron-down-BeptYHqQ.js">
108
120
  <link rel="modulepreload" crossorigin href="./assets/chevron-up-rNlu7Zrz.js">
109
121
  <link rel="modulepreload" crossorigin href="./assets/select-BUOcREjn.js">
110
- <link rel="modulepreload" crossorigin href="./assets/minus-DfB0TQSz.js">
111
- <link rel="modulepreload" crossorigin href="./assets/checkbox-DoJAOcMt.js">
122
+ <link rel="modulepreload" crossorigin href="./assets/minus-C4B0dZfA.js">
123
+ <link rel="modulepreload" crossorigin href="./assets/checkbox-IqSEcunZ.js">
112
124
  <link rel="modulepreload" crossorigin href="./assets/collapsible-OhEmjTXw.js">
113
- <link rel="modulepreload" crossorigin href="./assets/x-xV4a4mi6.js">
114
- <link rel="modulepreload" crossorigin href="./assets/dialog-FGMqkFjm.js">
125
+ <link rel="modulepreload" crossorigin href="./assets/x-DIcZlcqo.js">
126
+ <link rel="modulepreload" crossorigin href="./assets/dialog-CCQHftjy.js">
115
127
  <link rel="modulepreload" crossorigin href="./assets/dist-DMj9iIHH.js">
116
128
  <link rel="modulepreload" crossorigin href="./assets/dist-G89kioZo.js">
117
129
  <link rel="modulepreload" crossorigin href="./assets/chevron-right-CABnKLlm.js">
118
130
  <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-AlVJ7dJz.js">
119
131
  <link rel="modulepreload" crossorigin href="./assets/label-G0lbYOgL.js">
120
132
  <link rel="modulepreload" crossorigin href="./assets/terminal-input-events-BGPQuYMh.js">
121
- <link rel="modulepreload" crossorigin href="./assets/radio-group-MAC3jHHk.js">
133
+ <link rel="modulepreload" crossorigin href="./assets/radio-group-CvYE9US5.js">
122
134
  <link rel="modulepreload" crossorigin href="./assets/separator-CXVli0aI.js">
123
135
  <link rel="modulepreload" crossorigin href="./assets/toggle-group-Cnezoq-B.js">
124
136
  <link rel="modulepreload" crossorigin href="./assets/useQuery-ZeEDLtxh.js">
125
- <link rel="modulepreload" crossorigin href="./assets/dist-D0E_Pe_n.js">
126
- <link rel="modulepreload" crossorigin href="./assets/dist-PVNGgT7j.js">
127
- <link rel="modulepreload" crossorigin href="./assets/stex-C_UPsIFu.js">
137
+ <link rel="modulepreload" crossorigin href="./assets/dist-6M032-rx.js">
138
+ <link rel="modulepreload" crossorigin href="./assets/dist-EhhPm2QX.js">
139
+ <link rel="modulepreload" crossorigin href="./assets/stex-B3qxBOBU.js">
128
140
  <link rel="modulepreload" crossorigin href="./assets/propagation-api-CQo94KQr.js">
129
141
  <link rel="modulepreload" crossorigin href="./assets/switch-BuVbhbtp.js">
130
142
  <link rel="modulepreload" crossorigin href="./assets/folder-open-Ceue91os.js">
131
- <link rel="modulepreload" crossorigin href="./assets/trash-2-WxyktwvM.js">
132
- <link rel="modulepreload" crossorigin href="./assets/file-tree-utils-DeyBapi2.js">
133
- <link rel="modulepreload" crossorigin href="./assets/doc-paths-KCjzuC60.js">
134
- <link rel="modulepreload" crossorigin href="./assets/skill-scope-DkGQeaIH.js">
135
- <link rel="modulepreload" crossorigin href="./assets/navigation-targets-BDSeZX3c.js">
136
- <link rel="modulepreload" crossorigin href="./assets/asset-dispatch-BOfThpQD.js">
137
- <link rel="modulepreload" crossorigin href="./assets/external-link-Dvu-nzFi.js">
138
- <link rel="modulepreload" crossorigin href="./assets/documents-fetch-DhfOkJYw.js">
139
- <link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-DmM8F7PJ.js">
143
+ <link rel="modulepreload" crossorigin href="./assets/trash-2-B8G0hzas.js">
144
+ <link rel="modulepreload" crossorigin href="./assets/file-tree-utils-Ce34hqQC.js">
145
+ <link rel="modulepreload" crossorigin href="./assets/doc-paths-D7j_eEce.js">
146
+ <link rel="modulepreload" crossorigin href="./assets/skill-scope-DQD8O86J.js">
147
+ <link rel="modulepreload" crossorigin href="./assets/navigation-targets-CBDcAPCE.js">
148
+ <link rel="modulepreload" crossorigin href="./assets/asset-dispatch-O9x3rXhj.js">
149
+ <link rel="modulepreload" crossorigin href="./assets/external-link-COF7NUCm.js">
150
+ <link rel="modulepreload" crossorigin href="./assets/documents-fetch-DK-kdvYE.js">
151
+ <link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-BfYJOB1U.js">
140
152
  <link rel="modulepreload" crossorigin href="./assets/git-branch-le6ClqcQ.js">
141
- <link rel="modulepreload" crossorigin href="./assets/triangle-alert-C2yId37R.js">
142
- <link rel="modulepreload" crossorigin href="./assets/Mermaid-BePjlqwg.js">
153
+ <link rel="modulepreload" crossorigin href="./assets/triangle-alert-aDFrGIbV.js">
154
+ <link rel="modulepreload" crossorigin href="./assets/Mermaid-DeqR50Io.js">
143
155
  <link rel="modulepreload" crossorigin href="./assets/CopyButton-D6N3opvE.js">
144
- <link rel="modulepreload" crossorigin href="./assets/documents-events-FrlFXuC-.js">
145
- <link rel="modulepreload" crossorigin href="./assets/parse-api-error-Dmlzsw8v.js">
146
- <link rel="modulepreload" crossorigin href="./assets/startup-marks-B88RuIAa.js">
147
- <link rel="modulepreload" crossorigin href="./assets/prop-types-MABP6X1c.js">
156
+ <link rel="modulepreload" crossorigin href="./assets/documents-events-BXEDUEK0.js">
157
+ <link rel="modulepreload" crossorigin href="./assets/parse-api-error-BFe1cdS7.js">
158
+ <link rel="modulepreload" crossorigin href="./assets/startup-marks-BJYEMeGu.js">
159
+ <link rel="modulepreload" crossorigin href="./assets/prop-types-CzBvMPTy.js">
148
160
  <link rel="modulepreload" crossorigin href="./assets/eye-BIA1oECU.js">
149
161
  <link rel="modulepreload" crossorigin href="./assets/hash-BXtq910s.js">
150
162
  <link rel="modulepreload" crossorigin href="./assets/info-BO0f2XRt.js">
151
163
  <link rel="modulepreload" crossorigin href="./assets/loader-circle-DJ1nzSAL.js">
152
- <link rel="modulepreload" crossorigin href="./assets/paperclip-DQzUb6fY.js">
153
- <link rel="modulepreload" crossorigin href="./assets/dist-uN7pEWl0.js">
154
- <link rel="modulepreload" crossorigin href="./assets/file-tree-rename-validation-1Yh3dC3l.js">
155
- <link rel="modulepreload" crossorigin href="./assets/badge-CAMtyz4F.js">
156
- <link rel="modulepreload" crossorigin href="./assets/input-Cm94Cun3.js">
157
- <link rel="modulepreload" crossorigin href="./assets/use-collab-url-ecWCytiv.js">
158
- <link rel="modulepreload" crossorigin href="./assets/skills-api-BCiYKVSk.js">
159
- <link rel="modulepreload" crossorigin href="./assets/DocumentContext-B0g_vd8N.js">
160
- <link rel="modulepreload" crossorigin href="./assets/format-DAPkd5Gj.js">
164
+ <link rel="modulepreload" crossorigin href="./assets/paperclip-BDIpg8Sx.js">
165
+ <link rel="modulepreload" crossorigin href="./assets/dist-DmEZHXvB.js">
166
+ <link rel="modulepreload" crossorigin href="./assets/file-tree-rename-validation-DEz_ryBu.js">
167
+ <link rel="modulepreload" crossorigin href="./assets/badge-CnYDYmI5.js">
168
+ <link rel="modulepreload" crossorigin href="./assets/input-CtKG6a5B.js">
169
+ <link rel="modulepreload" crossorigin href="./assets/use-collab-url-ryL1J_Cn.js">
170
+ <link rel="modulepreload" crossorigin href="./assets/skills-api-CmrsjdWe.js">
171
+ <link rel="modulepreload" crossorigin href="./assets/DocumentContext-BpUSHG7l.js">
172
+ <link rel="modulepreload" crossorigin href="./assets/format-CFFWVvag.js">
161
173
  <link rel="modulepreload" crossorigin href="./assets/braces-BG3bQFuB.js">
162
- <link rel="modulepreload" crossorigin href="./assets/folder-config-api-OU19qNKs.js">
163
- <link rel="modulepreload" crossorigin href="./assets/textarea-Cl4IJ1LU.js">
164
- <link rel="modulepreload" crossorigin href="./assets/lint-config-client-D7DpNIwn.js">
165
- <link rel="modulepreload" crossorigin href="./assets/selection-context-BgucOSM-.js">
166
- <link rel="modulepreload" crossorigin href="./assets/use-skills-B19yYlmR.js">
167
- <link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-B-Y5eayN.js">
168
- <link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-BQttSYlY.js">
169
- <link rel="modulepreload" crossorigin href="./assets/cursor-D_UKSHL6.js">
170
- <link rel="modulepreload" crossorigin href="./assets/RegisteredAgentIcon-H3tp7x07.js">
174
+ <link rel="modulepreload" crossorigin href="./assets/folder-config-api-B4ZIaRYS.js">
175
+ <link rel="modulepreload" crossorigin href="./assets/comment-chips-CnL7Mdk6.js">
176
+ <link rel="modulepreload" crossorigin href="./assets/textarea-CUVLEZhx.js">
177
+ <link rel="modulepreload" crossorigin href="./assets/lint-config-client-5M2PwjWj.js">
178
+ <link rel="modulepreload" crossorigin href="./assets/selection-context-e4f29ln_.js">
179
+ <link rel="modulepreload" crossorigin href="./assets/use-skills-DrxE5iKU.js">
180
+ <link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-BKmB2Biq.js">
181
+ <link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-wfbNMORg.js">
182
+ <link rel="modulepreload" crossorigin href="./assets/cursor-W0skD8YU.js">
183
+ <link rel="modulepreload" crossorigin href="./assets/RegisteredAgentIcon-MOyQ-5gc.js">
171
184
  <link rel="modulepreload" crossorigin href="./assets/folder-DcWlgZbb.js">
172
- <link rel="modulepreload" crossorigin href="./assets/copilot-_tsUyzgD.js">
173
- <link rel="modulepreload" crossorigin href="./assets/agent-visibility-CYBYXsoR.js">
174
- <link rel="modulepreload" crossorigin href="./assets/use-workspace-008C-zhL.js">
175
- <link rel="modulepreload" crossorigin href="./assets/ChangedOutsideBadge-DVfCTGd2.js">
176
- <link rel="modulepreload" crossorigin href="./assets/use-open-skill-C3UqDa0B.js">
177
- <link rel="modulepreload" crossorigin href="./assets/use-settings-route-CYvmk4XT.js">
178
- <link rel="modulepreload" crossorigin href="./assets/clipboard-adapter-Brbch5VX.js">
179
- <link rel="modulepreload" crossorigin href="./assets/skill-actions-By3ZQhYp.js">
185
+ <link rel="modulepreload" crossorigin href="./assets/copilot-CuzHDCzI.js">
186
+ <link rel="modulepreload" crossorigin href="./assets/agent-visibility-DooA6q6Y.js">
187
+ <link rel="modulepreload" crossorigin href="./assets/use-workspace-Di9mo5VO.js">
188
+ <link rel="modulepreload" crossorigin href="./assets/ChangedOutsideBadge--Hze6vD1.js">
189
+ <link rel="modulepreload" crossorigin href="./assets/use-open-skill-CItHgrjr.js">
190
+ <link rel="modulepreload" crossorigin href="./assets/use-settings-route-DzedD2vL.js">
191
+ <link rel="modulepreload" crossorigin href="./assets/clipboard-adapter-DPkNOslT.js">
192
+ <link rel="modulepreload" crossorigin href="./assets/skill-actions-BRtvvjCU.js">
180
193
  <link rel="modulepreload" crossorigin href="./assets/arrow-up-right-CxtRAecj.js">
181
194
  <link rel="modulepreload" crossorigin href="./assets/case-sensitive-DjnVZ1Bg.js">
182
195
  <link rel="modulepreload" crossorigin href="./assets/chevron-left-B-obKYha.js">
183
- <link rel="modulepreload" crossorigin href="./assets/refresh-cw-CTfHLdRW.js">
184
- <link rel="modulepreload" crossorigin href="./assets/wrench-BvqzH63x.js">
185
- <link rel="modulepreload" crossorigin href="./assets/lint-plugin-meta-BxfSlkph.js">
186
- <link rel="modulepreload" crossorigin href="./assets/panel-Bjv8raTx.js">
187
- <link rel="modulepreload" crossorigin href="./assets/skeleton-Zj40UZU5.js">
188
- <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-DDN6b6N7.js">
196
+ <link rel="modulepreload" crossorigin href="./assets/refresh-cw-s-1Jcbef.js">
197
+ <link rel="modulepreload" crossorigin href="./assets/wrench-tsJ759Zo.js">
198
+ <link rel="modulepreload" crossorigin href="./assets/lint-plugin-meta-BnniPb1r.js">
199
+ <link rel="modulepreload" crossorigin href="./assets/panel-UxAkffLp.js">
200
+ <link rel="modulepreload" crossorigin href="./assets/skeleton-DS8zjX9Q.js">
201
+ <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-BC_MP6fa.js">
189
202
  <link rel="modulepreload" crossorigin href="./assets/download-DlaLrCD-.js">
190
- <link rel="modulepreload" crossorigin href="./assets/field-CmzMDU7U.js">
191
- <link rel="modulepreload" crossorigin href="./assets/auth-state-cache-ZZgXmLCf.js">
203
+ <link rel="modulepreload" crossorigin href="./assets/field-7smx8aeY.js">
204
+ <link rel="modulepreload" crossorigin href="./assets/auth-state-cache-UtyGZJkf.js">
192
205
  <link rel="modulepreload" crossorigin href="./assets/miss-dialog-store-BGDBpPYJ.js">
193
- <link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-BN0afFCO.js">
194
- <link rel="modulepreload" crossorigin href="./assets/terminal-launch-events-DbpTBIvl.js">
195
- <link rel="modulepreload" crossorigin href="./assets/open-managed-artifact-tab-Wkw7QMir.js">
196
- <link rel="modulepreload" crossorigin href="./assets/use-skill-directory-Ce1Wy5Qf.js">
197
- <link rel="modulepreload" crossorigin href="./assets/panel-right-open-ypUBRt7V.js">
198
- <link rel="modulepreload" crossorigin href="./assets/square-pen-DbfX_rTK.js">
199
- <link rel="modulepreload" crossorigin href="./assets/undo-2-DlBBaLMR.js">
200
- <link rel="modulepreload" crossorigin href="./assets/form-DJq6IJkN.js">
201
- <link rel="modulepreload" crossorigin href="./assets/text-viewer-languages-BZtGVaBl.js">
202
- <link rel="modulepreload" crossorigin href="./assets/EditorModeToggle-DKuXrb9b.js">
203
- <link rel="modulepreload" crossorigin href="./assets/ConfigSharingInfoTooltip-C4ydhukC.js">
204
- <link rel="modulepreload" crossorigin href="./assets/project-paths-DF-eCznB.js">
205
- <link rel="modulepreload" crossorigin href="./assets/SkillModeBanner-BPmqGiVe.js">
206
- <link rel="modulepreload" crossorigin href="./assets/follow-file-B9Rl63vu.js">
207
- <link rel="modulepreload" crossorigin href="./assets/file-tree-adapter-BBMHbQG5.js">
208
- <link rel="modulepreload" crossorigin href="./assets/agent-diff-store-BX4UT3y1.js">
209
- <link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-BZ8rve8n.js">
210
- <link rel="modulepreload" crossorigin href="./assets/use-live-xterm-theme-Bf72FxVk.js">
211
- <link rel="modulepreload" crossorigin href="./assets/input-group-cP5PCk_d.js">
212
- <link rel="modulepreload" crossorigin href="./assets/use-installed-clis-BpdGnrVu.js">
213
- <link rel="modulepreload" crossorigin href="./assets/use-skill-origin-DscI7Fo0.js">
214
- <link rel="modulepreload" crossorigin href="./assets/terminal-telemetry-BMiT9GUh.js">
215
- <link rel="modulepreload" crossorigin href="./assets/agent-presence-Dn2bQ2Pn.js">
216
- <link rel="modulepreload" crossorigin href="./assets/auth-prompt-store-CeUwLE3s.js">
217
- <link rel="modulepreload" crossorigin href="./assets/mcp-consent-store-BcrhbRwc.js">
218
- <link rel="modulepreload" crossorigin href="./assets/overlay-layers-Bzzqy8A3.js">
219
- <link rel="modulepreload" crossorigin href="./assets/receive-store-CTNYU3q-.js">
220
- <link rel="modulepreload" crossorigin href="./assets/timeline-diff-store-B-Ea84Rl.js">
221
- <link rel="stylesheet" crossorigin href="./assets/globals-BLjNYywW.css">
206
+ <link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-Biw1Epvx.js">
207
+ <link rel="modulepreload" crossorigin href="./assets/terminal-launch-events-BBXOhZSh.js">
208
+ <link rel="modulepreload" crossorigin href="./assets/open-managed-artifact-tab-CD2IVH49.js">
209
+ <link rel="modulepreload" crossorigin href="./assets/use-skill-directory-zc2nSEYt.js">
210
+ <link rel="modulepreload" crossorigin href="./assets/panel-right-open-DuqyjMS8.js">
211
+ <link rel="modulepreload" crossorigin href="./assets/square-pen-CJ1htiTi.js">
212
+ <link rel="modulepreload" crossorigin href="./assets/undo-2-DKF_XXr6.js">
213
+ <link rel="modulepreload" crossorigin href="./assets/form-D-Z78Sh8.js">
214
+ <link rel="modulepreload" crossorigin href="./assets/follow-file-B0woPClO.js">
215
+ <link rel="modulepreload" crossorigin href="./assets/text-viewer-languages-Bnw74F7h.js">
216
+ <link rel="modulepreload" crossorigin href="./assets/EditorModeToggle-DLnTYb-h.js">
217
+ <link rel="modulepreload" crossorigin href="./assets/ConfigSharingInfoTooltip-D_b3sMDA.js">
218
+ <link rel="modulepreload" crossorigin href="./assets/project-paths-CMGR87VL.js">
219
+ <link rel="modulepreload" crossorigin href="./assets/SkillModeBanner-DFgrdWyf.js">
220
+ <link rel="modulepreload" crossorigin href="./assets/file-tree-adapter-CjX34jcF.js">
221
+ <link rel="modulepreload" crossorigin href="./assets/agent-diff-store-x2lZWEbT.js">
222
+ <link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-O-KNJVho.js">
223
+ <link rel="modulepreload" crossorigin href="./assets/use-live-xterm-theme-Bit3P-w4.js">
224
+ <link rel="modulepreload" crossorigin href="./assets/input-group-DySyX67I.js">
225
+ <link rel="modulepreload" crossorigin href="./assets/use-installed-clis-B7_xP0xS.js">
226
+ <link rel="modulepreload" crossorigin href="./assets/use-skill-origin-C_LYVSfo.js">
227
+ <link rel="modulepreload" crossorigin href="./assets/terminal-telemetry-B4AWY5_A.js">
228
+ <link rel="modulepreload" crossorigin href="./assets/agent-presence-DuXF7V6Q.js">
229
+ <link rel="modulepreload" crossorigin href="./assets/auth-prompt-store-DQ_HcDxh.js">
230
+ <link rel="modulepreload" crossorigin href="./assets/mcp-consent-store-Dz4H-8gV.js">
231
+ <link rel="modulepreload" crossorigin href="./assets/overlay-layers-CBGNHxJK.js">
232
+ <link rel="modulepreload" crossorigin href="./assets/receive-store-8-NLCTcl.js">
233
+ <link rel="modulepreload" crossorigin href="./assets/timeline-diff-store-sC1fl4YV.js">
234
+ <link rel="stylesheet" crossorigin href="./assets/globals-BMBVXTkN.css">
222
235
  <link rel="stylesheet" crossorigin href="./assets/DocumentContext-B0sQn39F.css">
223
236
  <link rel="stylesheet" crossorigin href="./assets/index-CDpJ2gXn.css">
224
237
  </head>
@@ -32,18 +32,18 @@
32
32
  script above.
33
33
  -->
34
34
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
35
- <script type="module" crossorigin src="./assets/uninstall-DJBDkbwq.js"></script>
35
+ <script type="module" crossorigin src="./assets/uninstall-D1vd3-cj.js"></script>
36
36
  <link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
37
- <link rel="modulepreload" crossorigin href="./assets/dist-CzC3AWOn.js">
37
+ <link rel="modulepreload" crossorigin href="./assets/dist-CpRBr-Ct.js">
38
38
  <link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
39
39
  <link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
40
- <link rel="modulepreload" crossorigin href="./assets/globals-D4ycChQP.js">
40
+ <link rel="modulepreload" crossorigin href="./assets/globals-C8FNtceU.js">
41
41
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Chd9yIcd.js">
42
42
  <link rel="modulepreload" crossorigin href="./assets/trace-api-DzbWkWNJ.js">
43
43
  <link rel="modulepreload" crossorigin href="./assets/lib-oSGqv0ZH.js">
44
44
  <link rel="modulepreload" crossorigin href="./assets/markdownit-BD8ZfAkg.js">
45
45
  <link rel="modulepreload" crossorigin href="./assets/w3c-keyname-a_sRwNLm.js">
46
- <link rel="modulepreload" crossorigin href="./assets/dist-DIn3VYDc2.js">
46
+ <link rel="modulepreload" crossorigin href="./assets/dist-CLzUuFWF2.js">
47
47
  <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BUgB2tll.js">
48
48
  <link rel="modulepreload" crossorigin href="./assets/dist-Nvb76hAm.js">
49
49
  <link rel="modulepreload" crossorigin href="./assets/dist-DUWYPul7.js">
@@ -52,21 +52,21 @@
52
52
  <link rel="modulepreload" crossorigin href="./assets/dist-CR6aO28t.js">
53
53
  <link rel="modulepreload" crossorigin href="./assets/createLucideIcon-DihYAFEK.js">
54
54
  <link rel="modulepreload" crossorigin href="./assets/check-BIbL8Vva.js">
55
- <link rel="modulepreload" crossorigin href="./assets/minus-DfB0TQSz.js">
55
+ <link rel="modulepreload" crossorigin href="./assets/minus-C4B0dZfA.js">
56
56
  <link rel="modulepreload" crossorigin href="./assets/compiler-runtime-BfE3aGVn.js">
57
57
  <link rel="modulepreload" crossorigin href="./assets/bundle-mjs-SHeFpKGC.js">
58
58
  <link rel="modulepreload" crossorigin href="./assets/utils-CPqDy6Hr.js">
59
- <link rel="modulepreload" crossorigin href="./assets/checkbox-DoJAOcMt.js">
59
+ <link rel="modulepreload" crossorigin href="./assets/checkbox-IqSEcunZ.js">
60
60
  <link rel="modulepreload" crossorigin href="./assets/label-G0lbYOgL.js">
61
61
  <link rel="modulepreload" crossorigin href="./assets/dist-By2lAhKX.js">
62
62
  <link rel="modulepreload" crossorigin href="./assets/dist-DMj9iIHH.js">
63
- <link rel="modulepreload" crossorigin href="./assets/radio-group-MAC3jHHk.js">
63
+ <link rel="modulepreload" crossorigin href="./assets/radio-group-CvYE9US5.js">
64
64
  <link rel="modulepreload" crossorigin href="./assets/button-RQ5o7P7w.js">
65
65
  <link rel="modulepreload" crossorigin href="./assets/loader-circle-DJ1nzSAL.js">
66
- <link rel="modulepreload" crossorigin href="./assets/badge-CAMtyz4F.js">
67
- <link rel="modulepreload" crossorigin href="./assets/input-Cm94Cun3.js">
68
- <link rel="modulepreload" crossorigin href="./assets/textarea-Cl4IJ1LU.js">
69
- <link rel="stylesheet" crossorigin href="./assets/globals-BLjNYywW.css">
66
+ <link rel="modulepreload" crossorigin href="./assets/badge-CnYDYmI5.js">
67
+ <link rel="modulepreload" crossorigin href="./assets/input-CtKG6a5B.js">
68
+ <link rel="modulepreload" crossorigin href="./assets/textarea-CUVLEZhx.js">
69
+ <link rel="stylesheet" crossorigin href="./assets/globals-BMBVXTkN.css">
70
70
  </head>
71
71
 
72
72
  <body class="antialiased">
@@ -1,2 +1,2 @@
1
- import{t as e}from"./launch-json-removal-CwrvAwfU.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`||o.kind===`removed-file`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
2
- //# sourceMappingURL=repair-launch-json-BDkJpah_.mjs.map
1
+ import{t as e}from"./launch-json-removal--78GOuKl.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`||o.kind===`removed-file`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
2
+ //# sourceMappingURL=repair-launch-json-DXxrE4q1.mjs.map
@@ -1,2 +1,2 @@
1
- import{b as e,d as t,l as n}from"./write-project-skill-B8LGhuHT.mjs";import{d as r,v as i}from"./init-4qi6zG9S.mjs";import{t as a}from"./mcp-migrate-event-CWx0WLdE.mjs";import{homedir as o}from"node:os";function s(e){let r=e.logger??u,i=e.home??o(),a=[];if(e.reclaimDisableEnv===`1`)return r({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of n){let n=t[o],s=c(()=>n.configPath(``,i));if(s!==null&&a.push(l({scope:`user`,editorId:o,target:n,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:r})),n.projectConfigPath){let t=n.projectConfigPath,i=c(()=>t(e.projectDir));i!==null&&a.push(l({scope:`project`,editorId:o,target:n,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:r}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function c(e){try{return e()}catch{return null}}function l(t){let n={scope:t.scope,editorId:t.editorId,configPath:t.configPath},o=r(t.target,t.cwd,t.home,t.configPathOverride);if(o===null)return{...n,outcome:`no-entry`};if(e(o))return{...n,outcome:`canonical`};t.logger(a({scope:t.scope,surface:`cli-repair`,editorId:t.editorId,configPath:t.configPath,priorEntry:o}));let s=i(t.target,t.cwd,{mode:`published`,skipAvailabilityCheck:!0},t.home,t.configPathOverride);if(s.action===`failed`){let e=s.error??`unknown write failure`;return t.logger({event:`mcp-config-repair-write-failed`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,error:e}),{...n,outcome:`write-failed`,error:e}}return s.action===`declined`?(t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:s.declineReason}),{...n,outcome:`declined`}):{...n,outcome:`repaired`}}function u(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{s as repairMcpConfigs};
2
- //# sourceMappingURL=repair-mcp-configs-DnQc3393.mjs.map
1
+ import{b as e,d as t,l as n}from"./write-project-skill-DpGXCFNK.mjs";import{d as r,v as i}from"./init-BqXcwHZr.mjs";import{t as a}from"./mcp-migrate-event-CWx0WLdE.mjs";import{homedir as o}from"node:os";function s(e){let r=e.logger??u,i=e.home??o(),a=[];if(e.reclaimDisableEnv===`1`)return r({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of n){let n=t[o],s=c(()=>n.configPath(``,i));if(s!==null&&a.push(l({scope:`user`,editorId:o,target:n,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:r})),n.projectConfigPath){let t=n.projectConfigPath,i=c(()=>t(e.projectDir));i!==null&&a.push(l({scope:`project`,editorId:o,target:n,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:r}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function c(e){try{return e()}catch{return null}}function l(t){let n={scope:t.scope,editorId:t.editorId,configPath:t.configPath},o=r(t.target,t.cwd,t.home,t.configPathOverride);if(o===null)return{...n,outcome:`no-entry`};if(e(o))return{...n,outcome:`canonical`};t.logger(a({scope:t.scope,surface:`cli-repair`,editorId:t.editorId,configPath:t.configPath,priorEntry:o}));let s=i(t.target,t.cwd,{mode:`published`,skipAvailabilityCheck:!0},t.home,t.configPathOverride);if(s.action===`failed`){let e=s.error??`unknown write failure`;return t.logger({event:`mcp-config-repair-write-failed`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,error:e}),{...n,outcome:`write-failed`,error:e}}return s.action===`declined`?(t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:s.declineReason}),{...n,outcome:`declined`}):{...n,outcome:`repaired`}}function u(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{s as repairMcpConfigs};
2
+ //# sourceMappingURL=repair-mcp-configs-CJYHrV-m.mjs.map
@@ -1,4 +1,4 @@
1
- import{R as e}from"./src-pJ6LEXKc.mjs";import{Qn as t,Zn as n,ar as r,dr as i,fr as a,nr as o,rr as s,sr as c,tr as l}from"./src-CWDcUomk.mjs";import{T as u,a as d,d as f,f as p,o as m,s as h,t as g}from"./write-project-skill-B8LGhuHT.mjs";import{n as _,s as v,t as y}from"./colors-BsmVIwfM.mjs";import{dirname as b,join as x,relative as S,resolve as C}from"node:path";import{existsSync as w,mkdirSync as T,readFileSync as E,readdirSync as D,rmSync as O,statSync as k,writeFileSync as A}from"node:fs";import{homedir as j}from"node:os";import{createInterface as M}from"node:readline/promises";const N={existsSync:e=>w(e),isDirectory:e=>{try{return k(e).isDirectory()}catch(e){if(e.code===`ENOENT`)return!1;throw e}},readdirSync:e=>D(e),readFileSync:e=>E(e),writeFileSync:(e,t)=>{A(e,t)},mkdirSync:(e,t)=>{T(e,t)},rmSync:(e,t)=>{O(e,t)}},P={resolveProjectBundledSkillDir:()=>c(`project`,{checkDesktop:!1}),resolveUserBundledSkillDir:e=>c(e,{checkDesktop:!1}),readBundledVersion:()=>t(),readRecordedVersion:e=>l(e,`cli-hosts`),writeRecordedVersion:(e,t)=>s(e,`cli-hosts`,t,`cli-start`),recordEvent:e=>r(e),readBundleDecision:(e,t)=>n(e,t),writeBundleDecision:(e,t,n)=>o(e,t,n),removeBundleFromDisk:(e,t)=>h(e,t)};function F(e){process.stderr.write(`${JSON.stringify(e)}\n`)}function I(e,t,n){n.rmSync(t,{recursive:!0,force:!0}),n.mkdirSync(b(t),{recursive:!0}),L(e,t,n)}function L(e,t,n){n.mkdirSync(t,{recursive:!0});for(let r of n.readdirSync(e)){let i=x(e,r),a=x(t,r);n.isDirectory(i)?L(i,a,n):n.writeFileSync(a,n.readFileSync(i))}}function R(e,t,n,r,i,a){let o=[],s=x(e,`.agents`,`skills`,t),c=!1;if(r.existsSync(s))o.push({kind:`central`,path:s,outcome:`skipped-present`});else try{I(n,s,r),c=!0,o.push({kind:`central`,path:s,outcome:`written`}),i({event:`user-skill-reclaim-central-written`,scope:`user`,path:s,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`central`,path:s,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-central-failed`,scope:`user`,path:s,error:t})}for(let c of p){let l=x(e,c.hostDir),u=x(l,`skills`,t);if(u===s){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-collapsed-with-central`});continue}if(!r.existsSync(l)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-host-absent`});continue}if(r.existsSync(u)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-present`});continue}try{I(n,u,r),o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`written`}),i({event:`user-skill-reclaim-host-written`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-host-failed`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,error:t})}}return{entries:o,centralWritten:c}}function z(e,t){if(!e)return!1;try{return t.existsSync(e)?t.readFileSync(e).toString(`utf8`).includes(`# ok-mcp-`):!1}catch{return!1}}function B(e,t,n,r){let i;try{i=t.resolveProjectBundledSkillDir()}catch(e){return r({event:`project-skill-reclaim-bundle-missing`,scope:`project`,error:e instanceof Error?e.message:String(e)}),{outcome:`skipped`,reason:`bundle-missing`}}let a=[];for(let t of p){let o=x(e,t.hostDir,`skills`,`open-knowledge`),s=x(o,`SKILL.md`);if(n.existsSync(s)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`present`});continue}let c=f[t.editorId]?.projectConfigPath?.(e);if(!z(c,n)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`no-token`}),r({event:`project-skill-reclaim-no-token`,scope:`project`,editorId:t.editorId,path:o});continue}try{g(o,e),I(i,o,n),a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`created`}),r({event:`project-skill-reclaim-created`,scope:`project`,editorId:t.editorId,path:o})}catch(e){let n=e instanceof Error?e.message:String(e);a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`failed`,error:n}),r({event:`project-skill-reclaim-failed`,scope:`project`,editorId:t.editorId,path:o,error:n})}}return{outcome:`done`,entries:a}}async function V(t,n,r,o){let s=e=>{n.recordEvent(e).catch(()=>{})},c=()=>new Date().toISOString(),l;try{l=await n.readBundledVersion()}catch(e){let t=e instanceof Error?e.message:String(e);return o({event:`user-skill-reclaim-version-read-failed`,scope:`user`,error:t}),s({ts:c(),surface:`cli-start`,target:`cli-hosts`,bundle:`discovery`,outcome:`failed`,reason:`version-read-failed:${t}`}),{outcome:`skipped`,reason:`version-read-failed`}}let u;try{u=await n.readRecordedVersion(t)}catch(e){o({event:`user-skill-reclaim-version-read-error`,scope:`user`,error:e instanceof Error?e.message:String(e)}),u=null}let d=[],f=null;for(let e of a)try{d.push({id:e,sourceDir:n.resolveUserBundledSkillDir(e)})}catch(e){f=e instanceof Error?e.message:String(e)}if(d.length===0)return o({event:`user-skill-reclaim-bundle-missing`,scope:`user`,error:f??`no user-global bundles`}),s({ts:c(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,reason:`bundle-missing:${f}`}),{outcome:`skipped`,reason:`bundle-missing`};let p=[];for(let a of d){let s=i[a.id],c=r.existsSync(x(t,`.agents`,`skills`,s)),l=await n.readBundleDecision(t,s).catch(()=>null);if(!e(l,{installedOnDisk:c})){if(c)try{n.removeBundleFromDisk(t,a.id),o({event:`user-skill-reclaim-bundle-declined-removed`,scope:`user`,bundle:a.id})}catch(e){o({event:`user-skill-reclaim-bundle-remove-failed`,scope:`user`,bundle:a.id,error:e instanceof Error?e.message:String(e)})}continue}if(l===null&&c)try{await n.writeBundleDecision(t,s,!0)}catch(e){o({event:`user-skill-reclaim-grandfather-write-failed`,scope:`user`,bundle:a.id,error:e instanceof Error?e.message:String(e)})}p.push(a)}if(p.length===0)return{outcome:`skipped`,reason:`all-bundles-declined`};let m=p.every(e=>r.existsSync(x(t,`.agents`,`skills`,i[e.id])));if(u!==null&&u===l&&m)return o({event:`user-skill-reclaim-skipped-version-current`,scope:`user`,version:l}),{outcome:`skipped`,reason:`version-current`};let h=[],g=d.length===a.length,_=[];for(let{id:e,sourceDir:n}of p){let a=R(t,i[e],n,r,o,l);h.push(...a.entries),_.push({id:e,centralWritten:a.centralWritten})}let v=h.some(e=>e.kind===`central`&&e.outcome===`failed`);if(g&&!v){let e=null;try{await n.writeRecordedVersion(t,l),o({event:`user-skill-reclaim-version-recorded`,scope:`user`,version:l})}catch(t){e=t instanceof Error?t.message:String(t),o({event:`user-skill-reclaim-version-record-failed`,scope:`user`,version:l,error:e})}for(let{id:t,centralWritten:n}of _)s({ts:c(),surface:`cli-start`,target:`cli-hosts`,bundle:t,outcome:e===null?n?`installed`:`skip-current`:`failed`,version:l,...e===null?{}:{reason:`state-write-failed:${e}`}})}else{let e=h.some(e=>e.kind===`host`&&e.outcome===`failed`);s({ts:c(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,version:l,reason:g?e?`all-writes-failed`:`central-write-failed`:`bundle-unresolved`})}return{outcome:`done`,version:l,entries:h}}async function H(e){let t=e.logger??F,n=e.fs??N,r=e.home??j(),i={...P,...e.deps};if(e.reclaimDisableEnv===`1`)return t({event:`skill-repair-skipped`,reason:`reclaim-disabled`}),{status:`skipped`,reason:`reclaim-disabled`};let a=B(e.projectDir,i,n,t),o=await V(r,i,n,t),s=m(r),c=[],l=!1,u=!1;if(s.skillDirs.length>0||s.emptyDirs.length>0)if(e.confirmLegacyCleanup&&await e.confirmLegacyCleanup(s)){try{c=d(r,s)}catch(e){u=!0,t({event:`legacy-fanout-cleanup-refused`,scope:`user`,error:e instanceof Error?e.message:String(e)})}for(let e of c)t({event:`legacy-fanout-path-removed`,scope:`user`,path:e})}else l=!0,t({event:`legacy-fanout-cleanup-declined`,scope:`user`});return{status:`done`,project:a,user:o,legacySwept:c,legacyCleanupDeclined:l,legacyCleanupFailed:u}}function U(e){return e.status===`skipped`?e.reason===`reclaim-disabled`?0:1:e.project.outcome===`skipped`||e.user.outcome===`skipped`&&e.user.reason!==`version-current`&&e.user.reason!==`all-bundles-declined`||e.project.entries.some(e=>e.outcome===`failed`)||e.user.outcome===`done`&&e.user.entries.some(e=>e.outcome===`failed`)?1:0}function W(e){if(e.status===`skipped`)return`Skipped: ${e.reason}`;let t=[`Skill reclaim complete.`];if(e.project.outcome===`done`){let n=e.project.entries.filter(e=>e.outcome===`present`).length,r=e.project.entries.filter(e=>e.outcome===`created`).length,i=e.project.entries.filter(e=>e.outcome===`no-token`).length,a=e.project.entries.filter(e=>e.outcome===`failed`).length;t.push(` Project: ${n} present, ${r} created, ${i} no-token, ${a} failed.`)}else t.push(` Project: skipped (${e.project.reason}).`);if(e.user.outcome===`done`){let n=e.user.entries.filter(e=>e.outcome===`written`).length,r=e.user.entries.filter(e=>e.outcome===`skipped-present`).length,i=e.user.entries.filter(e=>e.outcome===`skipped-host-absent`||e.outcome===`skipped-collapsed-with-central`).length,a=e.user.entries.filter(e=>e.outcome===`failed`).length;t.push(` User (${e.user.version}): ${n} written, ${r} present, ${i} skipped, ${a} failed.`)}else t.push(` User: skipped (${e.user.reason}).`);return e.legacySwept.length>0?t.push(` Cleanup: removed ${e.legacySwept.length} path(s) from a pre-0.42 install.`):e.legacyCleanupFailed?t.push(` Cleanup: failed — see logs; pre-0.42 directories left in place.`):e.legacyCleanupDeclined&&t.push(` Cleanup: declined — pre-0.42 directories left in place.`),t.join(`
1
+ import{R as e}from"./src-czIvvgm0.mjs";import{Xn as t,Zn as n,dr as r,er as i,ir as a,nr as o,or as s,tr as c,ur as l}from"./src-C_7vTM-s.mjs";import{T as u,a as d,d as f,f as p,o as m,s as h,t as g}from"./write-project-skill-DpGXCFNK.mjs";import{n as _,s as v,t as y}from"./colors-BsmVIwfM.mjs";import{dirname as b,join as x,relative as S,resolve as C}from"node:path";import{existsSync as w,mkdirSync as T,readFileSync as E,readdirSync as D,rmSync as O,statSync as k,writeFileSync as A}from"node:fs";import{homedir as j}from"node:os";import{createInterface as M}from"node:readline/promises";const N={existsSync:e=>w(e),isDirectory:e=>{try{return k(e).isDirectory()}catch(e){if(e.code===`ENOENT`)return!1;throw e}},readdirSync:e=>D(e),readFileSync:e=>E(e),writeFileSync:(e,t)=>{A(e,t)},mkdirSync:(e,t)=>{T(e,t)},rmSync:(e,t)=>{O(e,t)}},P={resolveProjectBundledSkillDir:()=>s(`project`,{checkDesktop:!1}),resolveUserBundledSkillDir:e=>s(e,{checkDesktop:!1}),readBundledVersion:()=>n(),readRecordedVersion:e=>i(e,`cli-hosts`),writeRecordedVersion:(e,t)=>o(e,`cli-hosts`,t,`cli-start`),recordEvent:e=>a(e),readBundleDecision:(e,n)=>t(e,n),writeBundleDecision:(e,t,n)=>c(e,t,n),removeBundleFromDisk:(e,t)=>h(e,t)};function F(e){process.stderr.write(`${JSON.stringify(e)}\n`)}function I(e,t,n){n.rmSync(t,{recursive:!0,force:!0}),n.mkdirSync(b(t),{recursive:!0}),L(e,t,n)}function L(e,t,n){n.mkdirSync(t,{recursive:!0});for(let r of n.readdirSync(e)){let i=x(e,r),a=x(t,r);n.isDirectory(i)?L(i,a,n):n.writeFileSync(a,n.readFileSync(i))}}function R(e,t,n,r,i,a){let o=[],s=x(e,`.agents`,`skills`,t),c=!1;if(r.existsSync(s))o.push({kind:`central`,path:s,outcome:`skipped-present`});else try{I(n,s,r),c=!0,o.push({kind:`central`,path:s,outcome:`written`}),i({event:`user-skill-reclaim-central-written`,scope:`user`,path:s,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`central`,path:s,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-central-failed`,scope:`user`,path:s,error:t})}for(let c of p){let l=x(e,c.hostDir),u=x(l,`skills`,t);if(u===s){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-collapsed-with-central`});continue}if(!r.existsSync(l)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-host-absent`});continue}if(r.existsSync(u)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-present`});continue}try{I(n,u,r),o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`written`}),i({event:`user-skill-reclaim-host-written`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-host-failed`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,error:t})}}return{entries:o,centralWritten:c}}function z(e,t){if(!e)return!1;try{return t.existsSync(e)?t.readFileSync(e).toString(`utf8`).includes(`# ok-mcp-`):!1}catch{return!1}}function B(e,t,n,r){let i;try{i=t.resolveProjectBundledSkillDir()}catch(e){return r({event:`project-skill-reclaim-bundle-missing`,scope:`project`,error:e instanceof Error?e.message:String(e)}),{outcome:`skipped`,reason:`bundle-missing`}}let a=[];for(let t of p){let o=x(e,t.hostDir,`skills`,`open-knowledge`),s=x(o,`SKILL.md`);if(n.existsSync(s)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`present`});continue}let c=f[t.editorId]?.projectConfigPath?.(e);if(!z(c,n)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`no-token`}),r({event:`project-skill-reclaim-no-token`,scope:`project`,editorId:t.editorId,path:o});continue}try{g(o,e),I(i,o,n),a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`created`}),r({event:`project-skill-reclaim-created`,scope:`project`,editorId:t.editorId,path:o})}catch(e){let n=e instanceof Error?e.message:String(e);a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`failed`,error:n}),r({event:`project-skill-reclaim-failed`,scope:`project`,editorId:t.editorId,path:o,error:n})}}return{outcome:`done`,entries:a}}async function V(t,n,i,a){let o=e=>{n.recordEvent(e).catch(()=>{})},s=()=>new Date().toISOString(),c;try{c=await n.readBundledVersion()}catch(e){let t=e instanceof Error?e.message:String(e);return a({event:`user-skill-reclaim-version-read-failed`,scope:`user`,error:t}),o({ts:s(),surface:`cli-start`,target:`cli-hosts`,bundle:`discovery`,outcome:`failed`,reason:`version-read-failed:${t}`}),{outcome:`skipped`,reason:`version-read-failed`}}let u;try{u=await n.readRecordedVersion(t)}catch(e){a({event:`user-skill-reclaim-version-read-error`,scope:`user`,error:e instanceof Error?e.message:String(e)}),u=null}let d=[],f=null;for(let e of r)try{d.push({id:e,sourceDir:n.resolveUserBundledSkillDir(e)})}catch(e){f=e instanceof Error?e.message:String(e)}if(d.length===0)return a({event:`user-skill-reclaim-bundle-missing`,scope:`user`,error:f??`no user-global bundles`}),o({ts:s(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,reason:`bundle-missing:${f}`}),{outcome:`skipped`,reason:`bundle-missing`};let p=[];for(let r of d){let o=l[r.id],s=i.existsSync(x(t,`.agents`,`skills`,o)),c=await n.readBundleDecision(t,o).catch(()=>null);if(!e(c,{installedOnDisk:s})){if(s)try{n.removeBundleFromDisk(t,r.id),a({event:`user-skill-reclaim-bundle-declined-removed`,scope:`user`,bundle:r.id})}catch(e){a({event:`user-skill-reclaim-bundle-remove-failed`,scope:`user`,bundle:r.id,error:e instanceof Error?e.message:String(e)})}continue}if(c===null&&s)try{await n.writeBundleDecision(t,o,!0)}catch(e){a({event:`user-skill-reclaim-grandfather-write-failed`,scope:`user`,bundle:r.id,error:e instanceof Error?e.message:String(e)})}p.push(r)}if(p.length===0)return{outcome:`skipped`,reason:`all-bundles-declined`};let m=p.every(e=>i.existsSync(x(t,`.agents`,`skills`,l[e.id])));if(u!==null&&u===c&&m)return a({event:`user-skill-reclaim-skipped-version-current`,scope:`user`,version:c}),{outcome:`skipped`,reason:`version-current`};let h=[],g=d.length===r.length,_=[];for(let{id:e,sourceDir:n}of p){let r=R(t,l[e],n,i,a,c);h.push(...r.entries),_.push({id:e,centralWritten:r.centralWritten})}let v=h.some(e=>e.kind===`central`&&e.outcome===`failed`);if(g&&!v){let e=null;try{await n.writeRecordedVersion(t,c),a({event:`user-skill-reclaim-version-recorded`,scope:`user`,version:c})}catch(t){e=t instanceof Error?t.message:String(t),a({event:`user-skill-reclaim-version-record-failed`,scope:`user`,version:c,error:e})}for(let{id:t,centralWritten:n}of _)o({ts:s(),surface:`cli-start`,target:`cli-hosts`,bundle:t,outcome:e===null?n?`installed`:`skip-current`:`failed`,version:c,...e===null?{}:{reason:`state-write-failed:${e}`}})}else{let e=h.some(e=>e.kind===`host`&&e.outcome===`failed`);o({ts:s(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,version:c,reason:g?e?`all-writes-failed`:`central-write-failed`:`bundle-unresolved`})}return{outcome:`done`,version:c,entries:h}}async function H(e){let t=e.logger??F,n=e.fs??N,r=e.home??j(),i={...P,...e.deps};if(e.reclaimDisableEnv===`1`)return t({event:`skill-repair-skipped`,reason:`reclaim-disabled`}),{status:`skipped`,reason:`reclaim-disabled`};let a=B(e.projectDir,i,n,t),o=await V(r,i,n,t),s=m(r),c=[],l=!1,u=!1;if(s.skillDirs.length>0||s.emptyDirs.length>0)if(e.confirmLegacyCleanup&&await e.confirmLegacyCleanup(s)){try{c=d(r,s)}catch(e){u=!0,t({event:`legacy-fanout-cleanup-refused`,scope:`user`,error:e instanceof Error?e.message:String(e)})}for(let e of c)t({event:`legacy-fanout-path-removed`,scope:`user`,path:e})}else l=!0,t({event:`legacy-fanout-cleanup-declined`,scope:`user`});return{status:`done`,project:a,user:o,legacySwept:c,legacyCleanupDeclined:l,legacyCleanupFailed:u}}function U(e){return e.status===`skipped`?e.reason===`reclaim-disabled`?0:1:e.project.outcome===`skipped`||e.user.outcome===`skipped`&&e.user.reason!==`version-current`&&e.user.reason!==`all-bundles-declined`||e.project.entries.some(e=>e.outcome===`failed`)||e.user.outcome===`done`&&e.user.entries.some(e=>e.outcome===`failed`)?1:0}function W(e){if(e.status===`skipped`)return`Skipped: ${e.reason}`;let t=[`Skill reclaim complete.`];if(e.project.outcome===`done`){let n=e.project.entries.filter(e=>e.outcome===`present`).length,r=e.project.entries.filter(e=>e.outcome===`created`).length,i=e.project.entries.filter(e=>e.outcome===`no-token`).length,a=e.project.entries.filter(e=>e.outcome===`failed`).length;t.push(` Project: ${n} present, ${r} created, ${i} no-token, ${a} failed.`)}else t.push(` Project: skipped (${e.project.reason}).`);if(e.user.outcome===`done`){let n=e.user.entries.filter(e=>e.outcome===`written`).length,r=e.user.entries.filter(e=>e.outcome===`skipped-present`).length,i=e.user.entries.filter(e=>e.outcome===`skipped-host-absent`||e.outcome===`skipped-collapsed-with-central`).length,a=e.user.entries.filter(e=>e.outcome===`failed`).length;t.push(` User (${e.user.version}): ${n} written, ${r} present, ${i} skipped, ${a} failed.`)}else t.push(` User: skipped (${e.user.reason}).`);return e.legacySwept.length>0?t.push(` Cleanup: removed ${e.legacySwept.length} path(s) from a pre-0.42 install.`):e.legacyCleanupFailed?t.push(` Cleanup: failed — see logs; pre-0.42 directories left in place.`):e.legacyCleanupDeclined&&t.push(` Cleanup: declined — pre-0.42 directories left in place.`),t.join(`
2
2
  `)}function G(){return new u(`repair-skills`).description("Refresh bundled SKILL.md files for installed AI editors (project-local + user-global). Runs automatically during `ok start`; this command forces an explicit sweep.").option(`-y, --yes`,`Skip the confirmation prompt for removing directories left by a pre-0.42 install.`).action(async e=>{let t=await H({projectDir:C(process.cwd()),reclaimDisableEnv:process.env.OK_RECLAIM_DISABLE??null,confirmLegacyCleanup:t=>K(t,{yes:e.yes===!0})});process.stdout.write(`${W(t)}\n`),process.exitCode=U(t)})}async function K(e,t){let n=j(),r=e=>`~/${S(n,e)}`,i=t.input??process.stdin,a=[``,y(`A previous version of OpenKnowledge installed its skill into agent tools you may never have used.`),_(`(Versions before 0.42 wrote to every host a third-party installer knew about — see issue #820.)`)];if(e.skillDirs.length>0&&a.push(``,`${y(`Remove OpenKnowledge skills:`)} ${e.skillDirs.length}`,...e.skillDirs.map(e=>` ${r(e)}`)),e.emptyDirs.length>0){let t=e.skillDirs.length>0?`Then remove these, which hold nothing else once the above are gone:`:`Remove these empty directories, left behind by that install:`;a.push(``,`${y(t)} ${e.emptyDirs.length}`,...e.emptyDirs.map(e=>` ${r(e)}`))}if(a.push(``,_(`Nothing outside these paths is touched. A directory that still holds anything is kept.`)),process.stdout.write(`${a.join(`
3
3
  `)}\n`),t.yes)return!0;if(!i.isTTY)return process.stdout.write(`${v("Not a terminal — skipping cleanup. Re-run with `ok repair-skills --yes` to remove these.")}\n`),!1;let o=M({input:i,output:process.stdout});try{let e=(await o.question(`\n${y(`Remove them?`)} ${_(`[y/N] `)}`)).trim().toLowerCase();return e===`y`||e===`yes`}finally{o.close()}}export{G as n,H as t};
4
- //# sourceMappingURL=repair-skills-BikzcmQr.mjs.map
4
+ //# sourceMappingURL=repair-skills-DueNXSu9.mjs.map
@@ -0,0 +1 @@
1
+ import{t as e}from"./repair-skills-DueNXSu9.mjs";export{e as repairSkills};
@@ -22,6 +22,40 @@
22
22
  "defaultScope": "user",
23
23
  "description": "Editor color theme: 'light', 'dark', or 'system' (follow the OS). A personal preference (user scope) — not shared with the project."
24
24
  },
25
+ "colorThemeLight": {
26
+ "type": "string",
27
+ "enum": [
28
+ "default",
29
+ "dracula",
30
+ "catppuccin-frappe",
31
+ "catppuccin-latte",
32
+ "monokai",
33
+ "gruvbox",
34
+ "solarized",
35
+ "custom"
36
+ ],
37
+ "scope": "user",
38
+ "agentSettable": false,
39
+ "defaultScope": "user",
40
+ "description": "IDE color palette applied in light mode: 'default' (no palette), 'custom' (your own colors from appearance.customTheme), or one of 'dracula', 'catppuccin-frappe', 'catppuccin-latte', 'monokai', 'gruvbox', 'solarized'. A personal preference (user scope) — not shared with the project."
41
+ },
42
+ "colorThemeDark": {
43
+ "type": "string",
44
+ "enum": [
45
+ "default",
46
+ "dracula",
47
+ "catppuccin-frappe",
48
+ "catppuccin-latte",
49
+ "monokai",
50
+ "gruvbox",
51
+ "solarized",
52
+ "custom"
53
+ ],
54
+ "scope": "user",
55
+ "agentSettable": false,
56
+ "defaultScope": "user",
57
+ "description": "IDE color palette applied in dark mode: 'default' (no palette), 'custom' (your own colors from appearance.customTheme), or one of 'dracula', 'catppuccin-frappe', 'catppuccin-latte', 'monokai', 'gruvbox', 'solarized'. A personal preference (user scope) — not shared with the project."
58
+ },
25
59
  "colorTheme": {
26
60
  "type": "string",
27
61
  "enum": [
@@ -37,7 +71,7 @@
37
71
  "scope": "user",
38
72
  "agentSettable": false,
39
73
  "defaultScope": "user",
40
- "description": "IDE color palette: 'default' (follows the light/dark theme), 'custom' (your own colors from appearance.customTheme), or one of 'dracula', 'catppuccin-frappe', 'catppuccin-latte', 'monokai', 'gruvbox', 'solarized'. A personal preference (user scope) — not shared with the project."
74
+ "description": "Superseded by appearance.colorThemeLight / appearance.colorThemeDark. Read as the palette for both modes while neither of those is set. A personal preference (user scope) — not shared with the project."
41
75
  },
42
76
  "colorThemeEnabled": {
43
77
  "type": "boolean",
@@ -211,7 +245,8 @@
211
245
  },
212
246
  "editor": {
213
247
  "default": {
214
- "wordWrap": true
248
+ "wordWrap": true,
249
+ "previewTabs": true
215
250
  },
216
251
  "type": "object",
217
252
  "properties": {
@@ -222,6 +257,14 @@
222
257
  "agentSettable": false,
223
258
  "defaultScope": "user",
224
259
  "description": "Soft-wrap long lines in the source (CodeMirror) editor. A personal preference (user scope)."
260
+ },
261
+ "previewTabs": {
262
+ "default": true,
263
+ "type": "boolean",
264
+ "scope": "user",
265
+ "agentSettable": false,
266
+ "defaultScope": "user",
267
+ "description": "Reuse one tab when clicking through the Files and Skills sidebars, the way an editor preview tab works. Turn off to open every click in its own tab. Pinned tabs keep their own tab either way. A personal preference (user scope)."
225
268
  }
226
269
  },
227
270
  "additionalProperties": {}
@@ -1,2 +1,2 @@
1
- import"./src-pJ6LEXKc.mjs";import{r as e}from"./logger-5LePyO3n.mjs";import{dirname as t,join as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{closeSync as a,existsSync as o,mkdirSync as s,openSync as c,readFileSync as l,unlinkSync as u,writeFileSync as d,writeSync as f}from"node:fs";import{homedir as p,hostname as m}from"node:os";import{randomUUID as h}from"node:crypto";function g(e){try{return process.kill(e,0),!0}catch(e){return!!(e&&typeof e==`object`&&`code`in e&&e.code===`EPERM`)}}function _(e){return!(typeof e!=`number`||!Number.isInteger(e)||e<2||e>2147483647)}function v(e){return new URL(e.url??``,`http://localhost`).searchParams}function y(e){let t=e?.code;return typeof t==`string`?t:void 0}const b=/^[A-Za-z0-9-]{8,64}$/;let x=null;function S(e){return n(e??p(),`.ok`,`machine-id`)}function C(n){if(n===void 0&&x!==null)return x;let r=S(n),i=null;try{let e=l(r,`utf-8`).trim();b.test(e)&&(i=e)}catch{}if(i===null){i=h();try{s(t(r),{recursive:!0}),d(r,`${i}\n`,{encoding:`utf-8`,mode:384})}catch(t){e(`machine-id`).warn({path:r,err:t},`Failed to persist ${r} — using an ephemeral per-process id; lock ownership checks will fail closed (collision) instead of recognizing this machine: ${t instanceof Error?t.message:String(t)}`)}}return n===void 0&&(x=i),i}function w(){try{let e=r(t(i(import.meta.url)),`..`,`package.json`),n=JSON.parse(l(e,`utf-8`));if(typeof n.version==`string`&&n.version.length>0)return n.version}catch{}return`0.0.0-unknown`}const T=w(),E=1,D=e(`process-lock`);var O=class extends Error{existing;lockPath;lockName;constructor(e,t,n){super(`OpenKnowledge ${n} already running on port ${e.port} (pid ${e.pid}, started ${e.startedAt}). Stop it first or use a different directory. Lock: ${t}`),this.name=`ProcessLockCollisionError`,this.existing=e,this.lockPath=t,this.lockName=n}};function k(e,t){return r(e,`${t}.lock`)}const A=new Map;function j(e){A.set(e,(A.get(e)??0)+1)}function M(e){let t=A.get(e);return t===void 0||t<=1?(A.delete(e),!0):(A.set(e,t-1),!1)}function N(e){return typeof e.machineId==`string`?e.machineId===C():e.hostname===m()}const P=new Set;let F=!1;function I(e){P.add(e),!F&&(F=!0,process.on(`exit`,()=>{for(let e of P)try{let t=JSON.parse(l(e,`utf-8`));if(t?.pid!==process.pid||typeof t.machineId==`string`&&t.machineId!==C()||t.machineId===void 0&&typeof t.hostname==`string`&&t.hostname!==m())continue;u(e)}catch{}}))}function L(e,t){try{let n=JSON.parse(l(e,`utf-8`));return n&&typeof n==`object`&&_(n.pid)?n:(D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null)}catch{return D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null}}function R(e){let{lockName:t,lockDir:n,metadata:r}=e,i=`[${t}-lock]`;s(n,{recursive:!0});let l=k(n,t),p={pid:process.pid,hostname:m(),port:r.port,startedAt:new Date().toISOString(),worktreeRoot:r.worktreeRoot,machineId:C(),...r.kind!==void 0&&{kind:r.kind},...r.parentPid!==void 0&&{parentPid:r.parentPid},...r.capabilities!==void 0&&{capabilities:r.capabilities},protocolVersion:r.protocolVersion??1,runtimeVersion:r.runtimeVersion??T},h=JSON.stringify(p,null,2);for(let e=0;e<3;e++){if(!o(l))try{let e=c(l,`wx`,384);try{f(e,h)}finally{a(e)}return j(l),I(l),z({lockName:t,lockDir:n,lockPath:l})}catch(e){if(y(e)!==`EEXIST`)throw e}let e=L(l,i);if(e){if(N(e)&&e.pid===process.pid)return d(l,h,{encoding:`utf-8`,mode:384}),j(l),I(l),z({lockName:t,lockDir:n,lockPath:l});if(g(e.pid))throw new O(e,l,t);D.warn({pid:e.pid,host:e.hostname},`${i} Stale lock detected (pid=${e.pid}, host=${e.hostname}) — replacing`)}try{u(l)}catch{}}throw Error(`${i} Failed to acquire ${l} after 3 attempts (concurrent acquire contention).`)}function z(e){let{lockName:t,lockDir:n,lockPath:r}=e;return{lockPath:r,release:()=>G({lockName:t,lockDir:n}),updatePort:e=>B({lockName:t,lockDir:n,port:e})}}function B(e){let{lockName:t,lockDir:n,port:r}=e,i=`[${t}-lock]`,a=k(n,t);if(!o(a)){D.warn({lockPath:a},`${i} Lock file missing at ${a} during port update — skipping`);return}let s;try{let e=JSON.parse(l(a,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:a},`${i} Corrupt lock at ${a} during port update — skipping`);return}s=e}catch{D.warn({lockPath:a},`${i} Unreadable lock at ${a} during port update — skipping`);return}if(s.pid===process.pid&&N(s)){s.port=r;try{d(a,JSON.stringify(s,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:a,err:e},`${i} Failed to update port in ${a}: ${e instanceof Error?e.message:String(e)}`)}}}function V(e){let{lockName:t,lockDir:n}=e,r=`[${t}-lock]`,i=k(n,t);if((A.get(i)??0)>1)return;let a;try{let e=JSON.parse(l(i,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:i},`${r} Corrupt lock at ${i} during draining mark — skipping`);return}a=e}catch(e){y(e)!==`ENOENT`&&D.warn({lockPath:i,err:e},`${r} Unreadable lock at ${i} during draining mark — skipping: ${e instanceof Error?e.message:String(e)}`);return}if(a.pid===process.pid&&N(a)&&a.draining!==!0){a.draining=!0;try{d(i,JSON.stringify(a,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:i,err:e},`${r} Failed to mark ${i} draining: ${e instanceof Error?e.message:String(e)}`)}}}function H(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return null;let i;try{let e=JSON.parse(l(r,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid))return null;i=e}catch{return null}if(!N(i))return null;if(!g(i.pid)){try{u(r)}catch{}return null}return i}function U(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return{status:`absent`};let i;try{i=JSON.parse(l(r,`utf-8`))}catch{return{status:`incompatible`,reason:`corrupt`,raw:void 0}}if(!i||typeof i!=`object`)return{status:`incompatible`,reason:`corrupt`,raw:i};let a=i;if(!_(a.pid)||typeof a.hostname!=`string`||typeof a.port!=`number`||typeof a.startedAt!=`string`||typeof a.worktreeRoot!=`string`)return{status:`incompatible`,reason:`corrupt`,raw:i};let s={pid:a.pid,hostname:a.hostname,port:a.port,startedAt:a.startedAt,worktreeRoot:a.worktreeRoot,machineId:typeof a.machineId==`string`?a.machineId:void 0,draining:a.draining===!0?!0:void 0,protocolVersion:typeof a.protocolVersion==`number`?a.protocolVersion:void 0,runtimeVersion:typeof a.runtimeVersion==`string`?a.runtimeVersion:void 0};if(!N(s))return{status:`stale`,lock:s};if(!g(s.pid)){try{u(r)}catch{}return{status:`stale`,lock:s}}return s.protocolVersion===void 0||s.runtimeVersion===void 0?{status:`incompatible`,reason:`missing-fields`,raw:i}:{status:`live`,lock:s}}async function W(e){let{lockName:t,lockDir:n}=e,r=e.timeoutMs??1e4,i=e.pollIntervalMs??100,a=e.readLock??(()=>H({lockName:t,lockDir:n})),o=e.sleep??(e=>new Promise(t=>setTimeout(t,e))),s=a();if(s===null||s.draining!==!0)return`no-drain`;let c=Date.now()+r;for(;Date.now()<c;){await o(i);let e=a();if(e===null)return`released`;if(e.draining!==!0)return`no-drain`}return`timeout`}function G(e){let{lockName:t,lockDir:n,deferUnlinkToExit:r=!1}=e,i=`[${t}-lock]`,a=k(n,t);if(M(a)){if(r){V({lockName:t,lockDir:n});return}if(o(a))try{let e=JSON.parse(l(a,`utf-8`));if(!e||typeof e!=`object`||typeof e.pid!=`number`||e.pid!==process.pid||!N(e))return;u(a),P.delete(a)}catch(e){D.warn({lockPath:a,err:e},`${i} Failed to release ${a}: ${e instanceof Error?e.message:String(e)}`)}}}var K=class extends O{constructor(e,t){super(e,t,`server`),this.name=`ServerLockCollisionError`}};function q(e,t){try{return R({lockName:`server`,lockDir:e,metadata:t}).lockPath}catch(e){throw e instanceof O&&e.lockName===`server`?new K(e.existing,e.lockPath):e}}function J(e,t){B({lockName:`server`,lockDir:e,port:t})}function Y(e){return H({lockName:`server`,lockDir:e})}function X(e,t){G({lockName:`server`,lockDir:e,...t})}function Z(e){V({lockName:`server`,lockDir:e})}function Q(e,t){return W({lockName:`server`,lockDir:e,...t})}export{_ as S,E as _,X as a,v as b,O as c,V as d,H as f,T as g,B as h,Y as i,R as l,G as m,q as n,J as o,U as p,Z as r,Q as s,K as t,k as u,C as v,g as x,y};
2
- //# sourceMappingURL=server-lock-DgWnoftI.mjs.map
1
+ import"./src-czIvvgm0.mjs";import{r as e}from"./logger-5LePyO3n.mjs";import{dirname as t,join as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{closeSync as a,existsSync as o,mkdirSync as s,openSync as c,readFileSync as l,unlinkSync as u,writeFileSync as d,writeSync as f}from"node:fs";import{homedir as p,hostname as m}from"node:os";import{randomUUID as h}from"node:crypto";function g(e){try{return process.kill(e,0),!0}catch(e){return!!(e&&typeof e==`object`&&`code`in e&&e.code===`EPERM`)}}function _(e){return!(typeof e!=`number`||!Number.isInteger(e)||e<2||e>2147483647)}function v(e){return new URL(e.url??``,`http://localhost`).searchParams}function y(e){let t=e?.code;return typeof t==`string`?t:void 0}const b=/^[A-Za-z0-9-]{8,64}$/;let x=null;function S(e){return n(e??p(),`.ok`,`machine-id`)}function C(n){if(n===void 0&&x!==null)return x;let r=S(n),i=null;try{let e=l(r,`utf-8`).trim();b.test(e)&&(i=e)}catch{}if(i===null){i=h();try{s(t(r),{recursive:!0}),d(r,`${i}\n`,{encoding:`utf-8`,mode:384})}catch(t){e(`machine-id`).warn({path:r,err:t},`Failed to persist ${r} — using an ephemeral per-process id; lock ownership checks will fail closed (collision) instead of recognizing this machine: ${t instanceof Error?t.message:String(t)}`)}}return n===void 0&&(x=i),i}function w(){try{let e=r(t(i(import.meta.url)),`..`,`package.json`),n=JSON.parse(l(e,`utf-8`));if(typeof n.version==`string`&&n.version.length>0)return n.version}catch{}return`0.0.0-unknown`}const T=w(),E=1,D=e(`process-lock`);var O=class extends Error{existing;lockPath;lockName;constructor(e,t,n){super(`OpenKnowledge ${n} already running on port ${e.port} (pid ${e.pid}, started ${e.startedAt}). Stop it first or use a different directory. Lock: ${t}`),this.name=`ProcessLockCollisionError`,this.existing=e,this.lockPath=t,this.lockName=n}};function k(e,t){return r(e,`${t}.lock`)}const A=new Map;function j(e){A.set(e,(A.get(e)??0)+1)}function M(e){let t=A.get(e);return t===void 0||t<=1?(A.delete(e),!0):(A.set(e,t-1),!1)}function N(e){return typeof e.machineId==`string`?e.machineId===C():e.hostname===m()}const P=new Set;let F=!1;function I(e){P.add(e),!F&&(F=!0,process.on(`exit`,()=>{for(let e of P)try{let t=JSON.parse(l(e,`utf-8`));if(t?.pid!==process.pid||typeof t.machineId==`string`&&t.machineId!==C()||t.machineId===void 0&&typeof t.hostname==`string`&&t.hostname!==m())continue;u(e)}catch{}}))}function L(e,t){try{let n=JSON.parse(l(e,`utf-8`));return n&&typeof n==`object`&&_(n.pid)?n:(D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null)}catch{return D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null}}function R(e){let{lockName:t,lockDir:n,metadata:r}=e,i=`[${t}-lock]`;s(n,{recursive:!0});let l=k(n,t),p={pid:process.pid,hostname:m(),port:r.port,startedAt:new Date().toISOString(),worktreeRoot:r.worktreeRoot,machineId:C(),...r.kind!==void 0&&{kind:r.kind},...r.parentPid!==void 0&&{parentPid:r.parentPid},...r.capabilities!==void 0&&{capabilities:r.capabilities},protocolVersion:r.protocolVersion??1,runtimeVersion:r.runtimeVersion??T},h=JSON.stringify(p,null,2);for(let e=0;e<3;e++){if(!o(l))try{let e=c(l,`wx`,384);try{f(e,h)}finally{a(e)}return j(l),I(l),z({lockName:t,lockDir:n,lockPath:l})}catch(e){if(y(e)!==`EEXIST`)throw e}let e=L(l,i);if(e){if(N(e)&&e.pid===process.pid)return d(l,h,{encoding:`utf-8`,mode:384}),j(l),I(l),z({lockName:t,lockDir:n,lockPath:l});if(g(e.pid))throw new O(e,l,t);D.warn({pid:e.pid,host:e.hostname},`${i} Stale lock detected (pid=${e.pid}, host=${e.hostname}) — replacing`)}try{u(l)}catch{}}throw Error(`${i} Failed to acquire ${l} after 3 attempts (concurrent acquire contention).`)}function z(e){let{lockName:t,lockDir:n,lockPath:r}=e;return{lockPath:r,release:()=>G({lockName:t,lockDir:n}),updatePort:e=>B({lockName:t,lockDir:n,port:e})}}function B(e){let{lockName:t,lockDir:n,port:r}=e,i=`[${t}-lock]`,a=k(n,t);if(!o(a)){D.warn({lockPath:a},`${i} Lock file missing at ${a} during port update — skipping`);return}let s;try{let e=JSON.parse(l(a,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:a},`${i} Corrupt lock at ${a} during port update — skipping`);return}s=e}catch{D.warn({lockPath:a},`${i} Unreadable lock at ${a} during port update — skipping`);return}if(s.pid===process.pid&&N(s)){s.port=r;try{d(a,JSON.stringify(s,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:a,err:e},`${i} Failed to update port in ${a}: ${e instanceof Error?e.message:String(e)}`)}}}function V(e){let{lockName:t,lockDir:n}=e,r=`[${t}-lock]`,i=k(n,t);if((A.get(i)??0)>1)return;let a;try{let e=JSON.parse(l(i,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:i},`${r} Corrupt lock at ${i} during draining mark — skipping`);return}a=e}catch(e){y(e)!==`ENOENT`&&D.warn({lockPath:i,err:e},`${r} Unreadable lock at ${i} during draining mark — skipping: ${e instanceof Error?e.message:String(e)}`);return}if(a.pid===process.pid&&N(a)&&a.draining!==!0){a.draining=!0;try{d(i,JSON.stringify(a,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:i,err:e},`${r} Failed to mark ${i} draining: ${e instanceof Error?e.message:String(e)}`)}}}function H(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return null;let i;try{let e=JSON.parse(l(r,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid))return null;i=e}catch{return null}if(!N(i))return null;if(!g(i.pid)){try{u(r)}catch{}return null}return i}function U(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return{status:`absent`};let i;try{i=JSON.parse(l(r,`utf-8`))}catch{return{status:`incompatible`,reason:`corrupt`,raw:void 0}}if(!i||typeof i!=`object`)return{status:`incompatible`,reason:`corrupt`,raw:i};let a=i;if(!_(a.pid)||typeof a.hostname!=`string`||typeof a.port!=`number`||typeof a.startedAt!=`string`||typeof a.worktreeRoot!=`string`)return{status:`incompatible`,reason:`corrupt`,raw:i};let s={pid:a.pid,hostname:a.hostname,port:a.port,startedAt:a.startedAt,worktreeRoot:a.worktreeRoot,machineId:typeof a.machineId==`string`?a.machineId:void 0,draining:a.draining===!0?!0:void 0,protocolVersion:typeof a.protocolVersion==`number`?a.protocolVersion:void 0,runtimeVersion:typeof a.runtimeVersion==`string`?a.runtimeVersion:void 0};if(!N(s))return{status:`stale`,lock:s};if(!g(s.pid)){try{u(r)}catch{}return{status:`stale`,lock:s}}return s.protocolVersion===void 0||s.runtimeVersion===void 0?{status:`incompatible`,reason:`missing-fields`,raw:i}:{status:`live`,lock:s}}async function W(e){let{lockName:t,lockDir:n}=e,r=e.timeoutMs??1e4,i=e.pollIntervalMs??100,a=e.readLock??(()=>H({lockName:t,lockDir:n})),o=e.sleep??(e=>new Promise(t=>setTimeout(t,e))),s=a();if(s===null||s.draining!==!0)return`no-drain`;let c=Date.now()+r;for(;Date.now()<c;){await o(i);let e=a();if(e===null)return`released`;if(e.draining!==!0)return`no-drain`}return`timeout`}function G(e){let{lockName:t,lockDir:n,deferUnlinkToExit:r=!1}=e,i=`[${t}-lock]`,a=k(n,t);if(M(a)){if(r){V({lockName:t,lockDir:n});return}if(o(a))try{let e=JSON.parse(l(a,`utf-8`));if(!e||typeof e!=`object`||typeof e.pid!=`number`||e.pid!==process.pid||!N(e))return;u(a),P.delete(a)}catch(e){D.warn({lockPath:a,err:e},`${i} Failed to release ${a}: ${e instanceof Error?e.message:String(e)}`)}}}var K=class extends O{constructor(e,t){super(e,t,`server`),this.name=`ServerLockCollisionError`}};function q(e,t){try{return R({lockName:`server`,lockDir:e,metadata:t}).lockPath}catch(e){throw e instanceof O&&e.lockName===`server`?new K(e.existing,e.lockPath):e}}function J(e,t){B({lockName:`server`,lockDir:e,port:t})}function Y(e){return H({lockName:`server`,lockDir:e})}function X(e,t){G({lockName:`server`,lockDir:e,...t})}function Z(e){V({lockName:`server`,lockDir:e})}function Q(e,t){return W({lockName:`server`,lockDir:e,...t})}export{_ as S,E as _,X as a,v as b,O as c,V as d,H as f,T as g,B as h,Y as i,R as l,G as m,q as n,J as o,U as p,Z as r,Q as s,K as t,k as u,C as v,g as x,y};
2
+ //# sourceMappingURL=server-lock-3ByzWRdV.mjs.map
@@ -0,0 +1 @@
1
+ import{a as e,o as t,r as n}from"./server-lock-3ByzWRdV.mjs";export{n as markServerLockDraining,e as releaseServerLock,t as updateServerLockPort};