@inkeep/open-knowledge 0.50.1 → 0.51.0-beta.1

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 (150) hide show
  1. package/dist/{acp-harness-probe-DEQXdsjT.mjs → acp-harness-probe-5Bd7W9lp.mjs} +2 -2
  2. package/dist/cli.mjs +51 -51
  3. package/dist/constants-QeQKosNT.mjs +2 -0
  4. package/dist/fs-traced-D4-U3iIC.mjs +1 -0
  5. package/dist/{fs-traced-BUirY9_X.mjs → fs-traced-RPXwxrA5.mjs} +6 -6
  6. package/dist/git-handle-Bw80Zwhs.mjs +1 -0
  7. package/dist/{git-handle-BWXziar2.mjs → git-handle-KAEFG2Xp.mjs} +2 -2
  8. package/dist/index.d.mts +17 -17
  9. package/dist/index.mjs +184 -184
  10. package/dist/{init-D5NDes00.mjs → init-DGihqAzs.mjs} +34 -34
  11. package/dist/init-DpRNnzFn.mjs +1 -0
  12. package/dist/{launch-json-removal-Dl7uCpuY.mjs → launch-json-removal-BVPFVWm2.mjs} +2 -2
  13. package/dist/loader-BAOw2Vq0.mjs +1 -0
  14. package/dist/loader-B_nowTX3.mjs +2 -0
  15. package/dist/md-manager-DiVPjAYl.mjs +2 -0
  16. package/dist/{open-browser-iA8nPdIv.mjs → open-browser-De70N-tU.mjs} +2 -2
  17. package/dist/parse-worker.mjs +1 -1
  18. package/dist/{preview-NUFfTNAF.mjs → preview-B88pOGOc.mjs} +2 -2
  19. package/dist/preview-CJAgM4pS.mjs +1 -0
  20. package/dist/public/assets/{ActivityModeContent-CYdn5I4Y.js → ActivityModeContent-Cjkui6nd.js} +1 -1
  21. package/dist/public/assets/{AgentDiffPane-DpKorIT_.js → AgentDiffPane-u-5ilTRE.js} +1 -1
  22. package/dist/public/assets/{AgentThreadClientBinder-D85mW3F8.js → AgentThreadClientBinder-BrrOZdn1.js} +1 -1
  23. package/dist/public/assets/{ChangedOutsideBadge-B0as4qVr.js → ChangedOutsideBadge-BcoH6-nw.js} +1 -1
  24. package/dist/public/assets/CodeMirrorPropInput-D50z9yLP.js +3 -0
  25. package/dist/public/assets/DocumentContext-CasGadtG.js +38 -0
  26. package/dist/public/assets/{EditorModeToggle-DYe6ugjz.js → EditorModeToggle-6-QjT8Ga.js} +1 -1
  27. package/dist/public/assets/{EnableSyncConfirmDialog-CZhoCX06.js → EnableSyncConfirmDialog-CYGOKMM4.js} +1 -1
  28. package/dist/public/assets/FeedbackForm-jU5fMAff.js +1 -0
  29. package/dist/public/assets/{GraphPanel-BgjTBQzf.js → GraphPanel-H0Dz8I1Y.js} +1 -1
  30. package/dist/public/assets/{ImportSkillDialog-DgaLRDa2.js → ImportSkillDialog-mMdMQEcu.js} +1 -1
  31. package/dist/public/assets/{LintConfigEditor-m8s0kHpU.js → LintConfigEditor-DGxetApx.js} +1 -1
  32. package/dist/public/assets/{ManagedArtifactProperties-CNkIjYyD.js → ManagedArtifactProperties-5u803JAP.js} +1 -1
  33. package/dist/public/assets/ManagedArtifactProperties-CutBH5nQ.js +1 -0
  34. package/dist/public/assets/{McpConsentDialogBody-CDj5MfEH.js → McpConsentDialogBody-BB44PQE6.js} +1 -1
  35. package/dist/public/assets/{MermaidDocEditor-CpEV_vjl.js → MermaidDocEditor-BDExs-LW.js} +1 -1
  36. package/dist/public/assets/{ReportBugDialogBody-9QPpMvae.js → ReportBugDialogBody-Cedm28lz.js} +1 -1
  37. package/dist/public/assets/{SchemaConfigEditor-DGC-Ifl7.js → SchemaConfigEditor-Dbn9RObT.js} +1 -1
  38. package/dist/public/assets/{SessionsHost-CfMAKMV0.js → SessionsHost-CPuk32sz.js} +2 -2
  39. package/dist/public/assets/{SettingsDialogBody-COkVan2W.js → SettingsDialogBody-Cy0NXh6T.js} +4 -4
  40. package/dist/public/assets/{ShareBranchSwitchDialog-BvB0M0F8.js → ShareBranchSwitchDialog-Co8TuLoa.js} +1 -1
  41. package/dist/public/assets/{ShareReceiveDialog-DdTZvKPD.js → ShareReceiveDialog-DHLrIRs0.js} +1 -1
  42. package/dist/public/assets/{ShareReceiveMissDialog-C01SdPiI.js → ShareReceiveMissDialog-BHMkU4HH.js} +1 -1
  43. package/dist/public/assets/{SkillEditBanner-xwl6MInS.js → SkillEditBanner-UvWXpguP.js} +1 -1
  44. package/dist/public/assets/{SkillOriginInline-1lmATcpN.js → SkillOriginInline-D8kmShJA.js} +1 -1
  45. package/dist/public/assets/{SkillToolbarControls-CPO0igHl.js → SkillToolbarControls-B9upYwy8.js} +1 -1
  46. package/dist/public/assets/{SlidesToolbarControls-guFXAVIS.js → SlidesToolbarControls-B_zJy_NS.js} +1 -1
  47. package/dist/public/assets/SourceEditor-BYbqK1qo.js +1 -0
  48. package/dist/public/assets/{TerminalPanel-CP9vexOS.js → TerminalPanel-D5dGBcUr.js} +3 -3
  49. package/dist/public/assets/{TerminalWindowApp-Cwcma4mH.js → TerminalWindowApp-DxDcT0Nb.js} +1 -1
  50. package/dist/public/assets/{TextDocEditor-DEx6Kq9N.js → TextDocEditor-GLvDavbc.js} +1 -1
  51. package/dist/public/assets/{ThreadView-BA1CLPVi.js → ThreadView-B7F0lkW2.js} +1 -1
  52. package/dist/public/assets/{TimelineDiffPane-BICt_08r.js → TimelineDiffPane-CjnN3faR.js} +1 -1
  53. package/dist/public/assets/{agent-diff-store-DEzJgiR6.js → agent-diff-store-ghKYlKOr.js} +1 -1
  54. package/dist/public/assets/auth-state-cache-Z9zb3Xiw.js +11 -0
  55. package/dist/public/assets/client-version-C6LF52yy.js +1 -0
  56. package/dist/public/assets/{comment-chips-BfGPrQWn.js → comment-chips-S0s83wIP.js} +1 -1
  57. package/dist/public/assets/config-provider-BIse3_Yo.js +5 -0
  58. package/dist/public/assets/{dist-B6uhnkqb2.js → dist-CHVHOG7X2.js} +183 -183
  59. package/dist/public/assets/{doc-paths-DCnBNou3.js → doc-paths-DEUIlKvV.js} +1 -1
  60. package/dist/public/assets/{documents-events-BE14yj3s.js → documents-events-CNRzblNO.js} +1 -1
  61. package/dist/public/assets/{file-tree-adapter-BOumv5bR.js → file-tree-adapter-DYdb8QDM.js} +1 -1
  62. package/dist/public/assets/{file-tree-utils-zx8XyJDX.js → file-tree-utils-CaXhxBar.js} +1 -1
  63. package/dist/public/assets/{folder-config-api-DzcYYQUB.js → folder-config-api-Cm-dSVuA.js} +1 -1
  64. package/dist/public/assets/{follow-file-CjaFA8Bl.js → follow-file-DIXrodzs.js} +1 -1
  65. package/dist/public/assets/{globals-Bq7QmnDv.css → globals-Ba8eSnNC.css} +1 -1
  66. package/dist/public/assets/i18n-lVHP3BYW.js +1 -0
  67. package/dist/public/assets/index-DbydDmJw.js +2097 -0
  68. package/dist/public/assets/{lint-config-client-CXdpjOMj.js → lint-config-client-Di_wU0g4.js} +1 -1
  69. package/dist/public/assets/{markdownlint-rule-browser-MV3bVGCC.js → markdownlint-rule-browser-CepJct7F.js} +1 -1
  70. package/dist/public/assets/navigation-targets-Dh0TaCXK.js +1 -0
  71. package/dist/public/assets/{open-managed-artifact-tab-DzG5xo47.js → open-managed-artifact-tab-DflI2eed.js} +1 -1
  72. package/dist/public/assets/{pending-receive-nav-store-MbkxejK0.js → pending-receive-nav-store-yXsV1Iit.js} +1 -1
  73. package/dist/public/assets/{prop-types-DOjW8INh.js → prop-types-CLe_EOJt.js} +1 -1
  74. package/dist/public/assets/{receive-store-8XeTNhUV.js → receive-store-DrPPaP0S.js} +1 -1
  75. package/dist/public/assets/{selection-context-DYJs4iye.js → selection-context-BxRPPU5Z.js} +1 -1
  76. package/dist/public/assets/{skill-actions-Dvp72hct.js → skill-actions-Dj2NwLGa.js} +2 -2
  77. package/dist/public/assets/{skill-scope-qH5lhviP.js → skill-scope-BzUNaBG8.js} +1 -1
  78. package/dist/public/assets/{skills-api-Dl_Mtb7L.js → skills-api-VZRmji1_.js} +1 -1
  79. package/dist/public/assets/{src-BgeX0ooS.js → src-CbX6YXDU.js} +1 -1
  80. package/dist/public/assets/{tag-pill-input-Cg2Wozsu.js → tag-pill-input-GrIUFiT7.js} +1 -1
  81. package/dist/public/assets/{target-navigation-intent-uYgRrqg5.js → target-navigation-intent-CqhpK9cj.js} +1 -1
  82. package/dist/public/assets/{telemetry-impl-Bbdtn9J6.js → telemetry-impl-DlE3Lv5F.js} +1 -1
  83. package/dist/public/assets/{telemetry-startup-CqGbFCKQ.js → telemetry-startup-hv8lBqwj.js} +1 -1
  84. package/dist/public/assets/{terminal-cli-display-BqUx5532.js → terminal-cli-display-DLfTA9tz.js} +1 -1
  85. package/dist/public/assets/{terminal-launch-events-C9cyVGWq.js → terminal-launch-events-DaPNTH_g.js} +1 -1
  86. package/dist/public/assets/{terminal-telemetry-BoS_NSJ3.js → terminal-telemetry-BdrnMW3b.js} +1 -1
  87. package/dist/public/assets/{typing-burst-detector-DJTF6TYE.js → typing-burst-detector-COX8FDXD.js} +2 -2
  88. package/dist/public/assets/{uninstall-DTD665q0.js → uninstall-e3XxU518.js} +1 -1
  89. package/dist/public/assets/{use-activity-panel-CoU7WjCv.js → use-activity-panel-CtHXJ4mx.js} +1 -1
  90. package/dist/public/assets/{use-apply-config-color-theme-6RHjH1SX.js → use-apply-config-color-theme-Be4mSe54.js} +1 -1
  91. package/dist/public/assets/{use-collab-url-4QmUjyTo.js → use-collab-url-ChXwOaQi.js} +1 -1
  92. package/dist/public/assets/{use-live-xterm-theme-BaPGSFwn.js → use-live-xterm-theme-CaipyTAZ.js} +1 -1
  93. package/dist/public/assets/{use-open-skill-DN4VQ0HP.js → use-open-skill-DASBRT-Y.js} +1 -1
  94. package/dist/public/assets/{use-popular-skills-CETv50qW.js → use-popular-skills-BEpYkbxf.js} +1 -1
  95. package/dist/public/assets/{use-settings-route-Ln_W_o3I.js → use-settings-route-MF7LcF5y.js} +1 -1
  96. package/dist/public/assets/{use-skill-origin-BjoZBPjm.js → use-skill-origin-qCGon4Nv.js} +1 -1
  97. package/dist/public/assets/{use-skills-DyoXP6p3.js → use-skills-C13KTW_J.js} +1 -1
  98. package/dist/public/assets/{use-terminal-enabled-Rnwv8rq4.js → use-terminal-enabled-r2pfLhCY.js} +1 -1
  99. package/dist/public/assets/{use-timeline-entry-diff-fL6Q6imU.js → use-timeline-entry-diff-C9owRy-n.js} +4 -4
  100. package/dist/public/assets/{use-workspace-C5uwuxa8.js → use-workspace-CEaEfKKU.js} +1 -1
  101. package/dist/public/index.html +46 -46
  102. package/dist/public/uninstall.html +5 -5
  103. package/dist/{repair-launch-json-Dj813bOM.mjs → repair-launch-json-DXPSD0ub.mjs} +2 -2
  104. package/dist/{repair-mcp-configs-CL14xUMJ.mjs → repair-mcp-configs-Do4zIXkE.mjs} +2 -2
  105. package/dist/{repair-skills-B_ZAQaXn.mjs → repair-skills-BFfQjF9F.mjs} +2 -2
  106. package/dist/repair-skills-Dz417BMs.mjs +1 -0
  107. package/dist/server-lock-B4Z9_lXn.mjs +1 -0
  108. package/dist/{server-lock-DbS4Uxaj.mjs → server-lock-BV0Ktccm.mjs} +2 -2
  109. package/dist/{skill-teardown-mTNzEFkM.mjs → skill-teardown-BppNXkpR.mjs} +2 -2
  110. package/dist/{sleep-DdJljU3h.mjs → sleep-ChZE9826.mjs} +2 -2
  111. package/dist/{src-BDSe-YIB.mjs → src-BabT8t0g.mjs} +6 -6
  112. package/dist/src-CMD64NyP.mjs +1 -0
  113. package/dist/src-CwuSSZyu.mjs +2032 -0
  114. package/dist/src-DMpGVIiQ.mjs +348 -0
  115. package/dist/src-DR51i3QD.mjs +1 -0
  116. package/dist/start-C2dEkRx7.mjs +1 -0
  117. package/dist/start-hkzQEInB.mjs +10 -0
  118. package/dist/ui-BBGFVQDX.mjs +1 -0
  119. package/dist/{ui-BC8TqXI0.mjs → ui-CNA2d6cp.mjs} +3 -3
  120. package/dist/{write-project-skill-CyyI2a52.mjs → write-project-skill-DHsuRyv9.mjs} +2 -2
  121. package/package.json +5 -5
  122. package/dist/constants-CaKELAh9.mjs +0 -2
  123. package/dist/fs-traced-CDdByB1Z.mjs +0 -1
  124. package/dist/git-handle-BHbVb-kE.mjs +0 -1
  125. package/dist/init-D8Avhxo1.mjs +0 -1
  126. package/dist/loader-BjuhzcUO.mjs +0 -1
  127. package/dist/loader-DWGxP7ZW.mjs +0 -2
  128. package/dist/md-manager-BP88oH5c.mjs +0 -2
  129. package/dist/preview-BMmryl_A.mjs +0 -1
  130. package/dist/public/assets/CodeMirrorPropInput-CfyM9jmf.js +0 -3
  131. package/dist/public/assets/DocumentContext-DQeqcbba.js +0 -38
  132. package/dist/public/assets/FeedbackForm-1SPYA54M.js +0 -1
  133. package/dist/public/assets/ManagedArtifactProperties-DYFSQG10.js +0 -1
  134. package/dist/public/assets/SourceEditor-DPQOUOr0.js +0 -1
  135. package/dist/public/assets/auth-state-cache-Bsh1HmX2.js +0 -11
  136. package/dist/public/assets/client-version-B_vQj5m0.js +0 -1
  137. package/dist/public/assets/config-provider-CCU8qlmR.js +0 -5
  138. package/dist/public/assets/i18n-Bm86sjGW.js +0 -1
  139. package/dist/public/assets/index-Cg1k8Ayr.js +0 -2097
  140. package/dist/public/assets/navigation-targets-GITJ7Tz8.js +0 -1
  141. package/dist/repair-skills-cJ6ASlsh.mjs +0 -1
  142. package/dist/server-lock-C_lebUd3.mjs +0 -1
  143. package/dist/src-CjvpBVI9.mjs +0 -1
  144. package/dist/src-_krIFkyE.mjs +0 -1
  145. package/dist/src-c73kUNxd.mjs +0 -348
  146. package/dist/src-d4u8XMdW.mjs +0 -2032
  147. package/dist/start-BiW9hFuV.mjs +0 -10
  148. package/dist/start-D4pnGfoA.mjs +0 -1
  149. package/dist/ui-B1pZuo-s.mjs +0 -1
  150. /package/dist/public/assets/{globals-B8Za6o5Q.js → globals-BSqcs0wt.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{r as n}from"./dist-Nvb76hAm.js";import{t as r}from"./compiler-runtime-BfE3aGVn.js";import{fo as i}from"./dist-B6uhnkqb2.js";import{n as a}from"./dist-Bkx5dDHT2.js";import{E as o,S as s}from"./skills-api-Dl_Mtb7L.js";import{t as c}from"./use-skills-DyoXP6p3.js";var l=r(),u=e(t(),1);function d(e,t,n){let r=(0,l.c)(13),[i,a]=(0,u.useState)(!1),[o,c]=(0,u.useState)(!1),[d,p]=(0,u.useState)(0),m;r[0]!==n||r[1]!==t||r[2]!==e?(m=()=>{if(!n){a(!1);return}let r=!1;return s({scope:e,name:t,dryRun:!0}).then(e=>{r||(a(e.ok&&e.updated===!0),c(e.ok&&e.gitTracked===!0))}),()=>{r=!0}},r[0]=n,r[1]=t,r[2]=e,r[3]=m):m=r[3];let h;r[4]!==n||r[5]!==t||r[6]!==d||r[7]!==e?(h=[e,t,n,d],r[4]=n,r[5]=t,r[6]=d,r[7]=e,r[8]=h):h=r[8],(0,u.useEffect)(m,h);let g;r[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>p(f),r[9]=g):g=r[9];let _;return r[10]!==i||r[11]!==o?(_={available:i,gitTracked:o,recheck:g},r[10]=i,r[11]=o,r[12]=_):_=r[12],_}function f(e){return e+1}function p(e,t){return e.publisher?i(e.source,e.skill??t)?.skillsUrl??null:null}function m(e){let t=e.trim();if(/^https?:\/\//i.test(t))return t.includes(`github.com`)?t.replace(/\.git$/,``):null;if(/^(?:\.|\/|~|file:|git@)/.test(t))return null;let n=/^([\w.-]+)\/([\w.-]+?)(?:\.git)?(?:\/.*)?$/.exec(t);return n?`https://github.com/${n[1]}/${n[2]}`:null}function h(e,t){return p(e,t)??e.marketplaceUrl??m(e.source)}var g=new Set;function _(e){if(!e)return!1;if(e.autoUpdate!==void 0)return e.autoUpdate;let t=e.source.trim();return t.startsWith(`/`)||t.startsWith(`.`)||t.startsWith(`~`)||t.startsWith(`file://`)||/^[A-Za-z]:[\\/]/.test(t)||t.startsWith(`\\\\`)}function v(e){let t=(0,l.c)(33),{scope:r,name:i}=e,{_:f}=n(),p=c(),m=p.status===`ready`?p.data.find(e=>e.scope===r&&e.name===i):void 0,v=m?.origin??null,y=v?/^adopt:(.+)$/.exec(v.source):null,b=y?y[1].charAt(0).toUpperCase()+y[1].slice(1):null,x=!!v&&!b,{available:S,gitTracked:C,recheck:w}=d(r,i,x),[T,E]=(0,u.useState)(!1),[D,O]=(0,u.useState)(!1),k=_(v),A=m?.modified??!1,j;t[0]!==f||t[1]!==i||t[2]!==w||t[3]!==r?(j=async function(){E(!0);let e=await s({scope:r,name:i});if(E(!1),!e.ok){a.error(f({id:`AYoYhU`,values:{0:e.error}}));return}e.updated?a.success(f({id:`YS9mSt`,values:{0:e.source,name:i}})):a.success(f({id:`ah_ekO`,values:{name:i}}));for(let t of e.warnings)a.warning(t);w()},t[0]=f,t[1]=i,t[2]=w,t[3]=r,t[4]=j):j=t[4];let M=j;(0,u.useEffect)(()=>{if(!S||!k||A||T||C)return;let e=`${r}:${i}`;g.has(e)||(g.add(e),M())});let N;t[5]!==f||t[6]!==i||t[7]!==r?(N=async function(){let e=await s({scope:r,name:i,dryRun:!0});return e.ok?!e.updated||e.upstreamBody===void 0?(a.success(f({id:`ah_ekO`,values:{name:i}})),null):{localBody:e.localBody??``,upstreamBody:e.upstreamBody}:(a.error(f({id:`AYoYhU`,values:{0:e.error}})),null)},t[5]=f,t[6]=i,t[7]=r,t[8]=N):N=t[8];let P=N,F;t[9]!==f||t[10]!==i?(F=async function(){O(!0);let e=await o({name:i});if(O(!1),!e.ok){a.error(f({id:`RO9IbI`,values:{0:e.error}}));return}a.success(f({id:`BhLPRk`,values:{name:i}}));for(let t of e.warnings)a.warning(t)},t[9]=f,t[10]=i,t[11]=F):F=t[11];let I=F,L=v?/\/plugins\/cache\/[^/]+\/([^/]+)\//.exec(v.source)??/\/plugins\/marketplaces\/([^/]+)\//.exec(v.source):null,R=v?b?f({id:`e6dMJT`,values:{harnessLabel:b}}):L?f({id:`xBFg6z`,values:{0:L[1]}}):v.source:null,z=v?new Date(v.importedAt):null,B=z&&!Number.isNaN(z.getTime())?z.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`}):v?.importedAt??null,V=v?h(v,i):null,H=B?f({id:`9J8xNg`,values:{importedLabel:B}}):null,U;t[12]!==f||t[13]!==i||t[14]!==r?(U=async e=>{let t=await s({scope:r,name:i,setAutoUpdate:e});if(!t.ok){a.error(f({id:`fMsFdZ`,values:{0:t.error}}));return}a.success(f(e?{id:`UNwKSz`,values:{name:i}}:{id:`HAvHev`,values:{name:i}}))},t[12]=f,t[13]=i,t[14]=r,t[15]=U):U=t[15];let W=m?.revertable??!1,G;return t[16]!==k||t[17]!==x||t[18]!==R||t[19]!==C||t[20]!==A||t[21]!==v||t[22]!==P||t[23]!==M||t[24]!==T||t[25]!==I||t[26]!==D||t[27]!==V||t[28]!==H||t[29]!==U||t[30]!==W||t[31]!==S?(G={origin:v,github:V,displaySource:R,importedTitle:H,canReimport:x,updateAvailable:S,modified:A,autoUpdate:k,gitTracked:C,setAutoUpdate:U,revertable:W,reimport:M,reimporting:T,previewUpdate:P,revert:I,reverting:D},t[16]=k,t[17]=x,t[18]=R,t[19]=C,t[20]=A,t[21]=v,t[22]=P,t[23]=M,t[24]=T,t[25]=I,t[26]=D,t[27]=V,t[28]=H,t[29]=U,t[30]=W,t[31]=S,t[32]=G):G=t[32],G}export{v as t};
1
+ import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{r as n}from"./dist-Nvb76hAm.js";import{t as r}from"./compiler-runtime-BfE3aGVn.js";import{po as i}from"./dist-CHVHOG7X2.js";import{n as a}from"./dist-Bkx5dDHT2.js";import{E as o,S as s}from"./skills-api-VZRmji1_.js";import{t as c}from"./use-skills-C13KTW_J.js";var l=r(),u=e(t(),1);function d(e,t,n){let r=(0,l.c)(13),[i,a]=(0,u.useState)(!1),[o,c]=(0,u.useState)(!1),[d,p]=(0,u.useState)(0),m;r[0]!==n||r[1]!==t||r[2]!==e?(m=()=>{if(!n){a(!1);return}let r=!1;return s({scope:e,name:t,dryRun:!0}).then(e=>{r||(a(e.ok&&e.updated===!0),c(e.ok&&e.gitTracked===!0))}),()=>{r=!0}},r[0]=n,r[1]=t,r[2]=e,r[3]=m):m=r[3];let h;r[4]!==n||r[5]!==t||r[6]!==d||r[7]!==e?(h=[e,t,n,d],r[4]=n,r[5]=t,r[6]=d,r[7]=e,r[8]=h):h=r[8],(0,u.useEffect)(m,h);let g;r[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>p(f),r[9]=g):g=r[9];let _;return r[10]!==i||r[11]!==o?(_={available:i,gitTracked:o,recheck:g},r[10]=i,r[11]=o,r[12]=_):_=r[12],_}function f(e){return e+1}function p(e,t){return e.publisher?i(e.source,e.skill??t)?.skillsUrl??null:null}function m(e){let t=e.trim();if(/^https?:\/\//i.test(t))return t.includes(`github.com`)?t.replace(/\.git$/,``):null;if(/^(?:\.|\/|~|file:|git@)/.test(t))return null;let n=/^([\w.-]+)\/([\w.-]+?)(?:\.git)?(?:\/.*)?$/.exec(t);return n?`https://github.com/${n[1]}/${n[2]}`:null}function h(e,t){return p(e,t)??e.marketplaceUrl??m(e.source)}var g=new Set;function _(e){if(!e)return!1;if(e.autoUpdate!==void 0)return e.autoUpdate;let t=e.source.trim();return t.startsWith(`/`)||t.startsWith(`.`)||t.startsWith(`~`)||t.startsWith(`file://`)||/^[A-Za-z]:[\\/]/.test(t)||t.startsWith(`\\\\`)}function v(e){let t=(0,l.c)(33),{scope:r,name:i}=e,{_:f}=n(),p=c(),m=p.status===`ready`?p.data.find(e=>e.scope===r&&e.name===i):void 0,v=m?.origin??null,y=v?/^adopt:(.+)$/.exec(v.source):null,b=y?y[1].charAt(0).toUpperCase()+y[1].slice(1):null,x=!!v&&!b,{available:S,gitTracked:C,recheck:w}=d(r,i,x),[T,E]=(0,u.useState)(!1),[D,O]=(0,u.useState)(!1),k=_(v),A=m?.modified??!1,j;t[0]!==f||t[1]!==i||t[2]!==w||t[3]!==r?(j=async function(){E(!0);let e=await s({scope:r,name:i});if(E(!1),!e.ok){a.error(f({id:`AYoYhU`,values:{0:e.error}}));return}e.updated?a.success(f({id:`YS9mSt`,values:{0:e.source,name:i}})):a.success(f({id:`ah_ekO`,values:{name:i}}));for(let t of e.warnings)a.warning(t);w()},t[0]=f,t[1]=i,t[2]=w,t[3]=r,t[4]=j):j=t[4];let M=j;(0,u.useEffect)(()=>{if(!S||!k||A||T||C)return;let e=`${r}:${i}`;g.has(e)||(g.add(e),M())});let N;t[5]!==f||t[6]!==i||t[7]!==r?(N=async function(){let e=await s({scope:r,name:i,dryRun:!0});return e.ok?!e.updated||e.upstreamBody===void 0?(a.success(f({id:`ah_ekO`,values:{name:i}})),null):{localBody:e.localBody??``,upstreamBody:e.upstreamBody}:(a.error(f({id:`AYoYhU`,values:{0:e.error}})),null)},t[5]=f,t[6]=i,t[7]=r,t[8]=N):N=t[8];let P=N,F;t[9]!==f||t[10]!==i?(F=async function(){O(!0);let e=await o({name:i});if(O(!1),!e.ok){a.error(f({id:`RO9IbI`,values:{0:e.error}}));return}a.success(f({id:`BhLPRk`,values:{name:i}}));for(let t of e.warnings)a.warning(t)},t[9]=f,t[10]=i,t[11]=F):F=t[11];let I=F,L=v?/\/plugins\/cache\/[^/]+\/([^/]+)\//.exec(v.source)??/\/plugins\/marketplaces\/([^/]+)\//.exec(v.source):null,R=v?b?f({id:`e6dMJT`,values:{harnessLabel:b}}):L?f({id:`xBFg6z`,values:{0:L[1]}}):v.source:null,z=v?new Date(v.importedAt):null,B=z&&!Number.isNaN(z.getTime())?z.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`}):v?.importedAt??null,V=v?h(v,i):null,H=B?f({id:`9J8xNg`,values:{importedLabel:B}}):null,U;t[12]!==f||t[13]!==i||t[14]!==r?(U=async e=>{let t=await s({scope:r,name:i,setAutoUpdate:e});if(!t.ok){a.error(f({id:`fMsFdZ`,values:{0:t.error}}));return}a.success(f(e?{id:`UNwKSz`,values:{name:i}}:{id:`HAvHev`,values:{name:i}}))},t[12]=f,t[13]=i,t[14]=r,t[15]=U):U=t[15];let W=m?.revertable??!1,G;return t[16]!==k||t[17]!==x||t[18]!==R||t[19]!==C||t[20]!==A||t[21]!==v||t[22]!==P||t[23]!==M||t[24]!==T||t[25]!==I||t[26]!==D||t[27]!==V||t[28]!==H||t[29]!==U||t[30]!==W||t[31]!==S?(G={origin:v,github:V,displaySource:R,importedTitle:H,canReimport:x,updateAvailable:S,modified:A,autoUpdate:k,gitTracked:C,setAutoUpdate:U,revertable:W,reimport:M,reimporting:T,previewUpdate:P,revert:I,reverting:D},t[16]=k,t[17]=x,t[18]=R,t[19]=C,t[20]=A,t[21]=v,t[22]=P,t[23]=M,t[24]=T,t[25]=I,t[26]=D,t[27]=V,t[28]=H,t[29]=U,t[30]=W,t[31]=S,t[32]=G):G=t[32],G}export{v as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./compiler-runtime-BfE3aGVn.js";import{Ht as r}from"./dist-B6uhnkqb2.js";import{t as i}from"./dist-DoS8xGN6.js";import{d as a,f as o,t as s}from"./documents-events-BE14yj3s.js";import{t as c}from"./parse-api-error-Mgtc4OJu.js";var l=n(),u=e(t(),1),d=null,f=null;function p(){return f??=fetch(`/api/skills`).then(async e=>{if(!e.ok){let t=await e.json().catch(()=>null);throw Error(c(t)??`HTTP ${e.status}`)}return e.json()}).finally(()=>{f=null}),f}function m(e){let t=(0,l.c)(9),n=e?.enabled??!0,[c,f]=(0,u.useState)(_),[m,v]=(0,u.useState)(0),y,b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{let e=null,t=()=>{e&&clearTimeout(e),e=setTimeout(()=>v(g),200)},n=o(t),r=a(e=>{e.includes(`files`)&&t()});return()=>{e&&clearTimeout(e),n(),r()}},b=[],t[0]=y,t[1]=b):(y=t[0],b=t[1]),(0,u.useEffect)(y,b);let x;t[2]===n?x=t[3]:(x=()=>{if(!n)return;let e=!1;return f(h),p().then(t=>{if(e)return;let n=r.safeParse(t);if(!n.success){console.error(`[ok-skills] /api/skills response failed schema validation:`,n.error.issues),f({status:`error`,message:i._({id:`GbzBEk`})});return}d=n.data.skills,f({status:`ready`,data:n.data.skills})}).catch(t=>{e||f({status:`error`,message:t instanceof Error?t.message:String(t)})}),()=>{e=!0}},t[2]=n,t[3]=x);let S;t[4]!==n||t[5]!==m?(S=[m,n],t[4]=n,t[5]=m,t[6]=S):S=t[6],(0,u.useEffect)(x,S);let C;return t[7]===c?C=t[8]:(C=c.status===`ready`?{status:`ready`,data:s(c.data)}:c,t[7]=c,t[8]=C),C}function h(e){return e.status===`ready`?e:{status:`loading`}}function g(e){return e+1}function _(){return d===null?{status:`idle`}:{status:`ready`,data:d}}export{m as t};
1
+ import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./compiler-runtime-BfE3aGVn.js";import{Ht as r}from"./dist-CHVHOG7X2.js";import{t as i}from"./dist-DoS8xGN6.js";import{d as a,f as o,t as s}from"./documents-events-CNRzblNO.js";import{t as c}from"./parse-api-error-Mgtc4OJu.js";var l=n(),u=e(t(),1),d=null,f=null;function p(){return f??=fetch(`/api/skills`).then(async e=>{if(!e.ok){let t=await e.json().catch(()=>null);throw Error(c(t)??`HTTP ${e.status}`)}return e.json()}).finally(()=>{f=null}),f}function m(e){let t=(0,l.c)(9),n=e?.enabled??!0,[c,f]=(0,u.useState)(_),[m,v]=(0,u.useState)(0),y,b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{let e=null,t=()=>{e&&clearTimeout(e),e=setTimeout(()=>v(g),200)},n=o(t),r=a(e=>{e.includes(`files`)&&t()});return()=>{e&&clearTimeout(e),n(),r()}},b=[],t[0]=y,t[1]=b):(y=t[0],b=t[1]),(0,u.useEffect)(y,b);let x;t[2]===n?x=t[3]:(x=()=>{if(!n)return;let e=!1;return f(h),p().then(t=>{if(e)return;let n=r.safeParse(t);if(!n.success){console.error(`[ok-skills] /api/skills response failed schema validation:`,n.error.issues),f({status:`error`,message:i._({id:`GbzBEk`})});return}d=n.data.skills,f({status:`ready`,data:n.data.skills})}).catch(t=>{e||f({status:`error`,message:t instanceof Error?t.message:String(t)})}),()=>{e=!0}},t[2]=n,t[3]=x);let S;t[4]!==n||t[5]!==m?(S=[m,n],t[4]=n,t[5]=m,t[6]=S):S=t[6],(0,u.useEffect)(x,S);let C;return t[7]===c?C=t[8]:(C=c.status===`ready`?{status:`ready`,data:s(c.data)}:c,t[7]=c,t[8]=C),C}function h(e){return e.status===`ready`?e:{status:`loading`}}function g(e){return e+1}function _(){return d===null?{status:`idle`}:{status:`ready`,data:d}}export{m as t};
@@ -1 +1 @@
1
- import{t as e}from"./compiler-runtime-BfE3aGVn.js";import{t}from"./terminal-telemetry-BoS_NSJ3.js";import{Go as n}from"./dist-B6uhnkqb2.js";import{h as r}from"./use-apply-config-color-theme-6RHjH1SX.js";import"./config-provider-CCU8qlmR.js";var i=e();function a(){let e=(0,i.c)(3),{projectLocalConfig:t,projectLocalSynced:n}=r(),a=t?.terminal?.enabled??null,o;return e[0]!==n||e[1]!==a?(o={enabled:a,synced:n},e[0]=n,e[1]=a,e[2]=o):o=e[2],o}function o(){let e=(0,i.c)(2),{projectLocalBinding:a}=r();if(a===null)return null;let o;return e[0]===a?o=e[1]:(o=e=>{let r=a.patch({terminal:{enabled:e}});return r.ok&&e&&t(),r.ok?{ok:!0}:{ok:!1,error:n(r.error)}},e[0]=a,e[1]=o),o}export{o as n,a as t};
1
+ import{t as e}from"./compiler-runtime-BfE3aGVn.js";import{t}from"./terminal-telemetry-BdrnMW3b.js";import{Ko as n}from"./dist-CHVHOG7X2.js";import{h as r}from"./use-apply-config-color-theme-Be4mSe54.js";import"./config-provider-BIse3_Yo.js";var i=e();function a(){let e=(0,i.c)(3),{projectLocalConfig:t,projectLocalSynced:n}=r(),a=t?.terminal?.enabled??null,o;return e[0]!==n||e[1]!==a?(o={enabled:a,synced:n},e[0]=n,e[1]=a,e[2]=o):o=e[2],o}function o(){let e=(0,i.c)(2),{projectLocalBinding:a}=r();if(a===null)return null;let o;return e[0]===a?o=e[1]:(o=e=>{let r=a.patch({terminal:{enabled:e}});return r.ok&&e&&t(),r.ok?{ok:!0}:{ok:!1,error:n(r.error)}},e[0]=a,e[1]=o),o}export{o as n,a as t};
@@ -1,6 +1,6 @@
1
- import{o as e,t}from"./chunk-CYidjpOJ.js";import{t as n}from"./jsx-runtime-BUgB2tll.js";import{h as r,i}from"./DocumentContext-DQeqcbba.js";import{t as a}from"./react-f2sANaYj.js";import{t as o}from"./react-dom-DPxgxlDT.js";import{t as s}from"./compiler-runtime-BfE3aGVn.js";import{G as c,O as l,Q as u}from"./CodeMirrorPropInput-CfyM9jmf.js";import{Ea as d,G as f,Qi as p,Sa as m,Ta as h,ba as g,da as _,ga as v,ha as y,po as b,ua as x,wa as S,zi as ee}from"./dist-B6uhnkqb2.js";import{t as te}from"./libesm-BYxokP1G.js";var C=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Pointer=void 0,e.unescapeToken=t,e.escapeToken=n;function t(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function n(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}e.Pointer=function(){function e(e){e===void 0&&(e=[``]),this.tokens=e}return e.fromJSON=function(n){var r=n.split(`/`).map(t);if(r[0]!==``)throw Error(`Invalid JSON Pointer: ${n}`);return new e(r)},e.prototype.toString=function(){return this.tokens.map(n).join(`/`)},e.prototype.evaluate=function(e){for(var t=null,n=``,r=e,i=1,a=this.tokens.length;i<a;i++)t=r,n=this.tokens[i],!(n==`__proto__`||n==`constructor`||n==`prototype`)&&(r=(t||{})[n]);return{parent:t,key:n,value:r}},e.prototype.get=function(e){return this.evaluate(e).value},e.prototype.set=function(e,t){var n=this.evaluate(e);n.parent&&(n.parent[n.key]=t)},e.prototype.push=function(e){this.tokens.push(e)},e.prototype.add=function(t){return new e(this.tokens.concat(String(t)))},e.prototype.parent=function(){return new e(this.tokens.length>1?this.tokens.slice(0,-1):[``])},e}()})),w=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.hasOwnProperty=void 0,e.objectType=t,e.clone=r,e.hasOwnProperty=Object.prototype.hasOwnProperty;function t(e){return e===void 0?`undefined`:e===null?`null`:Array.isArray(e)?`array`:typeof e}function n(e){return typeof e==`object`&&!!e}function r(t){if(!n(t))return t;if(t.constructor==Array){for(var i=t.length,a=Array(i),o=0;o<i;o++)a[o]=r(t[o]);return a}if(t.constructor==Date)return new Date(+t);var s={};for(var c in t)e.hasOwnProperty.call(t,c)&&(s[c]=r(t[c]));return s}})),T=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.isDestructive=n,e.subtract=r,e.intersection=i,e.diffArrays=l,e.diffObjects=u,e.diffAny=d;var t=w();function n(e){var t=e.op;return t===`remove`||t===`replace`||t===`copy`||t===`move`}function r(e,n){var r=[];for(var i in e)t.hasOwnProperty.call(e,i)&&e[i]!==void 0&&!(t.hasOwnProperty.call(n,i)&&n[i]!==void 0)&&r.push(i);return r}function i(e){for(var n=e.length,r={},i=0;i<n;i++){var a=e[i];for(var o in a)t.hasOwnProperty.call(a,o)&&a[o]!==void 0&&(r[o]=(r[o]||0)+1)}for(var o in r)r[o]<n&&delete r[o];return Object.keys(r)}function a(e,n){var r=[];for(var i in e)t.hasOwnProperty.call(e,i)&&e[i]!==void 0&&t.hasOwnProperty.call(n,i)&&n[i]!==void 0&&r.push(i);return r}function o(e){return e.op===`add`}function s(e){return e.op===`remove`}function c(e,t){return{operations:e.operations.concat(t),cost:e.cost+1}}function l(e,t,n,r){r===void 0&&(r=d);var i=Math.max(e.length,t.length),a=new Map([[0,{operations:[],cost:0}]]);function l(o,s){var u=o*i+s,d=a.get(u);if(d===void 0){if(o>0&&s>0&&!r(e[o-1],t[s-1],n.add(String(o-1))).length)d=l(o-1,s-1);else{var f=[];if(o>0){var p=l(o-1,s),m={op:`remove`,index:o-1};f.push(c(p,m))}if(s>0){var h=l(o,s-1),g={op:`add`,index:o-1,value:t[s-1]};f.push(c(h,g))}if(o>0&&s>0){var _=l(o-1,s-1),v={op:`replace`,index:o-1,original:e[o-1],value:t[s-1]};f.push(c(_,v))}d=f.sort(function(e,t){return e.cost-t.cost})[0]}a.set(u,d)}return d}var u=isNaN(e.length)||e.length<=0?0:e.length;return l(u,isNaN(t.length)||t.length<=0?0:t.length).operations.reduce(function(e,t){var i=e[0],a=e[1];if(o(t)){var c=t.index+1+a,l=c<u+a?String(c):`-`,d={op:t.op,path:n.add(l).toString(),value:t.value};return[i.concat(d),a+1]}else if(s(t)){var d={op:t.op,path:n.add(String(t.index+a)).toString()};return[i.concat(d),a-1]}else{var f=n.add(String(t.index+a)),p=r(t.original,t.value,f);return[i.concat.apply(i,p),a]}},[[],0])[0]}function u(e,t,n,i){i===void 0&&(i=d);var o=[];return r(e,t).forEach(function(e){o.push({op:`remove`,path:n.add(e).toString()})}),r(t,e).forEach(function(e){o.push({op:`add`,path:n.add(e).toString(),value:t[e]})}),a(e,t).forEach(function(r){o.push.apply(o,i(e[r],t[r],n.add(r)))}),o}function d(e,n,r,i){if(i===void 0&&(i=d),e===n)return[];var a=(0,t.objectType)(e),o=(0,t.objectType)(n);return a==`array`&&o==`array`?l(e,n,r,i):a==`object`&&o==`object`?u(e,n,r,i):[{op:`replace`,path:r.toString(),value:n}]}})),ne=t((e=>{var t=e&&e.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})();Object.defineProperty(e,`__esModule`,{value:!0}),e.InvalidOperationError=e.TestError=e.MissingError=void 0,e.add=l,e.remove=u,e.replace=d,e.move=f,e.copy=p,e.test=m,e.apply=g;var n=C(),r=w(),i=T(),a=function(e){t(n,e);function n(t){var n=e.call(this,`Value required at path: ${t}`)||this;return n.path=t,n.name=`MissingError`,n}return n}(Error);e.MissingError=a;var o=function(e){t(n,e);function n(t,n){var r=e.call(this,`Test failed: ${t} != ${n}`)||this;return r.actual=t,r.expected=n,r.name=`TestError`,r}return n}(Error);e.TestError=o;function s(e,t,n){if(Array.isArray(e))if(t==`-`)e.push(n);else{var r=parseInt(t,10);e.splice(r,0,n)}else e[t]=n}function c(e,t){if(Array.isArray(e)){var n=parseInt(t,10);e.splice(n,1)}else delete e[t]}function l(e,t,i){var o=n.Pointer.fromJSON(t.path);if(i?.implicitArrayCreation&&o.tokens[o.tokens.length-1]===`-`){var c=o.parent().evaluate(e);c.value===void 0&&(0,r.objectType)(c.parent)===`object`&&(c.parent[c.key]=[])}var l=o.evaluate(e);return l.parent===void 0||i?.implicitArrayCreation&&l.key===`-`&&!Array.isArray(l.parent)?new a(t.path):(s(l.parent,l.key,(0,r.clone)(t.value)),null)}function u(e,t,r){var i=n.Pointer.fromJSON(t.path).evaluate(e);return i.value===void 0?new a(t.path):(c(i.parent,i.key),null)}function d(e,t,i){var o=n.Pointer.fromJSON(t.path).evaluate(e);if(o.parent===null)return new a(t.path);if(Array.isArray(o.parent)){if(parseInt(o.key,10)>=o.parent.length)return new a(t.path)}else if(o.value===void 0)return new a(t.path);return o.parent[o.key]=(0,r.clone)(t.value),null}function f(e,t,r){var i=n.Pointer.fromJSON(t.from).evaluate(e);if(i.value===void 0)return new a(t.from);var o=n.Pointer.fromJSON(t.path).evaluate(e);return o.parent===void 0?new a(t.path):(c(i.parent,i.key),s(o.parent,o.key,i.value),null)}function p(e,t,i){var o=n.Pointer.fromJSON(t.from).evaluate(e);if(o.value===void 0)return new a(t.from);var c=n.Pointer.fromJSON(t.path).evaluate(e);return c.parent===void 0?new a(t.path):(s(c.parent,c.key,(0,r.clone)(o.value)),null)}function m(e,t,r){var a=n.Pointer.fromJSON(t.path).evaluate(e);return(0,i.diffAny)(a.value,t.value,new n.Pointer).length?new o(a.value,t.value):null}var h=function(e){t(n,e);function n(t){var n=e.call(this,`Invalid operation: ${t.op}`)||this;return n.operation=t,n.name=`InvalidOperationError`,n}return n}(Error);e.InvalidOperationError=h;function g(e,t,n){switch(t.op){case`add`:return l(e,t,n);case`remove`:return u(e,t,n);case`replace`:return d(e,t,n);case`move`:return f(e,t,n);case`copy`:return p(e,t,n);case`test`:return m(e,t,n)}return new h(t)}})),re=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Pointer=void 0,e.applyPatch=i,e.createPatch=o;var t=C();Object.defineProperty(e,`Pointer`,{enumerable:!0,get:function(){return t.Pointer}});var n=ne(),r=T();function i(e,t,r){return t.map(function(t){return(0,n.apply)(e,t,r)})}function a(e){function t(n,i,a){var o=e(n,i,a);return Array.isArray(o)?o:(0,r.diffAny)(n,i,a,t)}return t}function o(e,n,i){var o=new t.Pointer;return(i?a(i):r.diffAny)(e,n,o)}})),E=e(a(),1),ie=e(o(),1),D=s(),O=re();function k(){}k.prototype={diff:function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.callback;typeof n==`function`&&(r=n,n={}),this.options=n;var i=this;function a(e){return r?(setTimeout(function(){r(void 0,e)},0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var o=t.length,s=e.length,c=1,l=o+s;n.maxEditLength&&(l=Math.min(l,n.maxEditLength));var u=n.timeout??1/0,d=Date.now()+u,f=[{oldPos:-1,lastComponent:void 0}],p=this.extractCommon(f[0],t,e,0);if(f[0].oldPos+1>=s&&p+1>=o)return a([{value:this.join(t),count:t.length}]);var m=-1/0,h=1/0;function g(){for(var n=Math.max(m,-c);n<=Math.min(h,c);n+=2){var r=void 0,l=f[n-1],u=f[n+1];l&&(f[n-1]=void 0);var d=!1;if(u){var g=u.oldPos-n;d=u&&0<=g&&g<o}var _=l&&l.oldPos+1<s;if(!d&&!_){f[n]=void 0;continue}if(r=!_||d&&l.oldPos+1<u.oldPos?i.addToPath(u,!0,void 0,0):i.addToPath(l,void 0,!0,1),p=i.extractCommon(r,t,e,n),r.oldPos+1>=s&&p+1>=o)return a(ae(i,r.lastComponent,t,e,i.useLongestToken));f[n]=r,r.oldPos+1>=s&&(h=Math.min(h,n-1)),p+1>=o&&(m=Math.max(m,n+1))}c++}if(r)(function e(){setTimeout(function(){if(c>l||Date.now()>d)return r();g()||e()},0)})();else for(;c<=l&&Date.now()<=d;){var _=g();if(_)return _}},addToPath:function(e,t,n,r){var i=e.lastComponent;return i&&i.added===t&&i.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:i.count+1,added:t,removed:n,previousComponent:i.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:i}}},extractCommon:function(e,t,n,r){for(var i=t.length,a=n.length,o=e.oldPos,s=o-r,c=0;s+1<i&&o+1<a&&this.equals(t[s+1],n[o+1]);)s++,o++,c++;return c&&(e.lastComponent={count:c,previousComponent:e.lastComponent}),e.oldPos=o,s},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return e.split(``)},join:function(e){return e.join(``)}};function ae(e,t,n,r,i){for(var a=[],o;t;)a.push(t),o=t.previousComponent,delete t.previousComponent,t=o;a.reverse();for(var s=0,c=a.length,l=0,u=0;s<c;s++){var d=a[s];if(!d.removed){if(!d.added&&i){var f=n.slice(l,l+d.count);f=f.map(function(e,t){var n=r[u+t];return n.length>e.length?n:e}),d.value=e.join(f)}else d.value=e.join(n.slice(l,l+d.count));l+=d.count,d.added||(u+=d.count)}else if(d.value=e.join(r.slice(u,u+d.count)),u+=d.count,s&&a[s-1].added){var p=a[s-1];a[s-1]=a[s],a[s]=p}}var m=a[c-1];return c>1&&typeof m.value==`string`&&(m.added||m.removed)&&e.equals(``,m.value)&&(a[c-2].value+=m.value,a.pop()),a}var A=new k;function oe(e,t,n){return A.diff(e,t,n)}var j=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,M=/\S/,N=new k;N.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!M.test(e)&&!M.test(t)},N.tokenize=function(e){for(var t=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),n=0;n<t.length-1;n++)!t[n+1]&&t[n+2]&&j.test(t[n])&&j.test(t[n+2])&&(t[n]+=t[n+2],t.splice(n+1,2),n--);return t};function se(e,t,n){return N.diff(e,t,n)}var P=new k;P.tokenize=function(e){this.options.stripTrailingCr&&(e=e.replace(/\r\n/g,`
2
- `));var t=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var F=new k;F.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var ce=new k;ce.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};function I(e){"@babel/helpers - typeof";return I=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},I(e)}var le=Object.prototype.toString,L=new k;L.useLongestToken=!0,L.tokenize=P.tokenize,L.castInput=function(e){var t=this.options,n=t.undefinedReplacement,r=t.stringifyReplacer,i=r===void 0?function(e,t){return t===void 0?n:t}:r;return typeof e==`string`?e:JSON.stringify(R(e,null,null,i),i,` `)},L.equals=function(e,t){return k.prototype.equals.call(L,e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`))};function R(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i,e));var a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];var o;if(le.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=R(e[a],t,n,r,i);return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),I(e)===`object`&&e!==null){t.push(e),o={},n.push(o);var s=[],c;for(c in e)e.hasOwnProperty(c)&&s.push(c);for(s.sort(),a=0;a<s.length;a+=1)c=s[a],o[c]=R(e[c],t,n,r,c);t.pop(),n.pop()}else o=e;return o}var z=new k;z.tokenize=function(e){return e.slice()},z.join=z.removeEmpty=function(e){return e};function B(e,t){let n=t.content.findDiffStart(e.content);if(n===null)return!1;let{a:r,b:i}=t.content.findDiffEnd(e.content),a=n-Math.min(r,i);return a>0&&(e.resolve(n-a).depth<t.resolve(r+a).depth?n-=a:(r+=a,i+=a)),new S(n,i,t.slice(n,r))}function V(e){if(!e.steps.length)return;let t=new h(e.docs[0]),n=e.steps.slice();for(;n.length;){let e=n.shift();for(;n.length&&e.merge(n[0]);){let r=n.shift();e=e instanceof S&&r instanceof S?B(t.doc,r.apply(e.apply(t.doc).doc).doc):e.merge(r)}t.step(e)}return t}function H(e){let t=new h(e);return t.removeMark(0,e.nodeSize-2),t.doc}function U(e,t){let n=t.split(`/`);for(n.shift();n.length;){if(typeof e!=`object`)throw Error();let t=n.shift();e=e[t]}return e}function W(e){return JSON.parse(JSON.stringify(e))}var ue=class{fromDoc;toDoc;complexSteps;wordDiffs;simplifyDiff;schema;tr;currentJSON;finalJSON;ops;constructor(e,t,n={}){let r={complexSteps:!0,wordDiffs:!1,simplifyDiff:!0,...n};this.fromDoc=e,this.toDoc=t,this.complexSteps=r.complexSteps,this.wordDiffs=r.wordDiffs,this.simplifyDiff=r.simplifyDiff,this.schema=e.type.schema,this.tr=new h(e),this.currentJSON={},this.finalJSON={},this.ops=[]}init(){return this.complexSteps?(this.currentJSON=H(this.fromDoc).toJSON(),this.finalJSON=H(this.toDoc).toJSON(),this.ops=(0,O.createPatch)(this.currentJSON,this.finalJSON),this.recreateChangeContentSteps(),this.recreateChangeMarkSteps()):(this.currentJSON=this.fromDoc.toJSON(),this.finalJSON=this.toDoc.toJSON(),this.ops=(0,O.createPatch)(this.currentJSON,this.finalJSON),this.recreateChangeContentSteps()),this.simplifyDiff&&(this.tr=V(this.tr)||this.tr),this.tr}recreateChangeContentSteps(){let e=[];for(;this.ops.length;){let t=this.ops.shift();e.push(t);let n,r=W(this.currentJSON),i=t.path.split(`/`);for(;n==null;){(0,O.applyPatch)(r,[t]);try{n=this.schema.nodeFromJSON(r),n.check()}catch{if(n=null,this.ops.length>0)t=this.ops.shift(),e.push(t);else throw Error(`No valid diff possible applying ${t.path}`)}}this.complexSteps&&e.length===1&&(i.includes(`attrs`)||i.includes(`type`))?(this.addSetNodeMarkup(),e=[]):e.length===1&&t.op===`replace`&&i[i.length-1]===`text`?(this.addReplaceTextSteps(t,r),e=[]):this.addReplaceStep(n,r)&&(e=[])}}addSetNodeMarkup(){let e=this.schema.nodeFromJSON(this.currentJSON),t=this.schema.nodeFromJSON(this.finalJSON),n=t.content.findDiffStart(e.content),r=e.nodeAt(n),i=t.nodeAt(n);if(n!=null){let e=r.type===i.type?null:i.type;try{this.tr.setNodeMarkup(n,e,i.attrs,i.marks)}catch(t){if(e&&t.message.includes(`Invalid content`))this.tr.replaceWith(n,n+r.nodeSize,i);else throw t}return this.currentJSON=H(this.tr.doc).toJSON(),this.ops=(0,O.createPatch)(this.currentJSON,this.finalJSON),!0}return!1}recreateChangeMarkSteps(){this.toDoc.descendants((e,t)=>{if(!e.isInline)return!0;this.tr.doc.nodesBetween(t,t+e.nodeSize,(n,r)=>{if(!n.isInline)return!0;let i=Math.max(t,r),a=Math.min(t+e.nodeSize,r+n.nodeSize);n.marks.forEach(t=>{t.isInSet(e.marks)||this.tr.removeMark(i,a,t)}),e.marks.forEach(e=>{e.isInSet(n.marks)||this.tr.addMark(i,a,e)})})})}addReplaceStep(e,t){let n=B(this.schema.nodeFromJSON(this.currentJSON),e);if(!n)return!1;if(!this.tr.maybeStep(n).failed)return this.currentJSON=t,!0;throw Error(`No valid step found.`)}addReplaceTextSteps(e,t){let n={...e,value:`xx`},r={...e,value:`yy`},i=W(this.currentJSON),a=W(this.currentJSON);(0,O.applyPatch)(i,[n]),(0,O.applyPatch)(a,[r]);let o=this.schema.nodeFromJSON(i),s=this.schema.nodeFromJSON(a),c=e.value,l=U(this.currentJSON,e.path),u=this.wordDiffs?se(l,c):oe(l,c),d=o.content.findDiffStart(s.content),f=o.resolve(d+1).marks();for(;u.length;){let e=u.shift();if(e.added){let t=this.schema.nodeFromJSON({type:`text`,text:e.value}).mark(f);if(u.length&&u[0].removed){let e=u.shift();this.tr.replaceWith(d,d+e.value.length,t)}else this.tr.insert(d,t);d+=e.value.length}else if(e.removed)if(u.length&&u[0].added){let t=u.shift(),n=this.schema.nodeFromJSON({type:`text`,text:t.value}).mark(f);this.tr.replaceWith(d,d+e.value.length,n),d+=t.value.length}else this.tr.delete(d,d+e.value.length);else d+=e.value.length}this.currentJSON=t}};function de(e,t,n={}){return new ue(e,t,n).init()}var G=new Set([`list`,`bulletList`,`orderedList`,`taskList`]);function K(e){let t=[];return e.forEach((e,n)=>{if(G.has(e.type.name)){let r=n+1,i=0;e.forEach(e=>{let n=r+i;t.push({from:n,to:n+e.nodeSize,key:`${e.type.name}:${e.textContent}`}),i+=e.nodeSize})}else t.push({from:n,to:n+e.nodeSize,key:`${e.type.name}:${e.textContent}`})}),t}function fe(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a].key===t[n].key?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o].key===t[s].key?(a.push({type:`same`,b:t[s]}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,a:e[o]}),o++):(a.push({type:`ins`,b:t[s]}),s++);for(;o<n;)a.push({type:`del`,a:e[o++]});for(;s<r;)a.push({type:`ins`,b:t[s++]});return a}function pe(e,t){let n=fe(K(e),K(t)),r=[],i=0;for(let e of n)e.type===`same`?i=e.b.to:e.type===`ins`?(r.push({fromA:0,toA:0,fromB:e.b.from,toB:e.b.to}),i=e.b.to):r.push({fromA:e.a.from,toA:e.a.to,fromB:i,toB:i});return r}var me=400;function q(e,t,n){return t.nodeFromJSON(e.parseWithFallback(n))}function he(e,t){let n=t.filter(e=>e.toB>e.fromB),r=[];return e.steps.forEach((t,i)=>{let a=t instanceof g?`add`:t instanceof m?`remove`:null;if(a===null)return;let o=t,s=e.mapping.slice(i+1),c=s.map(o.from,-1),l=s.map(o.to,1);if(l<=c||n.some(e=>e.fromB<=c&&l<=e.toB))return;let u=e.mapping.slice(0,i).invert(),d=u.map(o.from),f=u.map(o.to);f<=d||r.push({fromA:d,toA:f,fromB:c,toB:l,markName:o.mark.type.name,kind:a})}),r}function ge(e,t,n,r){if(e.length>2e5||t.length>2e5)return{ok:!1,reason:`ceiling`};let i,a;try{i=q(r,n,e),a=q(r,n,t)}catch{return{ok:!1,reason:`parse`}}let o=a,s=null;try{s=de(i,a,{complexSteps:!0,wordDiffs:!0,simplifyDiff:!0}),o=s.doc}catch{}let c=pe(i,o),l=s?he(s,c):[];return c.length+l.length>me?{ok:!1,reason:`ceiling`}:{ok:!0,afterDoc:o,beforeDoc:i,changes:c,markChanges:l}}var _e=`.ok-diff-ins, .ok-diff-ins-block, [data-diff-deleted]`;function ve(e){return e.changes.length+2*e.markChanges.length}function J(e){let t=!1;return e.forEach(e=>{e.isBlock&&(t=!0)}),t}function ye(e){if(e.childCount===0)return!1;let t=!0;return e.forEach(e=>{e.type.name!==`listItem`&&e.type.name!==`taskItem`&&(t=!1)}),t}function Y(e,t,n){let r=document.createElement(n?`div`:`span`);r.className=n?`ok-diff-del ok-diff-del-block`:`ok-diff-del`,r.setAttribute(`data-diff-deleted`,``);let i=e.serializeFragment(t);if(n&&ye(t)){let e=document.createElement(`ul`);e.appendChild(i),r.appendChild(e)}else r.appendChild(i);return r}function be(e,t,n,r,i){let a=d.fromSchema(i),o=[];for(let e of r){let n=t.slice(e.fromA,e.toA),r=J(n.content);o.push(x.widget(e.fromB,()=>Y(a,n.content,r),{side:-1,ignoreSelection:!0,marks:[]})),o.push(x.inline(e.fromB,e.toB,{class:`ok-diff-ins`},{inclusiveEnd:!0}))}for(let e of n)if(e.toB>e.fromB&&o.push(x.node(e.fromB,e.toB,{class:`ok-diff-ins-block`})),e.toA>e.fromA){let n=t.slice(e.fromA,e.toA),r=J(n.content);o.push(x.widget(e.fromB,()=>Y(a,n.content,r),{side:-1,ignoreSelection:!0,marks:[]}))}return _.create(e,o)}var xe=new Set([`slashCommand`,`blockDragHandle`,`blockMover`,`tableInsertControls`,`fileHandler`,`gfmAutolink`,`inlineLinkInputRule`,`keyboardNav`,`tiptapFindReplace`,`selectionState`,`sourceDirtyObserver`,`tabFocusTrap`]),X=r.filter(e=>!xe.has(e.name)).map(e=>e.name===`jsxComponent`?f:e),Z=n(),Q=p(X);function Se(e,t){return ge(e,t,Q,l())}var Ce=ee.create({name:`renderedDiffDecorations`,addOptions(){return{decorations:_.empty}},addProseMirrorPlugins(){let e=this.options.decorations;return[new y({key:new v(`renderedDiffDecorations`),props:{decorations:()=>e}})]}});function we(e){let t=(0,D.c)(31),{diff:n}=e,r,i,a,o;if(t[0]!==n.afterDoc||t[1]!==n.beforeDoc||t[2]!==n.changes||t[3]!==n.markChanges){let e=be(n.afterDoc,n.beforeDoc,n.changes,n.markChanges,Q);o=u,a=!1,r=X,i=Ce.configure({decorations:e}),t[0]=n.afterDoc,t[1]=n.beforeDoc,t[2]=n.changes,t[3]=n.markChanges,t[4]=r,t[5]=i,t[6]=a,t[7]=o}else r=t[4],i=t[5],a=t[6],o=t[7];let s;t[8]!==r||t[9]!==i?(s=[...r,i],t[8]=r,t[9]=i,t[10]=s):s=t[10];let l;t[11]===n.afterDoc?l=t[12]:(l=n.afterDoc.toJSON(),t[11]=n.afterDoc,t[12]=l);let d;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(d={attributes:{class:`pt-4`}},t[13]=d):d=t[13];let f;t[14]!==a||t[15]!==s||t[16]!==l?(f={editable:a,extensions:s,content:l,editorProps:d},t[14]=a,t[15]=s,t[16]=l,t[17]=f):f=t[17];let p;t[18]===n?p=t[19]:(p=[n],t[18]=n,t[19]=p);let m=o(f,p),[h]=(0,E.useState)(Te),g=(0,E.useRef)(null),_,v;t[20]===h?(_=t[21],v=t[22]):(_=()=>{let e=g.current;if(e)return e.appendChild(h),()=>{h.parentNode===e&&e.removeChild(h)}},v=[h],t[20]=h,t[21]=_,t[22]=v),(0,E.useLayoutEffect)(_,v);let y;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Z.jsx)(`div`,{className:`tiptap-editor`,children:(0,Z.jsx)(`div`,{ref:g,style:{display:`contents`}})}),t[23]=y):y=t[23];let b;t[24]===m?b=t[25]:(b=(0,Z.jsx)(c,{editor:m,className:`tiptap-editor-portal-content`}),t[24]=m,t[25]=b);let x;t[26]!==h||t[27]!==b?(x=(0,ie.createPortal)(b,h),t[26]=h,t[27]=b,t[28]=x):x=t[28];let S;return t[29]===x?S=t[30]:(S=(0,Z.jsxs)(`div`,{className:`editor-doc-scroll min-h-0 flex-1`,"data-testid":`rendered-diff-view`,children:[y,x]}),t[29]=x,t[30]=S),S}function Te(){let e=document.createElement(`div`);return e.style.display=`contents`,e}function Ee(e){let t=0,n=!1;for(let r of e.split(`
1
+ import{o as e,t}from"./chunk-CYidjpOJ.js";import{t as n}from"./jsx-runtime-BUgB2tll.js";import{h as r,i}from"./DocumentContext-CasGadtG.js";import{t as a}from"./react-f2sANaYj.js";import{t as o}from"./react-dom-DPxgxlDT.js";import{t as s}from"./compiler-runtime-BfE3aGVn.js";import{G as c,O as l,Q as u}from"./CodeMirrorPropInput-D50z9yLP.js";import{$i as d,Bi as f,Ca as p,Da as m,Ea as h,G as g,Ta as _,_a as v,da as y,fa as b,ga as x,mo as S,xa as ee}from"./dist-CHVHOG7X2.js";import{t as te}from"./libesm-BYxokP1G.js";var C=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Pointer=void 0,e.unescapeToken=t,e.escapeToken=n;function t(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function n(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}e.Pointer=function(){function e(e){e===void 0&&(e=[``]),this.tokens=e}return e.fromJSON=function(n){var r=n.split(`/`).map(t);if(r[0]!==``)throw Error(`Invalid JSON Pointer: ${n}`);return new e(r)},e.prototype.toString=function(){return this.tokens.map(n).join(`/`)},e.prototype.evaluate=function(e){for(var t=null,n=``,r=e,i=1,a=this.tokens.length;i<a;i++)t=r,n=this.tokens[i],!(n==`__proto__`||n==`constructor`||n==`prototype`)&&(r=(t||{})[n]);return{parent:t,key:n,value:r}},e.prototype.get=function(e){return this.evaluate(e).value},e.prototype.set=function(e,t){var n=this.evaluate(e);n.parent&&(n.parent[n.key]=t)},e.prototype.push=function(e){this.tokens.push(e)},e.prototype.add=function(t){return new e(this.tokens.concat(String(t)))},e.prototype.parent=function(){return new e(this.tokens.length>1?this.tokens.slice(0,-1):[``])},e}()})),w=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.hasOwnProperty=void 0,e.objectType=t,e.clone=r,e.hasOwnProperty=Object.prototype.hasOwnProperty;function t(e){return e===void 0?`undefined`:e===null?`null`:Array.isArray(e)?`array`:typeof e}function n(e){return typeof e==`object`&&!!e}function r(t){if(!n(t))return t;if(t.constructor==Array){for(var i=t.length,a=Array(i),o=0;o<i;o++)a[o]=r(t[o]);return a}if(t.constructor==Date)return new Date(+t);var s={};for(var c in t)e.hasOwnProperty.call(t,c)&&(s[c]=r(t[c]));return s}})),T=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.isDestructive=n,e.subtract=r,e.intersection=i,e.diffArrays=l,e.diffObjects=u,e.diffAny=d;var t=w();function n(e){var t=e.op;return t===`remove`||t===`replace`||t===`copy`||t===`move`}function r(e,n){var r=[];for(var i in e)t.hasOwnProperty.call(e,i)&&e[i]!==void 0&&!(t.hasOwnProperty.call(n,i)&&n[i]!==void 0)&&r.push(i);return r}function i(e){for(var n=e.length,r={},i=0;i<n;i++){var a=e[i];for(var o in a)t.hasOwnProperty.call(a,o)&&a[o]!==void 0&&(r[o]=(r[o]||0)+1)}for(var o in r)r[o]<n&&delete r[o];return Object.keys(r)}function a(e,n){var r=[];for(var i in e)t.hasOwnProperty.call(e,i)&&e[i]!==void 0&&t.hasOwnProperty.call(n,i)&&n[i]!==void 0&&r.push(i);return r}function o(e){return e.op===`add`}function s(e){return e.op===`remove`}function c(e,t){return{operations:e.operations.concat(t),cost:e.cost+1}}function l(e,t,n,r){r===void 0&&(r=d);var i=Math.max(e.length,t.length),a=new Map([[0,{operations:[],cost:0}]]);function l(o,s){var u=o*i+s,d=a.get(u);if(d===void 0){if(o>0&&s>0&&!r(e[o-1],t[s-1],n.add(String(o-1))).length)d=l(o-1,s-1);else{var f=[];if(o>0){var p=l(o-1,s),m={op:`remove`,index:o-1};f.push(c(p,m))}if(s>0){var h=l(o,s-1),g={op:`add`,index:o-1,value:t[s-1]};f.push(c(h,g))}if(o>0&&s>0){var _=l(o-1,s-1),v={op:`replace`,index:o-1,original:e[o-1],value:t[s-1]};f.push(c(_,v))}d=f.sort(function(e,t){return e.cost-t.cost})[0]}a.set(u,d)}return d}var u=isNaN(e.length)||e.length<=0?0:e.length;return l(u,isNaN(t.length)||t.length<=0?0:t.length).operations.reduce(function(e,t){var i=e[0],a=e[1];if(o(t)){var c=t.index+1+a,l=c<u+a?String(c):`-`,d={op:t.op,path:n.add(l).toString(),value:t.value};return[i.concat(d),a+1]}else if(s(t)){var d={op:t.op,path:n.add(String(t.index+a)).toString()};return[i.concat(d),a-1]}else{var f=n.add(String(t.index+a)),p=r(t.original,t.value,f);return[i.concat.apply(i,p),a]}},[[],0])[0]}function u(e,t,n,i){i===void 0&&(i=d);var o=[];return r(e,t).forEach(function(e){o.push({op:`remove`,path:n.add(e).toString()})}),r(t,e).forEach(function(e){o.push({op:`add`,path:n.add(e).toString(),value:t[e]})}),a(e,t).forEach(function(r){o.push.apply(o,i(e[r],t[r],n.add(r)))}),o}function d(e,n,r,i){if(i===void 0&&(i=d),e===n)return[];var a=(0,t.objectType)(e),o=(0,t.objectType)(n);return a==`array`&&o==`array`?l(e,n,r,i):a==`object`&&o==`object`?u(e,n,r,i):[{op:`replace`,path:r.toString(),value:n}]}})),ne=t((e=>{var t=e&&e.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})();Object.defineProperty(e,`__esModule`,{value:!0}),e.InvalidOperationError=e.TestError=e.MissingError=void 0,e.add=l,e.remove=u,e.replace=d,e.move=f,e.copy=p,e.test=m,e.apply=g;var n=C(),r=w(),i=T(),a=function(e){t(n,e);function n(t){var n=e.call(this,`Value required at path: ${t}`)||this;return n.path=t,n.name=`MissingError`,n}return n}(Error);e.MissingError=a;var o=function(e){t(n,e);function n(t,n){var r=e.call(this,`Test failed: ${t} != ${n}`)||this;return r.actual=t,r.expected=n,r.name=`TestError`,r}return n}(Error);e.TestError=o;function s(e,t,n){if(Array.isArray(e))if(t==`-`)e.push(n);else{var r=parseInt(t,10);e.splice(r,0,n)}else e[t]=n}function c(e,t){if(Array.isArray(e)){var n=parseInt(t,10);e.splice(n,1)}else delete e[t]}function l(e,t,i){var o=n.Pointer.fromJSON(t.path);if(i?.implicitArrayCreation&&o.tokens[o.tokens.length-1]===`-`){var c=o.parent().evaluate(e);c.value===void 0&&(0,r.objectType)(c.parent)===`object`&&(c.parent[c.key]=[])}var l=o.evaluate(e);return l.parent===void 0||i?.implicitArrayCreation&&l.key===`-`&&!Array.isArray(l.parent)?new a(t.path):(s(l.parent,l.key,(0,r.clone)(t.value)),null)}function u(e,t,r){var i=n.Pointer.fromJSON(t.path).evaluate(e);return i.value===void 0?new a(t.path):(c(i.parent,i.key),null)}function d(e,t,i){var o=n.Pointer.fromJSON(t.path).evaluate(e);if(o.parent===null)return new a(t.path);if(Array.isArray(o.parent)){if(parseInt(o.key,10)>=o.parent.length)return new a(t.path)}else if(o.value===void 0)return new a(t.path);return o.parent[o.key]=(0,r.clone)(t.value),null}function f(e,t,r){var i=n.Pointer.fromJSON(t.from).evaluate(e);if(i.value===void 0)return new a(t.from);var o=n.Pointer.fromJSON(t.path).evaluate(e);return o.parent===void 0?new a(t.path):(c(i.parent,i.key),s(o.parent,o.key,i.value),null)}function p(e,t,i){var o=n.Pointer.fromJSON(t.from).evaluate(e);if(o.value===void 0)return new a(t.from);var c=n.Pointer.fromJSON(t.path).evaluate(e);return c.parent===void 0?new a(t.path):(s(c.parent,c.key,(0,r.clone)(o.value)),null)}function m(e,t,r){var a=n.Pointer.fromJSON(t.path).evaluate(e);return(0,i.diffAny)(a.value,t.value,new n.Pointer).length?new o(a.value,t.value):null}var h=function(e){t(n,e);function n(t){var n=e.call(this,`Invalid operation: ${t.op}`)||this;return n.operation=t,n.name=`InvalidOperationError`,n}return n}(Error);e.InvalidOperationError=h;function g(e,t,n){switch(t.op){case`add`:return l(e,t,n);case`remove`:return u(e,t,n);case`replace`:return d(e,t,n);case`move`:return f(e,t,n);case`copy`:return p(e,t,n);case`test`:return m(e,t,n)}return new h(t)}})),re=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Pointer=void 0,e.applyPatch=i,e.createPatch=o;var t=C();Object.defineProperty(e,`Pointer`,{enumerable:!0,get:function(){return t.Pointer}});var n=ne(),r=T();function i(e,t,r){return t.map(function(t){return(0,n.apply)(e,t,r)})}function a(e){function t(n,i,a){var o=e(n,i,a);return Array.isArray(o)?o:(0,r.diffAny)(n,i,a,t)}return t}function o(e,n,i){var o=new t.Pointer;return(i?a(i):r.diffAny)(e,n,o)}})),E=e(a(),1),ie=e(o(),1),D=s(),O=re();function k(){}k.prototype={diff:function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.callback;typeof n==`function`&&(r=n,n={}),this.options=n;var i=this;function a(e){return r?(setTimeout(function(){r(void 0,e)},0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var o=t.length,s=e.length,c=1,l=o+s;n.maxEditLength&&(l=Math.min(l,n.maxEditLength));var u=n.timeout??1/0,d=Date.now()+u,f=[{oldPos:-1,lastComponent:void 0}],p=this.extractCommon(f[0],t,e,0);if(f[0].oldPos+1>=s&&p+1>=o)return a([{value:this.join(t),count:t.length}]);var m=-1/0,h=1/0;function g(){for(var n=Math.max(m,-c);n<=Math.min(h,c);n+=2){var r=void 0,l=f[n-1],u=f[n+1];l&&(f[n-1]=void 0);var d=!1;if(u){var g=u.oldPos-n;d=u&&0<=g&&g<o}var _=l&&l.oldPos+1<s;if(!d&&!_){f[n]=void 0;continue}if(r=!_||d&&l.oldPos+1<u.oldPos?i.addToPath(u,!0,void 0,0):i.addToPath(l,void 0,!0,1),p=i.extractCommon(r,t,e,n),r.oldPos+1>=s&&p+1>=o)return a(ae(i,r.lastComponent,t,e,i.useLongestToken));f[n]=r,r.oldPos+1>=s&&(h=Math.min(h,n-1)),p+1>=o&&(m=Math.max(m,n+1))}c++}if(r)(function e(){setTimeout(function(){if(c>l||Date.now()>d)return r();g()||e()},0)})();else for(;c<=l&&Date.now()<=d;){var _=g();if(_)return _}},addToPath:function(e,t,n,r){var i=e.lastComponent;return i&&i.added===t&&i.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:i.count+1,added:t,removed:n,previousComponent:i.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:i}}},extractCommon:function(e,t,n,r){for(var i=t.length,a=n.length,o=e.oldPos,s=o-r,c=0;s+1<i&&o+1<a&&this.equals(t[s+1],n[o+1]);)s++,o++,c++;return c&&(e.lastComponent={count:c,previousComponent:e.lastComponent}),e.oldPos=o,s},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return e.split(``)},join:function(e){return e.join(``)}};function ae(e,t,n,r,i){for(var a=[],o;t;)a.push(t),o=t.previousComponent,delete t.previousComponent,t=o;a.reverse();for(var s=0,c=a.length,l=0,u=0;s<c;s++){var d=a[s];if(!d.removed){if(!d.added&&i){var f=n.slice(l,l+d.count);f=f.map(function(e,t){var n=r[u+t];return n.length>e.length?n:e}),d.value=e.join(f)}else d.value=e.join(n.slice(l,l+d.count));l+=d.count,d.added||(u+=d.count)}else if(d.value=e.join(r.slice(u,u+d.count)),u+=d.count,s&&a[s-1].added){var p=a[s-1];a[s-1]=a[s],a[s]=p}}var m=a[c-1];return c>1&&typeof m.value==`string`&&(m.added||m.removed)&&e.equals(``,m.value)&&(a[c-2].value+=m.value,a.pop()),a}var A=new k;function oe(e,t,n){return A.diff(e,t,n)}var j=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,M=/\S/,N=new k;N.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!M.test(e)&&!M.test(t)},N.tokenize=function(e){for(var t=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),n=0;n<t.length-1;n++)!t[n+1]&&t[n+2]&&j.test(t[n])&&j.test(t[n+2])&&(t[n]+=t[n+2],t.splice(n+1,2),n--);return t};function se(e,t,n){return N.diff(e,t,n)}var P=new k;P.tokenize=function(e){this.options.stripTrailingCr&&(e=e.replace(/\r\n/g,`
2
+ `));var t=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var F=new k;F.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var ce=new k;ce.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};function I(e){"@babel/helpers - typeof";return I=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},I(e)}var le=Object.prototype.toString,L=new k;L.useLongestToken=!0,L.tokenize=P.tokenize,L.castInput=function(e){var t=this.options,n=t.undefinedReplacement,r=t.stringifyReplacer,i=r===void 0?function(e,t){return t===void 0?n:t}:r;return typeof e==`string`?e:JSON.stringify(R(e,null,null,i),i,` `)},L.equals=function(e,t){return k.prototype.equals.call(L,e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`))};function R(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i,e));var a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];var o;if(le.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=R(e[a],t,n,r,i);return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),I(e)===`object`&&e!==null){t.push(e),o={},n.push(o);var s=[],c;for(c in e)e.hasOwnProperty(c)&&s.push(c);for(s.sort(),a=0;a<s.length;a+=1)c=s[a],o[c]=R(e[c],t,n,r,c);t.pop(),n.pop()}else o=e;return o}var z=new k;z.tokenize=function(e){return e.slice()},z.join=z.removeEmpty=function(e){return e};function B(e,t){let n=t.content.findDiffStart(e.content);if(n===null)return!1;let{a:r,b:i}=t.content.findDiffEnd(e.content),a=n-Math.min(r,i);return a>0&&(e.resolve(n-a).depth<t.resolve(r+a).depth?n-=a:(r+=a,i+=a)),new _(n,i,t.slice(n,r))}function V(e){if(!e.steps.length)return;let t=new h(e.docs[0]),n=e.steps.slice();for(;n.length;){let e=n.shift();for(;n.length&&e.merge(n[0]);){let r=n.shift();e=e instanceof _&&r instanceof _?B(t.doc,r.apply(e.apply(t.doc).doc).doc):e.merge(r)}t.step(e)}return t}function H(e){let t=new h(e);return t.removeMark(0,e.nodeSize-2),t.doc}function U(e,t){let n=t.split(`/`);for(n.shift();n.length;){if(typeof e!=`object`)throw Error();let t=n.shift();e=e[t]}return e}function W(e){return JSON.parse(JSON.stringify(e))}var ue=class{fromDoc;toDoc;complexSteps;wordDiffs;simplifyDiff;schema;tr;currentJSON;finalJSON;ops;constructor(e,t,n={}){let r={complexSteps:!0,wordDiffs:!1,simplifyDiff:!0,...n};this.fromDoc=e,this.toDoc=t,this.complexSteps=r.complexSteps,this.wordDiffs=r.wordDiffs,this.simplifyDiff=r.simplifyDiff,this.schema=e.type.schema,this.tr=new h(e),this.currentJSON={},this.finalJSON={},this.ops=[]}init(){return this.complexSteps?(this.currentJSON=H(this.fromDoc).toJSON(),this.finalJSON=H(this.toDoc).toJSON(),this.ops=(0,O.createPatch)(this.currentJSON,this.finalJSON),this.recreateChangeContentSteps(),this.recreateChangeMarkSteps()):(this.currentJSON=this.fromDoc.toJSON(),this.finalJSON=this.toDoc.toJSON(),this.ops=(0,O.createPatch)(this.currentJSON,this.finalJSON),this.recreateChangeContentSteps()),this.simplifyDiff&&(this.tr=V(this.tr)||this.tr),this.tr}recreateChangeContentSteps(){let e=[];for(;this.ops.length;){let t=this.ops.shift();e.push(t);let n,r=W(this.currentJSON),i=t.path.split(`/`);for(;n==null;){(0,O.applyPatch)(r,[t]);try{n=this.schema.nodeFromJSON(r),n.check()}catch{if(n=null,this.ops.length>0)t=this.ops.shift(),e.push(t);else throw Error(`No valid diff possible applying ${t.path}`)}}this.complexSteps&&e.length===1&&(i.includes(`attrs`)||i.includes(`type`))?(this.addSetNodeMarkup(),e=[]):e.length===1&&t.op===`replace`&&i[i.length-1]===`text`?(this.addReplaceTextSteps(t,r),e=[]):this.addReplaceStep(n,r)&&(e=[])}}addSetNodeMarkup(){let e=this.schema.nodeFromJSON(this.currentJSON),t=this.schema.nodeFromJSON(this.finalJSON),n=t.content.findDiffStart(e.content),r=e.nodeAt(n),i=t.nodeAt(n);if(n!=null){let e=r.type===i.type?null:i.type;try{this.tr.setNodeMarkup(n,e,i.attrs,i.marks)}catch(t){if(e&&t.message.includes(`Invalid content`))this.tr.replaceWith(n,n+r.nodeSize,i);else throw t}return this.currentJSON=H(this.tr.doc).toJSON(),this.ops=(0,O.createPatch)(this.currentJSON,this.finalJSON),!0}return!1}recreateChangeMarkSteps(){this.toDoc.descendants((e,t)=>{if(!e.isInline)return!0;this.tr.doc.nodesBetween(t,t+e.nodeSize,(n,r)=>{if(!n.isInline)return!0;let i=Math.max(t,r),a=Math.min(t+e.nodeSize,r+n.nodeSize);n.marks.forEach(t=>{t.isInSet(e.marks)||this.tr.removeMark(i,a,t)}),e.marks.forEach(e=>{e.isInSet(n.marks)||this.tr.addMark(i,a,e)})})})}addReplaceStep(e,t){let n=B(this.schema.nodeFromJSON(this.currentJSON),e);if(!n)return!1;if(!this.tr.maybeStep(n).failed)return this.currentJSON=t,!0;throw Error(`No valid step found.`)}addReplaceTextSteps(e,t){let n={...e,value:`xx`},r={...e,value:`yy`},i=W(this.currentJSON),a=W(this.currentJSON);(0,O.applyPatch)(i,[n]),(0,O.applyPatch)(a,[r]);let o=this.schema.nodeFromJSON(i),s=this.schema.nodeFromJSON(a),c=e.value,l=U(this.currentJSON,e.path),u=this.wordDiffs?se(l,c):oe(l,c),d=o.content.findDiffStart(s.content),f=o.resolve(d+1).marks();for(;u.length;){let e=u.shift();if(e.added){let t=this.schema.nodeFromJSON({type:`text`,text:e.value}).mark(f);if(u.length&&u[0].removed){let e=u.shift();this.tr.replaceWith(d,d+e.value.length,t)}else this.tr.insert(d,t);d+=e.value.length}else if(e.removed)if(u.length&&u[0].added){let t=u.shift(),n=this.schema.nodeFromJSON({type:`text`,text:t.value}).mark(f);this.tr.replaceWith(d,d+e.value.length,n),d+=t.value.length}else this.tr.delete(d,d+e.value.length);else d+=e.value.length}this.currentJSON=t}};function de(e,t,n={}){return new ue(e,t,n).init()}var G=new Set([`list`,`bulletList`,`orderedList`,`taskList`]);function K(e){let t=[];return e.forEach((e,n)=>{if(G.has(e.type.name)){let r=n+1,i=0;e.forEach(e=>{let n=r+i;t.push({from:n,to:n+e.nodeSize,key:`${e.type.name}:${e.textContent}`}),i+=e.nodeSize})}else t.push({from:n,to:n+e.nodeSize,key:`${e.type.name}:${e.textContent}`})}),t}function fe(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a].key===t[n].key?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o].key===t[s].key?(a.push({type:`same`,b:t[s]}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,a:e[o]}),o++):(a.push({type:`ins`,b:t[s]}),s++);for(;o<n;)a.push({type:`del`,a:e[o++]});for(;s<r;)a.push({type:`ins`,b:t[s++]});return a}function pe(e,t){let n=fe(K(e),K(t)),r=[],i=0;for(let e of n)e.type===`same`?i=e.b.to:e.type===`ins`?(r.push({fromA:0,toA:0,fromB:e.b.from,toB:e.b.to}),i=e.b.to):r.push({fromA:e.a.from,toA:e.a.to,fromB:i,toB:i});return r}var me=400;function q(e,t,n){return t.nodeFromJSON(e.parseWithFallback(n))}function he(e,t){let n=t.filter(e=>e.toB>e.fromB),r=[];return e.steps.forEach((t,i)=>{let a=t instanceof ee?`add`:t instanceof p?`remove`:null;if(a===null)return;let o=t,s=e.mapping.slice(i+1),c=s.map(o.from,-1),l=s.map(o.to,1);if(l<=c||n.some(e=>e.fromB<=c&&l<=e.toB))return;let u=e.mapping.slice(0,i).invert(),d=u.map(o.from),f=u.map(o.to);f<=d||r.push({fromA:d,toA:f,fromB:c,toB:l,markName:o.mark.type.name,kind:a})}),r}function ge(e,t,n,r){if(e.length>2e5||t.length>2e5)return{ok:!1,reason:`ceiling`};let i,a;try{i=q(r,n,e),a=q(r,n,t)}catch{return{ok:!1,reason:`parse`}}let o=a,s=null;try{s=de(i,a,{complexSteps:!0,wordDiffs:!0,simplifyDiff:!0}),o=s.doc}catch{}let c=pe(i,o),l=s?he(s,c):[];return c.length+l.length>me?{ok:!1,reason:`ceiling`}:{ok:!0,afterDoc:o,beforeDoc:i,changes:c,markChanges:l}}var _e=`.ok-diff-ins, .ok-diff-ins-block, [data-diff-deleted]`;function ve(e){return e.changes.length+2*e.markChanges.length}function J(e){let t=!1;return e.forEach(e=>{e.isBlock&&(t=!0)}),t}function ye(e){if(e.childCount===0)return!1;let t=!0;return e.forEach(e=>{e.type.name!==`listItem`&&e.type.name!==`taskItem`&&(t=!1)}),t}function Y(e,t,n){let r=document.createElement(n?`div`:`span`);r.className=n?`ok-diff-del ok-diff-del-block`:`ok-diff-del`,r.setAttribute(`data-diff-deleted`,``);let i=e.serializeFragment(t);if(n&&ye(t)){let e=document.createElement(`ul`);e.appendChild(i),r.appendChild(e)}else r.appendChild(i);return r}function be(e,t,n,r,i){let a=m.fromSchema(i),o=[];for(let e of r){let n=t.slice(e.fromA,e.toA),r=J(n.content);o.push(y.widget(e.fromB,()=>Y(a,n.content,r),{side:-1,ignoreSelection:!0,marks:[]})),o.push(y.inline(e.fromB,e.toB,{class:`ok-diff-ins`},{inclusiveEnd:!0}))}for(let e of n)if(e.toB>e.fromB&&o.push(y.node(e.fromB,e.toB,{class:`ok-diff-ins-block`})),e.toA>e.fromA){let n=t.slice(e.fromA,e.toA),r=J(n.content);o.push(y.widget(e.fromB,()=>Y(a,n.content,r),{side:-1,ignoreSelection:!0,marks:[]}))}return b.create(e,o)}var xe=new Set([`slashCommand`,`blockDragHandle`,`blockMover`,`tableInsertControls`,`fileHandler`,`gfmAutolink`,`inlineLinkInputRule`,`keyboardNav`,`tiptapFindReplace`,`selectionState`,`sourceDirtyObserver`,`tabFocusTrap`]),X=r.filter(e=>!xe.has(e.name)).map(e=>e.name===`jsxComponent`?g:e),Z=n(),Q=d(X);function Se(e,t){return ge(e,t,Q,l())}var Ce=f.create({name:`renderedDiffDecorations`,addOptions(){return{decorations:b.empty}},addProseMirrorPlugins(){let e=this.options.decorations;return[new x({key:new v(`renderedDiffDecorations`),props:{decorations:()=>e}})]}});function we(e){let t=(0,D.c)(31),{diff:n}=e,r,i,a,o;if(t[0]!==n.afterDoc||t[1]!==n.beforeDoc||t[2]!==n.changes||t[3]!==n.markChanges){let e=be(n.afterDoc,n.beforeDoc,n.changes,n.markChanges,Q);o=u,a=!1,r=X,i=Ce.configure({decorations:e}),t[0]=n.afterDoc,t[1]=n.beforeDoc,t[2]=n.changes,t[3]=n.markChanges,t[4]=r,t[5]=i,t[6]=a,t[7]=o}else r=t[4],i=t[5],a=t[6],o=t[7];let s;t[8]!==r||t[9]!==i?(s=[...r,i],t[8]=r,t[9]=i,t[10]=s):s=t[10];let l;t[11]===n.afterDoc?l=t[12]:(l=n.afterDoc.toJSON(),t[11]=n.afterDoc,t[12]=l);let d;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(d={attributes:{class:`pt-4`}},t[13]=d):d=t[13];let f;t[14]!==a||t[15]!==s||t[16]!==l?(f={editable:a,extensions:s,content:l,editorProps:d},t[14]=a,t[15]=s,t[16]=l,t[17]=f):f=t[17];let p;t[18]===n?p=t[19]:(p=[n],t[18]=n,t[19]=p);let m=o(f,p),[h]=(0,E.useState)(Te),g=(0,E.useRef)(null),_,v;t[20]===h?(_=t[21],v=t[22]):(_=()=>{let e=g.current;if(e)return e.appendChild(h),()=>{h.parentNode===e&&e.removeChild(h)}},v=[h],t[20]=h,t[21]=_,t[22]=v),(0,E.useLayoutEffect)(_,v);let y;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Z.jsx)(`div`,{className:`tiptap-editor`,children:(0,Z.jsx)(`div`,{ref:g,style:{display:`contents`}})}),t[23]=y):y=t[23];let b;t[24]===m?b=t[25]:(b=(0,Z.jsx)(c,{editor:m,className:`tiptap-editor-portal-content`}),t[24]=m,t[25]=b);let x;t[26]!==h||t[27]!==b?(x=(0,ie.createPortal)(b,h),t[26]=h,t[27]=b,t[28]=x):x=t[28];let S;return t[29]===x?S=t[30]:(S=(0,Z.jsxs)(`div`,{className:`editor-doc-scroll min-h-0 flex-1`,"data-testid":`rendered-diff-view`,children:[y,x]}),t[29]=x,t[30]=S),S}function Te(){let e=document.createElement(`div`);return e.style.display=`contents`,e}function Ee(e){let t=0,n=!1;for(let r of e.split(`
3
3
  `)){let e=r.startsWith(`+`)&&!r.startsWith(`+++`)||r.startsWith(`-`)&&!r.startsWith(`---`);e&&!n&&(t+=1),n=e}return t}function De(e){let t=Array.from(e.querySelectorAll(`.diff-code-insert, .diff-code-delete`)),n=[],r=null;for(let e of t){let t=e.closest(`tr`);t&&((r===null||t.previousElementSibling!==r)&&n.push(e),r=t)}return n}function $(e){let t=0,n=0;for(let r of e.split(`
4
- `))r.startsWith(`+`)&&!r.startsWith(`+++`)?t++:r.startsWith(`-`)&&!r.startsWith(`---`)&&n++;return{additions:t,deletions:n}}function Oe(e,t){return`${e}\u0000${t}`}function ke(e,t,n){let r=b(e).body,i=b(t).body;return r===i?``:te(n,r,i,``,``,{context:Math.max(r.split(`
4
+ `))r.startsWith(`+`)&&!r.startsWith(`+++`)?t++:r.startsWith(`-`)&&!r.startsWith(`---`)&&n++;return{additions:t,deletions:n}}function Oe(e,t){return`${e}\u0000${t}`}function ke(e,t,n){let r=S(e).body,i=S(t).body;return r===i?``:te(n,r,i,``,``,{context:Math.max(r.split(`
5
5
  `).length,i.split(`
6
- `).length)})}function Ae(e,t,n,r,a){let o=(0,D.c)(10),s=r===void 0?`vs-live`:r,c=a===void 0?null:a,{activeProvider:l}=i(),u;o[0]===Symbol.for(`react.memo_cache_sentinel`)?(u={status:`idle`,diff:null},o[0]=u):u=o[0];let[d,f]=(0,E.useState)(u),p=(0,E.useRef)(l),m;o[1]===l?m=o[2]:(m=()=>{p.current=l},o[1]=l,o[2]=m),(0,E.useEffect)(m);let h,g;return o[3]!==n||o[4]!==t||o[5]!==s||o[6]!==c||o[7]!==e?(h=()=>{if(!e){f({status:`idle`,diff:null});return}let r=e,i=!1;f({status:`loading`,diff:null});let a=async function(e){let r=Oe(t,e),i=n.get(r);if(i!==void 0)return i;let a=await fetch(`/api/history/${e}?docName=${encodeURIComponent(t)}`);if(!a.ok)return console.error(`[timeline-diff] history fetch returned non-ok response`,{sha:e,docName:t,status:a.status}),null;let o=(await a.json()).content??``;return n.set(r,o),o};return(async function(){try{let e=await a(r);if(i)return;if(e===null){f({status:`error`,diff:null});return}let n,o;if(s===`vs-parent`){let t=c?await a(c):``;if(i)return;if(t===null){f({status:`error`,diff:null});return}n=t,o=e}else n=e,o=p.current?.document.getText(`source`).toString()??``;let l=b(n).body,u=b(o).body,d=ke(n,o,t);if(i)return;let{additions:m,deletions:h}=$(d);f({status:`ready`,diff:d,additions:m,deletions:h,before:l,after:u})}catch(e){i||(console.error(`[timeline-diff] failed to load entry diff`,{sha:r,docName:t,mode:s,err:e}),f({status:`error`,diff:null}))}})(),()=>{i=!0}},g=[e,t,n,s,c],o[3]=n,o[4]=t,o[5]=s,o[6]=c,o[7]=e,o[8]=h,o[9]=g):(h=o[8],g=o[9]),(0,E.useEffect)(h,g),d}export{we as a,ve as c,Ee as i,Ae as n,Se as o,De as r,_e as s,$ as t};
6
+ `).length)})}function Ae(e,t,n,r,a){let o=(0,D.c)(10),s=r===void 0?`vs-live`:r,c=a===void 0?null:a,{activeProvider:l}=i(),u;o[0]===Symbol.for(`react.memo_cache_sentinel`)?(u={status:`idle`,diff:null},o[0]=u):u=o[0];let[d,f]=(0,E.useState)(u),p=(0,E.useRef)(l),m;o[1]===l?m=o[2]:(m=()=>{p.current=l},o[1]=l,o[2]=m),(0,E.useEffect)(m);let h,g;return o[3]!==n||o[4]!==t||o[5]!==s||o[6]!==c||o[7]!==e?(h=()=>{if(!e){f({status:`idle`,diff:null});return}let r=e,i=!1;f({status:`loading`,diff:null});let a=async function(e){let r=Oe(t,e),i=n.get(r);if(i!==void 0)return i;let a=await fetch(`/api/history/${e}?docName=${encodeURIComponent(t)}`);if(!a.ok)return console.error(`[timeline-diff] history fetch returned non-ok response`,{sha:e,docName:t,status:a.status}),null;let o=(await a.json()).content??``;return n.set(r,o),o};return(async function(){try{let e=await a(r);if(i)return;if(e===null){f({status:`error`,diff:null});return}let n,o;if(s===`vs-parent`){let t=c?await a(c):``;if(i)return;if(t===null){f({status:`error`,diff:null});return}n=t,o=e}else n=e,o=p.current?.document.getText(`source`).toString()??``;let l=S(n).body,u=S(o).body,d=ke(n,o,t);if(i)return;let{additions:m,deletions:h}=$(d);f({status:`ready`,diff:d,additions:m,deletions:h,before:l,after:u})}catch(e){i||(console.error(`[timeline-diff] failed to load entry diff`,{sha:r,docName:t,mode:s,err:e}),f({status:`error`,diff:null}))}})(),()=>{i=!0}},g=[e,t,n,s,c],o[3]=n,o[4]=t,o[5]=s,o[6]=c,o[7]=e,o[8]=h,o[9]=g):(h=o[8],g=o[9]),(0,E.useEffect)(h,g),d}export{we as a,ve as c,Ee as i,Ae as n,Se as o,De as r,_e as s,$ as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./compiler-runtime-BfE3aGVn.js";import{rn as r}from"./dist-B6uhnkqb2.js";var i=n(),a=e(t(),1);function o(){let e=(0,i.c)(3),[t,n]=(0,a.useState)(l),o,u;return e[0]===t?(o=e[1],u=e[2]):(o=()=>{if(t!==null||window.okDesktop)return;let e=!0;return fetch(`/api/workspace`).then(async t=>{let i=await t.json().catch(c);if(!e||!t.ok)return;let a=r.safeParse(i);a.success&&n({contentDir:a.data.contentDir,pathSeparator:a.data.pathSeparator})}).catch(s),()=>{e=!1}},u=[t],e[0]=t,e[1]=o,e[2]=u),(0,a.useEffect)(o,u),t}function s(e){console.warn(`[useWorkspace] /api/workspace fetch failed:`,e)}function c(){return null}function l(){return u()}function u(e=typeof window>`u`?void 0:window){if(!e)return null;let t=e.okDesktop;return t?{contentDir:t.config.projectPath,pathSeparator:t.platform===`win32`?`\\`:`/`}:null}export{o as t};
1
+ import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./compiler-runtime-BfE3aGVn.js";import{rn as r}from"./dist-CHVHOG7X2.js";var i=n(),a=e(t(),1);function o(){let e=(0,i.c)(3),[t,n]=(0,a.useState)(l),o,u;return e[0]===t?(o=e[1],u=e[2]):(o=()=>{if(t!==null||window.okDesktop)return;let e=!0;return fetch(`/api/workspace`).then(async t=>{let i=await t.json().catch(c);if(!e||!t.ok)return;let a=r.safeParse(i);a.success&&n({contentDir:a.data.contentDir,pathSeparator:a.data.pathSeparator})}).catch(s),()=>{e=!1}},u=[t],e[0]=t,e[1]=o,e[2]=u),(0,a.useEffect)(o,u),t}function s(e){console.warn(`[useWorkspace] /api/workspace fetch failed:`,e)}function c(){return null}function l(){return u()}function u(e=typeof window>`u`?void 0:window){if(!e)return null;let t=e.okDesktop;return t?{contentDir:t.config.projectPath,pathSeparator:t.platform===`win32`?`\\`:`/`}:null}export{o as t};
@@ -94,11 +94,11 @@
94
94
  -->
95
95
  <script>(() => { try { const raw = localStorage.getItem('ok-language-v1'); if (!raw) return; const o = JSON.parse(raw); if (typeof o?.locale !== 'string' || !/^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{2,8})*$/.test(o.locale)) return; document.documentElement.lang = o.locale; document.documentElement.dir = o.dir === 'rtl' ? 'rtl' : 'ltr'; } catch {} })();</script>
