@hienlh/ppm 0.18.10 → 0.18.12

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 (543) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +81 -23
  3. package/assets/skills/ppm/SKILL.md +1 -1
  4. package/assets/skills/ppm/references/http-api.md +1 -1
  5. package/dist/web/assets/adaptive-context-menu-DGCKKeTy.js +1 -0
  6. package/dist/web/assets/ai-resource-editor-BOHHTTe7.js +1 -0
  7. package/dist/web/assets/ai-settings-section-BigC_nZR.js +1 -0
  8. package/dist/web/assets/{angular-html-Ctz0zN01.js → angular-html-BYPaydvh.js} +1 -1
  9. package/dist/web/assets/{angular-ts-QXHpgB1C.js → angular-ts-Bb4AMKlk.js} +1 -1
  10. package/dist/web/assets/api-client-DTZEgjBQ.js +1 -0
  11. package/dist/web/assets/{api-settings-kQHV6pYZ.js → api-settings-Bd3M4YpI.js} +1 -1
  12. package/dist/web/assets/api-settings-kd1j4iR8.js +1 -0
  13. package/dist/web/assets/{api-themes-CrK0tkW_.js → api-themes-Cpx419SL.js} +1 -1
  14. package/dist/web/assets/{apl-b9KVk-O4.js → apl-DB2VjFCS.js} +1 -1
  15. package/dist/web/assets/architecture-PBZL5I3N-8dCMT9r7.js +1 -0
  16. package/dist/web/assets/{astro-BlFEeGYr.js → astro-BeoJdVpk.js} +1 -1
  17. package/dist/web/assets/{audio-preview-CZLmhf__.js → audio-preview-BgFuTn-0.js} +1 -1
  18. package/dist/web/assets/{blade-CGkj2MUI.js → blade-Cf2q1sPf.js} +1 -1
  19. package/dist/web/assets/{bsl-CVsbb6ap.js → bsl-W1kOaNpu.js} +1 -1
  20. package/dist/web/assets/{button-BA_fJOtX.js → button-5zTrkEoN.js} +1 -1
  21. package/dist/web/assets/{cairo-BbIHl2iE.js → cairo-BoAZFcje.js} +1 -1
  22. package/dist/web/assets/chat-tab-E3bf_V8X.js +15 -0
  23. package/dist/web/assets/chevron-down-Dp0rpHb8.js +1 -0
  24. package/dist/web/assets/clipboard-7fw0Shic.js +1 -0
  25. package/dist/web/assets/{cobol-BWSGjmWb.js → cobol-B0Nm7RXj.js} +1 -1
  26. package/dist/web/assets/code-editor-BUlM2gXk.js +10 -0
  27. package/dist/web/assets/{coffee-CWGNOxds.js → coffee-BakMn3on.js} +1 -1
  28. package/dist/web/assets/{conflict-editor-fRTU3f1o.js → conflict-editor-BUs5k9q_.js} +4 -4
  29. package/dist/web/assets/context-menu-Bq92km4s.js +1 -0
  30. package/dist/web/assets/{cpp-DHGV24J2.js → cpp-BRAJQHK2.js} +1 -1
  31. package/dist/web/assets/{crystal-Vlwf2UMP.js → crystal-kqqO3zkK.js} +1 -1
  32. package/dist/web/assets/{csv-preview-D1d0cxOJ.js → csv-preview-ByoDgLAZ.js} +1 -1
  33. package/dist/web/assets/{data-grid-overlay-editor-D9il5DZS.js → data-grid-overlay-editor-Brkf9z41.js} +1 -1
  34. package/dist/web/assets/database-viewer-Btc3h8Yu.js +1 -0
  35. package/dist/web/assets/dialog-DwtGlowE.js +1 -0
  36. package/dist/web/assets/diff-viewer-CZaDnR4w.js +4 -0
  37. package/dist/web/assets/docx-preview-DAD_vg59.js +12 -0
  38. package/dist/web/assets/{edge-Bhqk64zS.js → edge-Cq1ZKZuE.js} +1 -1
  39. package/dist/web/assets/{edit-diff-preview-gq6ALf2B.js → edit-diff-preview-B_VE7ppQ.js} +1 -1
  40. package/dist/web/assets/{elixir-D466WCFm.js → elixir-BM_JoJRk.js} +1 -1
  41. package/dist/web/assets/{elm-Bfs2qNPR.js → elm-Dw7oO08Y.js} +1 -1
  42. package/dist/web/assets/{erb-WI7jUaB6.js → erb-CfKOGAfk.js} +1 -1
  43. package/dist/web/assets/{erlang-BCBe8nCc.js → erlang-DlDmGVeE.js} +1 -1
  44. package/dist/web/assets/{esm-CZs9WVDO.js → esm-DGAP0GFh.js} +1 -1
  45. package/dist/web/assets/explorer-body-9aBmyVpZ.js +2 -0
  46. package/dist/web/assets/explorer-window-content-DRtqoSPA.js +1 -0
  47. package/dist/web/assets/extension-store-Cpfh2vMm.js +1 -0
  48. package/dist/web/assets/{extension-webview-BH_mWYMe.js → extension-webview-B2OnjuCu.js} +2 -2
  49. package/dist/web/assets/external-link-B8BynhvY.js +1 -0
  50. package/dist/web/assets/file-store-aOERIEo-.js +1 -0
  51. package/dist/web/assets/folder-symlink-B8XrtvQK.js +1 -0
  52. package/dist/web/assets/{fortran-fixed-form-CXLIv8Ox.js → fortran-fixed-form-XnAhQWxS.js} +1 -1
  53. package/dist/web/assets/{fsharp-CZsYmiw9.js → fsharp-CdNvy0PG.js} +1 -1
  54. package/dist/web/assets/{gdresource-BGRvoWfC.js → gdresource-DxuG5i8i.js} +1 -1
  55. package/dist/web/assets/{git-commit-DH6mY3Km.js → git-commit-3lMonsur.js} +1 -1
  56. package/dist/web/assets/git-log-panel-Co0PBPHC.js +1 -0
  57. package/dist/web/assets/{git-rebase-C5Gql6Ma.js → git-rebase-N8Z9kIMf.js} +1 -1
  58. package/dist/web/assets/gitGraph-HDMCJU4V-2e_8dfbs.js +1 -0
  59. package/dist/web/assets/{glide-data-grid-n4ox_uev.js → glide-data-grid-C4_zIneN.js} +8 -8
  60. package/dist/web/assets/{glimmer-js-1-6JMJlj.js → glimmer-js-Dp9OXiib.js} +1 -1
  61. package/dist/web/assets/{glimmer-ts-C_Njj0nK.js → glimmer-ts-CDVKBcDj.js} +1 -1
  62. package/dist/web/assets/{glsl-DbkxE1TN.js → glsl-DPJxI4us.js} +1 -1
  63. package/dist/web/assets/{graphql-BK75fiXl.js → graphql-BrFhaQQl.js} +1 -1
  64. package/dist/web/assets/group-chat-tab-rOd8J8GC.js +1 -0
  65. package/dist/web/assets/{hack-DG151vit.js → hack-BzXbDMlA.js} +1 -1
  66. package/dist/web/assets/{haml-DKeIPQWM.js → haml-CPpkX0s5.js} +1 -1
  67. package/dist/web/assets/{handlebars-398uCI13.js → handlebars-BqrApy52.js} +1 -1
  68. package/dist/web/assets/{html-NLWdst5q.js → html-DmjUl-OA.js} +1 -1
  69. package/dist/web/assets/{html-derivative-CJf_Le2z.js → html-derivative-Cnd6XFR5.js} +1 -1
  70. package/dist/web/assets/{http-G1K2FozA.js → http-DMLWYun2.js} +1 -1
  71. package/dist/web/assets/{hurl-WDC6sSBz.js → hurl-CKkCVxbj.js} +1 -1
  72. package/dist/web/assets/{hxml-Dc3jBXuf.js → hxml-CAx19TtQ.js} +1 -1
  73. package/dist/web/assets/image-preview-DHUoylQ1.js +1 -0
  74. package/dist/web/assets/index-BImUaigO.js +52 -0
  75. package/dist/web/assets/index-CSfi6DSU.css +2 -0
  76. package/dist/web/assets/info-3K5VOQVL-BZi1Gha1.js +1 -0
  77. package/dist/web/assets/input-DcEk7mA3.js +1 -0
  78. package/dist/web/assets/{jinja-CWsQj2y0.js → jinja-BmB9YN9l.js} +1 -1
  79. package/dist/web/assets/{jison-CciJg2NW.js → jison-BaVsKKpw.js} +1 -1
  80. package/dist/web/assets/{julia-IOQNJAB7.js → julia-BgVBLveX.js} +1 -1
  81. package/dist/web/assets/{just-BGdHchwS.js → just-C2ENIbl9.js} +1 -1
  82. package/dist/web/assets/keybindings-store-BGIyqXHI.js +1 -0
  83. package/dist/web/assets/keybindings-store-CzV2sPls.js +1 -0
  84. package/dist/web/assets/{latex-D6TOl-L2.js → latex-BiDIWxKL.js} +1 -1
  85. package/dist/web/assets/{liquid-CVSvu_Wn.js → liquid-NxpapreE.js} +1 -1
  86. package/dist/web/assets/loader-circle-gSPVxfvH.js +1 -0
  87. package/dist/web/assets/lock-Did-87UV.js +1 -0
  88. package/dist/web/assets/{lua-CcKiU6HW.js → lua-DVepQvwH.js} +1 -1
  89. package/dist/web/assets/markdown-renderer-CcbR33VG.js +1 -0
  90. package/dist/web/assets/{markdown-renderer-B317vEys.js → markdown-renderer-DlcDhgrF.js} +3 -3
  91. package/dist/web/assets/{marko--UOicMGo.js → marko-CJ2606Xl.js} +1 -1
  92. package/dist/web/assets/{mdc-D690aU2C.js → mdc-D2bjqclE.js} +1 -1
  93. package/dist/web/assets/{media-url-CylYQld1.js → media-url-H17XJF-I.js} +1 -1
  94. package/dist/web/assets/mobile-bottom-sheet-g-r2hCFa.js +1 -0
  95. package/dist/web/assets/mobile-explorer-sheet-SIwQXlwA.js +1 -0
  96. package/dist/web/assets/monitor-Dv8vn_6O.js +1 -0
  97. package/dist/web/assets/{nextflow-DR8PhpF8.js → nextflow-BtJwUbfF.js} +1 -1
  98. package/dist/web/assets/{nginx-Qb9pUk1g.js → nginx-j4gyIhHE.js} +1 -1
  99. package/dist/web/assets/{nim-DLa8R3NS.js → nim-ClH_gjP5.js} +1 -1
  100. package/dist/web/assets/notification-store-DV5QtUTg.js +1 -0
  101. package/dist/web/assets/{number-overlay-editor-D9SkFg1Y.js → number-overlay-editor-C1EqJnWq.js} +1 -1
  102. package/dist/web/assets/{overview-panel-BxDohIEa.js → overview-panel-vTeeJYVZ.js} +1 -1
  103. package/dist/web/assets/packet-RMMSAZCW-o5htEcin.js +1 -0
  104. package/dist/web/assets/panel-store-BSnkjgHt.js +1 -0
  105. package/dist/web/assets/pdf-preview-CqFGRY0Z.js +1 -0
  106. package/dist/web/assets/pencil-BlIIg6RH.js +1 -0
  107. package/dist/web/assets/{perl-AMNGIneF.js → perl-C9H7X7CT.js} +1 -1
  108. package/dist/web/assets/{php-CDsOOxXn.js → php-Bx2U-cQ_.js} +1 -1
  109. package/dist/web/assets/pie-UPGHQEXC-BXAIFSAD.js +1 -0
  110. package/dist/web/assets/play-4MZi1Axp.js +1 -0
  111. package/dist/web/assets/portal-container-context-Cm5HipFr.js +1 -0
  112. package/dist/web/assets/{postgres-viewer-BWZLW7kI.js → postgres-viewer-DHwcQucn.js} +3 -3
  113. package/dist/web/assets/process-table-BGRJNlpn.js +1 -0
  114. package/dist/web/assets/{project-store-B8BkHXy5.js → project-store--nvQiy75.js} +1 -1
  115. package/dist/web/assets/{pug-C2kdkhQ6.js → pug-Cw74sKsE.js} +1 -1
  116. package/dist/web/assets/{qml-DRDkUp75.js → qml-BXD94Eqz.js} +1 -1
  117. package/dist/web/assets/radar-KQ55EAFF-Dbt2Aebl.js +1 -0
  118. package/dist/web/assets/{razor-wY_6wUeC.js → razor-DZ0-Ge0S.js} +1 -1
  119. package/dist/web/assets/refresh-cw-B06yaBrW.js +1 -0
  120. package/dist/web/assets/rotate-ccw-COXu_9oj.js +1 -0
  121. package/dist/web/assets/{rst-BRpofyNs.js → rst-Dtdh0QUj.js} +1 -1
  122. package/dist/web/assets/{ruby-ieATBhWm.js → ruby-BC51BW2Q.js} +1 -1
  123. package/dist/web/assets/{run-in-terminal-CyS5Itj-.js → run-in-terminal-Sd3KyjN4.js} +1 -1
  124. package/dist/web/assets/{sas-CoOOEbOO.js → sas-BN8i4qOU.js} +1 -1
  125. package/dist/web/assets/scroll-area-0gljZ6lF.js +1 -0
  126. package/dist/web/assets/{scss-_nWV0bsb.js → scss-H-QtA7Rz.js} +1 -1
  127. package/dist/web/assets/send-BlyNJAzy.js +1 -0
  128. package/dist/web/assets/{send-to-chat-BcO39BDR.js → send-to-chat-u6m8l-rH.js} +1 -1
  129. package/dist/web/assets/{settings-store-C20lqh0G.js → settings-store-CHY6Kzin.js} +2 -2
  130. package/dist/web/assets/settings-tab-Dic6TKkU.js +1 -0
  131. package/dist/web/assets/settings-tab-IY6K1MiZ.js +3 -0
  132. package/dist/web/assets/{shaderlab-XkqfIfO8.js → shaderlab-CalNsj_x.js} +1 -1
  133. package/dist/web/assets/shallow-DYo6goJ4.js +1 -0
  134. package/dist/web/assets/{shellsession-BKBIqTlM.js → shellsession-BFrcoR8x.js} +1 -1
  135. package/dist/web/assets/{soy-oVDnPzzh.js → soy-CNbku7vP.js} +1 -1
  136. package/dist/web/assets/{sparql-N2VclEsF.js → sparql-BN_orcVp.js} +1 -1
  137. package/dist/web/assets/{sql-query-editor-BwPjEaP9.js → sql-query-editor-C6pC3I8l.js} +1 -1
  138. package/dist/web/assets/sqlite-viewer-DTr5PzUb.js +1 -0
  139. package/dist/web/assets/{stata-BuuClVDg.js → stata-C6a5Ijzq.js} +1 -1
  140. package/dist/web/assets/{surrealql-DE5_63MS.js → surrealql-ClplI_HY.js} +1 -1
  141. package/dist/web/assets/{svelte--YWjlOrK.js → svelte-DNm-UNXB.js} +1 -1
  142. package/dist/web/assets/switch-DKvKya9y.js +1 -0
  143. package/dist/web/assets/system-monitor-body-iwGiCns9.js +2 -0
  144. package/dist/web/assets/system-monitor-tab-DdXQhEel.js +1 -0
  145. package/dist/web/assets/system-monitor-window-content-BUqRsPK2.js +1 -0
  146. package/dist/web/assets/tab-host-window-content-BnqGPu8a.js +1 -0
  147. package/dist/web/assets/{tab-store-DAsvpx4t.js → tab-store-CJuJRapl.js} +1 -1
  148. package/dist/web/assets/team-member-sheet-LkAFSCvb.js +2 -0
  149. package/dist/web/assets/team-member-window-content-T4Q5JI-G.js +1 -0
  150. package/dist/web/assets/{templ-MlpvJx4a.js → templ-CSdqVobu.js} +1 -1
  151. package/dist/web/assets/terminal-tab-Bb2rZegQ.js +3 -0
  152. package/dist/web/assets/{tex-0loAoXJG.js → tex-DzSJ4kcZ.js} +1 -1
  153. package/dist/web/assets/text-wrap-CBT4Gxtg.js +1 -0
  154. package/dist/web/assets/tool-cards-lhqhrDTT.js +8 -0
  155. package/dist/web/assets/trash-2-Bk4yYlck.js +1 -0
  156. package/dist/web/assets/treemap-KZPCXAKY-DUbnl9dz.js +1 -0
  157. package/dist/web/assets/triangle-alert-B8EYecpe.js +1 -0
  158. package/dist/web/assets/{ts-tags-pt-Ug0hK.js → ts-tags-C28w3bTg.js} +1 -1
  159. package/dist/web/assets/{twig-DOePpLOL.js → twig-i5jY3QXB.js} +1 -1
  160. package/dist/web/assets/upload-BNlX8D07.js +1 -0
  161. package/dist/web/assets/{use-blob-url-BKyVxOZw.js → use-blob-url-Dsq9OjTh.js} +1 -1
  162. package/dist/web/assets/{use-monaco-theme-DSCdlrjO.js → use-monaco-theme-BZvlsoBv.js} +1 -1
  163. package/dist/web/assets/use-open-team-member-DkiEjFYE.js +1 -0
  164. package/dist/web/assets/{use-websocket-iJfc7EbK.js → use-websocket-B8R50f7f.js} +1 -1
  165. package/dist/web/assets/{vendor-mermaid-DrwG0NYt.js → vendor-mermaid-By4AVvJY.js} +1 -1
  166. package/dist/web/assets/video-preview-m0-3p7QZ.js +1 -0
  167. package/dist/web/assets/{vue-D6f-rprj.js → vue-Ceyet_lv.js} +1 -1
  168. package/dist/web/assets/{vue-html-DEYRkS1V.js → vue-html-GuU7g_hg.js} +1 -1
  169. package/dist/web/assets/{vue-vine-CxSG2ojf.js → vue-vine-CxXoaJr2.js} +1 -1
  170. package/dist/web/assets/window-store-CsEW6jiE.js +1 -0
  171. package/dist/web/assets/{xml-DhrxbATj.js → xml-CbqOVhkP.js} +1 -1
  172. package/dist/web/assets/{xsl-CU0ZndUO.js → xsl-KfAmCauy.js} +1 -1
  173. package/dist/web/index.html +56 -27
  174. package/dist/web/sw.js +1 -1
  175. package/docs/code-standards.md +8 -0
  176. package/docs/codebase-summary.md +19 -5
  177. package/docs/design-guidelines.md +13 -2
  178. package/docs/project-roadmap.md +9 -0
  179. package/docs/system-architecture.md +83 -6
  180. package/package.json +1 -1
  181. package/src/web/components/chat/file-picker.tsx +5 -2
  182. package/src/web/components/chat/mode-selector.tsx +5 -2
  183. package/src/web/components/chat/model-selector.tsx +5 -2
  184. package/src/web/components/chat/model-thinking-selector.tsx +5 -2
  185. package/src/web/components/chat/provider-selector.tsx +5 -2
  186. package/src/web/components/chat/slash-command-picker.tsx +5 -2
  187. package/src/web/components/editor/code-editor.tsx +13 -3
  188. package/src/web/components/editor/conflict-editor.tsx +9 -0
  189. package/src/web/components/editor/diff-viewer.tsx +9 -0
  190. package/src/web/components/floating-window/floating-window.tsx +23 -15
  191. package/src/web/components/floating-window/pip/pip-caption-button.tsx +108 -0
  192. package/src/web/components/floating-window/pip/pip-focus-target.ts +58 -0
  193. package/src/web/components/floating-window/pip/pip-geometry.ts +46 -0
  194. package/src/web/components/floating-window/pip/pip-host.ts +156 -0
  195. package/src/web/components/floating-window/pip/pip-key-forward.ts +59 -0
  196. package/src/web/components/floating-window/pip/pip-resize-signal.ts +33 -0
  197. package/src/web/components/floating-window/pip/pip-style-copy.ts +108 -0
  198. package/src/web/components/floating-window/pip/pip-support.ts +33 -0
  199. package/src/web/components/floating-window/tab-host-window-content.tsx +80 -0
  200. package/src/web/components/floating-window/use-window-body-element.ts +67 -0
  201. package/src/web/components/floating-window/use-window-drag.ts +5 -0
  202. package/src/web/components/floating-window/use-window-gesture-context.ts +14 -0
  203. package/src/web/components/floating-window/use-window-resize.ts +5 -0
  204. package/src/web/components/floating-window/window-content-registry.ts +4 -16
  205. package/src/web/components/floating-window/window-layer.tsx +1 -2
  206. package/src/web/components/floating-window/window-persistence.ts +9 -2
  207. package/src/web/components/floating-window/window-pip-placeholder.tsx +31 -0
  208. package/src/web/components/floating-window/window-pip-registry.ts +69 -0
  209. package/src/web/components/floating-window/window-skin-chrome.tsx +21 -0
  210. package/src/web/components/floating-window/window-store-types.ts +8 -2
  211. package/src/web/components/layout/reparenting-tab.tsx +136 -0
  212. package/src/web/components/layout/tab-bar.tsx +2 -0
  213. package/src/web/components/layout/tab-pool-collect.ts +38 -2
  214. package/src/web/components/layout/tab-pool-registry.ts +48 -0
  215. package/src/web/components/layout/tab-pool.tsx +54 -168
  216. package/src/web/components/layout/tab-pop-out-menu-item.tsx +42 -0
  217. package/src/web/components/layout/use-window-panel-reconcile.ts +48 -0
  218. package/src/web/components/os-explorer/skins/macos-window-chrome.tsx +16 -7
  219. package/src/web/components/os-explorer/skins/windows-window-chrome.tsx +14 -8
  220. package/src/web/components/ui/context-menu.tsx +10 -3
  221. package/src/web/components/ui/dialog.tsx +10 -1
  222. package/src/web/components/ui/dropdown-menu.tsx +10 -3
  223. package/src/web/components/ui/mobile-bottom-sheet.tsx +7 -4
  224. package/src/web/components/ui/portal-container-context.tsx +40 -0
  225. package/src/web/components/ui/select.tsx +3 -1
  226. package/src/web/components/ui/tooltip.tsx +3 -1
  227. package/src/web/hooks/use-terminal.ts +24 -3
  228. package/src/web/stores/panel-store.ts +72 -7
  229. package/src/web/stores/panel-utils.ts +36 -0
  230. package/src/web/stores/window-panel-actions.ts +211 -0
  231. package/src/web/stores/window-panel-persistence.ts +115 -0
  232. package/src/web/stores/window-panel-reconcile.ts +97 -0
  233. package/.spike/group-protected-probe.ts +0 -21
  234. package/.spike/s.err +0 -63
  235. package/.spike/tunnel.err +0 -22
  236. package/.spike/w.err +0 -28
  237. package/dist/web/assets/ai-resource-editor-mdDKG-rw.js +0 -1
  238. package/dist/web/assets/api-client-CzABTreM.js +0 -1
  239. package/dist/web/assets/api-settings-nblja3Rk.js +0 -1
  240. package/dist/web/assets/architecture-PBZL5I3N-C7ra20CE.js +0 -1
  241. package/dist/web/assets/chat-tab-C060A94y.js +0 -15
  242. package/dist/web/assets/code-editor-WELegzdp.js +0 -10
  243. package/dist/web/assets/context-menu-Cq0u3SK9.js +0 -1
  244. package/dist/web/assets/database-viewer-DevnWTV4.js +0 -1
  245. package/dist/web/assets/diff-viewer-DGxVg1pD.js +0 -4
  246. package/dist/web/assets/docx-preview-Cx-zLwAw.js +0 -12
  247. package/dist/web/assets/explorer-body-j_4hVc34.js +0 -2
  248. package/dist/web/assets/explorer-window-content-DdrGwk3w.js +0 -1
  249. package/dist/web/assets/git-log-panel-CfpXRJcP.js +0 -1
  250. package/dist/web/assets/gitGraph-HDMCJU4V-D4hYLNJU.js +0 -1
  251. package/dist/web/assets/group-chat-tab-dYuuknLN.js +0 -1
  252. package/dist/web/assets/image-preview-Ss38ex8g.js +0 -1
  253. package/dist/web/assets/index-BiTiXgBZ.css +0 -2
  254. package/dist/web/assets/index-Ch8l9de-.js +0 -52
  255. package/dist/web/assets/info-3K5VOQVL-lRlrTlkb.js +0 -1
  256. package/dist/web/assets/keybindings-store-CDfTjwZX.js +0 -1
  257. package/dist/web/assets/markdown-renderer-CpRlpLHw.js +0 -1
  258. package/dist/web/assets/mobile-bottom-sheet-BUOJgiaZ.js +0 -1
  259. package/dist/web/assets/mobile-explorer-sheet-D1Bv9UCT.js +0 -1
  260. package/dist/web/assets/notification-store-KwTAZT8b.js +0 -1
  261. package/dist/web/assets/packet-RMMSAZCW-BIhk1mvp.js +0 -1
  262. package/dist/web/assets/panel-store-DCD82zc1.js +0 -1
  263. package/dist/web/assets/pdf-preview-dwRe54ht.js +0 -1
  264. package/dist/web/assets/pie-UPGHQEXC-SLS6i76l.js +0 -1
  265. package/dist/web/assets/process-table-CI-fnVsy.js +0 -1
  266. package/dist/web/assets/radar-KQ55EAFF-JJ6O1Er_.js +0 -1
  267. package/dist/web/assets/settings-tab-mPxrKkfm.js +0 -1
  268. package/dist/web/assets/sqlite-viewer-Cs-_D942.js +0 -1
  269. package/dist/web/assets/system-monitor-body-CV7-0hZG.js +0 -2
  270. package/dist/web/assets/system-monitor-tab-Ce-8Axhh.js +0 -1
  271. package/dist/web/assets/system-monitor-window-content-CetwYOQy.js +0 -1
  272. package/dist/web/assets/team-member-sheet-CjgaQjsZ.js +0 -2
  273. package/dist/web/assets/team-member-window-content-DNJiYWS7.js +0 -1
  274. package/dist/web/assets/terminal-tab-DF7521sT.js +0 -3
  275. package/dist/web/assets/tool-cards-DCAXGDJI.js +0 -8
  276. package/dist/web/assets/treemap-KZPCXAKY-Be3KNmns.js +0 -1
  277. package/dist/web/assets/use-open-team-member-H4k74HnV.js +0 -1
  278. package/dist/web/assets/video-preview-B0ZWpX0F.js +0 -1
  279. package/src/web/components/floating-window/default-window-chrome.tsx +0 -71
  280. package/src/web/components/os-explorer/skins/explorer-skin-chrome.tsx +0 -17
  281. /package/dist/web/assets/{abap-MRbmsXOs.js → abap-C6nB04tn.js} +0 -0
  282. /package/dist/web/assets/{actionscript-3-BDDHKqa4.js → actionscript-3-Vx4rw2sC.js} +0 -0
  283. /package/dist/web/assets/{ada-DpuV9KwV.js → ada-Ccd8vM20.js} +0 -0
  284. /package/dist/web/assets/{andromeeda-D6qUCKJo.js → andromeeda-DnBX5xMg.js} +0 -0
  285. /package/dist/web/assets/{apache-CX1NU_Tl.js → apache-B-9_sx0g.js} +0 -0
  286. /package/dist/web/assets/{apex-B4-aoQ3K.js → apex-_wPVBYoL.js} +0 -0
  287. /package/dist/web/assets/{api-client-BSB14J4w.js → api-client-aQb5hHE5.js} +0 -0
  288. /package/dist/web/assets/{applescript-Dm9NI6KR.js → applescript-CcvD-qr0.js} +0 -0
  289. /package/dist/web/assets/{apply-theme-BH_d4amk.js → apply-theme-BeLRfsSu.js} +0 -0
  290. /package/dist/web/assets/{ara-BGN8GAYn.js → ara-C40Ztoms.js} +0 -0
  291. /package/dist/web/assets/{asciidoc-s_yVuR3t.js → asciidoc-CybYkJV4.js} +0 -0
  292. /package/dist/web/assets/{asm-BzQdSvTe.js → asm-9eOKwzR0.js} +0 -0
  293. /package/dist/web/assets/{aurora-x-BJTLETG_.js → aurora-x-B5ZH4t7t.js} +0 -0
  294. /package/dist/web/assets/{awk-BQEGWxvX.js → awk-Dqilob-2.js} +0 -0
  295. /package/dist/web/assets/{ayu-dark-CpTORmLc.js → ayu-dark-CPgRhf5r.js} +0 -0
  296. /package/dist/web/assets/{ayu-light-D8PVj-e6.js → ayu-light-Do06Q52f.js} +0 -0
  297. /package/dist/web/assets/{ayu-mirage-DyElQHtm.js → ayu-mirage-_BhxcrxY.js} +0 -0
  298. /package/dist/web/assets/{ballerina-C82NkRtj.js → ballerina-DDwK54QW.js} +0 -0
  299. /package/dist/web/assets/{bat-0X7DtGI-.js → bat-BGyGlzGk.js} +0 -0
  300. /package/dist/web/assets/{beancount-Xgvy6YRl.js → beancount-CRWBdapI.js} +0 -0
  301. /package/dist/web/assets/{berry-CCT2pZcQ.js → berry-DbSFn2gO.js} +0 -0
  302. /package/dist/web/assets/{bibtex-CpXgZ9M_.js → bibtex-QpsV9gm9.js} +0 -0
  303. /package/dist/web/assets/{bicep-fkeSA62l.js → bicep-CxS8CUve.js} +0 -0
  304. /package/dist/web/assets/{bird2-Co7SeAI8.js → bird2-CuZhQzYR.js} +0 -0
  305. /package/dist/web/assets/{bot-CunPuEdW.js → bot-D6sx11y0.js} +0 -0
  306. /package/dist/web/assets/{c-BpmrTvJh.js → c-9bnDqE3g.js} +0 -0
  307. /package/dist/web/assets/{c3-BZ_Z0RrR.js → c3-JMZTrOhA.js} +0 -0
  308. /package/dist/web/assets/{cadence-B0GBC8OF.js → cadence-DsDNayJS.js} +0 -0
  309. /package/dist/web/assets/{can-open-in-ppm-omBzUBBq.js → can-open-in-ppm-BJfpynya.js} +0 -0
  310. /package/dist/web/assets/{catppuccin-frappe-DIt_xR7m.js → catppuccin-frappe-DYIKXXBe.js} +0 -0
  311. /package/dist/web/assets/{catppuccin-latte-Dw40AcqA.js → catppuccin-latte-IYYOnUJ8.js} +0 -0
  312. /package/dist/web/assets/{catppuccin-macchiato-BJ7DfVEF.js → catppuccin-macchiato-BrJ_7mfS.js} +0 -0
  313. /package/dist/web/assets/{catppuccin-mocha-NI2lfXzU.js → catppuccin-mocha-gzSu7v7-.js} +0 -0
  314. /package/dist/web/assets/{chevron-right-BLOtX8Vy.js → chevron-right-De-Wz5Lz.js} +0 -0
  315. /package/dist/web/assets/{circle-hjUGru6R.js → circle-BCy0AUCo.js} +0 -0
  316. /package/dist/web/assets/{clarity-F39L0xMJ.js → clarity-DLzsC0Hb.js} +0 -0
  317. /package/dist/web/assets/{clock-CvhF4DJP.js → clock-C1CQUQPZ.js} +0 -0
  318. /package/dist/web/assets/{clojure-DloMkd8K.js → clojure-DS1BvoTt.js} +0 -0
  319. /package/dist/web/assets/{cmake-CwerJun_.js → cmake-CDvsJwYp.js} +0 -0
  320. /package/dist/web/assets/{code-DDPoqVri.js → code-DJgYrFzm.js} +0 -0
  321. /package/dist/web/assets/{codeowners-CQyVz4Qf.js → codeowners-BjsYiflJ.js} +0 -0
  322. /package/dist/web/assets/{codeql-Bb229zuY.js → codeql-CG-7ARat.js} +0 -0
  323. /package/dist/web/assets/{common-lisp-KMlIwq5I.js → common-lisp-DSO1Lbh9.js} +0 -0
  324. /package/dist/web/assets/{copy-DKn11Pye.js → copy-BewHj66E.js} +0 -0
  325. /package/dist/web/assets/{coq-DHX_3IIo.js → coq-DYdh3oP_.js} +0 -0
  326. /package/dist/web/assets/{csharp-CEmCZv9Q.js → csharp-DxEBz5s0.js} +0 -0
  327. /package/dist/web/assets/{css-CqZqBD05.js → css-dal3Q-8C.js} +0 -0
  328. /package/dist/web/assets/{csv-l1g_V5MV.js → csv-CpqjMGiA.js} +0 -0
  329. /package/dist/web/assets/{csv-parser-CnS0wqr6.js → csv-parser-3umBA4NY.js} +0 -0
  330. /package/dist/web/assets/{cue-BrxRmilg.js → cue-DinoJ_5k.js} +0 -0
  331. /package/dist/web/assets/{cypher-rZkKwqZc.js → cypher-DzxqmkUW.js} +0 -0
  332. /package/dist/web/assets/{d-BALR-QuP.js → d-BxNwJuEC.js} +0 -0
  333. /package/dist/web/assets/{dark-plus-Cj7rVwh-.js → dark-plus-Clmv3V-0.js} +0 -0
  334. /package/dist/web/assets/{dart-CWQcdkXk.js → dart-BWVtXD35.js} +0 -0
  335. /package/dist/web/assets/{data-grid-types-CYvF-xK5.js → data-grid-types-B4n51Fck.js} +0 -0
  336. /package/dist/web/assets/{database-BH0urvbs.js → database-Y3ESDK4-.js} +0 -0
  337. /package/dist/web/assets/{dax-BNHD-QBA.js → dax-DsImuWgJ.js} +0 -0
  338. /package/dist/web/assets/{desktop-CN0IXPrP.js → desktop-B0jJuG2r.js} +0 -0
  339. /package/dist/web/assets/{diff-BtOXapES.js → diff-CWqAAxoE.js} +0 -0
  340. /package/dist/web/assets/{dist-DB1Oaqcc.js → dist-B-EXdSYE.js} +0 -0
  341. /package/dist/web/assets/{dist-Di6G_5jU.js → dist-C0eNNfbt.js} +0 -0
  342. /package/dist/web/assets/{docker-DNsAo_qO.js → docker-CYFCJdIL.js} +0 -0
  343. /package/dist/web/assets/{dotenv-D6Pl6aOU.js → dotenv-CKDUjURg.js} +0 -0
  344. /package/dist/web/assets/{download-zCATy4x4.js → download-DG3_9xXy.js} +0 -0
  345. /package/dist/web/assets/{dracula-C3m-w12D.js → dracula-CSoPspHE.js} +0 -0
  346. /package/dist/web/assets/{dracula-soft-BYqvXm6Z.js → dracula-soft-BuFjw5L1.js} +0 -0
  347. /package/dist/web/assets/{dream-maker-DZAPbPTi.js → dream-maker-B6PdDRZu.js} +0 -0
  348. /package/dist/web/assets/{emacs-lisp-Ao5SW8ay.js → emacs-lisp-CMcXvD0G.js} +0 -0
  349. /package/dist/web/assets/{everforest-dark-uC8QYotQ.js → everforest-dark-cU8-wYzi.js} +0 -0
  350. /package/dist/web/assets/{everforest-light-CTgsVNMr.js → everforest-light-KhorllqK.js} +0 -0
  351. /package/dist/web/assets/{fennel-WuBw6IR1.js → fennel-BCELZK87.js} +0 -0
  352. /package/dist/web/assets/{file-exclamation-point-COAwgNGw.js → file-exclamation-point-CZ4DiR75.js} +0 -0
  353. /package/dist/web/assets/{fish-Byy9dusu.js → fish-BQc0y_jy.js} +0 -0
  354. /package/dist/web/assets/{fluent-CDxb_sgw.js → fluent-BTINnwF6.js} +0 -0
  355. /package/dist/web/assets/{format-bytes-BE_W3UBg.js → format-bytes-WVcFxJuT.js} +0 -0
  356. /package/dist/web/assets/{fortran-free-form-DKWSTamT.js → fortran-free-form-BQim9wDz.js} +0 -0
  357. /package/dist/web/assets/{gdscript-prYHMgtD.js → gdscript-03w5u8un.js} +0 -0
  358. /package/dist/web/assets/{gdshader-D-RM-SQk.js → gdshader-Dp2daNzU.js} +0 -0
  359. /package/dist/web/assets/{genie-CowkJhej.js → genie-CoNcjPiD.js} +0 -0
  360. /package/dist/web/assets/{gherkin-CLFpoVYJ.js → gherkin-NrPOSPQL.js} +0 -0
  361. /package/dist/web/assets/{github-dark-default-BK_1Qgb8.js → github-dark-default-DOKw-1cI.js} +0 -0
  362. /package/dist/web/assets/{github-dark-dimmed-Cv9lj6f-.js → github-dark-dimmed-DJRNMkEA.js} +0 -0
  363. /package/dist/web/assets/{github-dark-high-contrast-CW5ZgIDh.js → github-dark-high-contrast-Bj7jJ_Gs.js} +0 -0
  364. /package/dist/web/assets/{github-dark-nW2F-RLd.js → github-dark-z4RE9ZqA.js} +0 -0
  365. /package/dist/web/assets/{github-light-D4PqBHGZ.js → github-light-B4k_yMFu.js} +0 -0
  366. /package/dist/web/assets/{github-light-default-B-cHtJJV.js → github-light-default-BHc-Uzhs.js} +0 -0
  367. /package/dist/web/assets/{github-light-high-contrast-Dt0HJq50.js → github-light-high-contrast-CHisIywL.js} +0 -0
  368. /package/dist/web/assets/{gleam-DwSyXJWP.js → gleam-CfbypZ4q.js} +0 -0
  369. /package/dist/web/assets/{gn-Cv5WEzHc.js → gn-YoAjyhJa.js} +0 -0
  370. /package/dist/web/assets/{gnuplot-D7bRdY_M.js → gnuplot-xVkc1f1c.js} +0 -0
  371. /package/dist/web/assets/{go-DiRVJ22U.js → go-GPCwP3Gu.js} +0 -0
  372. /package/dist/web/assets/{groovy-BHAgLTeO.js → groovy-Crh4Yww9.js} +0 -0
  373. /package/dist/web/assets/{gruvbox-dark-hard-C8QZ3gzY.js → gruvbox-dark-hard-BluUFuDS.js} +0 -0
  374. /package/dist/web/assets/{gruvbox-dark-medium-Dp1eeid2.js → gruvbox-dark-medium-Cxk1FWQp.js} +0 -0
  375. /package/dist/web/assets/{gruvbox-dark-soft-Cwq0dWVj.js → gruvbox-dark-soft-CHXMiFmj.js} +0 -0
  376. /package/dist/web/assets/{gruvbox-light-hard-CLQCq2-w.js → gruvbox-light-hard-B6eKPjAD.js} +0 -0
  377. /package/dist/web/assets/{gruvbox-light-medium-APHsh6Mo.js → gruvbox-light-medium-pDwMm1ut.js} +0 -0
  378. /package/dist/web/assets/{gruvbox-light-soft-CX-fYc64.js → gruvbox-light-soft-Cxu6kHqK.js} +0 -0
  379. /package/dist/web/assets/{haskell-C4Tw-TDa.js → haskell-C6JKHjbK.js} +0 -0
  380. /package/dist/web/assets/{haxe-B7fSduTQ.js → haxe-BuBNdF0a.js} +0 -0
  381. /package/dist/web/assets/{hcl-Bi3ho6yC.js → hcl-DZpDdGj2.js} +0 -0
  382. /package/dist/web/assets/{hjson-BXwae2M1.js → hjson-CBkhYRuo.js} +0 -0
  383. /package/dist/web/assets/{hlsl-CRuQLBSa.js → hlsl-C5nMxnp9.js} +0 -0
  384. /package/dist/web/assets/{horizon-DtdQ6qjv.js → horizon-VAFvA6R6.js} +0 -0
  385. /package/dist/web/assets/{horizon-bright-BXSF_uKq.js → horizon-bright-BC0xn7T3.js} +0 -0
  386. /package/dist/web/assets/{houston-C6ASpUjT.js → houston-BxrUivmz.js} +0 -0
  387. /package/dist/web/assets/{hy-BrWBHtHY.js → hy-DLtOXoaH.js} +0 -0
  388. /package/dist/web/assets/{image-gallery-CGvlv8zR.js → image-gallery-Gnf7TdCR.js} +0 -0
  389. /package/dist/web/assets/{imba-C_JJXckG.js → imba-BdpFXM2W.js} +0 -0
  390. /package/dist/web/assets/{ini-DEE_vSHQ.js → ini-BInJO_T0.js} +0 -0
  391. /package/dist/web/assets/{java-CnmpcjcT.js → java-Dxuddnkb.js} +0 -0
  392. /package/dist/web/assets/{javascript-C-M7sa2e.js → javascript-CVamJfLY.js} +0 -0
  393. /package/dist/web/assets/{json-BjZ3dAk6.js → json-BLZ0ozYk.js} +0 -0
  394. /package/dist/web/assets/{json5-BQ2vpqjp.js → json5-BnXzmMKs.js} +0 -0
  395. /package/dist/web/assets/{jsonc-C5MjoWGx.js → jsonc-CSgkSga7.js} +0 -0
  396. /package/dist/web/assets/{jsonl-JvhrmQJI.js → jsonl-CY5W2nF2.js} +0 -0
  397. /package/dist/web/assets/{jsonnet-C5pdZVuo.js → jsonnet-CEJYH3sF.js} +0 -0
  398. /package/dist/web/assets/{jssm-Db17uybX.js → jssm-CsJc7Uhk.js} +0 -0
  399. /package/dist/web/assets/{jsx-tJp2Cyqu.js → jsx-jCiRaHU7.js} +0 -0
  400. /package/dist/web/assets/{kanagawa-dragon-BculT_Y1.js → kanagawa-dragon-DfoA_GxX.js} +0 -0
  401. /package/dist/web/assets/{kanagawa-lotus-yQgHUGwU.js → kanagawa-lotus-BOLYJpWd.js} +0 -0
  402. /package/dist/web/assets/{kanagawa-wave-CyGoWN4d.js → kanagawa-wave-DfKlbT1G.js} +0 -0
  403. /package/dist/web/assets/{kdl-Bn8R1REF.js → kdl-CmssIFTi.js} +0 -0
  404. /package/dist/web/assets/{kotlin-DWughK73.js → kotlin-BRsNgp6x.js} +0 -0
  405. /package/dist/web/assets/{kusto--serPb0x.js → kusto-T8X9jUab.js} +0 -0
  406. /package/dist/web/assets/{laserwave-DfAPJ1tt.js → laserwave-DkJMVJ8Z.js} +0 -0
  407. /package/dist/web/assets/{lean-UAm1HOKl.js → lean-C65KGVPq.js} +0 -0
  408. /package/dist/web/assets/{less-Xj6Ka0fF.js → less-exIPdDlf.js} +0 -0
  409. /package/dist/web/assets/{lib-DgNcCtj3.js → lib-mC1NZfuw.js} +0 -0
  410. /package/dist/web/assets/{libesm-CPh1Av0r.js → libesm-DSutUtl1.js} +0 -0
  411. /package/dist/web/assets/{light-plus-BfS7gPcj.js → light-plus-DiHUXAZt.js} +0 -0
  412. /package/dist/web/assets/{llvm-DvWiVwvU.js → llvm-CJBnEzFM.js} +0 -0
  413. /package/dist/web/assets/{log-Bo5z9bNz.js → log-DxMyUMuP.js} +0 -0
  414. /package/dist/web/assets/{logo-CrIjcMZT.js → logo-CC9NKzca.js} +0 -0
  415. /package/dist/web/assets/{luau-C9TsYwNt.js → luau-Bw10I6zf.js} +0 -0
  416. /package/dist/web/assets/{make-GYq4qVbx.js → make-C_6M90m6.js} +0 -0
  417. /package/dist/web/assets/{markdown-p5mNledS.js → markdown-bR9_R-LF.js} +0 -0
  418. /package/dist/web/assets/{material-theme-CWYOVxsP.js → material-theme-BUx2Qujn.js} +0 -0
  419. /package/dist/web/assets/{material-theme-darker-BDGty7YH.js → material-theme-darker-CRJrPgKm.js} +0 -0
  420. /package/dist/web/assets/{material-theme-lighter-JbgOgV3n.js → material-theme-lighter-CUAYppPa.js} +0 -0
  421. /package/dist/web/assets/{material-theme-ocean-EMOpLpa2.js → material-theme-ocean-DuINF1fg.js} +0 -0
  422. /package/dist/web/assets/{material-theme-palenight-CY5hgm7h.js → material-theme-palenight-W6_icGCj.js} +0 -0
  423. /package/dist/web/assets/{matlab-C-He_NTH.js → matlab-rfqn_b3z.js} +0 -0
  424. /package/dist/web/assets/{mdx-Cr2TR5fj.js → mdx-Bh1B_YOJ.js} +0 -0
  425. /package/dist/web/assets/{mermaid-BYc0-B0U.js → mermaid-Dxf6Ya2k.js} +0 -0
  426. /package/dist/web/assets/{min-dark-CMJwqJqB.js → min-dark-CivZ2L0h.js} +0 -0
  427. /package/dist/web/assets/{min-light-Cx6vFiEX.js → min-light-B1Ykqtma.js} +0 -0
  428. /package/dist/web/assets/{mipsasm-Bjer5HwK.js → mipsasm-DynHaM0d.js} +0 -0
  429. /package/dist/web/assets/{mojo-t90PR-Y2.js → mojo-Clw5PbGH.js} +0 -0
  430. /package/dist/web/assets/{monokai-dci_PdCm.js → monokai-DFIooFZT.js} +0 -0
  431. /package/dist/web/assets/{moonbit-AAzI-Hd-.js → moonbit-DnBSZWGM.js} +0 -0
  432. /package/dist/web/assets/{move-kwBhnhrG.js → move-CCcL2PfL.js} +0 -0
  433. /package/dist/web/assets/{narrat-CXww2YQL.js → narrat-BDarg5Lk.js} +0 -0
  434. /package/dist/web/assets/{nextflow-groovy-CJXsuXGB.js → nextflow-groovy-DrZOeCNW.js} +0 -0
  435. /package/dist/web/assets/{night-owl-_GD204Wr.js → night-owl-BnZZCK7v.js} +0 -0
  436. /package/dist/web/assets/{night-owl-light-DNgkw3kl.js → night-owl-light-CEwBsVHS.js} +0 -0
  437. /package/dist/web/assets/{nix-BgiorKFd.js → nix-amCzOPMR.js} +0 -0
  438. /package/dist/web/assets/{nord-CaBmcxFC.js → nord-BIs2BC6q.js} +0 -0
  439. /package/dist/web/assets/{nushell-DUh4UGx1.js → nushell-Y02fo4yw.js} +0 -0
  440. /package/dist/web/assets/{objective-c-Cl9KU86S.js → objective-c-7xOZtWW1.js} +0 -0
  441. /package/dist/web/assets/{objective-cpp-DVkIA8A0.js → objective-cpp-eVtjUvVB.js} +0 -0
  442. /package/dist/web/assets/{ocaml-vvoHTak0.js → ocaml-Bi6ZwqG4.js} +0 -0
  443. /package/dist/web/assets/{odin-Cyjw8woZ.js → odin-8xf1Y0S9.js} +0 -0
  444. /package/dist/web/assets/{one-dark-pro-B1cviILi.js → one-dark-pro-hVv-_y_b.js} +0 -0
  445. /package/dist/web/assets/{one-light-BPGUJeYI.js → one-light-CJJ3MtHt.js} +0 -0
  446. /package/dist/web/assets/{openscad-BLMdTUU8.js → openscad-B2HcywLk.js} +0 -0
  447. /package/dist/web/assets/{pascal-i5niy3e7.js → pascal-C7fllV_7.js} +0 -0
  448. /package/dist/web/assets/{pkl-CuOV7SsU.js → pkl-qvLC1IWP.js} +0 -0
  449. /package/dist/web/assets/{plastic-Bf_zE5KL.js → plastic-BT1wHZv2.js} +0 -0
  450. /package/dist/web/assets/{plsql-cfqEtMD3.js → plsql-1MsmdmJD.js} +0 -0
  451. /package/dist/web/assets/{plus-BM-Ty0fp.js → plus-BhMZqFsN.js} +0 -0
  452. /package/dist/web/assets/{po-CFJcWgjr.js → po-BigskytD.js} +0 -0
  453. /package/dist/web/assets/{poimandres-G5YoaIFf.js → poimandres-DuklniF7.js} +0 -0
  454. /package/dist/web/assets/{polar-rcjs3i9R.js → polar-e2pjN_sp.js} +0 -0
  455. /package/dist/web/assets/{postcss-CBKY1FTZ.js → postcss-DtAeYjWw.js} +0 -0
  456. /package/dist/web/assets/{powerquery-Db7SXLbO.js → powerquery-Cr2PtehI.js} +0 -0
  457. /package/dist/web/assets/{powershell-LFy3MUTP.js → powershell-BxFTGLJ4.js} +0 -0
  458. /package/dist/web/assets/{prisma-BE8GR1lH.js → prisma-COWJiwdZ.js} +0 -0
  459. /package/dist/web/assets/{prolog-DOn5lR1e.js → prolog-DFvGKRx6.js} +0 -0
  460. /package/dist/web/assets/{proto-wr-TpAK_.js → proto-CcK80lFt.js} +0 -0
  461. /package/dist/web/assets/{puppet-D2Dkv62u.js → puppet-BF60bZ4F.js} +0 -0
  462. /package/dist/web/assets/{purescript-DvgJgPdy.js → purescript-zL_69MzU.js} +0 -0
  463. /package/dist/web/assets/{python-C7TlkHhK.js → python-CIwKhfb_.js} +0 -0
  464. /package/dist/web/assets/{qmldir-CtZMwhcW.js → qmldir-CXNe04Lo.js} +0 -0
  465. /package/dist/web/assets/{qss-dNZ2btnl.js → qss-C8lAWe6G.js} +0 -0
  466. /package/dist/web/assets/{r-BlqnNkHS.js → r-CL5ZVL3_.js} +0 -0
  467. /package/dist/web/assets/{racket-CzRQrGc4.js → racket-BBfh0uh0.js} +0 -0
  468. /package/dist/web/assets/{raku-BwutWhBF.js → raku-o6E8R5Q3.js} +0 -0
  469. /package/dist/web/assets/{react-I_EwPIZi.js → react-CBTnT4sY.js} +0 -0
  470. /package/dist/web/assets/{red-BMXMywmL.js → red-GomRF2Xp.js} +0 -0
  471. /package/dist/web/assets/{reg-BqOKrIOw.js → reg-_ffDIvx9.js} +0 -0
  472. /package/dist/web/assets/{regexp-Bero1BN2.js → regexp-Bl5sF65W.js} +0 -0
  473. /package/dist/web/assets/{rel-BXKWIElA.js → rel-DgMdqDuj.js} +0 -0
  474. /package/dist/web/assets/{resolve-theme-B9ABAH_3.js → resolve-theme-CRt_7wpd.js} +0 -0
  475. /package/dist/web/assets/{riscv-BbbBYJBo.js → riscv-8b3-Ye4X.js} +0 -0
  476. /package/dist/web/assets/{ron-BtVTWW4b.js → ron-DrmU1KHP.js} +0 -0
  477. /package/dist/web/assets/{rose-pine-hvkvQzvU.js → rose-pine-C_-E2tF1.js} +0 -0
  478. /package/dist/web/assets/{rose-pine-dawn-D7lwhUei.js → rose-pine-dawn-DEfhNlFH.js} +0 -0
  479. /package/dist/web/assets/{rose-pine-moon-CoHDmsIw.js → rose-pine-moon-BdvX3gdn.js} +0 -0
  480. /package/dist/web/assets/{rosmsg-CdaZFgI8.js → rosmsg-B6GhGpd5.js} +0 -0
  481. /package/dist/web/assets/{rust-Dy2qsphD.js → rust-DmC97M1-.js} +0 -0
  482. /package/dist/web/assets/{sass-Bz7NVxDb.js → sass-B0tJOHLM.js} +0 -0
  483. /package/dist/web/assets/{save-C4z1p51e.js → save-CtIGOjmx.js} +0 -0
  484. /package/dist/web/assets/{scala-sXSwsNyq.js → scala-n8zaFOXv.js} +0 -0
  485. /package/dist/web/assets/{scheme-DS7TUbN7.js → scheme-BKD9ztBU.js} +0 -0
  486. /package/dist/web/assets/{sdbl-iISFvIep.js → sdbl-D8gB5-rS.js} +0 -0
  487. /package/dist/web/assets/{shellscript-BkIl4ApC.js → shellscript-BfXlf_Ao.js} +0 -0
  488. /package/dist/web/assets/{shield-check-C5laObJv.js → shield-check-B0iGUiOK.js} +0 -0
  489. /package/dist/web/assets/{shield-off-DULFtyLS.js → shield-off-BNLWBhcq.js} +0 -0
  490. /package/dist/web/assets/{slack-dark-B1eg0_m2.js → slack-dark-CylEddse.js} +0 -0
  491. /package/dist/web/assets/{slack-ochin-mdkc1ldu.js → slack-ochin-w8wg8vuC.js} +0 -0
  492. /package/dist/web/assets/{smalltalk-CORtd03t.js → smalltalk-hiAXA64u.js} +0 -0
  493. /package/dist/web/assets/{snazzy-light-Bc6Q2G89.js → snazzy-light-BwlV3Xty.js} +0 -0
  494. /package/dist/web/assets/{solarized-dark-CF83zRXM.js → solarized-dark-vmNGdykz.js} +0 -0
  495. /package/dist/web/assets/{solarized-light-BoKQZaYU.js → solarized-light-DGv_0JXq.js} +0 -0
  496. /package/dist/web/assets/{solidity-DOgi1N4w.js → solidity-Y7QSH0B1.js} +0 -0
  497. /package/dist/web/assets/{sparkles-Dqsf3hq6.js → sparkles-Dh-_J2Rd.js} +0 -0
  498. /package/dist/web/assets/{splunk-BXfw5ZLy.js → splunk-BtgpLjHi.js} +0 -0
  499. /package/dist/web/assets/{sql-BcVs-eX4.js → sql-CRHYhOia.js} +0 -0
  500. /package/dist/web/assets/{ssh-config-CLCtNkkd.js → ssh-config-DOqSs3au.js} +0 -0
  501. /package/dist/web/assets/{stylus-DdP992aO.js → stylus-crCAEaBT.js} +0 -0
  502. /package/dist/web/assets/{swift-BnGb6Lgc.js → swift-eE3rT7TC.js} +0 -0
  503. /package/dist/web/assets/{synthwave-84-cg9264l9.js → synthwave-84-BWy14LBX.js} +0 -0
  504. /package/dist/web/assets/{system-verilog-GbHpszs3.js → system-verilog-DC0-DZM4.js} +0 -0
  505. /package/dist/web/assets/{systemd-Dz-bNsDQ.js → systemd-to5p6N8I.js} +0 -0
  506. /package/dist/web/assets/{table-CHmxuh6M.js → table-Bbc783ko.js} +0 -0
  507. /package/dist/web/assets/{talonscript-CFIidoBA.js → talonscript-DoTcU8wm.js} +0 -0
  508. /package/dist/web/assets/{tasl-Cu-TRTKx.js → tasl-cNZvUs95.js} +0 -0
  509. /package/dist/web/assets/{tcl-DwCHCB1K.js → tcl-mZE8sZH8.js} +0 -0
  510. /package/dist/web/assets/{terraform-BzZw4T1z.js → terraform-CqHPpIfu.js} +0 -0
  511. /package/dist/web/assets/{tokyo-night-RKsj2-tv.js → tokyo-night-Tp2rTIZd.js} +0 -0
  512. /package/dist/web/assets/{toml-CirbOgDP.js → toml-CU_vscgn.js} +0 -0
  513. /package/dist/web/assets/{tsv-CraRcWdU.js → tsv-ik7iFB9D.js} +0 -0
  514. /package/dist/web/assets/{tsx-CjFg0lgw.js → tsx-BMvvMKiv.js} +0 -0
  515. /package/dist/web/assets/{turtle-B-WBIOa6.js → turtle-DBqKCq9o.js} +0 -0
  516. /package/dist/web/assets/{typescript-MpLarYn1.js → typescript-DXJDmMZZ.js} +0 -0
  517. /package/dist/web/assets/{typespec-B7QlHMZ_.js → typespec-CBseCMtZ.js} +0 -0
  518. /package/dist/web/assets/{typst-CcHSKFZj.js → typst-4oY25U9y.js} +0 -0
  519. /package/dist/web/assets/{use-is-mobile-BXGVvczu.js → use-is-mobile-D1weanbj.js} +0 -0
  520. /package/dist/web/assets/{utils-DoY4yTP-.js → utils-BNRH507E.js} +0 -0
  521. /package/dist/web/assets/{v-xTGhWZuD.js → v-BXaZ_1oy.js} +0 -0
  522. /package/dist/web/assets/{vala-DwebjH3H.js → vala-BImWJE7z.js} +0 -0
  523. /package/dist/web/assets/{vb-BxJT2RAy.js → vb-CLfj2_sy.js} +0 -0
  524. /package/dist/web/assets/{vendor-xterm-CU6zIYMB.js → vendor-xterm-_yyu5n32.js} +0 -0
  525. /package/dist/web/assets/{verilog-CvV6RHPD.js → verilog-BWa8Ed2b.js} +0 -0
  526. /package/dist/web/assets/{vesper-CY3qd7E_.js → vesper-BGj1cg6m.js} +0 -0
  527. /package/dist/web/assets/{vhdl-B9ZX-sUL.js → vhdl-mByK7mlx.js} +0 -0
  528. /package/dist/web/assets/{viml-Y42h_ExQ.js → viml-CugmlW5g.js} +0 -0
  529. /package/dist/web/assets/{vitesse-black-DkXP6Sv-.js → vitesse-black-vPdpy9TL.js} +0 -0
  530. /package/dist/web/assets/{vitesse-dark-B9CkIB6r.js → vitesse-dark-BuQK3dUh.js} +0 -0
  531. /package/dist/web/assets/{vitesse-light-C7DHrJCK.js → vitesse-light-B3nz1XL9.js} +0 -0
  532. /package/dist/web/assets/{vyper-Cnd9s5j-.js → vyper-DH_GTIHG.js} +0 -0
  533. /package/dist/web/assets/{wasm-DQE71XTB.js → wasm-C-LF9GjX.js} +0 -0
  534. /package/dist/web/assets/{wasm-iWe7Fzjc.js → wasm-DfVbVJlW.js} +0 -0
  535. /package/dist/web/assets/{wenyan-Bc5Pnm9l.js → wenyan-CzQkHyHx.js} +0 -0
  536. /package/dist/web/assets/{wgsl-D-YUAWkP.js → wgsl-Du_M1DW9.js} +0 -0
  537. /package/dist/web/assets/{wikitext-DYQDUYf2.js → wikitext-BWN_w5S7.js} +0 -0
  538. /package/dist/web/assets/{wit-P6u7mfwy.js → wit-BR13v5HD.js} +0 -0
  539. /package/dist/web/assets/{wolfram-6SXLUqao.js → wolfram-BoXxp_Xl.js} +0 -0
  540. /package/dist/web/assets/{x-BcqfTY_7.js → x-nhriOX9o.js} +0 -0
  541. /package/dist/web/assets/{yaml-CQiMLVcZ.js → yaml-DpR_EF-d.js} +0 -0
  542. /package/dist/web/assets/{zenscript-DFMywo_P.js → zenscript-C-EdUtUd.js} +0 -0
  543. /package/dist/web/assets/{zig-CtAjaIiF.js → zig-BD4eA5nU.js} +0 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Pure reconciliation between the off-grid window panels and the windows that are
