@inkeep/open-knowledge 0.83.0-beta.4 → 0.83.0-beta.6

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 (166) hide show
  1. package/dist/assets/skills/project/SKILL.md +1 -1
  2. package/dist/assets/skills/project/references/linking.md +1 -1
  3. package/dist/cli.mjs +6 -6
  4. package/dist/constants-D7JQKPXh.mjs +1 -0
  5. package/dist/{dist-Db3MAmfg.mjs → dist-BHg9XI3A.mjs} +503 -503
  6. package/dist/{dist-CuKjbrew.mjs → dist-ByQ8IZXo.mjs} +1 -1
  7. package/dist/index.mjs +3 -3
  8. package/dist/{init-CL_e6Q1D.mjs → init-C5n0LZMn.mjs} +2 -2
  9. package/dist/init-ec6ffu4x.mjs +1 -0
  10. package/dist/{launch-json-removal-D3kd2brC.mjs → launch-json-removal-BE6cJksG.mjs} +1 -1
  11. package/dist/{loader-C7EEsDKg.mjs → loader-DOvCHCV-.mjs} +1 -1
  12. package/dist/loader-DksiD2SW.mjs +1 -0
  13. package/dist/{md-manager-BGnqyqi1-IqwoPmS1.mjs → md-manager-BGnqyqi1-DsBy1Dky.mjs} +1 -1
  14. package/dist/{open-browser-DNGrx2It.mjs → open-browser-CJogphTe.mjs} +1 -1
  15. package/dist/parse-worker.mjs +1 -1
  16. package/dist/{preview-BlJ1Z0op.mjs → preview-BDgV2eEH.mjs} +1 -1
  17. package/dist/preview-D42uDe8a.mjs +1 -0
  18. package/dist/public/assets/{AccountSection-BRBXF1vN.js → AccountSection-BpY8fXau.js} +1 -1
  19. package/dist/public/assets/{ActivityModeContent-CJJP9rF8.js → ActivityModeContent-B7SYD_oX.js} +1 -1
  20. package/dist/public/assets/{AddPropertiesButton-D3pJsHJb.js → AddPropertiesButton-VyqVtzIN.js} +2 -2
  21. package/dist/public/assets/{AgentConnectionsSection-CmOmHMSc.js → AgentConnectionsSection-CJhM0Oqw.js} +1 -1
  22. package/dist/public/assets/{AgentDiffPane-tNG4XT0X.js → AgentDiffPane-DAIaj_6D.js} +1 -1
  23. package/dist/public/assets/{AttachmentsSection-JCBkP1bH.js → AttachmentsSection-DL8roP-O.js} +1 -1
  24. package/dist/public/assets/{AuthModal-D1eciNeA.js → AuthModal-DcixDUcD.js} +1 -1
  25. package/dist/public/assets/{CodeMirrorPropInput-a3VwRUQz.js → CodeMirrorPropInput-BWNyI9V2.js} +1 -1
  26. package/dist/public/assets/{ContentRulesSection-D5HpfzEM.js → ContentRulesSection-h6pHMqD1.js} +1 -1
  27. package/dist/public/assets/{DiffViewBoundary-DnPwZD0g.js → DiffViewBoundary-B5VRWFoq.js} +1 -1
  28. package/dist/public/assets/{DocumentContext-mYOuQjoP.js → DocumentContext-DxDNsrxc.js} +1 -1
  29. package/dist/public/assets/{EditorModeToggle-CzpyTCmQ.js → EditorModeToggle-rSAArExF.js} +1 -1
  30. package/dist/public/assets/{ExcalidrawDocEditor-DOGkm6OY.js → ExcalidrawDocEditor-DiIxuNaj.js} +1 -1
  31. package/dist/public/assets/FeedbackForm-n4cK_QGh.js +1 -0
  32. package/dist/public/assets/{GraphPanel-CpJ-EZeA.js → GraphPanel-ZgCaGJ14.js} +1 -1
  33. package/dist/public/assets/{ImportSkillDialog-DnFzketi.js → ImportSkillDialog-lPX3LQOm.js} +1 -1
  34. package/dist/public/assets/{LinkPreviewsSection-DoydKz8c.js → LinkPreviewsSection-mmAXSLtK.js} +1 -1
  35. package/dist/public/assets/{LintConfigEditor-CRNgDVC9.js → LintConfigEditor-BbhL2owO.js} +1 -1
  36. package/dist/public/assets/LintingSection-CSM0_1QE.js +1 -0
  37. package/dist/public/assets/{ManagedArtifactProperties-KZga5-nk.js → ManagedArtifactProperties-YaOwWUAx.js} +1 -1
  38. package/dist/public/assets/ManagedArtifactProperties-uoCdZH2I.js +1 -0
  39. package/dist/public/assets/{MermaidDocEditor-Db30lOly.js → MermaidDocEditor-BQetPb3J.js} +1 -1
  40. package/dist/public/assets/{NetworkAccessSection-Br-oNBym.js → NetworkAccessSection-CJ0RJ37j.js} +1 -1
  41. package/dist/public/assets/{ProjectTemplatesSection-BgjUl8Rv.js → ProjectTemplatesSection-Cf5bgyHk.js} +1 -1
  42. package/dist/public/assets/{PropertyDisplayRow-D6hboSk0.js → PropertyDisplayRow-BxgncotE.js} +1 -1
  43. package/dist/public/assets/{PublishToGitHubDialog-CwKAOyMe.js → PublishToGitHubDialog-BjLmDxVs.js} +1 -1
  44. package/dist/public/assets/{RegisteredAgentIcon-DHzxArZN.js → RegisteredAgentIcon-jysj1Acv.js} +1 -1
  45. package/dist/public/assets/{SchemaConfigEditor-DB6DsLhh.js → SchemaConfigEditor-CL13boF8.js} +1 -1
  46. package/dist/public/assets/{SearchSection-Dk-yosmd.js → SearchSection-D6cO9U0B.js} +1 -1
  47. package/dist/public/assets/{SessionsHost-hUeKJj7l.js → SessionsHost-BH4nUjR2.js} +2 -2
  48. package/dist/public/assets/{SettingsDialogBody-De0p1s3_.js → SettingsDialogBody-DOlLSJng.js} +2 -2
  49. package/dist/public/assets/{ShareReceiveMissDialog-hMFYD5AW.js → ShareReceiveMissDialog-C4IgyZWj.js} +1 -1
  50. package/dist/public/assets/{SkillCostValue-DC_VaXgy.js → SkillCostValue-Bgy3wkjV.js} +1 -1
  51. package/dist/public/assets/{SkillForkDialog-DeoTv3wY.js → SkillForkDialog-CwCSC6Z0.js} +1 -1
  52. package/dist/public/assets/{SkillInstallMenu-1E0cH5_q.js → SkillInstallMenu-BIs2wAUZ.js} +1 -1
  53. package/dist/public/assets/{SkillOriginInline-CLKoMHNo.js → SkillOriginInline-Dr1zcAGa.js} +1 -1
  54. package/dist/public/assets/{SkillToolbarControls-nnJTYYrn.js → SkillToolbarControls-CnDExhdQ.js} +1 -1
  55. package/dist/public/assets/{SkillsManagerSection-DKedsWHo.js → SkillsManagerSection-CiaThXM_.js} +1 -1
  56. package/dist/public/assets/{SlidesToolbarControls-BSKDSVIG.js → SlidesToolbarControls-BpGxFSJu.js} +1 -1
  57. package/dist/public/assets/{SourceEditor-BCeRHOW_.js → SourceEditor-3U1rZw1J.js} +1 -1
  58. package/dist/public/assets/{SpellingSettings-Cmy-eBih.js → SpellingSettings-BAFQbL_s.js} +1 -1
  59. package/dist/public/assets/{SyncSection-Ctc1ZAYE.js → SyncSection-Ciu87ehb.js} +1 -1
  60. package/dist/public/assets/{SyncStatusBadge-CykVps4K.js → SyncStatusBadge-CJXgXQeb.js} +1 -1
  61. package/dist/public/assets/{TemplateRow-B2jVmQlY.js → TemplateRow-Bj4hpJ-E.js} +1 -1
  62. package/dist/public/assets/{TerminalLaunchContext-BReEuF5W.js → TerminalLaunchContext-kR8NUVFa.js} +1 -1
  63. package/dist/public/assets/{TerminalPanel-DQg3L4EK.js → TerminalPanel-CBpH9VnO.js} +1 -1
  64. package/dist/public/assets/{TerminalSection-CcQc7fKK.js → TerminalSection-BIeBUi3Y.js} +1 -1
  65. package/dist/public/assets/{TerminalWindowApp-a7QkAGXd.js → TerminalWindowApp-D75W_nOD.js} +1 -1
  66. package/dist/public/assets/{TextDocEditor-CdGAdSor.js → TextDocEditor-Dir-jZtA.js} +1 -1
  67. package/dist/public/assets/{ThemePluginSection-B4oIayEG.js → ThemePluginSection-CovSRzUr.js} +1 -1
  68. package/dist/public/assets/{ThreadView-Cu22t-sf.js → ThreadView-B5ZZtVV4.js} +1 -1
  69. package/dist/public/assets/{TimelineDiffPane-CcFwzBDW.js → TimelineDiffPane-QDBoFYDb.js} +1 -1
  70. package/dist/public/assets/{agent-connections-D-XX-7tC.js → agent-connections-BmjcmCOh.js} +1 -1
  71. package/dist/public/assets/{agent-registry-CC-eSzdu.js → agent-registry--47SG0kt.js} +1 -1
  72. package/dist/public/assets/{bridge-1xVdv27q.js → bridge-njD5PB6P.js} +1 -1
  73. package/dist/public/assets/{card-CUu_Dbtf.js → card-BsBNZHzU.js} +1 -1
  74. package/dist/public/assets/{catalog-DQ0C9DYn.js → catalog-DtlAjcAT.js} +1 -1
  75. package/dist/public/assets/{client-version-Bhpi7gms.js → client-version-C-aFlRsC.js} +1 -1
  76. package/dist/public/assets/{comment-chips-ucdDq5Q3.js → comment-chips-C9FVyemH.js} +1 -1
  77. package/dist/public/assets/{config-provider-BDWGnun_.js → config-provider-ang-QnXf.js} +1 -1
  78. package/dist/public/assets/config-schema-CcRHTCTU.js +1 -0
  79. package/dist/public/assets/{css-color-to-hex-Ds26W_X-.js → css-color-to-hex-vFOfC-Pa.js} +1 -1
  80. package/dist/public/assets/{doc-undo-manager-CdteDFL9.js → doc-undo-manager-D4kt3rYd.js} +1 -1
  81. package/dist/public/assets/field-controls-DF8qjTLS.js +1 -0
  82. package/dist/public/assets/{field-controls-CFLl9l2A.js → field-controls-DdO1Jfbb.js} +1 -1
  83. package/dist/public/assets/{frontmatter-tags-BIkfDL6K.js → frontmatter-tags-B-pVcI4P.js} +1 -1
  84. package/dist/public/assets/{index-X6cytEL5.js → index-BCiCqT8R.js} +8 -8
  85. package/dist/public/assets/{lint-config-client-DgV9TE2y.js → lint-config-client-D0TnXak8.js} +1 -1
  86. package/dist/public/assets/{lint-plugins-DmlA1sEu.js → lint-plugins-CT78JavG.js} +1 -1
  87. package/dist/public/assets/{markdown-lint-CfRH6CjV.js → markdown-lint-BKCKKMvW.js} +1 -1
  88. package/dist/public/assets/{markdownlint-rule-browser-CN1TwJhU.js → markdownlint-rule-browser-CLiJDsUJ.js} +1 -1
  89. package/dist/public/assets/messages-B3fCTSsU.js +1 -0
  90. package/dist/public/assets/messages-B4LuE4Uj.js +1 -0
  91. package/dist/public/assets/messages-BE2Gn3RX.js +1 -0
  92. package/dist/public/assets/messages-BI2FOXv1.js +1 -0
  93. package/dist/public/assets/messages-BW-Cdt9C.js +1 -0
  94. package/dist/public/assets/messages-BvhAxQrI.js +1 -0
  95. package/dist/public/assets/messages-CTIWBL1W.js +1 -0
  96. package/dist/public/assets/messages-CWGa07Dg.js +1 -0
  97. package/dist/public/assets/messages-DWxo7VDJ.js +1 -0
  98. package/dist/public/assets/messages-Df0SITTo.js +1 -0
  99. package/dist/public/assets/messages-HU4oqbuE.js +1 -0
  100. package/dist/public/assets/messages-b7a1Syss.js +1 -0
  101. package/dist/public/assets/messages-viWmNfI1.js +1 -0
  102. package/dist/public/assets/{pending-receive-nav-store-NYViaTsT.js → pending-receive-nav-store-DVgbBI_j.js} +1 -1
  103. package/dist/public/assets/{preferred-session-events-78C4kXpL.js → preferred-session-events-Ayg96deM.js} +1 -1
  104. package/dist/public/assets/{progress-C_Q7qzuf.js → progress-DK60f0xv.js} +1 -1
  105. package/dist/public/assets/{saved-themes-client-D5M6AESh.js → saved-themes-client-DQgpb_Nl.js} +1 -1
  106. package/dist/public/assets/{schema-section-Cn4ovS7A.js → schema-section-DShGMOyT.js} +1 -1
  107. package/dist/public/assets/{schemas-api-KjBzkxAy.js → schemas-api-C4CP1G39.js} +1 -1
  108. package/dist/public/assets/{selection-context-C9FxlvvI.js → selection-context-ClNQPaFJ.js} +1 -1
  109. package/dist/public/assets/{skills-api-DfXaxEkX.js → skills-api-BUVVp6gv.js} +1 -1
  110. package/dist/public/assets/{src-zjRc3l1B.js → src-HUmS96mW.js} +1 -1
  111. package/dist/public/assets/storage-scope-DRWogX35.js +1 -0
  112. package/dist/public/assets/{tag-pill-input-D_82NbMi.js → tag-pill-input-BoyxN9pC.js} +1 -1
  113. package/dist/public/assets/{telemetry-impl-m7aO3jDl.js → telemetry-impl-DChsPrpQ.js} +1 -1
  114. package/dist/public/assets/{telemetry-startup-74CCPsgN.js → telemetry-startup-B9nVffXq.js} +1 -1
  115. package/dist/public/assets/{terminal-launch-events-BBXwmVEO.js → terminal-launch-events-Cy8GAcTt.js} +1 -1
  116. package/dist/public/assets/{typing-burst-detector-Ba4T0Jvq.js → typing-burst-detector-BeLp1KqP.js} +1 -1
  117. package/dist/public/assets/{uninstall-D609kB1N.js → uninstall-CHUB11SP.js} +1 -1
  118. package/dist/public/assets/{use-activity-panel-DgFEYoQD.js → use-activity-panel-DZWu1j8R.js} +1 -1
  119. package/dist/public/assets/{use-apply-config-color-theme-DyzsFMYv.js → use-apply-config-color-theme-lLFWDFMc.js} +1 -1
  120. package/dist/public/assets/{use-apply-config-language-C0m8OLaJ.js → use-apply-config-language-cr1JKqWJ.js} +2 -2
  121. package/dist/public/assets/{use-conflicts-B9eHyj9o.js → use-conflicts-B0yvUiLf.js} +1 -1
  122. package/dist/public/assets/{use-live-xterm-theme-D9OrOkx3.js → use-live-xterm-theme-BIzA-mu0.js} +1 -1
  123. package/dist/public/assets/{use-open-skill-DX2J-XUP.js → use-open-skill-DpJ_35HO.js} +1 -1
  124. package/dist/public/assets/{use-semantic-search-status-BGdqXgED.js → use-semantic-search-status-CGPJyDjj.js} +1 -1
  125. package/dist/public/assets/{use-skill-origin-BqSrJPU6.js → use-skill-origin-Cv_S5gSq.js} +1 -1
  126. package/dist/public/assets/{use-skill-targets-oy2zvORL.js → use-skill-targets-D-Tfz8TQ.js} +1 -1
  127. package/dist/public/assets/{use-skills-CV4zn3OT.js → use-skills-CRuEYkjM.js} +1 -1
  128. package/dist/public/assets/{use-terminal-enabled-MKxsix4h.js → use-terminal-enabled-VopbK1KQ.js} +1 -1
  129. package/dist/public/assets/{use-timeline-entry-diff-DsZ2Vu7B.js → use-timeline-entry-diff-DPE4FYBg.js} +1 -1
  130. package/dist/public/assets/{use-workspace-Co3BqTgM.js → use-workspace-Bf2VHQrp.js} +1 -1
  131. package/dist/public/index.html +48 -48
  132. package/dist/public/uninstall.html +3 -3
  133. package/dist/{registry-probes-eRPQMY-y.mjs → registry-probes-CjXFMEIZ.mjs} +1 -1
  134. package/dist/{removal-file-path-CLkfpBwn.mjs → removal-file-path-DAe04iIF.mjs} +1 -1
  135. package/dist/{repair-launch-json-VnuW7Q8d.mjs → repair-launch-json-Db5HnCXi.mjs} +1 -1
  136. package/dist/{repair-mcp-configs-CE_7diVc.mjs → repair-mcp-configs-C21Kb5o_.mjs} +1 -1
  137. package/dist/{src-DRsRktps.mjs → src-CbgdwIHT.mjs} +1 -1
  138. package/dist/src-DAzDkuCr.mjs +1 -0
  139. package/dist/{start-CpHu1y5K.mjs → start-C8VQZz6U.mjs} +3 -3
  140. package/dist/start-CzEAj2qz.mjs +1 -0
  141. package/package.json +4 -4
  142. package/dist/constants-ClUiDros.mjs +0 -1
  143. package/dist/init-B5hTJt74.mjs +0 -1
  144. package/dist/loader-DsVfCsZZ.mjs +0 -1
  145. package/dist/preview-BSdoL4SZ.mjs +0 -1
  146. package/dist/public/assets/FeedbackForm-CAstgJmN.js +0 -1
  147. package/dist/public/assets/LintingSection-6XJ9IDh1.js +0 -1
  148. package/dist/public/assets/ManagedArtifactProperties-DccpG1E9.js +0 -1
  149. package/dist/public/assets/config-schema-mXZFcyl-.js +0 -1
  150. package/dist/public/assets/field-controls-k0sTXrth.js +0 -1
  151. package/dist/public/assets/messages-6qDi59f7.js +0 -1
  152. package/dist/public/assets/messages-BEvT9Nwy.js +0 -1
  153. package/dist/public/assets/messages-BSK33k09.js +0 -1
  154. package/dist/public/assets/messages-BWfEJjWl.js +0 -1
  155. package/dist/public/assets/messages-BlGEL1N1.js +0 -1
  156. package/dist/public/assets/messages-Bq95Bcqm.js +0 -1
  157. package/dist/public/assets/messages-BvpXmuCB.js +0 -1
  158. package/dist/public/assets/messages-Cw5_--PV.js +0 -1
  159. package/dist/public/assets/messages-D456hKdc.js +0 -1
  160. package/dist/public/assets/messages-F1g5PrYW.js +0 -1
  161. package/dist/public/assets/messages-_PYN_xve.js +0 -1
  162. package/dist/public/assets/messages-gEPZ_37y.js +0 -1
  163. package/dist/public/assets/messages-vtPav911.js +0 -1
  164. package/dist/public/assets/storage-scope-BVU9p11A.js +0 -1
  165. package/dist/src-mWhQUBg3.mjs +0 -1
  166. package/dist/start-BqJyj8XY.mjs +0 -1