96
96
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
97
- <script type="module" crossorigin src="./assets/index-Cg1k8Ayr.js"></script>
97
+ <script type="module" crossorigin src="./assets/index-DbydDmJw.js"></script>
98
98
  <link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
99
99
  <link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
100
100
  <link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
101
- <link rel="modulepreload" crossorigin href="./assets/globals-B8Za6o5Q.js">
101
+ <link rel="modulepreload" crossorigin href="./assets/globals-BSqcs0wt.js">
102
102
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Chd9yIcd.js">
103
103
  <link rel="modulepreload" crossorigin href="./assets/w3c-keyname-hgmz1BF7.js">
104
104
  <link rel="modulepreload" crossorigin href="./assets/dist-B0Beym3_.js">
@@ -128,13 +128,13 @@
128
128
  <link rel="modulepreload" crossorigin href="./assets/lib-DcrRfjuF.js">
129
129
  <link rel="modulepreload" crossorigin href="./assets/lib-BHGXbMkc.js">
130
130
  <link rel="modulepreload" crossorigin href="./assets/markdownit-CIgVFnWs.js">
131
- <link rel="modulepreload" crossorigin href="./assets/dist-B6uhnkqb2.js">
131
+ <link rel="modulepreload" crossorigin href="./assets/dist-CHVHOG7X2.js">
132
132
  <link rel="modulepreload" crossorigin href="./assets/dist-Bkx5dDHT2.js">