3
+ * actually alive.
4
+ *
5
+ * The two halves are persisted separately (windows are global geometry, panels hold live
6
+ * tabs), so a reload can land on either side alone: a panel whose window blob was dropped
7
+ * would hide its tabs with no way to reach them, and a window whose panel is gone would
8
+ * float empty. Mobile is the same case by construction — the window layer renders
9
+ * nothing there, so no window is live and every detached tab comes back to the grid.
10
+ */
11
+ import type { Panel } from "./panel-utils";
12
+ import { isWindowPanelId, windowIdFromPanelId, windowPanelId } from "./panel-utils";
13
+ import type { Tab } from "./tab-store";
14
+
15
+ export interface ReconcileInput {
16
+ panels: Record<string, Panel>;
17
+ grid: string[][];
18
+ focusedPanelId: string;
19
+ /** Ids of the tab-host windows currently in the window store. */
20
+ liveWindowIds: readonly string[];
21
+ }
22
+
23
+ export interface ReconcileResult {
24
+ panels: Record<string, Panel>;
25
+ focusedPanelId: string;
26
+ /** Tab-host windows with no panel behind them — the caller closes these. */
27
+ windowIdsToClose: string[];
28
+ /** True when `panels`/`focusedPanelId` differ from the input and must be committed. */
29
+ changed: boolean;
30
+ }
31
+
32
+ /**
33
+ * Identity of one reconcile run, for the caller's once-per-run guard.
34
+ *
35
+ * The viewport class belongs in the key, not just the project: crossing the `md`
36
+ * breakpoint unmounts or remounts the entire window layer, which is precisely the split
37
+ * this reconciles. Keying on the project alone lets the first desktop run suppress the
38
+ * mobile repair that must follow it (and the reverse on the way back).
39
+ */
40
+ export function reconcileRunKey(project: string, isMobile: boolean): string {
41
+ return `${project}|${isMobile}`;
42
+ }
43
+
44
+ /** Append tabs to a panel without disturbing which tab the user was last looking at. */
45
+ function appendTabs(target: Panel, tabs: Tab[]): Panel {
46
+ const known = new Set(target.tabs.map((t) => t.id));
47
+ const incoming = tabs.filter((t) => !known.has(t.id));
48
+ if (incoming.length === 0) return target;
49
+ const merged = [...target.tabs, ...incoming];
50
+ return {
51
+ ...target,
52
+ tabs: merged,
53
+ tabHistory: [...target.tabHistory, ...incoming.map((t) => t.id)],
54
+ activeTabId: target.activeTabId ?? merged[merged.length - 1]!.id,
55
+ };
56
+ }
57
+
58
+ export function reconcileTabHostWindows(input: ReconcileInput): ReconcileResult {
59
+ const { grid, liveWindowIds } = input;
60
+ const live = new Set(liveWindowIds);
61
+ const flat = grid.flat();
62
+
63
+ const panels = { ...input.panels };
64
+ let focusedPanelId = input.focusedPanelId;
65
+ let changed = false;
66
+
67
+ // Panels whose window is gone: move the tabs back into the grid and drop the panel.
68
+ // With no grid panel to receive them the panel is left untouched — losing the tabs
69
+ // would be worse than a panel that reconciles on the next load.
70
+ const target = flat.includes(focusedPanelId) ? focusedPanelId : flat[0];
71
+ for (const [panelId, panel] of Object.entries(input.panels)) {
72
+ if (!isWindowPanelId(panelId)) continue;
73
+ const windowId = windowIdFromPanelId(panelId);
74
+ if (windowId && live.has(windowId)) continue;
75
+ if (!target) continue;
76
+ const receiver = panels[target];
77
+ if (!receiver) continue;
78
+ panels[target] = appendTabs(receiver, panel.tabs);
79
+ delete panels[panelId];
80
+ changed = true;
81
+ }
82
+
83
+ // Windows with no panel: nothing can ever render in them.
84
+ const windowIdsToClose = liveWindowIds.filter((id) => !panels[windowPanelId(id)]);
85
+
86
+ // Focus must sit on a grid panel, or the next tab opened with no explicit panel lands
87
+ // off-grid (inside a window, or nowhere at all once its panel is deleted).
88
+ if (!flat.includes(focusedPanelId)) {
89
+ const fallback = flat[0];
90
+ if (fallback) {
91
+ focusedPanelId = fallback;
92
+ changed = true;
93
+ }
94
+ }
95
+
96
+ return { panels, focusedPanelId, windowIdsToClose, changed };
97
+ }
@@ -1,21 +0,0 @@
1
- // How many groups would the whole-app kill button be enabled for, per the live snapshot?
2
- import { Database } from "bun:sqlite";
3
- import { homedir } from "node:os";
4
- import { resolve } from "node:path";
5
- import { isGroupProtected } from "../src/web/components/system/build-kill-request.ts";
6
-
7
- const db = new Database(resolve(homedir(), ".ppm", "ppm.dev.db"), { readonly: true });
8
- const row = db.query("SELECT value FROM config WHERE key = 'auth'").get() as { value: string } | null;
9
- const token = row ? JSON.parse(row.value)?.token : undefined;
10
- const res = await fetch("http://localhost:8081/api/system/resources?processes=1", { headers: token ? { Authorization: `Bearer ${token}` } : {} });
11
- const snap = (await res.json()).data;
12
- const byPid = new Map(snap.processes.map((p: any) => [p.pid, p]));
13
- let enabled = 0, disabled = 0;
14
- const protectedNames = new Map<string, number>();
15
- for (const g of snap.groups) {
16
- const members = g.pids.map((pid: number) => byPid.get(pid)).filter(Boolean);
17
- if (isGroupProtected(members)) { disabled++; for (const m of members) if (m.protected) protectedNames.set(m.name, (protectedNames.get(m.name) ?? 0) + 1); }
18
- else enabled++;
19
- }
20
- console.log({ groups: snap.groups.length, enabled, disabled, processes: snap.processes.length, protectedProcs: snap.processes.filter((p: any) => p.protected).length });
21
- console.log("protected names in disabled groups:", [...protectedNames].slice(0, 12));
package/.spike/s.err DELETED
@@ -1,63 +0,0 @@
1
- $ bun run --hot src/server/index.ts __serve__ 8081 0.0.0.0 dev
2
- [accounts] Refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
3
- [accounts] Refresh token rejected for developers@nxsys.tech — preserving token for recovery (not clearing)
4
- [accounts] Auto-refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: Token refresh failed for account f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
5
- [accounts] Refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
6
- [accounts] Refresh token rejected for developers@nxsys.tech — preserving token for recovery (not clearing)
7
- [accounts] Pre-flight refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: Token refresh failed for account f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
8
- [accounts] Refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
9
- [accounts] Refresh token rejected for developers@nxsys.tech — preserving token for recovery (not clearing)
10
- [accounts] Auto-refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: Token refresh failed for account f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
11
- [accounts] Refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
12
- [accounts] Refresh token rejected for developers@nxsys.tech — preserving token for recovery (not clearing)
13
- [accounts] Pre-flight refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: Token refresh failed for account f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
14
- [accounts] Refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
15
- [accounts] Refresh token rejected for developers@nxsys.tech — preserving token for recovery (not clearing)
16
- [accounts] Auto-refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: Token refresh failed for account f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
17
- [accounts] Refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
18
- [accounts] Refresh token rejected for developers@nxsys.tech — preserving token for recovery (not clearing)
19
- [accounts] Pre-flight refresh failed for f287efe4-0523-4d10-8afa-6b53150a3682: Token refresh failed for account f287efe4-0523-4d10-8afa-6b53150a3682: 400 {"error": "invalid_grant", "error_description": "Refresh token expired"}
20
- [serve] Port 8081 still releasing, waiting...
21
- [serve] Port 8081 still releasing, waiting...
22
- [serve] Port 8081 still releasing, waiting...
23
- [serve] Port 8081 still releasing, waiting...
24
- [serve] Port 8081 still releasing, waiting...
25
- [serve] Port 8081 still releasing, waiting...
26
- [serve] Port 8081 still releasing, waiting...
27
- [serve] Port 8081 still releasing, waiting...
28
- [serve] Port 8081 still releasing, waiting...
29
- [serve] Port 8081 still releasing, waiting...
30
- [serve] Port 8081 still releasing, waiting...
31
- [serve] Port 8081 still releasing, waiting...
32
- [serve] Port 8081 still releasing, waiting...
33
- [serve] Port 8081 still releasing, waiting...
34
- [serve] Port 8081 still releasing, waiting...
35
- [serve] Port 8081 still releasing, waiting...
36
- [serve] Port 8081 still releasing, waiting...
37
- [serve] Port 8081 still releasing, waiting...
38
- [serve] Port 8081 still releasing, waiting...
39
- [serve] Port 8081 still releasing, waiting...
40
- [serve] Port 8081 still releasing, waiting...
41
- [serve] Port 8081 still releasing, waiting...
42
- [serve] Port 8081 still releasing, waiting...
43
- [serve] Port 8081 still releasing, waiting...
44
- [serve] Port 8081 still releasing, waiting...
45
- [serve] Port 8081 still releasing, waiting...
46
- [serve] Port 8081 still releasing, waiting...
47
- [serve] Port 8081 still releasing, waiting...
48
- [serve] Port 8081 still releasing, waiting...
49
- [serve] Port 8081 still releasing, waiting...
50
- [serve] Port 8081 still releasing, waiting...
51
- [serve] Port 8081 still releasing, waiting...
52
- [serve] Port 8081 still releasing, waiting...
53
- [serve] Port 8081 still releasing, waiting...
54
- [serve] Port 8081 still releasing, waiting...
55
- [serve] Port 8081 still releasing, waiting...
56
- [serve] Port 8081 still releasing, waiting...
57
- [serve] Port 8081 still releasing, waiting...
58
-
59
- ✗ Port 8081 is still in use after waiting 10s.
60
- A stale process may be holding it. Run 'ppm stop', then start again.
61
- If it persists, run PowerShell as Admin: netsh int tcp reset (then restart).
62
-
63
- error: script "dev:server" exited with code 1
package/.spike/tunnel.err DELETED
@@ -1,22 +0,0 @@
1
- 2026-09-04T18:56:09Z INF Thank you for trying Cloudflare Tunnel. Doing so, without a Cloudflare account, is a quick way to experiment and try it out. However, be aware that these account-less Tunnels have no uptime guarantee, are subject to the Cloudflare Online Services Terms of Use (https://www.cloudflare.com/website-terms/), and Cloudflare reserves the right to investigate your use of Tunnels for violations of such terms. If you intend to use Tunnels in production you should use a pre-created named tunnel by following: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps
2
- 2026-09-04T18:56:09Z INF Requesting new quick Tunnel on trycloudflare.com...
3
- 2026-09-04T18:56:13Z INF +--------------------------------------------------------------------------------------------+
4
- 2026-09-04T18:56:13Z INF | Your quick Tunnel has been created! Visit it at (it may take some time to be reachable): |
5
- 2026-09-04T18:56:13Z INF | https://cancellation-harold-more-tigers.trycloudflare.com |
6
- 2026-09-04T18:56:13Z INF +--------------------------------------------------------------------------------------------+
7
- 2026-09-04T18:56:13Z INF Cannot determine default configuration path. No file [config.yml config.yaml] in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp]
8
- 2026-09-04T18:56:13Z INF Version 2025.8.1 (Checksum b5d598b00cc3a28cabc5812d9f762819334614bae452db4e7f23eefe7b081556)
9
- 2026-09-04T18:56:13Z INF GOOS: windows, GOVersion: go1.24.2, GoArch: amd64
10
- 2026-09-04T18:56:13Z INF Settings: map[ha-connections:1 no-autoupdate:true protocol:quic url:http://localhost:5173]
11
- 2026-09-04T18:56:13Z INF cloudflared will not automatically update on Windows systems.
12
- 2026-09-04T18:56:13Z INF Generated Connector ID: f47e931b-a8fd-4f00-8ca3-408da700752e
13
- 2026-09-04T18:56:13Z INF Initial protocol quic
14
- 2026-09-04T18:56:13Z INF ICMP proxy will use 192.168.1.35 as source for IPv4
15
- 2026-09-04T18:56:13Z INF ICMP proxy will use 2405:4802:bfda:8c0::7ef in zone Wi-Fi as source for IPv6
16
- 2026-09-04T18:56:13Z ERR Cannot determine default origin certificate path. No file cert.pem in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp]. You need to specify the origin certificate path by specifying the origincert option in the configuration file, or set TUNNEL_ORIGIN_CERT environment variable originCertPath=
17
- 2026-09-04T18:56:13Z INF cloudflared does not support loading the system root certificate pool on Windows. Please use --origin-ca-pool <PATH> to specify the path to the certificate pool
18
- 2026-09-04T18:56:13Z INF ICMP proxy will use 192.168.1.35 as source for IPv4
19
- 2026-09-04T18:56:13Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=0 event=0 ip=198.41.200.193
20
- 2026-09-04T18:56:13Z INF ICMP proxy will use 2405:4802:bfda:8c0::7ef in zone Wi-Fi as source for IPv6
21
- 2026-09-04T18:56:13Z INF Starting metrics server on 127.0.0.1:20242/metrics
22
- 2026-09-04T18:56:13Z INF Registered tunnel connection connIndex=0 connection=c174dc70-ed73-417c-9fba-25c88a9c9c0e event=0 ip=198.41.200.193 location=sin11 protocol=quic
package/.spike/w.err DELETED
@@ -1,28 +0,0 @@
1
- $ bun run vite --config vite.config.ts
2
- (node:15420) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
3
- (Use `node --trace-deprecation ...` to show where the warning was created)
4
- 1:54:07 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
5
- 1:54:19 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
6
- 1:54:19 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
7
- 1:54:20 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
8
- 1:54:22 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
9
- 1:54:24 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
10
- 1:54:25 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
11
- 1:55:26 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
12
- 1:55:38 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
13
- 1:55:38 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
14
- 1:55:39 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
15
- 1:55:39 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
16
- 1:55:40 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
17
- 1:55:41 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
18
- 1:55:44 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
19
- 1:55:45 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
20
- 2:03:30 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
21
- 2:03:43 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
22
- 2:03:43 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
23
- 2:03:44 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
24
- 2:03:44 AM [vite] (client) [console.warn] Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
25
- 2:03:45 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
26
- 2:03:47 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
27
- 2:03:50 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
28
- 2:03:51 AM [vite] (client) [console.warn] [ws] WS not open (readyState=0) — queuing message
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./save-C4z1p51e.js";import{s as i}from"./api-client-BSB14J4w.js";import"./vendor-mermaid-DrwG0NYt.js";import"./settings-store-C20lqh0G.js";import{n as a}from"./utils-DoY4yTP-.js";import{$n as o,A as s,M as c,N as l,On as u,Qn as d,j as f,k as p,kn as m,s as h}from"./index-Ch8l9de-.js";import{t as g}from"./use-monaco-theme-DSCdlrjO.js";var _=e(t(),1),v=n();function y({metadata:e}){let t=e?.filePath,n=e?.name,a=e?.resourceType??`skill`,y=e?.scope??`user`,x=e?.readOnly===!0,S=e?.shadowed===!0,C=e?.shadowedBy,w=e?.project??``,[T,E]=(0,_.useState)(``),[D,O]=(0,_.useState)(``),[k,A]=(0,_.useState)(!0),[j,M]=(0,_.useState)(null),[N,P]=(0,_.useState)(!1),F=g(),I=(0,_.useRef)(``),L=T!==D;(0,_.useEffect)(()=>{let e=!1;return A(!0),M(null),c(t,w).then(t=>{e||(E(t.content),O(t.content),I.current=t.content)}).catch(t=>{e||M(t.message)}).finally(()=>{e||A(!1)}),()=>{e=!0}},[t,w]);let R=(0,_.useCallback)(async()=>{if(x||N)return;let e=I.current;if(e!==D){P(!0);try{await l(t,e,w),O(e),E(e),i.success(`Saved`),f.getState().reload()}catch(e){i.error(e.message)}finally{P(!1)}}},[t,w,D,x,N]);(0,_.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),R())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[R]);let z=s[a];return(0,v.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2 shrink-0`,children:[(0,v.jsx)(z,{className:`size-4 text-text-subtle`}),(0,v.jsx)(`span`,{className:`text-sm font-semibold`,children:n}),(0,v.jsx)(p,{scope:y}),L&&!x&&(0,v.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary`,title:`Unsaved changes`}),(0,v.jsx)(`div`,{className:`flex-1`}),(0,v.jsxs)(`span`,{className:`hidden sm:block text-[11px] text-text-subtle`,children:[a,` · markdown`]}),!x&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`button`,{onClick:()=>E(D),disabled:!L||N,className:`flex items-center gap-1 rounded px-2 py-1 text-xs text-text-secondary hover:bg-surface-elevated disabled:opacity-40`,children:[(0,v.jsx)(u,{className:`size-3.5`}),` Revert`]}),(0,v.jsxs)(`button`,{onClick:()=>void R(),disabled:!L||N,className:`flex items-center gap-1 rounded bg-primary px-2.5 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-40`,children:[N?(0,v.jsx)(o,{className:`size-3.5 animate-spin`}):(0,v.jsx)(r,{className:`size-3.5`}),` Save`]})]})]}),x&&(0,v.jsx)(b,{icon:d,tone:`muted`,children:`Bundled resource — read-only. Duplicate it (from the AI Resources panel) to make an editable copy.`}),S&&C&&(0,v.jsxs)(b,{icon:m,tone:`warn`,children:[`This `,a,` is overridden by another “`,C.name,`” from a higher-priority source (`,C.source,`). It is currently inactive.`]}),(0,v.jsx)(`div`,{className:`min-h-0 flex-1`,children:k?(0,v.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,v.jsx)(o,{className:`size-5 animate-spin text-primary`})}):j?(0,v.jsx)(`div`,{className:`p-6 text-center text-sm text-destructive`,children:j}):(0,v.jsx)(h,{height:`100%`,language:`markdown`,theme:F,value:T,onChange:e=>{let t=e??``;I.current=t,E(t)},options:{readOnly:x,minimap:{enabled:!1},fontSize:13,wordWrap:`on`,scrollBeyondLastLine:!1,lineNumbers:`on`}})})]})}function b({icon:e,tone:t,children:n}){return(0,v.jsxs)(`div`,{className:a(`flex items-start gap-2 px-3 py-2 text-[12px] shrink-0 border-b border-border`,t===`warn`?`bg-amber-500/10 text-amber-300`:`bg-surface-elevated text-text-secondary`),children:[(0,v.jsx)(e,{className:`mt-0.5 size-3.5 shrink-0`}),(0,v.jsx)(`span`,{children:n})]})}export{y as AiResourceEditor};
@@ -1 +0,0 @@
1
- import"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{i as e,n as t}from"./api-client-BSB14J4w.js";export{t as api,e as projectUrl};
@@ -1 +0,0 @@
1
- import"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import"./api-client-BSB14J4w.js";import{v as e}from"./api-settings-kQHV6pYZ.js";export{e as updateDeviceName};
@@ -1 +0,0 @@
1
- import{K as e}from"./vendor-mermaid-DrwG0NYt.js";export{e as createArchitectureServices};