@@ -1,5 +1,5 @@
1
- import{J as e,N as t,Y as n,Yu as r,b as i,i as a,rl as o}from"./md-manager-BGnqyqi1-IqwoPmS1.mjs";import{Qo as s,ds as c,es as l,hi as u,ii as d,ji as f,k as p,yi as m}from"./dist-Db3MAmfg.mjs";import{Ct as h,L as g,Tt as _,X as v,b as y,ut as b,wt as x,y as S,z as C}from"./init-CL_e6Q1D.mjs";import{a as w,c as T,d as E,f as D,i as ee,n as O,o as k,p as A,r as j,s as M,t as N,u as P,y as te}from"./registry-probes-eRPQMY-y.mjs";import{n as F}from"./constants-ClUiDros.mjs";import{execFileSync as I,spawn as L}from"node:child_process";import{basename as R,dirname as z,resolve as B}from"node:path";import{existsSync as V,realpathSync as ne}from"node:fs";import{homedir as re,tmpdir as ie}from"node:os";import{rm as ae}from"node:fs/promises";import{setTimeout as oe}from"node:timers/promises";const se=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],ce={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function le(e,t={}){let{login:n}=t,r=t._exec??I,i=H(t._fileExists??V),a=e?[`--hostname`,e]:[];if(n){let e=U(r,i,[`auth`,`token`,...a,`--user`,n]);if(e)return{available:!0,token:e,resolvedLogin:n,fallback:!1}}let o=U(r,i,[`auth`,`token`,...a]);return o?n?{available:!0,token:o,fallback:!0}:{available:!0,token:o}:{available:!1}}function H(e){return[`gh`,...se.filter(e)]}function U(e,t,n){for(let r of t)try{let t=e(r,n,ce).toString().trim();if(t.length>0)return t}catch{}}function W(e,t={}){let n=t._exec??I,r=H(t._fileExists??V),i=[`auth`,`status`,...e?[`--hostname`,e]:[]],a=U(n,r,[...i,`--json`,`hosts`]);if(a!==void 0){let t=ue(a,e);if(t)return t}let o=U(n,r,i);if(o!==void 0){let e=he(o);if(e.length>0)return e}}function G(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function ue(e,t){let n;try{n=JSON.parse(e)}catch{return}let r=G(G(n)?.hosts);if(!r||t!==void 0&&r[t]===void 0)return;let i=t===void 0?Object.values(r):[r[t]],a=[];for(let e of i){if(!Array.isArray(e))return;for(let t of e){let e=G(t);if(!e)continue;let n=e.login;typeof n==`string`&&n.length!==0&&a.push({login:n,active:e.active===!0})}}return a}const de=/Logged in to \S+ account (\S+) \(/,fe=/(?:Failed to log in to|Timeout trying to log in to) \S+/,pe=/^\s*-\s*Active account:\s*true\s*$/,me=/\u001b\[[0-9;]*m/g;function he(e){let t=[],n;for(let r of e.split(`
2
- `)){let e=r.replace(me,``),i=de.exec(e)?.[1];if(i){n={login:i,active:!1},t.push(n);continue}if(fe.test(e)){n=void 0;continue}n&&pe.test(e)&&(n.active=!0)}return t}const ge={mode:`published`,skipAvailabilityCheck:!0,replaceEntry:!0};function K(){return{action:`failed`,errorId:`write-failed`}}function q(){return{action:`skipped-missing`,errorId:`surface-missing`}}function J(e,t,n){c(`agent-integrations-apply`).warn({editor:e,path:t,reason:n},`skill write failed`)}function Y(){return{action:`skipped-unsupported`,errorId:`no-writer`}}function _e(e){switch(e){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`left-foreign`:return{action:`skipped-foreign`,errorId:`foreign-artifact`};case`declined`:return{action:`declined`,errorId:`write-declined`}}}function ve(e,t,n,r,i){let a=v[e];try{let o=k(a,t,n,r,i);return o.kind===`removed`&&o.trustDetail&&c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),trust:o.trust,trustDetail:o.trustDetail},`MCP config removal retained Pi folder trust`),_e(o.kind)}catch(i){return c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),reason:i instanceof Error?i.message:String(i)},`MCP config removal failed`),K()}}async function ye(e,t,n){if(v[e].scope!==`global`)return q();if(n===`absent`)return ve(e,``,t.home,void 0,t.env);let r=(await y({editors:[e],home:t.home,replaceEntry:!0})).find(t=>t.editorId===e);if(r===void 0)return K();switch(r.action){case`written`:case`overwritten`:return{action:r.action};case`declined`:return{action:`declined`,errorId:`write-declined`};case`skipped-missing`:return q();case`skipped-flag`:return Y();default:return K()}}function be(e,t,n){let r=v[e].projectConfigPath?.(t.cwd);if(r===void 0)return q();if(n===`absent`)return ve(e,t.cwd,t.home,r,t.env);let i=S(v[e],t.cwd,ge,void 0,r);switch(i.action){case`written`:case`overwritten`:return{action:i.action};case`declined`:return{action:`declined`,errorId:`write-declined`};default:return K()}}function xe(e,t,n){let r=t.home??re();if(n===`absent`){let t=j(e,r);switch(t.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return q();case`failed`:return J(e,t.path,t.error),K()}}let i=w(e,r);switch(i.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return q();case`failed`:return J(e,i.path,i.error),K()}}function Se(e,t,n){if(n===`absent`){let n=g(v[e],t.cwd);switch(n.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return q();case`failed`:return J(e,n.path,n.error),K()}}let r=C(v[e],t.cwd);switch(r.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return q();case`skipped-prerequisite`:return{action:`skipped-prerequisite`,errorId:`dependency-failed`};case`failed`:return J(e,r.path,r.error),K()}}function Ce(e){return t=>{if(t.pathId===void 0)return Y();let n=r(t.pathId);if(n===null||n.kind===`central-skill-store`)return Y();switch(n.kind){case`editor-user-config`:return ye(n.editor,e,t.desired);case`editor-project-config`:return be(n.editor,e,t.desired);case`editor-project-skill-root`:return Se(n.editor,e,t.desired);case`editor-user-skill-root`:return xe(n.editor,e,t.desired)}}}function we(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function Te(e){if(e===`server`)return e;throw new x(`--only must be 'server'`)}function Ee(e=V){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[B(t,`public`),B(t,`../../app/dist`),B(t,`../../../app/dist`)].find(t=>e(t))}function De(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function Oe(e){if(e===`off`)return`off`;if(!o.test(e))throw new x(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return e}function ke(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function Ae(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function je(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||ke(e.host))&&e.isTTY}function Me(e,t){let n;try{n=new URL(t)}catch{throw new x(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new x(`${e} must be an http(s) origin (got: ${t})`);return t}function Ne(e){return Me(`--external-url`,e)}function Pe(e){let t=R(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var X=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}},Z=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${p}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Q(e,t={}){let n=t.tmpdirFn??ie,r=t.realpathFn??ne,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?B(e):null}},a=B(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(z(a));o=e===null?null:B(e,R(a))}else o=null}if(o===null)return!1;let s=i(n());return s!==null&&z(o)===s&&R(o).startsWith(`ok-ephemeral-`)}function $(e,t,n=e=>ae(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Q(t))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`)}else process.stderr.write(`[start] leaving ${t} in place: only ${p}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function Fe(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 Ie(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:o,mkdirSync:s}=await import(`node:fs`),{basename:c,dirname:l,resolve:u}=await import(`node:path`),{bootServer:p,createEphemeralProjectDir:h,getLogger:g,resolveContentDir:_,resolveLockDir:v,seedEphemeralProjectDir:y,waitForServerLockDrain:x}=await import(`./dist-CuKjbrew.mjs`),S=e.log??g(`start`),C=e.singleFile!==void 0,w=C?f(e.singleFile).canonicalFilePath:void 0,E=w?l(w):void 0,D=w?c(w):void 0,k,A=!1;if(E!==void 0){if(e.projectDir!==void 0){if(k=e.projectDir,!Q(k))throw new Z(k);o(u(k,`.ok`,`config.yml`))||y(k,E)}else k=h(E),A=!0}let j=async()=>{if(!(!A||k===void 0)){if(!Q(k)){S.warn({ephemeralProjectDir:k},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await ae(k,{recursive:!0,force:!0})}catch(e){S.warn({err:e,ephemeralProjectDir:k},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},P=k;if(!C){if(!i&&!d(n))throw new X(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{e.severity===`info`?S.debug({event:e},`[start] reclaim sweep event`):S.warn({event:e},`[start] reclaim sweep reported a problem`)};try{let i=(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-CE_7diVc.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r}).outcomes.filter(e=>e.outcome!==`no-entry`&&e.outcome!==`canonical`&&e.outcome!==`repaired`&&e.outcome!==`foreign`);i.length>0&&S.warn({unhealed:i},`[start] reclaim sweep left entries it could not heal`)}catch(e){S.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-VnuW7Q8d.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){S.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}}let F=E??_(t,n);!C&&!o(F)&&(s(F,{recursive:!0}),S.info({contentDir:F},`Created content directory`));let I=te(),L=m(),R;try{{let e=v(k??n),t=Date.now(),r=await x(e);r!==`no-drain`&&S.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`)}R=await p({config:t,contentDir:F,projectDir:k??n,contentRoot:C?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:le,detectGhAccounts:W,tokenStore:I,embeddingsKeyStore:L,mcpTomlEditor:b(),...C?{ephemeral:!0,singleDocRelPath:D,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>O(e,t),probePiAcpBridge:e=>T(e),ensurePiAcpBridge:(e,t)=>M(e,void 0,void 0,void 0,t),agentIntegrations:(()=>{let e={cwd:k??n,home:re(),env:process.env};return{probe:N(e),execute:Ce(e),userSkillPresentAnywhere:ee}})(),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Fe(P===void 0?n:$(n,P),{log:S,exit:e.idleExit})},log:S,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{},...e.terminalAuthAvailable===!0?{terminalAuthAvailable:!0}:{}})}catch(e){throw await j(),e}let z=R.destroy,B=A?async()=>{try{await z()}finally{await j()}}:z;return{httpServer:R.httpServer,destroy:B,lockDir:R.lockDir,contentDir:F,port:R.port,ready:R.ready,degraded:R.degraded}}function Le(e,t,n=()=>s({absPath:l(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function Re(e){if(e===`browser`||e===`app`)return e;throw new x(`--mode must be 'browser' or 'app'`)}function ze(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function Be(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 Ve(r,o){let s=Le(r,o.singleFile),c=ze(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:l}=await import(`./banner-kywHhVaC.mjs`),{accent:u,dim:d,error:f,warning:p}=await import(`./colors-SgU3JHQu.mjs`),m=process.cwd();process.title=Pe(m);let h;try{h=e(process.env)}catch(e){throw e instanceof a&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=i(s,h.layer),_=h.overrides.some(e=>e.envVar===`OK_BIND`),v=o.bind!==void 0&&o.bind.length>0?o.bind:void 0,y=process.env.HOST,b=y!==void 0&&y.trim()!==``?y:void 0,x=n(g),S=v??(_||b===void 0?[...x.bind]:[b]);Ae({flagBindSet:v!==void 0,okBindSet:_,hostEnvSet:b!==void 0,fileBindCount:x.bind.length})&&console.warn(p(`[config] HOST=${b} overrides server.bind — dropping the file-configured addresses (${x.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let C=S[0]??`127.0.0.1`,w=S,T=o.externalUrl,E=n(i(g,{server:{bind:w,...T===void 0?{}:{externalUrl:T}}}));if(E.allowExternal&&(!E.loopbackOnly||E.externalUrl)){let e=E.externalUrl??E.bind.join(`, `);console.warn(p([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
3
- `)))}let D=o.port===void 0?void 0:Number(o.port),ee=h.overrides.find(e=>e.envVar===`PORT`)?.value,O=D??ee??s.server?.port,k=De({explicitDir:o.reactShellDistDir,only:o.only,findBundledDir:Ee}),A=k.dir;k.missingBundle&&console.warn(`bundled web UI not found — serving /api and /mcp only. Reinstall @inkeep/open-knowledge, or build packages/app in a source checkout.`);let j;try{j=await Ie({config:s,cwd:m,host:C,port:O,bind:w,...o.serveContentAssets===void 0?{}:{serveContentAssets:o.serveContentAssets},...A?{reactShellDistDir:A}:{},idleThresholdMs:t(o.idleShutdown??E.idleShutdown),serverRuntime:E,...o.singleFile?{singleFile:o.singleFile}:{},...o.projectDir?{projectDir:o.projectDir}:{},...o.terminalAuth===!0?{terminalAuthAvailable:!0}:{}})}catch(e){e instanceof X&&(console.error(f(e.message)),process.exit(1)),e instanceof Z&&(console.error(f(e.message)),process.exit(1));let t=await import(`./dist-CuKjbrew.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.ExposureConsentError&&(console.error(f(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(f(e.message)),process.exit(1)),(e instanceof t.MissingOkConfigError||e instanceof t.DocumentDurabilityStateError)&&(console.error(f(e.message)),process.exit(1)),We(e,t)){let e=t.resolveLockDir(m),n=null;try{n=await He({readServerLock:()=>t.readServerLock(e),now:Date.now,sleep:e=>oe(e),timeoutMs:3e3,pollIntervalMs:50})}catch(e){process.stderr.write(`[start] spawn-or-reuse: lock poll failed (${e instanceof Error?e.message:String(e)}) — falling back to the collision message\n`)}if(n!==null){let[e,...t]=Ue(n);console.log(u(e));for(let e of t)console.log(d(e));process.exit(0)}}let n=Ge(e,m,t);n!==null&&(console.error(f(n)),process.exit(1)),console.error(`${f(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let M=!1,N=async e=>{if(M)return;M=!0;let[t,...n]=Be(e);console.log(u(`\n${t}`));for(let e of n)console.log(d(` ${e}`));try{await j.destroy(`external-signal`)}catch(e){console.error(`${f(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{N(`SIGINT`)}),process.once(`SIGTERM`,()=>{N(`SIGTERM`)});let P=`http://${C.includes(`:`)&&!C.startsWith(`[`)?`[${C}]`:C}:${j.port}`,te=C===`0.0.0.0`||C===`::`?`http://0.0.0.0:${j.port}`:void 0,I=P;console.log(l({name:`open-knowledge`,version:F,localUrl:I,networkUrl:te,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let L={"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`};j.ready.then(async()=>{if(j.degraded.length>0){console.log();for(let e of j.degraded){let t=L[e]??`${e} (check server logs for details)`;console.warn(` ${p(`⚠`)} ${p(e)}: ${d(t)}`)}console.log()}if(je({openBrowser:o.openBrowser!==!1&&E.openBrowser,explicitOn:o.openBrowser!==!1&&g.server?.openBrowser===!0,host:C,isTTY:process.stdout.isTTY===!0,ephemeral:o.singleFile!==void 0,only:o.only,servesUi:A!==void 0})){let{openBrowser:e}=await import(`./open-browser-DNGrx2It.mjs`);e(I)}}).catch(e=>{console.error(` ${f(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}async function He(e){let t=e.now()+e.timeoutMs,n=e.readServerLock();for(;n!==null&&n.draining!==!0&&n.port<=0&&e.now()<t;)await e.sleep(e.pollIntervalMs),n=e.readServerLock();return n===null||n.draining===!0||n.port<=0?null:u(n)&&n.url!==void 0?{url:n.url,kind:n.kind,pid:n.pid,servesUi:!0}:{url:n.url??`http://127.0.0.1:${n.port}`,kind:n.kind,pid:n.pid,servesUi:!1}}function Ue(e){return[`${e.kind===`mcp-spawned`?`An MCP-spawned OpenKnowledge server is already running on this project`:`OpenKnowledge is already running on this project`} (pid ${e.pid}).`,` ${e.url}`,"Leaving it running — run `ok stop` first if you want a fresh server."]}function We(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function Ge(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=n.readServerLock(n.resolveLockDir(t));return e&&e.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`."}catch{return null}}function Ke(e){return new h(`start`).description(`Start the OpenKnowledge server (UI + API + MCP + collab on one port)`).option(`-p, --port <port>`,`Server port`,void 0).option(`--bind <address>`,`Bind address (repeatable; default 127.0.0.1 — loopback only)`,(e,t)=>[...t??[],e]).option(`--no-open-browser`,`Do not open the browser after start (interactive loopback starts open it by default)`).option(`--only <module>`,`Serve one module: 'server' (API + MCP only, no shell or browser)`,Te).option(`--idle-shutdown <duration>`,`Shut the server down after this long with no connected clients ('off', or a duration like 90s, 30m, 2h; default 30m)`,Oe).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,Re).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>`).addOption(new _(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).hideHelp()).addOption(new _(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).hideHelp()).addOption(new _(`--terminal-auth`,`Tell in-app agents that this server's client can run terminal sign-ins (the desktop app passes it when it has a terminal)`).hideHelp()).option(`--external-url <url>`,`Canonical external origin clients dial (sets server.externalUrl for this run) — its host joins the Host/Origin allowlists (CORS + external-Host admission). External exposure additionally requires consent (OK_ALLOW_EXTERNAL=1 or server.allowExternal).`,Ne).action(async t=>{let n=e();if(t.only===`server`&&t.reactShellDistDir!==void 0&&(process.stderr.write(`error: option '--only server' cannot be combined with '--react-shell-dist-dir'
1
+ import{J as e,N as t,Y as n,Yu as r,b as i,i as a,rl as o}from"./md-manager-BGnqyqi1-DsBy1Dky.mjs";import{Qo as s,ds as c,es as l,hi as u,ii as d,ji as f,k as p,yi as m}from"./dist-BHg9XI3A.mjs";import{Ct as h,L as g,Tt as _,X as v,b as y,ut as b,wt as x,y as S,z as C}from"./init-C5n0LZMn.mjs";import{a as w,c as T,d as E,f as D,i as ee,n as O,o as k,p as A,r as j,s as M,t as N,u as P,y as te}from"./registry-probes-CjXFMEIZ.mjs";import{n as F}from"./constants-D7JQKPXh.mjs";import{execFileSync as I,spawn as L}from"node:child_process";import{basename as R,dirname as z,resolve as B}from"node:path";import{existsSync as V,realpathSync as ne}from"node:fs";import{homedir as re,tmpdir as ie}from"node:os";import{rm as ae}from"node:fs/promises";import{setTimeout as oe}from"node:timers/promises";const se=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],ce={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function le(e,t={}){let{login:n}=t,r=t._exec??I,i=H(t._fileExists??V),a=e?[`--hostname`,e]:[];if(n){let e=U(r,i,[`auth`,`token`,...a,`--user`,n]);if(e)return{available:!0,token:e,resolvedLogin:n,fallback:!1}}let o=U(r,i,[`auth`,`token`,...a]);return o?n?{available:!0,token:o,fallback:!0}:{available:!0,token:o}:{available:!1}}function H(e){return[`gh`,...se.filter(e)]}function U(e,t,n){for(let r of t)try{let t=e(r,n,ce).toString().trim();if(t.length>0)return t}catch{}}function W(e,t={}){let n=t._exec??I,r=H(t._fileExists??V),i=[`auth`,`status`,...e?[`--hostname`,e]:[]],a=U(n,r,[...i,`--json`,`hosts`]);if(a!==void 0){let t=ue(a,e);if(t)return t}let o=U(n,r,i);if(o!==void 0){let e=he(o);if(e.length>0)return e}}function G(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function ue(e,t){let n;try{n=JSON.parse(e)}catch{return}let r=G(G(n)?.hosts);if(!r||t!==void 0&&r[t]===void 0)return;let i=t===void 0?Object.values(r):[r[t]],a=[];for(let e of i){if(!Array.isArray(e))return;for(let t of e){let e=G(t);if(!e)continue;let n=e.login;typeof n==`string`&&n.length!==0&&a.push({login:n,active:e.active===!0})}}return a}const de=/Logged in to \S+ account (\S+) \(/,fe=/(?:Failed to log in to|Timeout trying to log in to) \S+/,pe=/^\s*-\s*Active account:\s*true\s*$/,me=/\u001b\[[0-9;]*m/g;function he(e){let t=[],n;for(let r of e.split(`
2
+ `)){let e=r.replace(me,``),i=de.exec(e)?.[1];if(i){n={login:i,active:!1},t.push(n);continue}if(fe.test(e)){n=void 0;continue}n&&pe.test(e)&&(n.active=!0)}return t}const ge={mode:`published`,skipAvailabilityCheck:!0,replaceEntry:!0};function K(){return{action:`failed`,errorId:`write-failed`}}function q(){return{action:`skipped-missing`,errorId:`surface-missing`}}function J(e,t,n){c(`agent-integrations-apply`).warn({editor:e,path:t,reason:n},`skill write failed`)}function Y(){return{action:`skipped-unsupported`,errorId:`no-writer`}}function _e(e){switch(e){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`left-foreign`:return{action:`skipped-foreign`,errorId:`foreign-artifact`};case`declined`:return{action:`declined`,errorId:`write-declined`}}}function ve(e,t,n,r,i){let a=v[e];try{let o=k(a,t,n,r,i);return o.kind===`removed`&&o.trustDetail&&c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),trust:o.trust,trustDetail:o.trustDetail},`MCP config removal retained Pi folder trust`),_e(o.kind)}catch(i){return c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),reason:i instanceof Error?i.message:String(i)},`MCP config removal failed`),K()}}async function ye(e,t,n){if(v[e].scope!==`global`)return q();if(n===`absent`)return ve(e,``,t.home,void 0,t.env);let r=(await y({editors:[e],home:t.home,replaceEntry:!0})).find(t=>t.editorId===e);if(r===void 0)return K();switch(r.action){case`written`:case`overwritten`:return{action:r.action};case`declined`:return{action:`declined`,errorId:`write-declined`};case`skipped-missing`:return q();case`skipped-flag`:return Y();default:return K()}}function be(e,t,n){let r=v[e].projectConfigPath?.(t.cwd);if(r===void 0)return q();if(n===`absent`)return ve(e,t.cwd,t.home,r,t.env);let i=S(v[e],t.cwd,ge,void 0,r);switch(i.action){case`written`:case`overwritten`:return{action:i.action};case`declined`:return{action:`declined`,errorId:`write-declined`};default:return K()}}function xe(e,t,n){let r=t.home??re();if(n===`absent`){let t=j(e,r);switch(t.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return q();case`failed`:return J(e,t.path,t.error),K()}}let i=w(e,r);switch(i.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return q();case`failed`:return J(e,i.path,i.error),K()}}function Se(e,t,n){if(n===`absent`){let n=g(v[e],t.cwd);switch(n.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return q();case`failed`:return J(e,n.path,n.error),K()}}let r=C(v[e],t.cwd);switch(r.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return q();case`skipped-prerequisite`:return{action:`skipped-prerequisite`,errorId:`dependency-failed`};case`failed`:return J(e,r.path,r.error),K()}}function Ce(e){return t=>{if(t.pathId===void 0)return Y();let n=r(t.pathId);if(n===null||n.kind===`central-skill-store`)return Y();switch(n.kind){case`editor-user-config`:return ye(n.editor,e,t.desired);case`editor-project-config`:return be(n.editor,e,t.desired);case`editor-project-skill-root`:return Se(n.editor,e,t.desired);case`editor-user-skill-root`:return xe(n.editor,e,t.desired)}}}function we(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function Te(e){if(e===`server`)return e;throw new x(`--only must be 'server'`)}function Ee(e=V){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[B(t,`public`),B(t,`../../app/dist`),B(t,`../../../app/dist`)].find(t=>e(t))}function De(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function Oe(e){if(e===`off`)return`off`;if(!o.test(e))throw new x(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return e}function ke(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function Ae(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function je(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||ke(e.host))&&e.isTTY}function Me(e,t){let n;try{n=new URL(t)}catch{throw new x(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new x(`${e} must be an http(s) origin (got: ${t})`);return t}function Ne(e){return Me(`--external-url`,e)}function Pe(e){let t=R(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var X=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}},Z=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${p}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Q(e,t={}){let n=t.tmpdirFn??ie,r=t.realpathFn??ne,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?B(e):null}},a=B(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(z(a));o=e===null?null:B(e,R(a))}else o=null}if(o===null)return!1;let s=i(n());return s!==null&&z(o)===s&&R(o).startsWith(`ok-ephemeral-`)}function $(e,t,n=e=>ae(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Q(t))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`)}else process.stderr.write(`[start] leaving ${t} in place: only ${p}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function Fe(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 Ie(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:o,mkdirSync:s}=await import(`node:fs`),{basename:c,dirname:l,resolve:u}=await import(`node:path`),{bootServer:p,createEphemeralProjectDir:h,getLogger:g,resolveContentDir:_,resolveLockDir:v,seedEphemeralProjectDir:y,waitForServerLockDrain:x}=await import(`./dist-ByQ8IZXo.mjs`),S=e.log??g(`start`),C=e.singleFile!==void 0,w=C?f(e.singleFile).canonicalFilePath:void 0,E=w?l(w):void 0,D=w?c(w):void 0,k,A=!1;if(E!==void 0){if(e.projectDir!==void 0){if(k=e.projectDir,!Q(k))throw new Z(k);o(u(k,`.ok`,`config.yml`))||y(k,E)}else k=h(E),A=!0}let j=async()=>{if(!(!A||k===void 0)){if(!Q(k)){S.warn({ephemeralProjectDir:k},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await ae(k,{recursive:!0,force:!0})}catch(e){S.warn({err:e,ephemeralProjectDir:k},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},P=k;if(!C){if(!i&&!d(n))throw new X(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{e.severity===`info`?S.debug({event:e},`[start] reclaim sweep event`):S.warn({event:e},`[start] reclaim sweep reported a problem`)};try{let i=(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-C21Kb5o_.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r}).outcomes.filter(e=>e.outcome!==`no-entry`&&e.outcome!==`canonical`&&e.outcome!==`repaired`&&e.outcome!==`foreign`);i.length>0&&S.warn({unhealed:i},`[start] reclaim sweep left entries it could not heal`)}catch(e){S.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-Db5HnCXi.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){S.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}}let F=E??_(t,n);!C&&!o(F)&&(s(F,{recursive:!0}),S.info({contentDir:F},`Created content directory`));let I=te(),L=m(),R;try{{let e=v(k??n),t=Date.now(),r=await x(e);r!==`no-drain`&&S.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`)}R=await p({config:t,contentDir:F,projectDir:k??n,contentRoot:C?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:le,detectGhAccounts:W,tokenStore:I,embeddingsKeyStore:L,mcpTomlEditor:b(),...C?{ephemeral:!0,singleDocRelPath:D,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>O(e,t),probePiAcpBridge:e=>T(e),ensurePiAcpBridge:(e,t)=>M(e,void 0,void 0,void 0,t),agentIntegrations:(()=>{let e={cwd:k??n,home:re(),env:process.env};return{probe:N(e),execute:Ce(e),userSkillPresentAnywhere:ee}})(),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Fe(P===void 0?n:$(n,P),{log:S,exit:e.idleExit})},log:S,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{},...e.terminalAuthAvailable===!0?{terminalAuthAvailable:!0}:{}})}catch(e){throw await j(),e}let z=R.destroy,B=A?async()=>{try{await z()}finally{await j()}}:z;return{httpServer:R.httpServer,destroy:B,lockDir:R.lockDir,contentDir:F,port:R.port,ready:R.ready,degraded:R.degraded}}function Le(e,t,n=()=>s({absPath:l(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function Re(e){if(e===`browser`||e===`app`)return e;throw new x(`--mode must be 'browser' or 'app'`)}function ze(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function Be(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 Ve(r,o){let s=Le(r,o.singleFile),c=ze(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:l}=await import(`./banner-kywHhVaC.mjs`),{accent:u,dim:d,error:f,warning:p}=await import(`./colors-SgU3JHQu.mjs`),m=process.cwd();process.title=Pe(m);let h;try{h=e(process.env)}catch(e){throw e instanceof a&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=i(s,h.layer),_=h.overrides.some(e=>e.envVar===`OK_BIND`),v=o.bind!==void 0&&o.bind.length>0?o.bind:void 0,y=process.env.HOST,b=y!==void 0&&y.trim()!==``?y:void 0,x=n(g),S=v??(_||b===void 0?[...x.bind]:[b]);Ae({flagBindSet:v!==void 0,okBindSet:_,hostEnvSet:b!==void 0,fileBindCount:x.bind.length})&&console.warn(p(`[config] HOST=${b} overrides server.bind — dropping the file-configured addresses (${x.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let C=S[0]??`127.0.0.1`,w=S,T=o.externalUrl,E=n(i(g,{server:{bind:w,...T===void 0?{}:{externalUrl:T}}}));if(E.allowExternal&&(!E.loopbackOnly||E.externalUrl)){let e=E.externalUrl??E.bind.join(`, `);console.warn(p([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
3
+ `)))}let D=o.port===void 0?void 0:Number(o.port),ee=h.overrides.find(e=>e.envVar===`PORT`)?.value,O=D??ee??s.server?.port,k=De({explicitDir:o.reactShellDistDir,only:o.only,findBundledDir:Ee}),A=k.dir;k.missingBundle&&console.warn(`bundled web UI not found — serving /api and /mcp only. Reinstall @inkeep/open-knowledge, or build packages/app in a source checkout.`);let j;try{j=await Ie({config:s,cwd:m,host:C,port:O,bind:w,...o.serveContentAssets===void 0?{}:{serveContentAssets:o.serveContentAssets},...A?{reactShellDistDir:A}:{},idleThresholdMs:t(o.idleShutdown??E.idleShutdown),serverRuntime:E,...o.singleFile?{singleFile:o.singleFile}:{},...o.projectDir?{projectDir:o.projectDir}:{},...o.terminalAuth===!0?{terminalAuthAvailable:!0}:{}})}catch(e){e instanceof X&&(console.error(f(e.message)),process.exit(1)),e instanceof Z&&(console.error(f(e.message)),process.exit(1));let t=await import(`./dist-ByQ8IZXo.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.ExposureConsentError&&(console.error(f(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(f(e.message)),process.exit(1)),(e instanceof t.MissingOkConfigError||e instanceof t.DocumentDurabilityStateError)&&(console.error(f(e.message)),process.exit(1)),We(e,t)){let e=t.resolveLockDir(m),n=null;try{n=await He({readServerLock:()=>t.readServerLock(e),now:Date.now,sleep:e=>oe(e),timeoutMs:3e3,pollIntervalMs:50})}catch(e){process.stderr.write(`[start] spawn-or-reuse: lock poll failed (${e instanceof Error?e.message:String(e)}) — falling back to the collision message\n`)}if(n!==null){let[e,...t]=Ue(n);console.log(u(e));for(let e of t)console.log(d(e));process.exit(0)}}let n=Ge(e,m,t);n!==null&&(console.error(f(n)),process.exit(1)),console.error(`${f(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let M=!1,N=async e=>{if(M)return;M=!0;let[t,...n]=Be(e);console.log(u(`\n${t}`));for(let e of n)console.log(d(` ${e}`));try{await j.destroy(`external-signal`)}catch(e){console.error(`${f(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{N(`SIGINT`)}),process.once(`SIGTERM`,()=>{N(`SIGTERM`)});let P=`http://${C.includes(`:`)&&!C.startsWith(`[`)?`[${C}]`:C}:${j.port}`,te=C===`0.0.0.0`||C===`::`?`http://0.0.0.0:${j.port}`:void 0,I=P;console.log(l({name:`open-knowledge`,version:F,localUrl:I,networkUrl:te,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let L={"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`};j.ready.then(async()=>{if(j.degraded.length>0){console.log();for(let e of j.degraded){let t=L[e]??`${e} (check server logs for details)`;console.warn(` ${p(`⚠`)} ${p(e)}: ${d(t)}`)}console.log()}if(je({openBrowser:o.openBrowser!==!1&&E.openBrowser,explicitOn:o.openBrowser!==!1&&g.server?.openBrowser===!0,host:C,isTTY:process.stdout.isTTY===!0,ephemeral:o.singleFile!==void 0,only:o.only,servesUi:A!==void 0})){let{openBrowser:e}=await import(`./open-browser-CJogphTe.mjs`);e(I)}}).catch(e=>{console.error(` ${f(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}async function He(e){let t=e.now()+e.timeoutMs,n=e.readServerLock();for(;n!==null&&n.draining!==!0&&n.port<=0&&e.now()<t;)await e.sleep(e.pollIntervalMs),n=e.readServerLock();return n===null||n.draining===!0||n.port<=0?null:u(n)&&n.url!==void 0?{url:n.url,kind:n.kind,pid:n.pid,servesUi:!0}:{url:n.url??`http://127.0.0.1:${n.port}`,kind:n.kind,pid:n.pid,servesUi:!1}}function Ue(e){return[`${e.kind===`mcp-spawned`?`An MCP-spawned OpenKnowledge server is already running on this project`:`OpenKnowledge is already running on this project`} (pid ${e.pid}).`,` ${e.url}`,"Leaving it running — run `ok stop` first if you want a fresh server."]}function We(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function Ge(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=n.readServerLock(n.resolveLockDir(t));return e&&e.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`."}catch{return null}}function Ke(e){return new h(`start`).description(`Start the OpenKnowledge server (UI + API + MCP + collab on one port)`).option(`-p, --port <port>`,`Server port`,void 0).option(`--bind <address>`,`Bind address (repeatable; default 127.0.0.1 — loopback only)`,(e,t)=>[...t??[],e]).option(`--no-open-browser`,`Do not open the browser after start (interactive loopback starts open it by default)`).option(`--only <module>`,`Serve one module: 'server' (API + MCP only, no shell or browser)`,Te).option(`--idle-shutdown <duration>`,`Shut the server down after this long with no connected clients ('off', or a duration like 90s, 30m, 2h; default 30m)`,Oe).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,Re).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>`).addOption(new _(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).hideHelp()).addOption(new _(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).hideHelp()).addOption(new _(`--terminal-auth`,`Tell in-app agents that this server's client can run terminal sign-ins (the desktop app passes it when it has a terminal)`).hideHelp()).option(`--external-url <url>`,`Canonical external origin clients dial (sets server.externalUrl for this run) — its host joins the Host/Origin allowlists (CORS + external-Host admission). External exposure additionally requires consent (OK_ALLOW_EXTERNAL=1 or server.allowExternal).`,Ne).action(async t=>{let n=e();if(t.only===`server`&&t.reactShellDistDir!==void 0&&(process.stderr.write(`error: option '--only server' cannot be combined with '--react-shell-dist-dir'
4
4
  `),process.exit(2)),t.projectDir!==void 0&&t.singleFile===void 0&&(process.stderr.write(`error: option '--project-dir' requires '--single-file'
5
5
  `),process.exit(2)),t.mode===`app`){let e=[];if(t.port!==void 0&&e.push(`--port`),t.bind!==void 0&&e.push(`--bind`),t.only!==void 0&&e.push(`--only`),t.idleShutdown!==void 0&&e.push(`--idle-shutdown`),t.openBrowser===!1&&e.push(`--no-open-browser`),t.externalUrl!==void 0&&e.push(`--external-url`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=E(P());if(n.available){D({spawn:L},n);return}console.error(A(n.reason)),process.exit(1)}await Ve(n,t)})}export{Ge as C,W as D,le as E,Ke as S,Fe as T,ze as _,Ue as a,je as b,Q as c,Oe as d,Te as f,Le as g,He as h,Pe as i,We as l,we as m,X as n,Be as o,Ee as p,Ie as r,ke as s,Z as t,Ne as u,De as v,$ as w,Ae as x,Ve as y};
@@ -0,0 +1 @@
1
+ import{S as e,m as t,p as n,r}from"./start-C8VQZz6U.mjs";export{r as bootStartServer,n as resolveBundledReactShellDir,t as resolveHost,e as startCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/open-knowledge",
3
- "version": "0.83.0-beta.4",
3
+ "version": "0.83.0-beta.6",
4
4
  "description": "Local-first, agent-friendly Markdown knowledge base with a cross-platform CLI and web editor",
5
5
  "keywords": [
6
6
  "knowledge-base",
@@ -65,10 +65,10 @@
65
65
  "@parcel/watcher": "^2.5.6"
66
66
  },
67
67
  "devDependencies": {
68
- "@inkeep/open-knowledge-app": "0.83.0-beta.4",
69
- "@inkeep/open-knowledge-core": "0.83.0-beta.4",
68
+ "@inkeep/open-knowledge-app": "0.83.0-beta.6",
69
+ "@inkeep/open-knowledge-core": "0.83.0-beta.6",
70
70
  "@inkeep/open-knowledge-native-config": "0.0.0",
71
- "@inkeep/open-knowledge-server": "0.83.0-beta.4",
71
+ "@inkeep/open-knowledge-server": "0.83.0-beta.6",
72
72
  "@types/node": "^24.7.0",
73
73
  "@types/proper-lockfile": "^4.1.4",
74
74
  "@types/yazl": "^3.3.1",
@@ -1 +0,0 @@
1
- import"./md-manager-BGnqyqi1-IqwoPmS1.mjs";var e=`0.83.0-beta.4`;const t=`config.yml`,n=e;export{n,t};
@@ -1 +0,0 @@
1
- import"./dist-Db3MAmfg.mjs";import{_ as e}from"./init-CL_e6Q1D.mjs";export{e as runInit};
@@ -1 +0,0 @@
1
- import{n as e}from"./loader-C7EEsDKg.mjs";export{e as loadConfig};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./preview-BlJ1Z0op.mjs";export{t as formatPreviewBlock,e as previewContent};
@@ -1 +0,0 @@
1
- import{t as e}from"./index-X6cytEL5.js";export{e as FeedbackForm};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./jsx-runtime-BUgB2tll.js";import{R as n,ct as r,it as i,lt as a,ot as o,ut as s,z as c}from"./DocumentContext-mYOuQjoP.js";import{t as l}from"./react-f2sANaYj.js";import{n as u,r as d}from"./dist-Nvb76hAm.js";import{t as f}from"./compiler-runtime-BfE3aGVn.js";import{t as p}from"./utils-CPqDy6Hr.js";import{t as m}from"./alert-dialog-BA3e7-10.js";import{t as h}from"./label-CvMpFFbN.js";import{t as g}from"./switch-BKZTXkzu.js";import{t as _}from"./button-DzgjsZzC.js";import{n as v}from"./dist-BGzUo_18.js";import{t as y}from"./dist-C_FzPxEX2.js";import{n as b}from"./config-errors-DCSQBhyj.js";import{a as x,p as S,t as C}from"./schemas-B93JY9Ef.js";import{i as w}from"./use-apply-config-theme-CYFG76sS.js";import{t as T}from"./createLucideIcon-DdBzwsHe.js";import{t as E}from"./arrow-up-right-nJaICi16.js";import{t as D}from"./check-B2OLRY33.js";import{n as O,t as k}from"./lint-plugin-meta-CtDE2R0v.js";import{t as A}from"./circle-alert-eBm4JPxY.js";import{lr as j}from"./CodeMirrorPropInput-a3VwRUQz.js";import{t as M}from"./git-merge-VDBzSZBV.js";import{t as N}from"./spinner-Bx8xD6f8.js";import{t as P}from"./plus-zPnYzcqL.js";import{t as F}from"./square-pen-BoydeSu6.js";import{t as I}from"./trash-2-CchZ0T47.js";import{t as L}from"./badge-DmdA1C7r.js";import{a as R,c as ee,i as z,n as te,o as B,r as ne,s as re,t as ie}from"./dialog-BJEjKJjL.js";import{n as ae}from"./constants-skills-BLHVRW90.js";import{s as oe}from"./use-settings-route-DT86DJkF.js";import{c as V}from"./doc-hash-BJkweiX9.js";import"./config-provider-BDWGnun_.js";import{n as H}from"./PageListContext-OHnhzUbe.js";import{m as U}from"./skills-api-DfXaxEkX.js";import{t as se}from"./input-C-Qm8YDT.js";import{a as ce,i as le,t as ue}from"./popover-BhiLJhH5.js";import{t as W}from"./external-link-CldCnbtR.js";import{t as G}from"./use-skills-CV4zn3OT.js";import{t as K}from"./use-open-skill-DX2J-XUP.js";import{n as de,t as fe}from"./DisclosureWarning-DGH1_U0o.js";import{E as q,S as pe,b as me,c as he,f as J,m as ge,p as Y,s as _e,v as X}from"./markdown-lint-CfRH6CjV.js";import{d as ve,n as ye,r as be,t as xe,u as Se}from"./lint-config-client-DgV9TE2y.js";import{t as Ce}from"./DeleteConfirmationDialog-DrwlL-Hc.js";import{a as we,c as Te,i as Ee,n as De,o as Oe,s as ke,t as Ae}from"./card-CUu_Dbtf.js";import{t as je}from"./tag-pill-input-D_82NbMi.js";import{t as Me}from"./markdownlint-rule-browser-CN1TwJhU.js";import{n as Ne}from"./schema-fields-view-intent-CU_6zklJ.js";import{r as Pe,t as Fe}from"./SettingsSectionHeader-XnGFBVeB.js";var Ie=T(`folder-tree`,[[`path`,{d:`M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`hod4my`}],[`path`,{d:`M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`w4yl2u`}],[`path`,{d:`M3 5a2 2 0 0 0 2 2h3`,key:`f2jnh7`}],[`path`,{d:`M3 3v13a2 2 0 0 0 2 2h3`,key:`k8epm1`}]]),Le=T(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Z=f(),Q=e(l(),1),Re=S({enabled:x(),active:x(),git:S({state:C([`not-applicable`,`ready`,`missing`,`conflict`,`unavailable`]),ownership:C([`open-knowledge`,`existing`]).optional()}),applied:x().optional(),reason:C([`git-conflict`,`git-unavailable`,`config-write`]).optional()});async function ze(e){try{let t=await n(await fetch(`/api/generated-index/settings`,e),`Open Knowledge could not update index generation.`);if(!t.ok)return{status:null,issue:`connection`};let r=c(Re,t.body,`generated-index-settings`,null);return r?{status:r,issue:r.applied===!1?r.reason??`connection`:null}:{status:null,issue:`connection`}}catch{return{status:null,issue:`connection`}}}function Be(){let e=(0,Z.c)(8),[t,n]=(0,Q.useState)(null),[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=function(){ze().then(e=>{e.status&&n(e.status),i(e.issue)})},e[0]=s):s=e[0];let c=s,l,u;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{c();let e=window.setInterval(c,5e3);return()=>window.clearInterval(e)},u=[],e[1]=l,e[2]=u):(l=e[1],u=e[2]),(0,Q.useEffect)(l,u);let d;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=async function(e){o(!0);let t=await ze({method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e})});return o(!1),t.status&&n(t.status),i(t.issue),t.status?.applied===!0},e[3]=d):d=e[3];let f=d,p;return e[4]!==r||e[5]!==a||e[6]!==t?(p={status:t,issue:r,pending:a,refresh:c,setEnabled:f},e[4]=r,e[5]=a,e[6]=t,e[7]=p):p=e[7],p}function Ve(e){return`${e}/**`}function He(e){let t=e.trim();if(t===``||t.startsWith(`!`))return null;let{includes:n,excludes:r}=q(t);if(r.length>0||n.length!==1)return null;let i=n[0];return i!==void 0&&i.kind===`folder-recursive`?i.folder:null}function Ue(e){let t=new Set;for(let n of e){let e=He(n);e!==null&&t.add(e)}return t}function We(e,t,n){return n?Ue(e).has(t)?[...e]:[...e,Ve(t)]:e.filter(e=>He(e)!==t)}function Ge(e,t){let n=e.lastIndexOf(`/`);for(;n>0;){if(t.has(e.slice(0,n)))return!0;n=e.lastIndexOf(`/`,n-1)}return!1}function Ke(e){let t=new Set;for(let n of e){let e=n.replace(/\\/g,`/`).replace(/\/+$/,``).replace(/^\.\//,``);if(e===``||e===`.`)continue;t.add(e);let r=e.lastIndexOf(`/`);for(;r>0;)t.add(e.slice(0,r)),r=e.lastIndexOf(`/`,r-1)}let n=new Map;for(let e of t){let t=e.lastIndexOf(`/`),r=t===-1?``:e.slice(0,t),i=n.get(r);i===void 0?n.set(r,[e]):i.push(e)}let r=[],i=e=>{let t=n.get(e);if(t!==void 0){t.sort((e,t)=>e.localeCompare(t));for(let e of t)r.push({path:e}),i(e)}};return i(``),r}function qe(e){let t=new Map;for(let n of e){let e=n.lastIndexOf(`/`);for(;e>0;){let r=n.slice(0,e);t.set(r,(t.get(r)??0)+1),e=n.lastIndexOf(`/`,e-1)}}return t}function Je(e,t){let n=ge(e),r=0,i=0;for(let e of t)i+=1,n.matches(e)&&(r+=1);return{matched:r,total:i}}var $=t();function Ye(e){let t=(0,Z.c)(50),{file:n,globs:c,disabled:l,onChange:f}=e,{_:m}=d(),h=(0,Q.useId)(),[g,v]=(0,Q.useState)(!1),y=H();if(y===null)return null;let b,x,S,C,w,T,E,k,A,j,M;if(t[0]!==m||t[1]!==l||t[2]!==n||t[3]!==c||t[4]!==h||t[5]!==f||t[6]!==g||t[7]!==y.folderPaths||t[8]!==y.pages){let e=Ke(y.folderPaths).filter($e),d=qe(y.pages),N=Ue(c),P;t[20]===m?P=t[21]:(P=m({id:`Sr9xtj`}),t[20]=m,t[21]=P);let F=P;x=ue,A=g,j=v;let I=g?h:void 0,L=`frontmatter-schema-pick-folders-${n}`,R;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(Ie,{"aria-hidden":!0,className:`size-3.5 shrink-0 opacity-60`}),t[22]=R):R=t[22];let ee=N.size===0&&`text-muted-foreground`,z;t[23]===ee?z=t[24]:(z=p(`truncate text-xs`,ee),t[23]=ee,t[24]=z);let te=N.size===0?(0,$.jsx)(u,{id:`GW9ZdV`}):(0,$.jsx)(u,{id:`Vd8wxu`,values:{0:N.size}}),B;t[25]!==z||t[26]!==te?(B=(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[R,(0,$.jsx)(`span`,{className:z,children:te})]}),t[25]=z,t[26]=te,t[27]=B):B=t[27];let ne;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(O,{"aria-hidden":!0,className:`ms-2 size-3.5 shrink-0 opacity-50`}),t[28]=ne):ne=t[28],t[29]!==l||t[30]!==g||t[31]!==F||t[32]!==I||t[33]!==L||t[34]!==B?(M=(0,$.jsx)(ce,{asChild:!0,children:(0,$.jsxs)(_,{variant:`outline`,size:`sm`,role:`combobox`,"aria-expanded":g,"aria-haspopup":`listbox`,"aria-controls":I,"aria-label":F,disabled:l,className:`h-7 w-full justify-between font-normal`,"data-testid":L,children:[B,ne]})}),t[29]=l,t[30]=g,t[31]=F,t[32]=I,t[33]=L,t[34]=B,t[35]=M):M=t[35],b=le,S=`start`,C=`w-[var(--radix-popover-trigger-width)] p-0`,w=Qe,T=Ze,E=Xe,k=e.length===0?(0,$.jsx)(`p`,{className:`px-3 py-2 text-sm text-muted-foreground`,"data-testid":`frontmatter-schema-folder-tree-empty-${n}`,children:(0,$.jsx)(u,{id:`yit5dF`})}):(0,$.jsxs)(i,{label:F,children:[(0,$.jsx)(r,{placeholder:m({id:`VbM4Sv`})}),(0,$.jsxs)(s,{id:h,"aria-multiselectable":`true`,className:`subtle-scrollbar`,"data-testid":`frontmatter-schema-folder-tree-${n}`,children:[(0,$.jsx)(o,{children:(0,$.jsx)(u,{id:`wtd69q`})}),e.map(e=>{let t=N.has(e.path),r=!t&&Ge(e.path,N),i=d.get(e.path)??0;return(0,$.jsxs)(a,{value:e.path,disabled:r,"aria-checked":t||r,title:m(r?{id:`bDiiSM`}:{id:`XjqA8x`,values:{0:e.path}}),onSelect:()=>f(We(c,e.path,!t)),"data-testid":`frontmatter-schema-folder-item-${n}-${e.path}`,children:[(0,$.jsx)(D,{"aria-hidden":!0,className:p(`size-4 shrink-0`,t?`opacity-100`:r?`opacity-40`:`opacity-0`)}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,children:e.path}),(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:(0,$.jsx)(u,{id:`zD1Nqf`,values:{count:i}})})]},e.path)})]})]}),t[0]=m,t[1]=l,t[2]=n,t[3]=c,t[4]=h,t[5]=f,t[6]=g,t[7]=y.folderPaths,t[8]=y.pages,t[9]=b,t[10]=x,t[11]=S,t[12]=C,t[13]=w,t[14]=T,t[15]=E,t[16]=k,t[17]=A,t[18]=j,t[19]=M}else b=t[9],x=t[10],S=t[11],C=t[12],w=t[13],T=t[14],E=t[15],k=t[16],A=t[17],j=t[18],M=t[19];let N;t[36]!==b||t[37]!==S||t[38]!==C||t[39]!==w||t[40]!==T||t[41]!==E||t[42]!==k?(N=(0,$.jsx)(b,{align:S,className:C,onOpenAutoFocus:w,onWheel:T,onTouchMove:E,children:k}),t[36]=b,t[37]=S,t[38]=C,t[39]=w,t[40]=T,t[41]=E,t[42]=k,t[43]=N):N=t[43];let P;return t[44]!==x||t[45]!==N||t[46]!==A||t[47]!==j||t[48]!==M?(P=(0,$.jsxs)(x,{open:A,onOpenChange:j,children:[M,N]}),t[44]=x,t[45]=N,t[46]=A,t[47]=j,t[48]=M,t[49]=P):P=t[49],P}function Xe(e){e.stopPropagation()}function Ze(e){e.stopPropagation()}function Qe(e){e.preventDefault(),e.currentTarget.querySelector(`[cmdk-input]`)?.focus()}function $e(e){return He(Ve(e.path))===e.path}var et=[`unmatched`,`invalid`,`suspicious`],tt=` appliesTo glob `,nt=` (frontmatter mapping for `,rt=` — `;function it(e){if(!e.startsWith(`"`))return null;for(let t=1;t<e.length;t++){let n=e[t];if(n===`\\`){t++;continue}if(n===`"`)try{return{value:JSON.parse(e.slice(0,t+1)),rest:e.slice(t+1)}}catch{return null}}return null}function at(e){let t=et.find(t=>e.startsWith(`${t}${tt}`));if(t===void 0)return null;let n=it(e.slice(t.length+16));if(n===null)return null;let r=n.rest.lastIndexOf(nt);if(r===-1||!n.rest.endsWith(`)`))return null;let i=n.rest.slice(r+26,-1);if(i===``)return null;let a=n.rest.slice(0,r);if(!a.startsWith(rt))return null;let o=a.slice(3);return o===``?null:{kind:t,pattern:n.value,detail:o,file:i}}function ot(e){let t=new Map;for(let n of e){let e=at(n);if(e===null)continue;let r=t.get(e.file);r===void 0&&(r=new Map,t.set(e.file,r));let i=r.get(e.pattern);r.set(e.pattern,i===void 0?e.detail:`${i}; ${e.detail}`)}return t}var st=8e3;function ct({pluginId:e,label:t}){v.success(y._({id:`XfA5xx`,values:{label:t}}),{id:`plugin-enabled-${e}`,description:y._({id:`2wTb8w`}),duration:st,action:{label:y._({id:`Yp-Hi_`}),onClick:()=>oe(e)}})}function lt(){let e=(0,Z.c)(7),{_:t}=d(),{projectConfig:n,projectSynced:r,projectBinding:i}=w(),a=n?.contentRules,o=r&&i!==null,s;e[0]!==t||e[1]!==i?(s=function(e){if(i===null)return v.error(t({id:`dVaXnv`})),!1;let n=i.patch({contentRules:e});return n.ok?!0:(v.error(t({id:`NrFwux`,values:{0:b(n.error)}})),!1)},e[0]=t,e[1]=i,e[2]=s):s=e[2];let c=s,l;return e[3]!==o||e[4]!==a||e[5]!==c?(l={contentRules:a,bindingReady:o,write:c},e[3]=o,e[4]=a,e[5]=c,e[6]=l):l=e[6],l}function ut(e,t){return{[e]:{enabled:t}}}function dt(e){let t=(0,Z.c)(3),{id:n}=e;switch(n){case`markdownlint`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`Vftef5`}),t[0]=e):e=t[0],e}case`frontmatter`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`78G7R3`}),t[1]=e):e=t[1],e}case`okf`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`3ri_4O`}),t[2]=e):e=t[2],e}}}function ft(){let e=(0,Z.c)(12),{_:t}=d(),{contentRules:n,bindingReady:r,write:i}=lt(),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(u,{id:`ohUJJM`}),e[0]=a):a=e[0];let o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(Fe,{titleId:`settings-plugins-title`,title:a,scope:`project`,children:(0,$.jsx)(u,{id:`Ni4b7h`})}),e[1]=o):o=e[1];let s;e[2]!==t||e[3]!==r||e[4]!==n||e[5]!==i?(s=k.map(e=>{let a=n?.[e.id]?.enabled===!0,o=`settings-plugin-toggle-${e.id}-description`;return(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-3 py-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsxs)(h,{htmlFor:`settings-plugin-toggle-${e.id}`,className:`inline-flex items-center gap-1.5 text-sm font-medium`,children:[e.label,e.beta?(0,$.jsx)(Pe,{}):null]}),(0,$.jsx)(`p`,{id:o,className:`text-sm text-muted-foreground`,children:(0,$.jsx)(dt,{id:e.id})})]}),(0,$.jsx)(g,{id:`settings-plugin-toggle-${e.id}`,"aria-describedby":o,checked:a,disabled:!r,onCheckedChange:t=>{i(ut(e.id,t))&&t&&ct({pluginId:e.id,label:e.label})},"aria-label":t(a?{id:`y5UgU8`,values:{0:e.label}}:{id:`FZtBeR`,values:{0:e.label}}),"data-testid":`settings-plugin-toggle-${e.id}`})]},e.id)}),e[2]=t,e[3]=r,e[4]=n,e[5]=i,e[6]=s):s=e[6];let c;e[7]===s?c=e[8]:(c=(0,$.jsx)(`div`,{className:`divide-y rounded-md border`,"data-testid":`settings-plugins-list`,children:s}),e[7]=s,e[8]=c);let l;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,"data-testid":`settings-plugins-audit-pointer`,children:(0,$.jsx)(u,{id:`9KooKn`})}),e[9]=l):l=e[9];let f;return e[10]===c?f=e[11]:(f=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-plugins-title`,className:`space-y-4`,"data-testid":`settings-plugins-manage`,children:[o,c,l]}),e[10]=c,e[11]=f),f}function pt(e){let t=(0,Z.c)(31),{userBinding:n}=e,{_:r}=d(),{userConfig:i}=w(),a=i?.appearance?.colorThemeEnabled!==!1,o=i?.slides?.enabled===!0,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(u,{id:`ohUJJM`}),t[0]=s):s=t[0];let c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(Fe,{titleId:`settings-user-plugins-title`,title:s,scope:`user`,children:(0,$.jsx)(u,{id:`Ske_wc`})}),t[1]=c):c=t[1];let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(h,{htmlFor:`settings-plugin-toggle-theme`,className:`text-sm font-medium`,children:(0,$.jsx)(u,{id:`fJ3EbT`})}),t[2]=l):l=t[2];let f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[l,(0,$.jsx)(`p`,{id:`settings-plugin-toggle-theme-description`,className:`text-1sm text-muted-foreground`,children:(0,$.jsx)(u,{id:`YRavYS`})})]}),t[3]=f):f=t[3];let p=n===null,m;t[4]!==r||t[5]!==n?(m=e=>{if(n){if(!n.patch({appearance:{colorThemeEnabled:e}}).ok){v.error(r({id:`C_Lyvh`}));return}e&&ct({pluginId:`theme`,label:r({id:`fJ3EbT`})})}},t[4]=r,t[5]=n,t[6]=m):m=t[6];let _;t[7]!==r||t[8]!==a?(_=r(a?{id:`cOJyVj`}:{id:`G_hVTP`}),t[7]=r,t[8]=a,t[9]=_):_=t[9];let y;t[10]!==p||t[11]!==m||t[12]!==_||t[13]!==a?(y=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-3 py-3`,children:[f,(0,$.jsx)(g,{id:`settings-plugin-toggle-theme`,"aria-describedby":`settings-plugin-toggle-theme-description`,checked:a,disabled:p,onCheckedChange:m,"aria-label":_,"data-testid":`settings-plugin-toggle-theme`})]}),t[10]=p,t[11]=m,t[12]=_,t[13]=a,t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsxs)(h,{htmlFor:`settings-plugin-toggle-slides`,className:`inline-flex items-center gap-1.5 text-sm font-medium`,children:[(0,$.jsx)(u,{id:`f14doC`}),(0,$.jsx)(Pe,{})]}),t[15]=b):b=t[15];let x;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[b,(0,$.jsx)(`p`,{id:`settings-plugin-toggle-slides-description`,className:`text-1sm text-muted-foreground`,children:(0,$.jsx)(u,{id:`Ozyht_`})})]}),t[16]=x):x=t[16];let S=n===null,C;t[17]!==r||t[18]!==n?(C=e=>{if(n){if(!n.patch({slides:{enabled:e}}).ok){v.error(r({id:`GMaDTM`}));return}e&&ct({pluginId:`slides`,label:r({id:`f14doC`})})}},t[17]=r,t[18]=n,t[19]=C):C=t[19];let T;t[20]!==r||t[21]!==o?(T=r(o?{id:`wRni1Z`}:{id:`UlVARL`}),t[20]=r,t[21]=o,t[22]=T):T=t[22];let E;t[23]!==o||t[24]!==S||t[25]!==C||t[26]!==T?(E=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-3 py-3`,children:[x,(0,$.jsx)(g,{id:`settings-plugin-toggle-slides`,"aria-describedby":`settings-plugin-toggle-slides-description`,checked:o,disabled:S,onCheckedChange:C,"aria-label":T,"data-testid":`settings-plugin-toggle-slides`})]}),t[23]=o,t[24]=S,t[25]=C,t[26]=T,t[27]=E):E=t[27];let D;return t[28]!==E||t[29]!==y?(D=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-user-plugins-title`,className:`space-y-4`,"data-testid":`settings-user-plugins-manage`,children:[c,(0,$.jsxs)(`div`,{className:`divide-y rounded-md border`,"data-testid":`settings-user-plugins-list`,children:[y,E]})]}),t[28]=E,t[29]=y,t[30]=D):D=t[30],D}function mt(e){return k.find(t=>t.id===e)?.docUrl}function ht(e){return k.find(t=>t.id===e)?.beta===!0}function gt(e){let t=(0,Z.c)(6),n;t[0]===e?n=t[1]:(n=e===void 0?{}:e,t[0]=e,t[1]=n);let{initialRuleQuery:r}=n,i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=mt(`markdownlint`),t[2]=i):i=t[2];let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(Fe,{titleId:`settings-plugin-markdownlint-title`,title:`markdownlint`,scope:`project`,docUrl:i,children:(0,$.jsx)(u,{id:`WFEbV1`,components:{0:(0,$.jsx)(`a`,{href:`https://github.com/DavidAnson/markdownlint`,target:`_blank`,rel:`noopener noreferrer`,onClick:vt,onAuxClick:_t,className:`inline-flex items-center gap-0.5 text-muted-foreground underline-offset-2 hover:text-foreground hover:underline`}),1:(0,$.jsx)(E,{"aria-hidden":!0,className:`size-3`})}})}),t[3]=a):a=t[3];let o;return t[4]===r?o=t[5]:(o=(0,$.jsxs)(`section`,{"aria-labelledby":`settings-plugin-markdownlint-title`,className:`space-y-4`,"data-testid":`settings-plugin-markdownlint`,children:[a,(0,$.jsx)(Me,{initialRuleQuery:r})]}),t[4]=r,t[5]=o),o}function _t(e){return W(e,`https://github.com/DavidAnson/markdownlint`)}function vt(e){return W(e,`https://github.com/DavidAnson/markdownlint`)}function yt(e){let t=(0,Z.c)(13),{id:n}=e;switch(n){case`no-wiki-links`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`qTT48-`}),t[0]=e):e=t[0],e}case`log-shape`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`gVMkEr`}),t[1]=e):e=t[1],e}case`index-shape`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`1JpLgH`}),t[2]=e):e=t[2],e}case`reserved-casing`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`hPQBsa`}),t[3]=e):e=t[3],e}case`frontmatter-required`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`mhnCt3`}),t[4]=e):e=t[4],e}case`frontmatter-recommended`:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`DjNcDy`}),t[5]=e):e=t[5],e}case`frontmatter-provenance`:{let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`tM5uzl`}),t[6]=e):e=t[6],e}case`frontmatter-computation`:{let e;return t[7]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`v15iQB`}),t[7]=e):e=t[7],e}case`frontmatter-reserved-index`:{let e;return t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`scyoP9`}),t[8]=e):e=t[8],e}case`frontmatter-root-index`:{let e;return t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`RB_g_C`}),t[9]=e):e=t[9],e}case`project-no-mdx`:{let e;return t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`GROUfG`}),t[10]=e):e=t[10],e}default:{let e;return t[11]===n?e=t[12]:(e=Y(n),t[11]=n,t[12]=e),e}}}function bt(e){let t=(0,Z.c)(5),{id:n}=e;switch(n){case`structure`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`cd3THN`}),t[0]=e):e=t[0],e}case`frontmatter`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`k5rKNs`}),t[1]=e):e=t[1],e}case`project`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`e0NrBM`}),t[2]=e):e=t[2],e}default:{let e;return t[3]===n?e=t[4]:(e=J(n),t[3]=n,t[4]=e),e}}}function xt(e){let t=(0,Z.c)(1),{id:n}=e;if(n!==`project`)return null;let r;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:(0,$.jsx)(u,{id:`L3BcJ4`})}),t[0]=r):r=t[0],r}function St(e){let t=(0,Z.c)(35),{packId:n,name:r}=e,{_:i}=d(),a=G(),o=K(),[s,c]=(0,Q.useState)(!1),[l,f]=(0,Q.useState)(null),p=(0,Q.useRef)(null),m;t[0]===i?m=t[1]:(m=i({id:`rarziH`}),t[0]=i,t[1]=m);let h=m,g=a.status===`ready`?a.data.find(e=>e.scope===`project`&&e.name===r):void 0,y=g?g.origin?.source===`inkeep/open-knowledge-skills`?`installed`:`existing`:l,b=a.status===`idle`||a.status===`loading`,x;t[2]!==i||t[3]!==r||t[4]!==n?(x=async function(e){if(!e.includes(r))return new Map;let t=await U(n);if(!t.ok)return v.error(t.error),null;let a=t.skills.find(e=>e.name===r)?.created===!1?`existing`:`installed`;return f(a),v.success(i(a===`installed`?{id:`7idx48`}:{id:`ciozf1`})),new Map([[r,r]])},t[2]=i,t[3]=r,t[4]=n,t[5]=x):x=t[5];let S=x,C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(ke,{children:(0,$.jsx)(u,{id:`r7IaYp`})}),t[6]=C):C=t[6];let w;t[7]===h?w=t[8]:(w=(0,$.jsx)(Ee,{children:h}),t[7]=h,t[8]=w);let T;t[9]===y?T=t[10]:(T=y===`installed`?(0,$.jsx)(De,{children:(0,$.jsx)(L,{variant:`secondary`,children:(0,$.jsx)(u,{id:`eQkgKV`})})}):y===`existing`?(0,$.jsx)(De,{children:(0,$.jsx)(L,{variant:`outline`,children:(0,$.jsx)(u,{id:`JKXcOi`})})}):null,t[9]=y,t[10]=T);let E;t[11]!==w||t[12]!==T?(E=(0,$.jsxs)(Oe,{children:[C,w,T]}),t[11]=w,t[12]=T,t[13]=E):E=t[13];let D;t[14]!==b||t[15]!==r||t[16]!==o||t[17]!==y?(D=(0,$.jsx)(we,{className:`justify-end gap-2`,children:y===null?(0,$.jsx)(_,{ref:p,type:`button`,variant:`secondary`,size:`sm`,disabled:b,onClick:()=>c(!0),children:b?(0,$.jsx)(u,{id:`J0uRhj`}):(0,$.jsx)(u,{id:`3qDsdf`})}):(0,$.jsx)(_,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(`project`,r),children:(0,$.jsx)(u,{id:`lZoQdy`})})}),t[14]=b,t[15]=r,t[16]=o,t[17]=y,t[18]=D):D=t[18];let O;t[19]!==E||t[20]!==D?(O=(0,$.jsxs)(Ae,{size:`sm`,"data-testid":`settings-okf-recommended-skill`,children:[E,D]}),t[19]=E,t[20]=D,t[21]=O):O=t[21];let k;t[22]!==h||t[23]!==s||t[24]!==r?(k=s?{plugin:`OKF`,names:[r],descriptions:{[r]:h}}:null,t[22]=h,t[23]=s,t[24]=r,t[25]=k):k=t[25];let A;t[26]===S?A=t[27]:(A={scope:`project`,installSelected:S},t[26]=S,t[27]=A);let j;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>p.current?.focus(),t[28]=j):j=t[28];let M;t[29]!==A||t[30]!==k?(M=(0,$.jsx)(Te,{bundle:k,source:ae,defaultScope:`project`,installOverride:A,onOpenChange:c,returnFocus:j}),t[29]=A,t[30]=k,t[31]=M):M=t[31];let N;return t[32]!==M||t[33]!==O?(N=(0,$.jsxs)($.Fragment,{children:[O,M]}),t[32]=M,t[33]=O,t[34]=N):N=t[34],N}function Ct(){let e=(0,Z.c)(76),{_:t}=d(),{contentRules:n,bindingReady:r,write:i}=lt(),a=n?.okf?.rules,o;e[0]===a?o=e[1]:(o=he.filter(e=>pe(a,e)),e[0]=a,e[1]=o);let s=o.length,c=n?.okf?.generate?.index===!0,l=Be(),f=l.status?.enabled??c,[p,m]=(0,Q.useState)(!1),v=(0,Q.useRef)(null),y,b,x,S,C,w,T,E;if(e[2]!==l||e[3]!==i){let t=k.find(Tt)?.recommendedSkills??[],n;e[12]===l?n=e[13]:(n=function(e){if(e){m(!0);return}l.setEnabled(!1)},e[12]=l,e[13]=n),T=n;let r;e[14]===l?r=e[15]:(r=async function(){await l.setEnabled(!0),m(!1)},e[14]=l,e[15]=r),y=r;let a;e[16]===i?a=e[17]:(a=function(e,t){let n={};n[e]=t?null:!1,i({okf:{rules:n}})&&be()},e[16]=i,e[17]=a),E=a,b=`settings-plugin-okf-title`,x=`space-y-4`,S=`settings-plugin-okf`,e[18]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(Fe,{titleId:`settings-plugin-okf-title`,title:`OKF`,scope:`project`,beta:ht(`okf`),docUrl:mt(`okf`),children:(0,$.jsx)(u,{id:`3ri_4O`})}),e[18]=C):C=e[18],w=t.length>0?(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`settings-okf-recommended-skills`,children:[(0,$.jsx)(`h4`,{className:`text-sm font-medium`,children:(0,$.jsx)(u,{id:`kVzuTI`})}),t.map(wt)]}):null,e[2]=l,e[3]=i,e[4]=y,e[5]=b,e[6]=x,e[7]=S,e[8]=C,e[9]=w,e[10]=T,e[11]=E}else y=e[4],b=e[5],x=e[6],S=e[7],C=e[8],w=e[9],T=e[10],E=e[11];let D;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(`h4`,{className:`text-sm font-medium`,children:(0,$.jsx)(u,{id:`aatPoi`})}),e[19]=D):D=e[19];let O;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(h,{htmlFor:`settings-okf-generate-index`,className:`text-sm font-medium`,children:(0,$.jsx)(u,{id:`_G7A92`})}),e[20]=O):O=e[20];let A;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:(0,$.jsx)(u,{id:`CXcveY`})}),e[21]=A):A=e[21];let P;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[O,A,(0,$.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:(0,$.jsx)(u,{id:`YaVU2F`})})]}),e[22]=P):P=e[22];let F=!r||l.status===null||l.pending,I;e[23]!==t||e[24]!==f?(I=t(f?{id:`sHDllh`}:{id:`sSRndh`}),e[23]=t,e[24]=f,e[25]=I):I=e[25];let L;e[26]!==f||e[27]!==F||e[28]!==I||e[29]!==T?(L=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border px-3 py-2`,children:[P,(0,$.jsx)(g,{ref:v,id:`settings-okf-generate-index`,checked:f,disabled:F,onCheckedChange:T,"aria-label":I,"data-testid":`settings-okf-generate-index`})]}),e[26]=f,e[27]=F,e[28]=I,e[29]=T,e[30]=L):L=e[30];let ae=l.status?.enabled??c,oe=l.status?.git.state,V;e[31]!==l.issue||e[32]!==ae||e[33]!==oe?(V=(0,$.jsx)(Et,{enabled:ae,gitState:oe,issue:l.issue}),e[31]=l.issue,e[32]=ae,e[33]=oe,e[34]=V):V=e[34];let H;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{e.preventDefault(),v.current?.focus()},e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(ee,{children:(0,$.jsx)(u,{id:`kVS5tE`})}),e[36]=U):U=e[36];let se;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsxs)(re,{children:[U,(0,$.jsx)(R,{className:`text-inherit`,children:(0,$.jsx)(u,{id:`110eEb`})})]}),e[37]=se):se=e[37];let ce;e[38]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(de,{icon:(0,$.jsx)(j,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),title:(0,$.jsx)(u,{id:`aatPoi`}),body:(0,$.jsx)(u,{id:`RD6H9q`})}),e[38]=ce):ce=e[38];let le;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,$.jsx)(de,{icon:(0,$.jsx)(M,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),title:(0,$.jsx)(u,{id:`XAnapw`}),body:(0,$.jsx)(u,{id:`CxCOFx`})}),e[39]=le):le=e[39];let ue;e[40]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(te,{children:(0,$.jsxs)(fe,{children:[ce,le,(0,$.jsx)(de,{icon:(0,$.jsx)(Le,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),title:(0,$.jsx)(u,{id:`fdKQAE`}),body:(0,$.jsx)(u,{id:`ByIOcK`})})]})}),e[40]=ue):ue=e[40];let W;e[41]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(ne,{asChild:!0,children:(0,$.jsx)(_,{variant:`outline`,children:(0,$.jsx)(u,{id:`dEgA5A`})})}),e[41]=W):W=e[41];let G;e[42]===y?G=e[43]:(G=()=>void y(),e[42]=y,e[43]=G);let K;e[44]===l.pending?K=e[45]:(K=l.pending?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(N,{"aria-hidden":`true`}),(0,$.jsx)(u,{id:`lY7Unt`})]}):(0,$.jsx)(u,{id:`aiOceC`}),e[44]=l.pending,e[45]=K);let q;e[46]!==l.pending||e[47]!==G||e[48]!==K?(q=(0,$.jsxs)(z,{className:`sm:max-w-lg`,"data-testid":`settings-okf-generate-index-confirm`,onCloseAutoFocus:H,children:[se,ue,(0,$.jsxs)(B,{children:[W,(0,$.jsx)(_,{onClick:G,disabled:l.pending,"data-testid":`settings-okf-generate-index-confirm-accept`,children:K})]})]}),e[46]=l.pending,e[47]=G,e[48]=K,e[49]=q):q=e[49];let me;e[50]!==p||e[51]!==q?(me=(0,$.jsx)(ie,{open:p,onOpenChange:m,children:q}),e[50]=p,e[51]=q,e[52]=me):me=e[52];let J;e[53]!==L||e[54]!==V||e[55]!==me?(J=(0,$.jsxs)(`div`,{className:`space-y-2`,"data-testid":`settings-okf-generated-files`,children:[D,L,V,me]}),e[53]=L,e[54]=V,e[55]=me,e[56]=J):J=e[56];let ge;e[57]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(`h4`,{className:`text-sm font-medium`,children:(0,$.jsx)(u,{id:`4EZrJN`})}),e[57]=ge):ge=e[57];let Y;e[58]===s?Y=e[59]:(Y=(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[ge,(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:(0,$.jsx)(u,{id:`NgZwB0`,values:{0:he.length,enabledCount:s}})})]}),e[58]=s,e[59]=Y);let X;e[60]!==t||e[61]!==r||e[62]!==a||e[63]!==E?(X=_e.map(e=>(0,$.jsxs)(`div`,{className:`space-y-2`,"data-testid":`settings-okf-rule-group-${e.id}`,children:[(0,$.jsx)(`h5`,{className:`text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:(0,$.jsx)(bt,{id:e.id})}),(0,$.jsx)(xt,{id:e.id}),(0,$.jsx)(`div`,{className:`divide-y rounded-md border`,children:e.ids.map(e=>{let n=pe(a,e);return(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(h,{htmlFor:`settings-okf-rule-toggle-${e}`,className:`text-sm font-medium`,children:e}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:(0,$.jsx)(yt,{id:e})})]}),(0,$.jsx)(g,{id:`settings-okf-rule-toggle-${e}`,checked:n,disabled:!r,onCheckedChange:t=>E(e,t),"aria-label":t(n?{id:`gfYI3o`,values:{id:e}}:{id:`8rZ1pk`,values:{id:e}}),"data-testid":`settings-okf-rule-toggle-${e}`})]},e)})})]},e.id)),e[60]=t,e[61]=r,e[62]=a,e[63]=E,e[64]=X):X=e[64];let ve;e[65]===X?ve=e[66]:(ve=(0,$.jsx)(`div`,{className:`space-y-4`,"data-testid":`settings-okf-rules-list`,children:X}),e[65]=X,e[66]=ve);let ye;return e[67]!==b||e[68]!==x||e[69]!==J||e[70]!==Y||e[71]!==S||e[72]!==ve||e[73]!==C||e[74]!==w?(ye=(0,$.jsxs)(`section`,{"aria-labelledby":b,className:x,"data-testid":S,children:[C,w,J,Y,ve]}),e[67]=b,e[68]=x,e[69]=J,e[70]=Y,e[71]=S,e[72]=ve,e[73]=C,e[74]=w,e[75]=ye):ye=e[75],ye}function wt(e){return(0,$.jsx)(St,{packId:e.packId,name:e.name},e.name)}function Tt(e){return e.id===`okf`}function Et(e){let t=(0,Z.c)(3),{enabled:n,gitState:r,issue:i}=e,a=i??(n&&r===`conflict`?`git-conflict`:n&&(r===`missing`||r===`unavailable`)?`git-unavailable`:null);if(a===null)return null;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(A,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0 text-amber-700 dark:text-amber-300`}),t[0]=o):o=t[0];let s;return t[1]===a?s=t[2]:(s=(0,$.jsxs)(`div`,{role:`status`,className:`flex gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-sm`,"data-testid":`settings-okf-generate-index-status`,children:[o,(0,$.jsx)(`p`,{children:a===`git-conflict`?(0,$.jsx)(u,{id:`BVkqD9`}):a===`config-write`?(0,$.jsx)(u,{id:`j-o6Z2`}):a===`connection`?(0,$.jsx)(u,{id:`5w38tn`}):(0,$.jsx)(u,{id:`SIPelo`})})]}),t[1]=a,t[2]=s),s}function Dt(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function Ot(e){let t=(0,Z.c)(20),{summary:n}=e;switch(n.kind){case`everything`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(u,{id:`0zAhu6`}),t[0]=e):e=t[0],e}case`folder-recursive`:{let e;return t[1]===n.folder?e=t[2]:(e=(0,$.jsx)(u,{id:`OZavHH`,values:{0:n.folder}}),t[1]=n.folder,t[2]=e),e}case`folder-direct`:{let e;return t[3]===n.folder?e=t[4]:(e=(0,$.jsx)(u,{id:`CWjM1r`,values:{0:n.folder}}),t[3]=n.folder,t[4]=e),e}case`exact`:{let e;return t[5]===n.target?e=t[6]:(e=(0,$.jsx)(u,{id:`c3ZGrq`,values:{0:n.target}}),t[5]=n.target,t[6]=e),e}case`name-anywhere`:{let e;return t[7]===n.name?e=t[8]:(e=(0,$.jsx)(u,{id:`QLgdT6`,values:{0:n.name}}),t[7]=n.name,t[8]=e),e}case`folder-anywhere`:{let e;return t[9]===n.folder?e=t[10]:(e=(0,$.jsx)(u,{id:`_yB-24`,values:{0:n.folder}}),t[9]=n.folder,t[10]=e),e}case`folder-recursive-nested`:{let e;return t[11]!==n.folder||t[12]!==n.root?(e=(0,$.jsx)(u,{id:`paCw0z`,values:{0:n.folder,1:n.root}}),t[11]=n.folder,t[12]=n.root,t[13]=e):e=t[13],e}case`matches-nothing`:{let e;return t[14]===n.pattern?e=t[15]:(e=(0,$.jsx)(u,{id:`J2_JuX`,values:{0:n.pattern}}),t[14]=n.pattern,t[15]=e),e}case`invalid`:{let e;return t[16]===n.pattern?e=t[17]:(e=(0,$.jsx)(u,{id:`5aahsI`,values:{0:n.pattern}}),t[16]=n.pattern,t[17]=e),e}case`pattern`:{let e;return t[18]===n.pattern?e=t[19]:(e=(0,$.jsx)(u,{id:`SiFgBx`,values:{0:n.pattern}}),t[18]=n.pattern,t[19]=e),e}}}function kt(e){let t=(0,Z.c)(21),{file:n,appliesTo:r}=e,{includes:i,excludes:a}=q(r),o=H(),s;t[0]!==r||t[1]!==o?(s=o!==null&&o.pages.size>0?Je(r,o.pages):null,t[0]=r,t[1]=o,t[2]=s):s=t[2];let c=s,l;t[3]!==r||t[4]!==c?(l=c!==null&&c.matched===0&&Dt(r).length>0,t[3]=r,t[4]=c,t[5]=l):l=t[5];let d=l,f;t[6]!==r||t[7]!==o?(f=(o===null?[]:X(r,[...o.pages])).some(Mt),t[6]=r,t[7]=o,t[8]=f):f=t[8];let p=f,m=At,h=`frontmatter-schema-applies-summary-${n}`,g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(u,{id:`p98xmP`}),t[9]=g):g=t[9];let _=i.length===0?(0,$.jsx)(Ot,{summary:{kind:`everything`}}):m(i),v=a.length>0?(0,$.jsxs)($.Fragment,{children:[` `,(0,$.jsx)(u,{id:`YGNRB5`}),` `,m(a)]}):null,y;t[10]!==c||t[11]!==n||t[12]!==d||t[13]!==p?(y=c===null?null:(0,$.jsxs)(`span`,{role:`status`,"aria-live":`polite`,className:d?`text-muted-foreground/70`:void 0,"data-testid":`frontmatter-schema-match-count-${n}`,children:[` `,(0,$.jsx)(u,{id:`Zs3d0w`,values:{0:c.total,1:c.matched,2:c.total,3:c.matched,4:c.total}}),p?(0,$.jsx)(`span`,{className:`ms-1 text-muted-foreground/60`,children:(0,$.jsx)(u,{id:`ni5Vqi`})}):null]}),t[10]=c,t[11]=n,t[12]=d,t[13]=p,t[14]=y):y=t[14];let b;return t[15]!==y||t[16]!==h||t[17]!==g||t[18]!==_||t[19]!==v?(b=(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,"data-testid":h,children:[g,` `,_,v,`.`,y]}),t[15]=y,t[16]=h,t[17]=g,t[18]=_,t[19]=v,t[20]=b):b=t[20],b}function At(e){return e.map(jt)}function jt(e,t){return(0,$.jsxs)(`span`,{children:[t>0?`, `:null,(0,$.jsx)(Ot,{summary:e})]},t)}function Mt(e){return q(e).includes.some(Nt)}function Nt(e){return e.kind===`exact`}function Pt(e){return e.enabled!==!1}function Ft(e){let t=(0,Z.c)(49),{file:n,mapping:r,disabled:i,globProblems:a,onToggle:o,onAppliesToChange:s,onDelete:c}=e,{_:l}=d(),f;t[0]===r?f=t[1]:(f=r!==void 0&&Pt(r),t[0]=r,t[1]=f);let p=f,m;t[2]===n?m=t[3]:(m=()=>{Ne(n),window.location.hash=V(n)},t[2]=n,t[3]=m);let v=m,y=`frontmatter-schema-row-${n}`,b;t[4]===n?b=t[5]:(b=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-sm`,title:n,children:n}),t[4]=n,t[5]=b);let x;t[6]!==l||t[7]!==n?(x=l({id:`74C2zx`,values:{file:n}}),t[6]=l,t[7]=n,t[8]=x):x=t[8];let S=`frontmatter-schema-edit-${n}`,C,w;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(F,{"aria-hidden":!0,className:`size-3`}),w=(0,$.jsx)(u,{id:`ePK91l`}),t[9]=C,t[10]=w):(C=t[9],w=t[10]);let T;t[11]!==v||t[12]!==x||t[13]!==S?(T=(0,$.jsxs)(_,{variant:`outline`,size:`sm`,className:`h-6 shrink-0 gap-1 px-2 text-xs`,onClick:v,"aria-label":x,"data-testid":S,children:[C,w]}),t[11]=v,t[12]=x,t[13]=S,t[14]=T):T=t[14];let E;t[15]!==l||t[16]!==i||t[17]!==n||t[18]!==c?(E=c===null?null:(0,$.jsx)(_,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 text-muted-foreground opacity-60 hover:opacity-100`,disabled:i,"aria-label":l({id:`mHf8mp`,values:{file:n}}),onClick:c,"data-testid":`frontmatter-schema-delete-${n}`,children:(0,$.jsx)(I,{className:`size-3.5`})}),t[15]=l,t[16]=i,t[17]=n,t[18]=c,t[19]=E):E=t[19];let D;t[20]!==l||t[21]!==n||t[22]!==p?(D=l(p?{id:`mAzs2H`,values:{file:n}}:{id:`EO4Dt1`,values:{file:n}}),t[20]=l,t[21]=n,t[22]=p,t[23]=D):D=t[23];let O=`frontmatter-schema-toggle-${n}`,k;t[24]!==i||t[25]!==p||t[26]!==o||t[27]!==D||t[28]!==O?(k=(0,$.jsx)(g,{checked:p,disabled:i,"aria-label":D,onCheckedChange:o,"data-testid":O}),t[24]=i,t[25]=p,t[26]=o,t[27]=D,t[28]=O,t[29]=k):k=t[29];let A;t[30]!==E||t[31]!==k||t[32]!==T?(A=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[T,E,k]}),t[30]=E,t[31]=k,t[32]=T,t[33]=A):A=t[33];let j;t[34]!==A||t[35]!==b?(j=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[b,A]}),t[34]=A,t[35]=b,t[36]=j):j=t[36];let M;t[37]!==l||t[38]!==i||t[39]!==n||t[40]!==a||t[41]!==r?.appliesTo||t[42]!==p||t[43]!==s?(M=p?(0,$.jsxs)(`div`,{className:`mt-2 space-y-1 ps-1.5`,children:[(0,$.jsx)(h,{htmlFor:`frontmatter-schema-applies-${n}`,className:`text-xs`,children:(0,$.jsx)(u,{id:`5Y17qa`})}),(0,$.jsx)(Ye,{file:n,globs:Dt(r?.appliesTo),disabled:i,onChange:s}),(0,$.jsx)(je,{id:`frontmatter-schema-applies-${n}`,value:Dt(r?.appliesTo),grammar:`free-text`,disabled:i,entryProblems:a,onChange:s,placeholder:l({id:`R_U_A4`}),"aria-label":l({id:`a45f2c`})}),(0,$.jsx)(kt,{file:n,appliesTo:r?.appliesTo})]}):null,t[37]=l,t[38]=i,t[39]=n,t[40]=a,t[41]=r?.appliesTo,t[42]=p,t[43]=s,t[44]=M):M=t[44];let N;return t[45]!==j||t[46]!==M||t[47]!==y?(N=(0,$.jsxs)(`div`,{className:`px-3 py-2`,"data-testid":y,children:[j,M]}),t[45]=j,t[46]=M,t[47]=y,t[48]=N):N=t[48],N}function It(){let e=(0,Z.c)(100),{_:t}=d(),{contentRules:n,bindingReady:r,write:i}=lt(),{data:a}=ve(),{schemas:o}=Se(),s;e[0]===n?.frontmatter?.schemas?s=e[1]:(s=n?.frontmatter?.schemas??[],e[0]=n?.frontmatter?.schemas,e[1]=s);let c=s,[l,f]=(0,Q.useState)(``),[p,g]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(``),[x,S]=(0,Q.useState)(null),[C,w]=(0,Q.useState)(!1),T,E,D,O,k,A,j,M;if(e[2]!==t||e[3]!==r||e[4]!==p||e[5]!==a?.configProblems||e[6]!==o||e[7]!==c||e[8]!==y||e[9]!==l||e[10]!==i){let n=new Set(c.map(Bt)),s=(a?.configProblems??[]).filter(e=>e.startsWith(`frontmatter schema `)?[...n].some(t=>e.startsWith(`frontmatter schema ${t}:`)):e.startsWith(`invalid appliesTo glob`)||e.startsWith(`suspicious appliesTo glob`)||e.startsWith(`unmatched appliesTo glob`)?[...n].some(t=>e.endsWith(`(frontmatter mapping for ${t})`)):!1),d;e[19]===i?d=e[20]:(d=function(e){i({frontmatter:{schemas:e}})&&be()},e[19]=i,e[20]=d);let m=d,x=[...new Set([...o,...c.map(zt)])].sort(Rt),C=l.trim().toLowerCase(),N=x.filter(e=>C===``||e.toLowerCase().includes(C)),F=ot(s),I;e[21]===c?I=e[22]:(I=e=>{let t=at(e);if(t===null)return!0;let n=c.find(e=>e.file===t.file),r=n!==void 0&&Pt(n)&&Dt(n.appliesTo).includes(t.pattern),i=c.some(e=>e.file===t.file&&Dt(e.appliesTo).includes(t.pattern));return!r&&i},e[21]=c,e[22]=I);let L=s.filter(I),R;e[23]!==c||e[24]!==m?(R=function(e,t){if(!c.some(t=>t.file===e)){t&&m([...c,{file:e,enabled:!0}]);return}m(c.map(n=>n.file===e?{...n,enabled:t}:n))},e[23]=c,e[24]=m,e[25]=R):R=e[25];let ee=R,z;e[26]!==c||e[27]!==m?(z=function(e,t){m(c.map(n=>{if(n.file!==e)return n;if(t.length===0){let{appliesTo:e,...t}=n;return t}return{...n,appliesTo:t}}))},e[26]=c,e[27]=m,e[28]=z):z=e[28];let te=z,B;e[29]!==t||e[30]!==c||e[31]!==m?(B=async function(e){w(!0);let n=await ye(e);if(w(!1),!n.ok){v.error(n.errorDetail??t({id:`hgtsat`,values:{file:e}}));return}c.some(t=>t.file===e)&&m(c.filter(t=>t.file!==e)),S(null),v.success(t({id:`v_2_3v`,values:{file:e}}))},e[29]=t,e[30]=c,e[31]=m,e[32]=B):B=e[32],T=B;let ne;e[33]!==t||e[34]!==c||e[35]!==y||e[36]!==m?(ne=async function(){let e=y.trim();if(e===``||e.includes(`/`)||e.includes(`\\`))return;let n=`.ok/schemas/${e.endsWith(`.json`)?e:`${e}.schema.json`}`,r=await xe(n);if(!r.ok){v.error(r.errorDetail??t({id:`U88xbi`}));return}m([...c,{file:n,enabled:!0}]),g(!1),b(``)},e[33]=t,e[34]=c,e[35]=y,e[36]=m,e[37]=ne):ne=e[37];let re=ne;E=`settings-plugin-frontmatter-title`,D=`space-y-4`,O=`settings-plugin-frontmatter`;let ie;e[38]===t?ie=e[39]:(ie=t({id:`PVggyD`}),e[38]=t,e[39]=ie);let ae,oe,V;e[40]===Symbol.for(`react.memo_cache_sentinel`)?(ae=ht(`frontmatter`),oe=mt(`frontmatter`),V=(0,$.jsx)(u,{id:`V3iDh1`}),e[40]=ae,e[41]=oe,e[42]=V):(ae=e[40],oe=e[41],V=e[42]),e[43]===ie?k=e[44]:(k=(0,$.jsx)(Fe,{titleId:`settings-plugin-frontmatter-title`,title:ie,scope:`project`,beta:ae,docUrl:oe,children:V}),e[43]=ie,e[44]=k),A=L.length>0&&(0,$.jsxs)(`div`,{className:`space-y-1 rounded-md border border-amber-500/50 bg-amber-500/10 p-3 text-sm`,"data-testid":`frontmatter-config-problems`,children:[(0,$.jsx)(`p`,{className:`font-medium`,children:(0,$.jsx)(u,{id:`3BLniE`})}),(0,$.jsx)(`ul`,{className:`list-disc ps-5 text-muted-foreground`,children:L.map(Lt)})]});let H;e[45]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>f(e.target.value),e[45]=H):H=e[45];let U;e[46]===t?U=e[47]:(U=t({id:`37P2BJ`}),e[46]=t,e[47]=U);let W;e[48]===t?W=e[49]:(W=t({id:`_NWEid`}),e[48]=t,e[49]=W);let G;e[50]!==l||e[51]!==U||e[52]!==W?(G=(0,$.jsx)(se,{value:l,onChange:H,placeholder:U,"aria-label":W,className:`h-8`,"data-testid":`frontmatter-schema-search`}),e[50]=l,e[51]=U,e[52]=W,e[53]=G):G=e[53];let K;e[54]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,$.jsx)(ce,{asChild:!0,children:(0,$.jsxs)(_,{variant:`outline`,size:`sm`,className:`shrink-0`,"data-testid":`frontmatter-create-schema`,children:[(0,$.jsx)(P,{"aria-hidden":!0,className:`size-4`}),(0,$.jsx)(u,{id:`LQdLio`})]})}),e[54]=K):K=e[54];let de;e[55]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(h,{htmlFor:`frontmatter-create-schema-name`,className:`text-xs`,children:(0,$.jsx)(u,{id:`PijLsG`})}),e[55]=de):de=e[55];let fe;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(fe=e=>b(e.target.value),e[56]=fe):fe=e[56];let q;e[57]===re?q=e[58]:(q=e=>{e.key===`Enter`&&re()},e[57]=re,e[58]=q);let pe;e[59]!==y||e[60]!==q?(pe=(0,$.jsx)(se,{id:`frontmatter-create-schema-name`,value:y,onChange:fe,onKeyDown:q,placeholder:`doc`,"data-testid":`frontmatter-create-schema-name`}),e[59]=y,e[60]=q,e[61]=pe):pe=e[61];let he;e[62]!==r||e[63]!==y?(he=!r||y.trim()===``,e[62]=r,e[63]=y,e[64]=he):he=e[64];let J;e[65]===re?J=e[66]:(J=()=>void re(),e[65]=re,e[66]=J);let ge;e[67]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(u,{id:`hYgDIe`}),e[67]=ge):ge=e[67];let Y;e[68]!==he||e[69]!==J?(Y=(0,$.jsx)(_,{size:`sm`,disabled:he,onClick:J,"data-testid":`frontmatter-create-schema-save`,children:ge}),e[68]=he,e[69]=J,e[70]=Y):Y=e[70];let _e;e[71]!==pe||e[72]!==Y?(_e=(0,$.jsxs)(le,{align:`end`,className:`w-72 space-y-2`,children:[de,pe,Y]}),e[71]=pe,e[72]=Y,e[73]=_e):_e=e[73];let X;e[74]!==p||e[75]!==_e?(X=(0,$.jsxs)(ue,{open:p,onOpenChange:g,children:[K,_e]}),e[74]=p,e[75]=_e,e[76]=X):X=e[76],e[77]!==G||e[78]!==X?(j=(0,$.jsxs)(`div`,{className:`flex items-center gap-4`,children:[G,X]}),e[77]=G,e[78]=X,e[79]=j):j=e[79],M=N.length===0?(0,$.jsx)(`p`,{className:`rounded-md border border-dashed p-3 text-sm text-muted-foreground`,"data-testid":`frontmatter-schemas-empty`,children:x.length===0?(0,$.jsx)(u,{id:`cRm498`}):(0,$.jsx)(u,{id:`3HAPpl`})}):(0,$.jsx)(`div`,{className:`divide-y rounded-md border`,"data-testid":`frontmatter-schemas-list`,children:N.map(e=>(0,$.jsx)(Ft,{file:e,mapping:c.find(t=>t.file===e),disabled:!r,globProblems:F.get(e),onToggle:t=>ee(e,t),onAppliesToChange:t=>te(e,t),onDelete:me(e)?()=>S(e):null},e))}),e[2]=t,e[3]=r,e[4]=p,e[5]=a?.configProblems,e[6]=o,e[7]=c,e[8]=y,e[9]=l,e[10]=i,e[11]=T,e[12]=E,e[13]=D,e[14]=O,e[15]=k,e[16]=A,e[17]=j,e[18]=M}else T=e[11],E=e[12],D=e[13],O=e[14],k=e[15],A=e[16],j=e[17],M=e[18];let N=x!==null,F;e[80]===C?F=e[81]:(F=e=>{!e&&!C&&S(null)},e[80]=C,e[81]=F);let I;e[82]!==t||e[83]!==T||e[84]!==x||e[85]!==C?(I=x===null?null:(0,$.jsx)(Ce,{itemName:t({id:`qribBG`,values:{deleteTarget:x}}),isSubmitting:C,onDelete:()=>void T(x),customDescription:t({id:`NzPihF`,values:{deleteTarget:x}})}),e[82]=t,e[83]=T,e[84]=x,e[85]=C,e[86]=I):I=e[86];let L;e[87]!==I||e[88]!==N||e[89]!==F?(L=(0,$.jsx)(m,{open:N,onOpenChange:F,children:I}),e[87]=I,e[88]=N,e[89]=F,e[90]=L):L=e[90];let R;return e[91]!==E||e[92]!==L||e[93]!==D||e[94]!==O||e[95]!==k||e[96]!==A||e[97]!==j||e[98]!==M?(R=(0,$.jsxs)(`section`,{"aria-labelledby":E,className:D,"data-testid":O,children:[k,A,j,M,L]}),e[91]=E,e[92]=L,e[93]=D,e[94]=O,e[95]=k,e[96]=A,e[97]=j,e[98]=M,e[99]=R):R=e[99],R}function Lt(e){return(0,$.jsx)(`li`,{children:e},e)}function Rt(e,t){return e.localeCompare(t)}function zt(e){return e.file}function Bt(e){return e.file}export{It as FrontmatterPluginSection,gt as MarkdownlintPluginSection,Ct as OkfPluginSection,ft as ProjectPluginsManageSection,pt as UserPluginsManageSection};
@@ -1 +0,0 @@
1
- import{t as e}from"./ManagedArtifactProperties-KZga5-nk.js";export{e as ManagedArtifactProperties};
@@ -1 +0,0 @@
1
- import"./saved-themes-client-D5M6AESh.js";
@@ -1 +0,0 @@
1
- import{n as e}from"./field-controls-CFLl9l2A.js";export{e as SectionSkeleton};