133
- <link rel="modulepreload" crossorigin href="./assets/client-version-B_vQj5m0.js">
134
- <link rel="modulepreload" crossorigin href="./assets/use-apply-config-color-theme-6RHjH1SX.js">
133
+ <link rel="modulepreload" crossorigin href="./assets/client-version-C6LF52yy.js">
134
+ <link rel="modulepreload" crossorigin href="./assets/use-apply-config-color-theme-Be4mSe54.js">
135
135
  <link rel="modulepreload" crossorigin href="./assets/messages-CS-CWF8r.js">
136
- <link rel="modulepreload" crossorigin href="./assets/i18n-Bm86sjGW.js">
137
- <link rel="modulepreload" crossorigin href="./assets/config-provider-CCU8qlmR.js">
136
+ <link rel="modulepreload" crossorigin href="./assets/i18n-lVHP3BYW.js">
137
+ <link rel="modulepreload" crossorigin href="./assets/config-provider-BIse3_Yo.js">
138
138
  <link rel="modulepreload" crossorigin href="./assets/dist-Bi80hc1t.js">
139
139
  <link rel="modulepreload" crossorigin href="./assets/dist-CR6aO28t.js">
140
140
  <link rel="modulepreload" crossorigin href="./assets/dist-DpaqLIPT.js">
