@inkeep/open-knowledge 0.49.0-beta.8 → 0.49.0

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 (489) hide show
  1. package/dist/THIRD_PARTY_NOTICES.md +65 -0
  2. package/dist/{acp-harness-probe-D3WKP8RS.mjs → acp-harness-probe-DOXp9Wx4.mjs} +2 -2
  3. package/dist/assets/skills/packs/codebase-wiki/SKILL.md +1 -1
  4. package/dist/assets/skills/packs/entity-vault/SKILL.md +2 -2
  5. package/dist/assets/skills/packs/knowledge-base/SKILL.md +6 -6
  6. package/dist/assets/skills/packs/knowledge-base/consolidate/SKILL.md +2 -2
  7. package/dist/assets/skills/packs/knowledge-base/research/SKILL.md +5 -5
  8. package/dist/assets/skills/packs/okf/SKILL.md +1 -1
  9. package/dist/assets/skills/packs/plain-notes/SKILL.md +1 -1
  10. package/dist/assets/skills/packs/software-lifecycle/SKILL.md +6 -6
  11. package/dist/assets/skills/packs/software-lifecycle/frame-a-proposal/SKILL.md +3 -3
  12. package/dist/assets/skills/packs/software-lifecycle/record-a-decision/SKILL.md +7 -7
  13. package/dist/assets/skills/packs/software-lifecycle/review-a-design/SKILL.md +4 -4
  14. package/dist/assets/skills/packs/software-lifecycle/write-a-postmortem/SKILL.md +2 -2
  15. package/dist/assets/skills/packs/software-lifecycle/write-a-spec/SKILL.md +5 -5
  16. package/dist/assets/skills/packs/worldbuilding/SKILL.md +1 -1
  17. package/dist/assets/skills/packs/writing-pipeline/SKILL.md +1 -1
  18. package/dist/assets/skills/project/SKILL.md +3 -3
  19. package/dist/assets/skills/project/references/starter-packs.md +1 -1
  20. package/dist/cli.mjs +31 -31
  21. package/dist/config-schema.json +38 -0
  22. package/dist/config.user.schema.json +38 -0
  23. package/dist/constants-J4-mibQ1.mjs +2 -0
  24. package/dist/{fs-traced-Cq61rC8q.mjs → fs-traced-By5aY-RE.mjs} +2 -2
  25. package/dist/fs-traced-CkLhqsEn.mjs +1 -0
  26. package/dist/git-handle-BDmbIWwd.mjs +1 -0
  27. package/dist/{git-handle-DyGrpFVy.mjs → git-handle-BHe1p04S.mjs} +2 -2
  28. package/dist/index.d.mts +17 -0
  29. package/dist/index.mjs +1 -1
  30. package/dist/init-DDwncQha.mjs +1 -0
  31. package/dist/{init-CIx--I41.mjs → init-ZOWQ1Th4.mjs} +17 -17
  32. package/dist/{launch-json-removal-BLAj9y37.mjs → launch-json-removal-CcFuFFS1.mjs} +2 -2
  33. package/dist/loader-BcwbnY_K.mjs +1 -0
  34. package/dist/{loader-BLqQZ5Tv.mjs → loader-ji3pPcXi.mjs} +2 -2
  35. package/dist/md-manager-B4-M0hXs.mjs +2 -0
  36. package/dist/{open-browser-svTSfejY.mjs → open-browser-CxnOIVsL.mjs} +2 -2
  37. package/dist/parse-worker.mjs +1 -1
  38. package/dist/{preview-BpDiVSjC.mjs → preview-2rQXoRuM.mjs} +2 -2
  39. package/dist/preview-MV-qHfzy.mjs +1 -0
  40. package/dist/public/assets/{ActivityModeContent-BNAxhpQj.js → ActivityModeContent-C08FYohG.js} +1 -1
  41. package/dist/public/assets/{AgentDiffPane-D7Khwouf.js → AgentDiffPane-T499-ugv.js} +2 -2
  42. package/dist/public/assets/{AgentThreadClientBinder-daoer6rt.js → AgentThreadClientBinder-BlMGv16y.js} +1 -1
  43. package/dist/public/assets/{AppMenubar-_6okky_d.js → AppMenubar-dik_dmjC.js} +1 -1
  44. package/dist/public/assets/BugReportHistory-DymFE_6x.js +1 -0
  45. package/dist/public/assets/{BugReportHistoryDialog-DgM3N4RP.js → BugReportHistoryDialog-D28ahq-6.js} +1 -1
  46. package/dist/public/assets/ChangedOutsideBadge-GeQfL_b-.js +1 -0
  47. package/dist/public/assets/CodeMirrorPropInput-3TWUbzXY.js +3 -0
  48. package/dist/public/assets/{ConfigSharingInfoTooltip-BhNgrS2h.js → ConfigSharingInfoTooltip-Bwt_R43K.js} +1 -1
  49. package/dist/public/assets/{ConsentDialogBody-CAqiYyjs.js → ConsentDialogBody-Clb82Qbo.js} +1 -1
  50. package/dist/public/assets/{CopyButton-DfXJBl0I.js → CopyButton-DysciFW5.js} +1 -1
  51. package/dist/public/assets/{DiffView-Bc5gwnAV.js → DiffView-DY54R06f.js} +1 -1
  52. package/dist/public/assets/DocumentContext-C-Lo65-_.js +38 -0
  53. package/dist/public/assets/{EditorModeToggle-BbMlOgkn.js → EditorModeToggle-BjgmECAn.js} +1 -1
  54. package/dist/public/assets/{EnableSyncConfirmDialog-CQetlwTb.js → EnableSyncConfirmDialog-B1Eo_sVE.js} +1 -1
  55. package/dist/public/assets/FeedbackForm-CmdTz11F.js +1 -0
  56. package/dist/public/assets/{GraphPanel-BlKaOmvl.js → GraphPanel-CxJeFUDp.js} +2 -2
  57. package/dist/public/assets/{ImportSkillDialog-BgrlE-MX.js → ImportSkillDialog-ChsGV6eb.js} +1 -1
  58. package/dist/public/assets/{LintConfigEditor-Cno_iGzp.js → LintConfigEditor-3f4-NF1O.js} +1 -1
  59. package/dist/public/assets/ManagedArtifactProperties-B1ZA0ofn.js +2 -0
  60. package/dist/public/assets/ManagedArtifactProperties-B_ecuboX.js +1 -0
  61. package/dist/public/assets/{McpConsentDialogBody-NLB2A56E.js → McpConsentDialogBody-CG5af4os.js} +1 -1
  62. package/dist/public/assets/{Mermaid-DT9lZOmy.js → Mermaid-Cr48L9fH.js} +2 -2
  63. package/dist/public/assets/{MermaidDocEditor-_Gx5VJXW.js → MermaidDocEditor-C30-UfMg.js} +1 -1
  64. package/dist/public/assets/{RegisteredAgentIcon-CSZXCqwG.js → RegisteredAgentIcon-Cdt1gfjt.js} +1 -1
  65. package/dist/public/assets/{ReportBugDialogBody-C9wKJMEr.js → ReportBugDialogBody-BUGec7jk.js} +1 -1
  66. package/dist/public/assets/SchemaConfigEditor-DPK5XbMd.js +1 -0
  67. package/dist/public/assets/SessionsHost-BobZkNwc.js +2 -0
  68. package/dist/public/assets/SettingsDialogBody-COTbFRqi.js +12 -0
  69. package/dist/public/assets/{ShareBranchSwitchDialog-DWmVoqtB.js → ShareBranchSwitchDialog-C0mAHHVQ.js} +1 -1
  70. package/dist/public/assets/{ShareReceiveDialog-Deigdttj.js → ShareReceiveDialog-Coi9tYAP.js} +1 -1
  71. package/dist/public/assets/{ShareReceiveMissDialog-Bw2-qhvJ.js → ShareReceiveMissDialog-B03ClkaE.js} +1 -1
  72. package/dist/public/assets/{SkillEditBanner-B31-HMnN.js → SkillEditBanner-C7z-32HN.js} +1 -1
  73. package/dist/public/assets/{SkillOriginInline-OqQA2gy_.js → SkillOriginInline-DgWSnmXH.js} +1 -1
  74. package/dist/public/assets/SkillToolbarControls-PvRY_LHn.js +1 -0
  75. package/dist/public/assets/SlidesToolbarControls-8TzXHMwI.js +1 -0
  76. package/dist/public/assets/SourceEditor-Duqpede9.js +1 -0
  77. package/dist/public/assets/TerminalPanel-Bl3bWVA_.js +146 -0
  78. package/dist/public/assets/{TerminalWindowApp-C-uBdtmk.js → TerminalWindowApp-CgWp2eC-.js} +1 -1
  79. package/dist/public/assets/{TextDocEditor-hb2f-OfN.js → TextDocEditor-CHDC5byq.js} +1 -1
  80. package/dist/public/assets/ThreadView-VqdgemBS.js +10 -0
  81. package/dist/public/assets/{TimelineDiffPane-BLLl6THu.js → TimelineDiffPane-DnaRcvCk.js} +2 -2
  82. package/dist/public/assets/{abnfDiagram-VRR7QNED-Df7YgB-u.js → abnfDiagram-VRR7QNED-zrdnvCxH.js} +1 -1
  83. package/dist/public/assets/{agent-diff-store-CLtKPNmI.js → agent-diff-store-B7oQn7l7.js} +1 -1
  84. package/dist/public/assets/agent-visibility-CHYjRInm.js +1 -0
  85. package/dist/public/assets/{arc-CVPlXeVn.js → arc-DNWUH4a1.js} +1 -1
  86. package/dist/public/assets/architecture-TIHT7OUA-DHywK0qf.js +1 -0
  87. package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-Cid8pwpH.js → architectureDiagram-ZJ3FMSHR-C8Bd5LWV.js} +1 -1
  88. package/dist/public/assets/arrow-up-right-0IN5lFEX.js +1 -0
  89. package/dist/public/assets/auth-state-cache-BUYyIMUZ.js +11 -0
  90. package/dist/public/assets/{blockDiagram-677ZJIJ3-CbwD0mr1.js → blockDiagram-677ZJIJ3-B9IYmQZQ.js} +1 -1
  91. package/dist/public/assets/{braces-PuTG97X6.js → braces-Ytg60O62.js} +1 -1
  92. package/dist/public/assets/{c4Diagram-LMCZKHZV-CZHW-U3Z.js → c4Diagram-LMCZKHZV-BAmqGVbu.js} +1 -1
  93. package/dist/public/assets/{calendar-Dze0sDp0.js → calendar-GynmFVw0.js} +1 -1
  94. package/dist/public/assets/{case-sensitive-DyF7sIpA.js → case-sensitive-DvBZDISP.js} +1 -1
  95. package/dist/public/assets/channel-BNyr5ucm.js +1 -0
  96. package/dist/public/assets/check-BLuQ2zvV.js +1 -0
  97. package/dist/public/assets/{checkbox-DqQC4GOw.js → checkbox-V0IoPAe3.js} +1 -1
  98. package/dist/public/assets/{chevron-down-CRb8csep.js → chevron-down-DrpHBSgH.js} +1 -1
  99. package/dist/public/assets/chevron-left-BUr-yKA4.js +1 -0
  100. package/dist/public/assets/chevron-right-BU8AeJST.js +1 -0
  101. package/dist/public/assets/{chevron-up-BZk9M0QL.js → chevron-up-CsH_dTwv.js} +1 -1
  102. package/dist/public/assets/chunk-2Q5K7J3B-UKfnOi4g.js +1 -0
  103. package/dist/public/assets/{chunk-32BRIVSS-DT6F-uh7.js → chunk-32BRIVSS-DMLdlgjI.js} +1 -1
  104. package/dist/public/assets/{chunk-52WLFC77-z8Dc0FTi.js → chunk-52WLFC77-CA6wNZGK.js} +1 -1
  105. package/dist/public/assets/{chunk-5FCAYU7R-CTroACwQ.js → chunk-5FCAYU7R-DqJZ_M2Z.js} +1 -1
  106. package/dist/public/assets/{chunk-5HE753X5-BiVTlY9X.js → chunk-5HE753X5-xEmSuz1X.js} +1 -1
  107. package/dist/public/assets/{chunk-5JV3BV7I-D5PSiL8d.js → chunk-5JV3BV7I-Ck8lDs_Z.js} +1 -1
  108. package/dist/public/assets/{chunk-5TONJI2A-Bxf6m0R0.js → chunk-5TONJI2A-PrC_RJYQ.js} +1 -1
  109. package/dist/public/assets/{chunk-5VM5RSS4-CRkhjuQ5.js → chunk-5VM5RSS4-uHW5nKzV.js} +1 -1
  110. package/dist/public/assets/{chunk-7BUUIJ7U-CIezx2MS.js → chunk-7BUUIJ7U-QsQRXodN.js} +1 -1
  111. package/dist/public/assets/{chunk-BIQX33UG-4vkcoUCs.js → chunk-BIQX33UG-Bn3R7PMg.js} +1 -1
  112. package/dist/public/assets/{chunk-BO2N2NFS-CC8ch_fx.js → chunk-BO2N2NFS-XrP3H1kD.js} +13 -13
  113. package/dist/public/assets/{chunk-C7G6YPKG-CfSnkt3g.js → chunk-C7G6YPKG-Cyi6lMg0.js} +1 -1
  114. package/dist/public/assets/{chunk-CQNSW5MT-DY98Y9zl.js → chunk-CQNSW5MT-DcGjpkNq.js} +1 -1
  115. package/dist/public/assets/{chunk-CYSBUYHQ-BK-vm9jf.js → chunk-CYSBUYHQ-DtqK9e9B.js} +1 -1
  116. package/dist/public/assets/{chunk-EMLP6XTP-DZw4ZtXy.js → chunk-EMLP6XTP-CwGsiDUi.js} +1 -1
  117. package/dist/public/assets/{chunk-EX3LRPZG-Bk_23Lji.js → chunk-EX3LRPZG-DLPjvnJt.js} +1 -1
  118. package/dist/public/assets/{chunk-FWX5IMBZ-Bcld6_cI.js → chunk-FWX5IMBZ-Dl1Yx5lK.js} +2 -2
  119. package/dist/public/assets/{chunk-HOUHSVGY-CFg4tiNL.js → chunk-HOUHSVGY-DV13h0Pr.js} +1 -1
  120. package/dist/public/assets/{chunk-ICXQ74PX-D2_LgSCG.js → chunk-ICXQ74PX-INpeR2_Y.js} +1 -1
  121. package/dist/public/assets/{chunk-JG7HCLWE-DvlaYzpW.js → chunk-JG7HCLWE-DjqF4wz1.js} +1 -1
  122. package/dist/public/assets/{chunk-JWPE2WC7-CLgWJdHV.js → chunk-JWPE2WC7-ChNUGWh8.js} +1 -1
  123. package/dist/public/assets/{chunk-MOJQB5TN-ChUfYEEn.js → chunk-MOJQB5TN-DYAyc4PI.js} +1 -1
  124. package/dist/public/assets/{chunk-MOZMSUNE-BGXPWMly.js → chunk-MOZMSUNE-DAoBuwD4.js} +1 -1
  125. package/dist/public/assets/{chunk-OGEWGWER-CivbNyHY.js → chunk-OGEWGWER-_vqBGeRc.js} +1 -1
  126. package/dist/public/assets/{chunk-OSBZ3O6U-DWgnErEt.js → chunk-OSBZ3O6U-SeZvOun8.js} +1 -1
  127. package/dist/public/assets/{chunk-PUDLZKDR-B7d6ISYj.js → chunk-PUDLZKDR-C184t24_.js} +1 -1
  128. package/dist/public/assets/{chunk-Q4XR5HBZ-91W5kPi9.js → chunk-Q4XR5HBZ-SaCK9erE.js} +1 -1
  129. package/dist/public/assets/{chunk-QBLGF6JB-4F2Itui7.js → chunk-QBLGF6JB-CJVMUUtn.js} +1 -1
  130. package/dist/public/assets/{chunk-R7FJI6CG-hR8tQLXq.js → chunk-R7FJI6CG-q21e0CIM.js} +1 -1
  131. package/dist/public/assets/{chunk-RYQCIY6F-DycaSFT5.js → chunk-RYQCIY6F-nQAz-0yS.js} +1 -1
  132. package/dist/public/assets/{chunk-U6XO7XAA-CHI_dfPQ.js → chunk-U6XO7XAA-hembI7o8.js} +1 -1
  133. package/dist/public/assets/{chunk-V7JOEXUC-Bw7Trikr.js → chunk-V7JOEXUC-3RMXHrzo.js} +1 -1
  134. package/dist/public/assets/chunk-VAUOI2AC-ChJppfl7.js +1 -0
  135. package/dist/public/assets/{chunk-VR4S4FIN-td2s33cT.js → chunk-VR4S4FIN-YHQiPjFo.js} +1 -1
  136. package/dist/public/assets/{chunk-WYO6CB5R-BL3R8kzV.js → chunk-WYO6CB5R-tHLnBMnY.js} +2 -2
  137. package/dist/public/assets/chunk-XXDRQBXY-Bsh29NfZ.js +1 -0
  138. package/dist/public/assets/{chunk-YOTPTUD7-Cg9yDbvj.js → chunk-YOTPTUD7-u4FR_PoG.js} +1 -1
  139. package/dist/public/assets/{chunk-ZGVPDNZ5-DdQ8WlYq.js → chunk-ZGVPDNZ5-BFUSTZTU.js} +1 -1
  140. package/dist/public/assets/{chunk-ZIRB5QZD-DuiWBTeF.js → chunk-ZIRB5QZD-D120inkG.js} +1 -1
  141. package/dist/public/assets/classDiagram-OUVF2IWQ-6PbrHEW6.js +1 -0
  142. package/dist/public/assets/classDiagram-v2-EOCWNBFH-B4bz8Etj.js +1 -0
  143. package/dist/public/assets/client-version-DfXcf1Qf.js +1 -0
  144. package/dist/public/assets/{cm-theme-CUwlOcHl.js → cm-theme-BJSRL90r.js} +1 -1
  145. package/dist/public/assets/code-highlighter-impl-Bq6VPPCL.js +144 -0
  146. package/dist/public/assets/comment-chips-BhvfCPCk.js +5 -0
  147. package/dist/public/assets/{config-context-DyUEqnhn.js → config-context-DNY4at5d.js} +1 -1
  148. package/dist/public/assets/config-provider-B7dMDFNr.js +5 -0
  149. package/dist/public/assets/{cose-bilkent-JH36ORCC-YCEFr4ip.js → cose-bilkent-JH36ORCC-D0CYnCA3.js} +1 -1
  150. package/dist/public/assets/cynefin-VYW2F7L2-CjkKc5Wd.js +1 -0
  151. package/dist/public/assets/{cynefinDiagram-TSTJHNR4-BRxY_0dy.js → cynefinDiagram-TSTJHNR4-Bgric3JJ.js} +1 -1
  152. package/dist/public/assets/{dagre-VKFMJZFB-BTPOxYfv.js → dagre-VKFMJZFB-BXjUnJMs.js} +1 -1
  153. package/dist/public/assets/{dagre-4yTvJ5bN.js → dagre-uJOGPMM-.js} +1 -1
  154. package/dist/public/assets/{diagram-FQU43EPY-C6lvEDUr.js → diagram-FQU43EPY-dXOWFjMG.js} +1 -1
  155. package/dist/public/assets/{diagram-G47NLZAW-BHMtTNZp.js → diagram-G47NLZAW-zdJG9pHl.js} +1 -1
  156. package/dist/public/assets/{diagram-NH7WQ7WH-CaxSgclq.js → diagram-NH7WQ7WH-BVYbs_C0.js} +1 -1
  157. package/dist/public/assets/{diagram-OA4YK3LP-C_1H_cmz.js → diagram-OA4YK3LP-Ds5ohbs1.js} +1 -1
  158. package/dist/public/assets/{diagram-WEI45ONY-hy5nz4b2.js → diagram-WEI45ONY-BluqqbZ4.js} +1 -1
  159. package/dist/public/assets/{dialog-DwFomKjP.js → dialog-eak3pI7G.js} +1 -1
  160. package/dist/public/assets/{dist-CJtNQVui.js → dist--4AcVRue.js} +1 -1
  161. package/dist/public/assets/{dist-BHX9GuTC.js → dist-BCM06z1D.js} +1 -1
  162. package/dist/public/assets/{dist-CFDOSoEm.js → dist-BDJLSjo2.js} +1 -1
  163. package/dist/public/assets/{dist-aEzrjz-4.js → dist-CkHhDuKZ.js} +1 -1
  164. package/dist/public/assets/{dist-Cz7Q9WAs.js → dist-ClczuKkQ.js} +1 -1
  165. package/dist/public/assets/{dist-AhKSYQhE2.js → dist-DJ3iQH0N.js} +1 -1
  166. package/dist/public/assets/{dist-CdZbZpjt.js → dist-DNV7r8rH.js} +1 -1
  167. package/dist/public/assets/{dist-DdN4_oB-.js → dist-DndwauQ3.js} +1 -1
  168. package/dist/public/assets/{dist-DgD72kci.js → dist-DvtYFuZI.js} +1 -1
  169. package/dist/public/assets/dist-PVtTd_Sj2.js +579 -0
  170. package/dist/public/assets/{dist-HbUc9U1a.js → dist-Wj2cwRLU.js} +1 -1
  171. package/dist/public/assets/{dist-BX-8uxZE.js → dist-hwUYIgzz.js} +1 -1
  172. package/dist/public/assets/{dist-KXQQa8Xt.js → dist-tByLfm_n.js} +1 -1
  173. package/dist/public/assets/{dist-C7PQBily.js → dist-yYRRvtMr.js} +1 -1
  174. package/dist/public/assets/{doc-paths-Dr8av3tc.js → doc-paths-CH8QyanF.js} +1 -1
  175. package/dist/public/assets/{documents-events-Cd-1x5Ed.js → documents-events-COSAPFkC.js} +1 -1
  176. package/dist/public/assets/{download-QOlmqXQ8.js → download-Bq4sKAdj.js} +1 -1
  177. package/dist/public/assets/{dropdown-menu-DRytYgB4.js → dropdown-menu-BhMtMvZp.js} +1 -1
  178. package/dist/public/assets/{ebnfDiagram-CCIWWBDH-CSOwp-KN.js → ebnfDiagram-CCIWWBDH-BWiN4nWj.js} +1 -1
  179. package/dist/public/assets/{erDiagram-Q63AITRT-CulC3etm.js → erDiagram-Q63AITRT-5GE6Syx5.js} +1 -1
  180. package/dist/public/assets/eventmodeling-45OFAUF4-GQ05Sah7.js +1 -0
  181. package/dist/public/assets/{eye-CArKS_Md.js → eye-DYUvwA0Z.js} +1 -1
  182. package/dist/public/assets/field-DN11CYjs.js +1 -0
  183. package/dist/public/assets/{file-tree-adapter-DbXLXHhN.js → file-tree-adapter-B9dmiTPy.js} +1 -1
  184. package/dist/public/assets/{file-tree-utils-DfeUmuaf.js → file-tree-utils-CvsKsHRh.js} +1 -1
  185. package/dist/public/assets/flowDiagram-23GEKE2U-CwO12b-s.js +1 -0
  186. package/dist/public/assets/{folder-DxrU2PLH.js → folder-Cnftw7jd.js} +1 -1
  187. package/dist/public/assets/{folder-config-api-C3YTmDwB.js → folder-config-api-IGZhtkRo.js} +1 -1
  188. package/dist/public/assets/{folder-open-ee990ToL.js → folder-open-DoQalFip.js} +1 -1
  189. package/dist/public/assets/follow-file-CWSsUd-S.js +1 -0
  190. package/dist/public/assets/{ganttDiagram-NO4QXBWP-iVPMtR6h.js → ganttDiagram-NO4QXBWP-DGnL6oh-.js} +1 -1
  191. package/dist/public/assets/gherkin-DHKdvgzn.js +1 -0
  192. package/dist/public/assets/{git-branch-B0WeYwW-.js → git-branch-BWBPTGqT.js} +1 -1
  193. package/dist/public/assets/gitGraph-TEB2WS4Q-Da8kWWZb.js +1 -0
  194. package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-DdI0uf23.js → gitGraphDiagram-IHSO6WYX-mMfBO0xv.js} +1 -1
  195. package/dist/public/assets/{globals-DyXnUQBm.js → globals-C-kRTFCu.js} +2 -2
  196. package/dist/public/assets/globals-D9Q1kf3c.css +1 -0
  197. package/dist/public/assets/{graphlib-2sje7ygs.js → graphlib-CS7i3af0.js} +1 -1
  198. package/dist/public/assets/{hash-CDGtqqEo.js → hash-BZXl_HqD.js} +1 -1
  199. package/dist/public/assets/{highlighted-body-OFNGDK62-nVG7xLpg.js → highlighted-body-OFNGDK62-Bc_b2HT_.js} +1 -1
  200. package/dist/public/assets/history-BNEST2Cx.js +1 -0
  201. package/dist/public/assets/html-void-elements-Bkr32DGT.js +1 -0
  202. package/dist/public/assets/i18n-CIRn0AvV.js +1 -0
  203. package/dist/public/assets/index-Dmlpu4P1.js +2097 -0
  204. package/dist/public/assets/info-DKCQHKI2-BPZv5cfZ.js +1 -0
  205. package/dist/public/assets/{info-BnJuC0vW.js → info-Jj1j2YxC.js} +1 -1
  206. package/dist/public/assets/{infoDiagram-FWYZ7A6U-CCLCXbok.js → infoDiagram-FWYZ7A6U-DuU1GDQ6.js} +1 -1
  207. package/dist/public/assets/{input-group-BgDCDWUR.js → input-group-H-ZoGiXT.js} +1 -1
  208. package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-DYNfj8DM.js → ishikawaDiagram-FXEZZL3T-Bg0KJFCj.js} +1 -1
  209. package/dist/public/assets/{journeyDiagram-5HDEW3XC-D3IdBiiM.js → journeyDiagram-5HDEW3XC-DLWkGhNH.js} +1 -1
  210. package/dist/public/assets/{kanban-definition-HUTT4EX6-CF_ZN-jM.js → kanban-definition-HUTT4EX6-BhYGhRMu.js} +1 -1
  211. package/dist/public/assets/lib-BHGXbMkc.js +9 -0
  212. package/dist/public/assets/lib-DcrRfjuF.js +29 -0
  213. package/dist/public/assets/{line-BA7emVey.js → line-e19R8FCM.js} +1 -1
  214. package/dist/public/assets/{linear-CUFA2OWO.js → linear-a82bFSBJ.js} +1 -1
  215. package/dist/public/assets/{lint-config-client-CeUWUhyK.js → lint-config-client-DkwFMG_T.js} +1 -1
  216. package/dist/public/assets/list-plus-IYEFhKGU.js +1 -0
  217. package/dist/public/assets/loader-circle-Coob8S41.js +1 -0
  218. package/dist/public/assets/{local-menu-action-bus-iy6v2osW.js → local-menu-action-bus-DLozq_c4.js} +1 -1
  219. package/dist/public/assets/{map-DbAr_xa0.js → map-il90ypLM.js} +1 -1
  220. package/dist/public/assets/markdownlint-rule-browser-DY5CRVFm.js +1 -0
  221. package/dist/public/assets/mascot-outline-CtS592mc.js +1 -0
  222. package/dist/public/assets/mcp-consent-store-B_Tog3LX.js +1 -0
  223. package/dist/public/assets/mermaid-GHXKKRXX-CaB-_LCR.js +1 -0
  224. package/dist/public/assets/{mermaid-parser.core-B8FUrn7y.js → mermaid-parser.core-ueh8mdU-.js} +2 -2
  225. package/dist/public/assets/{mermaid.core-gcfl0bT0.js → mermaid.core-RZ5le45c.js} +3 -3
  226. package/dist/public/assets/messages-6Fd7I7zn.js +1 -0
  227. package/dist/public/assets/messages-BJIB1I1L.js +1 -0
  228. package/dist/public/assets/messages-BOXmrfhw.js +1 -0
  229. package/dist/public/assets/messages-BeOM8jWl.js +1 -0
  230. package/dist/public/assets/messages-CCWKIebo.js +1 -0
  231. package/dist/public/assets/messages-CQFityfC.js +1 -0
  232. package/dist/public/assets/messages-CzRXVtjz.js +1 -0
  233. package/dist/public/assets/messages-DYiuNk7y.js +1 -0
  234. package/dist/public/assets/messages-Db5U-G1d.js +1 -0
  235. package/dist/public/assets/messages-DohtKbKM.js +1 -0
  236. package/dist/public/assets/messages-WWFblTuV.js +1 -0
  237. package/dist/public/assets/{mindmap-definition-LN4V7U3C-9ySd_DkR.js → mindmap-definition-LN4V7U3C-Bcv7y0kn.js} +1 -1
  238. package/dist/public/assets/minus-DPAjfzCa.js +1 -0
  239. package/dist/public/assets/{miss-dialog-store-B3cHkf8G.js → miss-dialog-store--ihxgGwV.js} +1 -1
  240. package/dist/public/assets/navigation-targets-DKe7BSku.js +1 -0
  241. package/dist/public/assets/{now-B4vxsI1S.js → now-CZywS9tX.js} +1 -1
  242. package/dist/public/assets/{open-managed-artifact-tab-DN3NM6Ff.js → open-managed-artifact-tab-DGO7syz6.js} +1 -1
  243. package/dist/public/assets/{ordinal-Cfxeoxe-.js → ordinal-Bj6MlRdi.js} +1 -1
  244. package/dist/public/assets/packet-7NZHBO7P-BtkfuFQU.js +1 -0
  245. package/dist/public/assets/{panel-right-open-Cc56I_GE.js → panel-right-open-BhUOm1Eq.js} +1 -1
  246. package/dist/public/assets/{paperclip-D7KMFbO9.js → paperclip-9gdTBktj.js} +1 -1
  247. package/dist/public/assets/{pegDiagram-2B236MQR-cNCSiNUP.js → pegDiagram-2B236MQR-Du6F68bP.js} +1 -1
  248. package/dist/public/assets/{pending-receive-nav-store-B4JTMHp-.js → pending-receive-nav-store-SZ8w-xKW.js} +1 -1
  249. package/dist/public/assets/pie-RZYD4A2V-DipSPJ4R.js +1 -0
  250. package/dist/public/assets/{pieDiagram-ENE6RG2P-C2bxi6W1.js → pieDiagram-ENE6RG2P-Du-eEA1d.js} +1 -1
  251. package/dist/public/assets/project-paths-fLhDAPyF.js +1 -0
  252. package/dist/public/assets/prop-types-DoONHMUn.js +1 -0
  253. package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-C8AftH1G.js → quadrantDiagram-ABIIQ3AL-NefyxxyK.js} +1 -1
  254. package/dist/public/assets/radar-I7S5WNFK-CsW1Ke6j.js +1 -0
  255. package/dist/public/assets/railroad-3IZDKUUU-CDGYvuvs.js +1 -0
  256. package/dist/public/assets/railroad-abnf-AHOZXSZD-IJHoKQ5T.js +1 -0
  257. package/dist/public/assets/railroad-ebnf-EBAXGLYW-DiwXL3Zg.js +1 -0
  258. package/dist/public/assets/railroad-peg-LSFZ7HO6-B4tduAeK.js +1 -0
  259. package/dist/public/assets/{railroadDiagram-RFXS5EU6-CZh61tJk.js → railroadDiagram-RFXS5EU6-CN_1Ywzn.js} +1 -1
  260. package/dist/public/assets/receive-store-BvkW9HUo.js +2 -0
  261. package/dist/public/assets/{refresh-cw-DGLnzhho.js → refresh-cw-REpEMEB2.js} +1 -1
  262. package/dist/public/assets/{requirementDiagram-TGXJPOKE-CQLu3M38.js → requirementDiagram-TGXJPOKE-bDLvkWBT.js} +1 -1
  263. package/dist/public/assets/{sankeyDiagram-HTMAVEWB-Bjus_sTX.js → sankeyDiagram-HTMAVEWB-CyhjQEet.js} +1 -1
  264. package/dist/public/assets/schema-fields-view-intent-DZFjFt0c.js +1 -0
  265. package/dist/public/assets/{select-BU4xT6VN.js → select-CRztynyQ.js} +1 -1
  266. package/dist/public/assets/{selection-context-CHSH5Ljn.js → selection-context-CSP8zK1H.js} +1 -1
  267. package/dist/public/assets/separator-k0mwGcaM.js +1 -0
  268. package/dist/public/assets/{sequenceDiagram-DBY2YBRQ-BR7Ay_cV.js → sequenceDiagram-DBY2YBRQ-BeYilBxj.js} +1 -1
  269. package/dist/public/assets/{sizeCapture-X5ZJPWSS-B6c4PqMD.js → sizeCapture-X5ZJPWSS-Mb3J__hm.js} +1 -1
  270. package/dist/public/assets/skill-actions-98H3SnCL.js +2 -0
  271. package/dist/public/assets/{skill-scope-CEtnfeg4.js → skill-scope-Dr7iwSW3.js} +1 -1
  272. package/dist/public/assets/skills-api-qDbnaMmu.js +1 -0
  273. package/dist/public/assets/{square-pen-CEIus1aL.js → square-pen-D3oI-YUs.js} +1 -1
  274. package/dist/public/assets/{src-BFmudBKQ.js → src-DT86yydp.js} +1 -1
  275. package/dist/public/assets/{src-BtmmehSp.js → src-VcUCSe0b.js} +2 -2
  276. package/dist/public/assets/{stateDiagram-2N3HPSRC-DJmlM8IW.js → stateDiagram-2N3HPSRC-D0WNjYjx.js} +1 -1
  277. package/dist/public/assets/stateDiagram-v2-6OUMAXLB-NccT1PAw.js +1 -0
  278. package/dist/public/assets/{swimlanes-5IMT3BWC-D8ijXWBf.js → swimlanes-5IMT3BWC-BAPdgrYU.js} +2 -2
  279. package/dist/public/assets/swimlanesDiagram-G3AALYLV-CIDy7tZE.js +8 -0
  280. package/dist/public/assets/{tag-pill-input-DFIdRT0e.js → tag-pill-input-pBac7WXR.js} +1 -1
  281. package/dist/public/assets/{target-navigation-intent-2M1YK6Wd.js → target-navigation-intent-DAyeqt__.js} +1 -1
  282. package/dist/public/assets/{telemetry-impl-V8ZB0k7Y.js → telemetry-impl-C9jF13xo.js} +2 -2
  283. package/dist/public/assets/{telemetry-startup-Dww4VvEI.js → telemetry-startup-1DamiHqT.js} +1 -1
  284. package/dist/public/assets/terminal-command-events-BBYZtptJ.js +1 -0
  285. package/dist/public/assets/terminal-launch-events-CIULxHeu.js +1 -0
  286. package/dist/public/assets/terminal-mGTI25Qq.js +1 -0
  287. package/dist/public/assets/{terminal-telemetry-CS_Zz_F-.js → terminal-telemetry-CqkILJJU.js} +1 -1
  288. package/dist/public/assets/text-viewer-languages-BTzKrM_y.js +2 -0
  289. package/dist/public/assets/thread-client-DSDduEdo.js +1 -0
  290. package/dist/public/assets/{timeline-definition-FHXFAJF6-DwBMj07Z.js → timeline-definition-FHXFAJF6-BnIpQBQO.js} +1 -1
  291. package/dist/public/assets/{trash-2-Ccq_llrY.js → trash-2-BSr7FcE8.js} +1 -1
  292. package/dist/public/assets/treeView-QDETBFTQ-DCy4i-OI.js +1 -0
  293. package/dist/public/assets/treemap-6X3UGDF4-BrUnfA75.js +1 -0
  294. package/dist/public/assets/{triangle-alert-V8YoC6ss.js → triangle-alert-DNTyNeem.js} +1 -1
  295. package/dist/public/assets/typing-burst-detector-BOmjXV-P.js +8 -0
  296. package/dist/public/assets/{undo-2-bYFSgQwb.js → undo-2-u9f9OoCF.js} +1 -1
  297. package/dist/public/assets/uninstall-36twrq5C.js +1 -0
  298. package/dist/public/assets/{use-activity-panel-B0DFdV4C.js → use-activity-panel-BwANCYjg.js} +1 -1
  299. package/dist/public/assets/{use-collab-url-CMgoqd7H.js → use-collab-url-TKpnPAW8.js} +1 -1
  300. package/dist/public/assets/{use-live-xterm-theme-KGb9fc_e.js → use-live-xterm-theme-B8OPZLR3.js} +1 -1
  301. package/dist/public/assets/{use-open-skill-DhpKvkHk.js → use-open-skill-DCSEJ3jJ.js} +1 -1
  302. package/dist/public/assets/use-settings-route-CKMxexs3.js +1 -0
  303. package/dist/public/assets/{use-skill-directory-CLM2VHZh.js → use-skill-directory-D9S5f8By.js} +1 -1
  304. package/dist/public/assets/{use-skill-origin-DxVRIW_T.js → use-skill-origin-8_nwflm6.js} +1 -1
  305. package/dist/public/assets/use-skills-D5kEHDif.js +1 -0
  306. package/dist/public/assets/{use-terminal-enabled-DTsNSKJU.js → use-terminal-enabled-Ctosnrg_.js} +1 -1
  307. package/dist/public/assets/{use-timeline-entry-diff-Cj4GIfcv.js → use-timeline-entry-diff-CB_cI1yy.js} +4 -4
  308. package/dist/public/assets/use-workspace--QTATo27.js +1 -0
  309. package/dist/public/assets/{vennDiagram-L72KCM5P-DZxwOiUn.js → vennDiagram-L72KCM5P-C38RYC28.js} +1 -1
  310. package/dist/public/assets/wardley-OPB4EBWU-yXijkZ08.js +1 -0
  311. package/dist/public/assets/{wardleyDiagram-EHGQE667-D44Ff-nh.js → wardleyDiagram-EHGQE667-B0VRsKo1.js} +1 -1
  312. package/dist/public/assets/workspace-paths-EgbOaHls.js +1 -0
  313. package/dist/public/assets/{wrench-D8b4qpCM.js → wrench-BPXVnAE5.js} +1 -1
  314. package/dist/public/assets/x-COTyTduF.js +1 -0
  315. package/dist/public/assets/{xychartDiagram-FW5EYKEG-B_4MyxsA.js → xychartDiagram-FW5EYKEG-jAQK9E85.js} +1 -1
  316. package/dist/public/index.html +160 -130
  317. package/dist/public/uninstall.html +19 -15
  318. package/dist/{repair-launch-json-Dv7Lnj9v.mjs → repair-launch-json-Cq9ghST3.mjs} +2 -2
  319. package/dist/{repair-mcp-configs-Wiccuwea.mjs → repair-mcp-configs-DY0FS2-y.mjs} +2 -2
  320. package/dist/{repair-skills-QLgUXS7O.mjs → repair-skills-CkZZbtNk.mjs} +2 -2
  321. package/dist/repair-skills-l9Id0gzv.mjs +1 -0
  322. package/dist/schemas/v0/config.user.schema.json +38 -0
  323. package/dist/{server-lock-DsDrc4RU.mjs → server-lock-BleUv9m0.mjs} +2 -2
  324. package/dist/server-lock-uucDARDL.mjs +1 -0
  325. package/dist/{skill-teardown-Cj1-Y6iS.mjs → skill-teardown-CZnemDLF.mjs} +2 -2
  326. package/dist/{sleep-ByqzSHar.mjs → sleep-DVOInM4H.mjs} +5 -5
  327. package/dist/{src-azBs1EPY.mjs → src-9BFQh559.mjs} +127 -127
  328. package/dist/src-9I3GiOoK.mjs +2032 -0
  329. package/dist/{src-B9TR_wSW.mjs → src-Dl8P6sfz.mjs} +7 -7
  330. package/dist/src-h5dDPK2z.mjs +1 -0
  331. package/dist/start-BYY0acPS.mjs +1 -0
  332. package/dist/{start-BzOb2Q7k.mjs → start-C4KuZHu5.mjs} +3 -3
  333. package/dist/{write-project-skill-B77kdJNQ.mjs → write-project-skill-WXZSbQlg.mjs} +2 -2
  334. package/package.json +4 -4
  335. package/dist/constants-PCQO1EGt.mjs +0 -2
  336. package/dist/fs-traced-WMTb98_i.mjs +0 -1
  337. package/dist/git-handle-CtdWfsLv.mjs +0 -1
  338. package/dist/init-D38fj6bo.mjs +0 -1
  339. package/dist/loader-BkHXK7KD.mjs +0 -1
  340. package/dist/md-manager-C54e9m9K.mjs +0 -2
  341. package/dist/preview-B1SJHxOP.mjs +0 -1
  342. package/dist/public/assets/BugReportHistory-C_4-NQ-j.js +0 -1
  343. package/dist/public/assets/ChangedOutsideBadge-CazpgqWA.js +0 -1
  344. package/dist/public/assets/CodeMirrorPropInput-B98kUaCj.js +0 -3
  345. package/dist/public/assets/DocumentContext-BeNSZPYG.js +0 -38
  346. package/dist/public/assets/FeedbackForm-DijnhbeO.js +0 -1
  347. package/dist/public/assets/ManagedArtifactProperties-CM6O_XVV.js +0 -2
  348. package/dist/public/assets/ManagedArtifactProperties-DUFF_4AB.js +0 -1
  349. package/dist/public/assets/SchemaConfigEditor-KkMUeDV5.js +0 -1
  350. package/dist/public/assets/SessionsHost-CH5jffAG.js +0 -2
  351. package/dist/public/assets/SettingsDialogBody--nklwAG-.js +0 -12
  352. package/dist/public/assets/SkillToolbarControls-U1QWzi0I.js +0 -1
  353. package/dist/public/assets/SourceEditor-DtuqTQRl.js +0 -1
  354. package/dist/public/assets/TerminalPanel-BElaeDzL.js +0 -146
  355. package/dist/public/assets/ThreadView-CQqlZmdN.js +0 -6
  356. package/dist/public/assets/agent-visibility-Dz506quD.js +0 -1
  357. package/dist/public/assets/architecture-TIHT7OUA-Bu3B2Eu7.js +0 -1
  358. package/dist/public/assets/arrow-up-right-Gp4MuO-g.js +0 -1
  359. package/dist/public/assets/auth-state-cache-epurX430.js +0 -11
  360. package/dist/public/assets/channel-BBYqtvcN.js +0 -1
  361. package/dist/public/assets/check-DLRoQSSY.js +0 -1
  362. package/dist/public/assets/chevron-left-BRFq0qcJ.js +0 -1
  363. package/dist/public/assets/chevron-right-BjiB8LDf.js +0 -1
  364. package/dist/public/assets/chunk-2Q5K7J3B-DeGCwTid.js +0 -1
  365. package/dist/public/assets/chunk-VAUOI2AC-B4WVYMGW.js +0 -1
  366. package/dist/public/assets/chunk-XXDRQBXY-DjPNLLex.js +0 -1
  367. package/dist/public/assets/classDiagram-OUVF2IWQ-CusZeKDE.js +0 -1
  368. package/dist/public/assets/classDiagram-v2-EOCWNBFH-3Dd_UHkU.js +0 -1
  369. package/dist/public/assets/client-version-C9zQ1Cba.js +0 -1
  370. package/dist/public/assets/comment-chips-Da14zLsr.js +0 -7
  371. package/dist/public/assets/config-provider-NjnhDMPo.js +0 -4
  372. package/dist/public/assets/cynefin-VYW2F7L2-Dh2yc-Yt.js +0 -1
  373. package/dist/public/assets/dist-DOPRKSzO2.js +0 -586
  374. package/dist/public/assets/eventmodeling-45OFAUF4-CoqTTBqG.js +0 -1
  375. package/dist/public/assets/field-iFofWrdC.js +0 -1
  376. package/dist/public/assets/flowDiagram-23GEKE2U-BKkbdW0r.js +0 -1
  377. package/dist/public/assets/follow-file-Bi4vCCLt.js +0 -1
  378. package/dist/public/assets/gitGraph-TEB2WS4Q-D2tde3MB.js +0 -1
  379. package/dist/public/assets/globals-Bl3fKb9V.css +0 -1
  380. package/dist/public/assets/index-OWoDTcDq.js +0 -2092
  381. package/dist/public/assets/info-DKCQHKI2-DIQGY0RW.js +0 -1
  382. package/dist/public/assets/lib-CtlgmvnR.js +0 -29
  383. package/dist/public/assets/loader-circle-B0OUuKph.js +0 -1
  384. package/dist/public/assets/markdownlint-rule-browser-DfPiRgim.js +0 -1
  385. package/dist/public/assets/mcp-consent-store-Dz4H-8gV.js +0 -1
  386. package/dist/public/assets/mermaid-GHXKKRXX-uJrCvmwj.js +0 -1
  387. package/dist/public/assets/minus-CKcpBpdR.js +0 -1
  388. package/dist/public/assets/navigation-targets-DxC4QM5f.js +0 -1
  389. package/dist/public/assets/packet-7NZHBO7P-C6h6PguP.js +0 -1
  390. package/dist/public/assets/pie-RZYD4A2V-BgsL62qC.js +0 -1
  391. package/dist/public/assets/project-paths--7l9Mqe-.js +0 -1
  392. package/dist/public/assets/prop-types-BC9HEC35.js +0 -1
  393. package/dist/public/assets/radar-I7S5WNFK-2Fukjsh1.js +0 -1
  394. package/dist/public/assets/railroad-3IZDKUUU-BXQstaOW.js +0 -1
  395. package/dist/public/assets/railroad-abnf-AHOZXSZD-D4DJxFB6.js +0 -1
  396. package/dist/public/assets/railroad-ebnf-EBAXGLYW-B9wL5Mgq.js +0 -1
  397. package/dist/public/assets/railroad-peg-LSFZ7HO6-TRaMzMt0.js +0 -1
  398. package/dist/public/assets/receive-store-BCddK7iB.js +0 -2
  399. package/dist/public/assets/schema-fields-view-intent-Df0KnOO8.js +0 -1
  400. package/dist/public/assets/separator-C4EdGs_S.js +0 -1
  401. package/dist/public/assets/skill-actions-qtoCUe9u.js +0 -2
  402. package/dist/public/assets/skills-api-Bt6QqZxu.js +0 -1
  403. package/dist/public/assets/stateDiagram-v2-6OUMAXLB-DJeEhrn3.js +0 -1
  404. package/dist/public/assets/swimlanesDiagram-G3AALYLV-D5vkX5fS.js +0 -8
  405. package/dist/public/assets/terminal-launch-events-C2Gz2G0L.js +0 -1
  406. package/dist/public/assets/text-viewer-languages-DEjz8Rlz.js +0 -2
  407. package/dist/public/assets/thread-client-BVh92ozO.js +0 -1
  408. package/dist/public/assets/treeView-QDETBFTQ-DItjR5Rl.js +0 -1
  409. package/dist/public/assets/treemap-6X3UGDF4-D1JSLPGs.js +0 -1
  410. package/dist/public/assets/typing-burst-detector-DKVkQeXL.js +0 -8
  411. package/dist/public/assets/uninstall-iZnahGQ3.js +0 -1
  412. package/dist/public/assets/use-settings-route-ClTq87t7.js +0 -1
  413. package/dist/public/assets/use-skills-CDcSIIym.js +0 -1
  414. package/dist/public/assets/use-workspace-BNdbTGXU.js +0 -1
  415. package/dist/public/assets/wardley-OPB4EBWU-BEy33__G.js +0 -1
  416. package/dist/public/assets/x-B3zGPHCO.js +0 -1
  417. package/dist/repair-skills-DHPneNpJ.mjs +0 -1
  418. package/dist/server-lock-BoNixvAi.mjs +0 -1
  419. package/dist/src-DIjYfcIb.mjs +0 -1
  420. package/dist/src-DoSxfvJP.mjs +0 -2030
  421. package/dist/start-DLsDkcBf.mjs +0 -1
  422. /package/dist/public/assets/{ActivityPanelDiffView-DZrMHlZH.js → ActivityPanelDiffView-aQoOngI6.js} +0 -0
  423. /package/dist/public/assets/{SkillModeBanner-DFgrdWyf.js → SkillModeBanner-Y5LYtJrC.js} +0 -0
  424. /package/dist/public/assets/{__vite-browser-external-CL4duhlG.js → __vite-browser-external-6FU8ctEn.js} +0 -0
  425. /package/dist/public/assets/{agent-presence-C8KjkxgZ.js → agent-presence-DntZZFlY.js} +0 -0
  426. /package/dist/public/assets/{array-DRGYhAwX.js → array-Ce922FV9.js} +0 -0
  427. /package/dist/public/assets/{asset-dispatch-O9x3rXhj.js → asset-dispatch-Dst62kKY.js} +0 -0
  428. /package/dist/public/assets/{auth-prompt-store-DQ_HcDxh.js → auth-prompt-store-B92v76dM.js} +0 -0
  429. /package/dist/public/assets/{badge-CnYDYmI5.js → badge-B89o8Vy9.js} +0 -0
  430. /package/dist/public/assets/{chunk-KEIR6QF5-CTDrJ2_V.js → chunk-KEIR6QF5-88h2AcFS.js} +0 -0
  431. /package/dist/public/assets/{chunk-Y2CYZVJY-WQQLMo_s.js → chunk-Y2CYZVJY-B-DQ9l1H.js} +0 -0
  432. /package/dist/public/assets/{clike-BfpXCH0g.js → clike-DDeLLKpf.js} +0 -0
  433. /package/dist/public/assets/{clipboard-adapter-DPkNOslT.js → clipboard-adapter-C4L1qX1X.js} +0 -0
  434. /package/dist/public/assets/{colors-BY0RBIvp.js → colors-DXv_7g0X.js} +0 -0
  435. /package/dist/public/assets/{copilot-CuzHDCzI.js → copilot-qpaFt06v.js} +0 -0
  436. /package/dist/public/assets/{createLucideIcon-BbgVV4EV.js → createLucideIcon-BbftclCc.js} +0 -0
  437. /package/dist/public/assets/{cursor-W0skD8YU.js → cursor-Df-vt--2.js} +0 -0
  438. /package/dist/public/assets/{cytoscape.esm-Ck6hca6m.js → cytoscape.esm-61X9Wf4W.js} +0 -0
  439. /package/dist/public/assets/{defaultLocale-C9lDPH35.js → defaultLocale-BypL9rsE.js} +0 -0
  440. /package/dist/public/assets/{desktop-bridge-types-BwR5S9HF.js → desktop-bridge-types-BjBBs_pU.js} +0 -0
  441. /package/dist/public/assets/{diff-CvjWTdgS.js → diff-CUOV9XAb.js} +0 -0
  442. /package/dist/public/assets/{dist-CTHTGkF4.js → dist-BSzXg9wc.js} +0 -0
  443. /package/dist/public/assets/{dist-zYQJXuRH.js → dist-BlH6jxEE.js} +0 -0
  444. /package/dist/public/assets/{dist-CpRBr-Ct.js → dist-C7IFraT6.js} +0 -0
  445. /package/dist/public/assets/{dist-DmEZHXvB.js → dist-CEwo98ia.js} +0 -0
  446. /package/dist/public/assets/{dist-DIZJMUWy.js → dist-CG-e4AlS.js} +0 -0
  447. /package/dist/public/assets/{documents-fetch-DK-kdvYE.js → documents-fetch-BTUkzxjd.js} +0 -0
  448. /package/dist/public/assets/{external-link-COF7NUCm.js → external-link-BkNoUOYg.js} +0 -0
  449. /package/dist/public/assets/{file-tree-rename-validation-DEz_ryBu.js → file-tree-rename-validation-CEz8MVWM.js} +0 -0
  450. /package/dist/public/assets/{form-CGbOgaUs.js → form-WTEKK5Th.js} +0 -0
  451. /package/dist/public/assets/{format-CFFWVvag.js → format-C7y0e043.js} +0 -0
  452. /package/dist/public/assets/{go-D-9nxjMR.js → go-C7e4ztpP.js} +0 -0
  453. /package/dist/public/assets/{init-Dpr8Tcj2.js → init-DQ9T43b9.js} +0 -0
  454. /package/dist/public/assets/{input-CtKG6a5B.js → input-BKUcczSW.js} +0 -0
  455. /package/dist/public/assets/{isObject-B_BLuINR.js → isObject-B3vD71ho.js} +0 -0
  456. /package/dist/public/assets/{katex-7OG0ksww.js → katex-BE6VA85g.js} +0 -0
  457. /package/dist/public/assets/{libesm-Dcsy_--i.js → libesm-DLjHMG6S.js} +0 -0
  458. /package/dist/public/assets/{lint-plugin-meta-BnniPb1r.js → lint-plugin-meta-D6yg1VIa.js} +0 -0
  459. /package/dist/public/assets/{lru-string-cache-jJ5hyYK1.js → lru-string-cache-D1rxjuni.js} +0 -0
  460. /package/dist/public/assets/{lua-qAotk3Jg.js → lua-BbsHik3c.js} +0 -0
  461. /package/dist/public/assets/{markdownit-DoX6x6DK.js → markdownit-CIgVFnWs.js} +0 -0
  462. /package/dist/public/assets/{min-CCEG0l64.js → min-LWIJDKXt.js} +0 -0
  463. /package/dist/public/assets/{overlay-layers-CBGNHxJK.js → overlay-layers-BqWhClsR.js} +0 -0
  464. /package/dist/public/assets/{panel-UxAkffLp.js → panel-CbGx_cRv.js} +0 -0
  465. /package/dist/public/assets/{panzoom.es-H6kNXvjN.js → panzoom.es-CnTJleIF.js} +0 -0
  466. /package/dist/public/assets/{parse-api-error-BFe1cdS7.js → parse-api-error-Cyn4P6OR.js} +0 -0
  467. /package/dist/public/assets/{path-56QyJhyg.js → path-CdhP4z-N.js} +0 -0
  468. /package/dist/public/assets/{pdf-CYHvv2Oq.js → pdf-CvpTyCsQ.js} +0 -0
  469. /package/dist/public/assets/{pdf.worker-B8Ju19hh.js → pdf.worker-Dwl0H-tq.js} +0 -0
  470. /package/dist/public/assets/{perl-E4P7BXaC.js → perl-B_IBZ74F.js} +0 -0
  471. /package/dist/public/assets/{properties-DXHbGwrb.js → properties-DC2eg36q.js} +0 -0
  472. /package/dist/public/assets/{r-DCDstkyG.js → r-Cuws8T_X.js} +0 -0
  473. /package/dist/public/assets/{rough.esm-DE_lJ5Ge.js → rough.esm-Bmw38t74.js} +0 -0
  474. /package/dist/public/assets/{ruby-DeKk3LV3.js → ruby-B4Exyfkx.js} +0 -0
  475. /package/dist/public/assets/{share-metadata-rows-B1YjvGbL.js → share-metadata-rows-a0ScdR3d.js} +0 -0
  476. /package/dist/public/assets/{shell-BRtU48Yb.js → shell-DA6f2ert.js} +0 -0
  477. /package/dist/public/assets/{skeleton-DS8zjX9Q.js → skeleton-ColtBPsg.js} +0 -0
  478. /package/dist/public/assets/{sortable.esm-BT6d9PDz.js → sortable.esm-DlAqBM0z.js} +0 -0
  479. /package/dist/public/assets/{sql-XsKG_-B3.js → sql-gKfhysbI.js} +0 -0
  480. /package/dist/public/assets/{src-DLd5TgYd.js → src-l8acH7-t.js} +0 -0
  481. /package/dist/public/assets/{startup-marks-BJYEMeGu.js → startup-marks-BzFN1cqP.js} +0 -0
  482. /package/dist/public/assets/{stex-B3qxBOBU.js → stex-CyLY7DTo.js} +0 -0
  483. /package/dist/public/assets/{swift-CGhDVaQR.js → swift-D4PiCeXt.js} +0 -0
  484. /package/dist/public/assets/{textarea-CUVLEZhx.js → textarea-C5-cm3M6.js} +0 -0
  485. /package/dist/public/assets/{thread-draft-staging-BXLyxk1u.js → thread-draft-staging-DZhf3sQU.js} +0 -0
  486. /package/dist/public/assets/{timeline-diff-store-sC1fl4YV.js → timeline-diff-store-BpUHW_Yp.js} +0 -0
  487. /package/dist/public/assets/{toml-DkvxgD0C.js → toml-BAg1ozw3.js} +0 -0
  488. /package/dist/public/assets/{use-installed-clis-B7_xP0xS.js → use-installed-clis-CsPJ2Mod.js} +0 -0
  489. /package/dist/public/assets/{useLintConfigViewMode-C3vaXrG0.js → useLintConfigViewMode-shAfv89B.js} +0 -0