@@ -171,22 +171,22 @@
171
171
  <link rel="modulepreload" crossorigin href="./assets/switch-0kSGDL9E.js">
172
172
  <link rel="modulepreload" crossorigin href="./assets/folder-open-CB-trByC.js">
173
173
  <link rel="modulepreload" crossorigin href="./assets/trash-2-CSpv7np3.js">
174
- <link rel="modulepreload" crossorigin href="./assets/file-tree-utils-zx8XyJDX.js">
175
- <link rel="modulepreload" crossorigin href="./assets/doc-paths-DCnBNou3.js">
176
- <link rel="modulepreload" crossorigin href="./assets/skill-scope-qH5lhviP.js">
177
- <link rel="modulepreload" crossorigin href="./assets/navigation-targets-GITJ7Tz8.js">
174
+ <link rel="modulepreload" crossorigin href="./assets/file-tree-utils-CaXhxBar.js">
175
+ <link rel="modulepreload" crossorigin href="./assets/doc-paths-DEUIlKvV.js">
176
+ <link rel="modulepreload" crossorigin href="./assets/skill-scope-BzUNaBG8.js">
177
+ <link rel="modulepreload" crossorigin href="./assets/navigation-targets-Dh0TaCXK.js">
178
178
  <link rel="modulepreload" crossorigin href="./assets/asset-dispatch-DsHoHhCG.js">
179
179
  <link rel="modulepreload" crossorigin href="./assets/external-link-CHCx4FXC.js">
180
180
  <link rel="modulepreload" crossorigin href="./assets/documents-fetch-I34CgFeh.js">
181
- <link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-CfyM9jmf.js">
181
+ <link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-D50z9yLP.js">
182
182
  <link rel="modulepreload" crossorigin href="./assets/git-branch-JnfmLuHd.js">
183
183
  <link rel="modulepreload" crossorigin href="./assets/triangle-alert-xKPljhlK.js">
184
184
  <link rel="modulepreload" crossorigin href="./assets/Mermaid-D-pcyGRV.js">
185
185
  <link rel="modulepreload" crossorigin href="./assets/CopyButton-DhHoiQJR.js">
186
- <link rel="modulepreload" crossorigin href="./assets/documents-events-BE14yj3s.js">
186
+ <link rel="modulepreload" crossorigin href="./assets/documents-events-CNRzblNO.js">
187
187
  <link rel="modulepreload" crossorigin href="./assets/parse-api-error-Mgtc4OJu.js">
188
188
  <link rel="modulepreload" crossorigin href="./assets/startup-marks-BYurBbnW.js">
189
- <link rel="modulepreload" crossorigin href="./assets/prop-types-DOjW8INh.js">
189
+ <link rel="modulepreload" crossorigin href="./assets/prop-types-CLe_EOJt.js">
190
190
  <link rel="modulepreload" crossorigin href="./assets/eye-j_4QS15C.js">
191
191
  <link rel="modulepreload" crossorigin href="./assets/hash-DKiwvmF3.js">
192
192
  <link rel="modulepreload" crossorigin href="./assets/info-CsTy513y.js">
@@ -195,33 +195,33 @@
195
195
  <link rel="modulepreload" crossorigin href="./assets/file-tree-rename-validation-DEuNOzhg.js">
196
196
  <link rel="modulepreload" crossorigin href="./assets/badge-zHd29IKW.js">
197
197
  <link rel="modulepreload" crossorigin href="./assets/input-VnbFvuKd.js">
198
- <link rel="modulepreload" crossorigin href="./assets/use-collab-url-4QmUjyTo.js">
199
- <link rel="modulepreload" crossorigin href="./assets/skills-api-Dl_Mtb7L.js">
200
- <link rel="modulepreload" crossorigin href="./assets/DocumentContext-DQeqcbba.js">
198
+ <link rel="modulepreload" crossorigin href="./assets/use-collab-url-ChXwOaQi.js">
199
+ <link rel="modulepreload" crossorigin href="./assets/skills-api-VZRmji1_.js">
200
+ <link rel="modulepreload" crossorigin href="./assets/DocumentContext-CasGadtG.js">
201
201
  <link rel="modulepreload" crossorigin href="./assets/format-Dx1Bv63R.js">
202
202
  <link rel="modulepreload" crossorigin href="./assets/braces-B2tgJ4cu.js">
203
- <link rel="modulepreload" crossorigin href="./assets/folder-config-api-DzcYYQUB.js">
204
- <link rel="modulepreload" crossorigin href="./assets/comment-chips-BfGPrQWn.js">
203
+ <link rel="modulepreload" crossorigin href="./assets/folder-config-api-Cm-dSVuA.js">
204
+ <link rel="modulepreload" crossorigin href="./assets/comment-chips-S0s83wIP.js">
205
205
  <link rel="modulepreload" crossorigin href="./assets/textarea-D59GB_Zy.js">
206
- <link rel="modulepreload" crossorigin href="./assets/selection-context-DYJs4iye.js">
207
- <link rel="modulepreload" crossorigin href="./assets/lint-config-client-CXdpjOMj.js">
208
- <link rel="modulepreload" crossorigin href="./assets/use-skills-DyoXP6p3.js">
209
- <link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-CNkIjYyD.js">
210
- <link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-CZhoCX06.js">
206
+ <link rel="modulepreload" crossorigin href="./assets/selection-context-BxRPPU5Z.js">
207
+ <link rel="modulepreload" crossorigin href="./assets/lint-config-client-Di_wU0g4.js">
208
+ <link rel="modulepreload" crossorigin href="./assets/use-skills-C13KTW_J.js">
209
+ <link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-5u803JAP.js">
210
+ <link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-CYGOKMM4.js">
211
211
  <link rel="modulepreload" crossorigin href="./assets/cursor-CUtcHGV-.js">
212
212
  <link rel="modulepreload" crossorigin href="./assets/RegisteredAgentIcon-BgDInKA9.js">
213
213
  <link rel="modulepreload" crossorigin href="./assets/folder-C8rE1Soy.js">
214
214
  <link rel="modulepreload" crossorigin href="./assets/copilot-BdGxiVpg.js">
215
- <link rel="modulepreload" crossorigin href="./assets/terminal-cli-display-BqUx5532.js">
215
+ <link rel="modulepreload" crossorigin href="./assets/terminal-cli-display-DLfTA9tz.js">
216
216
  <link rel="modulepreload" crossorigin href="./assets/mascot-outline-CtS592mc.js">
217
- <link rel="modulepreload" crossorigin href="./assets/ChangedOutsideBadge-B0as4qVr.js">
217
+ <link rel="modulepreload" crossorigin href="./assets/ChangedOutsideBadge-BcoH6-nw.js">
218
218
  <link rel="modulepreload" crossorigin href="./assets/list-plus-ByOuGBSE.js">
219
- <link rel="modulepreload" crossorigin href="./assets/use-open-skill-DN4VQ0HP.js">
220
- <link rel="modulepreload" crossorigin href="./assets/use-settings-route-Ln_W_o3I.js">
219
+ <link rel="modulepreload" crossorigin href="./assets/use-open-skill-DASBRT-Y.js">
220
+ <link rel="modulepreload" crossorigin href="./assets/use-settings-route-MF7LcF5y.js">
221
221
  <link rel="modulepreload" crossorigin href="./assets/clipboard-adapter-DEJxizFj.js">
222
- <link rel="modulepreload" crossorigin href="./assets/use-workspace-C5uwuxa8.js">
222
+ <link rel="modulepreload" crossorigin href="./assets/use-workspace-CEaEfKKU.js">
223
223
  <link rel="modulepreload" crossorigin href="./assets/workspace-paths-C2pS_Pbn.js">
224
- <link rel="modulepreload" crossorigin href="./assets/skill-actions-Dvp72hct.js">
224
+ <link rel="modulepreload" crossorigin href="./assets/skill-actions-Dj2NwLGa.js">
225
225
  <link rel="modulepreload" crossorigin href="./assets/arrow-up-right-D_WN0VGP.js">
226
226
  <link rel="modulepreload" crossorigin href="./assets/case-sensitive-Cz58rAyi.js">
227
227
  <link rel="modulepreload" crossorigin href="./assets/chevron-left-CiNweXA3.js">
@@ -230,42 +230,42 @@
230
230
  <link rel="modulepreload" crossorigin href="./assets/lint-plugin-meta-FPoTE-0t.js">
231
231
  <link rel="modulepreload" crossorigin href="./assets/panel-9S5Pf2VO.js">
232
232
  <link rel="modulepreload" crossorigin href="./assets/skeleton-BOVIbSHk.js">
233
- <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-DJTF6TYE.js">
233
+ <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-COX8FDXD.js">
234
234
  <link rel="modulepreload" crossorigin href="./assets/download-btG_KeFQ.js">
235
235
  <link rel="modulepreload" crossorigin href="./assets/field-9eXIpxzl.js">
236
- <link rel="modulepreload" crossorigin href="./assets/auth-state-cache-Bsh1HmX2.js">
236
+ <link rel="modulepreload" crossorigin href="./assets/auth-state-cache-Z9zb3Xiw.js">
237
237
  <link rel="modulepreload" crossorigin href="./assets/miss-dialog-store-DKfFwAsF.js">
238
- <link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-MbkxejK0.js">
238
+ <link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-yXsV1Iit.js">
239
239
  <link rel="modulepreload" crossorigin href="./assets/history-eaFgPZWX.js">
240
- <link rel="modulepreload" crossorigin href="./assets/open-managed-artifact-tab-DzG5xo47.js">
241
- <link rel="modulepreload" crossorigin href="./assets/use-popular-skills-CETv50qW.js">
240
+ <link rel="modulepreload" crossorigin href="./assets/open-managed-artifact-tab-DflI2eed.js">
241
+ <link rel="modulepreload" crossorigin href="./assets/use-popular-skills-BEpYkbxf.js">
242
242
  <link rel="modulepreload" crossorigin href="./assets/panel-right-open-JxkSMPMb.js">
243
- <link rel="modulepreload" crossorigin href="./assets/terminal-launch-events-C9cyVGWq.js">
244
- <link rel="modulepreload" crossorigin href="./assets/follow-file-CjaFA8Bl.js">
243
+ <link rel="modulepreload" crossorigin href="./assets/terminal-launch-events-DaPNTH_g.js">
244
+ <link rel="modulepreload" crossorigin href="./assets/follow-file-DIXrodzs.js">
245
245
  <link rel="modulepreload" crossorigin href="./assets/square-pen-hwoIfi3M.js">
246
246
  <link rel="modulepreload" crossorigin href="./assets/undo-2-D5cqFzyJ.js">
247
247
  <link rel="modulepreload" crossorigin href="./assets/form-_Bm7VdZa.js">
248
248
  <link rel="modulepreload" crossorigin href="./assets/text-viewer-languages-BmEIetCD.js">
249
- <link rel="modulepreload" crossorigin href="./assets/EditorModeToggle-DYe6ugjz.js">
249
+ <link rel="modulepreload" crossorigin href="./assets/EditorModeToggle-6-QjT8Ga.js">
250
250
  <link rel="modulepreload" crossorigin href="./assets/ConfigSharingInfoTooltip-BPA8HEYl.js">
251
251
  <link rel="modulepreload" crossorigin href="./assets/project-paths-DC6bWLUQ.js">
252
252
  <link rel="modulepreload" crossorigin href="./assets/SkillModeBanner-d0ZDkWTk.js">
253
- <link rel="modulepreload" crossorigin href="./assets/file-tree-adapter-BOumv5bR.js">
253
+ <link rel="modulepreload" crossorigin href="./assets/file-tree-adapter-DYdb8QDM.js">
254
254
  <link rel="modulepreload" crossorigin href="./assets/terminal-command-events-mSM3ArSl.js">