@@ -1,13 +1,13 @@
1
- import{o as e}from"./chunk-DTipWd-i.mjs";import{Y as t}from"./sleep-ByqzSHar.mjs";import{Ts as n,Vo as r,X as i,Z as a,ws as o}from"./src-azBs1EPY.mjs";import{Vr as s,at as c,it as l,li as u,ot as d,rt as f,vn as p,wa as m}from"./src-DoSxfvJP.mjs";import{O as h,P as g}from"./fs-traced-Cq61rC8q.mjs";import{S as _,u as v,v as y,x as b}from"./server-lock-DsDrc4RU.mjs";import{t as x}from"./yazl-DZr4PyKA.mjs";import{_ as S,g as C,i as w,s as ee,x as te}from"./write-project-skill-B77kdJNQ.mjs";import{c as ne}from"./colors-BsmVIwfM.mjs";import"./acp-harness-probe-D3WKP8RS.mjs";import{D as T,E,S as re,T as D,_ as O,b as ie,o as ae,v as k}from"./init-CIx--I41.mjs";import{n as A}from"./constants-PCQO1EGt.mjs";import{t as j}from"./is-object-ByG7RnjH.mjs";import"./loader-BLqQZ5Tv.mjs";import"./skill-teardown-Cj1-Y6iS.mjs";import"./preview-BpDiVSjC.mjs";import{execSync as oe,spawnSync as M}from"node:child_process";import{basename as N,dirname as P,isAbsolute as se,join as F,relative as ce,resolve as I,sep as le}from"node:path";import{cpSync as ue,createWriteStream as de,existsSync as L,lstatSync as fe,mkdirSync as R,mkdtempSync as pe,readFileSync as z,readdirSync as me,readlinkSync as he,rmSync as ge,statSync as _e,writeFileSync as B}from"node:fs";import{arch as ve,freemem as ye,homedir as V,hostname as be,platform as xe,release as Se,tmpdir as Ce,totalmem as we,type as Te,uptime as Ee}from"node:os";import{realpath as H}from"node:fs/promises";import{createHash as De}from"node:crypto";var U=t();const Oe=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function ke(e,t,n=p){if(e!==void 0&&!Oe.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let Ae=null;function je(e){Ae=e}function Me(){return Ae??process.cwd()}function Ne(){return F(V(),`.ok`,`bug-reports`)}function Pe(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=Ne(),r=`${t}-bugreport`,i=F(n,`${r}.zip`);for(let e=2;L(i);e+=1)i=F(n,`${r}-${e}.zip`);return i}function Fe(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let e=z(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return L(F(e,`.ok`))?De(`sha256`).update(I(e)).digest(`hex`).slice(0,12):null}function Ie(){let e={timestamp:new Date().toISOString(),platform:xe(),osType:Te(),osRelease:Se(),hostname:`[redacted]`,uptime:Ee(),freeMem:ye(),totalMem:we(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=oe(`sw_vers -productVersion 2>/dev/null`,s({encoding:`utf8`})).trim()}catch{}try{let t=F(__dirname,`..`,`..`,`package.json`);L(t)&&(e.okVersion=JSON.parse(z(t,`utf8`)).version)}catch{}return e}function Le(e,t){return Re(e,t).files}function Re(e,t){if(!L(t))return{files:[]};let n=me(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>F(t,e));if(e&&n.length>0){let t=n.filter(t=>{try{return z(t,`utf8`).includes(`"project":"${e}"`)}catch{return!0}});t.length>0&&(n=t)}return{files:n}}function ze(e){let t=F(e,`.ok`,`local`);return L(t)?{files:[`server.lock`,`last-spawn-error.log`,i].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Be(e){let t=F(e,`.ok`,`local`,`logs`);return L(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Ve(e){if(e.redact){let{redacted:t,patterns:r,lineCount:i}=n(e.content);e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name),r.length>0&&e.redactions.push({file:e.name,lineCount:i,patterns:r})}else e.zipfile.addBuffer(Buffer.from(e.content,`utf8`),e.name),e.bundleFiles.push(e.name)}function W(e){for(let t of e.files)try{Ve({zipfile:e.zipfile,name:`${e.prefix}/${N(t)}`,content:z(t,`utf8`),redact:e.redact,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function He(t){let{redact:n,outputPath:r,logger:i}=t,a=t.userLogsDir??F(V(),`.ok`,`logs`),s=t.projectDir?Fe(t.projectDir,i):null;R(P(r),{recursive:!0}),i?.info({projectSlug:s},`gathering diagnostic data`);let c=Ie();c.desktop=t.desktop??null;let{files:l}=Re(s,a),{files:u}=t.projectDir?ze(t.projectDir):{files:[]},{files:d}=t.projectDir?Be(t.projectDir):{files:[]};i?.info({logFileCount:l.length,lockFileCount:u.length,localSinkFileCount:d.length},`files collected`);let f=[],p=[],{ZipFile:m}=await import(`./yazl-jVENrf5i.mjs`).then(t=>e(t.default,1)),h=new m;W({zipfile:h,files:l,prefix:`logs`,redact:n,bundleFiles:p,redactions:f,logger:i}),W({zipfile:h,files:u,prefix:`lockdir`,redact:n,bundleFiles:p,redactions:f,logger:i}),W({zipfile:h,files:d,prefix:`local-logs`,redact:n,bundleFiles:p,redactions:f,logger:i});for(let e of t.extraFiles??[])try{let t=z(e.sourcePath),n=`extra/${e.zipName??N(e.sourcePath)}`;h.addBuffer(t,n),p.push(n)}catch(t){i?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&Ve({zipfile:h,name:`note.txt`,content:t.note,redact:n,bundleFiles:p,redactions:f});let g=JSON.stringify(c,null,2);h.addBuffer(Buffer.from(g,`utf8`),`sysinfo.json`),p.push(`sysinfo.json`);let _={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:s,files:p,redactions:f,sysinfo:c};h.addBuffer(Buffer.from(JSON.stringify(_,null,2),`utf8`),`MANIFEST.json`);let v=f.reduce((e,t)=>e+t.lineCount,0),y=[`# Bug Report Bundle`,``,`Generated: ${_.generatedAt}`,`Project: ${s??`(unscoped)`}`,`Discipline version: ${_.disciplineVersion}`,``,`## Contents`,``,...p.map(e=>`- ${e}`),``,`## Privacy`,``,...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${o.join(`, `)}`,v>0?`${v} line(s) were scrubbed across ${f.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,``,`This bundle is safe to attach to a GitHub issue.`]:[`Redaction was disabled for this bundle; file contents are unmodified.`]].join(`
2
- `);h.addBuffer(Buffer.from(y,`utf8`),`README.md`),h.end();let b=de(r);return h.outputStream.pipe(b),await new Promise((e,t)=>{b.on(`close`,e),b.on(`error`,t)}),i?.info({bundlePath:r,fileCount:p.length,redactionCount:v},`bundle written`),{zipPath:r,summary:{projectSlug:s,files:p,redactions:f,redactedLineCount:v,generatedAt:_.generatedAt}}}var Ue=e(x(),1),G=e(ne(),1);function K(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function We(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function q(e,t){if(typeof e==`string`)return K(e,t.contentDir);if(Array.isArray(e))return e.map(e=>q(e,t));if(!We(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=q(i,t);return n}function Ge(e,t){let n=z(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{Y as t}from"./sleep-DVOInM4H.mjs";import{Ds as n,Es as r,Vo as i,X as a,Z as o}from"./src-9BFQh559.mjs";import{Jr as s,Tn as c,at as l,gi as u,it as d,ot as f,rt as p,wa as m}from"./src-9I3GiOoK.mjs";import{O as h,P as g}from"./fs-traced-By5aY-RE.mjs";import{S as _,u as v,v as y,x as b}from"./server-lock-BleUv9m0.mjs";import{t as x}from"./yazl-DZr4PyKA.mjs";import{_ as S,g as C,i as w,s as ee,x as te}from"./write-project-skill-WXZSbQlg.mjs";import{c as ne}from"./colors-BsmVIwfM.mjs";import"./acp-harness-probe-DOXp9Wx4.mjs";import{D as T,E,S as re,T as D,_ as O,b as ie,o as ae,v as k}from"./init-ZOWQ1Th4.mjs";import{n as A}from"./constants-J4-mibQ1.mjs";import{t as j}from"./is-object-ByG7RnjH.mjs";import"./loader-ji3pPcXi.mjs";import"./skill-teardown-CZnemDLF.mjs";import"./preview-2rQXoRuM.mjs";import{execSync as oe,spawnSync as M}from"node:child_process";import{basename as N,dirname as P,isAbsolute as se,join as F,relative as ce,resolve as I,sep as le}from"node:path";import{cpSync as ue,createWriteStream as de,existsSync as L,lstatSync as fe,mkdirSync as R,mkdtempSync as pe,readFileSync as z,readdirSync as me,readlinkSync as he,rmSync as ge,statSync as _e,writeFileSync as B}from"node:fs";import{arch as ve,freemem as ye,homedir as V,hostname as be,platform as xe,release as Se,tmpdir as Ce,totalmem as we,type as Te,uptime as Ee}from"node:os";import{realpath as H}from"node:fs/promises";import{createHash as De}from"node:crypto";var U=t();const Oe=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function ke(e,t,n=c){if(e!==void 0&&!Oe.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let Ae=null;function je(e){Ae=e}function Me(){return Ae??process.cwd()}function Ne(){return F(V(),`.ok`,`bug-reports`)}function Pe(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=Ne(),r=`${t}-bugreport`,i=F(n,`${r}.zip`);for(let e=2;L(i);e+=1)i=F(n,`${r}-${e}.zip`);return i}function Fe(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let e=z(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return L(F(e,`.ok`))?De(`sha256`).update(I(e)).digest(`hex`).slice(0,12):null}function Ie(){let e={timestamp:new Date().toISOString(),platform:xe(),osType:Te(),osRelease:Se(),hostname:`[redacted]`,uptime:Ee(),freeMem:ye(),totalMem:we(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=oe(`sw_vers -productVersion 2>/dev/null`,s({encoding:`utf8`})).trim()}catch{}try{let t=F(__dirname,`..`,`..`,`package.json`);L(t)&&(e.okVersion=JSON.parse(z(t,`utf8`)).version)}catch{}return e}function Le(e,t){return Re(e,t).files}function Re(e,t){if(!L(t))return{files:[]};let n=me(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>F(t,e));if(e&&n.length>0){let t=n.filter(t=>{try{return z(t,`utf8`).includes(`"project":"${e}"`)}catch{return!0}});t.length>0&&(n=t)}return{files:n}}function ze(e){let t=F(e,`.ok`,`local`);return L(t)?{files:[`server.lock`,`last-spawn-error.log`,a].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Be(e){let t=F(e,`.ok`,`local`,`logs`);return L(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Ve(e){if(e.redact){let{redacted:t,patterns:r,lineCount:i}=n(e.content);e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name),r.length>0&&e.redactions.push({file:e.name,lineCount:i,patterns:r})}else e.zipfile.addBuffer(Buffer.from(e.content,`utf8`),e.name),e.bundleFiles.push(e.name)}function W(e){for(let t of e.files)try{Ve({zipfile:e.zipfile,name:`${e.prefix}/${N(t)}`,content:z(t,`utf8`),redact:e.redact,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function He(t){let{redact:n,outputPath:i,logger:a}=t,o=t.userLogsDir??F(V(),`.ok`,`logs`),s=t.projectDir?Fe(t.projectDir,a):null;R(P(i),{recursive:!0}),a?.info({projectSlug:s},`gathering diagnostic data`);let c=Ie();c.desktop=t.desktop??null;let{files:l}=Re(s,o),{files:u}=t.projectDir?ze(t.projectDir):{files:[]},{files:d}=t.projectDir?Be(t.projectDir):{files:[]};a?.info({logFileCount:l.length,lockFileCount:u.length,localSinkFileCount:d.length},`files collected`);let f=[],p=[],{ZipFile:m}=await import(`./yazl-jVENrf5i.mjs`).then(t=>e(t.default,1)),h=new m;W({zipfile:h,files:l,prefix:`logs`,redact:n,bundleFiles:p,redactions:f,logger:a}),W({zipfile:h,files:u,prefix:`lockdir`,redact:n,bundleFiles:p,redactions:f,logger:a}),W({zipfile:h,files:d,prefix:`local-logs`,redact:n,bundleFiles:p,redactions:f,logger:a});for(let e of t.extraFiles??[])try{let t=z(e.sourcePath),n=`extra/${e.zipName??N(e.sourcePath)}`;h.addBuffer(t,n),p.push(n)}catch(t){a?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&Ve({zipfile:h,name:`note.txt`,content:t.note,redact:n,bundleFiles:p,redactions:f});let g=JSON.stringify(c,null,2);h.addBuffer(Buffer.from(g,`utf8`),`sysinfo.json`),p.push(`sysinfo.json`);let _={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:s,files:p,redactions:f,sysinfo:c};h.addBuffer(Buffer.from(JSON.stringify(_,null,2),`utf8`),`MANIFEST.json`);let v=f.reduce((e,t)=>e+t.lineCount,0),y=[`# Bug Report Bundle`,``,`Generated: ${_.generatedAt}`,`Project: ${s??`(unscoped)`}`,`Discipline version: ${_.disciplineVersion}`,``,`## Contents`,``,...p.map(e=>`- ${e}`),``,`## Privacy`,``,...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${r.join(`, `)}`,v>0?`${v} line(s) were scrubbed across ${f.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,``,`This bundle is safe to attach to a GitHub issue.`]:[`Redaction was disabled for this bundle; file contents are unmodified.`]].join(`
2
+ `);h.addBuffer(Buffer.from(y,`utf8`),`README.md`),h.end();let b=de(i);return h.outputStream.pipe(b),await new Promise((e,t)=>{b.on(`close`,e),b.on(`error`,t)}),a?.info({bundlePath:i,fileCount:p.length,redactionCount:v},`bundle written`),{zipPath:i,summary:{projectSlug:s,files:p,redactions:f,redactedLineCount:v,generatedAt:_.generatedAt}}}var Ue=e(x(),1),G=e(ne(),1);function K(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function We(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function q(e,t){if(typeof e==`string`)return K(e,t.contentDir);if(Array.isArray(e))return e.map(e=>q(e,t));if(!We(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=q(i,t);return n}function Ge(e,t){let n=z(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
3
3
  `),i=n.split(`
4
4
  `),a=[];for(let e=0;e<i.length;e++){let n=i[e]??``;if(!(e===i.length-1&&n===``)){if(n.length===0){a.push(``);continue}try{let e=q(JSON.parse(n),t);a.push(JSON.stringify(e))}catch{a.push(n)}}}B(e,r?`${a.join(`
5
5
  `)}\n`:a.join(`
6
6
  `))}function Ke(e,t){let n=z(e,`utf-8`);if(n.trim().length!==0)try{let r=q(JSON.parse(n),t),i=n.endsWith(`
7
7
  `)?`
8
8
  `:``;B(e,`${JSON.stringify(r,null,2)}${i}`)}catch{let r=K(n,t.contentDir);r!==n&&B(e,r)}}function qe(e,t){let n=z(e,`utf-8`),r=K(n,t.contentDir);r!==n&&B(e,r)}function Je(e){try{return me(e,{withFileTypes:!0}).filter(e=>e.isFile()).map(t=>F(e,t.name))}catch{return[]}}const Ye=new Set([`agent-presence.json`,`agent-effects.json`,`runtime.json`]);function Xe(e){return/\.log\.\d+$/.test(e)}function Ze(e){return e.endsWith(`.jsonl`)||e.endsWith(`.log`)||Xe(e)}function Qe(e){let t={contentDir:e.contentDir};for(let n of[`telemetry`,`logs`,`process`])for(let r of Je(F(e.stagingDir,n)))Ze(r)?Ge(r,t):r.endsWith(`.json`)?Ke(r,t):qe(r,t);for(let n of Je(F(e.stagingDir,`state`))){let e=N(n);n.endsWith(`.jsonl`)?Ge(n,t):Ye.has(e)?Ke(n,t):qe(n,t)}}const $e=[`.ok`,`local`,`telemetry`],et=[`.ok`,`local`,`logs`],tt=[`.ok`,`local`,`loss-capture`],nt=`spans-current.jsonl`,rt=`spans-prev.jsonl`,it=`server-current.jsonl`,at=`server-prev.jsonl`,ot=`loss-current.jsonl`,st=`loss-prev.jsonl`;function ct(e){return F(e,...$e,nt)}function lt(e){return F(e,...$e,rt)}function ut(e){return F(e,...et,it)}function dt(e){return F(e,...et,at)}function ft(e){return F(e,...tt,ot)}function pt(e){return F(e,...tt,st)}const mt=1e3;async function ht(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-presence`,{signal:AbortSignal.timeout(mt)});return t.ok?await t.text():null}catch{return null}}async function gt(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/agent-effects`,{signal:AbortSignal.timeout(mt)});return t.ok?await t.text():null}catch{return null}}async function _t(e){try{let t=await fetch(`http://127.0.0.1:${e}/api/metrics/watcher-recent`,{signal:AbortSignal.timeout(mt)});return t.ok?await t.text():null}catch{return null}}function vt(e){try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return null;let n=t.decisions;return Array.isArray(n)?n.length===0?``:`${n.map(e=>JSON.stringify(e)).join(`
9
- `)}\n`:null}catch{return null}}function yt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=M(`git`,[`-C`,t,`log`,`--oneline`,`-50`],s({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function bt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=M(`git`,[`-C`,t,`for-each-ref`,`--sort=-creatordate`,`--count=50`,`--format=%(refname)%09%(creatordate:iso-strict)%09%(contents:subject)`,`refs/checkpoints/`],s({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function xt(){let e=process.env.OK_DESKTOP_VERSION,t=process.env.OK_DESKTOP_PACKAGED,n=process.env.OK_DESKTOP_CHANNEL;return e===void 0||t===void 0||n===void 0?null:{electronVersion:e,packaged:t===`1`||t.toLowerCase()===`true`,channel:n}}function St(){return{nodeVersion:process.version,platform:xe(),arch:ve()}}function Ct(){return process.env.OTEL_SDK_DISABLED===`false`}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function wt(e){if(!L(e))return{};let t;try{t=(0,U.parse)(z(e,`utf-8`))}catch(t){return console.warn(`[ok diagnose bundle] failed to parse ${e} for manifest config; manifest will report schema defaults. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!J(t))return{};let n=t.telemetry;if(!J(n))return{};let r=n.localSink;return J(r)?r:{}}function Tt(e){return typeof e==`boolean`?e:void 0}function Et(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Y(e){if(J(e))return Et(e.maxBytes)}function Dt(e){let t=wt(h(`project`,e)),n=wt(h(`project-local`,e));return{enabled:Tt(n.enabled)??Tt(t.enabled)??!0,spansMaxBytes:Y(n.spans)??Y(t.spans)??52428800,logsMaxBytes:Y(n.logs)??Y(t.logs)??26214400}}function Ot(e){return De(`sha256`).update(e).digest(`hex`)}function kt(e){let t=z(e),n=0;for(let e=0;e<t.length;e++)t[e]===10&&n++;return n}function At(e){let t=z(e,`utf-8`),n=`"doc.name"`,r=0,i=t.indexOf(n);for(;i!==-1;)r++,i=t.indexOf(n,i+10);return r}function X(e,t){if(!L(e))return!1;try{return R(P(t),{recursive:!0}),ue(e,t),!0}catch{return!1}}function jt(e){let t=[],n=e=>{let r=me(e,{withFileTypes:!0});for(let i of r){let r=F(e,i.name);i.isDirectory()?n(r):i.isFile()&&t.push(r)}};return n(e),t.sort()}const Mt=new Set([`.jsonl`]);function Nt(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Mt.has(e.slice(t))}const Pt=new Set([`.jsonl`,`.json`,`.txt`,`.log`,`.lock`]);function Ft(e){if(Xe(e))return!0;let t=e.lastIndexOf(`.`);return t===-1?!1:Pt.has(e.slice(t))}function It(e){let t=[];for(let r of jt(e)){let i=Lt(e,r);if(!Ft(i))continue;let{redacted:a,patterns:o,lineCount:s}=n(z(r,`utf-8`));o.length!==0&&(B(r,a),t.push({file:i,lineCount:s,patterns:o}))}return{redactions:t,redactedLineCount:t.reduce((e,t)=>e+t.lineCount,0)}}function Lt(e,t){return ce(e,t).split(le).join(`/`)}async function Rt(e){let t=I(e.contentDir),n=I(e.projectDir??e.contentDir),r=e.deps??{},o=r.fetchAgentPresence??ht,s=r.fetchAgentEffects??gt,c=r.fetchWatcherRecent??_t,l=r.readShadowHead??yt,u=r.readCheckpointRefs??bt,d=r.now??(()=>new Date),f=r.okVersion??(()=>A),p=r.readDesktopEnv??xt,m=r.readRuntime??St,h=r.isOtlpPushEnabled??Ct,g=pe(F(Ce(),`ok-bundle-`));try{R(F(g,`telemetry`),{recursive:!0}),R(F(g,`logs`),{recursive:!0}),R(F(g,`state`),{recursive:!0}),X(ct(n),F(g,`telemetry`,nt)),X(lt(n),F(g,`telemetry`,rt)),X(ut(n),F(g,`logs`,it)),X(dt(n),F(g,`logs`,at));for(let t of e.userLogFiles??[])X(t,F(g,`logs`,N(t)));let _=F(n,`.ok`,`local`),v=F(_,`server.lock`),y=`not-running`,b=`no server.lock`,x=null;if(L(v)){X(v,F(g,`state`,`server.lock`));try{let e=z(v,`utf-8`),t=JSON.parse(e);typeof t.port==`number`?x=t.port:b=`lock present but no port`}catch{b=`lock present but unparseable`}}if(x!==null){let e=await o(x);e===null?b=`agent-presence endpoint at :${x} unreachable`:(B(F(g,`state`,`agent-presence.json`),e),y=`running`,b=``);let t=await s(x);t!==null&&B(F(g,`state`,`agent-effects.json`),t);let n=await c(x);if(n!==null){let e=vt(n);e!==null&&B(F(g,`state`,`watcher-recent.jsonl`),e)}}let S=l(t);S!==null&&B(F(g,`state`,`shadow-head.txt`),S);let C=u(t);C!==null&&B(F(g,`state`,`checkpoint-refs.txt`),C),X(ft(n),F(g,`state`,ot)),X(pt(n),F(g,`state`,st)),X(F(_,`last-spawn-error.log`),F(g,`state`,`last-spawn-error.log`)),X(F(_,a),F(g,`state`,a)),X(F(_,i),F(g,`state`,i));let w=m(),ee=p(),te={ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:ee}};B(F(g,`state`,`runtime.json`),`${JSON.stringify(te,null,2)}\n`);let ne=y===`running`?`running
10
- `:`not-running (${b})\n`;if(B(F(g,`state`,`server-status.txt`),ne),e.processDir&&L(e.processDir)){let t=F(g,`process`);R(t,{recursive:!0}),ue(e.processDir,t,{recursive:!0})}let T=e.redact===!0;T&&Qe({stagingDir:g,contentDir:t}),e.note&&B(F(g,`note.txt`),e.note);let E=null;e.scrubSecrets===!0&&(E=It(g));for(let t of e.extraFiles??[])X(t.sourcePath,F(g,`extra`,t.zipName??N(t.sourcePath)))||r.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let re=Dt(n),D=jt(g),O=[],ie=0,ae=0;for(let e of D){let t=Lt(g,e),n=_e(e).size,r=Nt(t)?kt(e):0;O.push({path:t,bytes:n,lines:r}),ie+=n,t.startsWith(`telemetry/`)&&Nt(t)&&(ae+=At(e))}let k={applied:T};E!==null&&(k.secretScrub=E);let A={schemaVersion:2,createdAt:d().toISOString(),ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:ee},contentDir:{pathSha256:Ot(t),absolutePath:T?`<CONTENT_DIR>`:t},telemetry:{localSink:re,otlpPushEnabled:h()},redaction:k,serverStatus:y,files:O};B(F(g,`manifest.json`),`${JSON.stringify(A,null,2)}\n`);let j=D.some(e=>{try{return z(e,`utf-8`).includes(t)}catch{return!1}}),oe={totalBytes:ie,fileCount:O.length,docNameCount:ae,contentDirVisible:j,redacted:T},M=!1;return{stagingDir:g,manifest:A,summary:oe,cleanup:()=>{M||(M=!0,ge(g,{recursive:!0,force:!0}))}}}catch(e){throw ge(g,{recursive:!0,force:!0}),e}}async function zt(e){let{collected:t,outputPath:n}=e,r=P(n);if(!L(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);let i=new Ue.ZipFile,a=jt(t.stagingDir);for(let e of a){let n=Lt(t.stagingDir,e);i.addFile(e,n)}i.end();let o=de(n);return i.outputStream.pipe(o),await new Promise((e,t)=>{o.on(`close`,e),o.on(`error`,t),i.outputStream.on(`error`,t)}),n}function Bt(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let t=(0,U.parse)(z(n,`utf-8`)),r=j(t)?t.content:void 0,i=j(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return I(e,i)}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml; falling back to project root as content dir`)}return I(e)}async function Vt(e,t,n){let r=Fe(t,e.logger),i=await Rt({contentDir:Bt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,userLogFiles:Le(r,e.userLogsDir??F(V(),`.ok`,`logs`)),deps:{readDesktopEnv:n,logger:e.logger}});try{R(P(e.outputPath),{recursive:!0}),await zt({collected:i,outputPath:e.outputPath});let t=i.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:r,files:i.manifest.files.map(e=>e.path),redactions:t?.redactions??[],redactedLineCount:t?.redactedLineCount??0,generatedAt:i.manifest.createdAt}}}finally{i.cleanup()}}async function Ht(e){let{projectDir:t}=e,n=e.readDesktopEnv??xt;if(e.level===`full`&&t!==void 0)return Vt(e,t,n);let{zipPath:r,summary:i}=await He({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function Z(e,t,n={}){let r=v(e,t);if(!L(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(z(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!_(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??b)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??y())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??be();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function Ut(e){return e.replace(/:\d+$/,``)}function Wt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function Gt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=r(t.hostname);if(n===null)return null;let i=t.pathname.split(`/`).filter(e=>e.length>0);if(i.length<5||i[2]!==`blob`)return null;let a,o,s,c;try{a=decodeURIComponent(i[0]),o=decodeURIComponent(i[1]),s=decodeURIComponent(i[3]),c=i.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!a||!o||!s||c.length===0||c.some(e=>e.length===0)?null:{host:n,owner:a,repo:o,branch:s,path:c.join(`/`)}}function Kt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=r(t.hostname);if(n===null)return null;let i=t.pathname.split(`/`);if(i.length<5||i[0]!==``||i[3]!==`tree`)return null;let a=i.slice(5);a.length===1&&a[0]===``&&a.pop();let o,s,c,l;try{o=decodeURIComponent(i[1]),s=decodeURIComponent(i[2]),c=decodeURIComponent(i[4]),l=a.map(e=>decodeURIComponent(e))}catch{return null}return!o||!s||!c||l.some(e=>e.length===0)?null:{host:n,owner:o,repo:s,branch:c,path:l.join(`/`)}}function qt(e){let t=Gt(e);if(t)return{kind:`doc`,...t};let n=Kt(e);return n?{kind:`folder`,...n}:null}const Jt=`# >>> open-knowledge cli >>>`,Yt=`# <<< open-knowledge cli <<<`,Xt=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Zt(e){return F(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Qt={existsSync:e=>L(e),readFileSync:(e,t)=>z(e,t),lstatSync:e=>fe(e),readlinkSync:e=>he(e)};function $t(e,t=Qt){let n=Zt(e);if(!t.existsSync(n))return null;try{let e=JSON.parse(t.readFileSync(n,`utf8`));return e?.version===1?e:null}catch{return null}}function en(e){let t=e.replace(Xt,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function tn(e,t,n=Qt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function nn(e){return C(e)||S(e)||re(e)}const rn=10*1024*1024;function an(e,t,n,r){let i=ae(e,t,n,r);if(i.kind===`absent`||i.kind===`no-entry`)return{kind:`not-present`};if(i.kind===`decline`)return{kind:`declined`,reason:i.reason};if(!nn(i.entry))return{kind:`left-foreign`};let a;try{a=r??e.configPath(t,n)}catch{return{kind:`not-present`}}let o=e.serverName(t);return e.format===`file`?(ge(a,{force:!0}),{kind:`removed`}):e.format===`toml`?cn(a,o):e.format===`yaml`?sn(a,e.topLevelKey,o):on(a,e.topLevelKey,e.serverMapSubKey,o)}function on(e,t,n,r){let i;try{i=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(i,`utf-8`)>rn)return{kind:`declined`,reason:`oversize`};let{text:a,changed:o}=T(i,O(t,n,r));return o?(g(e,a,{mode:D(e)}),{kind:`removed`}):{kind:`not-present`}}function sn(e,t,n){let r;try{r=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(r,`utf-8`)>rn)return{kind:`declined`,reason:`oversize`};let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=(0,U.parseDocument)(a);if(o.errors.length>0)return{kind:`declined`,reason:`unparseable`};let s=[t,n];if(!o.hasIn(s))return{kind:`not-present`};o.deleteIn(s);let c=o.toString(),l=E(a);a.trim()===``||a.endsWith(`
9
+ `)}\n`:null}catch{return null}}function yt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=M(`git`,[`-C`,t,`log`,`--oneline`,`-50`],s({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function bt(e){let t=F(e,`.git`,`ok`);if(!L(t))return null;let n=M(`git`,[`-C`,t,`for-each-ref`,`--sort=-creatordate`,`--count=50`,`--format=%(refname)%09%(creatordate:iso-strict)%09%(contents:subject)`,`refs/checkpoints/`],s({encoding:`utf-8`,timeout:2e3}));return n.error||n.status!==0?null:n.stdout??``}function xt(){let e=process.env.OK_DESKTOP_VERSION,t=process.env.OK_DESKTOP_PACKAGED,n=process.env.OK_DESKTOP_CHANNEL;return e===void 0||t===void 0||n===void 0?null:{electronVersion:e,packaged:t===`1`||t.toLowerCase()===`true`,channel:n}}function St(){return{nodeVersion:process.version,platform:xe(),arch:ve()}}function Ct(){return process.env.OTEL_SDK_DISABLED===`false`}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function wt(e){if(!L(e))return{};let t;try{t=(0,U.parse)(z(e,`utf-8`))}catch(t){return console.warn(`[ok diagnose bundle] failed to parse ${e} for manifest config; manifest will report schema defaults. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!J(t))return{};let n=t.telemetry;if(!J(n))return{};let r=n.localSink;return J(r)?r:{}}function Tt(e){return typeof e==`boolean`?e:void 0}function Et(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Y(e){if(J(e))return Et(e.maxBytes)}function Dt(e){let t=wt(h(`project`,e)),n=wt(h(`project-local`,e));return{enabled:Tt(n.enabled)??Tt(t.enabled)??!0,spansMaxBytes:Y(n.spans)??Y(t.spans)??52428800,logsMaxBytes:Y(n.logs)??Y(t.logs)??26214400}}function Ot(e){return De(`sha256`).update(e).digest(`hex`)}function kt(e){let t=z(e),n=0;for(let e=0;e<t.length;e++)t[e]===10&&n++;return n}function At(e){let t=z(e,`utf-8`),n=`"doc.name"`,r=0,i=t.indexOf(n);for(;i!==-1;)r++,i=t.indexOf(n,i+10);return r}function X(e,t){if(!L(e))return!1;try{return R(P(t),{recursive:!0}),ue(e,t),!0}catch{return!1}}function jt(e){let t=[],n=e=>{let r=me(e,{withFileTypes:!0});for(let i of r){let r=F(e,i.name);i.isDirectory()?n(r):i.isFile()&&t.push(r)}};return n(e),t.sort()}const Mt=new Set([`.jsonl`]);function Nt(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Mt.has(e.slice(t))}const Pt=new Set([`.jsonl`,`.json`,`.txt`,`.log`,`.lock`]);function Ft(e){if(Xe(e))return!0;let t=e.lastIndexOf(`.`);return t===-1?!1:Pt.has(e.slice(t))}function It(e){let t=[];for(let r of jt(e)){let i=Lt(e,r);if(!Ft(i))continue;let{redacted:a,patterns:o,lineCount:s}=n(z(r,`utf-8`));o.length!==0&&(B(r,a),t.push({file:i,lineCount:s,patterns:o}))}return{redactions:t,redactedLineCount:t.reduce((e,t)=>e+t.lineCount,0)}}function Lt(e,t){return ce(e,t).split(le).join(`/`)}async function Rt(e){let t=I(e.contentDir),n=I(e.projectDir??e.contentDir),r=e.deps??{},i=r.fetchAgentPresence??ht,s=r.fetchAgentEffects??gt,c=r.fetchWatcherRecent??_t,l=r.readShadowHead??yt,u=r.readCheckpointRefs??bt,d=r.now??(()=>new Date),f=r.okVersion??(()=>A),p=r.readDesktopEnv??xt,m=r.readRuntime??St,h=r.isOtlpPushEnabled??Ct,g=pe(F(Ce(),`ok-bundle-`));try{R(F(g,`telemetry`),{recursive:!0}),R(F(g,`logs`),{recursive:!0}),R(F(g,`state`),{recursive:!0}),X(ct(n),F(g,`telemetry`,nt)),X(lt(n),F(g,`telemetry`,rt)),X(ut(n),F(g,`logs`,it)),X(dt(n),F(g,`logs`,at));for(let t of e.userLogFiles??[])X(t,F(g,`logs`,N(t)));let _=F(n,`.ok`,`local`),v=F(_,`server.lock`),y=`not-running`,b=`no server.lock`,x=null;if(L(v)){X(v,F(g,`state`,`server.lock`));try{let e=z(v,`utf-8`),t=JSON.parse(e);typeof t.port==`number`?x=t.port:b=`lock present but no port`}catch{b=`lock present but unparseable`}}if(x!==null){let e=await i(x);e===null?b=`agent-presence endpoint at :${x} unreachable`:(B(F(g,`state`,`agent-presence.json`),e),y=`running`,b=``);let t=await s(x);t!==null&&B(F(g,`state`,`agent-effects.json`),t);let n=await c(x);if(n!==null){let e=vt(n);e!==null&&B(F(g,`state`,`watcher-recent.jsonl`),e)}}let S=l(t);S!==null&&B(F(g,`state`,`shadow-head.txt`),S);let C=u(t);C!==null&&B(F(g,`state`,`checkpoint-refs.txt`),C),X(ft(n),F(g,`state`,ot)),X(pt(n),F(g,`state`,st)),X(F(_,`last-spawn-error.log`),F(g,`state`,`last-spawn-error.log`)),X(F(_,o),F(g,`state`,o)),X(F(_,a),F(g,`state`,a));let w=m(),ee=p(),te={ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:ee}};B(F(g,`state`,`runtime.json`),`${JSON.stringify(te,null,2)}\n`);let ne=y===`running`?`running
10
+ `:`not-running (${b})\n`;if(B(F(g,`state`,`server-status.txt`),ne),e.processDir&&L(e.processDir)){let t=F(g,`process`);R(t,{recursive:!0}),ue(e.processDir,t,{recursive:!0})}let T=e.redact===!0;T&&Qe({stagingDir:g,contentDir:t}),e.note&&B(F(g,`note.txt`),e.note);let E=null;e.scrubSecrets===!0&&(E=It(g));for(let t of e.extraFiles??[])X(t.sourcePath,F(g,`extra`,t.zipName??N(t.sourcePath)))||r.logger?.warn({sourcePath:t.sourcePath},`extra file missing; omitted from bundle`);let re=Dt(n),D=jt(g),O=[],ie=0,ae=0;for(let e of D){let t=Lt(g,e),n=_e(e).size,r=Nt(t)?kt(e):0;O.push({path:t,bytes:n,lines:r}),ie+=n,t.startsWith(`telemetry/`)&&Nt(t)&&(ae+=At(e))}let k={applied:T};E!==null&&(k.secretScrub=E);let A={schemaVersion:2,createdAt:d().toISOString(),ok:{version:f(),nodeVersion:w.nodeVersion,platform:w.platform,arch:w.arch},host:{desktop:ee},contentDir:{pathSha256:Ot(t),absolutePath:T?`<CONTENT_DIR>`:t},telemetry:{localSink:re,otlpPushEnabled:h()},redaction:k,serverStatus:y,files:O};B(F(g,`manifest.json`),`${JSON.stringify(A,null,2)}\n`);let j=D.some(e=>{try{return z(e,`utf-8`).includes(t)}catch{return!1}}),oe={totalBytes:ie,fileCount:O.length,docNameCount:ae,contentDirVisible:j,redacted:T},M=!1;return{stagingDir:g,manifest:A,summary:oe,cleanup:()=>{M||(M=!0,ge(g,{recursive:!0,force:!0}))}}}catch(e){throw ge(g,{recursive:!0,force:!0}),e}}async function zt(e){let{collected:t,outputPath:n}=e,r=P(n);if(!L(r))throw Error(`ok diagnose bundle: parent directory does not exist: ${r}. Create it or pass --out with an existing parent.`);let i=new Ue.ZipFile,a=jt(t.stagingDir);for(let e of a){let n=Lt(t.stagingDir,e);i.addFile(e,n)}i.end();let o=de(n);return i.outputStream.pipe(o),await new Promise((e,t)=>{o.on(`close`,e),o.on(`error`,t),i.outputStream.on(`error`,t)}),n}function Bt(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let t=(0,U.parse)(z(n,`utf-8`)),r=j(t)?t.content:void 0,i=j(r)?r.dir:void 0;if(typeof i==`string`&&i.length>0)return I(e,i)}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml; falling back to project root as content dir`)}return I(e)}async function Vt(e,t,n){let r=Fe(t,e.logger),i=await Rt({contentDir:Bt(t,e.logger),projectDir:t,redact:e.redact,scrubSecrets:e.redact,note:e.note,extraFiles:e.extraFiles,userLogFiles:Le(r,e.userLogsDir??F(V(),`.ok`,`logs`)),deps:{readDesktopEnv:n,logger:e.logger}});try{R(P(e.outputPath),{recursive:!0}),await zt({collected:i,outputPath:e.outputPath});let t=i.manifest.redaction.secretScrub;return{zipPath:e.outputPath,summary:{level:`full`,systemWide:!1,projectSlug:r,files:i.manifest.files.map(e=>e.path),redactions:t?.redactions??[],redactedLineCount:t?.redactedLineCount??0,generatedAt:i.manifest.createdAt}}}finally{i.cleanup()}}async function Ht(e){let{projectDir:t}=e,n=e.readDesktopEnv??xt;if(e.level===`full`&&t!==void 0)return Vt(e,t,n);let{zipPath:r,summary:i}=await He({projectDir:t,redact:e.redact,outputPath:e.outputPath,userLogsDir:e.userLogsDir,logger:e.logger,note:e.note,extraFiles:e.extraFiles,desktop:n()});return{zipPath:r,summary:{level:e.level,systemWide:t===void 0,projectSlug:i.projectSlug,files:i.files,redactions:i.redactions,redactedLineCount:i.redactedLineCount,generatedAt:i.generatedAt}}}function Z(e,t,n={}){let r=v(e,t);if(!L(r))return{status:`missing`,lockPath:r};let i;try{i=JSON.parse(z(r,`utf-8`))}catch{return{status:`corrupt`,lockPath:r}}if(!i||typeof i!=`object`||!_(i.pid))return{status:`corrupt`,lockPath:r};let a=i;if(!(n.isAlive??b)(a.pid))return{status:`dead-pid`,lockPath:r,lock:a};if(typeof a.machineId==`string`)return a.machineId===(n.machineId??y())?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a};let o=n.host??be();return a.hostname===o?{status:`alive`,lockPath:r,lock:a}:{status:`foreign-host`,lockPath:r,lock:a}}function Ut(e){return e.replace(/:\d+$/,``)}function Wt(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:Ut(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function Gt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=i(t.hostname);if(n===null)return null;let r=t.pathname.split(`/`).filter(e=>e.length>0);if(r.length<5||r[2]!==`blob`)return null;let a,o,s,c;try{a=decodeURIComponent(r[0]),o=decodeURIComponent(r[1]),s=decodeURIComponent(r[3]),c=r.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!a||!o||!s||c.length===0||c.some(e=>e.length===0)?null:{host:n,owner:a,repo:o,branch:s,path:c.join(`/`)}}function Kt(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`)return null;let n=i(t.hostname);if(n===null)return null;let r=t.pathname.split(`/`);if(r.length<5||r[0]!==``||r[3]!==`tree`)return null;let a=r.slice(5);a.length===1&&a[0]===``&&a.pop();let o,s,c,l;try{o=decodeURIComponent(r[1]),s=decodeURIComponent(r[2]),c=decodeURIComponent(r[4]),l=a.map(e=>decodeURIComponent(e))}catch{return null}return!o||!s||!c||l.some(e=>e.length===0)?null:{host:n,owner:o,repo:s,branch:c,path:l.join(`/`)}}function qt(e){let t=Gt(e);if(t)return{kind:`doc`,...t};let n=Kt(e);return n?{kind:`folder`,...n}:null}const Jt=`# >>> open-knowledge cli >>>`,Yt=`# <<< open-knowledge cli <<<`,Xt=/^# >>> open-knowledge cli >>>\n[\s\S]*?^# <<< open-knowledge cli <<<\n?/m;function Zt(e){return F(e,`Library`,`Application Support`,`OpenKnowledge`,`path-install.json`)}const Qt={existsSync:e=>L(e),readFileSync:(e,t)=>z(e,t),lstatSync:e=>fe(e),readlinkSync:e=>he(e)};function $t(e,t=Qt){let n=Zt(e);if(!t.existsSync(n))return null;try{let e=JSON.parse(t.readFileSync(n,`utf8`));return e?.version===1?e:null}catch{return null}}function en(e){let t=e.replace(Xt,``);return{text:t,changed:t!==e,emptyAfter:t.trim()===``}}function tn(e,t,n=Qt){try{return n.lstatSync(e).isSymbolicLink()?n.readlinkSync(e)===t:!1}catch{return!1}}function nn(e){return C(e)||S(e)||re(e)}const rn=10*1024*1024;function an(e,t,n,r){let i=ae(e,t,n,r);if(i.kind===`absent`||i.kind===`no-entry`)return{kind:`not-present`};if(i.kind===`decline`)return{kind:`declined`,reason:i.reason};if(!nn(i.entry))return{kind:`left-foreign`};let a;try{a=r??e.configPath(t,n)}catch{return{kind:`not-present`}}let o=e.serverName(t);return e.format===`file`?(ge(a,{force:!0}),{kind:`removed`}):e.format===`toml`?cn(a,o):e.format===`yaml`?sn(a,e.topLevelKey,o):on(a,e.topLevelKey,e.serverMapSubKey,o)}function on(e,t,n,r){let i;try{i=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(i,`utf-8`)>rn)return{kind:`declined`,reason:`oversize`};let{text:a,changed:o}=T(i,O(t,n,r));return o?(g(e,a,{mode:D(e)}),{kind:`removed`}):{kind:`not-present`}}function sn(e,t,n){let r;try{r=z(e,`utf-8`)}catch{return{kind:`declined`,reason:`unparseable`}}if(Buffer.byteLength(r,`utf-8`)>rn)return{kind:`declined`,reason:`oversize`};let i=r.charCodeAt(0)===65279,a=i?r.slice(1):r,o=(0,U.parseDocument)(a);if(o.errors.length>0)return{kind:`declined`,reason:`unparseable`};let s=[t,n];if(!o.hasIn(s))return{kind:`not-present`};o.deleteIn(s);let c=o.toString(),l=E(a);a.trim()===``||a.endsWith(`
11
11
  `)?c.endsWith(`
12
12
  `)||(c=`${c}\n`):c=c.replace(/\n+$/,``),l&&(c=c.replace(/\r\n/g,`
13
13
  `).replace(/\n/g,`\r
@@ -15,6 +15,6 @@ import{o as e}from"./chunk-DTipWd-i.mjs";import{Y as t}from"./sleep-ByqzSHar.mjs
15
15
  `),c;try{c=n.removeEntry(a,t)}catch{return{kind:`declined`,reason:`unparseable`}}if(!c.existed)return{kind:`not-present`};let l=c.text;s?l.endsWith(`
16
16
  `)||(l=`${l}\n`):l=l.replace(/\n+$/,``),o&&(l=l.replace(/\r\n/g,`
17
17
  `).replace(/\n/g,`\r
18
- `));let u=`${i?``:``}${l}`;return u!==r&&g(e,u,{mode:D(e)}),{kind:`removed`}}function ln(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function un(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function dn(e,t,n,r,i,a){if(t.status===`missing`||t.status===`corrupt`)return null;let o=t.lock,s=null;if(n.status!==`missing`&&n.status!==`corrupt`){let e=n.lock;s={port:e.port,status:n.status,pid:e.pid,startedAt:e.startedAt,usage:a}}return{directory:o.worktreeRoot,server:{port:o.port,status:t.status,pid:o.pid,startedAt:o.startedAt,usage:i},ui:s,hostname:o.hostname,lockPath:t.lockPath,binary:r==null?null:l(r),command:r,isDesktop:ln(r)}}function fn(e){return e.ui==null?!1:e.ui.status===`alive`||e.ui.status===`foreign-host`}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:t===`dead-pid`&&fn(e)?`ui-orphan`:`stale`}const pn=new Set([`running`,`desktop`,`foreign`,`ui-orphan`]);function mn(e){switch(e){case`running`:return G.default.green(e);case`desktop`:return G.default.blue(e);case`foreign`:return G.default.cyan(e);case`ui-orphan`:return G.default.magenta(e);case`stale`:return G.default.yellow(e)}}function hn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function gn(e){return`${hn(e.server.usage)} | ${hn(e.ui?.usage??null)}`}function _n(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null||e.ui.status===`dead-pid`?`—`:String(e.ui.port)}`}function vn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>{let t=Q(e),n=t===`ui-orphan`&&e.ui!=null?e.ui.pid:e.server.pid;return[e.directory,_n(e),gn(e),t,String(n),un(e.server.startedAt),e.binary??`—`]}),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=mn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=G.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
19
- `)}async function yn(e={}){let t=e.discover??f,n=e.inspect??Z,r=e.log??(e=>console.log(e)),i=e.resolveCommand??c,a=e.resolveUsage??d,o=await t(),s=[];for(let e of o){let t=n(e,`server`),r=n(e,`ui`),o=dn(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:a(r.lock.pid));o!=null&&s.push(o)}if(e.json){let e=s.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(vn(e.all?s:s.filter(e=>pn.has(Q(e)))))}function bn(){return new te(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await yn({all:t.all===!0||e===`all`,json:t.json===!0})})}function xn(e,t,n={}){let r=n.isAlive??b,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function Sn(e){let t=e.inspect??(t=>Z(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=xn(t(`server`),t(`ui`),{isAlive:e.isAlive});if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function Cn(e,t=b){let n=await f(),r=null;for(let i of n){let n=Z(i,`server`),a=Z(i,`ui`);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function wn(e){let t=Sn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function Tn(e){return new te(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=Sn({lockDir:u(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await yn({});return}if(n===`all`){let e=await f();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=Z(n,`server`),r=Z(n,`ui`);!$(e,b)&&!$(r,b)||(wn(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await Cn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}wn(t);return}wn(u(I(Me(),n)))})}function En(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function Dn(e,t){let n,i;try{n=await H(I(e)),i=await H(I(P(e)))}catch{return{kind:`not-git`}}if(!On(n,i))return{kind:`symlink-escape`};let a=F(n,`.git`),o;try{o=_e(a)}catch{return{kind:`not-git`}}if(o.isDirectory()){let e;try{e=await H(a)}catch{return{kind:`not-git`}}if(!On(e,n))return{kind:`symlink-escape`}}else if(!o.isFile())return{kind:`not-git`};let s=m(n);if(s.kind!==`repository`)return{kind:`not-git`};let c=s.repository.readRemoteUrl(`origin`);if(c.kind===`unreadable`)return{kind:`not-git`};if(c.kind===`absent`)return c.reason===`config-missing`?{kind:`not-git`}:{kind:`no-origin`};let l=c.url,u=Wt(l);if(u===null)return{kind:`non-github`};let d=r(u.hostname);if(d===null)return{kind:`non-github`};let f=d===t.host.toLowerCase(),p=u.owner.toLowerCase()===t.owner.toLowerCase(),h=u.name.toLowerCase()===t.repo.toLowerCase();return!f&&p&&h?{kind:`wrong-host`,actualHost:d}:!f||!p||!h?{kind:`wrong-repo`,actualOwner:u.owner,actualRepo:u.name}:{kind:`ok`,gitRemoteUrl:`https://${d}/${u.owner}/${u.name}.git`}}function On(e,t){if(e===t)return!0;let n=ce(t,e);return n.length>0&&!n.startsWith(`..`)&&!se(n)}const kn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=k(e,t,n,void 0,r);return i.action===`written`||i.action===`overwritten`?{integration:`mcp-config`,editorId:e.id,action:i.action,path:i.configPath}:i.action===`failed`?{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:i.error??`unknown failure`}:i.action===`declined`?{integration:`mcp-config`,editorId:e.id,action:`declined`,path:i.configPath,...i.declineReason===void 0?{}:{reason:i.declineReason}}:{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:`unexpected project-scope action: ${i.action}`}}catch(t){return{integration:`mcp-config`,editorId:e.id,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}},{id:`project-skill`,write(e,t,n){try{let r=w(e,t,{home:n.home});return{integration:`project-skill`,editorId:e.id,action:r.action,...r.path?{path:r.path}:{},...r.error?{error:r.error}:{}}}catch(t){return{integration:`project-skill`,editorId:e.id,action:`failed`,error:t instanceof Error?t.message:String(t)}}}}];function An(e,t,n={},r=kn){let i=[];for(let a of t){let t=ee[a];for(let a of r)i.push(a.write(t,e,n))}return i}function jn(e,t,n={}){return{integrations:An(e,t,n)}}export{Pe as C,ke as D,je as E,zt as S,Me as T,Kt as _,Tn as a,Ht as b,Jt as c,tn as d,Zt as f,qt as g,Gt as h,Sn as i,Xt as l,en as m,Dn as n,bn as o,$t as p,En as r,an as s,jn as t,Yt as u,Wt as v,Ne as w,Rt as x,Z as y};
20
- //# sourceMappingURL=src-B9TR_wSW.mjs.map
18
+ `));let u=`${i?``:``}${l}`;return u!==r&&g(e,u,{mode:D(e)}),{kind:`removed`}}function ln(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function un(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function dn(e,t,n,r,i,a){if(t.status===`missing`||t.status===`corrupt`)return null;let o=t.lock,s=null;if(n.status!==`missing`&&n.status!==`corrupt`){let e=n.lock;s={port:e.port,status:n.status,pid:e.pid,startedAt:e.startedAt,usage:a}}return{directory:o.worktreeRoot,server:{port:o.port,status:t.status,pid:o.pid,startedAt:o.startedAt,usage:i},ui:s,hostname:o.hostname,lockPath:t.lockPath,binary:r==null?null:d(r),command:r,isDesktop:ln(r)}}function fn(e){return e.ui==null?!1:e.ui.status===`alive`||e.ui.status===`foreign-host`}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:t===`dead-pid`&&fn(e)?`ui-orphan`:`stale`}const pn=new Set([`running`,`desktop`,`foreign`,`ui-orphan`]);function mn(e){switch(e){case`running`:return G.default.green(e);case`desktop`:return G.default.blue(e);case`foreign`:return G.default.cyan(e);case`ui-orphan`:return G.default.magenta(e);case`stale`:return G.default.yellow(e)}}function hn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function gn(e){return`${hn(e.server.usage)} | ${hn(e.ui?.usage??null)}`}function _n(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null||e.ui.status===`dead-pid`?`—`:String(e.ui.port)}`}function vn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>{let t=Q(e),n=t===`ui-orphan`&&e.ui!=null?e.ui.pid:e.server.pid;return[e.directory,_n(e),gn(e),t,String(n),un(e.server.startedAt),e.binary??`—`]}),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=mn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=G.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
19
+ `)}async function yn(e={}){let t=e.discover??p,n=e.inspect??Z,r=e.log??(e=>console.log(e)),i=e.resolveCommand??l,a=e.resolveUsage??f,o=await t(),s=[];for(let e of o){let t=n(e,`server`),r=n(e,`ui`),o=dn(e,t,r,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid),r.status===`missing`||r.status===`corrupt`?null:a(r.lock.pid));o!=null&&s.push(o)}if(e.json){let e=s.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(vn(e.all?s:s.filter(e=>pn.has(Q(e)))))}function bn(){return new te(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await yn({all:t.all===!0||e===`all`,json:t.json===!0})})}function xn(e,t,n={}){let r=n.isAlive??b,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function Sn(e){let t=e.inspect??(t=>Z(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=xn(t(`server`),t(`ui`),{isAlive:e.isAlive});if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function Cn(e,t=b){let n=await p(),r=null;for(let i of n){let n=Z(i,`server`),a=Z(i,`ui`);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function wn(e){let t=Sn({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function Tn(e){return new te(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=Sn({lockDir:u(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await yn({});return}if(n===`all`){let e=await p();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=Z(n,`server`),r=Z(n,`ui`);!$(e,b)&&!$(r,b)||(wn(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await Cn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}wn(t);return}wn(u(I(Me(),n)))})}function En(e){return{event:`mcp-config-decline`,scope:e.scope,surface:e.surface,editorId:e.editorId,reason:e.reason}}async function Dn(e,t){let n,r;try{n=await H(I(e)),r=await H(I(P(e)))}catch{return{kind:`not-git`}}if(!On(n,r))return{kind:`symlink-escape`};let a=F(n,`.git`),o;try{o=_e(a)}catch{return{kind:`not-git`}}if(o.isDirectory()){let e;try{e=await H(a)}catch{return{kind:`not-git`}}if(!On(e,n))return{kind:`symlink-escape`}}else if(!o.isFile())return{kind:`not-git`};let s=m(n);if(s.kind!==`repository`)return{kind:`not-git`};let c=s.repository.readRemoteUrl(`origin`);if(c.kind===`unreadable`)return{kind:`not-git`};if(c.kind===`absent`)return c.reason===`config-missing`?{kind:`not-git`}:{kind:`no-origin`};let l=c.url,u=Wt(l);if(u===null)return{kind:`non-github`};let d=i(u.hostname);if(d===null)return{kind:`non-github`};let f=d===t.host.toLowerCase(),p=u.owner.toLowerCase()===t.owner.toLowerCase(),h=u.name.toLowerCase()===t.repo.toLowerCase();return!f&&p&&h?{kind:`wrong-host`,actualHost:d}:!f||!p||!h?{kind:`wrong-repo`,actualOwner:u.owner,actualRepo:u.name}:{kind:`ok`,gitRemoteUrl:`https://${d}/${u.owner}/${u.name}.git`}}function On(e,t){if(e===t)return!0;let n=ce(t,e);return n.length>0&&!n.startsWith(`..`)&&!se(n)}const kn=[{id:`mcp-config`,write(e,t,n){let r=e.projectConfigPath?.(t);if(!r)return{integration:`mcp-config`,editorId:e.id,action:`skipped-unsupported`};try{let i=k(e,t,n,void 0,r);return i.action===`written`||i.action===`overwritten`?{integration:`mcp-config`,editorId:e.id,action:i.action,path:i.configPath}:i.action===`failed`?{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:i.error??`unknown failure`}:i.action===`declined`?{integration:`mcp-config`,editorId:e.id,action:`declined`,path:i.configPath,...i.declineReason===void 0?{}:{reason:i.declineReason}}:{integration:`mcp-config`,editorId:e.id,action:`failed`,path:i.configPath,error:`unexpected project-scope action: ${i.action}`}}catch(t){return{integration:`mcp-config`,editorId:e.id,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}},{id:`project-skill`,write(e,t,n){try{let r=w(e,t,{home:n.home});return{integration:`project-skill`,editorId:e.id,action:r.action,...r.path?{path:r.path}:{},...r.error?{error:r.error}:{}}}catch(t){return{integration:`project-skill`,editorId:e.id,action:`failed`,error:t instanceof Error?t.message:String(t)}}}}];function An(e,t,n={},r=kn){let i=[];for(let a of t){let t=ee[a];for(let a of r)i.push(a.write(t,e,n))}return i}function jn(e,t,n={}){return{integrations:An(e,t,n)}}export{Pe as C,ke as D,je as E,zt as S,Me as T,Kt as _,Tn as a,Ht as b,Jt as c,tn as d,Zt as f,qt as g,Gt as h,Sn as i,Xt as l,en as m,Dn as n,bn as o,$t as p,En as r,an as s,jn as t,Yt as u,Wt as v,Ne as w,Rt as x,Z as y};
20
+ //# sourceMappingURL=src-Dl8P6sfz.mjs.map
@@ -0,0 +1 @@
1
+ import{$o as e,As as t,Lo as n,P as r,Po as i,R as a,Ro as o,d as s,ds as c,l,ts as u}from"./src-9BFQh559.mjs";import{$ as d,$i as f,$n as p,$r as m,$t as h,A as g,Ai as _,An as v,Ar as y,At as b,B as x,Bi as S,Bn as C,Br as w,Bt as T,C as E,Ci as D,Cn as O,Cr as k,Ct as A,D as j,Di as M,Dn as N,Dr as P,Dt as F,E as I,Ei as L,En as R,Er as z,Et as B,F as V,Fi as H,Fn as U,Ft as W,G,Gi as K,Gn as q,Gr as J,Gt as Y,H as X,Hi as Z,Hn as Q,Hr as $,Ht as ee,I as te,Ii as ne,In as re,It as ie,J as ae,Ji as oe,Jn as se,Jr as ce,Jt as le,K as ue,Ki as de,Kn as fe,Kr as pe,Kt as me,L as he,Li as ge,Ln as _e,Lt as ve,M as ye,Mi as be,Mn as xe,Mr as Se,Mt as Ce,N as we,Ni as Te,Nn as Ee,Nt as De,O as Oe,Oi as ke,On as Ae,Or as je,Ot as Me,P as Ne,Pi as Pe,Pn as Fe,Pt as Ie,Q as Le,Qi as Re,Qn as ze,Qr as Be,Qt as Ve,R as He,Ri as Ue,Rn as We,Rr as Ge,Rt as Ke,S as qe,Si as Je,Sn as Ye,Sr as Xe,St as Ze,T as Qe,Ti as $e,Tn as et,Tr as tt,Tt as nt,U as rt,Ui as it,Un as at,Ur as ot,Ut as st,V as ct,Vi as lt,Vn as ut,Vr as dt,Vt as ft,W as pt,Wi as mt,Wn as ht,Wr as gt,Wt as _t,X as vt,Xi as yt,Xn as bt,Xr as xt,Xt as St,Y as Ct,Yi as wt,Yn as Tt,Yr as Et,Yt as Dt,Z as Ot,Zi as kt,Zn as At,Zr as jt,Zt as Mt,_ as Nt,_a as Pt,_i as Ft,_n as It,_r as Lt,_t as Rt,a as zt,aa as Bt,ai as Vt,an as Ht,ar as Ut,at as Wt,b as Gt,ba as Kt,bi as qt,bn as Jt,br as Yt,bt as Xt,c as Zt,ca as Qt,ci as $t,cn as en,cr as tn,d as nn,da as rn,di as an,dn as on,dr as sn,ea as cn,ei as ln,en as un,er as dn,et as fn,f as pn,fa as mn,fi as hn,fn as gn,fr as _n,g as vn,ga as yn,gi as bn,gn as xn,gr as Sn,gt as Cn,h as wn,ha as Tn,hi as En,hn as Dn,hr as On,ht as kn,i as An,ia as jn,ii as Mn,in as Nn,ir as Pn,it as Fn,j as In,ji as Ln,jn as Rn,jr as zn,jt as Bn,k as Vn,ki as Hn,kn as Un,kr as Wn,kt as Gn,l as Kn,la as qn,li as Jn,ln as Yn,lr as Xn,m as Zn,ma as Qn,mi as $n,mn as er,mr as tr,mt as nr,n as rr,na as ir,ni as ar,nn as or,nr as sr,nt as cr,o as lr,oa as ur,oi as dr,on as fr,or as pr,ot as mr,p as hr,pa as gr,pi as _r,pn as vr,pr as yr,q as br,qi as xr,qn as Sr,qr as Cr,qt as wr,r as Tr,ra as Er,ri as Dr,rn as Or,rr as kr,rt as Ar,s as jr,sa as Mr,si as Nr,sn as Pr,sr as Fr,st as Ir,t as Lr,ta as Rr,ti as zr,tn as Br,tr as Vr,tt as Hr,u as Ur,ua as Wr,ui as Gr,un as Kr,ur as qr,v as Jr,va as Yr,vn as Xr,vr as Zr,vt as Qr,w as $r,wi as ei,wn as ti,wr as ni,wt as ri,x as ii,xi as ai,xn as oi,xr as si,xt as ci,y as li,ya as ui,yi as di,yn as fi,yr as pi,yt as mi,z as hi,zi as gi,zn as _i,zr as vi,zt as yi}from"./src-9I3GiOoK.mjs";import{C as bi,E as xi,T as Si,_ as Ci,b as wi,c as Ti,d as Ei,g as Di,i as Oi,l as ki,m as Ai,n as ji,p as Mi,s as Ni,t as Pi,u as Fi,v as Ii,w as Li,x as Ri,y as zi}from"./fs-traced-By5aY-RE.mjs";import{a as Bi,d as Vi,f as Hi,i as Ui,l as Wi,n as Gi,r as Ki,t as qi,u as Ji}from"./logger-BZPV1wv8.mjs";import{S as Yi,_ as Xi,a as Zi,c as Qi,f as $i,g as ea,h as ta,i as na,l as ra,m as ia,n as aa,o as oa,p as sa,r as ca,s as la,t as ua,u as da,v as fa,x as pa}from"./server-lock-BleUv9m0.mjs";export{rn as AGENT_ID_MAX_LEN,mn as AGENT_ID_RE,M as AGENT_WRITE_ORIGIN,Yr as AcpPermissionStore,Tn as AcpRegistry,Je as AcpThreadManager,qt as AgentFocusBroadcaster,di as AgentPresenceBroadcaster,ke as AgentSessionCapacityError,Hn as AgentSessionManager,kn as AutoStartDisabledError,Zr as BUNDLE_IDS,pi as BUNDLE_SCOPE,Yt as BUNDLE_SKILL_NAME,Sr as BacklinkIndex,gi as CC1Broadcaster,u as CC1_CONTRACT_VERSION,Kr as CONFIG_FILENAME,ut as CONFLICT_MARKER_RE,w as CURSOR_BUNDLE_PATHS_BY_PLATFORM,Nt as ConfigSchema,K as DEFAULT_CHECKPOINT_RETENTION,Mn as DEFAULT_EMBEDDINGS_DIMENSIONS,W as DEFAULT_PACK_ID,ct as DocumentDurabilityState,Vt as EMBEDDINGS_API_KEY_ENV,yn as FEATURED_AGENT_IDS,de as FILE_SYSTEM_WRITER,q as FILE_WATCHER_ORIGIN,Be as FileEmbeddingsBackend,Mt as GIT_PREFLIGHT_FAIL_SPAN_NAME,xr as GIT_UPSTREAM_WRITER,ui as GitDirAccessError,h as GitNotAvailableError,un as GitTooOldError,Cn as HOCUSPOCUS_AUTH_REJECTION_REASONS,Rt as HocuspocusAuthRejection,Qr as HocuspocusAuthTokenSchema,pe as INSTALLED_AGENTS_SCHEMES,e as LINEAGE_EPOCH_KEY,He as LIVE_DERIVED_INDEX_DEBOUNCE_MS,ie as LOG_MD_TEMPLATE,nt as MANAGED_RENAME_ORIGIN,D as MAX_ACP_THREADS,_ as MAX_AGENT_SESSIONS,$e as MCP_CONNECTION_ID_HEADER,i as MCP_SERVER_NAME,Ln as MIN_EVICTABLE_IDLE_MS,Br as MIN_GIT_VERSION,X as MISSING_OK_CONFIG_MESSAGE,Kt as MalformedGitPointerError,fn as McpLogger,rt as MissingOkConfigError,Te as OBSERVER_SYNC_ORIGIN,on as OK_OKIGNORE_TEMPLATE,n as ORPHAN_MODES,t as PROTOCOL_VERSION,qi as PinoLogger,Qi as ProcessLockCollisionError,Kn as ProjectGitInitError,B as ROLLBACK_ORIGIN,gn as ROOT_GITIGNORE_TEMPLATE,ea as RUNTIME_VERSION,fi as RemoteConfigError,oe as SERVICE_WRITER,yr as SKILL_INSTALL_EVENTS_FILE_REL,r as SKILL_STATE_TARGETS,ve as STARTER_FOLDERS,Ke as STARTER_FOLDER_FRONTMATTER_FILENAME,yi as STARTER_PACKS,T as STARTER_PACK_IDS,ft as STARTER_TEMPLATES,Qe as STATE_MANIFEST_FILENAME,Xi as STATE_SCHEMA_VERSION,c as SYSTEM_DOC_NAME,wr as SeedPrerequisiteError,le as SeedRootDirError,ua as ServerLockCollisionError,Lr as SingleFileNotAFileError,rr as SingleFileNotFoundError,Tr as SingleFileNotMarkdownError,I as StateManifestError,fe as TagIndex,si as USER_GLOBAL_BUNDLE_IDS,Tt as UiLockCollisionError,F as __getShowAllWalkStatsForTesting,Me as __resetShowAllWalkStatsForTesting,ra as acquireProcessLock,aa as acquireServerLock,bt as acquireUiLock,be as applyAgentMarkdownWrite,_i as applyExternalChange,Ie as applySeed,j as assertCompatibleStateManifest,or as assertGitAvailable,N as assertNeverDiskEvent,ai as attachAcpThreadSocket,nr as attachIdleShutdown,Jr as bootServer,dn as buildAndOpenSkill,vr as buildConfigYmlContent,Ct as buildExecResult,ei as buildOkMcpStdioCommand,On as buildSkillZip,ee as buildStarterFolderFrontmatterYaml,wt as buildWipTree,Xe as bundleSkillMdPath,m as canonicalProjectKey,Ae as classifyEvents,Pi as classifyFsPath,ln as clearAllEmbeddingsKeys,Nr as clearContributors,st as coercePackId,l as colorFromSeed,yt as commitUpstreamImport,kt as commitWip,Re as commitWipFromTree,Or as compareSemver,tt as composeEffectiveLinterConfig,z as composeFrontmatterSchemasConfig,Q as containsConflictMarkers,Un as contentHash,$t as contributorCount,Ne as countShadowObjects,V as countStaleAgentWipRefs,te as countWipRefs,Gn as createApiExtension,ri as createAssetServeMiddleware,G as createCollaborationHost,Ge as createContentFilter,vi as createContentFilterAsync,zr as createEmbeddingsSecretStore,An as createEphemeralProjectDir,C as createExternalChangeHandler,pn as createFileLogger,hi as createLiveDerivedIndexExtension,br as createMcpHttpHandler,Cr as createOsProbe,we as createPersistenceExtension,E as createServer,In as createServerObserverExtension,ne as createStreamingErrorWriter,Gi as createTestLogger,ar as describeStoredEmbeddingsKey,vn as detectClaudeDesktopPresence,Nn as detectGit,Oe as detectProjectShape,Vr as detectUserSkillHosts,Ar as discoverLockDirs,Wn as discoverMarkdownlintConfig,Ve as emitPreflightFailureSpan,vt as encodeDocName,Ot as encodeFolderRoute,Le as encodeSkillRoute,Ur as ensureProjectGit,er as ensureProjectSkillGitignore,ge as errorResponse,v as evictStaleTrackerEntries,b as extractHeadings,Fn as extractOkBinaryPath,se as extractWikiLinksFromMarkdown,Ht as fallbackPaths,nn as findEnclosingGitRoot,et as findEnclosingProjectRoot,y as findNativeMarkdownlintFile,hr as flushFileLogger,mi as formatAuthRejectionWire,Jn as formatContributors,Gr as formatContributorsFrom,Ce as formatPackRationale,f as gcCheckpointRefs,Hr as getCurrentMcpLogger,$n as getLocalDir,Zn as getLogFilePath,Ki as getLogger,wn as getLogsDir,fa as getMachineId,zi as getMeter,ur as getMetrics,wi as getTracer,Mr as handleCollabSocketError,dt as handleSpawnCursor,Jt as hasForwardingHeaders,he as hasGcLogLatch,s as iconFromClientName,Qt as incrementCollabSocketFilteredError,qn as incrementServerObserverFire,Dn as initContent,cn as initShadowRepo,Ri as initTelemetry,Gt as initToleranceTelemetryWriter,Ir as installPrettyZodErrors,Ui as installTestLoggers,sr as installUserSkill,Xr as isAllowedApiOrigin,O as isAllowedWorkspaceHostHeader,S as isConfigDoc,Xt as isHocuspocusAuthRejectionReason,_t as isKnownPackId,lt as isLinkIndexExcludedDoc,ti as isLoopbackAddress,Z as isManagedArtifactDoc,o as isOrphanMode,Pe as isPairedWriteOrigin,$ as isPathWithinDir,pa as isProcessAlive,R as isProjectRoot,oi as isRemoteAdmitted,it as isReservedForUserTree,Rn as isSelfWrite,mt as isSystemDoc,ii as isToleranceTelemetryEnabled,Yi as isValidLockPid,xe as lastKnownHash,Rr as listRescueCheckpoints,Y as listStarterPacks,Pt as loadCustomAgents,ye as loadPrincipal,da as lockFilePath,Bi as loggerFactory,Wi as logsCurrentPath,Ji as logsPreviousPath,Dr as makeLazyEmbeddingsKeyStore,ca as markServerLockDraining,pt as mountMcpAndApi,ji as normalizeFsPath,k as originGitHubHost,xn as packageVersionMajorMinor,ci as parseAuthRejectionWire,fr as parseGitVersion,Ze as parseHocuspocusAuthToken,ue as parseKeepaliveConnectionId,Ee as pathToDocName,De as planSeed,zt as prepareSingleFileOpen,Wt as processCommand,mr as processUsage,Pn as readAllTargets,Ut as readBundleDecision,zn as readOwnNativeRules,$i as readProcessLock,sa as readProcessLockDetailed,x as readProjectHeadState,jt as readProjectLocalSemanticConfig,na as readServerLock,pr as readServerPackageVersion,Fr as readSkillInstallStateSnapshot,Vn as readStateManifest,tn as readTargetRecordedAt,Xn as readTargetVersion,At as readUiLock,at as reconcile,an as recordContributor,tr as recordSkillInstallEvent,ae as registerAllTools,Fe as registerWrite,ia as releaseProcessLock,Zi as releaseServerLock,ze as releaseUiLock,U as removeLastKnownHash,kr as reportSkillInstall,Wr as resetMetrics,a as resolveBundleEnabled,Sn as resolveBundledSkillDir,En as resolveContentDir,ot as resolveCursorBinaryDefault,gt as resolveCursorSpawnInvocation,P as resolveEffectiveLinterConfig,dr as resolveEmbeddingsCredential,bn as resolveLockDir,je as resolveNativeConfigForDoc,Se as resolveNativeMarkdownlintConfig,me as resolvePack,jr as resolvePackageVersion,Ye as resolveRemoteAccess,_n as resolveSkillInstallReportSettings,d as resolveUiInfo,hn as restoreContributors,li as restoreLifecycleFromConflictsJson,Et as rewriteMarkdownLinksForDocumentRename,xt as rewriteWikiLinksForDocumentRename,Pr as runAuthReposSubprocess,en as runAuthStatusSubprocess,Dt as runCloneSubprocess,Yn as runDeviceFlowSubprocess,cr as runWithMcpLogger,Ft as safeContentPath,Bn as safeSubdir,ir as safetyCheckpoint,L as sanitizeClientName,Er as saveInMemoryCheckpoint,jn as saveVersion,A as seedBasenameIndex,lr as serializeError,bi as setActiveSpanAttributes,H as setupServerObservers,Bt as shadowGit,Li as shutdownTelemetry,Vi as spansCurrentPath,Hi as spansPreviousPath,J as spawnDetached,ht as splitMarkdownBlocks,re as startWatcher,Ue as streamingProblemEvent,_r as swapContributors,qe as teardownToleranceTelemetryWriter,gr as toBroadcasterKey,Oi as tracedAppendFileSync,Ni as tracedLinkSync,Ti as tracedMkdir,ki as tracedMkdirSync,Fi as tracedRename,Ei as tracedRenameSync,Mi as tracedRmSync,Ai as tracedRmdirSync,Di as tracedUnlinkSync,Ci as tracedWriteFile,Ii as tracedWriteFileSync,$r as trustSystemCertificates,Zt as untrackTrackedProjectSkillProjection,_e as updateLastKnownHash,ta as updateProcessLockPort,oa as updateServerLockPort,p as updateUiLockPort,Qn as validateAgentId,St as validateCloneInputs,Lt as validateSkillZip,la as waitForServerLockDrain,ce as withHiddenWindowsConsole,Si as withSpan,xi as withSpanSync,qr as writeBundleDecision,ni as writeMarkdownlintRule,It as writeRootGitignoreForNewRepo,g as writeStateManifest,sn as writeTargetVersion,We as writeTracker};
@@ -0,0 +1 @@
1
+ import{p as e,r as t,v as n}from"./start-C4KuZHu5.mjs";export{t as bootStartServer,e as resolveHost,n as startCommand};
@@ -1,4 +1,4 @@
1
- import{Q as e,Y as t}from"./src-azBs1EPY.mjs";import{Vr as n,Xr as r,a as i,yn as a}from"./src-DoSxfvJP.mjs";import{S as o,x as s}from"./write-project-skill-B77kdJNQ.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-D3WKP8RS.mjs";import{n as d}from"./constants-PCQO1EGt.mjs";import{spawn as f}from"node:child_process";import{basename as p,join as m,posix as h,resolve as g,win32 as _}from"node:path";import{closeSync as v,existsSync as y,mkdirSync as b,openSync as x,statSync as S}from"node:fs";import{homedir as C}from"node:os";import{rm as w}from"node:fs/promises";import{setTimeout as T}from"node:timers/promises";function E(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function D(e,t,r={}){let i=(r.spawn??f)(e,[...t],n({detached:!0,stdio:`ignore`,env:E(r.env??process.env)}));return i.unref(),i}const O=`OpenKnowledge.app`,k=`/Applications/${O}`;function A(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return S(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function j(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(M(e,k))return k;let t=m(e.homeDir??C(),`Applications`,O);return M(e,t)?t:null}function M(e,t){return N(e,m(t,`Contents`,`MacOS`,`OpenKnowledge`))}function N(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const ee=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function P(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of ee){let r=_.join(t,`Programs`,n,`OpenKnowledge.exe`);if(N(e,r))return r}return null}function F(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return N(e,t)?t:null}function I(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?j(e):e.platform===`win32`?P(e):F(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:!(e.isTTY===!0||e.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function L(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){D(`open`,[`-b`,`com.inkeep.open-knowledge`],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}D(i,[],{spawn:e.spawn})}function R(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function z(e){return h.join(h.dirname(e),`..`,`Frameworks`,`OpenKnowledge Server.app`,`Contents`,`MacOS`,`OpenKnowledge Helper`)}const te=/\/[^/]+\.app\/Contents\/MacOS\/[^/]+$/;function ne(e){if(e.platform!==`darwin`||!te.test(e.execPath))return null;let t=z(e.execPath);return e.exists(t)?t:null}function B(e={}){let t=e.execPath??process.execPath,n=e.platform??process.platform,r=e.argv??process.argv,i=e.exists??y,a=r[1];return a?{command:ne({execPath:t,platform:n,exists:i})??t,prefixArgs:[a]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(r)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function V(e,t){return e.host??t.HOST??`127.0.0.1`}function H(e,t){return t&&(e===`::`||e===`::1`||e===`[::1]`||e===`localhost`||e===`0.0.0.0`)?{host:`127.0.0.1`,coerced:!0}:{host:e,coerced:!1}}function U(e){let t=p(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var W=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function G(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function K(t){y(t.lockDir)||b(t.lockDir,{recursive:!0});let n=x(m(t.lockDir,e),`w`),r=t.spawn??f,{PORT:i,...a}=process.env,o=B();try{let e=r(o.command,[...o.prefixArgs,...t.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,n],windowsHide:!0,cwd:t.cwd,env:{...a,ELECTRON_RUN_AS_NODE:`1`}});return e.unref(),e}finally{try{v(n)}catch{}}}function q(e,t,n,r=!1){return e??(n!==void 0||r?void 0:t)}function J(e,t){return e!==void 0&&t!==null&&t.port>0&&t.draining!==!0}function Y(e,t,n){return e??+(t!=null&&!n)}async function X(e){let t=e.spawn??f,n=B(),{PORT:r,...i}=process.env,a=t(n.command,[...n.prefixArgs,`ui`,`--port`,String(e.uiPort)],{cwd:e.cwd,stdio:`inherit`,windowsHide:!0,env:{...i,ELECTRON_RUN_AS_NODE:`1`}}),o=!1,s=e=>{o=!0;try{a.kill(e)}catch{}},c=()=>s(`SIGINT`),l=()=>s(`SIGTERM`);process.once(`SIGINT`,c),process.once(`SIGTERM`,l),await new Promise(e=>{a.on(`exit`,(t,n)=>{process.exitCode=Y(t,n,o),e()}),a.on(`error`,t=>{console.error(`[start] connect fallback: failed to spawn ok ui — ${t instanceof Error?t.message:String(t)}`),process.exitCode=1,e()})}),process.removeListener(`SIGINT`,c),process.removeListener(`SIGTERM`,l)}async function Z(e){let t=e.now()+e.timeoutMs;for(;e.now()<t;){let t=e.readUiLock();if(t&&t.port>0)return t.port;await e.sleep(e.pollIntervalMs)}let n=e.readUiLock();return n&&n.port>0?n.port:null}const re=t;function ie(e,t,n=e=>w(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}}}}function ae(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let t=e.sigtermGraceMs??re,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>T(e)),i=e.reason??`teardown`;try{let a=e.readUiLock(),o=e.spawnedUiPid();if(a&&e.isAlive(a.pid)&&a.pid!==o)e.log?.info({pid:a.pid,port:a.port,spawnedUiPid:o},`${i}: ui.lock holder is not our spawned sibling — leaving it alone`);else if(a&&e.isAlive(a.pid))try{e.killPid(a.pid,`SIGTERM`),e.log?.info({pid:a.pid,port:a.port},`${i}: SIGTERM UI sibling`);let o=Date.now()+t;for(;Date.now()<o&&e.isAlive(a.pid);)await r(n);if(e.isAlive(a.pid))try{e.killPid(a.pid,`SIGKILL`),e.log?.warn({pid:a.pid,graceMs:t},`${i}: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:a.pid,err:t},`${i}: SIGKILL failed`)}}catch(t){e.log?.warn({pid:a.pid,err:t},`${i}: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t},`${i}: UI lookup failed; proceeding`)}}function oe(e){let{destroy:t,...n}=e;return async()=>{await Q({...n,reason:`idle-shutdown`}),await t()}}async function se(e){let{config:t,cwd:n,host:o}=e,s=e.skipAutoInit??!1,d=e.skipUiAutoSpawn??!1,f=e.idleThresholdMs??18e5,{existsSync:p,mkdirSync:m}=await import(`node:fs`),{basename:h,dirname:g}=await import(`node:path`),{bootServer:_,getLogger:v,isProcessAlive:y,readUiLock:b,resolveContentDir:x,resolveLockDir:S,waitForServerLockDrain:C}=await import(`./src-DIjYfcIb.mjs`),w=e.log??v(`start`),E=e.singleFile!==void 0,D=e.projectDir??n,O=E?i(e.singleFile).canonicalFilePath:void 0,k=O?g(O):void 0,A=O?h(O):void 0;if(!E){if(!s&&!a(n))throw new W(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&w.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-Wiccuwea.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-Dv7Lnj9v.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-DHPneNpJ.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){w.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let j=k??x(t,n);!E&&!p(j)&&(m(j,{recursive:!0}),w.info({contentDir:j},`Created content directory`));let M=null,N=null,ee=async({lockDir:t})=>{if(M=G({uiLock:b(t),isAlive:y}),M.action===`spawn`&&!d)try{let r=e.uiPort===void 0?void 0:[`ui`,`--port`,String(e.uiPort)];N=K({lockDir:t,cwd:n,spawn:e.spawn,args:r}).pid??null,w.info({reason:M.reason,uiPort:e.uiPort},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else M.action===`skip`&&w.info({port:M.port,pid:M.pid},`UI already running at port ${M.port}`)},P=e.reactShellDistDir===void 0,F=c(),I=r();{let e=S(E?D:n),t=Date.now(),r=await C(e);r!==`no-drain`&&w.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}let L=await _({config:t,contentDir:j,projectDir:E?D:n,contentRoot:E?void 0:t.content.dir,port:e.port,host:o,...e.enableRemote===!0?{enableRemote:!0}:{},quiet:!1,detectGh:l,tokenStore:F,embeddingsKeyStore:I,...E?{ephemeral:!0,singleDocRelPath:A,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>u(e,t),attachUiSibling:P,idleShutdownMs:f,skipAutoInit:!0,...P?{spawnUiSiblingFn:ee}:{},idleShutdownHandler:t=>{let n=oe({readUiLock:()=>b(L.lockDir),spawnedUiPid:()=>N,isAlive:y,killPid:(e,t)=>{process.kill(e,t)},destroy:t,log:w});return ae(E?ie(n,D):n,{log:w,exit:e.idleExit})},log:w,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}});M||={action:`skip`,reason:`alive`,pid:0,port:0};let R=M,z=null;if(R.action===`skip`)z=R.port>0?R.port:null;else if(!d){let t=e.uiBindTimeoutMs??3e3;z=await Z({readUiLock:()=>b(L.lockDir),now:Date.now,sleep:e=>T(e),timeoutMs:t,pollIntervalMs:50}),z===null&&w.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:L.httpServer,destroy:L.destroy,lockDir:L.lockDir,contentDir:j,port:L.port,ready:L.ready,degraded:L.degraded,uiSpawnDecision:M,spawnedUiPid:N,resolvedUiPort:z}}function ce(e){if(e===`browser`||e===`app`)return e;throw new o(`--mode must be 'browser' or 'app'`)}function le(e){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<1||t>65535)throw new o(`--ui-port must be a port number between 1 and 65535`);return t}function ue(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function $(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function de(e,t){let n=ue(process.env);n!==null&&(process.env.OK_CONSOLE_LEVEL=n);let{renderBanner:r}=await import(`./banner-CIK2GwPx.mjs`),{accent:i,dim:a,error:o,warning:s}=await import(`./colors-MGDi6UGf.mjs`),c=process.cwd(),l=t.remote!==void 0&&t.remote!==!1,u=typeof t.remote==`string`?t.remote:void 0,f=u===void 0?e:{...e,remote:{...e.remote,url:u}};process.title=U(c),l&&(typeof f.remote?.url!=`string`||f.remote.url===``)&&(console.error(o("--remote requires a public tunnel URL — pass it (`ok start --remote https://<your-tunnel-host>`) or set remote.url in .ok/config.yml.")),process.exit(78)),l&&console.warn(s([``,`⚠ REMOTE ACCESS ENABLED — no server-side authentication.`,` Anyone who can reach ${f.remote?.url} has FULL control of this`,` knowledge base, including sync, publishing, credentials, and local operations.`,` Restrict who can reach it at the tunnel: ngrok OAuth, Cloudflare Access,`,` Tailscale ACLs, or equivalent edge auth.`,``].join(`
2
- `)));let p=V(t,process.env),m=H(p,l);m.coerced&&console.warn(`remote access is enabled and ${p} is not an IPv4 loopback bind — tunnels proxy to 127.0.0.1, so binding ${p} would leave the tunnel dialing a dead port. Using 127.0.0.1.`);let h=m.host,_=t.port===void 0?void 0:Number(t.port),v=process.env.PORT?Number(process.env.PORT):void 0,b=t.uiPort===void 0?void 0:Number(t.uiPort);l&&_===void 0&&v!==void 0&&console.warn(`remote access is enabled — ignoring env PORT=${process.env.PORT}; the tunnel's port mapping targets the stable remote port (${f.remote?.port}). Pass --port to override deliberately.`);let x=q(_,v,b,l)??(l?f.remote?.port:void 0);if(b!==void 0){let{readServerLock:e,resolveLockDir:t}=await import(`./src-DIjYfcIb.mjs`);if(J(b,e(t(c)))){await X({cwd:c,uiPort:b});return}}let S=t.reactShellDistDir;if(l&&S===void 0){let e=import.meta.dirname??new URL(`.`,import.meta.url).pathname;S=[g(e,`public`),g(e,`../../app/dist`),g(e,`../../../app/dist`)].find(e=>y(e)),S===void 0&&console.warn(`remote access: bundled web UI not found — serving /mcp and /api only over the tunnel.`)}let C;try{C=await se({config:f,cwd:c,host:h,port:x,...b===void 0?{}:{uiPort:b},...t.serveContentAssets===void 0?{}:{serveContentAssets:t.serveContentAssets},...S?{reactShellDistDir:S}:{},...t.singleFile?{singleFile:t.singleFile}:{},...t.projectDir?{projectDir:t.projectDir}:{},...l?{enableRemote:!0}:{}})}catch(e){e instanceof W&&(console.error(o(e.message)),process.exit(1));let t=await import(`./src-DIjYfcIb.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.RemoteConfigError&&(console.error(o(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(o(e.message)),process.exit(1)),b!==void 0&&fe(e,t)){await X({cwd:c,uiPort:b});return}let n=pe(e,c,t);n!==null&&(console.error(o(n)),process.exit(1)),console.error(`${o(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let w=!1,T=async e=>{if(w)return;w=!0;let[t,...n]=$(e);console.log(i(`\n${t}`));for(let e of n)console.log(a(` ${e}`));if(C.spawnedUiPid!==null)try{let{getLogger:e,isProcessAlive:t,readUiLock:n}=await import(`./src-DIjYfcIb.mjs`);await Q({readUiLock:()=>n(C.lockDir),spawnedUiPid:()=>C.spawnedUiPid,isAlive:t,killPid:(e,t)=>process.kill(e,t),log:e(`start`),reason:`shutdown`})}catch(e){console.error(`${o(`ui sibling teardown failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`)}try{await C.destroy()}catch(e){console.error(`${o(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{T(`SIGINT`)}),process.once(`SIGTERM`,()=>{T(`SIGTERM`)});let E=`http://${h}:${C.port}`,D=h===`0.0.0.0`||h===`::`?`http://0.0.0.0:${C.port}`:void 0,O=C.resolvedUiPort,k=O!==null&&O>0?`http://${h}:${O}`:E;console.log(r({name:`open-knowledge`,version:d,localUrl:k,apiUrl:k===E?void 0:E,networkUrl:D,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let A={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};C.ready.then(async()=>{if(C.degraded.length>0){console.log();for(let e of C.degraded){let t=A[e]??`${e} (check server logs for details)`;console.warn(` ${s(`⚠`)} ${s(e)}: ${a(t)}`)}console.log()}if(t.open){let{openBrowser:e}=await import(`./open-browser-svTSfejY.mjs`);e(k)}}).catch(e=>{console.error(` ${o(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}function fe(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function pe(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=m(t,`.ok`),r=n.readServerLock(e);return r?r.kind===`interactive`?`OpenKnowledge desktop is currently running on this project. Quit it or use --cwd to point elsewhere.`:r.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function me(e){return new s(`start`).description(`Start the knowledge base collab server`).option(`-p, --port <port>`,`Server port`,void 0).option(`--ui-port <port>`,`Pin the ok ui sibling to <port> and connect (not exit) if a server already runs here — the worktree-preview recipe path`,le).option(`-H, --host <host>`,`Server host`,void 0).option(`--open`,`Open browser after start`).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,ce).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path> (suppresses ok ui sibling)`).option(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).option(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).option(`--remote [url]`,`Serve through a tunnel: admit requests carrying the tunnel Host with NO server-side auth (anyone who can reach the URL has full control — restrict access at the tunnel with edge auth). Bare --remote uses remote.url from .ok/config.yml; --remote <url> supplies it for this run.`).action(async t=>{let n=e();if(t.mode===`app`){t.open&&(process.stderr.write(`error: option '--mode=app' cannot be combined with '--open' (--open opens a browser tab against the local server, which app mode does not boot)
1
+ import{Q as e,Y as t}from"./src-9BFQh559.mjs";import{En as n,Jr as r,a as i,ri as a}from"./src-9I3GiOoK.mjs";import{S as o,x as s}from"./write-project-skill-WXZSbQlg.mjs";import{a as c,n as l,t as u}from"./acp-harness-probe-DOXp9Wx4.mjs";import{n as d}from"./constants-J4-mibQ1.mjs";import{spawn as f}from"node:child_process";import{basename as p,join as m,posix as h,resolve as g,win32 as _}from"node:path";import{closeSync as v,existsSync as y,mkdirSync as b,openSync as x,statSync as S}from"node:fs";import{homedir as C}from"node:os";import{rm as w}from"node:fs/promises";import{setTimeout as T}from"node:timers/promises";function E(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function D(e,t,n={}){let i=(n.spawn??f)(e,[...t],r({detached:!0,stdio:`ignore`,env:E(n.env??process.env)}));return i.unref(),i}const O=`OpenKnowledge.app`,k=`/Applications/${O}`;function A(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return S(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function j(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(M(e,k))return k;let t=m(e.homeDir??C(),`Applications`,O);return M(e,t)?t:null}function M(e,t){return N(e,m(t,`Contents`,`MacOS`,`OpenKnowledge`))}function N(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const ee=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function P(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of ee){let r=_.join(t,`Programs`,n,`OpenKnowledge.exe`);if(N(e,r))return r}return null}function F(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return N(e,t)?t:null}function I(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?j(e):e.platform===`win32`?P(e):F(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:!(e.isTTY===!0||e.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function L(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){D(`open`,[`-b`,`com.inkeep.open-knowledge`],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}D(i,[],{spawn:e.spawn})}function R(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function z(e){return h.join(h.dirname(e),`..`,`Frameworks`,`OpenKnowledge Server.app`,`Contents`,`MacOS`,`OpenKnowledge Helper`)}const te=/\/[^/]+\.app\/Contents\/MacOS\/[^/]+$/;function ne(e){if(e.platform!==`darwin`||!te.test(e.execPath))return null;let t=z(e.execPath);return e.exists(t)?t:null}function B(e={}){let t=e.execPath??process.execPath,n=e.platform??process.platform,r=e.argv??process.argv,i=e.exists??y,a=r[1];return a?{command:ne({execPath:t,platform:n,exists:i})??t,prefixArgs:[a]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(r)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function V(e,t){return e.host??t.HOST??`127.0.0.1`}function H(e,t){return t&&(e===`::`||e===`::1`||e===`[::1]`||e===`localhost`||e===`0.0.0.0`)?{host:`127.0.0.1`,coerced:!0}:{host:e,coerced:!1}}function U(e){let t=p(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var W=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function G(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function K(t){y(t.lockDir)||b(t.lockDir,{recursive:!0});let n=x(m(t.lockDir,e),`w`),r=t.spawn??f,{PORT:i,...a}=process.env,o=B();try{let e=r(o.command,[...o.prefixArgs,...t.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,n],windowsHide:!0,cwd:t.cwd,env:{...a,ELECTRON_RUN_AS_NODE:`1`}});return e.unref(),e}finally{try{v(n)}catch{}}}function q(e,t,n,r=!1){return e??(n!==void 0||r?void 0:t)}function J(e,t){return e!==void 0&&t!==null&&t.port>0&&t.draining!==!0}function Y(e,t,n){return e??+(t!=null&&!n)}async function X(e){let t=e.spawn??f,n=B(),{PORT:r,...i}=process.env,a=t(n.command,[...n.prefixArgs,`ui`,`--port`,String(e.uiPort)],{cwd:e.cwd,stdio:`inherit`,windowsHide:!0,env:{...i,ELECTRON_RUN_AS_NODE:`1`}}),o=!1,s=e=>{o=!0;try{a.kill(e)}catch{}},c=()=>s(`SIGINT`),l=()=>s(`SIGTERM`);process.once(`SIGINT`,c),process.once(`SIGTERM`,l),await new Promise(e=>{a.on(`exit`,(t,n)=>{process.exitCode=Y(t,n,o),e()}),a.on(`error`,t=>{console.error(`[start] connect fallback: failed to spawn ok ui — ${t instanceof Error?t.message:String(t)}`),process.exitCode=1,e()})}),process.removeListener(`SIGINT`,c),process.removeListener(`SIGTERM`,l)}async function Z(e){let t=e.now()+e.timeoutMs;for(;e.now()<t;){let t=e.readUiLock();if(t&&t.port>0)return t.port;await e.sleep(e.pollIntervalMs)}let n=e.readUiLock();return n&&n.port>0?n.port:null}const re=t;function ie(e,t,n=e=>w(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}}}}function ae(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let t=e.sigtermGraceMs??re,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>T(e)),i=e.reason??`teardown`;try{let a=e.readUiLock(),o=e.spawnedUiPid();if(a&&e.isAlive(a.pid)&&a.pid!==o)e.log?.info({pid:a.pid,port:a.port,spawnedUiPid:o},`${i}: ui.lock holder is not our spawned sibling — leaving it alone`);else if(a&&e.isAlive(a.pid))try{e.killPid(a.pid,`SIGTERM`),e.log?.info({pid:a.pid,port:a.port},`${i}: SIGTERM UI sibling`);let o=Date.now()+t;for(;Date.now()<o&&e.isAlive(a.pid);)await r(n);if(e.isAlive(a.pid))try{e.killPid(a.pid,`SIGKILL`),e.log?.warn({pid:a.pid,graceMs:t},`${i}: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:a.pid,err:t},`${i}: SIGKILL failed`)}}catch(t){e.log?.warn({pid:a.pid,err:t},`${i}: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t},`${i}: UI lookup failed; proceeding`)}}function oe(e){let{destroy:t,...n}=e;return async()=>{await Q({...n,reason:`idle-shutdown`}),await t()}}async function se(e){let{config:t,cwd:r,host:o}=e,s=e.skipAutoInit??!1,d=e.skipUiAutoSpawn??!1,f=e.idleThresholdMs??18e5,{existsSync:p,mkdirSync:m}=await import(`node:fs`),{basename:h,dirname:g}=await import(`node:path`),{bootServer:_,getLogger:v,isProcessAlive:y,readUiLock:b,resolveContentDir:x,resolveLockDir:S,waitForServerLockDrain:C}=await import(`./src-h5dDPK2z.mjs`),w=e.log??v(`start`),E=e.singleFile!==void 0,D=e.projectDir??r,O=E?i(e.singleFile).canonicalFilePath:void 0,k=O?g(O):void 0,A=O?h(O):void 0;if(!E){if(!s&&!n(r))throw new W(r);let t=process.env.OK_RECLAIM_DISABLE??null,i=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&w.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-DY0FS2-y.mjs`)).repairMcpConfigs)({projectDir:r,reclaimDisableEnv:t,logger:i})}catch(e){w.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-Cq9ghST3.mjs`)).repairLaunchJson)({projectDir:r,reclaimDisableEnv:t,logger:i})}catch(e){w.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-l9Id0gzv.mjs`)).repairSkills)({projectDir:r,reclaimDisableEnv:t,logger:i})}catch(e){w.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let j=k??x(t,r);!E&&!p(j)&&(m(j,{recursive:!0}),w.info({contentDir:j},`Created content directory`));let M=null,N=null,ee=async({lockDir:t})=>{if(M=G({uiLock:b(t),isAlive:y}),M.action===`spawn`&&!d)try{let n=e.uiPort===void 0?void 0:[`ui`,`--port`,String(e.uiPort)];N=K({lockDir:t,cwd:r,spawn:e.spawn,args:n}).pid??null,w.info({reason:M.reason,uiPort:e.uiPort},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else M.action===`skip`&&w.info({port:M.port,pid:M.pid},`UI already running at port ${M.port}`)},P=e.reactShellDistDir===void 0,F=c(),I=a();{let e=S(E?D:r),t=Date.now(),n=await C(e);n!==`no-drain`&&w.info({event:`start-waited-for-draining-predecessor`,outcome:n,waitedMs:Date.now()-t,drainLockDir:e},n===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}let L=await _({config:t,contentDir:j,projectDir:E?D:r,contentRoot:E?void 0:t.content.dir,port:e.port,host:o,...e.enableRemote===!0?{enableRemote:!0}:{},quiet:!1,detectGh:l,tokenStore:F,embeddingsKeyStore:I,...E?{ephemeral:!0,singleDocRelPath:A,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>u(e,t),attachUiSibling:P,idleShutdownMs:f,skipAutoInit:!0,...P?{spawnUiSiblingFn:ee}:{},idleShutdownHandler:t=>{let n=oe({readUiLock:()=>b(L.lockDir),spawnedUiPid:()=>N,isAlive:y,killPid:(e,t)=>{process.kill(e,t)},destroy:t,log:w});return ae(E?ie(n,D):n,{log:w,exit:e.idleExit})},log:w,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}});M||={action:`skip`,reason:`alive`,pid:0,port:0};let R=M,z=null;if(R.action===`skip`)z=R.port>0?R.port:null;else if(!d){let t=e.uiBindTimeoutMs??3e3;z=await Z({readUiLock:()=>b(L.lockDir),now:Date.now,sleep:e=>T(e),timeoutMs:t,pollIntervalMs:50}),z===null&&w.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:L.httpServer,destroy:L.destroy,lockDir:L.lockDir,contentDir:j,port:L.port,ready:L.ready,degraded:L.degraded,uiSpawnDecision:M,spawnedUiPid:N,resolvedUiPort:z}}function ce(e){if(e===`browser`||e===`app`)return e;throw new o(`--mode must be 'browser' or 'app'`)}function le(e){let t=Number.parseInt(e,10);if(Number.isNaN(t)||t<1||t>65535)throw new o(`--ui-port must be a port number between 1 and 65535`);return t}function ue(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function $(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function de(e,t){let n=ue(process.env);n!==null&&(process.env.OK_CONSOLE_LEVEL=n);let{renderBanner:r}=await import(`./banner-CIK2GwPx.mjs`),{accent:i,dim:a,error:o,warning:s}=await import(`./colors-MGDi6UGf.mjs`),c=process.cwd(),l=t.remote!==void 0&&t.remote!==!1,u=typeof t.remote==`string`?t.remote:void 0,f=u===void 0?e:{...e,remote:{...e.remote,url:u}};process.title=U(c),l&&(typeof f.remote?.url!=`string`||f.remote.url===``)&&(console.error(o("--remote requires a public tunnel URL — pass it (`ok start --remote https://<your-tunnel-host>`) or set remote.url in .ok/config.yml.")),process.exit(78)),l&&console.warn(s([``,`⚠ REMOTE ACCESS ENABLED — no server-side authentication.`,` Anyone who can reach ${f.remote?.url} has FULL control of this`,` knowledge base, including sync, publishing, credentials, and local operations.`,` Restrict who can reach it at the tunnel: ngrok OAuth, Cloudflare Access,`,` Tailscale ACLs, or equivalent edge auth.`,``].join(`
2
+ `)));let p=V(t,process.env),m=H(p,l);m.coerced&&console.warn(`remote access is enabled and ${p} is not an IPv4 loopback bind — tunnels proxy to 127.0.0.1, so binding ${p} would leave the tunnel dialing a dead port. Using 127.0.0.1.`);let h=m.host,_=t.port===void 0?void 0:Number(t.port),v=process.env.PORT?Number(process.env.PORT):void 0,b=t.uiPort===void 0?void 0:Number(t.uiPort);l&&_===void 0&&v!==void 0&&console.warn(`remote access is enabled — ignoring env PORT=${process.env.PORT}; the tunnel's port mapping targets the stable remote port (${f.remote?.port}). Pass --port to override deliberately.`);let x=q(_,v,b,l)??(l?f.remote?.port:void 0);if(b!==void 0){let{readServerLock:e,resolveLockDir:t}=await import(`./src-h5dDPK2z.mjs`);if(J(b,e(t(c)))){await X({cwd:c,uiPort:b});return}}let S=t.reactShellDistDir;if(l&&S===void 0){let e=import.meta.dirname??new URL(`.`,import.meta.url).pathname;S=[g(e,`public`),g(e,`../../app/dist`),g(e,`../../../app/dist`)].find(e=>y(e)),S===void 0&&console.warn(`remote access: bundled web UI not found — serving /mcp and /api only over the tunnel.`)}let C;try{C=await se({config:f,cwd:c,host:h,port:x,...b===void 0?{}:{uiPort:b},...t.serveContentAssets===void 0?{}:{serveContentAssets:t.serveContentAssets},...S?{reactShellDistDir:S}:{},...t.singleFile?{singleFile:t.singleFile}:{},...t.projectDir?{projectDir:t.projectDir}:{},...l?{enableRemote:!0}:{}})}catch(e){e instanceof W&&(console.error(o(e.message)),process.exit(1));let t=await import(`./src-h5dDPK2z.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.RemoteConfigError&&(console.error(o(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(o(e.message)),process.exit(1)),b!==void 0&&fe(e,t)){await X({cwd:c,uiPort:b});return}let n=pe(e,c,t);n!==null&&(console.error(o(n)),process.exit(1)),console.error(`${o(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let w=!1,T=async e=>{if(w)return;w=!0;let[t,...n]=$(e);console.log(i(`\n${t}`));for(let e of n)console.log(a(` ${e}`));if(C.spawnedUiPid!==null)try{let{getLogger:e,isProcessAlive:t,readUiLock:n}=await import(`./src-h5dDPK2z.mjs`);await Q({readUiLock:()=>n(C.lockDir),spawnedUiPid:()=>C.spawnedUiPid,isAlive:t,killPid:(e,t)=>process.kill(e,t),log:e(`start`),reason:`shutdown`})}catch(e){console.error(`${o(`ui sibling teardown failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`)}try{await C.destroy()}catch(e){console.error(`${o(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{T(`SIGINT`)}),process.once(`SIGTERM`,()=>{T(`SIGTERM`)});let E=`http://${h}:${C.port}`,D=h===`0.0.0.0`||h===`::`?`http://0.0.0.0:${C.port}`:void 0,O=C.resolvedUiPort,k=O!==null&&O>0?`http://${h}:${O}`:E;console.log(r({name:`open-knowledge`,version:d,localUrl:k,apiUrl:k===E?void 0:E,networkUrl:D,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let A={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};C.ready.then(async()=>{if(C.degraded.length>0){console.log();for(let e of C.degraded){let t=A[e]??`${e} (check server logs for details)`;console.warn(` ${s(`⚠`)} ${s(e)}: ${a(t)}`)}console.log()}if(t.open){let{openBrowser:e}=await import(`./open-browser-CxnOIVsL.mjs`);e(k)}}).catch(e=>{console.error(` ${o(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}function fe(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function pe(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=m(t,`.ok`),r=n.readServerLock(e);return r?r.kind===`interactive`?`OpenKnowledge desktop is currently running on this project. Quit it or use --cwd to point elsewhere.`:r.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function me(e){return new s(`start`).description(`Start the knowledge base collab server`).option(`-p, --port <port>`,`Server port`,void 0).option(`--ui-port <port>`,`Pin the ok ui sibling to <port> and connect (not exit) if a server already runs here — the worktree-preview recipe path`,le).option(`-H, --host <host>`,`Server host`,void 0).option(`--open`,`Open browser after start`).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,ce).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path> (suppresses ok ui sibling)`).option(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).option(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).option(`--remote [url]`,`Serve through a tunnel: admit requests carrying the tunnel Host with NO server-side auth (anyone who can reach the URL has full control — restrict access at the tunnel with edge auth). Bare --remote uses remote.url from .ok/config.yml; --remote <url> supplies it for this run.`).action(async t=>{let n=e();if(t.mode===`app`){t.open&&(process.stderr.write(`error: option '--mode=app' cannot be combined with '--open' (--open opens a browser tab against the local server, which app mode does not boot)
3
3
  `),process.exit(2));let e=[];if(t.port!==void 0&&e.push(`--port`),t.uiPort!==void 0&&e.push(`--ui-port`),t.host!==void 0&&e.push(`--host`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=I(A());if(n.available){L({spawn:f},n);return}console.error(R(n.reason)),process.exit(1)}await de(n,t)})}export{B as C,D,L as E,ae as S,I as T,K as _,H as a,pe as b,G as c,fe as d,q as f,J as g,de as h,oe as i,U as l,ue as m,Z as n,Y as o,V as p,se as r,X as s,W as t,$ as u,me as v,A as w,ie as x,Q as y};
4
- //# sourceMappingURL=start-BzOb2Q7k.mjs.map
4
+ //# sourceMappingURL=start-C4KuZHu5.mjs.map
@@ -1,4 +1,4 @@
1
- import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{Jo as r,Po as i,Uo as a,Wo as o}from"./src-azBs1EPY.mjs";import{kr as s,lr as c}from"./src-DoSxfvJP.mjs";import{basename as l,dirname as u,isAbsolute as d,join as f,posix as p,relative as m,resolve as h,sep as g,win32 as _}from"node:path";import{cpSync as ee,existsSync as v,lstatSync as te,mkdirSync as ne,readFileSync as re,realpathSync as y,rmSync as b,statSync as x}from"node:fs";import{homedir as S}from"node:os";var C=n((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),w=n((e=>{let{InvalidArgumentError:t}=C();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),T=n((e=>{let{humanReadableArgName:t}=w();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
1
+ import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{Jo as r,Po as i,Uo as a,Wo as o}from"./src-9BFQh559.mjs";import{Ir as s,gr as c}from"./src-9I3GiOoK.mjs";import{basename as l,dirname as u,isAbsolute as d,join as f,posix as p,relative as m,resolve as h,sep as g,win32 as _}from"node:path";import{cpSync as ee,existsSync as v,lstatSync as te,mkdirSync as ne,readFileSync as re,realpathSync as y,rmSync as b,statSync as x}from"node:fs";import{homedir as S}from"node:os";var C=n((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),w=n((e=>{let{InvalidArgumentError:t}=C();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),T=n((e=>{let{humanReadableArgName:t}=w();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
2
2
  `)}displayWidth(e){return r(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
3
3
  `+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
4
4
  `)}};function r(e){return e.replace(/\x1b\[\d*(;\d*)*m/g,``)}e.Help=n,e.stripColor=r})),E=n((e=>{let{InvalidArgumentError:t}=C();var n=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=a(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?i(this.name().replace(/^no-/,``)):i(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},r=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r===void 0?!1:r;return t.negate===(i===e)}};function i(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function a(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
@@ -53,4 +53,4 @@ foreach ($d in $dirs) {
53
53
  }
54
54
  [Console]::Error.WriteLine('OpenKnowledge: install Node.js 24+ (npm i -g @inkeep/open-knowledge), then restart your editor')
55
55
  exit 127`,P=`// ok-pi-bridge`,F=`${P}-v1`,I=`ok-pi-managed-extension`;function L(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.command===`/bin/sh`){if(!Array.isArray(t.args)||t.args[0]!==`-l`||t.args[1]!==`-c`)return!1;let e=t.args[2];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command===`powershell`){if(!Array.isArray(t.args)||t.args[0]!==`-NoProfile`||t.args[1]!==`-NonInteractive`||t.args[2]!==`-Command`)return!1;let e=t.args[3];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}if(t.type===`local`&&Array.isArray(t.command)){if(t.command[0]===`/bin/sh`){if(t.command[1]!==`-l`||t.command[2]!==`-c`)return!1;let e=t.command[3];return typeof e==`string`&&e.includes(`# ok-mcp-v2`)}if(t.command[0]===`powershell`){if(t.command[1]!==`-NoProfile`||t.command[2]!==`-NonInteractive`||t.command[3]!==`-Command`)return!1;let e=t.command[4];return typeof e==`string`&&e.includes(`# ok-mcp-win-v1`)}return!1}if(t.command===`ok-pi-managed-extension`){if(!Array.isArray(t.args))return!1;let e=t.args[0];return typeof e==`string`&&e.startsWith(F)}return!1}function R(e=process.argv[1]){if(!e)throw Error(`Cannot infer the local CLI entry for --dev-mcp because process.argv[1] is empty.`);let t=h(e);if(l(t)===`cli.mjs`&&l(u(t))===`dist`)return t;let n=t.split(g),r=n.lastIndexOf(`packages`);if(r===-1||n[r+1]!==`cli`)throw Error(`Cannot infer the repo root for --dev-mcp from ${t}. Run the local CLI from this repo so the built dist path can be derived.`);let i=n.slice(0,r);return f(i.length===0?g:i.join(g),`packages`,`cli`,`dist`,`cli.mjs`)}function z(e={}){return e.mode===`dev`?{command:A,args:[R(),`mcp`],env:{...j}}:(e.platformName??process.platform)===`win32`?{command:`powershell`,args:[`-NoProfile`,`-NonInteractive`,`-Command`,N]}:{command:`/bin/sh`,args:[`-l`,`-c`,M]}}function _e(e={}){return e.mode===`dev`?{type:`local`,enabled:!0,command:[A,R(),`mcp`],environment:{...j}}:(e.platformName??process.platform)===`win32`?{type:`local`,enabled:!0,command:[`powershell`,`-NoProfile`,`-NonInteractive`,`-Command`,N]}:{type:`local`,enabled:!0,command:[`/bin/sh`,`-l`,`-c`,M]}}function ve(e){if(typeof e!=`object`||!e)return!1;let t=e;return B(t,z({mode:`published`,platformName:`darwin`}))||B(t,z({mode:`published`,platformName:`win32`}))}function B(e,t){return Object.keys(e).length===Object.keys(t).length?ye(e,t):!1}function ye(e,t){if(e.command!==t.command)return!1;let n=t.args;return!Array.isArray(n)||!Array.isArray(e.args)||e.args.length!==n.length?!1:e.args.every((e,t)=>e===n[t])}function V(e,t){let n=e=>typeof e==`string`&&e.includes(`# ok-mcp`);return t===`/bin/sh`?e[0]===`-l`&&e[1]===`-c`&&n(e[2]):t===`powershell`?e[0]===`-NoProfile`&&e[1]===`-NonInteractive`&&e[2]===`-Command`&&n(e[3]):!1}function be(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.enabled===!1||typeof t.command!=`string`||!Array.isArray(t.args)?!1:V(t.args,t.command)}function xe(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.type!==`local`||t.enabled===!1||!Array.isArray(t.command))return!1;let[n,...r]=t.command;return typeof n==`string`&&V(r,n)}function H(e){return e===`win32`?_:p}function Se(e={}){let t=e.platformName??process.platform,n=e.home??S(),r=e.env??process.env,i=H(t);return t===`darwin`?i.join(n,`Library`,`Application Support`):t===`win32`?r.APPDATA??i.join(n,`AppData`,`Roaming`):r.XDG_CONFIG_HOME??i.join(n,`.config`)}function Ce(e={}){let t=e.platformName??process.platform,n=e.home??S();return H(t).join(n,`.claude.json`)}function U(e={}){let t=e.platformName??process.platform,n=e.home??S(),r=e.env??process.env;if(t===`darwin`)return p.join(n,`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`);if(t===`win32`){let e=r.APPDATA??_.join(n,`AppData`,`Roaming`);return _.join(e,`Claude`,`claude_desktop_config.json`)}throw Error(`Claude Desktop is not available on ${t}. Supported: macOS, Windows.`)}function W(e={}){let t=e.platformName??process.platform,n=e.home??S();return H(t).join(n,`.cursor`,`mcp.json`)}function we(e={}){let t=e.platformName??process.platform,n=e.home??S();return(e.env??process.env).CODEX_HOME??H(t).join(n,`.codex`)}function G(e={}){return H(e.platformName??process.platform).join(we(e),`config.toml`)}function K(e={}){let t=e.platformName??process.platform,n=e.home??S(),r=(e.env??process.env).COPILOT_HOME??H(t).join(n,`.copilot`);return H(t).join(r,`mcp-config.json`)}function Te(e={}){let t=e.platformName??process.platform,n=e.home??S(),r=e.env??process.env,i=H(t);if(t===`win32`){let e=r.APPDATA??i.join(n,`AppData`,`Roaming`);return i.join(e,`opencode`)}let a=r.XDG_CONFIG_HOME??i.join(n,`.config`);return i.join(a,`opencode`)}function q(e={}){return H(e.platformName??process.platform).join(Te(e),`opencode.json`)}function Ee(e={}){let t=e.platformName??process.platform,n=e.home??S();return H(t).join(n,`.openclaw`,`openclaw.json`)}function De(e={}){let t=e.platformName??process.platform,n=e.home??S();return H(t).join(n,`.hermes`,`config.yaml`)}function Oe(e={}){let t=e.platformName??process.platform,n=e.home??S();return(e.env??process.env).PI_CODING_AGENT_DIR??H(t).join(n,`.pi`,`agent`)}function ke(e={}){let t=e.platformName??process.platform,n=e.home??S();return H(t).join(n,`.gemini`,`config`,`mcp_config.json`)}function Ae(e,t){let n=H(t),r=n.join(e,`.lmstudio`,`mcp.json`),i=n.join(e,`.cache`,`lm-studio`,`mcp.json`);return t===`darwin`?[i,r]:[r,i]}function J(e={}){let t=e.platformName??process.platform,n=Ae(e.home??S(),t);return n.find(e=>v(e))||n.find(e=>v(u(e)))||n[0]}function je(e){let t=e.serverName(``);return e.format===`toml`?`[${e.topLevelKey}.${t}]`:[e.topLevelKey,e.serverMapSubKey,t].filter(Boolean).join(`.`)}function Me(e,t){let n;try{n=e.configPath(``,t)}catch{return null}return n.startsWith(`${t}/`)?`~${n.slice(t.length)}`:n}const Y={claude:{id:`claude`,label:k.claude,configPath:(e,t)=>Ce({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(t??S(),`.claude`),projectConfigPath:e=>f(e,`.mcp.json`),projectSkillPath:e=>f(e,`.claude`,`skills`,`open-knowledge`,`SKILL.md`)},"claude-desktop":{id:`claude-desktop`,label:k[`claude-desktop`],configPath:(e,t)=>U({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>u(U({home:t}))},cursor:{id:`cursor`,label:k.cursor,configPath:(e,t)=>W({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>u(W({home:t})),projectConfigPath:e=>f(e,`.cursor`,`mcp.json`),projectSkillPath:e=>f(e,`.cursor`,`skills`,`open-knowledge`,`SKILL.md`)},codex:{id:`codex`,label:k.codex,configPath:(e,t)=>G({home:t}),format:`toml`,topLevelKey:`mcp_servers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>u(G({home:t})),projectConfigPath:e=>f(e,`.codex`,`config.toml`),projectSkillPath:e=>f(e,`.codex`,`skills`,`open-knowledge`,`SKILL.md`)},copilot:{id:`copilot`,label:k.copilot,configPath:(e,t)=>K({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>u(K({home:t})),projectSkillPath:e=>f(e,`.github`,`skills`,`open-knowledge`,`SKILL.md`)},opencode:{id:`opencode`,label:k.opencode,configPath:(e,t)=>q({home:t}),format:`json`,topLevelKey:`mcp`,serverName:()=>i,buildEntry:(e,t)=>_e(t),scope:`global`,detectPath:(e,t)=>u(q({home:t})),projectConfigPath:e=>f(e,`opencode.json`),projectSkillPath:e=>f(e,`.opencode`,`skills`,`open-knowledge`,`SKILL.md`)},openclaw:{id:`openclaw`,label:k.openclaw,configPath:(e,t)=>Ee({home:t}),format:`json`,topLevelKey:`mcp`,serverMapSubKey:`servers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(t??S(),`.openclaw`),offerOnlyWhenDetected:!0},pi:{id:`pi`,label:k.pi,configPath:()=>{throw Error("Pi has no user-global MCP config; OK's integration is the project-scoped bridge extension at .pi/extensions/open-knowledge.ts (run `ok init` in the project).")},format:`file`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:()=>{throw Error(`Pi has no MCP entry shape; the managed bridge file is built by buildPiExtensionSource (integrations/pi-extension.ts).`)},scope:`project`,detectPath:(e,t)=>Oe({home:t}),projectConfigPath:e=>f(e,`.pi`,`extensions`,`open-knowledge.ts`),projectSkillPath:e=>f(e,`.pi`,`skills`,`open-knowledge`,`SKILL.md`)},antigravity:{id:`antigravity`,label:k.antigravity,configPath:(e,t)=>ke({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(t??S(),`.gemini`),offerOnlyWhenDetected:!0},"lm-studio":{id:`lm-studio`,label:k[`lm-studio`],configPath:(e,t)=>J({home:t}),format:`json`,topLevelKey:`mcpServers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>u(J({home:t})),offerOnlyWhenDetected:!0},hermes:{id:`hermes`,label:k.hermes,configPath:(e,t)=>De({home:t}),format:`yaml`,topLevelKey:`mcp_servers`,serverName:()=>i,buildEntry:(e,t)=>z(t),scope:`global`,detectPath:(e,t)=>f(t??S(),`.hermes`),offerOnlyWhenDetected:!0}};function Ne(e){let t=e.filter(e=>!Object.hasOwn(Y,e));if(t.length>0)throw Error(`Unknown editor(s): ${t.join(`, `)}. Valid options: ${O.join(`, `)}`);return e.map(e=>Y[e])}function X(e,t){let n;try{n=te(e)}catch(e){if(e.code!==`ENOENT`)throw e}if(n?.isSymbolicLink())throw Error(`Refusing to write through a symbolic link at ${e}. Remove the symlink and re-run project setup.`);Q(e,t)}function Z(e,t){Q(e,t)}function Q(e,t){let n;try{n=y(t)}catch{n=h(t)}let r=u(e);for(;r.length>1&&r!==g;){let t;try{t=y(r)}catch(e){if(e.code===`ENOENT`){r=u(r);continue}throw e}let i=m(n,t);if(i===``||!i.startsWith(`..`)&&!d(i))return;throw Error(`Refusing to write at ${e}: ancestor ${r} resolves to ${t}, which is outside the project directory ${n}. A symbolic link in the path likely escapes the project. Remove the symlink and re-run project setup.`)}}function $(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pe(e,t,n){try{if(x(n).size>10485760)return!1}catch{return!1}let r;try{r=re(n,`utf-8`)}catch{return!1}let i=[],a=s(r.charCodeAt(0)===65279?r.slice(1):r,i,{allowTrailingComma:!0,disallowComments:!1});if(i.length>0||!$(a))return!1;let o=a[e.topLevelKey];if(!$(o))return!1;let c=e.serverMapSubKey?o[e.serverMapSubKey]:o;return $(c)?$(c[e.serverName(t)]):!1}function Fe(e,t,n={}){if(e.id!==`copilot`)return!0;try{return Pe(e,t,e.configPath(t,n.home))}catch{return!1}}function Ie(e,t,n={}){let r=e.projectSkillPath?.(t);if(!r)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};if(!Fe(e,t,n))return{editorId:e.id,label:e.label,action:`skipped-prerequisite`,path:r};try{let n=c(`project`,{checkDesktop:!0}),i=u(r);X(i,t);let a=v(r)?`overwritten`:`written`;return b(i,{recursive:!0,force:!0}),ne(u(i),{recursive:!0}),ee(n,i,{recursive:!0}),{editorId:e.id,label:e.label,action:a,path:r}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:r,error:t instanceof Error?t.message:String(t)}}}function Le(e,t){let n=e.projectSkillPath?.(t);if(!n)return{editorId:e.id,label:e.label,action:`skipped-unsupported`,path:``};try{let r=u(n);return v(n)?(Z(r,t),b(r,{recursive:!0,force:!0}),{editorId:e.id,label:e.label,action:`removed`,path:n}):{editorId:e.id,label:e.label,action:`not-present`,path:n}}catch(t){return{editorId:e.id,label:e.label,action:`failed`,path:n,error:t instanceof Error?t.message:String(t)}}}export{me as C,D as S,ve as _,O as a,Ne as b,ge as c,I as d,z as f,L as g,be as h,Ie as i,P as l,je as m,Z as n,k as o,Me as p,Le as r,Y as s,X as t,F as u,xe as v,fe as x,Se as y};
56
- //# sourceMappingURL=write-project-skill-B77kdJNQ.mjs.map
56
+ //# sourceMappingURL=write-project-skill-WXZSbQlg.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/open-knowledge",
3
- "version": "0.49.0-beta.8",
3
+ "version": "0.49.0",
4
4
  "license": "GPL-3.0-or-later",
5
5
  "private": false,
6
6
  "type": "module",
@@ -61,10 +61,10 @@
61
61
  "ajv-formats": "^3.0.1",
62
62
  "tsdown": "^0.21.7",
63
63
  "typescript": "^5.9.3",
64
- "@inkeep/open-knowledge-app": "0.49.0-beta.8",
65
- "@inkeep/open-knowledge-core": "0.49.0-beta.8",
64
+ "@inkeep/open-knowledge-app": "0.49.0",
65
+ "@inkeep/open-knowledge-core": "0.49.0",
66
66
  "@inkeep/open-knowledge-native-config": "0.0.0",
67
- "@inkeep/open-knowledge-server": "0.49.0-beta.8"
67
+ "@inkeep/open-knowledge-server": "0.49.0"
68
68
  },
69
69
  "scripts": {
70
70
  "build:cli": "tsdown",
@@ -1,2 +0,0 @@
1
- import"./src-azBs1EPY.mjs";var e=`0.49.0-beta.8`;const t=`config.yml`,n=e;export{n,t};
2
- //# sourceMappingURL=constants-PCQO1EGt.mjs.map
@@ -1 +0,0 @@
1
- import{_ as e,c as t}from"./fs-traced-Cq61rC8q.mjs";export{t as tracedMkdir,e as tracedWriteFile};
@@ -1 +0,0 @@
1
- import{r as e}from"./git-handle-DyGrpFVy.mjs";export{e as createGitInstance};
@@ -1 +0,0 @@
1
- import{g as e}from"./init-CIx--I41.mjs";export{e as runInit};
@@ -1 +0,0 @@
1
- import{n as e}from"./loader-BLqQZ5Tv.mjs";export{e as loadConfig};
@@ -1,2 +0,0 @@
1
- import{Pa as e,bo as t,ho as n}from"./src-azBs1EPY.mjs";const r=new e({extensions:n,deriveStructuralFreshness:!0}),i=t(n);export{i as n,r as t};
2
- //# sourceMappingURL=md-manager-C54e9m9K.mjs.map
@@ -1 +0,0 @@
1
- import{n as e,t}from"./preview-BpDiVSjC.mjs";export{t as formatPreviewBlock,e as previewContent};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./jsx-runtime-BUgB2tll.js";import{t as n}from"./react-f2sANaYj.js";import{n as r,r as i}from"./dist-Nvb76hAm.js";import{t as a}from"./compiler-runtime-BfE3aGVn.js";import{t as o}from"./button-RQ5o7P7w.js";import{n as s,r as c,t as l}from"./collapsible-OhEmjTXw.js";import{t as u}from"./createLucideIcon-BbgVV4EV.js";import{t as d}from"./chevron-down-CRb8csep.js";import{t as f}from"./folder-open-ee990ToL.js";import{t as p}from"./loader-circle-B0OUuKph.js";import{t as m}from"./trash-2-Ccq_llrY.js";import{t as h}from"./badge-CnYDYmI5.js";var g=u(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),_=a(),v=e(n(),1),y=t();function b(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.max(1,Math.round(e/1024))} KB`:`${e} B`}function x(){let e=(0,_.c)(13),[t,n]=(0,v.useState)(`loading`),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0];let[i,a]=(0,v.useState)(r),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o={},e[1]=o):o=e[1];let[s,c]=(0,v.useState)(o),l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=async function(){let e=window.okDesktop?.bugReport;if(!e){n(`error`);return}try{let t=await e.list();t.ok?(a(t.reports),n(`ready`)):n(`error`)}catch{n(`error`)}},e[2]=l):l=e[2];let u=l,d,f;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{u()},f=[],e[3]=d,e[4]=f):(d=e[3],f=e[4]),(0,v.useEffect)(d,f);let p;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=function(e){c(t=>{if(!(e in t))return t;let n={...t};return delete n[e],n})},e[5]=p):p=e[5];let m=p,h;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=async function(e){let t=window.okDesktop?.bugReport;if(!t||!e.retryable)return;c(t=>({...t,[e.id]:`retrying`}));let n=await t.send({zipPath:e.zipPath,metadata:{level:e.bundleLevel===`unknown`?`standard`:e.bundleLevel,systemWide:e.systemWide,projectSlug:e.projectSlug}}).catch(C);n&&!n.ok&&n.reason===`email-draft`&&window.okDesktop?.shell.openExternal(n.fallback.mailtoUrl),await u(),m(e.id)},e[6]=h):h=e[6];let g=h,y;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=async function(e){let t=window.okDesktop?.bugReport;t&&(c(t=>({...t,[e.id]:`deleting`})),await t.delete(e.id).catch(S),await u(),m(e.id))},e[7]=y):y=e[7];let b=y,x;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(x=function(e){window.okDesktop?.shell.showItemInFolder(e.zipPath)},e[8]=x):x=e[8];let w=x,T;return e[9]!==s||e[10]!==i||e[11]!==t?(T={status:t,reports:i,pending:s,retry:g,remove:b,reveal:w},e[9]=s,e[10]=i,e[11]=t,e[12]=T):T=e[12],T}function S(){}function C(){return null}function w(e){let t=(0,_.c)(6),{state:n}=e;switch(n){case`sent`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(h,{variant:`primary`,children:(0,y.jsx)(r,{id:`h69WC6`})}),t[0]=e):e=t[0],e}case`upload-failed`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(h,{variant:`destructive`,children:(0,y.jsx)(r,{id:`7Bj3x9`})}),t[1]=e):e=t[1],e}case`uploading`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(h,{variant:`warning`,children:(0,y.jsx)(r,{id:`9bG48P`})}),t[2]=e):e=t[2],e}case`email-drafted`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(h,{variant:`secondary`,children:(0,y.jsx)(r,{id:`cPAWbl`})}),t[3]=e):e=t[3],e}case`generated`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(h,{variant:`gray`,children:(0,y.jsx)(r,{id:`2C-6zf`})}),t[4]=e):e=t[4],e}default:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(h,{variant:`outline`,children:(0,y.jsx)(r,{id:`Ef7StM`})}),t[5]=e):e=t[5],e}}}function T(e){let t=(0,_.c)(50),{row:n,pending:a,onRetry:s,onReveal:c,onDelete:l}=e,{_:u}=i(),d=a!==void 0,v;t[0]!==u||t[1]!==n.createdAt?(v=n.createdAt===``?u({id:`wF2wqQ`}):new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(n.createdAt)),t[0]=u,t[1]=n.createdAt,t[2]=v):v=t[2];let x=v,S;t[3]===n.state?S=t[4]:(S=(0,y.jsx)(w,{state:n.state}),t[3]=n.state,t[4]=S);let C;t[5]===n.bundleLevel?C=t[6]:(C=n.bundleLevel===`unknown`?null:(0,y.jsx)(h,{variant:`gray`,children:n.bundleLevel}),t[5]=n.bundleLevel,t[6]=C);let T;t[7]===x?T=t[8]:(T=(0,y.jsx)(`span`,{className:`truncate text-1sm text-muted-foreground`,children:x}),t[7]=x,t[8]=T);let E;t[9]!==S||t[10]!==C||t[11]!==T?(E=(0,y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[S,C,T]}),t[9]=S,t[10]=C,t[11]=T,t[12]=E):E=t[12];let D;t[13]!==n.lastError||t[14]!==n.reference||t[15]!==n.state||t[16]!==n.zipBytes?(D=(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n.state===`sent`&&n.reference!==void 0?(0,y.jsx)(r,{id:`SInSnF`,values:{0:n.reference},components:{0:(0,y.jsx)(`span`,{className:`font-mono text-foreground`})}}):n.state===`upload-failed`&&n.lastError!==void 0?(0,y.jsx)(`span`,{className:`text-destructive`,children:n.lastError.reason}):(0,y.jsx)(`span`,{children:b(n.zipBytes)})}),t[13]=n.lastError,t[14]=n.reference,t[15]=n.state,t[16]=n.zipBytes,t[17]=D):D=t[17];let O;t[18]!==E||t[19]!==D?(O=(0,y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[E,D]}),t[18]=E,t[19]=D,t[20]=O):O=t[20];let k;t[21]!==d||t[22]!==s||t[23]!==a||t[24]!==n?(k=n.retryable?(0,y.jsxs)(o,{variant:`outline`,size:`xs`,disabled:d,onClick:()=>s(n),children:[a===`retrying`?(0,y.jsx)(p,{className:`animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):(0,y.jsx)(g,{"aria-hidden":`true`}),(0,y.jsx)(r,{id:`6gRgw8`})]}):null,t[21]=d,t[22]=s,t[23]=a,t[24]=n,t[25]=k):k=t[25];let A;t[26]!==u||t[27]!==d||t[28]!==c||t[29]!==n?(A=n.zipExists?(0,y.jsx)(o,{variant:`ghost`,size:`icon-xs`,disabled:d,"aria-label":u({id:`LtSYdi`}),onClick:()=>c(n),children:(0,y.jsx)(f,{"aria-hidden":`true`})}):null,t[26]=u,t[27]=d,t[28]=c,t[29]=n,t[30]=A):A=t[30];let j;t[31]===u?j=t[32]:(j=u({id:`rUWrSE`}),t[31]=u,t[32]=j);let M;t[33]!==l||t[34]!==n?(M=()=>l(n),t[33]=l,t[34]=n,t[35]=M):M=t[35];let N;t[36]===a?N=t[37]:(N=a===`deleting`?(0,y.jsx)(p,{className:`animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):(0,y.jsx)(m,{"aria-hidden":`true`}),t[36]=a,t[37]=N);let P;t[38]!==d||t[39]!==j||t[40]!==M||t[41]!==N?(P=(0,y.jsx)(o,{variant:`ghost`,size:`icon-xs`,disabled:d,"aria-label":j,onClick:M,children:N}),t[38]=d,t[39]=j,t[40]=M,t[41]=N,t[42]=P):P=t[42];let F;t[43]!==P||t[44]!==k||t[45]!==A?(F=(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[k,A,P]}),t[43]=P,t[44]=k,t[45]=A,t[46]=F):F=t[46];let I;return t[47]!==F||t[48]!==O?(I=(0,y.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-md border px-3 py-2.5`,children:[O,F]}),t[47]=F,t[48]=O,t[49]=I):I=t[49],I}function E(e){let t=(0,_.c)(13),{reports:n,pending:r,retry:i,remove:a,reveal:o}=e,s;if(t[0]!==r||t[1]!==a||t[2]!==n||t[3]!==i||t[4]!==o){let e;t[6]!==r||t[7]!==a||t[8]!==i||t[9]!==o?(e=e=>(0,y.jsx)(T,{row:e,pending:r[e.id],onRetry:i,onReveal:o,onDelete:a},e.id),t[6]=r,t[7]=a,t[8]=i,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=r,t[1]=a,t[2]=n,t[3]=i,t[4]=o,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,y.jsx)(`div`,{className:`flex flex-col gap-2`,children:s}),t[11]=s,t[12]=c),c}function D(e){let t=(0,_.c)(9),{onReportABug:n}=e,i=x();if(i.status===`loading`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2.5 py-6 text-sm text-muted-foreground`,children:[(0,y.jsx)(p,{className:`size-4 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}),(0,y.jsx)(r,{id:`VmJT51`})]}),t[0]=e):e=t[0],e}if(i.status===`error`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(`p`,{className:`py-6 text-sm text-muted-foreground`,children:(0,y.jsx)(r,{id:`FgQ7XZ`})}),t[1]=e):e=t[1],e}if(i.reports.length===0){let e;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:(0,y.jsx)(r,{id:`wcfO9r`})}),t[2]=e):e=t[2];let i;t[3]===n?i=t[4]:(i=n?(0,y.jsx)(o,{onClick:n,children:(0,y.jsx)(r,{id:`cd5EXh`})}):null,t[3]=n,t[4]=i);let a;return t[5]===i?a=t[6]:(a=(0,y.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[e,i]}),t[5]=i,t[6]=a),a}let a;return t[7]===i?a=t[8]:(a=(0,y.jsx)(E,{...i}),t[7]=i,t[8]=a),a}function O(){let e=(0,_.c)(14),[t,n]=(0,v.useState)(!1),i=x();if(i.status!==`ready`||i.reports.length===0)return null;let a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,y.jsx)(r,{id:`c2ktXL`}),e[0]=a):a=e[0];let u;e[1]===i.reports.length?u=e[2]:(u=(0,y.jsxs)(`span`,{className:`text-sm font-medium`,children:[a,` `,(0,y.jsxs)(`span`,{className:`font-normal text-muted-foreground`,children:[`(`,i.reports.length,`)`]})]}),e[1]=i.reports.length,e[2]=u);let f=`transition-transform motion-reduce:transition-none ${t?`rotate-180`:``}`,p;e[3]===f?p=e[4]:(p=(0,y.jsx)(d,{className:f,"aria-hidden":`true`}),e[3]=f,e[4]=p);let m;e[5]!==u||e[6]!==p?(m=(0,y.jsx)(c,{asChild:!0,children:(0,y.jsxs)(o,{variant:`ghost`,size:`sm`,className:`-mx-2 -my-0.5 h-auto w-[calc(100%+1rem)] justify-between px-2 py-1.5 data-[state=open]:bg-transparent data-[state=open]:hover:bg-muted`,children:[u,p]})}),e[5]=u,e[6]=p,e[7]=m):m=e[7];let h;e[8]===i?h=e[9]:(h=(0,y.jsx)(s,{className:`pt-2`,children:(0,y.jsx)(E,{...i})}),e[8]=i,e[9]=h);let g;return e[10]!==t||e[11]!==m||e[12]!==h?(g=(0,y.jsxs)(l,{open:t,onOpenChange:n,children:[m,h]}),e[10]=t,e[11]=m,e[12]=h,e[13]=g):g=e[13],g}export{O as n,D as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./jsx-runtime-BUgB2tll.js";import{Qn as n}from"./DocumentContext-BeNSZPYG.js";import{t as r}from"./react-f2sANaYj.js";import{n as i,r as a}from"./dist-Nvb76hAm.js";import{t as o}from"./compiler-runtime-BfE3aGVn.js";import{t as s}from"./utils-CPqDy6Hr.js";import{n as c}from"./use-workspace-BNdbTGXU.js";import{t as l}from"./button-RQ5o7P7w.js";import{i as u,n as d,t as f}from"./tooltip-x7BNUa3s.js";import{a as p,c as ee,i as te,n as ne,o as re,r as m,s as h}from"./dialog-DwFomKjP.js";import{m as g,o as _}from"./agent-visibility-Dz506quD.js";import{ga as v}from"./dist-DOPRKSzO2.js";import{t as y}from"./createLucideIcon-BbgVV4EV.js";import{t as b}from"./folder-DxrU2PLH.js";import{t as x}from"./loader-circle-B0OUuKph.js";var S=t(),C=e(r(),1),w=o(),T=3100,E=3;function D(e,t,n){let r=n?.windowMs??600,i=n?.maxLevel??E;if(e===0||t>=r)return 1;let a=e+1;return a>i?i:a}var O={0:{count:0,startRadius:0,baseDistance:0,distanceVariance:0,sizeMin:0,sizeMax:0,maxDelay:0,durationMin:0,durationMax:0},1:{count:0,startRadius:0,baseDistance:0,distanceVariance:0,sizeMin:0,sizeMax:0,maxDelay:0,durationMin:0,durationMax:0},2:{count:0,startRadius:0,baseDistance:0,distanceVariance:0,sizeMin:0,sizeMax:0,maxDelay:0,durationMin:0,durationMax:0},3:{count:16,startRadius:11,baseDistance:7,distanceVariance:3,sizeMin:.45,sizeMax:1.2,maxDelay:500,durationMin:1100,durationMax:2400}},k=[`var(--color-azure-blue)`,`var(--color-sky-blue)`,`var(--color-violet-300)`,`var(--color-orange-light)`,`var(--color-crystal-blue)`,`var(--color-white-cream)`];function A(e,t={}){let n=t.rng??Math.random,r=t.colors??k,i=O[e];if(i.count===0||r.length===0)return[];let a=[],o=Math.PI*2/i.count;for(let e=0;e<i.count;e++){let t=e*o+(n()-.5)*o*.7,s=i.baseDistance+(n()-.5)*2*i.distanceVariance,c=i.sizeMin+n()*(i.sizeMax-i.sizeMin),l=n()*i.maxDelay,u=i.durationMin+n()*(i.durationMax-i.durationMin),d=Math.floor(n()*r.length),f=Math.cos(t),p=Math.sin(t);a.push({id:e,dx:f*s,dy:p*s,originDx:f*i.startRadius,originDy:p*i.startRadius,size:c,color:r[d]??`currentColor`,delay:l,duration:u})}return a}var j=1.8,M=90,N=16,ie=380,P=.025,F=.1,I=.18,L=400,R=9.2736,ae=18.1799,z=14.5244,oe={1:{halfWidth:1.5,apexLift:2.2},2:{halfWidth:1.4,apexLift:2.6},3:{halfWidth:1.25,apexLift:3}};function se(e,t){let{halfWidth:n,apexLift:r}=oe[t];return`M${e-n} ${z+.3} Q${e} ${z-r}, ${e+n} ${z+.3}`}function ce(e){let t=1.5,n=.3;return`M${e-t} ${z-n} Q${e} ${z+1.4}, ${e+t} ${z-n}`}var le=15,ue=15;function de(e){return{fill:e.color,"--fx-tx":`${e.dx}px`,"--fx-ty":`${e.dy}px`,"--fx-delay":`${e.delay}ms`,"--fx-duration":`${e.duration}ms`}}function fe(e){let t=(0,w.c)(71),{size:n,className:r,trackMouse:i,variant:a,celebrateSignal:o}=e,l=n===void 0?48:n,u=i===void 0?!0:i,d=a===void 0?`default`:a,f=o===void 0?0:o,p=(0,C.useRef)(null),ee=(0,C.useRef)(null),te=(0,C.useRef)(null),ne;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(ne={x:0,y:0},t[0]=ne):ne=t[0];let re=(0,C.useRef)(ne),[m,h]=(0,C.useState)(0),[g,_]=(0,C.useState)(0),v;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(v=[],t[1]=v):v=t[1];let[y,b]=(0,C.useState)(v),x=(0,C.useRef)(0),E=(0,C.useRef)(void 0),O=d===`sleeping`,k;t[2]!==m||t[3]!==O?(k=function(){if(O)return;let e=typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now(),t=x.current===0?1/0:e-x.current;x.current=e;let n=D(m,t);h(n),_(ge),b(A(n)),clearTimeout(E.current),E.current=setTimeout(()=>{h(0),b([])},T)},t[2]=m,t[3]=O,t[4]=k):k=t[4];let oe=k,le,ue;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>()=>clearTimeout(E.current),ue=[],t[5]=le,t[6]=ue):(le=t[5],ue=t[6]),(0,C.useEffect)(le,ue);let de,fe;t[7]!==f||t[8]!==O?(de=()=>{f===0||O||(h(3),_(he),b(A(3)),clearTimeout(E.current),E.current=setTimeout(()=>{h(0),b([])},T))},fe=[f,O],t[7]=f,t[8]=O,t[9]=de,t[10]=fe):(de=t[9],fe=t[10]),(0,C.useEffect)(de,fe);let _e,ve;t[11]!==O||t[12]!==u?(_e=()=>{if(!u||O||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let e=0,t=0,n=!1,r=0,i=0,a=0,o=0,s=0,c=function(){s===0&&(s=requestAnimationFrame(d))},l=function(r){e=r.clientX,t=r.clientY,n=!0,c()};function d(){s=0;let l=ee.current,u=p.current;if(!l||!u){c();return}let d=n;n=!1;let f=l.getBoundingClientRect(),ne=f.left+f.width/2,m=f.top+f.height*.48,h=e-ne,g=t-m,_=Math.hypot(h,g),v=Math.max(-1,Math.min(1,h/ie)),y=-Math.max(-1,Math.min(1,g/ie))*N,b=v*N,x=0,S=0;if(_>=1){let e=Math.min(_/M,1)*j;x=h/_*e,S=g/_*e}let C=Math.abs(y-r)<.01&&Math.abs(b-i)<.01&&Math.abs(x-a)<.01&&Math.abs(S-o)<.01;if(!d&&C)return;c(),r+=(y-r)*F,i+=(b-i)*F,u.style.transform=`perspective(${L}px) rotateX(${r.toFixed(3)}deg) rotateY(${i.toFixed(3)}deg)`,a+=(x-a)*I,o+=(S-o)*I;let w=i*P,T=-r*P,E=a+w,D=o+T;re.current.x=E,re.current.y=D,te.current?.setAttribute(`transform`,`translate(${E.toFixed(3)} ${D.toFixed(3)})`)}return document.addEventListener(`mousemove`,l,{passive:!0}),c(),()=>{document.removeEventListener(`mousemove`,l),s!==0&&cancelAnimationFrame(s),s=0,p.current&&(p.current.style.transform=``),re.current={x:0,y:0},te.current?.removeAttribute(`transform`)}},ve=[u,O],t[11]=O,t[12]=u,t[13]=_e,t[14]=ve):(_e=t[13],ve=t[14]),(0,C.useEffect)(_e,ve);let B;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(B=()=>{let e=te.current;if(!e)return;let{x:t,y:n}=re.current;e.setAttribute(`transform`,`translate(${t.toFixed(3)} ${n.toFixed(3)})`)},t[15]=B):B=t[15],(0,C.useLayoutEffect)(B);let V=m>0,H=V?m:1,ye=V?`ok-blob-clicked-${m}`:null,U;t[16]===r?U=t[17]:(U=s(`ok-blob-3d-wrapper`,r),t[16]=r,t[17]=U);let be=O?`cursor-default`:`cursor-pointer`,xe=`body-${g}`,Se=O&&`ok-blob-sleeping`,W;t[18]!==ye||t[19]!==Se?(W=s(`ok-blob-group`,Se,ye),t[18]=ye,t[19]=Se,t[20]=W):W=t[20];let Ce;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,S.jsx)(`path`,{d:c,className:`ok-blob-body`}),t[21]=Ce):Ce=t[21];let we=(V||O)&&`ok-blob-eye-hidden`,G;t[22]===we?G=t[23]:(G=s(`ok-blob-eye`,we),t[22]=we,t[23]=G);let K;t[24]===G?K=t[25]:(K=(0,S.jsx)(`ellipse`,{cx:R,cy:z,rx:1.2722,ry:1.9083,className:G}),t[24]=G,t[25]=K);let Te=(V||O)&&`ok-blob-eye-hidden`,q;t[26]===Te?q=t[27]:(q=s(`ok-blob-eye ok-blob-eye-right`,Te),t[26]=Te,t[27]=q);let J;t[28]===q?J=t[29]:(J=(0,S.jsx)(`ellipse`,{cx:ae,cy:z,rx:1.2722,ry:1.9083,className:q}),t[28]=q,t[29]=J);let Y;t[30]===H?Y=t[31]:(Y=se(R,H),t[30]=H,t[31]=Y);let Ee=(!V||O)&&`ok-blob-eye-hidden`,X;t[32]===Ee?X=t[33]:(X=s(`ok-blob-happy-eye`,Ee),t[32]=Ee,t[33]=X);let Z;t[34]!==Y||t[35]!==X?(Z=(0,S.jsx)(`path`,{d:Y,strokeWidth:`1.2`,strokeLinecap:`round`,fill:`none`,className:X}),t[34]=Y,t[35]=X,t[36]=Z):Z=t[36];let Q;t[37]===H?Q=t[38]:(Q=se(ae,H),t[37]=H,t[38]=Q);let De=(!V||O)&&`ok-blob-eye-hidden`,Oe;t[39]===De?Oe=t[40]:(Oe=s(`ok-blob-happy-eye`,De),t[39]=De,t[40]=Oe);let ke;t[41]!==Q||t[42]!==Oe?(ke=(0,S.jsx)(`path`,{d:Q,strokeWidth:`1.2`,strokeLinecap:`round`,fill:`none`,className:Oe}),t[41]=Q,t[42]=Oe,t[43]=ke):ke=t[43];let Ae;t[44]===O?Ae=t[45]:(Ae=O?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`path`,{d:ce(R),strokeWidth:`1.2`,strokeLinecap:`round`,fill:`none`,className:`ok-blob-sleeping-eye`}),(0,S.jsx)(`path`,{d:ce(ae),strokeWidth:`1.2`,strokeLinecap:`round`,fill:`none`,className:`ok-blob-sleeping-eye`})]}):null,t[44]=O,t[45]=Ae);let $;t[46]!==K||t[47]!==J||t[48]!==Z||t[49]!==ke||t[50]!==Ae?($=(0,S.jsxs)(`g`,{ref:te,children:[K,J,Z,ke,Ae]}),t[46]=K,t[47]=J,t[48]=Z,t[49]=ke,t[50]=Ae,t[51]=$):$=t[51];let je;t[52]!==xe||t[53]!==W||t[54]!==$?(je=(0,S.jsxs)(`g`,{className:W,children:[Ce,$]},xe),t[52]=xe,t[53]=W,t[54]=$,t[55]=je):je=t[55];let Me;t[56]===O?Me=t[57]:(Me=O?(0,S.jsxs)(`g`,{children:[(0,S.jsx)(`text`,{x:21,y:7,className:`ok-blob-z ok-blob-z-1`,children:`z`}),(0,S.jsx)(`text`,{x:26,y:2,className:`ok-blob-z ok-blob-z-2`,children:`z`})]}):null,t[56]=O,t[57]=Me);let Ne;t[58]!==g||t[59]!==y?(Ne=y.length>0&&(0,S.jsx)(`g`,{children:y.map(pe)},`firework-${g}`),t[58]=g,t[59]=y,t[60]=Ne):Ne=t[60];let Pe;t[61]!==oe||t[62]!==l||t[63]!==be||t[64]!==je||t[65]!==Me||t[66]!==Ne?(Pe=(0,S.jsxs)(`svg`,{ref:ee,width:l,height:l,viewBox:`0 0 30 30`,fill:`none`,overflow:`visible`,xmlns:`http://www.w3.org/2000/svg`,className:be,"aria-hidden":`true`,onClick:oe,onMouseDown:me,children:[je,Me,Ne]}),t[61]=oe,t[62]=l,t[63]=be,t[64]=je,t[65]=Me,t[66]=Ne,t[67]=Pe):Pe=t[67];let Fe;return t[68]!==U||t[69]!==Pe?(Fe=(0,S.jsx)(`span`,{ref:p,className:U,children:Pe}),t[68]=U,t[69]=Pe,t[70]=Fe):Fe=t[70],Fe}function pe(e){return(0,S.jsx)(`circle`,{cx:le+e.originDx,cy:ue+e.originDy,r:e.size,className:`ok-blob-firework`,style:de(e)},e.id)}function me(e){return e.preventDefault()}function he(e){return e+1}function ge(e){return e+1}var _e=y(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),ve=y(`file-plus`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M9 15h6`,key:`cctwl0`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}]]),B=[...new Set(g.flatMap(e=>e.schemes))];function V(e,t){let n=t.now?.()??Date.now(),r={};for(let t of g){let i=t.schemes[0],a=i===void 0?void 0:e[i];if(!a){r[t.id]={installed:null};continue}r[t.id]={installed:a.installed,...a.displayName===void 0?{}:{displayName:a.displayName},lastChecked:n}}return r}function H(e){return V({},e)}async function ye(e){let t=e.schemes??B,n=await Promise.all(t.map(async t=>{let n=t.replace(/:$/,``);try{return[t,await e.detectProtocol(n)]}catch{return[t,{installed:!1}]}}));return Object.fromEntries(n)}var U=Object.fromEntries(B.map(e=>[e,{installed:!1}]));async function be(e){let t;try{t=await e.fetch(`/api/installed-agents`,{signal:e.signal,headers:{Accept:`application/json`}})}catch(e){if(e.name===`AbortError`)throw e;return U}if(!t.ok)return U;let n;try{n=await t.json()}catch{return U}if(typeof n!=`object`||!n||Array.isArray(n))return U;let r=n,i={};for(let e of B)i[e]={installed:r[e.replace(/:$/,``)]===!0};return i}function xe(e,t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(!n||!i||n.installed!==i.installed||n.displayName!==i.displayName)return!1}return!0}function Se(e){let t=e.throttleMs??1e4,n=!1,r=null,i=null,a={},o=H({isElectronHost:e.isElectronHost(),now:e.now}),s=new Set,c=()=>{if(!n)for(let e of s)e(o)},l=()=>{o=V(a,{isElectronHost:e.isElectronHost(),now:e.now})};return{probe:async()=>{if(n)return;if(i)return i;if(r!==null&&e.now()-r<t)return;let o=(async()=>{try{let t=await e.probe();if(n)return;let i=!xe(a,t);a=t,i&&(l(),c()),r=e.now()}catch{}finally{i=null}})();return i=o,o},getTargetStates:()=>o,subscribe:e=>(s.add(e),()=>{s.delete(e)}),cancel:()=>{n=!0,s.clear()}}}function W(e=typeof window<`u`?window:void 0){return e?.okDesktop!=null}function Ce(){let e=typeof window<`u`?window.okDesktop:void 0;if(e){let t=t=>e.shell.detectProtocol(t);return{probe:()=>ye({detectProtocol:t}),isElectronHost:()=>!0,now:Date.now}}let t=globalThis.fetch.bind(globalThis);return{probe:()=>be({fetch:t}),isElectronHost:()=>!1,now:Date.now}}function we(){let e=(0,w.c)(5),[t,n]=(0,C.useState)(G),r=(0,C.useRef)(null),i,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>{let e=Se(Ce());r.current=e;let t=e.subscribe(n);e.probe();let i=()=>{e.probe()};return window.addEventListener(`focus`,i),()=>{window.removeEventListener(`focus`,i),t(),e.cancel(),r.current=null}},a=[],e[0]=i,e[1]=a):(i=e[0],a=e[1]),(0,C.useEffect)(i,a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>r.current?.probe()??Promise.resolve(),e[2]=o):o=e[2];let s;return e[3]===t?s=e[4]:(s={states:t,refresh:o},e[3]=t,e[4]=s),s}function G(){return H({isElectronHost:W(),now:Date.now})}var K=(0,C.createContext)(null);function Te(e){let t=(0,w.c)(3),{value:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,S.jsx)(K,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function q(){return(0,C.use)(K)}function J(e){let t=(0,w.c)(48),{itemName:n,isSubmitting:r,onDelete:o,customTitle:s,customDescription:c,customDetail:u,customConfirmLabel:d,customConfirmLabelBusy:f,children:g}=e,{_}=a(),v;t[0]!==_||t[1]!==n?(v=n??_({id:`L3CEC1`}),t[0]=_,t[1]=n,t[2]=v):v=t[2];let y=v,b;t[3]!==_||t[4]!==d?(b=d??_({id:`cnGeoo`}),t[3]=_,t[4]=d,t[5]=b):b=t[5];let C=b,T;t[6]!==_||t[7]!==d||t[8]!==f?(T=f??d??_({id:`s3caR3`}),t[6]=_,t[7]=d,t[8]=f,t[9]=T):T=t[9];let E=T,D;t[10]!==_||t[11]!==s||t[12]!==y?(D=s??_({id:`77SdEP`,values:{itemName:y}}),t[10]=_,t[11]=s,t[12]=y,t[13]=D):D=t[13];let O;t[14]===D?O=t[15]:(O=(0,S.jsx)(ee,{children:D}),t[14]=D,t[15]=O);let k;t[16]!==_||t[17]!==c||t[18]!==y?(k=c??_({id:`16D5Zj`,values:{itemName:y}}),t[16]=_,t[17]=c,t[18]=y,t[19]=k):k=t[19];let A;t[20]===k?A=t[21]:(A=(0,S.jsx)(p,{className:`whitespace-pre-wrap`,children:k}),t[20]=k,t[21]=A);let j;t[22]===u?j=t[23]:(j=u?(0,S.jsx)(`p`,{className:`text-muted-foreground text-sm`,"data-testid":`delete-confirmation-detail`,children:u}):null,t[22]=u,t[23]=j);let M;t[24]!==O||t[25]!==A||t[26]!==j?(M=(0,S.jsxs)(h,{children:[O,A,j]}),t[24]=O,t[25]=A,t[26]=j,t[27]=M):M=t[27];let N;t[28]===g?N=t[29]:(N=g?(0,S.jsx)(ne,{children:g}):null,t[28]=g,t[29]=N);let ie;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,S.jsx)(i,{id:`dEgA5A`}),t[30]=ie):ie=t[30];let P;t[31]===r?P=t[32]:(P=(0,S.jsx)(m,{asChild:!0,children:(0,S.jsx)(l,{variant:`outline`,disabled:r,children:ie})}),t[31]=r,t[32]=P);let F;t[33]!==C||t[34]!==E||t[35]!==r?(F=r?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(x,{className:`size-4 animate-spin`}),` `,E]}):C,t[33]=C,t[34]=E,t[35]=r,t[36]=F):F=t[36];let I;t[37]!==r||t[38]!==o||t[39]!==F?(I=(0,S.jsx)(l,{variant:`destructive`,onClick:o,disabled:r,children:F}),t[37]=r,t[38]=o,t[39]=F,t[40]=I):I=t[40];let L;t[41]!==P||t[42]!==I?(L=(0,S.jsxs)(re,{children:[P,I]}),t[41]=P,t[42]=I,t[43]=L):L=t[43];let R;return t[44]!==N||t[45]!==L||t[46]!==M?(R=(0,S.jsxs)(te,{children:[M,N,L]}),t[44]=N,t[45]=L,t[46]=M,t[47]=R):R=t[47],R}function Y(e){return e===`agents`||e===`.agents`||e.startsWith(`.agents/`)?`.agents`:e.includes(`/`)?e:v[e]??e}function Ee(e){return e===`claude`?`claude-code`:e}function X(e){let t=(0,w.c)(18),r,i;if(t[0]===e?(r=t[1],i=t[2]):({host:r,...i}=e,t[0]=e,t[1]=r,t[2]=i),r===`agents`){let e;return t[3]===i?e=t[4]:(e=(0,S.jsx)(n,{...i}),t[3]=i,t[4]=e),e}if(r.includes(`/`)){if(r===`.agents`||r.startsWith(`.agents/`)){let e;return t[5]===i?e=t[6]:(e=(0,S.jsx)(n,{...i}),t[5]=i,t[6]=e),e}if(r===`.ok`||r.startsWith(`.ok/`)){let e;if(t[7]!==i){let{className:n,...r}=i;e=r,t[7]=i,t[8]=e}else e=t[8];let n=e,r;return t[9]===n?r=t[10]:(r=(0,S.jsx)(fe,{size:14,...n}),t[9]=n,t[10]=r),r}let e;return t[11]===i?e=t[12]:(e=(0,S.jsx)(b,{...i}),t[11]=i,t[12]=e),e}let a;t[13]===r?a=t[14]:(a=Ee(r),t[13]=r,t[14]=a);let o;return t[15]!==i||t[16]!==a?(o=(0,S.jsx)(_,{...i,id:a}),t[15]=i,t[16]=a,t[17]=o):o=t[17],o}function Z(e){let t=(0,w.c)(14),{hosts:n,className:r,iconClassName:i}=e,a,o,c;if(t[0]!==r||t[1]!==n||t[2]!==i){let e=n.slice(0,2),l=n.slice(2);t[6]===r?a=t[7]:(a=s(`flex items-center gap-1`,r),t[6]=r,t[7]=a);let p;t[8]===i?p=t[9]:(p=e=>(0,S.jsxs)(f,{children:[(0,S.jsx)(u,{asChild:!0,children:(0,S.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,S.jsx)(X,{host:e,className:s(`size-3.5 shrink-0`,i),"aria-label":Y(e)})})}),(0,S.jsx)(d,{children:Y(e)})]},e),t[8]=i,t[9]=p),o=e.map(p),c=l.length>0?(0,S.jsxs)(f,{children:[(0,S.jsx)(u,{asChild:!0,children:(0,S.jsxs)(`span`,{className:`ml-0.5 cursor-default`,children:[`+`,l.length]})}),(0,S.jsx)(d,{children:l.map(Y).join(`, `)})]}):null,t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=c}else a=t[3],o=t[4],c=t[5];let l;return t[10]!==a||t[11]!==o||t[12]!==c?(l=(0,S.jsxs)(`span`,{className:a,children:[o,c]}),t[10]=a,t[11]=o,t[12]=c,t[13]=l):l=t[13],l}function Q(e){let t=(0,w.c)(6),{testId:n,title:r}=e,a;t[0]===r?a=t[1]:(a=r===void 0?{}:{title:r},t[0]=r,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,S.jsx)(i,{id:`YjiZAs`}),t[2]=o):o=t[2];let s;return t[3]!==a||t[4]!==n?(s=(0,S.jsx)(`span`,{className:`inline-flex h-5 shrink-0 items-center rounded border border-yellow-500/40 bg-yellow-500/10 px-1 text-[10px] text-yellow-600 uppercase tracking-wide`,"data-testid":n,...a,children:o}),t[3]=a,t[4]=n,t[5]=s):s=t[5],s}export{Te as a,ve as c,J as i,_e as l,X as n,q as o,Z as r,we as s,Q as t,fe as u};