255
- <link rel="modulepreload" crossorigin href="./assets/agent-diff-store-DEzJgiR6.js">
256
- <link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-uYgRrqg5.js">
257
- <link rel="modulepreload" crossorigin href="./assets/use-live-xterm-theme-BaPGSFwn.js">
255
+ <link rel="modulepreload" crossorigin href="./assets/agent-diff-store-ghKYlKOr.js">
256
+ <link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-CqhpK9cj.js">
257
+ <link rel="modulepreload" crossorigin href="./assets/use-live-xterm-theme-CaipyTAZ.js">
258
258
  <link rel="modulepreload" crossorigin href="./assets/input-group-BA2Li4LU.js">
259
259
  <link rel="modulepreload" crossorigin href="./assets/use-installed-clis-CdB0ME5s.js">
260
- <link rel="modulepreload" crossorigin href="./assets/use-skill-origin-BjoZBPjm.js">
261
- <link rel="modulepreload" crossorigin href="./assets/terminal-telemetry-BoS_NSJ3.js">
260
+ <link rel="modulepreload" crossorigin href="./assets/use-skill-origin-qCGon4Nv.js">
261
+ <link rel="modulepreload" crossorigin href="./assets/terminal-telemetry-BdrnMW3b.js">
262
262
  <link rel="modulepreload" crossorigin href="./assets/agent-presence-DK_W4GTa.js">
263
263
  <link rel="modulepreload" crossorigin href="./assets/auth-prompt-store-CyiGTt3C.js">
264
264
  <link rel="modulepreload" crossorigin href="./assets/mcp-consent-store-CBPF1Ll9.js">
265
265
  <link rel="modulepreload" crossorigin href="./assets/overlay-layers-C1Y78Wu8.js">
266
- <link rel="modulepreload" crossorigin href="./assets/receive-store-8XeTNhUV.js">
266
+ <link rel="modulepreload" crossorigin href="./assets/receive-store-DrPPaP0S.js">
267
267
  <link rel="modulepreload" crossorigin href="./assets/timeline-diff-store-cCBpDgND.js">
268
- <link rel="stylesheet" crossorigin href="./assets/globals-Bq7QmnDv.css">
268
+ <link rel="stylesheet" crossorigin href="./assets/globals-Ba8eSnNC.css">
269
269
  <link rel="stylesheet" crossorigin href="./assets/DocumentContext-B0sQn39F.css">
270
270
  <link rel="stylesheet" crossorigin href="./assets/index-CDpJ2gXn.css">
271
271
  </head>
@@ -32,11 +32,11 @@
32
32
  script above.
33
33
  -->
34
34
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
35
- <script type="module" crossorigin src="./assets/uninstall-DTD665q0.js"></script>
35
+ <script type="module" crossorigin src="./assets/uninstall-e3XxU518.js"></script>
36
36
  <link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
37
37
  <link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
38
38
  <link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
39
- <link rel="modulepreload" crossorigin href="./assets/globals-B8Za6o5Q.js">
39
+ <link rel="modulepreload" crossorigin href="./assets/globals-BSqcs0wt.js">
40
40
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Chd9yIcd.js">
41
41
  <link rel="modulepreload" crossorigin href="./assets/trace-api-DH580DYm.js">
42
42
  <link rel="modulepreload" crossorigin href="./assets/html-void-elements-Bkr32DGT.js">
@@ -44,7 +44,7 @@
44
44
  <link rel="modulepreload" crossorigin href="./assets/lib-BHGXbMkc.js">
45
45
  <link rel="modulepreload" crossorigin href="./assets/markdownit-CIgVFnWs.js">
46
46
  <link rel="modulepreload" crossorigin href="./assets/w3c-keyname-hgmz1BF7.js">
47
- <link rel="modulepreload" crossorigin href="./assets/dist-B6uhnkqb2.js">
47
+ <link rel="modulepreload" crossorigin href="./assets/dist-CHVHOG7X2.js">
48
48
  <link rel="modulepreload" crossorigin href="./assets/dist-DoS8xGN6.js">
49
49
  <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BUgB2tll.js">
50
50
  <link rel="modulepreload" crossorigin href="./assets/dist-Nvb76hAm.js">
@@ -69,8 +69,8 @@
69
69
  <link rel="modulepreload" crossorigin href="./assets/input-VnbFvuKd.js">
70
70
  <link rel="modulepreload" crossorigin href="./assets/textarea-D59GB_Zy.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/messages-CS-CWF8r.js">
72
- <link rel="modulepreload" crossorigin href="./assets/i18n-Bm86sjGW.js">
73
- <link rel="stylesheet" crossorigin href="./assets/globals-Bq7QmnDv.css">
72
+ <link rel="modulepreload" crossorigin href="./assets/i18n-lVHP3BYW.js">
73
+ <link rel="stylesheet" crossorigin href="./assets/globals-Ba8eSnNC.css">
74
74
  </head>
75
75
 
76
76
  <body class="antialiased">
@@ -1,2 +1,2 @@
1
- import{t as e}from"./launch-json-removal-Dl7uCpuY.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`||o.kind===`removed-file`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
2
- //# sourceMappingURL=repair-launch-json-Dj813bOM.mjs.map
1
+ import{t as e}from"./launch-json-removal-BVPFVWm2.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`||o.kind===`removed-file`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
2
+ //# sourceMappingURL=repair-launch-json-DXPSD0ub.mjs.map
@@ -1,2 +1,2 @@
1
- import{d as e,v as t}from"./init-D5NDes00.mjs";import{i as n,o as r,p as i}from"./write-project-skill-CyyI2a52.mjs";import{t as a}from"./mcp-migrate-event-BsswfOLm.mjs";import{homedir as o}from"node:os";function s(e){let t=e.logger??u,i=e.home??o(),a=[];if(e.reclaimDisableEnv===`1`)return t({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of n){let n=r[o],s=c(()=>n.configPath(``,i));if(s!==null&&a.push(l({scope:`user`,editorId:o,target:n,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:t})),n.projectConfigPath){let r=n.projectConfigPath,i=c(()=>r(e.projectDir));i!==null&&a.push(l({scope:`project`,editorId:o,target:n,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:t}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function c(e){try{return e()}catch{return null}}function l(n){let r={scope:n.scope,editorId:n.editorId,configPath:n.configPath},o=e(n.target,n.cwd,n.home,n.configPathOverride);if(o===null)return{...r,outcome:`no-entry`};if(i(o))return{...r,outcome:`canonical`};n.logger(a({scope:n.scope,surface:`cli-repair`,editorId:n.editorId,configPath:n.configPath,priorEntry:o}));let s=t(n.target,n.cwd,{mode:`published`,skipAvailabilityCheck:!0},n.home,n.configPathOverride);if(s.action===`failed`){let e=s.error??`unknown write failure`;return n.logger({event:`mcp-config-repair-write-failed`,scope:n.scope,editorId:n.editorId,configPath:n.configPath,error:e}),{...r,outcome:`write-failed`,error:e}}return s.action===`declined`?(n.logger({event:`mcp-config-repair-declined`,scope:n.scope,editorId:n.editorId,configPath:n.configPath,reason:s.declineReason}),{...r,outcome:`declined`}):{...r,outcome:`repaired`}}function u(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{s as repairMcpConfigs};
2
- //# sourceMappingURL=repair-mcp-configs-CL14xUMJ.mjs.map
1
+ import{d as e,v as t}from"./init-DGihqAzs.mjs";import{i as n,o as r,p as i}from"./write-project-skill-DHsuRyv9.mjs";import{t as a}from"./mcp-migrate-event-BsswfOLm.mjs";import{homedir as o}from"node:os";function s(e){let t=e.logger??u,i=e.home??o(),a=[];if(e.reclaimDisableEnv===`1`)return t({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of n){let n=r[o],s=c(()=>n.configPath(``,i));if(s!==null&&a.push(l({scope:`user`,editorId:o,target:n,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:t})),n.projectConfigPath){let r=n.projectConfigPath,i=c(()=>r(e.projectDir));i!==null&&a.push(l({scope:`project`,editorId:o,target:n,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:t}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function c(e){try{return e()}catch{return null}}function l(n){let r={scope:n.scope,editorId:n.editorId,configPath:n.configPath},o=e(n.target,n.cwd,n.home,n.configPathOverride);if(o===null)return{...r,outcome:`no-entry`};if(i(o))return{...r,outcome:`canonical`};n.logger(a({scope:n.scope,surface:`cli-repair`,editorId:n.editorId,configPath:n.configPath,priorEntry:o}));let s=t(n.target,n.cwd,{mode:`published`,skipAvailabilityCheck:!0},n.home,n.configPathOverride);if(s.action===`failed`){let e=s.error??`unknown write failure`;return n.logger({event:`mcp-config-repair-write-failed`,scope:n.scope,editorId:n.editorId,configPath:n.configPath,error:e}),{...r,outcome:`write-failed`,error:e}}return s.action===`declined`?(n.logger({event:`mcp-config-repair-declined`,scope:n.scope,editorId:n.editorId,configPath:n.configPath,reason:s.declineReason}),{...r,outcome:`declined`}):{...r,outcome:`repaired`}}function u(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{s as repairMcpConfigs};
2
+ //# sourceMappingURL=repair-mcp-configs-Do4zIXkE.mjs.map
@@ -1,4 +1,4 @@
1
- import{R as e}from"./src-c73kUNxd.mjs";import{ar as t,br as n,dr as r,gr as i,lr as a,mr as o,or as s,ur as c,xr as l}from"./src-d4u8XMdW.mjs";import{t as u}from"./esm-DmX1RzAi.mjs";import{n as d,s as f,t as p}from"./colors-BsmVIwfM.mjs";import{o as m,s as h,t as g}from"./write-project-skill-CyyI2a52.mjs";import{n as _,r as v,t as y}from"./skill-teardown-mTNzEFkM.mjs";import{dirname as b,join as x,relative as S,resolve as C}from"node:path";import{existsSync as w,mkdirSync as T,readFileSync as E,readdirSync as D,rmSync as O,statSync as k,writeFileSync as A}from"node:fs";import{homedir as j}from"node:os";import{createInterface as M}from"node:readline/promises";const N={existsSync:e=>w(e),isDirectory:e=>{try{return k(e).isDirectory()}catch(e){if(e.code===`ENOENT`)return!1;throw e}},readdirSync:e=>D(e),readFileSync:e=>E(e),writeFileSync:(e,t)=>{A(e,t)},mkdirSync:(e,t)=>{T(e,t)},rmSync:(e,t)=>{O(e,t)}},P={resolveProjectBundledSkillDir:()=>i(`project`,{checkDesktop:!1}),resolveUserBundledSkillDir:e=>i(e,{checkDesktop:!1}),readBundledVersion:()=>s(),readRecordedVersion:e=>a(e,`cli-hosts`),writeRecordedVersion:(e,t)=>r(e,`cli-hosts`,t,`cli-start`),recordEvent:e=>o(e),readBundleDecision:(e,n)=>t(e,n),writeBundleDecision:(e,t,n)=>c(e,t,n),removeBundleFromDisk:(e,t)=>v(e,t)};function F(e){process.stderr.write(`${JSON.stringify(e)}\n`)}function I(e,t,n){n.rmSync(t,{recursive:!0,force:!0}),n.mkdirSync(b(t),{recursive:!0}),L(e,t,n)}function L(e,t,n){n.mkdirSync(t,{recursive:!0});for(let r of n.readdirSync(e)){let i=x(e,r),a=x(t,r);n.isDirectory(i)?L(i,a,n):n.writeFileSync(a,n.readFileSync(i))}}function R(e,t,n,r,i,a){let o=[],s=x(e,`.agents`,`skills`,t),c=!1;if(r.existsSync(s))o.push({kind:`central`,path:s,outcome:`skipped-present`});else try{I(n,s,r),c=!0,o.push({kind:`central`,path:s,outcome:`written`}),i({event:`user-skill-reclaim-central-written`,scope:`user`,path:s,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`central`,path:s,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-central-failed`,scope:`user`,path:s,error:t})}for(let c of h){let l=x(e,c.hostDir),u=x(l,`skills`,t);if(u===s){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-collapsed-with-central`});continue}if(!r.existsSync(l)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-host-absent`});continue}if(r.existsSync(u)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-present`});continue}try{I(n,u,r),o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`written`}),i({event:`user-skill-reclaim-host-written`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-host-failed`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,error:t})}}return{entries:o,centralWritten:c}}function z(e,t){if(!e)return!1;try{return t.existsSync(e)?t.readFileSync(e).toString(`utf8`).includes(`# ok-mcp-`):!1}catch{return!1}}function B(e,t,n,r){let i;try{i=t.resolveProjectBundledSkillDir()}catch(e){return r({event:`project-skill-reclaim-bundle-missing`,scope:`project`,error:e instanceof Error?e.message:String(e)}),{outcome:`skipped`,reason:`bundle-missing`}}let a=[];for(let t of h){let o=x(e,t.hostDir,`skills`,`open-knowledge`),s=x(o,`SKILL.md`);if(n.existsSync(s)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`present`});continue}let c=m[t.editorId]?.projectConfigPath?.(e);if(!z(c,n)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`no-token`}),r({event:`project-skill-reclaim-no-token`,scope:`project`,editorId:t.editorId,path:o});continue}try{g(o,e),I(i,o,n),a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`created`}),r({event:`project-skill-reclaim-created`,scope:`project`,editorId:t.editorId,path:o})}catch(e){let n=e instanceof Error?e.message:String(e);a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`failed`,error:n}),r({event:`project-skill-reclaim-failed`,scope:`project`,editorId:t.editorId,path:o,error:n})}}return{outcome:`done`,entries:a}}async function V(t,r,i,a){let o=e=>{r.recordEvent(e).catch(()=>{})},s=()=>new Date().toISOString(),c;try{c=await r.readBundledVersion()}catch(e){let t=e instanceof Error?e.message:String(e);return a({event:`user-skill-reclaim-version-read-failed`,scope:`user`,error:t}),o({ts:s(),surface:`cli-start`,target:`cli-hosts`,bundle:`discovery`,outcome:`failed`,reason:`version-read-failed:${t}`}),{outcome:`skipped`,reason:`version-read-failed`}}let u;try{u=await r.readRecordedVersion(t)}catch(e){a({event:`user-skill-reclaim-version-read-error`,scope:`user`,error:e instanceof Error?e.message:String(e)}),u=null}let d=[],f=null;for(let e of l)try{d.push({id:e,sourceDir:r.resolveUserBundledSkillDir(e)})}catch(e){f=e instanceof Error?e.message:String(e)}if(d.length===0)return a({event:`user-skill-reclaim-bundle-missing`,scope:`user`,error:f??`no user-global bundles`}),o({ts:s(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,reason:`bundle-missing:${f}`}),{outcome:`skipped`,reason:`bundle-missing`};let p=[];for(let o of d){let s=n[o.id],c=i.existsSync(x(t,`.agents`,`skills`,s)),l=await r.readBundleDecision(t,s).catch(()=>null);if(!e(l,{installedOnDisk:c})){if(c)try{r.removeBundleFromDisk(t,o.id),a({event:`user-skill-reclaim-bundle-declined-removed`,scope:`user`,bundle:o.id})}catch(e){a({event:`user-skill-reclaim-bundle-remove-failed`,scope:`user`,bundle:o.id,error:e instanceof Error?e.message:String(e)})}continue}if(l===null&&c)try{await r.writeBundleDecision(t,s,!0)}catch(e){a({event:`user-skill-reclaim-grandfather-write-failed`,scope:`user`,bundle:o.id,error:e instanceof Error?e.message:String(e)})}p.push(o)}if(p.length===0)return{outcome:`skipped`,reason:`all-bundles-declined`};let m=p.every(e=>i.existsSync(x(t,`.agents`,`skills`,n[e.id])));if(u!==null&&u===c&&m)return a({event:`user-skill-reclaim-skipped-version-current`,scope:`user`,version:c}),{outcome:`skipped`,reason:`version-current`};let h=[],g=d.length===l.length,_=[];for(let{id:e,sourceDir:r}of p){let o=R(t,n[e],r,i,a,c);h.push(...o.entries),_.push({id:e,centralWritten:o.centralWritten})}let v=h.some(e=>e.kind===`central`&&e.outcome===`failed`);if(g&&!v){let e=null;try{await r.writeRecordedVersion(t,c),a({event:`user-skill-reclaim-version-recorded`,scope:`user`,version:c})}catch(t){e=t instanceof Error?t.message:String(t),a({event:`user-skill-reclaim-version-record-failed`,scope:`user`,version:c,error:e})}for(let{id:t,centralWritten:n}of _)o({ts:s(),surface:`cli-start`,target:`cli-hosts`,bundle:t,outcome:e===null?n?`installed`:`skip-current`:`failed`,version:c,...e===null?{}:{reason:`state-write-failed:${e}`}})}else{let e=h.some(e=>e.kind===`host`&&e.outcome===`failed`);o({ts:s(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,version:c,reason:g?e?`all-writes-failed`:`central-write-failed`:`bundle-unresolved`})}return{outcome:`done`,version:c,entries:h}}async function H(e){let t=e.logger??F,n=e.fs??N,r=e.home??j(),i={...P,...e.deps};if(e.reclaimDisableEnv===`1`)return t({event:`skill-repair-skipped`,reason:`reclaim-disabled`}),{status:`skipped`,reason:`reclaim-disabled`};let a=B(e.projectDir,i,n,t),o=await V(r,i,n,t),s=_(r),c=[],l=!1,u=!1;if(s.skillDirs.length>0||s.emptyDirs.length>0)if(e.confirmLegacyCleanup&&await e.confirmLegacyCleanup(s)){try{c=y(r,s)}catch(e){u=!0,t({event:`legacy-fanout-cleanup-refused`,scope:`user`,error:e instanceof Error?e.message:String(e)})}for(let e of c)t({event:`legacy-fanout-path-removed`,scope:`user`,path:e})}else l=!0,t({event:`legacy-fanout-cleanup-declined`,scope:`user`});return{status:`done`,project:a,user:o,legacySwept:c,legacyCleanupDeclined:l,legacyCleanupFailed:u}}function U(e){return e.status===`skipped`?e.reason===`reclaim-disabled`?0:1:e.project.outcome===`skipped`||e.user.outcome===`skipped`&&e.user.reason!==`version-current`&&e.user.reason!==`all-bundles-declined`||e.project.entries.some(e=>e.outcome===`failed`)||e.user.outcome===`done`&&e.user.entries.some(e=>e.outcome===`failed`)?1:0}function W(e){if(e.status===`skipped`)return`Skipped: ${e.reason}`;let t=[`Skill reclaim complete.`];if(e.project.outcome===`done`){let n=e.project.entries.filter(e=>e.outcome===`present`).length,r=e.project.entries.filter(e=>e.outcome===`created`).length,i=e.project.entries.filter(e=>e.outcome===`no-token`).length,a=e.project.entries.filter(e=>e.outcome===`failed`).length;t.push(` Project: ${n} present, ${r} created, ${i} no-token, ${a} failed.`)}else t.push(` Project: skipped (${e.project.reason}).`);if(e.user.outcome===`done`){let n=e.user.entries.filter(e=>e.outcome===`written`).length,r=e.user.entries.filter(e=>e.outcome===`skipped-present`).length,i=e.user.entries.filter(e=>e.outcome===`skipped-host-absent`||e.outcome===`skipped-collapsed-with-central`).length,a=e.user.entries.filter(e=>e.outcome===`failed`).length;t.push(` User (${e.user.version}): ${n} written, ${r} present, ${i} skipped, ${a} failed.`)}else t.push(` User: skipped (${e.user.reason}).`);return e.legacySwept.length>0?t.push(` Cleanup: removed ${e.legacySwept.length} path(s) from a pre-0.42 install.`):e.legacyCleanupFailed?t.push(` Cleanup: failed — see logs; pre-0.42 directories left in place.`):e.legacyCleanupDeclined&&t.push(` Cleanup: declined — pre-0.42 directories left in place.`),t.join(`
1
+ import{R as e}from"./src-DMpGVIiQ.mjs";import{Dr as t,Er as n,Sr as r,_r as i,br as a,dr as o,fr as s,gr as c,hr as l}from"./src-CwuSSZyu.mjs";import{t as u}from"./esm-DmX1RzAi.mjs";import{n as d,s as f,t as p}from"./colors-BsmVIwfM.mjs";import{o as m,s as h,t as g}from"./write-project-skill-DHsuRyv9.mjs";import{n as _,r as v,t as y}from"./skill-teardown-BppNXkpR.mjs";import{dirname as b,join as x,relative as S,resolve as C}from"node:path";import{existsSync as w,mkdirSync as T,readFileSync as E,readdirSync as D,rmSync as O,statSync as k,writeFileSync as A}from"node:fs";import{homedir as j}from"node:os";import{createInterface as M}from"node:readline/promises";const N={existsSync:e=>w(e),isDirectory:e=>{try{return k(e).isDirectory()}catch(e){if(e.code===`ENOENT`)return!1;throw e}},readdirSync:e=>D(e),readFileSync:e=>E(e),writeFileSync:(e,t)=>{A(e,t)},mkdirSync:(e,t)=>{T(e,t)},rmSync:(e,t)=>{O(e,t)}},P={resolveProjectBundledSkillDir:()=>r(`project`,{checkDesktop:!1}),resolveUserBundledSkillDir:e=>r(e,{checkDesktop:!1}),readBundledVersion:()=>s(),readRecordedVersion:e=>l(e,`cli-hosts`),writeRecordedVersion:(e,t)=>i(e,`cli-hosts`,t,`cli-start`),recordEvent:e=>a(e),readBundleDecision:(e,t)=>o(e,t),writeBundleDecision:(e,t,n)=>c(e,t,n),removeBundleFromDisk:(e,t)=>v(e,t)};function F(e){process.stderr.write(`${JSON.stringify(e)}\n`)}function I(e,t,n){n.rmSync(t,{recursive:!0,force:!0}),n.mkdirSync(b(t),{recursive:!0}),L(e,t,n)}function L(e,t,n){n.mkdirSync(t,{recursive:!0});for(let r of n.readdirSync(e)){let i=x(e,r),a=x(t,r);n.isDirectory(i)?L(i,a,n):n.writeFileSync(a,n.readFileSync(i))}}function R(e,t,n,r,i,a){let o=[],s=x(e,`.agents`,`skills`,t),c=!1;if(r.existsSync(s))o.push({kind:`central`,path:s,outcome:`skipped-present`});else try{I(n,s,r),c=!0,o.push({kind:`central`,path:s,outcome:`written`}),i({event:`user-skill-reclaim-central-written`,scope:`user`,path:s,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`central`,path:s,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-central-failed`,scope:`user`,path:s,error:t})}for(let c of h){let l=x(e,c.hostDir),u=x(l,`skills`,t);if(u===s){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-collapsed-with-central`});continue}if(!r.existsSync(l)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-host-absent`});continue}if(r.existsSync(u)){o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`skipped-present`});continue}try{I(n,u,r),o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`written`}),i({event:`user-skill-reclaim-host-written`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,preexisting:!1,version:a})}catch(e){let t=e instanceof Error?e.message:String(e);o.push({kind:`host`,editorId:c.editorId,hostDir:c.hostDir,path:u,outcome:`failed`,error:t}),i({event:`user-skill-reclaim-host-failed`,scope:`user`,editorId:c.editorId,hostDir:c.hostDir,path:u,error:t})}}return{entries:o,centralWritten:c}}function z(e,t){if(!e)return!1;try{return t.existsSync(e)?t.readFileSync(e).toString(`utf8`).includes(`# ok-mcp-`):!1}catch{return!1}}function B(e,t,n,r){let i;try{i=t.resolveProjectBundledSkillDir()}catch(e){return r({event:`project-skill-reclaim-bundle-missing`,scope:`project`,error:e instanceof Error?e.message:String(e)}),{outcome:`skipped`,reason:`bundle-missing`}}let a=[];for(let t of h){let o=x(e,t.hostDir,`skills`,`open-knowledge`),s=x(o,`SKILL.md`);if(n.existsSync(s)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`present`});continue}let c=m[t.editorId]?.projectConfigPath?.(e);if(!z(c,n)){a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`no-token`}),r({event:`project-skill-reclaim-no-token`,scope:`project`,editorId:t.editorId,path:o});continue}try{g(o,e),I(i,o,n),a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`created`}),r({event:`project-skill-reclaim-created`,scope:`project`,editorId:t.editorId,path:o})}catch(e){let n=e instanceof Error?e.message:String(e);a.push({editorId:t.editorId,hostDir:t.hostDir,path:o,outcome:`failed`,error:n}),r({event:`project-skill-reclaim-failed`,scope:`project`,editorId:t.editorId,path:o,error:n})}}return{outcome:`done`,entries:a}}async function V(r,i,a,o){let s=e=>{i.recordEvent(e).catch(()=>{})},c=()=>new Date().toISOString(),l;try{l=await i.readBundledVersion()}catch(e){let t=e instanceof Error?e.message:String(e);return o({event:`user-skill-reclaim-version-read-failed`,scope:`user`,error:t}),s({ts:c(),surface:`cli-start`,target:`cli-hosts`,bundle:`discovery`,outcome:`failed`,reason:`version-read-failed:${t}`}),{outcome:`skipped`,reason:`version-read-failed`}}let u;try{u=await i.readRecordedVersion(r)}catch(e){o({event:`user-skill-reclaim-version-read-error`,scope:`user`,error:e instanceof Error?e.message:String(e)}),u=null}let d=[],f=null;for(let e of t)try{d.push({id:e,sourceDir:i.resolveUserBundledSkillDir(e)})}catch(e){f=e instanceof Error?e.message:String(e)}if(d.length===0)return o({event:`user-skill-reclaim-bundle-missing`,scope:`user`,error:f??`no user-global bundles`}),s({ts:c(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,reason:`bundle-missing:${f}`}),{outcome:`skipped`,reason:`bundle-missing`};let p=[];for(let t of d){let s=n[t.id],c=a.existsSync(x(r,`.agents`,`skills`,s)),l=await i.readBundleDecision(r,s).catch(()=>null);if(!e(l,{installedOnDisk:c})){if(c)try{i.removeBundleFromDisk(r,t.id),o({event:`user-skill-reclaim-bundle-declined-removed`,scope:`user`,bundle:t.id})}catch(e){o({event:`user-skill-reclaim-bundle-remove-failed`,scope:`user`,bundle:t.id,error:e instanceof Error?e.message:String(e)})}continue}if(l===null&&c)try{await i.writeBundleDecision(r,s,!0)}catch(e){o({event:`user-skill-reclaim-grandfather-write-failed`,scope:`user`,bundle:t.id,error:e instanceof Error?e.message:String(e)})}p.push(t)}if(p.length===0)return{outcome:`skipped`,reason:`all-bundles-declined`};let m=p.every(e=>a.existsSync(x(r,`.agents`,`skills`,n[e.id])));if(u!==null&&u===l&&m)return o({event:`user-skill-reclaim-skipped-version-current`,scope:`user`,version:l}),{outcome:`skipped`,reason:`version-current`};let h=[],g=d.length===t.length,_=[];for(let{id:e,sourceDir:t}of p){let i=R(r,n[e],t,a,o,l);h.push(...i.entries),_.push({id:e,centralWritten:i.centralWritten})}let v=h.some(e=>e.kind===`central`&&e.outcome===`failed`);if(g&&!v){let e=null;try{await i.writeRecordedVersion(r,l),o({event:`user-skill-reclaim-version-recorded`,scope:`user`,version:l})}catch(t){e=t instanceof Error?t.message:String(t),o({event:`user-skill-reclaim-version-record-failed`,scope:`user`,version:l,error:e})}for(let{id:t,centralWritten:n}of _)s({ts:c(),surface:`cli-start`,target:`cli-hosts`,bundle:t,outcome:e===null?n?`installed`:`skip-current`:`failed`,version:l,...e===null?{}:{reason:`state-write-failed:${e}`}})}else{let e=h.some(e=>e.kind===`host`&&e.outcome===`failed`);s({ts:c(),surface:`cli-start`,target:`cli-hosts`,outcome:`failed`,version:l,reason:g?e?`all-writes-failed`:`central-write-failed`:`bundle-unresolved`})}return{outcome:`done`,version:l,entries:h}}async function H(e){let t=e.logger??F,n=e.fs??N,r=e.home??j(),i={...P,...e.deps};if(e.reclaimDisableEnv===`1`)return t({event:`skill-repair-skipped`,reason:`reclaim-disabled`}),{status:`skipped`,reason:`reclaim-disabled`};let a=B(e.projectDir,i,n,t),o=await V(r,i,n,t),s=_(r),c=[],l=!1,u=!1;if(s.skillDirs.length>0||s.emptyDirs.length>0)if(e.confirmLegacyCleanup&&await e.confirmLegacyCleanup(s)){try{c=y(r,s)}catch(e){u=!0,t({event:`legacy-fanout-cleanup-refused`,scope:`user`,error:e instanceof Error?e.message:String(e)})}for(let e of c)t({event:`legacy-fanout-path-removed`,scope:`user`,path:e})}else l=!0,t({event:`legacy-fanout-cleanup-declined`,scope:`user`});return{status:`done`,project:a,user:o,legacySwept:c,legacyCleanupDeclined:l,legacyCleanupFailed:u}}function U(e){return e.status===`skipped`?e.reason===`reclaim-disabled`?0:1:e.project.outcome===`skipped`||e.user.outcome===`skipped`&&e.user.reason!==`version-current`&&e.user.reason!==`all-bundles-declined`||e.project.entries.some(e=>e.outcome===`failed`)||e.user.outcome===`done`&&e.user.entries.some(e=>e.outcome===`failed`)?1:0}function W(e){if(e.status===`skipped`)return`Skipped: ${e.reason}`;let t=[`Skill reclaim complete.`];if(e.project.outcome===`done`){let n=e.project.entries.filter(e=>e.outcome===`present`).length,r=e.project.entries.filter(e=>e.outcome===`created`).length,i=e.project.entries.filter(e=>e.outcome===`no-token`).length,a=e.project.entries.filter(e=>e.outcome===`failed`).length;t.push(` Project: ${n} present, ${r} created, ${i} no-token, ${a} failed.`)}else t.push(` Project: skipped (${e.project.reason}).`);if(e.user.outcome===`done`){let n=e.user.entries.filter(e=>e.outcome===`written`).length,r=e.user.entries.filter(e=>e.outcome===`skipped-present`).length,i=e.user.entries.filter(e=>e.outcome===`skipped-host-absent`||e.outcome===`skipped-collapsed-with-central`).length,a=e.user.entries.filter(e=>e.outcome===`failed`).length;t.push(` User (${e.user.version}): ${n} written, ${r} present, ${i} skipped, ${a} failed.`)}else t.push(` User: skipped (${e.user.reason}).`);return e.legacySwept.length>0?t.push(` Cleanup: removed ${e.legacySwept.length} path(s) from a pre-0.42 install.`):e.legacyCleanupFailed?t.push(` Cleanup: failed — see logs; pre-0.42 directories left in place.`):e.legacyCleanupDeclined&&t.push(` Cleanup: declined — pre-0.42 directories left in place.`),t.join(`
2
2
  `)}function G(){return new u(`repair-skills`).description("Refresh bundled SKILL.md files for installed AI editors (project-local + user-global). Runs automatically during `ok start`; this command forces an explicit sweep.").option(`-y, --yes`,`Skip the confirmation prompt for removing directories left by a pre-0.42 install.`).action(async e=>{let t=await H({projectDir:C(process.cwd()),reclaimDisableEnv:process.env.OK_RECLAIM_DISABLE??null,confirmLegacyCleanup:t=>K(t,{yes:e.yes===!0})});process.stdout.write(`${W(t)}\n`),process.exitCode=U(t)})}async function K(e,t){let n=j(),r=e=>`~/${S(n,e)}`,i=t.input??process.stdin,a=[``,p(`A previous version of OpenKnowledge installed its skill into agent tools you may never have used.`),d(`(Versions before 0.42 wrote to every host a third-party installer knew about — see issue #820.)`)];if(e.skillDirs.length>0&&a.push(``,`${p(`Remove OpenKnowledge skills:`)} ${e.skillDirs.length}`,...e.skillDirs.map(e=>` ${r(e)}`)),e.emptyDirs.length>0){let t=e.skillDirs.length>0?`Then remove these, which hold nothing else once the above are gone:`:`Remove these empty directories, left behind by that install:`;a.push(``,`${p(t)} ${e.emptyDirs.length}`,...e.emptyDirs.map(e=>` ${r(e)}`))}if(a.push(``,d(`Nothing outside these paths is touched. A directory that still holds anything is kept.`)),process.stdout.write(`${a.join(`
3
3
  `)}\n`),t.yes)return!0;if(!i.isTTY)return process.stdout.write(`${f("Not a terminal — skipping cleanup. Re-run with `ok repair-skills --yes` to remove these.")}\n`),!1;let o=M({input:i,output:process.stdout});try{let e=(await o.question(`\n${p(`Remove them?`)} ${d(`[y/N] `)}`)).trim().toLowerCase();return e===`y`||e===`yes`}finally{o.close()}}export{G as n,H as t};
4
- //# sourceMappingURL=repair-skills-B_ZAQaXn.mjs.map
4
+ //# sourceMappingURL=repair-skills-BFfQjF9F.mjs.map
@@ -0,0 +1 @@
1
+ import{t as e}from"./repair-skills-BFfQjF9F.mjs";export{e as repairSkills};
@@ -0,0 +1 @@
1
+ import{a as e,o as t,r as n}from"./server-lock-BV0Ktccm.mjs";export{n as markServerLockDraining,e as releaseServerLock,t as updateServerLockPort};
@@ -1,2 +1,2 @@
1
- import"./src-c73kUNxd.mjs";import{r as e}from"./logger-CnfEoHs1.mjs";import{dirname as t,join as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{closeSync as a,existsSync as o,mkdirSync as s,openSync as c,readFileSync as l,unlinkSync as u,writeFileSync as d,writeSync as f}from"node:fs";import{homedir as p,hostname as m}from"node:os";import{randomUUID as h}from"node:crypto";function g(e){try{return process.kill(e,0),!0}catch(e){return!!(e&&typeof e==`object`&&`code`in e&&e.code===`EPERM`)}}function _(e){return!(typeof e!=`number`||!Number.isInteger(e)||e<2||e>2147483647)}function v(e){return new URL(e.url??``,`http://localhost`).searchParams}function y(e){let t=e?.code;return typeof t==`string`?t:void 0}const b=/^[A-Za-z0-9-]{8,64}$/;let x=null;function S(e){return n(e??p(),`.ok`,`machine-id`)}function C(n){if(n===void 0&&x!==null)return x;let r=S(n),i=null;try{let e=l(r,`utf-8`).trim();b.test(e)&&(i=e)}catch{}if(i===null){i=h();try{s(t(r),{recursive:!0}),d(r,`${i}\n`,{encoding:`utf-8`,mode:384})}catch(t){e(`machine-id`).warn({path:r,err:t},`Failed to persist ${r} — using an ephemeral per-process id; lock ownership checks will fail closed (collision) instead of recognizing this machine: ${t instanceof Error?t.message:String(t)}`)}}return n===void 0&&(x=i),i}function w(){try{let e=r(t(i(import.meta.url)),`..`,`package.json`),n=JSON.parse(l(e,`utf-8`));if(typeof n.version==`string`&&n.version.length>0)return n.version}catch{}return`0.0.0-unknown`}const T=w(),E=1,D=e(`process-lock`);var O=class extends Error{existing;lockPath;lockName;constructor(e,t,n){super(`OpenKnowledge ${n} already running at ${e.url??`port ${e.port}`} (pid ${e.pid}, started ${e.startedAt}). Stop it first or use a different directory. Lock: ${t}`),this.name=`ProcessLockCollisionError`,this.existing=e,this.lockPath=t,this.lockName=n}};function k(e,t){return r(e,`${t}.lock`)}const A=new Map;function j(e){A.set(e,(A.get(e)??0)+1)}function M(e){let t=A.get(e);return t===void 0||t<=1?(A.delete(e),!0):(A.set(e,t-1),!1)}function N(e){return typeof e.machineId==`string`?e.machineId===C():e.hostname===m()}const P=new Set;let F=!1;function I(e){P.add(e),!F&&(F=!0,process.on(`exit`,()=>{for(let e of P)try{let t=JSON.parse(l(e,`utf-8`));if(t?.pid!==process.pid||typeof t.machineId==`string`&&t.machineId!==C()||t.machineId===void 0&&typeof t.hostname==`string`&&t.hostname!==m())continue;u(e)}catch{}}))}function L(e,t){try{let n=JSON.parse(l(e,`utf-8`));return n&&typeof n==`object`&&_(n.pid)?n:(D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null)}catch{return D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null}}function R(e){let{lockName:t,lockDir:n,metadata:r}=e,i=`[${t}-lock]`;s(n,{recursive:!0});let l=k(n,t),p={pid:process.pid,hostname:m(),port:r.port,...r.url!==void 0&&{url:r.url},startedAt:new Date().toISOString(),worktreeRoot:r.worktreeRoot,machineId:C(),...r.kind!==void 0&&{kind:r.kind},...r.parentPid!==void 0&&{parentPid:r.parentPid},...r.capabilities!==void 0&&{capabilities:r.capabilities},protocolVersion:r.protocolVersion??1,runtimeVersion:r.runtimeVersion??T},h=JSON.stringify(p,null,2);for(let e=0;e<3;e++){if(!o(l))try{let e=c(l,`wx`,384);try{f(e,h)}finally{a(e)}return j(l),I(l),z({lockName:t,lockDir:n,lockPath:l})}catch(e){if(y(e)!==`EEXIST`)throw e}let e=L(l,i);if(e){if(N(e)&&e.pid===process.pid)return d(l,h,{encoding:`utf-8`,mode:384}),j(l),I(l),z({lockName:t,lockDir:n,lockPath:l});if(g(e.pid))throw new O(e,l,t);D.warn({pid:e.pid,host:e.hostname},`${i} Stale lock detected (pid=${e.pid}, host=${e.hostname}) — replacing`)}try{u(l)}catch{}}throw Error(`${i} Failed to acquire ${l} after 3 attempts (concurrent acquire contention).`)}function z(e){let{lockName:t,lockDir:n,lockPath:r}=e;return{lockPath:r,release:()=>q({lockName:t,lockDir:n}),updatePort:(e,r)=>H({lockName:t,lockDir:n,port:e,url:r})}}function B(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`http:`&&t.protocol!==`https:`)return null;let n=t.hostname;return n===`localhost`||n===`[::1]`||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n)?t.origin:null}function V(e,t){if(typeof e.url==`string`&&e.url.length>0){let t=B(e.url);if(t!==null)return t}if(e.port>0){let n=t?.fallbackHost??`localhost`;return`http://${n===`0.0.0.0`||n===`::`?`localhost`:n.includes(`:`)&&!n.startsWith(`[`)?`[${n}]`:n}:${e.port}`}return null}function H(e){let{lockName:t,lockDir:n,port:r,url:i}=e,a=`[${t}-lock]`,s=k(n,t);if(!o(s)){D.warn({lockPath:s},`${a} Lock file missing at ${s} during port update — skipping`);return}let c;try{let e=JSON.parse(l(s,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:s},`${a} Corrupt lock at ${s} during port update — skipping`);return}c=e}catch{D.warn({lockPath:s},`${a} Unreadable lock at ${s} during port update — skipping`);return}if(c.pid===process.pid&&N(c)){c.port=r,i===void 0?delete c.url:c.url=i;try{d(s,JSON.stringify(c,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:s,err:e},`${a} Failed to update port in ${s}: ${e instanceof Error?e.message:String(e)}`)}}}function U(e){let{lockName:t,lockDir:n}=e,r=`[${t}-lock]`,i=k(n,t);if((A.get(i)??0)>1)return;let a;try{let e=JSON.parse(l(i,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:i},`${r} Corrupt lock at ${i} during draining mark — skipping`);return}a=e}catch(e){y(e)!==`ENOENT`&&D.warn({lockPath:i,err:e},`${r} Unreadable lock at ${i} during draining mark — skipping: ${e instanceof Error?e.message:String(e)}`);return}if(a.pid===process.pid&&N(a)&&a.draining!==!0){a.draining=!0;try{d(i,JSON.stringify(a,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:i,err:e},`${r} Failed to mark ${i} draining: ${e instanceof Error?e.message:String(e)}`)}}}function W(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return null;let i;try{let e=JSON.parse(l(r,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid))return null;i=e}catch{return null}if(!N(i))return null;if(!g(i.pid)){try{u(r)}catch{}return null}return i}function G(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return{status:`absent`};let i;try{i=JSON.parse(l(r,`utf-8`))}catch{return{status:`incompatible`,reason:`corrupt`,raw:void 0}}if(!i||typeof i!=`object`)return{status:`incompatible`,reason:`corrupt`,raw:i};let a=i;if(!_(a.pid)||typeof a.hostname!=`string`||typeof a.port!=`number`||typeof a.startedAt!=`string`||typeof a.worktreeRoot!=`string`)return{status:`incompatible`,reason:`corrupt`,raw:i};let s={pid:a.pid,hostname:a.hostname,port:a.port,url:typeof a.url==`string`?a.url:void 0,startedAt:a.startedAt,worktreeRoot:a.worktreeRoot,machineId:typeof a.machineId==`string`?a.machineId:void 0,draining:a.draining===!0?!0:void 0,capabilities:Array.isArray(a.capabilities)&&a.capabilities.every(e=>typeof e==`string`)?a.capabilities:void 0,protocolVersion:typeof a.protocolVersion==`number`?a.protocolVersion:void 0,runtimeVersion:typeof a.runtimeVersion==`string`?a.runtimeVersion:void 0};if(!N(s))return{status:`stale`,lock:s};if(!g(s.pid)){try{u(r)}catch{}return{status:`stale`,lock:s}}return s.protocolVersion===void 0||s.runtimeVersion===void 0?{status:`incompatible`,reason:`missing-fields`,raw:i}:{status:`live`,lock:s}}async function K(e){let{lockName:t,lockDir:n}=e,r=e.timeoutMs??1e4,i=e.pollIntervalMs??100,a=e.readLock??(()=>W({lockName:t,lockDir:n})),o=e.sleep??(e=>new Promise(t=>setTimeout(t,e))),s=a();if(s===null||s.draining!==!0)return`no-drain`;let c=Date.now()+r;for(;Date.now()<c;){await o(i);let e=a();if(e===null)return`released`;if(e.draining!==!0)return`no-drain`}return`timeout`}function q(e){let{lockName:t,lockDir:n,deferUnlinkToExit:r=!1}=e,i=`[${t}-lock]`,a=k(n,t);if(M(a)){if(r){U({lockName:t,lockDir:n});return}if(o(a))try{let e=JSON.parse(l(a,`utf-8`));if(!e||typeof e!=`object`||typeof e.pid!=`number`||e.pid!==process.pid||!N(e))return;u(a),P.delete(a)}catch(e){D.warn({lockPath:a,err:e},`${i} Failed to release ${a}: ${e instanceof Error?e.message:String(e)}`)}}}var J=class extends O{constructor(e,t){super(e,t,`server`),this.name=`ServerLockCollisionError`}};function Y(e,t){try{return R({lockName:`server`,lockDir:e,metadata:t}).lockPath}catch(e){throw e instanceof O&&e.lockName===`server`?new J(e.existing,e.lockPath):e}}function X(e,t,n){H({lockName:`server`,lockDir:e,port:t,url:n})}function Z(e){return W({lockName:`server`,lockDir:e})}function Q(e,t){q({lockName:`server`,lockDir:e,...t})}function $(e){U({lockName:`server`,lockDir:e})}function ee(e,t){return K({lockName:`server`,lockDir:e,...t})}export{_ as C,g as S,T as _,Q as a,y as b,O as c,k as d,U as f,H as g,q as h,Z as i,R as l,G as m,Y as n,X as o,W as p,$ as r,ee as s,J as t,V as u,E as v,v as x,C as y};
2
- //# sourceMappingURL=server-lock-DbS4Uxaj.mjs.map
1
+ import"./src-DMpGVIiQ.mjs";import{r as e}from"./logger-CnfEoHs1.mjs";import{dirname as t,join as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{closeSync as a,existsSync as o,mkdirSync as s,openSync as c,readFileSync as l,unlinkSync as u,writeFileSync as d,writeSync as f}from"node:fs";import{homedir as p,hostname as m}from"node:os";import{randomUUID as h}from"node:crypto";function g(e){try{return process.kill(e,0),!0}catch(e){return!!(e&&typeof e==`object`&&`code`in e&&e.code===`EPERM`)}}function _(e){return!(typeof e!=`number`||!Number.isInteger(e)||e<2||e>2147483647)}function v(e){return new URL(e.url??``,`http://localhost`).searchParams}function y(e){let t=e?.code;return typeof t==`string`?t:void 0}const b=/^[A-Za-z0-9-]{8,64}$/;let x=null;function S(e){return n(e??p(),`.ok`,`machine-id`)}function C(n){if(n===void 0&&x!==null)return x;let r=S(n),i=null;try{let e=l(r,`utf-8`).trim();b.test(e)&&(i=e)}catch{}if(i===null){i=h();try{s(t(r),{recursive:!0}),d(r,`${i}\n`,{encoding:`utf-8`,mode:384})}catch(t){e(`machine-id`).warn({path:r,err:t},`Failed to persist ${r} — using an ephemeral per-process id; lock ownership checks will fail closed (collision) instead of recognizing this machine: ${t instanceof Error?t.message:String(t)}`)}}return n===void 0&&(x=i),i}function w(){try{let e=r(t(i(import.meta.url)),`..`,`package.json`),n=JSON.parse(l(e,`utf-8`));if(typeof n.version==`string`&&n.version.length>0)return n.version}catch{}return`0.0.0-unknown`}const T=w(),E=1,D=e(`process-lock`);var O=class extends Error{existing;lockPath;lockName;constructor(e,t,n){super(`OpenKnowledge ${n} already running at ${e.url??`port ${e.port}`} (pid ${e.pid}, started ${e.startedAt}). Stop it first or use a different directory. Lock: ${t}`),this.name=`ProcessLockCollisionError`,this.existing=e,this.lockPath=t,this.lockName=n}};function k(e,t){return r(e,`${t}.lock`)}const A=new Map;function j(e){A.set(e,(A.get(e)??0)+1)}function M(e){let t=A.get(e);return t===void 0||t<=1?(A.delete(e),!0):(A.set(e,t-1),!1)}function N(e){return typeof e.machineId==`string`?e.machineId===C():e.hostname===m()}const P=new Set;let F=!1;function I(e){P.add(e),!F&&(F=!0,process.on(`exit`,()=>{for(let e of P)try{let t=JSON.parse(l(e,`utf-8`));if(t?.pid!==process.pid||typeof t.machineId==`string`&&t.machineId!==C()||t.machineId===void 0&&typeof t.hostname==`string`&&t.hostname!==m())continue;u(e)}catch{}}))}function L(e,t){try{let n=JSON.parse(l(e,`utf-8`));return n&&typeof n==`object`&&_(n.pid)?n:(D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null)}catch{return D.warn({lockPath:e},`${t} Corrupt lock file at ${e} — replacing`),null}}function R(e){let{lockName:t,lockDir:n,metadata:r}=e,i=`[${t}-lock]`;s(n,{recursive:!0});let l=k(n,t),p={pid:process.pid,hostname:m(),port:r.port,...r.url!==void 0&&{url:r.url},startedAt:new Date().toISOString(),worktreeRoot:r.worktreeRoot,machineId:C(),...r.kind!==void 0&&{kind:r.kind},...r.parentPid!==void 0&&{parentPid:r.parentPid},...r.capabilities!==void 0&&{capabilities:r.capabilities},protocolVersion:r.protocolVersion??1,runtimeVersion:r.runtimeVersion??T},h=JSON.stringify(p,null,2);for(let e=0;e<3;e++){if(!o(l))try{let e=c(l,`wx`,384);try{f(e,h)}finally{a(e)}return j(l),I(l),z({lockName:t,lockDir:n,lockPath:l})}catch(e){if(y(e)!==`EEXIST`)throw e}let e=L(l,i);if(e){if(N(e)&&e.pid===process.pid)return d(l,h,{encoding:`utf-8`,mode:384}),j(l),I(l),z({lockName:t,lockDir:n,lockPath:l});if(g(e.pid))throw new O(e,l,t);D.warn({pid:e.pid,host:e.hostname},`${i} Stale lock detected (pid=${e.pid}, host=${e.hostname}) — replacing`)}try{u(l)}catch{}}throw Error(`${i} Failed to acquire ${l} after 3 attempts (concurrent acquire contention).`)}function z(e){let{lockName:t,lockDir:n,lockPath:r}=e;return{lockPath:r,release:()=>q({lockName:t,lockDir:n}),updatePort:(e,r)=>H({lockName:t,lockDir:n,port:e,url:r})}}function B(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`http:`&&t.protocol!==`https:`)return null;let n=t.hostname;return n===`localhost`||n===`[::1]`||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n)?t.origin:null}function V(e,t){if(typeof e.url==`string`&&e.url.length>0){let t=B(e.url);if(t!==null)return t}if(e.port>0){let n=t?.fallbackHost??`localhost`;return`http://${n===`0.0.0.0`||n===`::`?`localhost`:n.includes(`:`)&&!n.startsWith(`[`)?`[${n}]`:n}:${e.port}`}return null}function H(e){let{lockName:t,lockDir:n,port:r,url:i}=e,a=`[${t}-lock]`,s=k(n,t);if(!o(s)){D.warn({lockPath:s},`${a} Lock file missing at ${s} during port update — skipping`);return}let c;try{let e=JSON.parse(l(s,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:s},`${a} Corrupt lock at ${s} during port update — skipping`);return}c=e}catch{D.warn({lockPath:s},`${a} Unreadable lock at ${s} during port update — skipping`);return}if(c.pid===process.pid&&N(c)){c.port=r,i===void 0?delete c.url:c.url=i;try{d(s,JSON.stringify(c,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:s,err:e},`${a} Failed to update port in ${s}: ${e instanceof Error?e.message:String(e)}`)}}}function U(e){let{lockName:t,lockDir:n}=e,r=`[${t}-lock]`,i=k(n,t);if((A.get(i)??0)>1)return;let a;try{let e=JSON.parse(l(i,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid)){D.warn({lockPath:i},`${r} Corrupt lock at ${i} during draining mark — skipping`);return}a=e}catch(e){y(e)!==`ENOENT`&&D.warn({lockPath:i,err:e},`${r} Unreadable lock at ${i} during draining mark — skipping: ${e instanceof Error?e.message:String(e)}`);return}if(a.pid===process.pid&&N(a)&&a.draining!==!0){a.draining=!0;try{d(i,JSON.stringify(a,null,2),{encoding:`utf-8`,mode:384})}catch(e){D.warn({lockPath:i,err:e},`${r} Failed to mark ${i} draining: ${e instanceof Error?e.message:String(e)}`)}}}function W(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return null;let i;try{let e=JSON.parse(l(r,`utf-8`));if(!e||typeof e!=`object`||!_(e.pid))return null;i=e}catch{return null}if(!N(i))return null;if(!g(i.pid)){try{u(r)}catch{}return null}return i}function G(e){let{lockName:t,lockDir:n}=e,r=k(n,t);if(!o(r))return{status:`absent`};let i;try{i=JSON.parse(l(r,`utf-8`))}catch{return{status:`incompatible`,reason:`corrupt`,raw:void 0}}if(!i||typeof i!=`object`)return{status:`incompatible`,reason:`corrupt`,raw:i};let a=i;if(!_(a.pid)||typeof a.hostname!=`string`||typeof a.port!=`number`||typeof a.startedAt!=`string`||typeof a.worktreeRoot!=`string`)return{status:`incompatible`,reason:`corrupt`,raw:i};let s={pid:a.pid,hostname:a.hostname,port:a.port,url:typeof a.url==`string`?a.url:void 0,startedAt:a.startedAt,worktreeRoot:a.worktreeRoot,machineId:typeof a.machineId==`string`?a.machineId:void 0,draining:a.draining===!0?!0:void 0,capabilities:Array.isArray(a.capabilities)&&a.capabilities.every(e=>typeof e==`string`)?a.capabilities:void 0,protocolVersion:typeof a.protocolVersion==`number`?a.protocolVersion:void 0,runtimeVersion:typeof a.runtimeVersion==`string`?a.runtimeVersion:void 0};if(!N(s))return{status:`stale`,lock:s};if(!g(s.pid)){try{u(r)}catch{}return{status:`stale`,lock:s}}return s.protocolVersion===void 0||s.runtimeVersion===void 0?{status:`incompatible`,reason:`missing-fields`,raw:i}:{status:`live`,lock:s}}async function K(e){let{lockName:t,lockDir:n}=e,r=e.timeoutMs??1e4,i=e.pollIntervalMs??100,a=e.readLock??(()=>W({lockName:t,lockDir:n})),o=e.sleep??(e=>new Promise(t=>setTimeout(t,e))),s=a();if(s===null||s.draining!==!0)return`no-drain`;let c=Date.now()+r;for(;Date.now()<c;){await o(i);let e=a();if(e===null)return`released`;if(e.draining!==!0)return`no-drain`}return`timeout`}function q(e){let{lockName:t,lockDir:n,deferUnlinkToExit:r=!1}=e,i=`[${t}-lock]`,a=k(n,t);if(M(a)){if(r){U({lockName:t,lockDir:n});return}if(o(a))try{let e=JSON.parse(l(a,`utf-8`));if(!e||typeof e!=`object`||typeof e.pid!=`number`||e.pid!==process.pid||!N(e))return;u(a),P.delete(a)}catch(e){D.warn({lockPath:a,err:e},`${i} Failed to release ${a}: ${e instanceof Error?e.message:String(e)}`)}}}var J=class extends O{constructor(e,t){super(e,t,`server`),this.name=`ServerLockCollisionError`}};function Y(e,t){try{return R({lockName:`server`,lockDir:e,metadata:t}).lockPath}catch(e){throw e instanceof O&&e.lockName===`server`?new J(e.existing,e.lockPath):e}}function X(e,t,n){H({lockName:`server`,lockDir:e,port:t,url:n})}function Z(e){return W({lockName:`server`,lockDir:e})}function Q(e,t){q({lockName:`server`,lockDir:e,...t})}function $(e){U({lockName:`server`,lockDir:e})}function ee(e,t){return K({lockName:`server`,lockDir:e,...t})}export{_ as C,g as S,T as _,Q as a,y as b,O as c,k as d,U as f,H as g,q as h,Z as i,R as l,G as m,Y as n,X as o,W as p,$ as r,ee as s,J as t,V as u,E as v,v as x,C as y};
2
+ //# sourceMappingURL=server-lock-BV0Ktccm.mjs.map
@@ -1,2 +1,2 @@
1
- import{br as e,xr as t}from"./src-d4u8XMdW.mjs";import{s as n}from"./write-project-skill-CyyI2a52.mjs";import{dirname as r,isAbsolute as i,join as a,relative as o,resolve as s,sep as c}from"node:path";import{existsSync as l,lstatSync as u,readdirSync as d,rmSync as f,rmdirSync as p}from"node:fs";const m=[{hostDir:`.adal`,pruneRoot:`.adal`},{hostDir:`.aider-desk`,pruneRoot:`.aider-desk`},{hostDir:`.astrbot/data`,pruneRoot:`.astrbot`},{hostDir:`.augment`,pruneRoot:`.augment`},{hostDir:`.autohand`,pruneRoot:`.autohand`},{hostDir:`.bob`,pruneRoot:`.bob`},{hostDir:`.codeartsdoer`,pruneRoot:`.codeartsdoer`},{hostDir:`.codebuddy`,pruneRoot:`.codebuddy`},{hostDir:`.codeium/windsurf`,pruneRoot:`.codeium`},{hostDir:`.codemaker`,pruneRoot:`.codemaker`},{hostDir:`.codestudio`,pruneRoot:`.codestudio`},{hostDir:`.commandcode`,pruneRoot:`.commandcode`},{hostDir:`.config/crush`,pruneRoot:`.config/crush`},{hostDir:`.config/devin`,pruneRoot:`.config/devin`},{hostDir:`.config/goose`,pruneRoot:`.config/goose`},{hostDir:`.config/kimchi/harness`,pruneRoot:`.config/kimchi`},{hostDir:`.continue`,pruneRoot:`.continue`},{hostDir:`.factory`,pruneRoot:`.factory`},{hostDir:`.forge`,pruneRoot:`.forge`},{hostDir:`.grok`,pruneRoot:`.grok`},{hostDir:`.iflow`,pruneRoot:`.iflow`},{hostDir:`.inferencesh`,pruneRoot:`.inferencesh`},{hostDir:`.jazz`,pruneRoot:`.jazz`},{hostDir:`.junie`,pruneRoot:`.junie`},{hostDir:`.kilocode`,pruneRoot:`.kilocode`},{hostDir:`.kiro`,pruneRoot:`.kiro`},{hostDir:`.kode`,pruneRoot:`.kode`},{hostDir:`.lingma`,pruneRoot:`.lingma`},{hostDir:`.mcpjam`,pruneRoot:`.mcpjam`},{hostDir:`.moxby`,pruneRoot:`.moxby`},{hostDir:`.mux`,pruneRoot:`.mux`},{hostDir:`.neovate`,pruneRoot:`.neovate`},{hostDir:`.ona`,pruneRoot:`.ona`},{hostDir:`.openhands`,pruneRoot:`.openhands`},{hostDir:`.pochi`,pruneRoot:`.pochi`},{hostDir:`.qoder`,pruneRoot:`.qoder`},{hostDir:`.qoder-cn`,pruneRoot:`.qoder-cn`},{hostDir:`.qwen`,pruneRoot:`.qwen`},{hostDir:`.reasonix`,pruneRoot:`.reasonix`},{hostDir:`.roo`,pruneRoot:`.roo`},{hostDir:`.rovodev`,pruneRoot:`.rovodev`},{hostDir:`.snowflake/cortex`,pruneRoot:`.snowflake`},{hostDir:`.tabnine/agent`,pruneRoot:`.tabnine`},{hostDir:`.terramind`,pruneRoot:`.terramind`},{hostDir:`.tinycloud`,pruneRoot:`.tinycloud`},{hostDir:`.trae`,pruneRoot:`.trae`},{hostDir:`.trae-cn`,pruneRoot:`.trae-cn`},{hostDir:`.vibe`,pruneRoot:`.vibe`},{hostDir:`.zcode`,pruneRoot:`.zcode`},{hostDir:`.zencoder`,pruneRoot:`.zencoder`}],h=[...t.map(t=>e[t]),`open-knowledge`];function g(e){if(!i(e))throw Error(`skill cleanup requires an absolute home directory; got ${JSON.stringify(e)}`);let t=s(e);if(t===c||r(t)===t)throw Error(`skill cleanup refuses to operate on the filesystem root (${t})`);return t}function _(e,t){let n=o(e,t);if(n.startsWith(`..`)||i(n))return!1;let r=e;for(let e of n.split(c)){r=a(r,e);try{if(!u(r).isDirectory())return!1}catch{return!1}}return!0}function v(e,t){try{return d(e).every(n=>t.has(a(e,n)))}catch{return!1}}function y(e){let t=g(e),n=[],i=[],o=new Set;for(let e of m){let s=a(t,e.hostDir,`skills`);if(!_(t,s))continue;let u=h.map(e=>a(s,e)).filter(e=>l(e));n.push(...u);for(let e of u)o.add(e);let d=a(t,e.pruneRoot),f=s;for(;v(f,o)&&(i.push(f),o.add(f),f!==d);){let e=r(f);if(e===f||e===t||!e.startsWith(t+c))break;f=e}}return{skillDirs:n,emptyDirs:i}}function b(e){try{if(!u(e).isDirectory())return!1;let t=d(e);return t.length===0||t.includes(`SKILL.md`)}catch{return!1}}function x(e){let t=new Set,n=new Set;for(let i of m){let o=a(e,i.hostDir,`skills`);for(let e of h)t.add(a(o,e));let s=a(e,i.pruneRoot),l=o;for(;n.add(l),l!==s;){let t=r(l);if(t===l||t===e||!t.startsWith(e+c))break;l=t}}return{skillDirs:t,emptyDirs:n}}function S(e,t){let n=g(e),r=x(n),i=[...t.skillDirs.filter(e=>!r.skillDirs.has(e)),...t.emptyDirs.filter(e=>!r.emptyDirs.has(e))];if(i.length>0)throw Error(`refusing skill cleanup — ${i.length} path(s) outside the known legacy set: ${i.join(`, `)}`);let a=[];for(let e of t.skillDirs)if(_(n,e)&&b(e))try{f(e,{recursive:!0,force:!0}),a.push(e)}catch{}for(let e of t.emptyDirs)if(_(n,e))try{p(e),a.push(e)}catch{}return a}function C(r){let i=g(r),o=[];for(let r of t){let t=e[r];o.push({path:a(i,`.agents`,`skills`,t),bundleId:r,scope:`central`});for(let e of n)o.push({path:a(i,e.hostDir,`skills`,t),bundleId:r,scope:`host`,hostDir:e.hostDir})}return o}function w(e,t){let n=[];for(let r of C(e))if(r.bundleId===t)try{f(r.path,{recursive:!0,force:!0})}catch(e){n.push(e instanceof Error?e:Error(String(e)))}if(n.length>0)throw AggregateError(n,`Failed to remove ${n.length} path(s) for ${t}`)}export{C as i,y as n,w as r,S as t};
2
- //# sourceMappingURL=skill-teardown-mTNzEFkM.mjs.map
1
+ import{Dr as e,Er as t}from"./src-CwuSSZyu.mjs";import{s as n}from"./write-project-skill-DHsuRyv9.mjs";import{dirname as r,isAbsolute as i,join as a,relative as o,resolve as s,sep as c}from"node:path";import{existsSync as l,lstatSync as u,readdirSync as d,rmSync as f,rmdirSync as p}from"node:fs";const m=[{hostDir:`.adal`,pruneRoot:`.adal`},{hostDir:`.aider-desk`,pruneRoot:`.aider-desk`},{hostDir:`.astrbot/data`,pruneRoot:`.astrbot`},{hostDir:`.augment`,pruneRoot:`.augment`},{hostDir:`.autohand`,pruneRoot:`.autohand`},{hostDir:`.bob`,pruneRoot:`.bob`},{hostDir:`.codeartsdoer`,pruneRoot:`.codeartsdoer`},{hostDir:`.codebuddy`,pruneRoot:`.codebuddy`},{hostDir:`.codeium/windsurf`,pruneRoot:`.codeium`},{hostDir:`.codemaker`,pruneRoot:`.codemaker`},{hostDir:`.codestudio`,pruneRoot:`.codestudio`},{hostDir:`.commandcode`,pruneRoot:`.commandcode`},{hostDir:`.config/crush`,pruneRoot:`.config/crush`},{hostDir:`.config/devin`,pruneRoot:`.config/devin`},{hostDir:`.config/goose`,pruneRoot:`.config/goose`},{hostDir:`.config/kimchi/harness`,pruneRoot:`.config/kimchi`},{hostDir:`.continue`,pruneRoot:`.continue`},{hostDir:`.factory`,pruneRoot:`.factory`},{hostDir:`.forge`,pruneRoot:`.forge`},{hostDir:`.grok`,pruneRoot:`.grok`},{hostDir:`.iflow`,pruneRoot:`.iflow`},{hostDir:`.inferencesh`,pruneRoot:`.inferencesh`},{hostDir:`.jazz`,pruneRoot:`.jazz`},{hostDir:`.junie`,pruneRoot:`.junie`},{hostDir:`.kilocode`,pruneRoot:`.kilocode`},{hostDir:`.kiro`,pruneRoot:`.kiro`},{hostDir:`.kode`,pruneRoot:`.kode`},{hostDir:`.lingma`,pruneRoot:`.lingma`},{hostDir:`.mcpjam`,pruneRoot:`.mcpjam`},{hostDir:`.moxby`,pruneRoot:`.moxby`},{hostDir:`.mux`,pruneRoot:`.mux`},{hostDir:`.neovate`,pruneRoot:`.neovate`},{hostDir:`.ona`,pruneRoot:`.ona`},{hostDir:`.openhands`,pruneRoot:`.openhands`},{hostDir:`.pochi`,pruneRoot:`.pochi`},{hostDir:`.qoder`,pruneRoot:`.qoder`},{hostDir:`.qoder-cn`,pruneRoot:`.qoder-cn`},{hostDir:`.qwen`,pruneRoot:`.qwen`},{hostDir:`.reasonix`,pruneRoot:`.reasonix`},{hostDir:`.roo`,pruneRoot:`.roo`},{hostDir:`.rovodev`,pruneRoot:`.rovodev`},{hostDir:`.snowflake/cortex`,pruneRoot:`.snowflake`},{hostDir:`.tabnine/agent`,pruneRoot:`.tabnine`},{hostDir:`.terramind`,pruneRoot:`.terramind`},{hostDir:`.tinycloud`,pruneRoot:`.tinycloud`},{hostDir:`.trae`,pruneRoot:`.trae`},{hostDir:`.trae-cn`,pruneRoot:`.trae-cn`},{hostDir:`.vibe`,pruneRoot:`.vibe`},{hostDir:`.zcode`,pruneRoot:`.zcode`},{hostDir:`.zencoder`,pruneRoot:`.zencoder`}],h=[...e.map(e=>t[e]),`open-knowledge`];function g(e){if(!i(e))throw Error(`skill cleanup requires an absolute home directory; got ${JSON.stringify(e)}`);let t=s(e);if(t===c||r(t)===t)throw Error(`skill cleanup refuses to operate on the filesystem root (${t})`);return t}function _(e,t){let n=o(e,t);if(n.startsWith(`..`)||i(n))return!1;let r=e;for(let e of n.split(c)){r=a(r,e);try{if(!u(r).isDirectory())return!1}catch{return!1}}return!0}function v(e,t){try{return d(e).every(n=>t.has(a(e,n)))}catch{return!1}}function y(e){let t=g(e),n=[],i=[],o=new Set;for(let e of m){let s=a(t,e.hostDir,`skills`);if(!_(t,s))continue;let u=h.map(e=>a(s,e)).filter(e=>l(e));n.push(...u);for(let e of u)o.add(e);let d=a(t,e.pruneRoot),f=s;for(;v(f,o)&&(i.push(f),o.add(f),f!==d);){let e=r(f);if(e===f||e===t||!e.startsWith(t+c))break;f=e}}return{skillDirs:n,emptyDirs:i}}function b(e){try{if(!u(e).isDirectory())return!1;let t=d(e);return t.length===0||t.includes(`SKILL.md`)}catch{return!1}}function x(e){let t=new Set,n=new Set;for(let i of m){let o=a(e,i.hostDir,`skills`);for(let e of h)t.add(a(o,e));let s=a(e,i.pruneRoot),l=o;for(;n.add(l),l!==s;){let t=r(l);if(t===l||t===e||!t.startsWith(e+c))break;l=t}}return{skillDirs:t,emptyDirs:n}}function S(e,t){let n=g(e),r=x(n),i=[...t.skillDirs.filter(e=>!r.skillDirs.has(e)),...t.emptyDirs.filter(e=>!r.emptyDirs.has(e))];if(i.length>0)throw Error(`refusing skill cleanup — ${i.length} path(s) outside the known legacy set: ${i.join(`, `)}`);let a=[];for(let e of t.skillDirs)if(_(n,e)&&b(e))try{f(e,{recursive:!0,force:!0}),a.push(e)}catch{}for(let e of t.emptyDirs)if(_(n,e))try{p(e),a.push(e)}catch{}return a}function C(r){let i=g(r),o=[];for(let r of e){let e=t[r];o.push({path:a(i,`.agents`,`skills`,e),bundleId:r,scope:`central`});for(let t of n)o.push({path:a(i,t.hostDir,`skills`,e),bundleId:r,scope:`host`,hostDir:t.hostDir})}return o}function w(e,t){let n=[];for(let r of C(e))if(r.bundleId===t)try{f(r.path,{recursive:!0,force:!0})}catch(e){n.push(e instanceof Error?e:Error(String(e)))}if(n.length>0)throw AggregateError(n,`Failed to remove ${n.length} path(s) for ${t}`)}export{C as i,y as n,w as r,S as t};
2
+ //# sourceMappingURL=skill-teardown-BppNXkpR.mjs.map