@hienlh/ppm 0.23.6 → 0.23.8

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 (2360) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/CLAUDE.md +22 -1
  3. package/Dockerfile.test +8 -1
  4. package/assets/skills/ppm/SKILL.md +1 -1
  5. package/assets/skills/ppm/references/cli-reference.md +4 -4
  6. package/assets/skills/ppm/references/http-api.md +29 -1
  7. package/dist/web/assets/_basePickBy-Bw69zEQE.js +1 -0
  8. package/dist/web/assets/_basePickBy-Bw69zEQE.js.br +0 -0
  9. package/dist/web/assets/_basePickBy-Bw69zEQE.js.gz +0 -0
  10. package/dist/web/assets/_baseUniq-DAyolJ43.js +1 -0
  11. package/dist/web/assets/_baseUniq-DAyolJ43.js.br +0 -0
  12. package/dist/web/assets/_baseUniq-DAyolJ43.js.gz +0 -0
  13. package/dist/web/assets/accounts-settings-section-BNcPvEq1.js +1 -0
  14. package/dist/web/assets/accounts-settings-section-BNcPvEq1.js.br +0 -0
  15. package/dist/web/assets/accounts-settings-section-BNcPvEq1.js.gz +0 -0
  16. package/dist/web/assets/ai-resource-editor-DfVRMUHS.js +1 -0
  17. package/dist/web/assets/ai-resource-editor-DfVRMUHS.js.br +0 -0
  18. package/dist/web/assets/ai-resource-editor-DfVRMUHS.js.gz +0 -0
  19. package/dist/web/assets/ai-settings-section-B_0-P8jx.js +1 -0
  20. package/dist/web/assets/ai-settings-section-Ezhw4Fef.js +1 -0
  21. package/dist/web/assets/ai-settings-section-Ezhw4Fef.js.br +0 -0
  22. package/dist/web/assets/ai-settings-section-Ezhw4Fef.js.gz +0 -0
  23. package/dist/web/assets/angular-html-J6Ms52K8.js +1 -0
  24. package/dist/web/assets/angular-html-J6Ms52K8.js.br +0 -0
  25. package/dist/web/assets/angular-html-J6Ms52K8.js.gz +0 -0
  26. package/dist/web/assets/angular-ts-CAhRz96e.js +1 -0
  27. package/dist/web/assets/angular-ts-CAhRz96e.js.br +0 -0
  28. package/dist/web/assets/angular-ts-CAhRz96e.js.gz +0 -0
  29. package/dist/web/assets/api-client-CbrcysYC.js +1 -0
  30. package/dist/web/assets/api-client-F5Zi1sR0.js +1 -0
  31. package/dist/web/assets/api-client-F5Zi1sR0.js.br +0 -0
  32. package/dist/web/assets/api-client-F5Zi1sR0.js.gz +0 -0
  33. package/dist/web/assets/api-settings-BeINN5Dy.js +1 -0
  34. package/dist/web/assets/api-settings-BeINN5Dy.js.br +0 -0
  35. package/dist/web/assets/api-settings-BeINN5Dy.js.gz +0 -0
  36. package/dist/web/assets/api-settings-tYKJ5Fqk.js +1 -0
  37. package/dist/web/assets/api-themes-DiF-wuKh.js +1 -0
  38. package/dist/web/assets/apl-2MCcXlWR.js +1 -0
  39. package/dist/web/assets/apl-2MCcXlWR.js.br +0 -0
  40. package/dist/web/assets/apl-2MCcXlWR.js.gz +0 -0
  41. package/dist/web/assets/appearance-settings-section-CPOAp0fY.js +1 -0
  42. package/dist/web/assets/appearance-settings-section-CPOAp0fY.js.br +0 -0
  43. package/dist/web/assets/appearance-settings-section-CPOAp0fY.js.gz +0 -0
  44. package/dist/web/assets/apps-panel-Cz7_o-M4.js +1 -0
  45. package/dist/web/assets/apps-panel-Cz7_o-M4.js.br +0 -0
  46. package/dist/web/assets/apps-panel-Cz7_o-M4.js.gz +0 -0
  47. package/dist/web/assets/arc-tdiKo2LM.js +1 -0
  48. package/dist/web/assets/arc-tdiKo2LM.js.br +0 -0
  49. package/dist/web/assets/arc-tdiKo2LM.js.gz +0 -0
  50. package/dist/web/assets/architecture-PBZL5I3N-Dd8ecdVL.js +1 -0
  51. package/dist/web/assets/architectureDiagram-2XIMDMQ5-D3Kyv-1E.js +36 -0
  52. package/dist/web/assets/architectureDiagram-2XIMDMQ5-D3Kyv-1E.js.br +0 -0
  53. package/dist/web/assets/architectureDiagram-2XIMDMQ5-D3Kyv-1E.js.gz +0 -0
  54. package/dist/web/assets/astro-Df1OdN4m.js +1 -0
  55. package/dist/web/assets/astro-Df1OdN4m.js.br +0 -0
  56. package/dist/web/assets/astro-Df1OdN4m.js.gz +0 -0
  57. package/dist/web/assets/audio-preview-BrS2qNK0.js +1 -0
  58. package/dist/web/assets/audio-preview-BrS2qNK0.js.br +0 -0
  59. package/dist/web/assets/audio-preview-BrS2qNK0.js.gz +0 -0
  60. package/dist/web/assets/blade-Cd63UVub.js +1 -0
  61. package/dist/web/assets/blade-Cd63UVub.js.br +0 -0
  62. package/dist/web/assets/blade-Cd63UVub.js.gz +0 -0
  63. package/dist/web/assets/blockDiagram-WCTKOSBZ-BMAZdvRi.js +132 -0
  64. package/dist/web/assets/blockDiagram-WCTKOSBZ-BMAZdvRi.js.br +0 -0
  65. package/dist/web/assets/blockDiagram-WCTKOSBZ-BMAZdvRi.js.gz +0 -0
  66. package/dist/web/assets/branch-review-tab-BPx3kHrM.js +1 -0
  67. package/dist/web/assets/branch-review-tab-BPx3kHrM.js.br +0 -0
  68. package/dist/web/assets/branch-review-tab-BPx3kHrM.js.gz +0 -0
  69. package/dist/web/assets/bsl-1CuDa_M4.js +1 -0
  70. package/dist/web/assets/bsl-1CuDa_M4.js.br +0 -0
  71. package/dist/web/assets/bsl-1CuDa_M4.js.gz +0 -0
  72. package/dist/web/assets/button-CsmGH5xa.js +1 -0
  73. package/dist/web/assets/button-CsmGH5xa.js.br +0 -0
  74. package/dist/web/assets/button-CsmGH5xa.js.gz +0 -0
  75. package/dist/web/assets/c4Diagram-IC4MRINW-CAjD3Gn8.js +10 -0
  76. package/dist/web/assets/c4Diagram-IC4MRINW-CAjD3Gn8.js.br +0 -0
  77. package/dist/web/assets/c4Diagram-IC4MRINW-CAjD3Gn8.js.gz +0 -0
  78. package/dist/web/assets/cairo-DU1PMYXA.js +1 -0
  79. package/dist/web/assets/cairo-DU1PMYXA.js.br +0 -0
  80. package/dist/web/assets/cairo-DU1PMYXA.js.gz +0 -0
  81. package/dist/web/assets/channel-BKByU_R7.js +1 -0
  82. package/dist/web/assets/chat-preparation-cache-DoS7sdal.js +1 -0
  83. package/dist/web/assets/chat-preparation-cache-DoS7sdal.js.br +0 -0
  84. package/dist/web/assets/chat-preparation-cache-DoS7sdal.js.gz +0 -0
  85. package/dist/web/assets/chat-tab-BadDM_j8.js +1 -0
  86. package/dist/web/assets/chat-tab-BadDM_j8.js.br +0 -0
  87. package/dist/web/assets/chat-tab-BadDM_j8.js.gz +0 -0
  88. package/dist/web/assets/chat-tab-IqAY4c7p.js +15 -0
  89. package/dist/web/assets/chat-tab-IqAY4c7p.js.br +0 -0
  90. package/dist/web/assets/chat-tab-IqAY4c7p.js.gz +0 -0
  91. package/dist/web/assets/chunk-4BX2VUAB-Bn-YX9SD.js +1 -0
  92. package/dist/web/assets/chunk-55IACEB6-BF1QUNzF.js +1 -0
  93. package/dist/web/assets/chunk-7E7YKBS2-Y8i842vs.js +1 -0
  94. package/dist/web/assets/chunk-7R4GIKGN-aYUi4Dg7.js +80 -0
  95. package/dist/web/assets/chunk-7R4GIKGN-aYUi4Dg7.js.br +0 -0
  96. package/dist/web/assets/chunk-7R4GIKGN-aYUi4Dg7.js.gz +0 -0
  97. package/dist/web/assets/chunk-C72U2L5F-DePb5v0g.js +1 -0
  98. package/dist/web/assets/chunk-EGIJ26TM-Cf91EBG8.js +1 -0
  99. package/dist/web/assets/chunk-FMBD7UC4-DBgmdGFu.js +15 -0
  100. package/dist/web/assets/chunk-GEFDOKGD-ChmKs9PJ.js +2 -0
  101. package/dist/web/assets/chunk-GEFDOKGD-ChmKs9PJ.js.br +0 -0
  102. package/dist/web/assets/chunk-GEFDOKGD-ChmKs9PJ.js.gz +0 -0
  103. package/dist/web/assets/chunk-GLR3WWYH-B1nZul8I.js +2 -0
  104. package/dist/web/assets/chunk-GLR3WWYH-B1nZul8I.js.br +0 -0
  105. package/dist/web/assets/chunk-GLR3WWYH-B1nZul8I.js.gz +0 -0
  106. package/dist/web/assets/chunk-HHEYEP7N-CoR3TyGL.js +1 -0
  107. package/dist/web/assets/chunk-JSJVCQXG-BpatlovW.js +1 -0
  108. package/dist/web/assets/chunk-JSJVCQXG-BpatlovW.js.br +0 -0
  109. package/dist/web/assets/chunk-JSJVCQXG-BpatlovW.js.gz +0 -0
  110. package/dist/web/assets/chunk-KX2RTZJC-CTJV1WGB.js +1 -0
  111. package/dist/web/assets/chunk-KYZI473N-BxfmPzFJ.js +53 -0
  112. package/dist/web/assets/chunk-KYZI473N-BxfmPzFJ.js.br +0 -0
  113. package/dist/web/assets/chunk-KYZI473N-BxfmPzFJ.js.gz +0 -0
  114. package/dist/web/assets/chunk-L3YUKLVL-BExrHOyg.js +1 -0
  115. package/dist/web/assets/chunk-MX3YWQON-BG9ObxKs.js +1 -0
  116. package/dist/web/assets/chunk-MX3YWQON-BG9ObxKs.js.br +0 -0
  117. package/dist/web/assets/chunk-MX3YWQON-BG9ObxKs.js.gz +0 -0
  118. package/dist/web/assets/chunk-NQ4KR5QH-B8xmieTd.js +220 -0
  119. package/dist/web/assets/chunk-NQ4KR5QH-B8xmieTd.js.br +0 -0
  120. package/dist/web/assets/chunk-NQ4KR5QH-B8xmieTd.js.gz +0 -0
  121. package/dist/web/assets/chunk-O4XLMI2P-Cf2YvmZo.js +7 -0
  122. package/dist/web/assets/chunk-O4XLMI2P-Cf2YvmZo.js.br +0 -0
  123. package/dist/web/assets/chunk-O4XLMI2P-Cf2YvmZo.js.gz +0 -0
  124. package/dist/web/assets/chunk-OZEHJAEY-wW-79da1.js +1 -0
  125. package/dist/web/assets/chunk-OZEHJAEY-wW-79da1.js.br +0 -0
  126. package/dist/web/assets/chunk-OZEHJAEY-wW-79da1.js.gz +0 -0
  127. package/dist/web/assets/chunk-PQ6SQG4A-BhCLzZ_8.js +1 -0
  128. package/dist/web/assets/chunk-PQ6SQG4A-BhCLzZ_8.js.br +0 -0
  129. package/dist/web/assets/chunk-PQ6SQG4A-BhCLzZ_8.js.gz +0 -0
  130. package/dist/web/assets/chunk-PU5JKC2W-CKUcSNda.js +11 -0
  131. package/dist/web/assets/chunk-PU5JKC2W-CKUcSNda.js.br +0 -0
  132. package/dist/web/assets/chunk-PU5JKC2W-CKUcSNda.js.gz +0 -0
  133. package/dist/web/assets/chunk-QZHKN3VN-CxEEroyy.js +1 -0
  134. package/dist/web/assets/chunk-R5LLSJPH-C6YJaeiQ.js +1 -0
  135. package/dist/web/assets/chunk-WL4C6EOR-fpGz5Qkt.js +189 -0
  136. package/dist/web/assets/chunk-WL4C6EOR-fpGz5Qkt.js.br +0 -0
  137. package/dist/web/assets/chunk-WL4C6EOR-fpGz5Qkt.js.gz +0 -0
  138. package/dist/web/assets/chunk-XIRO2GV7-D4mb9uez.js +1 -0
  139. package/dist/web/assets/chunk-XPW4576I-BsnVFuiw.js +32 -0
  140. package/dist/web/assets/chunk-XPW4576I-BsnVFuiw.js.br +0 -0
  141. package/dist/web/assets/chunk-XPW4576I-BsnVFuiw.js.gz +0 -0
  142. package/dist/web/assets/chunk-XZSTWKYB-C5ZAMBUL.js +94 -0
  143. package/dist/web/assets/chunk-XZSTWKYB-C5ZAMBUL.js.br +0 -0
  144. package/dist/web/assets/chunk-XZSTWKYB-C5ZAMBUL.js.gz +0 -0
  145. package/dist/web/assets/chunk-YBOYWFTD-D_MZS495.js +1 -0
  146. package/dist/web/assets/classDiagram-VBA2DB6C-C8hWXhiY.js +1 -0
  147. package/dist/web/assets/classDiagram-v2-RAHNMMFH-CagMLDTJ.js +1 -0
  148. package/dist/web/assets/clone-BqgSwKma.js +1 -0
  149. package/dist/web/assets/cobol-Bf7PNJa-.js +1 -0
  150. package/dist/web/assets/cobol-Bf7PNJa-.js.br +0 -0
  151. package/dist/web/assets/cobol-Bf7PNJa-.js.gz +0 -0
  152. package/dist/web/assets/code-editor-Dmitw9QS.js +7 -0
  153. package/dist/web/assets/code-editor-Dmitw9QS.js.br +0 -0
  154. package/dist/web/assets/code-editor-Dmitw9QS.js.gz +0 -0
  155. package/dist/web/assets/codex-reset-credit-button-D2hal4bG.js +1 -0
  156. package/dist/web/assets/codex-reset-credit-button-D2hal4bG.js.br +0 -0
  157. package/dist/web/assets/codex-reset-credit-button-D2hal4bG.js.gz +0 -0
  158. package/dist/web/assets/coffee-DWtdhq5t.js +1 -0
  159. package/dist/web/assets/coffee-DWtdhq5t.js.br +0 -0
  160. package/dist/web/assets/coffee-DWtdhq5t.js.gz +0 -0
  161. package/dist/web/assets/conflict-editor-Cj_gUncw.js +19 -0
  162. package/dist/web/assets/conflict-editor-Cj_gUncw.js.br +0 -0
  163. package/dist/web/assets/conflict-editor-Cj_gUncw.js.gz +0 -0
  164. package/dist/web/assets/context-menu-CH1mvCwA.js +1 -0
  165. package/dist/web/assets/context-menu-CH1mvCwA.js.br +0 -0
  166. package/dist/web/assets/context-menu-CH1mvCwA.js.gz +0 -0
  167. package/dist/web/assets/cose-bilkent-S5V4N54A-Bl1C2PtT.js +1 -0
  168. package/dist/web/assets/cose-bilkent-S5V4N54A-Bl1C2PtT.js.br +0 -0
  169. package/dist/web/assets/cose-bilkent-S5V4N54A-Bl1C2PtT.js.gz +0 -0
  170. package/dist/web/assets/cpp-tzJ6DEF8.js +1 -0
  171. package/dist/web/assets/cpp-tzJ6DEF8.js.br +0 -0
  172. package/dist/web/assets/cpp-tzJ6DEF8.js.gz +0 -0
  173. package/dist/web/assets/crystal-D3O_7u8O.js +1 -0
  174. package/dist/web/assets/crystal-D3O_7u8O.js.br +0 -0
  175. package/dist/web/assets/crystal-D3O_7u8O.js.gz +0 -0
  176. package/dist/web/assets/csv-preview-Be3ODNj0.js +2 -0
  177. package/dist/web/assets/csv-preview-Be3ODNj0.js.br +0 -0
  178. package/dist/web/assets/csv-preview-Be3ODNj0.js.gz +0 -0
  179. package/dist/web/assets/dagre-KLK3FWXG-Dk_l3Pes.js +4 -0
  180. package/dist/web/assets/dagre-KLK3FWXG-Dk_l3Pes.js.br +0 -0
  181. package/dist/web/assets/dagre-KLK3FWXG-Dk_l3Pes.js.gz +0 -0
  182. package/dist/web/assets/dagre-Xi7wK-JA.js +1 -0
  183. package/dist/web/assets/dagre-Xi7wK-JA.js.br +0 -0
  184. package/dist/web/assets/dagre-Xi7wK-JA.js.gz +0 -0
  185. package/dist/web/assets/data-grid-overlay-editor-BtbgZvja.js +1 -0
  186. package/dist/web/assets/data-grid-overlay-editor-BtbgZvja.js.br +0 -0
  187. package/dist/web/assets/data-grid-overlay-editor-BtbgZvja.js.gz +0 -0
  188. package/dist/web/assets/database-viewer-B1b--4y8.js +1 -0
  189. package/dist/web/assets/database-viewer-B1b--4y8.js.br +0 -0
  190. package/dist/web/assets/database-viewer-B1b--4y8.js.gz +0 -0
  191. package/dist/web/assets/design-export-client-D9h9wJ3e.js +1 -0
  192. package/dist/web/assets/design-export-client-D9h9wJ3e.js.br +0 -0
  193. package/dist/web/assets/design-export-client-D9h9wJ3e.js.gz +0 -0
  194. package/dist/web/assets/design-responsive-dialog-BhyR-zhE.js +1 -0
  195. package/dist/web/assets/design-responsive-dialog-BhyR-zhE.js.br +0 -0
  196. package/dist/web/assets/design-responsive-dialog-BhyR-zhE.js.gz +0 -0
  197. package/dist/web/assets/design-tab-8wi0IHss.js +33 -0
  198. package/dist/web/assets/design-tab-8wi0IHss.js.br +0 -0
  199. package/dist/web/assets/design-tab-8wi0IHss.js.gz +0 -0
  200. package/dist/web/assets/designs-sidebar-panel-D5-1Q8zQ.js +1 -0
  201. package/dist/web/assets/designs-sidebar-panel-D5-1Q8zQ.js.br +0 -0
  202. package/dist/web/assets/designs-sidebar-panel-D5-1Q8zQ.js.gz +0 -0
  203. package/dist/web/assets/diagram-E7M64L7V-CMHanwJ6.js +24 -0
  204. package/dist/web/assets/diagram-E7M64L7V-CMHanwJ6.js.br +0 -0
  205. package/dist/web/assets/diagram-E7M64L7V-CMHanwJ6.js.gz +0 -0
  206. package/dist/web/assets/diagram-IFDJBPK2-C7JWw7ZZ.js +43 -0
  207. package/dist/web/assets/diagram-IFDJBPK2-C7JWw7ZZ.js.br +0 -0
  208. package/dist/web/assets/diagram-IFDJBPK2-C7JWw7ZZ.js.gz +0 -0
  209. package/dist/web/assets/diagram-P4PSJMXO-C7U4pK7W.js +24 -0
  210. package/dist/web/assets/diagram-P4PSJMXO-C7U4pK7W.js.br +0 -0
  211. package/dist/web/assets/diagram-P4PSJMXO-C7U4pK7W.js.gz +0 -0
  212. package/dist/web/assets/dialog-z8PLkL8n.js +1 -0
  213. package/dist/web/assets/dialog-z8PLkL8n.js.br +0 -0
  214. package/dist/web/assets/dialog-z8PLkL8n.js.gz +0 -0
  215. package/dist/web/assets/diff-viewer-Dcxk6UTG.js +4 -0
  216. package/dist/web/assets/diff-viewer-Dcxk6UTG.js.br +0 -0
  217. package/dist/web/assets/diff-viewer-Dcxk6UTG.js.gz +0 -0
  218. package/dist/web/assets/docx-preview-b-Ui9jDq.js +12 -0
  219. package/dist/web/assets/docx-preview-b-Ui9jDq.js.br +0 -0
  220. package/dist/web/assets/docx-preview-b-Ui9jDq.js.gz +0 -0
  221. package/dist/web/assets/edge-Ken4Hk5e.js +1 -0
  222. package/dist/web/assets/edge-Ken4Hk5e.js.br +0 -0
  223. package/dist/web/assets/edge-Ken4Hk5e.js.gz +0 -0
  224. package/dist/web/assets/edit-diff-preview-DxDAtYhi.js +7 -0
  225. package/dist/web/assets/edit-diff-preview-DxDAtYhi.js.br +0 -0
  226. package/dist/web/assets/edit-diff-preview-DxDAtYhi.js.gz +0 -0
  227. package/dist/web/assets/editor-language-service-BVJQnTSV.js +1 -0
  228. package/dist/web/assets/editor-language-service-BVJQnTSV.js.br +0 -0
  229. package/dist/web/assets/editor-language-service-BVJQnTSV.js.gz +0 -0
  230. package/dist/web/assets/elixir-qzSsEy1Q.js +1 -0
  231. package/dist/web/assets/elixir-qzSsEy1Q.js.br +0 -0
  232. package/dist/web/assets/elixir-qzSsEy1Q.js.gz +0 -0
  233. package/dist/web/assets/elm-BKU79v-o.js +1 -0
  234. package/dist/web/assets/elm-BKU79v-o.js.br +0 -0
  235. package/dist/web/assets/elm-BKU79v-o.js.gz +0 -0
  236. package/dist/web/assets/erDiagram-INFDFZHY-D1kHE5Qj.js +70 -0
  237. package/dist/web/assets/erDiagram-INFDFZHY-D1kHE5Qj.js.br +0 -0
  238. package/dist/web/assets/erDiagram-INFDFZHY-D1kHE5Qj.js.gz +0 -0
  239. package/dist/web/assets/erb-CUMr2kDy.js +1 -0
  240. package/dist/web/assets/erb-CUMr2kDy.js.br +0 -0
  241. package/dist/web/assets/erb-CUMr2kDy.js.gz +0 -0
  242. package/dist/web/assets/erlang-DPA9imAd.js +1 -0
  243. package/dist/web/assets/erlang-DPA9imAd.js.br +0 -0
  244. package/dist/web/assets/erlang-DPA9imAd.js.gz +0 -0
  245. package/dist/web/assets/esm-DShyAo_4.js +2 -0
  246. package/dist/web/assets/esm-DShyAo_4.js.br +0 -0
  247. package/dist/web/assets/esm-DShyAo_4.js.gz +0 -0
  248. package/dist/web/assets/explorer-body-CTkrlrI3.js +2 -0
  249. package/dist/web/assets/explorer-body-CTkrlrI3.js.br +0 -0
  250. package/dist/web/assets/explorer-body-CTkrlrI3.js.gz +0 -0
  251. package/dist/web/assets/explorer-window-content-DH5AD3Ng.js +1 -0
  252. package/dist/web/assets/explorer-window-content-DH5AD3Ng.js.br +0 -0
  253. package/dist/web/assets/explorer-window-content-DH5AD3Ng.js.gz +0 -0
  254. package/dist/web/assets/extension-manager-section-BJr6ccWw.js +1 -0
  255. package/dist/web/assets/extension-manager-section-BJr6ccWw.js.br +0 -0
  256. package/dist/web/assets/extension-manager-section-BJr6ccWw.js.gz +0 -0
  257. package/dist/web/assets/extension-webview-CYNXHd8D.js +12 -0
  258. package/dist/web/assets/extension-webview-CYNXHd8D.js.br +0 -0
  259. package/dist/web/assets/extension-webview-CYNXHd8D.js.gz +0 -0
  260. package/dist/web/assets/file-icons-Ed_yLyef.js +1 -0
  261. package/dist/web/assets/file-icons-Ed_yLyef.js.br +0 -0
  262. package/dist/web/assets/file-icons-Ed_yLyef.js.gz +0 -0
  263. package/dist/web/assets/file-store-DCU7_YyB.js +1 -0
  264. package/dist/web/assets/file-store-DCU7_YyB.js.br +0 -0
  265. package/dist/web/assets/file-store-DCU7_YyB.js.gz +0 -0
  266. package/dist/web/assets/files-settings-section-JX7o4lex.js +1 -0
  267. package/dist/web/assets/files-settings-section-JX7o4lex.js.br +0 -0
  268. package/dist/web/assets/files-settings-section-JX7o4lex.js.gz +0 -0
  269. package/dist/web/assets/flowDiagram-PKNHOUZH-5j6r0h8E.js +162 -0
  270. package/dist/web/assets/flowDiagram-PKNHOUZH-5j6r0h8E.js.br +0 -0
  271. package/dist/web/assets/flowDiagram-PKNHOUZH-5j6r0h8E.js.gz +0 -0
  272. package/dist/web/assets/format-bytes-DZ8bW_uF.js +1 -0
  273. package/dist/web/assets/format-file-meta-B0ZpqzSM.js +1 -0
  274. package/dist/web/assets/format-file-meta-B0ZpqzSM.js.br +0 -0
  275. package/dist/web/assets/format-file-meta-B0ZpqzSM.js.gz +0 -0
  276. package/dist/web/assets/fortran-fixed-form-BnRe75vJ.js +1 -0
  277. package/dist/web/assets/fortran-fixed-form-BnRe75vJ.js.br +0 -0
  278. package/dist/web/assets/fortran-fixed-form-BnRe75vJ.js.gz +0 -0
  279. package/dist/web/assets/fs-api-vF_bQoeL.js +1 -0
  280. package/dist/web/assets/fs-api-vF_bQoeL.js.br +0 -0
  281. package/dist/web/assets/fs-api-vF_bQoeL.js.gz +0 -0
  282. package/dist/web/assets/fsharp-C0D14cqr.js +1 -0
  283. package/dist/web/assets/fsharp-C0D14cqr.js.br +0 -0
  284. package/dist/web/assets/fsharp-C0D14cqr.js.gz +0 -0
  285. package/dist/web/assets/ganttDiagram-A5KZAMGK-CJX_hRxO.js +292 -0
  286. package/dist/web/assets/ganttDiagram-A5KZAMGK-CJX_hRxO.js.br +0 -0
  287. package/dist/web/assets/ganttDiagram-A5KZAMGK-CJX_hRxO.js.gz +0 -0
  288. package/dist/web/assets/gdresource-DDQStAPx.js +1 -0
  289. package/dist/web/assets/gdresource-DDQStAPx.js.br +0 -0
  290. package/dist/web/assets/gdresource-DDQStAPx.js.gz +0 -0
  291. package/dist/web/assets/general-settings-section-kF94Mz5q.js +1 -0
  292. package/dist/web/assets/general-settings-section-kF94Mz5q.js.br +0 -0
  293. package/dist/web/assets/general-settings-section-kF94Mz5q.js.gz +0 -0
  294. package/dist/web/assets/git-commit-BcF7ip8n.js +1 -0
  295. package/dist/web/assets/git-commit-BcF7ip8n.js.br +2 -0
  296. package/dist/web/assets/git-commit-BcF7ip8n.js.gz +0 -0
  297. package/dist/web/assets/git-log-panel-Crlp9ofM.js +1 -0
  298. package/dist/web/assets/git-log-panel-Crlp9ofM.js.br +0 -0
  299. package/dist/web/assets/git-log-panel-Crlp9ofM.js.gz +0 -0
  300. package/dist/web/assets/git-rebase-DQ-DGs9P.js +1 -0
  301. package/dist/web/assets/git-repo-store-CdoOpvmf.js +1 -0
  302. package/dist/web/assets/git-repo-store-CdoOpvmf.js.br +0 -0
  303. package/dist/web/assets/git-repo-store-CdoOpvmf.js.gz +0 -0
  304. package/dist/web/assets/gitGraph-HDMCJU4V-Dwqx7AzH.js +1 -0
  305. package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-DnkwBYek.js +65 -0
  306. package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-DnkwBYek.js.br +0 -0
  307. package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-DnkwBYek.js.gz +0 -0
  308. package/dist/web/assets/glide-data-grid-O6MO5dKU.js +141 -0
  309. package/dist/web/assets/glide-data-grid-O6MO5dKU.js.br +0 -0
  310. package/dist/web/assets/glide-data-grid-O6MO5dKU.js.gz +0 -0
  311. package/dist/web/assets/glimmer-js-Cn05Qf4f.js +1 -0
  312. package/dist/web/assets/glimmer-js-Cn05Qf4f.js.br +0 -0
  313. package/dist/web/assets/glimmer-js-Cn05Qf4f.js.gz +0 -0
  314. package/dist/web/assets/glimmer-ts-ukNFxH-o.js +1 -0
  315. package/dist/web/assets/glimmer-ts-ukNFxH-o.js.br +0 -0
  316. package/dist/web/assets/glimmer-ts-ukNFxH-o.js.gz +0 -0
  317. package/dist/web/assets/glsl-D7XHVdFd.js +1 -0
  318. package/dist/web/assets/glsl-D7XHVdFd.js.br +0 -0
  319. package/dist/web/assets/glsl-D7XHVdFd.js.gz +0 -0
  320. package/dist/web/assets/graphlib-otYit1an.js +1 -0
  321. package/dist/web/assets/graphlib-otYit1an.js.br +0 -0
  322. package/dist/web/assets/graphlib-otYit1an.js.gz +0 -0
  323. package/dist/web/assets/graphql-BujSBt9z.js +1 -0
  324. package/dist/web/assets/graphql-BujSBt9z.js.br +0 -0
  325. package/dist/web/assets/graphql-BujSBt9z.js.gz +0 -0
  326. package/dist/web/assets/group-chat-tab-DGLSGf37.js +1 -0
  327. package/dist/web/assets/group-chat-tab-DGLSGf37.js.br +0 -0
  328. package/dist/web/assets/group-chat-tab-DGLSGf37.js.gz +0 -0
  329. package/dist/web/assets/hack-zmnOVU3R.js +1 -0
  330. package/dist/web/assets/hack-zmnOVU3R.js.br +0 -0
  331. package/dist/web/assets/hack-zmnOVU3R.js.gz +0 -0
  332. package/dist/web/assets/haml-DIs8wmxP.js +1 -0
  333. package/dist/web/assets/haml-DIs8wmxP.js.br +0 -0
  334. package/dist/web/assets/haml-DIs8wmxP.js.gz +0 -0
  335. package/dist/web/assets/handlebars-BjIyUuCC.js +1 -0
  336. package/dist/web/assets/handlebars-BjIyUuCC.js.br +0 -0
  337. package/dist/web/assets/handlebars-BjIyUuCC.js.gz +0 -0
  338. package/dist/web/assets/html-Dgrt7dRq.js +1 -0
  339. package/dist/web/assets/html-Dgrt7dRq.js.br +0 -0
  340. package/dist/web/assets/html-Dgrt7dRq.js.gz +0 -0
  341. package/dist/web/assets/html-derivative-CsPUnWon.js +1 -0
  342. package/dist/web/assets/http-CUl13kbR.js +1 -0
  343. package/dist/web/assets/http-CUl13kbR.js.br +0 -0
  344. package/dist/web/assets/http-CUl13kbR.js.gz +0 -0
  345. package/dist/web/assets/hurl-BXqL73E2.js +1 -0
  346. package/dist/web/assets/hurl-BXqL73E2.js.br +0 -0
  347. package/dist/web/assets/hurl-BXqL73E2.js.gz +0 -0
  348. package/dist/web/assets/hxml-DXKLhcpl.js +1 -0
  349. package/dist/web/assets/hxml-DXKLhcpl.js.br +0 -0
  350. package/dist/web/assets/hxml-DXKLhcpl.js.gz +0 -0
  351. package/dist/web/assets/image-preview-DuODZoNO.js +1 -0
  352. package/dist/web/assets/index-BmsPSBtF.css +1 -0
  353. package/dist/web/assets/index-BmsPSBtF.css.br +0 -0
  354. package/dist/web/assets/index-BmsPSBtF.css.gz +0 -0
  355. package/dist/web/assets/index-DQCw6d-2.js +52 -0
  356. package/dist/web/assets/index-DQCw6d-2.js.br +0 -0
  357. package/dist/web/assets/index-DQCw6d-2.js.gz +0 -0
  358. package/dist/web/assets/info-3K5VOQVL-BNTEA-rE.js +1 -0
  359. package/dist/web/assets/infoDiagram-LFFYTUFH-Cy0n0rSo.js +2 -0
  360. package/dist/web/assets/isEmpty-BDA3VnUk.js +1 -0
  361. package/dist/web/assets/isEmpty-BDA3VnUk.js.br +2 -0
  362. package/dist/web/assets/isEmpty-BDA3VnUk.js.gz +0 -0
  363. package/dist/web/assets/ishikawaDiagram-PHBUUO56-C5OufTs3.js +70 -0
  364. package/dist/web/assets/ishikawaDiagram-PHBUUO56-C5OufTs3.js.br +0 -0
  365. package/dist/web/assets/ishikawaDiagram-PHBUUO56-C5OufTs3.js.gz +0 -0
  366. package/dist/web/assets/jinja-BcLcRUjT.js +1 -0
  367. package/dist/web/assets/jinja-BcLcRUjT.js.br +0 -0
  368. package/dist/web/assets/jinja-BcLcRUjT.js.gz +0 -0
  369. package/dist/web/assets/jira-watcher-section-DwM7gqHT.js +1 -0
  370. package/dist/web/assets/jison-B9yzZVz4.js +1 -0
  371. package/dist/web/assets/jison-B9yzZVz4.js.br +0 -0
  372. package/dist/web/assets/jison-B9yzZVz4.js.gz +0 -0
  373. package/dist/web/assets/journeyDiagram-4ABVD52K-CEF5TlV8.js +139 -0
  374. package/dist/web/assets/journeyDiagram-4ABVD52K-CEF5TlV8.js.br +0 -0
  375. package/dist/web/assets/journeyDiagram-4ABVD52K-CEF5TlV8.js.gz +0 -0
  376. package/dist/web/assets/julia-CJkZzFKP.js +1 -0
  377. package/dist/web/assets/julia-CJkZzFKP.js.br +0 -0
  378. package/dist/web/assets/julia-CJkZzFKP.js.gz +0 -0
  379. package/dist/web/assets/just-C44GS86E.js +1 -0
  380. package/dist/web/assets/just-C44GS86E.js.br +0 -0
  381. package/dist/web/assets/just-C44GS86E.js.gz +0 -0
  382. package/dist/web/assets/kanban-definition-K7BYSVSG-BPtiCSi5.js +89 -0
  383. package/dist/web/assets/kanban-definition-K7BYSVSG-BPtiCSi5.js.br +0 -0
  384. package/dist/web/assets/kanban-definition-K7BYSVSG-BPtiCSi5.js.gz +0 -0
  385. package/dist/web/assets/keybindings-store-CJtEHFIQ.js +1 -0
  386. package/dist/web/assets/keyboard-shortcuts-section-CewWGwiF.js +1 -0
  387. package/dist/web/assets/keyboard-shortcuts-section-CewWGwiF.js.br +0 -0
  388. package/dist/web/assets/keyboard-shortcuts-section-CewWGwiF.js.gz +0 -0
  389. package/dist/web/assets/language-servers-section-nricdxke.js +2 -0
  390. package/dist/web/assets/language-servers-section-nricdxke.js.br +0 -0
  391. package/dist/web/assets/language-servers-section-nricdxke.js.gz +0 -0
  392. package/dist/web/assets/latex-DInNvJDf.js +1 -0
  393. package/dist/web/assets/latex-DInNvJDf.js.br +0 -0
  394. package/dist/web/assets/latex-DInNvJDf.js.gz +0 -0
  395. package/dist/web/assets/line-CM_Cil_v.js +1 -0
  396. package/dist/web/assets/linear-uttzXe-M.js +1 -0
  397. package/dist/web/assets/linear-uttzXe-M.js.br +0 -0
  398. package/dist/web/assets/linear-uttzXe-M.js.gz +0 -0
  399. package/dist/web/assets/liquid-CBcFjKJU.js +1 -0
  400. package/dist/web/assets/liquid-CBcFjKJU.js.br +0 -0
  401. package/dist/web/assets/liquid-CBcFjKJU.js.gz +0 -0
  402. package/dist/web/assets/lsp-client-DRMEWb-z.js +1 -0
  403. package/dist/web/assets/lsp-client-DRMEWb-z.js.br +0 -0
  404. package/dist/web/assets/lsp-client-DRMEWb-z.js.gz +0 -0
  405. package/dist/web/assets/lua-BZXtZv2R.js +1 -0
  406. package/dist/web/assets/lua-BZXtZv2R.js.br +0 -0
  407. package/dist/web/assets/lua-BZXtZv2R.js.gz +0 -0
  408. package/dist/web/assets/markdown-renderer-D5-xliE9.js +1 -0
  409. package/dist/web/assets/markdown-renderer-Dab9Us6u.js +5 -0
  410. package/dist/web/assets/markdown-renderer-Dab9Us6u.js.br +0 -0
  411. package/dist/web/assets/markdown-renderer-Dab9Us6u.js.gz +0 -0
  412. package/dist/web/assets/marko-rw0cyptA.js +1 -0
  413. package/dist/web/assets/marko-rw0cyptA.js.br +0 -0
  414. package/dist/web/assets/marko-rw0cyptA.js.gz +0 -0
  415. package/dist/web/assets/mdc-DlEHJVBz.js +1 -0
  416. package/dist/web/assets/mdc-DlEHJVBz.js.br +0 -0
  417. package/dist/web/assets/mdc-DlEHJVBz.js.gz +0 -0
  418. package/dist/web/assets/media-url-mOPwQ_ey.js +1 -0
  419. package/dist/web/assets/mermaid-parser.core-D15K-OQt.js +4 -0
  420. package/dist/web/assets/mermaid-parser.core-D15K-OQt.js.br +0 -0
  421. package/dist/web/assets/mermaid-parser.core-D15K-OQt.js.gz +0 -0
  422. package/dist/web/assets/mermaid.core-CzH9eDdk.js +11 -0
  423. package/dist/web/assets/mermaid.core-CzH9eDdk.js.br +0 -0
  424. package/dist/web/assets/mermaid.core-CzH9eDdk.js.gz +0 -0
  425. package/dist/web/assets/metric-chart-canvas-CVd7LO3m.js +1 -0
  426. package/dist/web/assets/metric-chart-canvas-CVd7LO3m.js.br +0 -0
  427. package/dist/web/assets/metric-chart-canvas-CVd7LO3m.js.gz +0 -0
  428. package/dist/web/assets/mindmap-definition-YRQLILUH-Bs0uMwX_.js +68 -0
  429. package/dist/web/assets/mindmap-definition-YRQLILUH-Bs0uMwX_.js.br +0 -0
  430. package/dist/web/assets/mindmap-definition-YRQLILUH-Bs0uMwX_.js.gz +0 -0
  431. package/dist/web/assets/mobile-bottom-sheet-CLic9ovp.js +1 -0
  432. package/dist/web/assets/mobile-bottom-sheet-CLic9ovp.js.br +0 -0
  433. package/dist/web/assets/mobile-bottom-sheet-CLic9ovp.js.gz +0 -0
  434. package/dist/web/assets/mobile-explorer-sheet-DtgdpvJ9.js +1 -0
  435. package/dist/web/assets/mobile-explorer-sheet-DtgdpvJ9.js.br +0 -0
  436. package/dist/web/assets/mobile-explorer-sheet-DtgdpvJ9.js.gz +0 -0
  437. package/dist/web/assets/new-design-dialog-Dd5KDB_p.js +1 -0
  438. package/dist/web/assets/new-design-dialog-Dd5KDB_p.js.br +0 -0
  439. package/dist/web/assets/new-design-dialog-Dd5KDB_p.js.gz +0 -0
  440. package/dist/web/assets/nextflow-DxkUhMdp.js +1 -0
  441. package/dist/web/assets/nextflow-DxkUhMdp.js.br +0 -0
  442. package/dist/web/assets/nextflow-DxkUhMdp.js.gz +0 -0
  443. package/dist/web/assets/nginx-62Ft1TFn.js +1 -0
  444. package/dist/web/assets/nginx-62Ft1TFn.js.br +0 -0
  445. package/dist/web/assets/nginx-62Ft1TFn.js.gz +0 -0
  446. package/dist/web/assets/nim-DcHjQWnX.js +1 -0
  447. package/dist/web/assets/nim-DcHjQWnX.js.br +0 -0
  448. package/dist/web/assets/nim-DcHjQWnX.js.gz +0 -0
  449. package/dist/web/assets/notification-store-D2vTyp_Q.js +1 -0
  450. package/dist/web/assets/notifications-settings-section-QeNYQwV1.js +1 -0
  451. package/dist/web/assets/notifications-settings-section-QeNYQwV1.js.br +3 -0
  452. package/dist/web/assets/notifications-settings-section-QeNYQwV1.js.gz +0 -0
  453. package/dist/web/assets/number-overlay-editor-xzM7GhYV.js +9 -0
  454. package/dist/web/assets/number-overlay-editor-xzM7GhYV.js.br +0 -0
  455. package/dist/web/assets/number-overlay-editor-xzM7GhYV.js.gz +0 -0
  456. package/dist/web/assets/onboarding-entry-DD3QSDiz.js +1 -0
  457. package/dist/web/assets/onboarding-entry-DD3QSDiz.js.br +0 -0
  458. package/dist/web/assets/onboarding-entry-DD3QSDiz.js.gz +0 -0
  459. package/dist/web/assets/onboarding-quick-orientation-WLKI95GY.js +1 -0
  460. package/dist/web/assets/onboarding-quick-orientation-WLKI95GY.js.br +0 -0
  461. package/dist/web/assets/onboarding-quick-orientation-WLKI95GY.js.gz +0 -0
  462. package/dist/web/assets/ordinal-tB7t1fBX.js +1 -0
  463. package/dist/web/assets/ordinal-tB7t1fBX.js.br +0 -0
  464. package/dist/web/assets/ordinal-tB7t1fBX.js.gz +0 -0
  465. package/dist/web/assets/overview-panel-jYyiDmut.js +1 -0
  466. package/dist/web/assets/overview-panel-jYyiDmut.js.br +0 -0
  467. package/dist/web/assets/overview-panel-jYyiDmut.js.gz +0 -0
  468. package/dist/web/assets/packet-RMMSAZCW-PexBvQKN.js +1 -0
  469. package/dist/web/assets/panel-store-DrSH3Nhp.js +1 -0
  470. package/dist/web/assets/panel-store-DrSH3Nhp.js.br +0 -0
  471. package/dist/web/assets/panel-store-DrSH3Nhp.js.gz +0 -0
  472. package/dist/web/assets/pdf-preview-PWDBbNwt.js +1 -0
  473. package/dist/web/assets/pdf-preview-PWDBbNwt.js.br +0 -0
  474. package/dist/web/assets/pdf-preview-PWDBbNwt.js.gz +0 -0
  475. package/dist/web/assets/performance-panel-LMGefOQ2.js +3 -0
  476. package/dist/web/assets/performance-panel-LMGefOQ2.js.br +0 -0
  477. package/dist/web/assets/performance-panel-LMGefOQ2.js.gz +0 -0
  478. package/dist/web/assets/perl-Ceq8UFIR.js +1 -0
  479. package/dist/web/assets/perl-Ceq8UFIR.js.br +0 -0
  480. package/dist/web/assets/perl-Ceq8UFIR.js.gz +0 -0
  481. package/dist/web/assets/php-1Lsklgkb.js +1 -0
  482. package/dist/web/assets/php-1Lsklgkb.js.br +0 -0
  483. package/dist/web/assets/php-1Lsklgkb.js.gz +0 -0
  484. package/dist/web/assets/pie-UPGHQEXC-Cnk03D15.js +1 -0
  485. package/dist/web/assets/pieDiagram-SKSYHLDU-C6kQJeXW.js +30 -0
  486. package/dist/web/assets/pieDiagram-SKSYHLDU-C6kQJeXW.js.br +0 -0
  487. package/dist/web/assets/pieDiagram-SKSYHLDU-C6kQJeXW.js.gz +0 -0
  488. package/dist/web/assets/postgres-viewer-DiI6yvzb.js +3 -0
  489. package/dist/web/assets/postgres-viewer-DiI6yvzb.js.br +0 -0
  490. package/dist/web/assets/postgres-viewer-DiI6yvzb.js.gz +0 -0
  491. package/dist/web/assets/ppmbot-settings-section-D67u6gPi.js +1 -0
  492. package/dist/web/assets/ppmbot-settings-section-D67u6gPi.js.br +0 -0
  493. package/dist/web/assets/ppmbot-settings-section-D67u6gPi.js.gz +0 -0
  494. package/dist/web/assets/pptx-export-D378qi81.js +111 -0
  495. package/dist/web/assets/pptx-export-D378qi81.js.br +0 -0
  496. package/dist/web/assets/pptx-export-D378qi81.js.gz +0 -0
  497. package/dist/web/assets/problems-panel-DKgIw4uZ.js +1 -0
  498. package/dist/web/assets/problems-panel-DKgIw4uZ.js.br +0 -0
  499. package/dist/web/assets/problems-panel-DKgIw4uZ.js.gz +0 -0
  500. package/dist/web/assets/process-row-format-Dbs_tAZ2.js +1 -0
  501. package/dist/web/assets/process-table-BIAgC_jG.js +1 -0
  502. package/dist/web/assets/process-table-BIAgC_jG.js.br +0 -0
  503. package/dist/web/assets/process-table-BIAgC_jG.js.gz +0 -0
  504. package/dist/web/assets/project-store-CCimwgGF.js +1 -0
  505. package/dist/web/assets/project-store-CCimwgGF.js.br +0 -0
  506. package/dist/web/assets/project-store-CCimwgGF.js.gz +0 -0
  507. package/dist/web/assets/proxy-settings-section-CFiYcTBA.js +1 -0
  508. package/dist/web/assets/proxy-settings-section-CFiYcTBA.js.br +0 -0
  509. package/dist/web/assets/proxy-settings-section-CFiYcTBA.js.gz +0 -0
  510. package/dist/web/assets/pug-Baa_KKxu.js +1 -0
  511. package/dist/web/assets/pug-Baa_KKxu.js.br +0 -0
  512. package/dist/web/assets/pug-Baa_KKxu.js.gz +0 -0
  513. package/dist/web/assets/qml-DkxSUM4O.js +1 -0
  514. package/dist/web/assets/qml-DkxSUM4O.js.br +0 -0
  515. package/dist/web/assets/qml-DkxSUM4O.js.gz +0 -0
  516. package/dist/web/assets/quadrantDiagram-337W2JSQ-CpNJp34_.js +7 -0
  517. package/dist/web/assets/quadrantDiagram-337W2JSQ-CpNJp34_.js.br +0 -0
  518. package/dist/web/assets/quadrantDiagram-337W2JSQ-CpNJp34_.js.gz +0 -0
  519. package/dist/web/assets/query-audit-section-BybgiPsc.js +1 -0
  520. package/dist/web/assets/query-audit-section-BybgiPsc.js.br +0 -0
  521. package/dist/web/assets/query-audit-section-BybgiPsc.js.gz +0 -0
  522. package/dist/web/assets/radar-KQ55EAFF-DAKOTfGS.js +1 -0
  523. package/dist/web/assets/razor-DXiIfWAM.js +1 -0
  524. package/dist/web/assets/razor-DXiIfWAM.js.br +0 -0
  525. package/dist/web/assets/razor-DXiIfWAM.js.gz +0 -0
  526. package/dist/web/assets/remote-desktop-clipboard-notice-Bs3fZSRw.js +1 -0
  527. package/dist/web/assets/remote-desktop-clipboard-notice-Bs3fZSRw.js.br +0 -0
  528. package/dist/web/assets/remote-desktop-clipboard-notice-Bs3fZSRw.js.gz +0 -0
  529. package/dist/web/assets/remote-desktop-mobile-sheet-DgxTdWMh.js +2 -0
  530. package/dist/web/assets/remote-desktop-mobile-sheet-DgxTdWMh.js.br +0 -0
  531. package/dist/web/assets/remote-desktop-mobile-sheet-DgxTdWMh.js.gz +0 -0
  532. package/dist/web/assets/remote-desktop-mobile-view-DgGOfPVY.js +1 -0
  533. package/dist/web/assets/remote-desktop-mobile-view-DgGOfPVY.js.br +0 -0
  534. package/dist/web/assets/remote-desktop-mobile-view-DgGOfPVY.js.gz +0 -0
  535. package/dist/web/assets/remote-desktop-readiness-gate-DOWryrQx.js +1 -0
  536. package/dist/web/assets/remote-desktop-readiness-gate-DOWryrQx.js.br +0 -0
  537. package/dist/web/assets/remote-desktop-readiness-gate-DOWryrQx.js.gz +0 -0
  538. package/dist/web/assets/remote-desktop-window-content-7t0wQsHx.js +1 -0
  539. package/dist/web/assets/remote-desktop-window-content-7t0wQsHx.js.br +0 -0
  540. package/dist/web/assets/remote-desktop-window-content-7t0wQsHx.js.gz +0 -0
  541. package/dist/web/assets/requirementDiagram-Z7DCOOCP-DDJk4m9N.js +73 -0
  542. package/dist/web/assets/requirementDiagram-Z7DCOOCP-DDJk4m9N.js.br +0 -0
  543. package/dist/web/assets/requirementDiagram-Z7DCOOCP-DDJk4m9N.js.gz +0 -0
  544. package/dist/web/assets/rst-D-Y9n5Co.js +1 -0
  545. package/dist/web/assets/rst-D-Y9n5Co.js.br +0 -0
  546. package/dist/web/assets/rst-D-Y9n5Co.js.gz +0 -0
  547. package/dist/web/assets/ruby-B-F9BwY7.js +1 -0
  548. package/dist/web/assets/ruby-B-F9BwY7.js.br +0 -0
  549. package/dist/web/assets/ruby-B-F9BwY7.js.gz +0 -0
  550. package/dist/web/assets/run-in-terminal-Cdn9PaAl.js +1 -0
  551. package/dist/web/assets/sankeyDiagram-WA2Y5GQK-BwS5Ty3s.js +10 -0
  552. package/dist/web/assets/sankeyDiagram-WA2Y5GQK-BwS5Ty3s.js.br +0 -0
  553. package/dist/web/assets/sankeyDiagram-WA2Y5GQK-BwS5Ty3s.js.gz +0 -0
  554. package/dist/web/assets/sas-fuBUrPyY.js +1 -0
  555. package/dist/web/assets/sas-fuBUrPyY.js.br +0 -0
  556. package/dist/web/assets/sas-fuBUrPyY.js.gz +0 -0
  557. package/dist/web/assets/schedules-settings-section-DGhG-b5O.js +1 -0
  558. package/dist/web/assets/schedules-settings-section-DGhG-b5O.js.br +0 -0
  559. package/dist/web/assets/schedules-settings-section-DGhG-b5O.js.gz +0 -0
  560. package/dist/web/assets/scroll-area-Dp-P38kg.js +1 -0
  561. package/dist/web/assets/scroll-area-Dp-P38kg.js.br +0 -0
  562. package/dist/web/assets/scroll-area-Dp-P38kg.js.gz +0 -0
  563. package/dist/web/assets/scss-D-S9GOOa.js +1 -0
  564. package/dist/web/assets/scss-D-S9GOOa.js.br +0 -0
  565. package/dist/web/assets/scss-D-S9GOOa.js.gz +0 -0
  566. package/dist/web/assets/send-to-chat-B09VjsB5.js +1 -0
  567. package/dist/web/assets/send-to-chat-B09VjsB5.js.br +0 -0
  568. package/dist/web/assets/send-to-chat-B09VjsB5.js.gz +0 -0
  569. package/dist/web/assets/separator-B0xYRplF.js +1 -0
  570. package/dist/web/assets/sequenceDiagram-2WXFIKYE-Bzj80L9s.js +145 -0
  571. package/dist/web/assets/sequenceDiagram-2WXFIKYE-Bzj80L9s.js.br +0 -0
  572. package/dist/web/assets/sequenceDiagram-2WXFIKYE-Bzj80L9s.js.gz +0 -0
  573. package/dist/web/assets/services-panel-0klE3O4g.js +1 -0
  574. package/dist/web/assets/services-panel-0klE3O4g.js.br +0 -0
  575. package/dist/web/assets/services-panel-0klE3O4g.js.gz +0 -0
  576. package/dist/web/assets/settings-body-CfqpqFfq.js +2 -0
  577. package/dist/web/assets/settings-body-CfqpqFfq.js.br +0 -0
  578. package/dist/web/assets/settings-body-CfqpqFfq.js.gz +0 -0
  579. package/dist/web/assets/settings-store-3jIBB8gx.js +2 -0
  580. package/dist/web/assets/settings-store-3jIBB8gx.js.br +0 -0
  581. package/dist/web/assets/settings-store-3jIBB8gx.js.gz +0 -0
  582. package/dist/web/assets/settings-tab-CHweH5Nh.js +1 -0
  583. package/dist/web/assets/settings-window-content-C6Od3qV7.js +1 -0
  584. package/dist/web/assets/shaderlab-CbKXv2hc.js +1 -0
  585. package/dist/web/assets/shaderlab-CbKXv2hc.js.br +0 -0
  586. package/dist/web/assets/shaderlab-CbKXv2hc.js.gz +0 -0
  587. package/dist/web/assets/shellsession-QyLVGGSs.js +1 -0
  588. package/dist/web/assets/sortable-header-IH47XuRI.js +1 -0
  589. package/dist/web/assets/sortable-header-IH47XuRI.js.br +0 -0
  590. package/dist/web/assets/sortable-header-IH47XuRI.js.gz +0 -0
  591. package/dist/web/assets/soy-D3jPyr8y.js +1 -0
  592. package/dist/web/assets/soy-D3jPyr8y.js.br +0 -0
  593. package/dist/web/assets/soy-D3jPyr8y.js.gz +0 -0
  594. package/dist/web/assets/sparql-CYT9glll.js +1 -0
  595. package/dist/web/assets/sparql-CYT9glll.js.br +0 -0
  596. package/dist/web/assets/sparql-CYT9glll.js.gz +0 -0
  597. package/dist/web/assets/sql-query-editor-ALQ5_X0j.js +1 -0
  598. package/dist/web/assets/sql-query-editor-ALQ5_X0j.js.br +0 -0
  599. package/dist/web/assets/sql-query-editor-ALQ5_X0j.js.gz +0 -0
  600. package/dist/web/assets/sqlite-viewer-DKTty_jR.js +1 -0
  601. package/dist/web/assets/sqlite-viewer-DKTty_jR.js.br +0 -0
  602. package/dist/web/assets/sqlite-viewer-DKTty_jR.js.gz +0 -0
  603. package/dist/web/assets/stata-CuZibPbZ.js +1 -0
  604. package/dist/web/assets/stata-CuZibPbZ.js.br +0 -0
  605. package/dist/web/assets/stata-CuZibPbZ.js.gz +0 -0
  606. package/dist/web/assets/stateDiagram-RAJIS63D-BFSaNtAC.js +1 -0
  607. package/dist/web/assets/stateDiagram-RAJIS63D-BFSaNtAC.js.br +0 -0
  608. package/dist/web/assets/stateDiagram-RAJIS63D-BFSaNtAC.js.gz +0 -0
  609. package/dist/web/assets/stateDiagram-v2-FVOUBMTO-Dq5o5Edc.js +1 -0
  610. package/dist/web/assets/surrealql-DCt_HqT_.js +1 -0
  611. package/dist/web/assets/surrealql-DCt_HqT_.js.br +0 -0
  612. package/dist/web/assets/surrealql-DCt_HqT_.js.gz +0 -0
  613. package/dist/web/assets/svelte-Dxef3zzb.js +1 -0
  614. package/dist/web/assets/svelte-Dxef3zzb.js.br +0 -0
  615. package/dist/web/assets/svelte-Dxef3zzb.js.gz +0 -0
  616. package/dist/web/assets/system-monitor-body-D6J6lq7-.js +2 -0
  617. package/dist/web/assets/system-monitor-body-D6J6lq7-.js.br +0 -0
  618. package/dist/web/assets/system-monitor-body-D6J6lq7-.js.gz +0 -0
  619. package/dist/web/assets/system-monitor-tab-Di18zNNS.js +1 -0
  620. package/dist/web/assets/system-monitor-window-content-D1t30f32.js +1 -0
  621. package/dist/web/assets/tab-host-window-content-DTcx2D0O.js +1 -0
  622. package/dist/web/assets/tab-host-window-content-DTcx2D0O.js.br +0 -0
  623. package/dist/web/assets/tab-host-window-content-DTcx2D0O.js.gz +0 -0
  624. package/dist/web/assets/tab-store-CUPgQIQz.js +1 -0
  625. package/dist/web/assets/team-member-sheet-CFSbPG6n.js +2 -0
  626. package/dist/web/assets/team-member-sheet-CFSbPG6n.js.br +0 -0
  627. package/dist/web/assets/team-member-sheet-CFSbPG6n.js.gz +0 -0
  628. package/dist/web/assets/team-member-window-content-VeI6DGeM.js +1 -0
  629. package/dist/web/assets/team-member-window-content-VeI6DGeM.js.br +0 -0
  630. package/dist/web/assets/team-member-window-content-VeI6DGeM.js.gz +0 -0
  631. package/dist/web/assets/templ-BxPyLSW3.js +1 -0
  632. package/dist/web/assets/templ-BxPyLSW3.js.br +0 -0
  633. package/dist/web/assets/templ-BxPyLSW3.js.gz +0 -0
  634. package/dist/web/assets/terminal-tab-DgTfQKBI.js +3 -0
  635. package/dist/web/assets/terminal-tab-DgTfQKBI.js.br +0 -0
  636. package/dist/web/assets/terminal-tab-DgTfQKBI.js.gz +0 -0
  637. package/dist/web/assets/tex-X8wxt-z9.js +1 -0
  638. package/dist/web/assets/tex-X8wxt-z9.js.br +0 -0
  639. package/dist/web/assets/tex-X8wxt-z9.js.gz +0 -0
  640. package/dist/web/assets/timeline-definition-YZTLITO2-DeyGFXdF.js +61 -0
  641. package/dist/web/assets/timeline-definition-YZTLITO2-DeyGFXdF.js.br +0 -0
  642. package/dist/web/assets/timeline-definition-YZTLITO2-DeyGFXdF.js.gz +0 -0
  643. package/dist/web/assets/tool-cards-_fpYI1hB.js +9 -0
  644. package/dist/web/assets/tool-cards-_fpYI1hB.js.br +0 -0
  645. package/dist/web/assets/tool-cards-_fpYI1hB.js.gz +0 -0
  646. package/dist/web/assets/treemap-KZPCXAKY-CWZwaAa2.js +1 -0
  647. package/dist/web/assets/ts-tags-xWmciEKa.js +1 -0
  648. package/dist/web/assets/ts-tags-xWmciEKa.js.br +0 -0
  649. package/dist/web/assets/ts-tags-xWmciEKa.js.gz +0 -0
  650. package/dist/web/assets/twig-B62mBY9Q.js +1 -0
  651. package/dist/web/assets/twig-B62mBY9Q.js.br +0 -0
  652. package/dist/web/assets/twig-B62mBY9Q.js.gz +0 -0
  653. package/dist/web/assets/use-blob-url-B3R1DMZ0.js +1 -0
  654. package/dist/web/assets/use-inline-blame-Dv111BKY.js +16 -0
  655. package/dist/web/assets/use-inline-blame-Dv111BKY.js.br +0 -0
  656. package/dist/web/assets/use-inline-blame-Dv111BKY.js.gz +0 -0
  657. package/dist/web/assets/use-lsp-CZTFJIXX.js +6 -0
  658. package/dist/web/assets/use-lsp-CZTFJIXX.js.br +0 -0
  659. package/dist/web/assets/use-lsp-CZTFJIXX.js.gz +0 -0
  660. package/dist/web/assets/use-monaco-theme-DL2dIG5L.js +1 -0
  661. package/dist/web/assets/use-open-team-member-ElN3KmCI.js +1 -0
  662. package/dist/web/assets/use-process-kill-D7D9QvJG.js +1 -0
  663. package/dist/web/assets/use-process-kill-D7D9QvJG.js.br +0 -0
  664. package/dist/web/assets/use-process-kill-D7D9QvJG.js.gz +0 -0
  665. package/dist/web/assets/use-websocket-ziY-Gz_B.js +1 -0
  666. package/dist/web/assets/vendor-ui-P9Ym7hCv.js +45 -0
  667. package/dist/web/assets/vendor-ui-P9Ym7hCv.js.br +0 -0
  668. package/dist/web/assets/vendor-ui-P9Ym7hCv.js.gz +0 -0
  669. package/dist/web/assets/vennDiagram-LZ73GAT5-Bbwf0YLL.js +34 -0
  670. package/dist/web/assets/vennDiagram-LZ73GAT5-Bbwf0YLL.js.br +0 -0
  671. package/dist/web/assets/vennDiagram-LZ73GAT5-Bbwf0YLL.js.gz +0 -0
  672. package/dist/web/assets/video-preview-DzwY3q9W.js +1 -0
  673. package/dist/web/assets/video-preview-DzwY3q9W.js.br +0 -0
  674. package/dist/web/assets/video-preview-DzwY3q9W.js.gz +0 -0
  675. package/dist/web/assets/voice-settings-section-B7zMHsuz.js +1 -0
  676. package/dist/web/assets/voice-settings-section-B7zMHsuz.js.br +0 -0
  677. package/dist/web/assets/voice-settings-section-B7zMHsuz.js.gz +0 -0
  678. package/dist/web/assets/vue-Dx8GG0dF.js +1 -0
  679. package/dist/web/assets/vue-Dx8GG0dF.js.br +0 -0
  680. package/dist/web/assets/vue-Dx8GG0dF.js.gz +0 -0
  681. package/dist/web/assets/vue-html-Dg_kQiUk.js +1 -0
  682. package/dist/web/assets/vue-html-Dg_kQiUk.js.br +0 -0
  683. package/dist/web/assets/vue-html-Dg_kQiUk.js.gz +0 -0
  684. package/dist/web/assets/vue-vine-Da7b1CgK.js +1 -0
  685. package/dist/web/assets/vue-vine-Da7b1CgK.js.br +0 -0
  686. package/dist/web/assets/vue-vine-Da7b1CgK.js.gz +0 -0
  687. package/dist/web/assets/window-pip-registry-dxrBFfkP.js +1 -0
  688. package/dist/web/assets/ws-auth-J3hw0Mhc.js +1 -0
  689. package/dist/web/assets/xml-Gz-NM9x2.js +1 -0
  690. package/dist/web/assets/xml-Gz-NM9x2.js.br +0 -0
  691. package/dist/web/assets/xml-Gz-NM9x2.js.gz +0 -0
  692. package/dist/web/assets/xsl-DkiCKXu5.js +1 -0
  693. package/dist/web/assets/xsl-DkiCKXu5.js.br +0 -0
  694. package/dist/web/assets/xsl-DkiCKXu5.js.gz +0 -0
  695. package/dist/web/assets/xychartDiagram-JWTSCODW-BtHgREli.js +7 -0
  696. package/dist/web/assets/xychartDiagram-JWTSCODW-BtHgREli.js.br +0 -0
  697. package/dist/web/assets/xychartDiagram-JWTSCODW-BtHgREli.js.gz +0 -0
  698. package/dist/web/index.html +28 -29
  699. package/dist/web/index.html.br +0 -0
  700. package/dist/web/index.html.gz +0 -0
  701. package/dist/web/sw.js +1 -1
  702. package/dist/web/sw.js.br +0 -0
  703. package/dist/web/sw.js.gz +0 -0
  704. package/docs/architecture/ai-chat-and-providers.md +56 -2
  705. package/docs/architecture/data-and-storage.md +39 -0
  706. package/docs/architecture/workspace-and-ui.md +29 -0
  707. package/docs/deployment-guide.md +23 -0
  708. package/package.json +1 -1
  709. package/src/cli/commands/config-cmd.ts +12 -0
  710. package/src/providers/claude-agent-sdk.ts +65 -2
  711. package/src/providers/codex-app-server/codex-history-async.ts +99 -0
  712. package/src/providers/codex-app-server/codex-history.ts +16 -6
  713. package/src/providers/codex-app-server/codex-jsonrpc-client.ts +16 -1
  714. package/src/providers/codex-app-server/codex-provider.ts +62 -11
  715. package/src/providers/provider-probe.ts +63 -0
  716. package/src/providers/registry.ts +109 -29
  717. package/src/server/index.ts +9 -0
  718. package/src/server/middleware/auth.ts +5 -1
  719. package/src/server/routes/accounts.ts +2 -5
  720. package/src/server/routes/chat-prepare.ts +24 -0
  721. package/src/server/routes/chat.ts +28 -74
  722. package/src/server/routes/codex-accounts.ts +3 -10
  723. package/src/server/routes/cross-origin-guard.ts +20 -0
  724. package/src/server/routes/git.ts +40 -4
  725. package/src/server/routes/lsp.ts +97 -4
  726. package/src/server/routes/resources.ts +72 -9
  727. package/src/server/routes/settings.ts +19 -1
  728. package/src/server/routes/speech.ts +66 -0
  729. package/src/server/routes/system-services.ts +76 -0
  730. package/src/server/routes/tunnel.ts +33 -1
  731. package/src/server/ws/chat.ts +74 -3
  732. package/src/services/account-pick.service.ts +49 -0
  733. package/src/services/chat-prepare/chat-prepare.service.ts +135 -0
  734. package/src/services/chat-prepare/settle-within-budget.ts +38 -0
  735. package/src/services/chat-usage-snapshot.service.ts +52 -0
  736. package/src/services/codex-account-login.ts +26 -2
  737. package/src/services/codex-reset-credit.service.ts +16 -3
  738. package/src/services/compaction-savings.ts +127 -0
  739. package/src/services/db.service.ts +123 -8
  740. package/src/services/fs-ops/fs-ops-trash.service.ts +22 -9
  741. package/src/services/git-refs/for-each-ref.ts +118 -0
  742. package/src/services/git.service.ts +25 -2
  743. package/src/services/host-info/spawn-runner.ts +48 -4
  744. package/src/services/jsonl-transcript-parser.ts +7 -42
  745. package/src/services/lsp/lsp-install.ts +289 -0
  746. package/src/services/lsp/lsp-manager.ts +160 -29
  747. package/src/services/lsp/server-registry.ts +120 -4
  748. package/src/services/named-tunnel/named-tunnel-config.ts +8 -2
  749. package/src/services/named-tunnel/named-tunnel-setup.service.ts +4 -0
  750. package/src/services/read-lines.ts +54 -0
  751. package/src/services/slash-items-for-provider.ts +42 -0
  752. package/src/services/speech-to-text/whisper-catalog.ts +142 -0
  753. package/src/services/speech-to-text/whisper-download.ts +113 -0
  754. package/src/services/speech-to-text/whisper-hallucinations.ts +51 -0
  755. package/src/services/speech-to-text/whisper-install.service.ts +247 -0
  756. package/src/services/speech-to-text/whisper-paths.ts +62 -0
  757. package/src/services/speech-to-text/whisper-transcribe.service.ts +117 -0
  758. package/src/services/supervisor.ts +94 -11
  759. package/src/services/system-metrics/cpu-details-linux.ts +252 -0
  760. package/src/services/system-metrics/cpu-memory-collector.ts +140 -18
  761. package/src/services/system-metrics/device-collector-linux.ts +31 -0
  762. package/src/services/system-metrics/device-collector-types.ts +40 -0
  763. package/src/services/system-metrics/disk-devices-linux.ts +156 -0
  764. package/src/services/system-metrics/disk-inventory-linux.ts +150 -0
  765. package/src/services/system-metrics/fans-linux.ts +51 -0
  766. package/src/services/system-metrics/gpu-api-versions.ts +120 -0
  767. package/src/services/system-metrics/gpu-devices-linux.ts +370 -0
  768. package/src/services/system-metrics/gpu-fdinfo-linux.ts +253 -0
  769. package/src/services/system-metrics/hardware-inventory.ts +50 -0
  770. package/src/services/system-metrics/linux-fs.ts +43 -0
  771. package/src/services/system-metrics/memory-darwin.ts +91 -0
  772. package/src/services/system-metrics/memory-linux.ts +156 -0
  773. package/src/services/system-metrics/net-devices-linux.ts +114 -0
  774. package/src/services/system-metrics/net-inventory-linux.ts +100 -0
  775. package/src/services/system-metrics/partitions-linux.ts +158 -0
  776. package/src/services/system-metrics/process-collector-linux.ts +58 -6
  777. package/src/services/system-metrics/process-collector-types.ts +8 -1
  778. package/src/services/system-metrics/process-details-darwin.ts +166 -0
  779. package/src/services/system-metrics/process-details-linux.ts +150 -0
  780. package/src/services/system-metrics/process-grouping.ts +2 -1
  781. package/src/services/system-metrics/process-rows-builder.ts +2 -0
  782. package/src/services/system-metrics/process-swap-linux.ts +37 -0
  783. package/src/services/system-metrics/signal-executor.ts +84 -0
  784. package/src/services/system-metrics/signal-request-handler.ts +92 -0
  785. package/src/services/system-metrics/system-metrics-platform.ts +30 -4
  786. package/src/services/system-metrics/system-metrics-tick.ts +73 -4
  787. package/src/services/system-metrics/system-metrics.service.ts +87 -2
  788. package/src/services/system-metrics/udev-db.ts +40 -0
  789. package/src/services/system-services/app-cgroup-linux.ts +115 -0
  790. package/src/services/system-services/app-icon-service.ts +31 -0
  791. package/src/services/system-services/app-icons-linux.ts +124 -0
  792. package/src/services/system-services/apps-linux.ts +174 -0
  793. package/src/services/system-services/desktop-entry.ts +103 -0
  794. package/src/services/system-services/service-guard.ts +124 -0
  795. package/src/services/system-services/systemd-collector.ts +203 -0
  796. package/src/services/system-services/systemd-parse.ts +162 -0
  797. package/src/shared/chat-preparation-settings.ts +19 -0
  798. package/src/shared/new-chat-provider.ts +8 -0
  799. package/src/shared/prompt-cache-idle.ts +197 -0
  800. package/src/shared/turn-usage.ts +85 -1
  801. package/src/types/chat.ts +27 -0
  802. package/src/types/config.ts +14 -0
  803. package/src/types/git.ts +41 -0
  804. package/src/types/system-hardware.ts +137 -0
  805. package/src/types/system-metrics.ts +231 -2
  806. package/src/types/system-services.ts +73 -0
  807. package/src/web/app.tsx +18 -0
  808. package/src/web/components/auth/login-screen.tsx +3 -3
  809. package/src/web/components/branch-review/branch-review-tab.tsx +20 -20
  810. package/src/web/components/branch-review/branch-review-tree-row.tsx +1 -13
  811. package/src/web/components/chat/chat-history-bar.tsx +96 -71
  812. package/src/web/components/chat/chat-tab.tsx +144 -21
  813. package/src/web/components/chat/compaction-divider.tsx +48 -0
  814. package/src/web/components/chat/idle-cache-notice.tsx +67 -0
  815. package/src/web/components/chat/message-input.tsx +70 -24
  816. package/src/web/components/chat/message-list.tsx +15 -0
  817. package/src/web/components/chat/new-chat-provider-gate.tsx +46 -8
  818. package/src/web/components/chat/prompt-cache-chip.tsx +74 -0
  819. package/src/web/components/chat/session-context-menu.tsx +14 -11
  820. package/src/web/components/chat/session-history-list.tsx +8 -1
  821. package/src/web/components/chat/session-list-panel.tsx +53 -53
  822. package/src/web/components/chat/session-list-sync-indicator.tsx +74 -0
  823. package/src/web/components/chat/slash-command-picker.tsx +8 -0
  824. package/src/web/components/chat/tag-filter-chips.tsx +18 -17
  825. package/src/web/components/editor/code-editor.tsx +1 -0
  826. package/src/web/components/editor/editor-language-service.tsx +11 -3
  827. package/src/web/components/editor/lsp-status.tsx +115 -13
  828. package/src/web/components/git/branch-picker.tsx +419 -0
  829. package/src/web/components/git/branch-select.tsx +34 -0
  830. package/src/web/components/git/create-worktree-dialog.tsx +17 -16
  831. package/src/web/components/git/git-repo-picker.tsx +28 -40
  832. package/src/web/components/layout/mobile-nav.tsx +19 -27
  833. package/src/web/components/layout/status-bar.tsx +42 -19
  834. package/src/web/components/layout/tab-bar.tsx +18 -26
  835. package/src/web/components/settings/accounts/account-card.tsx +5 -1
  836. package/src/web/components/settings/ai-settings-section.tsx +67 -3
  837. package/src/web/components/settings/appearance-settings-section.tsx +2 -28
  838. package/src/web/components/settings/language-servers-section.tsx +362 -0
  839. package/src/web/components/settings/settings-categories.ts +8 -3
  840. package/src/web/components/settings/settings-section-content.tsx +2 -0
  841. package/src/web/components/settings/tag-settings-section.tsx +21 -5
  842. package/src/web/components/settings/voice-settings-section.tsx +283 -0
  843. package/src/web/components/system/apps/app-row.tsx +110 -0
  844. package/src/web/components/system/apps/app-rows.ts +140 -0
  845. package/src/web/components/system/apps/apps-panel.tsx +129 -0
  846. package/src/web/components/system/metric-chart-canvas.tsx +79 -3
  847. package/src/web/components/system/overview-cards/card-shell.tsx +54 -0
  848. package/src/web/components/system/overview-cards/cpu-card.tsx +11 -6
  849. package/src/web/components/system/overview-cards/disk-card.tsx +11 -6
  850. package/src/web/components/system/overview-cards/gpu-card.tsx +16 -6
  851. package/src/web/components/system/overview-cards/mem-card.tsx +11 -6
  852. package/src/web/components/system/overview-cards/net-card.tsx +11 -6
  853. package/src/web/components/system/overview-device-target.ts +69 -0
  854. package/src/web/components/system/overview-panel.tsx +15 -1
  855. package/src/web/components/system/performance/cpu-core-grid.tsx +74 -0
  856. package/src/web/components/system/performance/cpu-detail.tsx +220 -0
  857. package/src/web/components/system/performance/detail-parts.tsx +149 -0
  858. package/src/web/components/system/performance/device-list.ts +139 -0
  859. package/src/web/components/system/performance/disk-detail.tsx +64 -0
  860. package/src/web/components/system/performance/fans-detail.tsx +35 -0
  861. package/src/web/components/system/performance/gpu-detail.tsx +116 -0
  862. package/src/web/components/system/performance/memory-detail.tsx +109 -0
  863. package/src/web/components/system/performance/nic-detail.tsx +55 -0
  864. package/src/web/components/system/performance/partition-list.tsx +79 -0
  865. package/src/web/components/system/performance/performance-panel.tsx +206 -0
  866. package/src/web/components/system/performance/use-hardware-inventory.ts +48 -0
  867. package/src/web/components/system/process-columns-grid.ts +5 -3
  868. package/src/web/components/system/process-details-dialog.tsx +116 -0
  869. package/src/web/components/system/process-group-row.tsx +6 -1
  870. package/src/web/components/system/process-row-format.ts +6 -0
  871. package/src/web/components/system/process-row-menu.tsx +72 -0
  872. package/src/web/components/system/process-row.tsx +7 -1
  873. package/src/web/components/system/process-table-model.ts +1 -1
  874. package/src/web/components/system/process-table-sort.ts +8 -4
  875. package/src/web/components/system/process-table-toolbar.tsx +10 -2
  876. package/src/web/components/system/process-table-totals.ts +3 -0
  877. package/src/web/components/system/process-table.tsx +25 -2
  878. package/src/web/components/system/services/service-action-confirm.tsx +100 -0
  879. package/src/web/components/system/services/service-columns.ts +103 -0
  880. package/src/web/components/system/services/service-details-sheet.tsx +97 -0
  881. package/src/web/components/system/services/service-resources.ts +105 -0
  882. package/src/web/components/system/services/service-row.tsx +146 -0
  883. package/src/web/components/system/services/service-rows.ts +92 -0
  884. package/src/web/components/system/services/service-sort.ts +90 -0
  885. package/src/web/components/system/services/services-header.tsx +51 -0
  886. package/src/web/components/system/services/services-panel.tsx +207 -0
  887. package/src/web/components/system/services/use-services.ts +92 -0
  888. package/src/web/components/system/sortable-header.tsx +13 -8
  889. package/src/web/components/system/sysmon-preferences.tsx +85 -0
  890. package/src/web/components/system/system-monitor-body.tsx +101 -43
  891. package/src/web/components/system/system-monitor-window-content.tsx +2 -3
  892. package/src/web/components/system/use-process-signal.ts +87 -0
  893. package/src/web/components/tunnels/public-tunnel-switch.tsx +82 -0
  894. package/src/web/components/tunnels/tunnel-manager-tab.tsx +4 -0
  895. package/src/web/components/ui/dialog.tsx +14 -1
  896. package/src/web/components/ui/search-select.tsx +279 -0
  897. package/src/web/components/ui/start-ellipsis.tsx +18 -0
  898. package/src/web/hooks/use-chat-account-claim.ts +39 -15
  899. package/src/web/hooks/use-chat.ts +40 -1
  900. package/src/web/hooks/use-draft.ts +12 -5
  901. package/src/web/hooks/use-global-events.ts +5 -0
  902. package/src/web/hooks/use-global-keybindings.ts +7 -5
  903. package/src/web/hooks/use-lsp.ts +23 -2
  904. package/src/web/hooks/use-minute-clock.ts +20 -0
  905. package/src/web/hooks/use-session-history.ts +136 -75
  906. package/src/web/hooks/use-usage.ts +68 -8
  907. package/src/web/hooks/use-whisper-voice-input.ts +113 -0
  908. package/src/web/lib/api-client.ts +26 -3
  909. package/src/web/lib/api-settings.ts +8 -1
  910. package/src/web/lib/api-tunnels.ts +19 -0
  911. package/src/web/lib/branch-select-items.ts +29 -0
  912. package/src/web/lib/browser-cache/cache-keys.ts +60 -0
  913. package/src/web/lib/browser-cache/idb-keyval-cache.ts +249 -0
  914. package/src/web/lib/browser-cache/project-cache-hydration.ts +98 -0
  915. package/src/web/lib/browser-cache/wipe-browser-caches.ts +66 -0
  916. package/src/web/lib/chat-preference-local-cache.ts +97 -0
  917. package/src/web/lib/chat-preparation-cache.ts +6 -0
  918. package/src/web/lib/cpu-graph-mode.ts +90 -0
  919. package/src/web/lib/format-bytes.ts +14 -0
  920. package/src/web/lib/git-ref-picker.ts +120 -0
  921. package/src/web/lib/lsp/lsp-client.ts +32 -0
  922. package/src/web/lib/new-chat-prepare-client.ts +167 -0
  923. package/src/web/lib/new-chat-provider.ts +3 -8
  924. package/src/web/lib/search-select-rows.ts +55 -0
  925. package/src/web/lib/session-list-merge.ts +88 -0
  926. package/src/web/lib/slash-items-cache.ts +116 -52
  927. package/src/web/lib/temperature.ts +27 -0
  928. package/src/web/lib/voice-wav.ts +69 -0
  929. package/src/web/stores/git-status-store.ts +31 -17
  930. package/src/web/stores/keybindings-store.ts +14 -1
  931. package/src/web/stores/panel-store.ts +56 -6
  932. package/src/web/stores/project-store.ts +34 -2
  933. package/src/web/stores/session-list-store.ts +259 -0
  934. package/src/web/stores/session-list-sync-triggers.ts +63 -0
  935. package/src/web/stores/settings-store.ts +65 -0
  936. package/src/web/styles/globals.css +11 -0
  937. package/dist/web/assets/_basePickBy-BEVUuplK.js +0 -1
  938. package/dist/web/assets/_basePickBy-BEVUuplK.js.br +0 -0
  939. package/dist/web/assets/_basePickBy-BEVUuplK.js.gz +0 -0
  940. package/dist/web/assets/_baseUniq-qb_BgEfK.js +0 -1
  941. package/dist/web/assets/_baseUniq-qb_BgEfK.js.br +0 -0
  942. package/dist/web/assets/_baseUniq-qb_BgEfK.js.gz +0 -0
  943. package/dist/web/assets/accounts-settings-section-DUVO32SQ.js +0 -1
  944. package/dist/web/assets/accounts-settings-section-DUVO32SQ.js.br +0 -0
  945. package/dist/web/assets/accounts-settings-section-DUVO32SQ.js.gz +0 -0
  946. package/dist/web/assets/ai-resource-editor-Dn_wB-o5.js +0 -1
  947. package/dist/web/assets/ai-resource-editor-Dn_wB-o5.js.br +0 -0
  948. package/dist/web/assets/ai-resource-editor-Dn_wB-o5.js.gz +0 -0
  949. package/dist/web/assets/ai-settings-section-CEbW8jRy.js +0 -1
  950. package/dist/web/assets/ai-settings-section-CEbW8jRy.js.br +0 -0
  951. package/dist/web/assets/ai-settings-section-CEbW8jRy.js.gz +0 -0
  952. package/dist/web/assets/ai-settings-section-D-mwEYFZ.js +0 -1
  953. package/dist/web/assets/angular-html-Djm1KT_p.js +0 -1
  954. package/dist/web/assets/angular-html-Djm1KT_p.js.br +0 -0
  955. package/dist/web/assets/angular-html-Djm1KT_p.js.gz +0 -0
  956. package/dist/web/assets/angular-ts-D8ZYU4i0.js +0 -1
  957. package/dist/web/assets/angular-ts-D8ZYU4i0.js.br +0 -0
  958. package/dist/web/assets/angular-ts-D8ZYU4i0.js.gz +0 -0
  959. package/dist/web/assets/api-client-BgedDTvo.js +0 -1
  960. package/dist/web/assets/api-client-c8YOpTlT.js +0 -1
  961. package/dist/web/assets/api-client-c8YOpTlT.js.br +0 -0
  962. package/dist/web/assets/api-client-c8YOpTlT.js.gz +0 -0
  963. package/dist/web/assets/api-settings-BmvNoCbn.js +0 -1
  964. package/dist/web/assets/api-settings-BmvNoCbn.js.br +0 -0
  965. package/dist/web/assets/api-settings-BmvNoCbn.js.gz +0 -0
  966. package/dist/web/assets/api-settings-Bti1-Zn3.js +0 -1
  967. package/dist/web/assets/api-themes-6fOQJgM9.js +0 -1
  968. package/dist/web/assets/apl-Bxk9ez2r.js +0 -1
  969. package/dist/web/assets/apl-Bxk9ez2r.js.br +0 -0
  970. package/dist/web/assets/apl-Bxk9ez2r.js.gz +0 -0
  971. package/dist/web/assets/appearance-settings-section-tw6TpFb6.js +0 -1
  972. package/dist/web/assets/appearance-settings-section-tw6TpFb6.js.br +0 -0
  973. package/dist/web/assets/appearance-settings-section-tw6TpFb6.js.gz +0 -0
  974. package/dist/web/assets/arc-CrBOnruw.js +0 -1
  975. package/dist/web/assets/arc-CrBOnruw.js.br +0 -0
  976. package/dist/web/assets/arc-CrBOnruw.js.gz +0 -0
  977. package/dist/web/assets/architecture-PBZL5I3N-bv6Z6ZTl.js +0 -1
  978. package/dist/web/assets/architectureDiagram-2XIMDMQ5-sFj2GCA0.js +0 -36
  979. package/dist/web/assets/architectureDiagram-2XIMDMQ5-sFj2GCA0.js.br +0 -0
  980. package/dist/web/assets/architectureDiagram-2XIMDMQ5-sFj2GCA0.js.gz +0 -0
  981. package/dist/web/assets/astro-CCE8GTuJ.js +0 -1
  982. package/dist/web/assets/astro-CCE8GTuJ.js.br +0 -0
  983. package/dist/web/assets/astro-CCE8GTuJ.js.gz +0 -0
  984. package/dist/web/assets/audio-preview-vaG2cB-k.js +0 -1
  985. package/dist/web/assets/audio-preview-vaG2cB-k.js.br +0 -0
  986. package/dist/web/assets/audio-preview-vaG2cB-k.js.gz +0 -0
  987. package/dist/web/assets/blade-pJLFJ0pe.js +0 -1
  988. package/dist/web/assets/blade-pJLFJ0pe.js.br +0 -0
  989. package/dist/web/assets/blade-pJLFJ0pe.js.gz +0 -0
  990. package/dist/web/assets/blockDiagram-WCTKOSBZ-DFag_MHk.js +0 -132
  991. package/dist/web/assets/blockDiagram-WCTKOSBZ-DFag_MHk.js.br +0 -0
  992. package/dist/web/assets/blockDiagram-WCTKOSBZ-DFag_MHk.js.gz +0 -0
  993. package/dist/web/assets/branch-review-tab-MBuMWp_i.js +0 -1
  994. package/dist/web/assets/branch-review-tab-MBuMWp_i.js.br +0 -0
  995. package/dist/web/assets/branch-review-tab-MBuMWp_i.js.gz +0 -0
  996. package/dist/web/assets/bsl-DJPQP6gj.js +0 -1
  997. package/dist/web/assets/bsl-DJPQP6gj.js.br +0 -0
  998. package/dist/web/assets/bsl-DJPQP6gj.js.gz +0 -0
  999. package/dist/web/assets/button-Ci9EUgqd.js +0 -1
  1000. package/dist/web/assets/button-Ci9EUgqd.js.br +0 -0
  1001. package/dist/web/assets/button-Ci9EUgqd.js.gz +0 -0
  1002. package/dist/web/assets/c4Diagram-IC4MRINW-Bs9OCCbR.js +0 -10
  1003. package/dist/web/assets/c4Diagram-IC4MRINW-Bs9OCCbR.js.br +0 -0
  1004. package/dist/web/assets/c4Diagram-IC4MRINW-Bs9OCCbR.js.gz +0 -0
  1005. package/dist/web/assets/cairo-6pdze4qN.js +0 -1
  1006. package/dist/web/assets/cairo-6pdze4qN.js.br +0 -0
  1007. package/dist/web/assets/cairo-6pdze4qN.js.gz +0 -0
  1008. package/dist/web/assets/channel-C97aABFT.js +0 -1
  1009. package/dist/web/assets/chat-preparation-cache-BSIQGiWx.js +0 -1
  1010. package/dist/web/assets/chat-preparation-cache-BSIQGiWx.js.br +0 -0
  1011. package/dist/web/assets/chat-preparation-cache-BSIQGiWx.js.gz +0 -0
  1012. package/dist/web/assets/chat-tab-DVvnqhw6.js +0 -1
  1013. package/dist/web/assets/chat-tab-DVvnqhw6.js.br +0 -0
  1014. package/dist/web/assets/chat-tab-DVvnqhw6.js.gz +0 -0
  1015. package/dist/web/assets/chat-tab-DaEHva22.js +0 -15
  1016. package/dist/web/assets/chat-tab-DaEHva22.js.br +0 -0
  1017. package/dist/web/assets/chat-tab-DaEHva22.js.gz +0 -0
  1018. package/dist/web/assets/chunk-4BX2VUAB-Dd8hGWzs.js +0 -1
  1019. package/dist/web/assets/chunk-55IACEB6-BUOmRdCb.js +0 -1
  1020. package/dist/web/assets/chunk-7E7YKBS2-D5i9aZ57.js +0 -1
  1021. package/dist/web/assets/chunk-7R4GIKGN-DBr9s6EE.js +0 -80
  1022. package/dist/web/assets/chunk-7R4GIKGN-DBr9s6EE.js.br +0 -0
  1023. package/dist/web/assets/chunk-7R4GIKGN-DBr9s6EE.js.gz +0 -0
  1024. package/dist/web/assets/chunk-C72U2L5F-CEUvONYx.js +0 -1
  1025. package/dist/web/assets/chunk-EGIJ26TM-BG89sF-p.js +0 -1
  1026. package/dist/web/assets/chunk-FMBD7UC4-BDtpoO-Q.js +0 -15
  1027. package/dist/web/assets/chunk-GEFDOKGD-lFQnV7FQ.js +0 -2
  1028. package/dist/web/assets/chunk-GEFDOKGD-lFQnV7FQ.js.br +0 -0
  1029. package/dist/web/assets/chunk-GEFDOKGD-lFQnV7FQ.js.gz +0 -0
  1030. package/dist/web/assets/chunk-GLR3WWYH-CBQYONd8.js +0 -2
  1031. package/dist/web/assets/chunk-GLR3WWYH-CBQYONd8.js.br +0 -0
  1032. package/dist/web/assets/chunk-GLR3WWYH-CBQYONd8.js.gz +0 -0
  1033. package/dist/web/assets/chunk-HHEYEP7N-Cz5o2sXg.js +0 -1
  1034. package/dist/web/assets/chunk-JSJVCQXG-FBF1o1AC.js +0 -1
  1035. package/dist/web/assets/chunk-JSJVCQXG-FBF1o1AC.js.br +0 -0
  1036. package/dist/web/assets/chunk-JSJVCQXG-FBF1o1AC.js.gz +0 -0
  1037. package/dist/web/assets/chunk-KX2RTZJC-Dfwu46M7.js +0 -1
  1038. package/dist/web/assets/chunk-KYZI473N-DQTRCz9g.js +0 -53
  1039. package/dist/web/assets/chunk-KYZI473N-DQTRCz9g.js.br +0 -0
  1040. package/dist/web/assets/chunk-KYZI473N-DQTRCz9g.js.gz +0 -0
  1041. package/dist/web/assets/chunk-L3YUKLVL-DytBx0nd.js +0 -1
  1042. package/dist/web/assets/chunk-MX3YWQON-Da7GPDei.js +0 -1
  1043. package/dist/web/assets/chunk-MX3YWQON-Da7GPDei.js.br +0 -0
  1044. package/dist/web/assets/chunk-MX3YWQON-Da7GPDei.js.gz +0 -0
  1045. package/dist/web/assets/chunk-NQ4KR5QH-D9-qngPN.js +0 -220
  1046. package/dist/web/assets/chunk-NQ4KR5QH-D9-qngPN.js.br +0 -0
  1047. package/dist/web/assets/chunk-NQ4KR5QH-D9-qngPN.js.gz +0 -0
  1048. package/dist/web/assets/chunk-O4XLMI2P-BFAbMP-p.js +0 -7
  1049. package/dist/web/assets/chunk-O4XLMI2P-BFAbMP-p.js.br +0 -0
  1050. package/dist/web/assets/chunk-O4XLMI2P-BFAbMP-p.js.gz +0 -0
  1051. package/dist/web/assets/chunk-OZEHJAEY-DM7Vtv5V.js +0 -1
  1052. package/dist/web/assets/chunk-OZEHJAEY-DM7Vtv5V.js.br +0 -0
  1053. package/dist/web/assets/chunk-OZEHJAEY-DM7Vtv5V.js.gz +0 -0
  1054. package/dist/web/assets/chunk-PQ6SQG4A-CfSY-HG3.js +0 -1
  1055. package/dist/web/assets/chunk-PQ6SQG4A-CfSY-HG3.js.br +0 -0
  1056. package/dist/web/assets/chunk-PQ6SQG4A-CfSY-HG3.js.gz +0 -0
  1057. package/dist/web/assets/chunk-PU5JKC2W-BFI9jx5F.js +0 -11
  1058. package/dist/web/assets/chunk-PU5JKC2W-BFI9jx5F.js.br +0 -0
  1059. package/dist/web/assets/chunk-PU5JKC2W-BFI9jx5F.js.gz +0 -0
  1060. package/dist/web/assets/chunk-QZHKN3VN-_jIwYKZ3.js +0 -1
  1061. package/dist/web/assets/chunk-R5LLSJPH-CZY_f--s.js +0 -1
  1062. package/dist/web/assets/chunk-WL4C6EOR-BUFIzsiK.js +0 -189
  1063. package/dist/web/assets/chunk-WL4C6EOR-BUFIzsiK.js.br +0 -0
  1064. package/dist/web/assets/chunk-WL4C6EOR-BUFIzsiK.js.gz +0 -0
  1065. package/dist/web/assets/chunk-XIRO2GV7-BxPFOPRI.js +0 -1
  1066. package/dist/web/assets/chunk-XPW4576I-DfOF_qdG.js +0 -32
  1067. package/dist/web/assets/chunk-XPW4576I-DfOF_qdG.js.br +0 -0
  1068. package/dist/web/assets/chunk-XPW4576I-DfOF_qdG.js.gz +0 -0
  1069. package/dist/web/assets/chunk-XZSTWKYB-BNlQ8dIW.js +0 -94
  1070. package/dist/web/assets/chunk-XZSTWKYB-BNlQ8dIW.js.br +0 -0
  1071. package/dist/web/assets/chunk-XZSTWKYB-BNlQ8dIW.js.gz +0 -0
  1072. package/dist/web/assets/chunk-YBOYWFTD-0Is1vHmh.js +0 -1
  1073. package/dist/web/assets/classDiagram-VBA2DB6C-HwLNQY_4.js +0 -1
  1074. package/dist/web/assets/classDiagram-v2-RAHNMMFH-CLUQCcjH.js +0 -1
  1075. package/dist/web/assets/clone-B5kRZECd.js +0 -1
  1076. package/dist/web/assets/cobol-6JrtZ3xT.js +0 -1
  1077. package/dist/web/assets/cobol-6JrtZ3xT.js.br +0 -0
  1078. package/dist/web/assets/cobol-6JrtZ3xT.js.gz +0 -0
  1079. package/dist/web/assets/code-editor-Bu9lhTVp.js +0 -7
  1080. package/dist/web/assets/code-editor-Bu9lhTVp.js.br +0 -0
  1081. package/dist/web/assets/code-editor-Bu9lhTVp.js.gz +0 -0
  1082. package/dist/web/assets/codex-reset-credit-button-CbmE5mRX.js +0 -1
  1083. package/dist/web/assets/codex-reset-credit-button-CbmE5mRX.js.br +0 -0
  1084. package/dist/web/assets/codex-reset-credit-button-CbmE5mRX.js.gz +0 -0
  1085. package/dist/web/assets/coffee-eR0Qd-vR.js +0 -1
  1086. package/dist/web/assets/coffee-eR0Qd-vR.js.br +0 -0
  1087. package/dist/web/assets/coffee-eR0Qd-vR.js.gz +0 -0
  1088. package/dist/web/assets/conflict-editor-BA3y-qSH.js +0 -19
  1089. package/dist/web/assets/conflict-editor-BA3y-qSH.js.br +0 -0
  1090. package/dist/web/assets/conflict-editor-BA3y-qSH.js.gz +0 -0
  1091. package/dist/web/assets/context-menu-CjYTq8DI.js +0 -1
  1092. package/dist/web/assets/context-menu-CjYTq8DI.js.br +0 -0
  1093. package/dist/web/assets/context-menu-CjYTq8DI.js.gz +0 -0
  1094. package/dist/web/assets/cose-bilkent-S5V4N54A-CAPPRjYz.js +0 -1
  1095. package/dist/web/assets/cose-bilkent-S5V4N54A-CAPPRjYz.js.br +0 -0
  1096. package/dist/web/assets/cose-bilkent-S5V4N54A-CAPPRjYz.js.gz +0 -0
  1097. package/dist/web/assets/cpp-Bp_Laxmd.js +0 -1
  1098. package/dist/web/assets/cpp-Bp_Laxmd.js.br +0 -0
  1099. package/dist/web/assets/cpp-Bp_Laxmd.js.gz +0 -0
  1100. package/dist/web/assets/crystal-bc0lS6i8.js +0 -1
  1101. package/dist/web/assets/crystal-bc0lS6i8.js.br +0 -0
  1102. package/dist/web/assets/crystal-bc0lS6i8.js.gz +0 -0
  1103. package/dist/web/assets/csv-preview-BioxkrQF.js +0 -2
  1104. package/dist/web/assets/csv-preview-BioxkrQF.js.br +0 -0
  1105. package/dist/web/assets/csv-preview-BioxkrQF.js.gz +0 -0
  1106. package/dist/web/assets/dagre-D__SE4Ki.js +0 -1
  1107. package/dist/web/assets/dagre-D__SE4Ki.js.br +0 -0
  1108. package/dist/web/assets/dagre-D__SE4Ki.js.gz +0 -0
  1109. package/dist/web/assets/dagre-KLK3FWXG-By-0HuN_.js +0 -4
  1110. package/dist/web/assets/dagre-KLK3FWXG-By-0HuN_.js.br +0 -0
  1111. package/dist/web/assets/dagre-KLK3FWXG-By-0HuN_.js.gz +0 -0
  1112. package/dist/web/assets/data-grid-overlay-editor-CQRVKr7y.js +0 -1
  1113. package/dist/web/assets/data-grid-overlay-editor-CQRVKr7y.js.br +0 -0
  1114. package/dist/web/assets/data-grid-overlay-editor-CQRVKr7y.js.gz +0 -0
  1115. package/dist/web/assets/database-viewer-BSoJ0E6p.js +0 -1
  1116. package/dist/web/assets/database-viewer-BSoJ0E6p.js.br +0 -0
  1117. package/dist/web/assets/database-viewer-BSoJ0E6p.js.gz +0 -0
  1118. package/dist/web/assets/design-export-client-ChMcMoqW.js +0 -1
  1119. package/dist/web/assets/design-export-client-ChMcMoqW.js.br +0 -0
  1120. package/dist/web/assets/design-export-client-ChMcMoqW.js.gz +0 -0
  1121. package/dist/web/assets/design-responsive-dialog-DNBhJJLf.js +0 -1
  1122. package/dist/web/assets/design-responsive-dialog-DNBhJJLf.js.br +0 -0
  1123. package/dist/web/assets/design-responsive-dialog-DNBhJJLf.js.gz +0 -0
  1124. package/dist/web/assets/design-tab-iU2CviE3.js +0 -33
  1125. package/dist/web/assets/design-tab-iU2CviE3.js.br +0 -0
  1126. package/dist/web/assets/design-tab-iU2CviE3.js.gz +0 -0
  1127. package/dist/web/assets/designs-sidebar-panel-DHh5QsH9.js +0 -1
  1128. package/dist/web/assets/designs-sidebar-panel-DHh5QsH9.js.br +0 -0
  1129. package/dist/web/assets/designs-sidebar-panel-DHh5QsH9.js.gz +0 -0
  1130. package/dist/web/assets/diagram-E7M64L7V-w1uoD2zJ.js +0 -24
  1131. package/dist/web/assets/diagram-E7M64L7V-w1uoD2zJ.js.br +0 -0
  1132. package/dist/web/assets/diagram-E7M64L7V-w1uoD2zJ.js.gz +0 -0
  1133. package/dist/web/assets/diagram-IFDJBPK2-DIZ1Hm8C.js +0 -43
  1134. package/dist/web/assets/diagram-IFDJBPK2-DIZ1Hm8C.js.br +0 -0
  1135. package/dist/web/assets/diagram-IFDJBPK2-DIZ1Hm8C.js.gz +0 -0
  1136. package/dist/web/assets/diagram-P4PSJMXO-DJg8_uM2.js +0 -24
  1137. package/dist/web/assets/diagram-P4PSJMXO-DJg8_uM2.js.br +0 -0
  1138. package/dist/web/assets/diagram-P4PSJMXO-DJg8_uM2.js.gz +0 -0
  1139. package/dist/web/assets/dialog-B8clVkyi.js +0 -1
  1140. package/dist/web/assets/dialog-B8clVkyi.js.br +0 -0
  1141. package/dist/web/assets/dialog-B8clVkyi.js.gz +0 -0
  1142. package/dist/web/assets/diff-viewer-lctWoSmG.js +0 -4
  1143. package/dist/web/assets/diff-viewer-lctWoSmG.js.br +0 -0
  1144. package/dist/web/assets/diff-viewer-lctWoSmG.js.gz +0 -0
  1145. package/dist/web/assets/docx-preview-C9XdKEj1.js +0 -12
  1146. package/dist/web/assets/docx-preview-C9XdKEj1.js.br +0 -0
  1147. package/dist/web/assets/docx-preview-C9XdKEj1.js.gz +0 -0
  1148. package/dist/web/assets/edge-BxayftlC.js +0 -1
  1149. package/dist/web/assets/edge-BxayftlC.js.br +0 -0
  1150. package/dist/web/assets/edge-BxayftlC.js.gz +0 -0
  1151. package/dist/web/assets/edit-diff-preview-C7YF1xV7.js +0 -7
  1152. package/dist/web/assets/edit-diff-preview-C7YF1xV7.js.br +0 -0
  1153. package/dist/web/assets/edit-diff-preview-C7YF1xV7.js.gz +0 -0
  1154. package/dist/web/assets/editor-language-service-fPG56hQO.js +0 -1
  1155. package/dist/web/assets/editor-language-service-fPG56hQO.js.br +0 -0
  1156. package/dist/web/assets/editor-language-service-fPG56hQO.js.gz +0 -0
  1157. package/dist/web/assets/elixir-CncTBq2d.js +0 -1
  1158. package/dist/web/assets/elixir-CncTBq2d.js.br +0 -0
  1159. package/dist/web/assets/elixir-CncTBq2d.js.gz +0 -0
  1160. package/dist/web/assets/elm-1uJDe5N1.js +0 -1
  1161. package/dist/web/assets/elm-1uJDe5N1.js.br +0 -0
  1162. package/dist/web/assets/elm-1uJDe5N1.js.gz +0 -0
  1163. package/dist/web/assets/erDiagram-INFDFZHY-CXGHzu5w.js +0 -70
  1164. package/dist/web/assets/erDiagram-INFDFZHY-CXGHzu5w.js.br +0 -0
  1165. package/dist/web/assets/erDiagram-INFDFZHY-CXGHzu5w.js.gz +0 -0
  1166. package/dist/web/assets/erb-dH8FUiNl.js +0 -1
  1167. package/dist/web/assets/erb-dH8FUiNl.js.br +0 -0
  1168. package/dist/web/assets/erb-dH8FUiNl.js.gz +0 -0
  1169. package/dist/web/assets/erlang-D0F-1O48.js +0 -1
  1170. package/dist/web/assets/erlang-D0F-1O48.js.br +0 -0
  1171. package/dist/web/assets/erlang-D0F-1O48.js.gz +0 -0
  1172. package/dist/web/assets/esm-C3TeLjGW.js +0 -2
  1173. package/dist/web/assets/esm-C3TeLjGW.js.br +0 -0
  1174. package/dist/web/assets/esm-C3TeLjGW.js.gz +0 -0
  1175. package/dist/web/assets/explorer-body-BgF7FsxI.js +0 -2
  1176. package/dist/web/assets/explorer-body-BgF7FsxI.js.br +0 -0
  1177. package/dist/web/assets/explorer-body-BgF7FsxI.js.gz +0 -0
  1178. package/dist/web/assets/explorer-window-content-C21w_7lf.js +0 -1
  1179. package/dist/web/assets/explorer-window-content-C21w_7lf.js.br +0 -0
  1180. package/dist/web/assets/explorer-window-content-C21w_7lf.js.gz +0 -0
  1181. package/dist/web/assets/extension-manager-section-rbkXsZVR.js +0 -1
  1182. package/dist/web/assets/extension-manager-section-rbkXsZVR.js.br +0 -0
  1183. package/dist/web/assets/extension-manager-section-rbkXsZVR.js.gz +0 -0
  1184. package/dist/web/assets/extension-webview-uPO0WgCq.js +0 -12
  1185. package/dist/web/assets/extension-webview-uPO0WgCq.js.br +0 -0
  1186. package/dist/web/assets/extension-webview-uPO0WgCq.js.gz +0 -0
  1187. package/dist/web/assets/file-icons-gx_FBOXY.js +0 -1
  1188. package/dist/web/assets/file-icons-gx_FBOXY.js.br +0 -0
  1189. package/dist/web/assets/file-icons-gx_FBOXY.js.gz +0 -0
  1190. package/dist/web/assets/file-store-D9KE0kQC.js +0 -1
  1191. package/dist/web/assets/file-store-D9KE0kQC.js.br +0 -0
  1192. package/dist/web/assets/file-store-D9KE0kQC.js.gz +0 -0
  1193. package/dist/web/assets/files-settings-section-CT7mDb0L.js +0 -1
  1194. package/dist/web/assets/files-settings-section-CT7mDb0L.js.br +0 -0
  1195. package/dist/web/assets/files-settings-section-CT7mDb0L.js.gz +0 -0
  1196. package/dist/web/assets/flowDiagram-PKNHOUZH-CZmY6JEk.js +0 -162
  1197. package/dist/web/assets/flowDiagram-PKNHOUZH-CZmY6JEk.js.br +0 -0
  1198. package/dist/web/assets/flowDiagram-PKNHOUZH-CZmY6JEk.js.gz +0 -0
  1199. package/dist/web/assets/format-bytes-DmSHAKFe.js +0 -1
  1200. package/dist/web/assets/format-file-meta-mQwA6SuY.js +0 -1
  1201. package/dist/web/assets/format-file-meta-mQwA6SuY.js.br +0 -0
  1202. package/dist/web/assets/format-file-meta-mQwA6SuY.js.gz +0 -0
  1203. package/dist/web/assets/fortran-fixed-form-DB7wVefV.js +0 -1
  1204. package/dist/web/assets/fortran-fixed-form-DB7wVefV.js.br +0 -0
  1205. package/dist/web/assets/fortran-fixed-form-DB7wVefV.js.gz +0 -0
  1206. package/dist/web/assets/fs-api-DL36slbd.js +0 -1
  1207. package/dist/web/assets/fs-api-DL36slbd.js.br +0 -0
  1208. package/dist/web/assets/fs-api-DL36slbd.js.gz +0 -0
  1209. package/dist/web/assets/fsharp-B5-po_gS.js +0 -1
  1210. package/dist/web/assets/fsharp-B5-po_gS.js.br +0 -0
  1211. package/dist/web/assets/fsharp-B5-po_gS.js.gz +0 -0
  1212. package/dist/web/assets/ganttDiagram-A5KZAMGK-CZbyfmux.js +0 -292
  1213. package/dist/web/assets/ganttDiagram-A5KZAMGK-CZbyfmux.js.br +0 -0
  1214. package/dist/web/assets/ganttDiagram-A5KZAMGK-CZbyfmux.js.gz +0 -0
  1215. package/dist/web/assets/gdresource-DkWx6_xT.js +0 -1
  1216. package/dist/web/assets/gdresource-DkWx6_xT.js.br +0 -0
  1217. package/dist/web/assets/gdresource-DkWx6_xT.js.gz +0 -0
  1218. package/dist/web/assets/general-settings-section-DANPfMRN.js +0 -1
  1219. package/dist/web/assets/general-settings-section-DANPfMRN.js.br +0 -0
  1220. package/dist/web/assets/general-settings-section-DANPfMRN.js.gz +0 -0
  1221. package/dist/web/assets/git-commit-XsMhdamD.js +0 -1
  1222. package/dist/web/assets/git-commit-XsMhdamD.js.br +0 -0
  1223. package/dist/web/assets/git-commit-XsMhdamD.js.gz +0 -0
  1224. package/dist/web/assets/git-log-panel-BJPkLiEw.js +0 -1
  1225. package/dist/web/assets/git-log-panel-BJPkLiEw.js.br +0 -0
  1226. package/dist/web/assets/git-log-panel-BJPkLiEw.js.gz +0 -0
  1227. package/dist/web/assets/git-rebase-CXs4QunZ.js +0 -1
  1228. package/dist/web/assets/git-repo-store-DSypNj19.js +0 -1
  1229. package/dist/web/assets/git-repo-store-DSypNj19.js.br +0 -0
  1230. package/dist/web/assets/git-repo-store-DSypNj19.js.gz +0 -0
  1231. package/dist/web/assets/gitGraph-HDMCJU4V-COyQftEp.js +0 -1
  1232. package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-C9g4d3bV.js +0 -65
  1233. package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-C9g4d3bV.js.br +0 -0
  1234. package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-C9g4d3bV.js.gz +0 -0
  1235. package/dist/web/assets/glide-data-grid-R4PcAntf.js +0 -141
  1236. package/dist/web/assets/glide-data-grid-R4PcAntf.js.br +0 -0
  1237. package/dist/web/assets/glide-data-grid-R4PcAntf.js.gz +0 -0
  1238. package/dist/web/assets/glimmer-js-CHoxSy4K.js +0 -1
  1239. package/dist/web/assets/glimmer-js-CHoxSy4K.js.br +0 -0
  1240. package/dist/web/assets/glimmer-js-CHoxSy4K.js.gz +0 -0
  1241. package/dist/web/assets/glimmer-ts-DY0DCf-r.js +0 -1
  1242. package/dist/web/assets/glimmer-ts-DY0DCf-r.js.br +0 -0
  1243. package/dist/web/assets/glimmer-ts-DY0DCf-r.js.gz +0 -0
  1244. package/dist/web/assets/glsl-E9hxFBBJ.js +0 -1
  1245. package/dist/web/assets/glsl-E9hxFBBJ.js.br +0 -0
  1246. package/dist/web/assets/glsl-E9hxFBBJ.js.gz +0 -0
  1247. package/dist/web/assets/graphlib-eYluCODn.js +0 -1
  1248. package/dist/web/assets/graphlib-eYluCODn.js.br +0 -0
  1249. package/dist/web/assets/graphlib-eYluCODn.js.gz +0 -0
  1250. package/dist/web/assets/graphql-DAalq3Uo.js +0 -1
  1251. package/dist/web/assets/graphql-DAalq3Uo.js.br +0 -0
  1252. package/dist/web/assets/graphql-DAalq3Uo.js.gz +0 -0
  1253. package/dist/web/assets/group-chat-tab-BXMdo8w9.js +0 -1
  1254. package/dist/web/assets/group-chat-tab-BXMdo8w9.js.br +0 -0
  1255. package/dist/web/assets/group-chat-tab-BXMdo8w9.js.gz +0 -0
  1256. package/dist/web/assets/hack-e6ehmpqx.js +0 -1
  1257. package/dist/web/assets/hack-e6ehmpqx.js.br +0 -0
  1258. package/dist/web/assets/hack-e6ehmpqx.js.gz +0 -0
  1259. package/dist/web/assets/haml-Pr4yq62b.js +0 -1
  1260. package/dist/web/assets/haml-Pr4yq62b.js.br +0 -0
  1261. package/dist/web/assets/haml-Pr4yq62b.js.gz +0 -0
  1262. package/dist/web/assets/handlebars-ZERVZ8gn.js +0 -1
  1263. package/dist/web/assets/handlebars-ZERVZ8gn.js.br +0 -0
  1264. package/dist/web/assets/handlebars-ZERVZ8gn.js.gz +0 -0
  1265. package/dist/web/assets/html-BmwVFf5D.js +0 -1
  1266. package/dist/web/assets/html-BmwVFf5D.js.br +0 -0
  1267. package/dist/web/assets/html-BmwVFf5D.js.gz +0 -0
  1268. package/dist/web/assets/html-derivative-C1JIrmAY.js +0 -1
  1269. package/dist/web/assets/http-BI6PtTvX.js +0 -1
  1270. package/dist/web/assets/http-BI6PtTvX.js.br +0 -0
  1271. package/dist/web/assets/http-BI6PtTvX.js.gz +0 -0
  1272. package/dist/web/assets/hurl-CJGLGxAF.js +0 -1
  1273. package/dist/web/assets/hurl-CJGLGxAF.js.br +0 -0
  1274. package/dist/web/assets/hurl-CJGLGxAF.js.gz +0 -0
  1275. package/dist/web/assets/hxml-B6i0QuF9.js +0 -1
  1276. package/dist/web/assets/hxml-B6i0QuF9.js.br +0 -0
  1277. package/dist/web/assets/hxml-B6i0QuF9.js.gz +0 -0
  1278. package/dist/web/assets/image-preview-CGdZrmLo.js +0 -1
  1279. package/dist/web/assets/index-C8nGqkKN.js +0 -52
  1280. package/dist/web/assets/index-C8nGqkKN.js.br +0 -0
  1281. package/dist/web/assets/index-C8nGqkKN.js.gz +0 -0
  1282. package/dist/web/assets/index-DvClbTQx.css +0 -1
  1283. package/dist/web/assets/index-DvClbTQx.css.br +0 -0
  1284. package/dist/web/assets/index-DvClbTQx.css.gz +0 -0
  1285. package/dist/web/assets/info-3K5VOQVL-M5BVLjMe.js +0 -1
  1286. package/dist/web/assets/infoDiagram-LFFYTUFH-BpJuT5o9.js +0 -2
  1287. package/dist/web/assets/isEmpty-BjAN1oSC.js +0 -1
  1288. package/dist/web/assets/isEmpty-BjAN1oSC.js.br +0 -0
  1289. package/dist/web/assets/isEmpty-BjAN1oSC.js.gz +0 -0
  1290. package/dist/web/assets/ishikawaDiagram-PHBUUO56-JbOmOY2f.js +0 -70
  1291. package/dist/web/assets/ishikawaDiagram-PHBUUO56-JbOmOY2f.js.br +0 -0
  1292. package/dist/web/assets/ishikawaDiagram-PHBUUO56-JbOmOY2f.js.gz +0 -0
  1293. package/dist/web/assets/jinja-CM-duDMo.js +0 -1
  1294. package/dist/web/assets/jinja-CM-duDMo.js.br +0 -0
  1295. package/dist/web/assets/jinja-CM-duDMo.js.gz +0 -0
  1296. package/dist/web/assets/jira-watcher-section-DHRoyWcG.js +0 -1
  1297. package/dist/web/assets/jison-F9rAmqyI.js +0 -1
  1298. package/dist/web/assets/jison-F9rAmqyI.js.br +0 -0
  1299. package/dist/web/assets/jison-F9rAmqyI.js.gz +0 -0
  1300. package/dist/web/assets/journeyDiagram-4ABVD52K-C7_tilrE.js +0 -139
  1301. package/dist/web/assets/journeyDiagram-4ABVD52K-C7_tilrE.js.br +0 -0
  1302. package/dist/web/assets/journeyDiagram-4ABVD52K-C7_tilrE.js.gz +0 -0
  1303. package/dist/web/assets/julia-AVSSuAUz.js +0 -1
  1304. package/dist/web/assets/julia-AVSSuAUz.js.br +0 -0
  1305. package/dist/web/assets/julia-AVSSuAUz.js.gz +0 -0
  1306. package/dist/web/assets/just-Dw8IR-fy.js +0 -1
  1307. package/dist/web/assets/just-Dw8IR-fy.js.br +0 -0
  1308. package/dist/web/assets/just-Dw8IR-fy.js.gz +0 -0
  1309. package/dist/web/assets/kanban-definition-K7BYSVSG-DvbxKeXt.js +0 -89
  1310. package/dist/web/assets/kanban-definition-K7BYSVSG-DvbxKeXt.js.br +0 -0
  1311. package/dist/web/assets/kanban-definition-K7BYSVSG-DvbxKeXt.js.gz +0 -0
  1312. package/dist/web/assets/keybindings-store-BGKlQQAv.js +0 -1
  1313. package/dist/web/assets/keyboard-shortcuts-section-BKej4mUf.js +0 -1
  1314. package/dist/web/assets/keyboard-shortcuts-section-BKej4mUf.js.br +0 -0
  1315. package/dist/web/assets/keyboard-shortcuts-section-BKej4mUf.js.gz +0 -0
  1316. package/dist/web/assets/latex-37_9fLdz.js +0 -1
  1317. package/dist/web/assets/latex-37_9fLdz.js.br +0 -0
  1318. package/dist/web/assets/latex-37_9fLdz.js.gz +0 -0
  1319. package/dist/web/assets/line-CYtSrseF.js +0 -1
  1320. package/dist/web/assets/linear-DyCrWAir.js +0 -1
  1321. package/dist/web/assets/linear-DyCrWAir.js.br +0 -0
  1322. package/dist/web/assets/linear-DyCrWAir.js.gz +0 -0
  1323. package/dist/web/assets/liquid-CaR1gaJt.js +0 -1
  1324. package/dist/web/assets/liquid-CaR1gaJt.js.br +0 -0
  1325. package/dist/web/assets/liquid-CaR1gaJt.js.gz +0 -0
  1326. package/dist/web/assets/lua-IFhrYmKl.js +0 -1
  1327. package/dist/web/assets/lua-IFhrYmKl.js.br +0 -0
  1328. package/dist/web/assets/lua-IFhrYmKl.js.gz +0 -0
  1329. package/dist/web/assets/markdown-renderer-BHtYqkYZ.js +0 -5
  1330. package/dist/web/assets/markdown-renderer-BHtYqkYZ.js.br +0 -0
  1331. package/dist/web/assets/markdown-renderer-BHtYqkYZ.js.gz +0 -0
  1332. package/dist/web/assets/markdown-renderer-vDNuKjel.js +0 -1
  1333. package/dist/web/assets/marko-2g0T6atb.js +0 -1
  1334. package/dist/web/assets/marko-2g0T6atb.js.br +0 -0
  1335. package/dist/web/assets/marko-2g0T6atb.js.gz +0 -0
  1336. package/dist/web/assets/mdc-Dku_3sTh.js +0 -1
  1337. package/dist/web/assets/mdc-Dku_3sTh.js.br +0 -0
  1338. package/dist/web/assets/mdc-Dku_3sTh.js.gz +0 -0
  1339. package/dist/web/assets/media-url-CzUJrREv.js +0 -1
  1340. package/dist/web/assets/mermaid-parser.core-C5vBM3kO.js +0 -4
  1341. package/dist/web/assets/mermaid-parser.core-C5vBM3kO.js.br +0 -0
  1342. package/dist/web/assets/mermaid-parser.core-C5vBM3kO.js.gz +0 -0
  1343. package/dist/web/assets/mermaid.core-D5SAzB7L.js +0 -11
  1344. package/dist/web/assets/mermaid.core-D5SAzB7L.js.br +0 -0
  1345. package/dist/web/assets/mermaid.core-D5SAzB7L.js.gz +0 -0
  1346. package/dist/web/assets/mindmap-definition-YRQLILUH-juNCbDFr.js +0 -68
  1347. package/dist/web/assets/mindmap-definition-YRQLILUH-juNCbDFr.js.br +0 -0
  1348. package/dist/web/assets/mindmap-definition-YRQLILUH-juNCbDFr.js.gz +0 -0
  1349. package/dist/web/assets/mobile-bottom-sheet-CuNi2FRv.js +0 -1
  1350. package/dist/web/assets/mobile-bottom-sheet-CuNi2FRv.js.br +0 -0
  1351. package/dist/web/assets/mobile-bottom-sheet-CuNi2FRv.js.gz +0 -0
  1352. package/dist/web/assets/mobile-explorer-sheet-DtvxS7-r.js +0 -1
  1353. package/dist/web/assets/mobile-explorer-sheet-DtvxS7-r.js.br +0 -0
  1354. package/dist/web/assets/mobile-explorer-sheet-DtvxS7-r.js.gz +0 -0
  1355. package/dist/web/assets/new-chat-provider-Cp7JsC5q.js +0 -1
  1356. package/dist/web/assets/new-design-dialog-DS_XrpTG.js +0 -1
  1357. package/dist/web/assets/new-design-dialog-DS_XrpTG.js.br +0 -0
  1358. package/dist/web/assets/new-design-dialog-DS_XrpTG.js.gz +0 -0
  1359. package/dist/web/assets/nextflow-DwUrPV3b.js +0 -1
  1360. package/dist/web/assets/nextflow-DwUrPV3b.js.br +0 -0
  1361. package/dist/web/assets/nextflow-DwUrPV3b.js.gz +0 -0
  1362. package/dist/web/assets/nginx-D10J2vrQ.js +0 -1
  1363. package/dist/web/assets/nginx-D10J2vrQ.js.br +0 -0
  1364. package/dist/web/assets/nginx-D10J2vrQ.js.gz +0 -0
  1365. package/dist/web/assets/nim-BonDnBCZ.js +0 -1
  1366. package/dist/web/assets/nim-BonDnBCZ.js.br +0 -0
  1367. package/dist/web/assets/nim-BonDnBCZ.js.gz +0 -0
  1368. package/dist/web/assets/notification-store-Dnnj20Ky.js +0 -1
  1369. package/dist/web/assets/notifications-settings-section-C05WYqcE.js +0 -1
  1370. package/dist/web/assets/notifications-settings-section-C05WYqcE.js.br +0 -0
  1371. package/dist/web/assets/notifications-settings-section-C05WYqcE.js.gz +0 -0
  1372. package/dist/web/assets/number-overlay-editor-CHqPl6Pv.js +0 -9
  1373. package/dist/web/assets/number-overlay-editor-CHqPl6Pv.js.br +0 -0
  1374. package/dist/web/assets/number-overlay-editor-CHqPl6Pv.js.gz +0 -0
  1375. package/dist/web/assets/onboarding-entry-CmUqv1kl.js +0 -1
  1376. package/dist/web/assets/onboarding-entry-CmUqv1kl.js.br +0 -0
  1377. package/dist/web/assets/onboarding-entry-CmUqv1kl.js.gz +0 -0
  1378. package/dist/web/assets/onboarding-quick-orientation-DIhWv1CN.js +0 -1
  1379. package/dist/web/assets/onboarding-quick-orientation-DIhWv1CN.js.br +0 -0
  1380. package/dist/web/assets/onboarding-quick-orientation-DIhWv1CN.js.gz +0 -0
  1381. package/dist/web/assets/ordinal-CEpaoDoJ.js +0 -1
  1382. package/dist/web/assets/ordinal-CEpaoDoJ.js.br +0 -0
  1383. package/dist/web/assets/ordinal-CEpaoDoJ.js.gz +0 -0
  1384. package/dist/web/assets/overview-panel-BZAW_nag.js +0 -1
  1385. package/dist/web/assets/overview-panel-BZAW_nag.js.br +0 -0
  1386. package/dist/web/assets/overview-panel-BZAW_nag.js.gz +0 -0
  1387. package/dist/web/assets/packet-RMMSAZCW-DCgVLum2.js +0 -1
  1388. package/dist/web/assets/panel-store-BUQ-CPsd.js +0 -1
  1389. package/dist/web/assets/panel-store-BUQ-CPsd.js.br +0 -0
  1390. package/dist/web/assets/panel-store-BUQ-CPsd.js.gz +0 -0
  1391. package/dist/web/assets/pdf-preview-qdXmMkOR.js +0 -1
  1392. package/dist/web/assets/pdf-preview-qdXmMkOR.js.br +0 -0
  1393. package/dist/web/assets/pdf-preview-qdXmMkOR.js.gz +0 -0
  1394. package/dist/web/assets/perl-DmdIiZTm.js +0 -1
  1395. package/dist/web/assets/perl-DmdIiZTm.js.br +0 -0
  1396. package/dist/web/assets/perl-DmdIiZTm.js.gz +0 -0
  1397. package/dist/web/assets/php-DXGvCIY0.js +0 -1
  1398. package/dist/web/assets/php-DXGvCIY0.js.br +0 -0
  1399. package/dist/web/assets/php-DXGvCIY0.js.gz +0 -0
  1400. package/dist/web/assets/pie-UPGHQEXC-pxihnmef.js +0 -1
  1401. package/dist/web/assets/pieDiagram-SKSYHLDU-CiJCYElI.js +0 -30
  1402. package/dist/web/assets/pieDiagram-SKSYHLDU-CiJCYElI.js.br +0 -0
  1403. package/dist/web/assets/pieDiagram-SKSYHLDU-CiJCYElI.js.gz +0 -0
  1404. package/dist/web/assets/postgres-viewer-Xvlun_n5.js +0 -3
  1405. package/dist/web/assets/postgres-viewer-Xvlun_n5.js.br +0 -0
  1406. package/dist/web/assets/postgres-viewer-Xvlun_n5.js.gz +0 -0
  1407. package/dist/web/assets/ppmbot-settings-section-D8AES1BA.js +0 -1
  1408. package/dist/web/assets/ppmbot-settings-section-D8AES1BA.js.br +0 -0
  1409. package/dist/web/assets/ppmbot-settings-section-D8AES1BA.js.gz +0 -0
  1410. package/dist/web/assets/pptx-export-CG6MRNok.js +0 -111
  1411. package/dist/web/assets/pptx-export-CG6MRNok.js.br +0 -0
  1412. package/dist/web/assets/pptx-export-CG6MRNok.js.gz +0 -0
  1413. package/dist/web/assets/problems-panel-DTBG4beI.js +0 -1
  1414. package/dist/web/assets/problems-panel-DTBG4beI.js.br +0 -0
  1415. package/dist/web/assets/problems-panel-DTBG4beI.js.gz +0 -0
  1416. package/dist/web/assets/process-table-D_gR2XA6.js +0 -1
  1417. package/dist/web/assets/process-table-D_gR2XA6.js.br +0 -0
  1418. package/dist/web/assets/process-table-D_gR2XA6.js.gz +0 -0
  1419. package/dist/web/assets/project-framework-store-XxFXcUpb.js +0 -1
  1420. package/dist/web/assets/project-store-C5gJXkvb.js +0 -1
  1421. package/dist/web/assets/project-store-C5gJXkvb.js.br +0 -0
  1422. package/dist/web/assets/project-store-C5gJXkvb.js.gz +0 -0
  1423. package/dist/web/assets/proxy-settings-section-CqtmbeRj.js +0 -1
  1424. package/dist/web/assets/proxy-settings-section-CqtmbeRj.js.br +0 -0
  1425. package/dist/web/assets/proxy-settings-section-CqtmbeRj.js.gz +0 -0
  1426. package/dist/web/assets/pug-BgMlgmpT.js +0 -1
  1427. package/dist/web/assets/pug-BgMlgmpT.js.br +0 -0
  1428. package/dist/web/assets/pug-BgMlgmpT.js.gz +0 -0
  1429. package/dist/web/assets/qml-DjqBS8bc.js +0 -1
  1430. package/dist/web/assets/qml-DjqBS8bc.js.br +0 -0
  1431. package/dist/web/assets/qml-DjqBS8bc.js.gz +0 -0
  1432. package/dist/web/assets/quadrantDiagram-337W2JSQ-D3q5dHQe.js +0 -7
  1433. package/dist/web/assets/quadrantDiagram-337W2JSQ-D3q5dHQe.js.br +0 -0
  1434. package/dist/web/assets/quadrantDiagram-337W2JSQ-D3q5dHQe.js.gz +0 -0
  1435. package/dist/web/assets/query-audit-section-UKG_smyt.js +0 -1
  1436. package/dist/web/assets/query-audit-section-UKG_smyt.js.br +0 -0
  1437. package/dist/web/assets/query-audit-section-UKG_smyt.js.gz +0 -0
  1438. package/dist/web/assets/radar-KQ55EAFF-CeeNXQSm.js +0 -1
  1439. package/dist/web/assets/razor-CzV29vlj.js +0 -1
  1440. package/dist/web/assets/razor-CzV29vlj.js.br +0 -0
  1441. package/dist/web/assets/razor-CzV29vlj.js.gz +0 -0
  1442. package/dist/web/assets/remote-desktop-clipboard-notice-Djt6cpNL.js +0 -1
  1443. package/dist/web/assets/remote-desktop-clipboard-notice-Djt6cpNL.js.br +0 -0
  1444. package/dist/web/assets/remote-desktop-clipboard-notice-Djt6cpNL.js.gz +0 -0
  1445. package/dist/web/assets/remote-desktop-mobile-sheet-BQxhJUkm.js +0 -2
  1446. package/dist/web/assets/remote-desktop-mobile-sheet-BQxhJUkm.js.br +0 -0
  1447. package/dist/web/assets/remote-desktop-mobile-sheet-BQxhJUkm.js.gz +0 -0
  1448. package/dist/web/assets/remote-desktop-mobile-view-DGnT8RY7.js +0 -1
  1449. package/dist/web/assets/remote-desktop-mobile-view-DGnT8RY7.js.br +0 -0
  1450. package/dist/web/assets/remote-desktop-mobile-view-DGnT8RY7.js.gz +0 -0
  1451. package/dist/web/assets/remote-desktop-readiness-gate-DNJF8TcF.js +0 -1
  1452. package/dist/web/assets/remote-desktop-readiness-gate-DNJF8TcF.js.br +0 -0
  1453. package/dist/web/assets/remote-desktop-readiness-gate-DNJF8TcF.js.gz +0 -0
  1454. package/dist/web/assets/remote-desktop-window-content-Ds0DKmM0.js +0 -1
  1455. package/dist/web/assets/remote-desktop-window-content-Ds0DKmM0.js.br +0 -0
  1456. package/dist/web/assets/remote-desktop-window-content-Ds0DKmM0.js.gz +0 -0
  1457. package/dist/web/assets/requirementDiagram-Z7DCOOCP-BZfeEsxv.js +0 -73
  1458. package/dist/web/assets/requirementDiagram-Z7DCOOCP-BZfeEsxv.js.br +0 -0
  1459. package/dist/web/assets/requirementDiagram-Z7DCOOCP-BZfeEsxv.js.gz +0 -0
  1460. package/dist/web/assets/rst-DffOOLD7.js +0 -1
  1461. package/dist/web/assets/rst-DffOOLD7.js.br +0 -0
  1462. package/dist/web/assets/rst-DffOOLD7.js.gz +0 -0
  1463. package/dist/web/assets/ruby-C5DczJCc.js +0 -1
  1464. package/dist/web/assets/ruby-C5DczJCc.js.br +0 -0
  1465. package/dist/web/assets/ruby-C5DczJCc.js.gz +0 -0
  1466. package/dist/web/assets/run-in-terminal-HIdNgYim.js +0 -1
  1467. package/dist/web/assets/sankeyDiagram-WA2Y5GQK-CxM5iAJY.js +0 -10
  1468. package/dist/web/assets/sankeyDiagram-WA2Y5GQK-CxM5iAJY.js.br +0 -0
  1469. package/dist/web/assets/sankeyDiagram-WA2Y5GQK-CxM5iAJY.js.gz +0 -0
  1470. package/dist/web/assets/sas-CoO1xLdH.js +0 -1
  1471. package/dist/web/assets/sas-CoO1xLdH.js.br +0 -0
  1472. package/dist/web/assets/sas-CoO1xLdH.js.gz +0 -0
  1473. package/dist/web/assets/schedules-settings-section-BKoPovy2.js +0 -1
  1474. package/dist/web/assets/schedules-settings-section-BKoPovy2.js.br +0 -0
  1475. package/dist/web/assets/schedules-settings-section-BKoPovy2.js.gz +0 -0
  1476. package/dist/web/assets/scroll-area-XonvWYn_.js +0 -1
  1477. package/dist/web/assets/scroll-area-XonvWYn_.js.br +0 -0
  1478. package/dist/web/assets/scroll-area-XonvWYn_.js.gz +0 -0
  1479. package/dist/web/assets/scss-d9PFDNvb.js +0 -1
  1480. package/dist/web/assets/scss-d9PFDNvb.js.br +0 -0
  1481. package/dist/web/assets/scss-d9PFDNvb.js.gz +0 -0
  1482. package/dist/web/assets/send-to-chat-CyZ37y5J.js +0 -1
  1483. package/dist/web/assets/send-to-chat-CyZ37y5J.js.br +0 -0
  1484. package/dist/web/assets/send-to-chat-CyZ37y5J.js.gz +0 -0
  1485. package/dist/web/assets/separator-sQj04Ari.js +0 -1
  1486. package/dist/web/assets/sequenceDiagram-2WXFIKYE-D4PdZNfQ.js +0 -145
  1487. package/dist/web/assets/sequenceDiagram-2WXFIKYE-D4PdZNfQ.js.br +0 -0
  1488. package/dist/web/assets/sequenceDiagram-2WXFIKYE-D4PdZNfQ.js.gz +0 -0
  1489. package/dist/web/assets/settings-body-k2qPgRFe.js +0 -2
  1490. package/dist/web/assets/settings-body-k2qPgRFe.js.br +0 -0
  1491. package/dist/web/assets/settings-body-k2qPgRFe.js.gz +0 -0
  1492. package/dist/web/assets/settings-store-Br5c1efC.js +0 -2
  1493. package/dist/web/assets/settings-store-Br5c1efC.js.br +0 -0
  1494. package/dist/web/assets/settings-store-Br5c1efC.js.gz +0 -0
  1495. package/dist/web/assets/settings-tab-Bb23VdBu.js +0 -1
  1496. package/dist/web/assets/settings-window-content-ClarWusz.js +0 -1
  1497. package/dist/web/assets/shaderlab-BkB57LhQ.js +0 -1
  1498. package/dist/web/assets/shaderlab-BkB57LhQ.js.br +0 -0
  1499. package/dist/web/assets/shaderlab-BkB57LhQ.js.gz +0 -0
  1500. package/dist/web/assets/shellsession-CTpUym8_.js +0 -1
  1501. package/dist/web/assets/soy-CGmWpNZ2.js +0 -1
  1502. package/dist/web/assets/soy-CGmWpNZ2.js.br +0 -0
  1503. package/dist/web/assets/soy-CGmWpNZ2.js.gz +0 -0
  1504. package/dist/web/assets/sparql-DtdOj_MX.js +0 -1
  1505. package/dist/web/assets/sparql-DtdOj_MX.js.br +0 -0
  1506. package/dist/web/assets/sparql-DtdOj_MX.js.gz +0 -0
  1507. package/dist/web/assets/sql-query-editor-BjIMi9Wk.js +0 -1
  1508. package/dist/web/assets/sql-query-editor-BjIMi9Wk.js.br +0 -0
  1509. package/dist/web/assets/sql-query-editor-BjIMi9Wk.js.gz +0 -0
  1510. package/dist/web/assets/sqlite-viewer-BNcA6Irq.js +0 -1
  1511. package/dist/web/assets/sqlite-viewer-BNcA6Irq.js.br +0 -0
  1512. package/dist/web/assets/sqlite-viewer-BNcA6Irq.js.gz +0 -0
  1513. package/dist/web/assets/stata-6W_BX14b.js +0 -1
  1514. package/dist/web/assets/stata-6W_BX14b.js.br +0 -0
  1515. package/dist/web/assets/stata-6W_BX14b.js.gz +0 -0
  1516. package/dist/web/assets/stateDiagram-RAJIS63D-BasP-g7l.js +0 -1
  1517. package/dist/web/assets/stateDiagram-RAJIS63D-BasP-g7l.js.br +0 -0
  1518. package/dist/web/assets/stateDiagram-RAJIS63D-BasP-g7l.js.gz +0 -0
  1519. package/dist/web/assets/stateDiagram-v2-FVOUBMTO-DH7CpDey.js +0 -1
  1520. package/dist/web/assets/surrealql-BhmbH4Yk.js +0 -1
  1521. package/dist/web/assets/surrealql-BhmbH4Yk.js.br +0 -0
  1522. package/dist/web/assets/surrealql-BhmbH4Yk.js.gz +0 -0
  1523. package/dist/web/assets/svelte-D6EOFdO-.js +0 -1
  1524. package/dist/web/assets/svelte-D6EOFdO-.js.br +0 -0
  1525. package/dist/web/assets/svelte-D6EOFdO-.js.gz +0 -0
  1526. package/dist/web/assets/system-monitor-body-D0T3ggt2.js +0 -2
  1527. package/dist/web/assets/system-monitor-body-D0T3ggt2.js.br +0 -0
  1528. package/dist/web/assets/system-monitor-body-D0T3ggt2.js.gz +0 -0
  1529. package/dist/web/assets/system-monitor-tab-I1Igmoey.js +0 -1
  1530. package/dist/web/assets/system-monitor-window-content-C5SeUv1H.js +0 -1
  1531. package/dist/web/assets/tab-host-window-content-CIRGNCvi.js +0 -1
  1532. package/dist/web/assets/tab-host-window-content-CIRGNCvi.js.br +0 -0
  1533. package/dist/web/assets/tab-host-window-content-CIRGNCvi.js.gz +0 -0
  1534. package/dist/web/assets/tab-store-DqeaGhhE.js +0 -1
  1535. package/dist/web/assets/team-member-sheet-CwXpLi3X.js +0 -2
  1536. package/dist/web/assets/team-member-sheet-CwXpLi3X.js.br +0 -0
  1537. package/dist/web/assets/team-member-sheet-CwXpLi3X.js.gz +0 -0
  1538. package/dist/web/assets/team-member-window-content-4swiiDz7.js +0 -1
  1539. package/dist/web/assets/team-member-window-content-4swiiDz7.js.br +0 -0
  1540. package/dist/web/assets/team-member-window-content-4swiiDz7.js.gz +0 -0
  1541. package/dist/web/assets/templ-DuLJgZN8.js +0 -1
  1542. package/dist/web/assets/templ-DuLJgZN8.js.br +0 -0
  1543. package/dist/web/assets/templ-DuLJgZN8.js.gz +0 -0
  1544. package/dist/web/assets/terminal-tab-BGcdtMMT.js +0 -3
  1545. package/dist/web/assets/terminal-tab-BGcdtMMT.js.br +0 -0
  1546. package/dist/web/assets/terminal-tab-BGcdtMMT.js.gz +0 -0
  1547. package/dist/web/assets/tex-D8IJD2J1.js +0 -1
  1548. package/dist/web/assets/tex-D8IJD2J1.js.br +0 -0
  1549. package/dist/web/assets/tex-D8IJD2J1.js.gz +0 -0
  1550. package/dist/web/assets/timeline-definition-YZTLITO2-Do92I8eh.js +0 -61
  1551. package/dist/web/assets/timeline-definition-YZTLITO2-Do92I8eh.js.br +0 -0
  1552. package/dist/web/assets/timeline-definition-YZTLITO2-Do92I8eh.js.gz +0 -0
  1553. package/dist/web/assets/tool-cards-D0-krtA2.js +0 -9
  1554. package/dist/web/assets/tool-cards-D0-krtA2.js.br +0 -0
  1555. package/dist/web/assets/tool-cards-D0-krtA2.js.gz +0 -0
  1556. package/dist/web/assets/treemap-KZPCXAKY-OVcqjFQG.js +0 -1
  1557. package/dist/web/assets/ts-tags-BxVcUOvj.js +0 -1
  1558. package/dist/web/assets/ts-tags-BxVcUOvj.js.br +0 -0
  1559. package/dist/web/assets/ts-tags-BxVcUOvj.js.gz +0 -0
  1560. package/dist/web/assets/twig-BT8vDHa2.js +0 -1
  1561. package/dist/web/assets/twig-BT8vDHa2.js.br +0 -0
  1562. package/dist/web/assets/twig-BT8vDHa2.js.gz +0 -0
  1563. package/dist/web/assets/use-blob-url-CmavyEP8.js +0 -1
  1564. package/dist/web/assets/use-inline-blame-pKaXyGU-.js +0 -16
  1565. package/dist/web/assets/use-inline-blame-pKaXyGU-.js.br +0 -0
  1566. package/dist/web/assets/use-inline-blame-pKaXyGU-.js.gz +0 -0
  1567. package/dist/web/assets/use-lsp-71azTXQz.js +0 -6
  1568. package/dist/web/assets/use-lsp-71azTXQz.js.br +0 -0
  1569. package/dist/web/assets/use-lsp-71azTXQz.js.gz +0 -0
  1570. package/dist/web/assets/use-monaco-theme-C88KphGx.js +0 -1
  1571. package/dist/web/assets/use-open-team-member-B0eUOKKj.js +0 -1
  1572. package/dist/web/assets/use-websocket-Chk9guIU.js +0 -1
  1573. package/dist/web/assets/vendor-ui-BHh12_0v.js +0 -45
  1574. package/dist/web/assets/vendor-ui-BHh12_0v.js.br +0 -0
  1575. package/dist/web/assets/vendor-ui-BHh12_0v.js.gz +0 -0
  1576. package/dist/web/assets/vennDiagram-LZ73GAT5-ITFNzHRx.js +0 -34
  1577. package/dist/web/assets/vennDiagram-LZ73GAT5-ITFNzHRx.js.br +0 -0
  1578. package/dist/web/assets/vennDiagram-LZ73GAT5-ITFNzHRx.js.gz +0 -0
  1579. package/dist/web/assets/video-preview-DxEX-uGo.js +0 -1
  1580. package/dist/web/assets/video-preview-DxEX-uGo.js.br +0 -0
  1581. package/dist/web/assets/video-preview-DxEX-uGo.js.gz +0 -0
  1582. package/dist/web/assets/vue-BcyG2SyR.js +0 -1
  1583. package/dist/web/assets/vue-BcyG2SyR.js.br +0 -0
  1584. package/dist/web/assets/vue-BcyG2SyR.js.gz +0 -0
  1585. package/dist/web/assets/vue-html-D8iVjZTe.js +0 -1
  1586. package/dist/web/assets/vue-html-D8iVjZTe.js.br +0 -0
  1587. package/dist/web/assets/vue-html-D8iVjZTe.js.gz +0 -0
  1588. package/dist/web/assets/vue-vine-DxBjHHk4.js +0 -1
  1589. package/dist/web/assets/vue-vine-DxBjHHk4.js.br +0 -0
  1590. package/dist/web/assets/vue-vine-DxBjHHk4.js.gz +0 -0
  1591. package/dist/web/assets/window-pip-registry-BQ6LSr6d.js +0 -1
  1592. package/dist/web/assets/ws-auth-kXgsX2Js.js +0 -1
  1593. package/dist/web/assets/xml-Zepcw_qF.js +0 -1
  1594. package/dist/web/assets/xml-Zepcw_qF.js.br +0 -0
  1595. package/dist/web/assets/xml-Zepcw_qF.js.gz +0 -0
  1596. package/dist/web/assets/xsl-_m-WMWv3.js +0 -1
  1597. package/dist/web/assets/xsl-_m-WMWv3.js.br +0 -0
  1598. package/dist/web/assets/xsl-_m-WMWv3.js.gz +0 -0
  1599. package/dist/web/assets/xychartDiagram-JWTSCODW-Z12EI4TX.js +0 -7
  1600. package/dist/web/assets/xychartDiagram-JWTSCODW-Z12EI4TX.js.br +0 -0
  1601. package/dist/web/assets/xychartDiagram-JWTSCODW-Z12EI4TX.js.gz +0 -0
  1602. package/src/web/components/chat/chat-history-panel.tsx +0 -93
  1603. package/src/web/components/chat/session-picker.tsx +0 -216
  1604. /package/dist/web/assets/{__vite-browser-external-BpSQWxcq.js → __vite-browser-external-BMqZFa_k.js} +0 -0
  1605. /package/dist/web/assets/{abap-Ds6L4g_T.js → abap-DEWZ8BfO.js} +0 -0
  1606. /package/dist/web/assets/{abap-Ds6L4g_T.js.br → abap-DEWZ8BfO.js.br} +0 -0
  1607. /package/dist/web/assets/{abap-Ds6L4g_T.js.gz → abap-DEWZ8BfO.js.gz} +0 -0
  1608. /package/dist/web/assets/{actionscript-3-CLNiH4aj.js → actionscript-3-Csfd4JWP.js} +0 -0
  1609. /package/dist/web/assets/{actionscript-3-CLNiH4aj.js.br → actionscript-3-Csfd4JWP.js.br} +0 -0
  1610. /package/dist/web/assets/{actionscript-3-CLNiH4aj.js.gz → actionscript-3-Csfd4JWP.js.gz} +0 -0
  1611. /package/dist/web/assets/{ada-BoiebnO1.js → ada-DV_KFgBU.js} +0 -0
  1612. /package/dist/web/assets/{ada-BoiebnO1.js.br → ada-DV_KFgBU.js.br} +0 -0
  1613. /package/dist/web/assets/{ada-BoiebnO1.js.gz → ada-DV_KFgBU.js.gz} +0 -0
  1614. /package/dist/web/assets/{andromeeda-CdMZLp1H.js → andromeeda-wg0iUpxt.js} +0 -0
  1615. /package/dist/web/assets/{andromeeda-CdMZLp1H.js.br → andromeeda-wg0iUpxt.js.br} +0 -0
  1616. /package/dist/web/assets/{andromeeda-CdMZLp1H.js.gz → andromeeda-wg0iUpxt.js.gz} +0 -0
  1617. /package/dist/web/assets/{apache-BKOdPQIP.js → apache-CdwViB2Y.js} +0 -0
  1618. /package/dist/web/assets/{apache-BKOdPQIP.js.br → apache-CdwViB2Y.js.br} +0 -0
  1619. /package/dist/web/assets/{apache-BKOdPQIP.js.gz → apache-CdwViB2Y.js.gz} +0 -0
  1620. /package/dist/web/assets/{apex-kTmPDDVo.js → apex-DjpPrCTU.js} +0 -0
  1621. /package/dist/web/assets/{apex-kTmPDDVo.js.br → apex-DjpPrCTU.js.br} +0 -0
  1622. /package/dist/web/assets/{apex-kTmPDDVo.js.gz → apex-DjpPrCTU.js.gz} +0 -0
  1623. /package/dist/web/assets/{applescript-C65SMPLe.js → applescript-CGbSGD4R.js} +0 -0
  1624. /package/dist/web/assets/{applescript-C65SMPLe.js.br → applescript-CGbSGD4R.js.br} +0 -0
  1625. /package/dist/web/assets/{applescript-C65SMPLe.js.gz → applescript-CGbSGD4R.js.gz} +0 -0
  1626. /package/dist/web/assets/{apply-theme-Cc_cmrD5.js → apply-theme-aVoqSG0I.js} +0 -0
  1627. /package/dist/web/assets/{ara-BKT6no2T.js → ara-1-9TqW15.js} +0 -0
  1628. /package/dist/web/assets/{ara-BKT6no2T.js.br → ara-1-9TqW15.js.br} +0 -0
  1629. /package/dist/web/assets/{ara-BKT6no2T.js.gz → ara-1-9TqW15.js.gz} +0 -0
  1630. /package/dist/web/assets/{array-F4LNYbhF.js → array-fwuN0Fua.js} +0 -0
  1631. /package/dist/web/assets/{asciidoc-BGur0ue3.js → asciidoc-DzSPlQkC.js} +0 -0
  1632. /package/dist/web/assets/{asciidoc-BGur0ue3.js.br → asciidoc-DzSPlQkC.js.br} +0 -0
  1633. /package/dist/web/assets/{asciidoc-BGur0ue3.js.gz → asciidoc-DzSPlQkC.js.gz} +0 -0
  1634. /package/dist/web/assets/{asm-DOfgqCKD.js → asm-C3PsH5OJ.js} +0 -0
  1635. /package/dist/web/assets/{asm-DOfgqCKD.js.br → asm-C3PsH5OJ.js.br} +0 -0
  1636. /package/dist/web/assets/{asm-DOfgqCKD.js.gz → asm-C3PsH5OJ.js.gz} +0 -0
  1637. /package/dist/web/assets/{aurora-x-D64MWGxe.js → aurora-x--713kWoQ.js} +0 -0
  1638. /package/dist/web/assets/{aurora-x-D64MWGxe.js.br → aurora-x--713kWoQ.js.br} +0 -0
  1639. /package/dist/web/assets/{aurora-x-D64MWGxe.js.gz → aurora-x--713kWoQ.js.gz} +0 -0
  1640. /package/dist/web/assets/{awk-B_r8LcWp.js → awk-DmvCNQFQ.js} +0 -0
  1641. /package/dist/web/assets/{awk-B_r8LcWp.js.br → awk-DmvCNQFQ.js.br} +0 -0
  1642. /package/dist/web/assets/{awk-B_r8LcWp.js.gz → awk-DmvCNQFQ.js.gz} +0 -0
  1643. /package/dist/web/assets/{ayu-dark-DlDyr9-5.js → ayu-dark-8co70cPM.js} +0 -0
  1644. /package/dist/web/assets/{ayu-dark-DlDyr9-5.js.br → ayu-dark-8co70cPM.js.br} +0 -0
  1645. /package/dist/web/assets/{ayu-dark-DlDyr9-5.js.gz → ayu-dark-8co70cPM.js.gz} +0 -0
  1646. /package/dist/web/assets/{ayu-light-BF0a181n.js → ayu-light-CAGFfaLb.js} +0 -0
  1647. /package/dist/web/assets/{ayu-light-BF0a181n.js.br → ayu-light-CAGFfaLb.js.br} +0 -0
  1648. /package/dist/web/assets/{ayu-light-BF0a181n.js.gz → ayu-light-CAGFfaLb.js.gz} +0 -0
  1649. /package/dist/web/assets/{ayu-mirage-B6hnRsHM.js → ayu-mirage-Bpbk4keR.js} +0 -0
  1650. /package/dist/web/assets/{ayu-mirage-B6hnRsHM.js.br → ayu-mirage-Bpbk4keR.js.br} +0 -0
  1651. /package/dist/web/assets/{ayu-mirage-B6hnRsHM.js.gz → ayu-mirage-Bpbk4keR.js.gz} +0 -0
  1652. /package/dist/web/assets/{ballerina-CyhD34qA.js → ballerina-BHbHOl8y.js} +0 -0
  1653. /package/dist/web/assets/{ballerina-CyhD34qA.js.br → ballerina-BHbHOl8y.js.br} +0 -0
  1654. /package/dist/web/assets/{ballerina-CyhD34qA.js.gz → ballerina-BHbHOl8y.js.gz} +0 -0
  1655. /package/dist/web/assets/{bat-wHB_k1YG.js → bat-BcnkOgri.js} +0 -0
  1656. /package/dist/web/assets/{bat-wHB_k1YG.js.br → bat-BcnkOgri.js.br} +0 -0
  1657. /package/dist/web/assets/{bat-wHB_k1YG.js.gz → bat-BcnkOgri.js.gz} +0 -0
  1658. /package/dist/web/assets/{beancount-SUF8MnzM.js → beancount-952ROYkl.js} +0 -0
  1659. /package/dist/web/assets/{beancount-SUF8MnzM.js.br → beancount-952ROYkl.js.br} +0 -0
  1660. /package/dist/web/assets/{beancount-SUF8MnzM.js.gz → beancount-952ROYkl.js.gz} +0 -0
  1661. /package/dist/web/assets/{berry-BP_34_jr.js → berry-yDQfynXd.js} +0 -0
  1662. /package/dist/web/assets/{berry-BP_34_jr.js.br → berry-yDQfynXd.js.br} +0 -0
  1663. /package/dist/web/assets/{berry-BP_34_jr.js.gz → berry-yDQfynXd.js.gz} +0 -0
  1664. /package/dist/web/assets/{bibtex-DKgKw2bN.js → bibtex-TdWMdJVz.js} +0 -0
  1665. /package/dist/web/assets/{bibtex-DKgKw2bN.js.br → bibtex-TdWMdJVz.js.br} +0 -0
  1666. /package/dist/web/assets/{bibtex-DKgKw2bN.js.gz → bibtex-TdWMdJVz.js.gz} +0 -0
  1667. /package/dist/web/assets/{bicep-BjU-KQeN.js → bicep-CFQHR1PY.js} +0 -0
  1668. /package/dist/web/assets/{bicep-BjU-KQeN.js.br → bicep-CFQHR1PY.js.br} +0 -0
  1669. /package/dist/web/assets/{bicep-BjU-KQeN.js.gz → bicep-CFQHR1PY.js.gz} +0 -0
  1670. /package/dist/web/assets/{bird2-CCFmrT2P.js → bird2-BdRJM4BV.js} +0 -0
  1671. /package/dist/web/assets/{bird2-CCFmrT2P.js.br → bird2-BdRJM4BV.js.br} +0 -0
  1672. /package/dist/web/assets/{bird2-CCFmrT2P.js.gz → bird2-BdRJM4BV.js.gz} +0 -0
  1673. /package/dist/web/assets/{c-BX-1170_.js → c-Bc2eqPiL.js} +0 -0
  1674. /package/dist/web/assets/{c-BX-1170_.js.br → c-Bc2eqPiL.js.br} +0 -0
  1675. /package/dist/web/assets/{c-BX-1170_.js.gz → c-Bc2eqPiL.js.gz} +0 -0
  1676. /package/dist/web/assets/{c3-DSc4IcLQ.js → c3-CRxq42OE.js} +0 -0
  1677. /package/dist/web/assets/{c3-DSc4IcLQ.js.br → c3-CRxq42OE.js.br} +0 -0
  1678. /package/dist/web/assets/{c3-DSc4IcLQ.js.gz → c3-CRxq42OE.js.gz} +0 -0
  1679. /package/dist/web/assets/{cadence-CUaLlWyn.js → cadence-CvKiCJ6i.js} +0 -0
  1680. /package/dist/web/assets/{cadence-CUaLlWyn.js.br → cadence-CvKiCJ6i.js.br} +0 -0
  1681. /package/dist/web/assets/{cadence-CUaLlWyn.js.gz → cadence-CvKiCJ6i.js.gz} +0 -0
  1682. /package/dist/web/assets/{can-open-in-ppm-Bw_xiOXX.js → can-open-in-ppm-B9ZwTOGE.js} +0 -0
  1683. /package/dist/web/assets/{can-open-in-ppm-Bw_xiOXX.js.br → can-open-in-ppm-B9ZwTOGE.js.br} +0 -0
  1684. /package/dist/web/assets/{can-open-in-ppm-Bw_xiOXX.js.gz → can-open-in-ppm-B9ZwTOGE.js.gz} +0 -0
  1685. /package/dist/web/assets/{catppuccin-frappe-BT3IMDYa.js → catppuccin-frappe-CYln5D8J.js} +0 -0
  1686. /package/dist/web/assets/{catppuccin-frappe-BT3IMDYa.js.br → catppuccin-frappe-CYln5D8J.js.br} +0 -0
  1687. /package/dist/web/assets/{catppuccin-frappe-BT3IMDYa.js.gz → catppuccin-frappe-CYln5D8J.js.gz} +0 -0
  1688. /package/dist/web/assets/{catppuccin-latte-DM9i15n3.js → catppuccin-latte-Dw_yaLRM.js} +0 -0
  1689. /package/dist/web/assets/{catppuccin-latte-DM9i15n3.js.br → catppuccin-latte-Dw_yaLRM.js.br} +0 -0
  1690. /package/dist/web/assets/{catppuccin-latte-DM9i15n3.js.gz → catppuccin-latte-Dw_yaLRM.js.gz} +0 -0
  1691. /package/dist/web/assets/{catppuccin-macchiato-CAEDr_h3.js → catppuccin-macchiato-CO6892Hz.js} +0 -0
  1692. /package/dist/web/assets/{catppuccin-macchiato-CAEDr_h3.js.br → catppuccin-macchiato-CO6892Hz.js.br} +0 -0
  1693. /package/dist/web/assets/{catppuccin-macchiato-CAEDr_h3.js.gz → catppuccin-macchiato-CO6892Hz.js.gz} +0 -0
  1694. /package/dist/web/assets/{catppuccin-mocha-BzOmDckq.js → catppuccin-mocha-CKpp7FzS.js} +0 -0
  1695. /package/dist/web/assets/{catppuccin-mocha-BzOmDckq.js.br → catppuccin-mocha-CKpp7FzS.js.br} +0 -0
  1696. /package/dist/web/assets/{catppuccin-mocha-BzOmDckq.js.gz → catppuccin-mocha-CKpp7FzS.js.gz} +0 -0
  1697. /package/dist/web/assets/{clarity-BijZXjQ6.js → clarity-CEkTmKo1.js} +0 -0
  1698. /package/dist/web/assets/{clarity-BijZXjQ6.js.br → clarity-CEkTmKo1.js.br} +0 -0
  1699. /package/dist/web/assets/{clarity-BijZXjQ6.js.gz → clarity-CEkTmKo1.js.gz} +0 -0
  1700. /package/dist/web/assets/{clojure--ad2221W.js → clojure-DtkOZ-xf.js} +0 -0
  1701. /package/dist/web/assets/{clojure--ad2221W.js.br → clojure-DtkOZ-xf.js.br} +0 -0
  1702. /package/dist/web/assets/{clojure--ad2221W.js.gz → clojure-DtkOZ-xf.js.gz} +0 -0
  1703. /package/dist/web/assets/{cmake-DyjUMpXU.js → cmake-DVVDhwHM.js} +0 -0
  1704. /package/dist/web/assets/{cmake-DyjUMpXU.js.br → cmake-DVVDhwHM.js.br} +0 -0
  1705. /package/dist/web/assets/{cmake-DyjUMpXU.js.gz → cmake-DVVDhwHM.js.gz} +0 -0
  1706. /package/dist/web/assets/{codeowners-BeMhKnC9.js → codeowners-Dg3cj8f_.js} +0 -0
  1707. /package/dist/web/assets/{codeql-BGtwwp5_.js → codeql-DExLR_AI.js} +0 -0
  1708. /package/dist/web/assets/{codeql-BGtwwp5_.js.br → codeql-DExLR_AI.js.br} +0 -0
  1709. /package/dist/web/assets/{codeql-BGtwwp5_.js.gz → codeql-DExLR_AI.js.gz} +0 -0
  1710. /package/dist/web/assets/{common-lisp--ldIKs5M.js → common-lisp-Cy8I242f.js} +0 -0
  1711. /package/dist/web/assets/{common-lisp--ldIKs5M.js.br → common-lisp-Cy8I242f.js.br} +0 -0
  1712. /package/dist/web/assets/{common-lisp--ldIKs5M.js.gz → common-lisp-Cy8I242f.js.gz} +0 -0
  1713. /package/dist/web/assets/{coq-CRn01_Db.js → coq-2MKB1MCt.js} +0 -0
  1714. /package/dist/web/assets/{coq-CRn01_Db.js.br → coq-2MKB1MCt.js.br} +0 -0
  1715. /package/dist/web/assets/{coq-CRn01_Db.js.gz → coq-2MKB1MCt.js.gz} +0 -0
  1716. /package/dist/web/assets/{csharp-CuWM1IYq.js → csharp-B23liTj2.js} +0 -0
  1717. /package/dist/web/assets/{csharp-CuWM1IYq.js.br → csharp-B23liTj2.js.br} +0 -0
  1718. /package/dist/web/assets/{csharp-CuWM1IYq.js.gz → csharp-B23liTj2.js.gz} +0 -0
  1719. /package/dist/web/assets/{css-CQ_jz6Vl.js → css-Dclh0w-I.js} +0 -0
  1720. /package/dist/web/assets/{css-CQ_jz6Vl.js.br → css-Dclh0w-I.js.br} +0 -0
  1721. /package/dist/web/assets/{css-CQ_jz6Vl.js.gz → css-Dclh0w-I.js.gz} +0 -0
  1722. /package/dist/web/assets/{csv-DP77pbR8.js → csv-BSGq6VGV.js} +0 -0
  1723. /package/dist/web/assets/{csv-DP77pbR8.js.br → csv-BSGq6VGV.js.br} +0 -0
  1724. /package/dist/web/assets/{csv-DP77pbR8.js.gz → csv-BSGq6VGV.js.gz} +0 -0
  1725. /package/dist/web/assets/{csv-parser-DcRWxcNV.js → csv-parser-CoLcPhFa.js} +0 -0
  1726. /package/dist/web/assets/{csv-parser-DcRWxcNV.js.br → csv-parser-CoLcPhFa.js.br} +0 -0
  1727. /package/dist/web/assets/{csv-parser-DcRWxcNV.js.gz → csv-parser-CoLcPhFa.js.gz} +0 -0
  1728. /package/dist/web/assets/{cue-DScL5ELc.js → cue-DoNxdOeO.js} +0 -0
  1729. /package/dist/web/assets/{cue-DScL5ELc.js.br → cue-DoNxdOeO.js.br} +0 -0
  1730. /package/dist/web/assets/{cue-DScL5ELc.js.gz → cue-DoNxdOeO.js.gz} +0 -0
  1731. /package/dist/web/assets/{cypher-8ehI2vrw.js → cypher-CMv1bDcv.js} +0 -0
  1732. /package/dist/web/assets/{cypher-8ehI2vrw.js.br → cypher-CMv1bDcv.js.br} +0 -0
  1733. /package/dist/web/assets/{cypher-8ehI2vrw.js.gz → cypher-CMv1bDcv.js.gz} +0 -0
  1734. /package/dist/web/assets/{cytoscape.esm-BokGhmK2.js → cytoscape.esm-BJRTLoyA.js} +0 -0
  1735. /package/dist/web/assets/{cytoscape.esm-BokGhmK2.js.br → cytoscape.esm-BJRTLoyA.js.br} +0 -0
  1736. /package/dist/web/assets/{cytoscape.esm-BokGhmK2.js.gz → cytoscape.esm-BJRTLoyA.js.gz} +0 -0
  1737. /package/dist/web/assets/{d-BvFZUewv.js → d-Bm0b9fys.js} +0 -0
  1738. /package/dist/web/assets/{d-BvFZUewv.js.br → d-Bm0b9fys.js.br} +0 -0
  1739. /package/dist/web/assets/{d-BvFZUewv.js.gz → d-Bm0b9fys.js.gz} +0 -0
  1740. /package/dist/web/assets/{dark-plus-DKLywSFP.js → dark-plus-82qvJDG3.js} +0 -0
  1741. /package/dist/web/assets/{dark-plus-DKLywSFP.js.br → dark-plus-82qvJDG3.js.br} +0 -0
  1742. /package/dist/web/assets/{dark-plus-DKLywSFP.js.gz → dark-plus-82qvJDG3.js.gz} +0 -0
  1743. /package/dist/web/assets/{dart-Cs_NJAZ7.js → dart-DLmCeCvv.js} +0 -0
  1744. /package/dist/web/assets/{dart-Cs_NJAZ7.js.br → dart-DLmCeCvv.js.br} +0 -0
  1745. /package/dist/web/assets/{dart-Cs_NJAZ7.js.gz → dart-DLmCeCvv.js.gz} +0 -0
  1746. /package/dist/web/assets/{data-grid-types-CHD9-pon.js → data-grid-types-DatI2Wee.js} +0 -0
  1747. /package/dist/web/assets/{data-grid-types-CHD9-pon.js.br → data-grid-types-DatI2Wee.js.br} +0 -0
  1748. /package/dist/web/assets/{data-grid-types-CHD9-pon.js.gz → data-grid-types-DatI2Wee.js.gz} +0 -0
  1749. /package/dist/web/assets/{dax-BB8KgXzI.js → dax-hmEu7gn8.js} +0 -0
  1750. /package/dist/web/assets/{dax-BB8KgXzI.js.br → dax-hmEu7gn8.js.br} +0 -0
  1751. /package/dist/web/assets/{dax-BB8KgXzI.js.gz → dax-hmEu7gn8.js.gz} +0 -0
  1752. /package/dist/web/assets/{defaultLocale-4xAk2LVU.js → defaultLocale-DlBUp7Bx.js} +0 -0
  1753. /package/dist/web/assets/{defaultLocale-4xAk2LVU.js.br → defaultLocale-DlBUp7Bx.js.br} +0 -0
  1754. /package/dist/web/assets/{defaultLocale-4xAk2LVU.js.gz → defaultLocale-DlBUp7Bx.js.gz} +0 -0
  1755. /package/dist/web/assets/{desktop-Cs6Sk5Pu.js → desktop-87mPFqP1.js} +0 -0
  1756. /package/dist/web/assets/{desktop-Cs6Sk5Pu.js.br → desktop-87mPFqP1.js.br} +0 -0
  1757. /package/dist/web/assets/{desktop-Cs6Sk5Pu.js.gz → desktop-87mPFqP1.js.gz} +0 -0
  1758. /package/dist/web/assets/{diff-CXSq83h3.js → diff-BWtbKGfD.js} +0 -0
  1759. /package/dist/web/assets/{diff-CXSq83h3.js.br → diff-BWtbKGfD.js.br} +0 -0
  1760. /package/dist/web/assets/{diff-CXSq83h3.js.gz → diff-BWtbKGfD.js.gz} +0 -0
  1761. /package/dist/web/assets/{dist-0EbiTA3n.js → dist-BqxPR6NU.js} +0 -0
  1762. /package/dist/web/assets/{dist-0EbiTA3n.js.br → dist-BqxPR6NU.js.br} +0 -0
  1763. /package/dist/web/assets/{dist-0EbiTA3n.js.gz → dist-BqxPR6NU.js.gz} +0 -0
  1764. /package/dist/web/assets/{dist-D7mSb2HC.js → dist-C0dQXa-d.js} +0 -0
  1765. /package/dist/web/assets/{dist-D7mSb2HC.js.br → dist-C0dQXa-d.js.br} +0 -0
  1766. /package/dist/web/assets/{dist-D7mSb2HC.js.gz → dist-C0dQXa-d.js.gz} +0 -0
  1767. /package/dist/web/assets/{dist-CWwUZUqE.js → dist-XSD1JRzx.js} +0 -0
  1768. /package/dist/web/assets/{dist-CWwUZUqE.js.br → dist-XSD1JRzx.js.br} +0 -0
  1769. /package/dist/web/assets/{dist-CWwUZUqE.js.gz → dist-XSD1JRzx.js.gz} +0 -0
  1770. /package/dist/web/assets/{dist-CBtAY9iX.js → dist-wmDsBD_Z.js} +0 -0
  1771. /package/dist/web/assets/{dist-CBtAY9iX.js.br → dist-wmDsBD_Z.js.br} +0 -0
  1772. /package/dist/web/assets/{dist-CBtAY9iX.js.gz → dist-wmDsBD_Z.js.gz} +0 -0
  1773. /package/dist/web/assets/{docker-BX5p1mZ3.js → docker-RfG6N-zU.js} +0 -0
  1774. /package/dist/web/assets/{docker-BX5p1mZ3.js.br → docker-RfG6N-zU.js.br} +0 -0
  1775. /package/dist/web/assets/{docker-BX5p1mZ3.js.gz → docker-RfG6N-zU.js.gz} +0 -0
  1776. /package/dist/web/assets/{dotenv-D8xdMiRo.js → dotenv-trsAOvRf.js} +0 -0
  1777. /package/dist/web/assets/{dotenv-D8xdMiRo.js.br → dotenv-trsAOvRf.js.br} +0 -0
  1778. /package/dist/web/assets/{dotenv-D8xdMiRo.js.gz → dotenv-trsAOvRf.js.gz} +0 -0
  1779. /package/dist/web/assets/{dracula-BNPKmiGE.js → dracula-C6ZiL3YY.js} +0 -0
  1780. /package/dist/web/assets/{dracula-BNPKmiGE.js.br → dracula-C6ZiL3YY.js.br} +0 -0
  1781. /package/dist/web/assets/{dracula-BNPKmiGE.js.gz → dracula-C6ZiL3YY.js.gz} +0 -0
  1782. /package/dist/web/assets/{dracula-soft-Bv4lLEFc.js → dracula-soft-C6kVBbXm.js} +0 -0
  1783. /package/dist/web/assets/{dracula-soft-Bv4lLEFc.js.br → dracula-soft-C6kVBbXm.js.br} +0 -0
  1784. /package/dist/web/assets/{dracula-soft-Bv4lLEFc.js.gz → dracula-soft-C6kVBbXm.js.gz} +0 -0
  1785. /package/dist/web/assets/{dream-maker-Yg8FPJu3.js → dream-maker-CRh_7vvZ.js} +0 -0
  1786. /package/dist/web/assets/{dream-maker-Yg8FPJu3.js.br → dream-maker-CRh_7vvZ.js.br} +0 -0
  1787. /package/dist/web/assets/{dream-maker-Yg8FPJu3.js.gz → dream-maker-CRh_7vvZ.js.gz} +0 -0
  1788. /package/dist/web/assets/{editor-font-BNwo7zo5.js → editor-font-BWW2uS94.js} +0 -0
  1789. /package/dist/web/assets/{emacs-lisp-kBgNJmB7.js → emacs-lisp-BiU1bqgK.js} +0 -0
  1790. /package/dist/web/assets/{emacs-lisp-kBgNJmB7.js.br → emacs-lisp-BiU1bqgK.js.br} +0 -0
  1791. /package/dist/web/assets/{emacs-lisp-kBgNJmB7.js.gz → emacs-lisp-BiU1bqgK.js.gz} +0 -0
  1792. /package/dist/web/assets/{everforest-dark-7XTfQW4s.js → everforest-dark-BtuvbpkD.js} +0 -0
  1793. /package/dist/web/assets/{everforest-dark-7XTfQW4s.js.br → everforest-dark-BtuvbpkD.js.br} +0 -0
  1794. /package/dist/web/assets/{everforest-dark-7XTfQW4s.js.gz → everforest-dark-BtuvbpkD.js.gz} +0 -0
  1795. /package/dist/web/assets/{everforest-light-CmPZPQmV.js → everforest-light-CsYaHRi1.js} +0 -0
  1796. /package/dist/web/assets/{everforest-light-CmPZPQmV.js.br → everforest-light-CsYaHRi1.js.br} +0 -0
  1797. /package/dist/web/assets/{everforest-light-CmPZPQmV.js.gz → everforest-light-CsYaHRi1.js.gz} +0 -0
  1798. /package/dist/web/assets/{fennel-Dm71IPM6.js → fennel-Dtsq8ZYv.js} +0 -0
  1799. /package/dist/web/assets/{fennel-Dm71IPM6.js.br → fennel-Dtsq8ZYv.js.br} +0 -0
  1800. /package/dist/web/assets/{fennel-Dm71IPM6.js.gz → fennel-Dtsq8ZYv.js.gz} +0 -0
  1801. /package/dist/web/assets/{fish-CIzcfZjZ.js → fish-BEGdv5E9.js} +0 -0
  1802. /package/dist/web/assets/{fish-CIzcfZjZ.js.br → fish-BEGdv5E9.js.br} +0 -0
  1803. /package/dist/web/assets/{fish-CIzcfZjZ.js.gz → fish-BEGdv5E9.js.gz} +0 -0
  1804. /package/dist/web/assets/{fluent-DFSMEphj.js → fluent-DC8BEF1H.js} +0 -0
  1805. /package/dist/web/assets/{fluent-DFSMEphj.js.br → fluent-DC8BEF1H.js.br} +0 -0
  1806. /package/dist/web/assets/{fluent-DFSMEphj.js.gz → fluent-DC8BEF1H.js.gz} +0 -0
  1807. /package/dist/web/assets/{format-date-BMtvCeb9.js → format-date-Fd9tpNaw.js} +0 -0
  1808. /package/dist/web/assets/{fortran-free-form-xnlj2dLW.js → fortran-free-form-CbCf7Hhd.js} +0 -0
  1809. /package/dist/web/assets/{fortran-free-form-xnlj2dLW.js.br → fortran-free-form-CbCf7Hhd.js.br} +0 -0
  1810. /package/dist/web/assets/{fortran-free-form-xnlj2dLW.js.gz → fortran-free-form-CbCf7Hhd.js.gz} +0 -0
  1811. /package/dist/web/assets/{gdscript-DFnznHD1.js → gdscript-BsZ85lP7.js} +0 -0
  1812. /package/dist/web/assets/{gdscript-DFnznHD1.js.br → gdscript-BsZ85lP7.js.br} +0 -0
  1813. /package/dist/web/assets/{gdscript-DFnznHD1.js.gz → gdscript-BsZ85lP7.js.gz} +0 -0
  1814. /package/dist/web/assets/{gdshader-B9wvgXVU.js → gdshader-BA91hZRm.js} +0 -0
  1815. /package/dist/web/assets/{gdshader-B9wvgXVU.js.br → gdshader-BA91hZRm.js.br} +0 -0
  1816. /package/dist/web/assets/{gdshader-B9wvgXVU.js.gz → gdshader-BA91hZRm.js.gz} +0 -0
  1817. /package/dist/web/assets/{genie-Bz0RXdFf.js → genie-enEetKUw.js} +0 -0
  1818. /package/dist/web/assets/{genie-Bz0RXdFf.js.br → genie-enEetKUw.js.br} +0 -0
  1819. /package/dist/web/assets/{genie-Bz0RXdFf.js.gz → genie-enEetKUw.js.gz} +0 -0
  1820. /package/dist/web/assets/{gherkin-ZD8lWd_U.js → gherkin-COZUwJIo.js} +0 -0
  1821. /package/dist/web/assets/{gherkin-ZD8lWd_U.js.br → gherkin-COZUwJIo.js.br} +0 -0
  1822. /package/dist/web/assets/{gherkin-ZD8lWd_U.js.gz → gherkin-COZUwJIo.js.gz} +0 -0
  1823. /package/dist/web/assets/{github-dark-default-Bv2-je5j.js → github-dark-default-D2yZVLvM.js} +0 -0
  1824. /package/dist/web/assets/{github-dark-default-Bv2-je5j.js.br → github-dark-default-D2yZVLvM.js.br} +0 -0
  1825. /package/dist/web/assets/{github-dark-default-Bv2-je5j.js.gz → github-dark-default-D2yZVLvM.js.gz} +0 -0
  1826. /package/dist/web/assets/{github-dark-dimmed-Dn2Abfcl.js → github-dark-dimmed-BgC9vtNW.js} +0 -0
  1827. /package/dist/web/assets/{github-dark-dimmed-Dn2Abfcl.js.br → github-dark-dimmed-BgC9vtNW.js.br} +0 -0
  1828. /package/dist/web/assets/{github-dark-dimmed-Dn2Abfcl.js.gz → github-dark-dimmed-BgC9vtNW.js.gz} +0 -0
  1829. /package/dist/web/assets/{github-dark-high-contrast-CPYPXNHn.js → github-dark-high-contrast-BKl-163d.js} +0 -0
  1830. /package/dist/web/assets/{github-dark-high-contrast-CPYPXNHn.js.br → github-dark-high-contrast-BKl-163d.js.br} +0 -0
  1831. /package/dist/web/assets/{github-dark-high-contrast-CPYPXNHn.js.gz → github-dark-high-contrast-BKl-163d.js.gz} +0 -0
  1832. /package/dist/web/assets/{github-dark-D8IE4lln.js → github-dark-t2tfi1SJ.js} +0 -0
  1833. /package/dist/web/assets/{github-dark-D8IE4lln.js.br → github-dark-t2tfi1SJ.js.br} +0 -0
  1834. /package/dist/web/assets/{github-dark-D8IE4lln.js.gz → github-dark-t2tfi1SJ.js.gz} +0 -0
  1835. /package/dist/web/assets/{github-light-CVOMBMvb.js → github-light-DEwlVIuj.js} +0 -0
  1836. /package/dist/web/assets/{github-light-CVOMBMvb.js.br → github-light-DEwlVIuj.js.br} +0 -0
  1837. /package/dist/web/assets/{github-light-CVOMBMvb.js.gz → github-light-DEwlVIuj.js.gz} +0 -0
  1838. /package/dist/web/assets/{github-light-default-6Ayk6lJY.js → github-light-default-HMg-nrfE.js} +0 -0
  1839. /package/dist/web/assets/{github-light-default-6Ayk6lJY.js.br → github-light-default-HMg-nrfE.js.br} +0 -0
  1840. /package/dist/web/assets/{github-light-default-6Ayk6lJY.js.gz → github-light-default-HMg-nrfE.js.gz} +0 -0
  1841. /package/dist/web/assets/{github-light-high-contrast-BTGKd6JI.js → github-light-high-contrast-CuR1V74b.js} +0 -0
  1842. /package/dist/web/assets/{github-light-high-contrast-BTGKd6JI.js.br → github-light-high-contrast-CuR1V74b.js.br} +0 -0
  1843. /package/dist/web/assets/{github-light-high-contrast-BTGKd6JI.js.gz → github-light-high-contrast-CuR1V74b.js.gz} +0 -0
  1844. /package/dist/web/assets/{gleam-UeA7_OU8.js → gleam-tHyKijM-.js} +0 -0
  1845. /package/dist/web/assets/{gleam-UeA7_OU8.js.br → gleam-tHyKijM-.js.br} +0 -0
  1846. /package/dist/web/assets/{gleam-UeA7_OU8.js.gz → gleam-tHyKijM-.js.gz} +0 -0
  1847. /package/dist/web/assets/{gn-DrdNDhFj.js → gn-B3FY6J2p.js} +0 -0
  1848. /package/dist/web/assets/{gn-DrdNDhFj.js.br → gn-B3FY6J2p.js.br} +0 -0
  1849. /package/dist/web/assets/{gn-DrdNDhFj.js.gz → gn-B3FY6J2p.js.gz} +0 -0
  1850. /package/dist/web/assets/{gnuplot-D8vxhaGw.js → gnuplot-Cje7PcKl.js} +0 -0
  1851. /package/dist/web/assets/{gnuplot-D8vxhaGw.js.br → gnuplot-Cje7PcKl.js.br} +0 -0
  1852. /package/dist/web/assets/{gnuplot-D8vxhaGw.js.gz → gnuplot-Cje7PcKl.js.gz} +0 -0
  1853. /package/dist/web/assets/{go-atNMhmH3.js → go-atStgiph.js} +0 -0
  1854. /package/dist/web/assets/{go-atNMhmH3.js.br → go-atStgiph.js.br} +0 -0
  1855. /package/dist/web/assets/{go-atNMhmH3.js.gz → go-atStgiph.js.gz} +0 -0
  1856. /package/dist/web/assets/{groovy-CLRzHDW2.js → groovy-D-N79UJ6.js} +0 -0
  1857. /package/dist/web/assets/{groovy-CLRzHDW2.js.br → groovy-D-N79UJ6.js.br} +0 -0
  1858. /package/dist/web/assets/{groovy-CLRzHDW2.js.gz → groovy-D-N79UJ6.js.gz} +0 -0
  1859. /package/dist/web/assets/{gruvbox-dark-hard-CMSNCrAk.js → gruvbox-dark-hard-CHgWXjNO.js} +0 -0
  1860. /package/dist/web/assets/{gruvbox-dark-hard-CMSNCrAk.js.br → gruvbox-dark-hard-CHgWXjNO.js.br} +0 -0
  1861. /package/dist/web/assets/{gruvbox-dark-hard-CMSNCrAk.js.gz → gruvbox-dark-hard-CHgWXjNO.js.gz} +0 -0
  1862. /package/dist/web/assets/{gruvbox-dark-medium-CR5wAM1c.js → gruvbox-dark-medium-CiWfpHxH.js} +0 -0
  1863. /package/dist/web/assets/{gruvbox-dark-medium-CR5wAM1c.js.br → gruvbox-dark-medium-CiWfpHxH.js.br} +0 -0
  1864. /package/dist/web/assets/{gruvbox-dark-medium-CR5wAM1c.js.gz → gruvbox-dark-medium-CiWfpHxH.js.gz} +0 -0
  1865. /package/dist/web/assets/{gruvbox-dark-soft-Ba1gP2O2.js → gruvbox-dark-soft-B6jtjdRS.js} +0 -0
  1866. /package/dist/web/assets/{gruvbox-dark-soft-Ba1gP2O2.js.br → gruvbox-dark-soft-B6jtjdRS.js.br} +0 -0
  1867. /package/dist/web/assets/{gruvbox-dark-soft-Ba1gP2O2.js.gz → gruvbox-dark-soft-B6jtjdRS.js.gz} +0 -0
  1868. /package/dist/web/assets/{gruvbox-light-hard-ChSY383t.js → gruvbox-light-hard-B28dnJUc.js} +0 -0
  1869. /package/dist/web/assets/{gruvbox-light-hard-ChSY383t.js.br → gruvbox-light-hard-B28dnJUc.js.br} +0 -0
  1870. /package/dist/web/assets/{gruvbox-light-hard-ChSY383t.js.gz → gruvbox-light-hard-B28dnJUc.js.gz} +0 -0
  1871. /package/dist/web/assets/{gruvbox-light-medium-DebZzeA2.js → gruvbox-light-medium-BGYycI_C.js} +0 -0
  1872. /package/dist/web/assets/{gruvbox-light-medium-DebZzeA2.js.br → gruvbox-light-medium-BGYycI_C.js.br} +0 -0
  1873. /package/dist/web/assets/{gruvbox-light-medium-DebZzeA2.js.gz → gruvbox-light-medium-BGYycI_C.js.gz} +0 -0
  1874. /package/dist/web/assets/{gruvbox-light-soft-CEWqv8Ew.js → gruvbox-light-soft-D34Ny5x-.js} +0 -0
  1875. /package/dist/web/assets/{gruvbox-light-soft-CEWqv8Ew.js.br → gruvbox-light-soft-D34Ny5x-.js.br} +0 -0
  1876. /package/dist/web/assets/{gruvbox-light-soft-CEWqv8Ew.js.gz → gruvbox-light-soft-D34Ny5x-.js.gz} +0 -0
  1877. /package/dist/web/assets/{haskell-CkgCblz9.js → haskell-Dd7RWo7q.js} +0 -0
  1878. /package/dist/web/assets/{haskell-CkgCblz9.js.br → haskell-Dd7RWo7q.js.br} +0 -0
  1879. /package/dist/web/assets/{haskell-CkgCblz9.js.gz → haskell-Dd7RWo7q.js.gz} +0 -0
  1880. /package/dist/web/assets/{haxe-DwOdNXRl.js → haxe-BZTENFeU.js} +0 -0
  1881. /package/dist/web/assets/{haxe-DwOdNXRl.js.br → haxe-BZTENFeU.js.br} +0 -0
  1882. /package/dist/web/assets/{haxe-DwOdNXRl.js.gz → haxe-BZTENFeU.js.gz} +0 -0
  1883. /package/dist/web/assets/{hcl-DXsxN8nX.js → hcl-B2-pv_Um.js} +0 -0
  1884. /package/dist/web/assets/{hcl-DXsxN8nX.js.br → hcl-B2-pv_Um.js.br} +0 -0
  1885. /package/dist/web/assets/{hcl-DXsxN8nX.js.gz → hcl-B2-pv_Um.js.gz} +0 -0
  1886. /package/dist/web/assets/{hjson-oBOZxrL4.js → hjson-DuEq9Q4E.js} +0 -0
  1887. /package/dist/web/assets/{hjson-oBOZxrL4.js.br → hjson-DuEq9Q4E.js.br} +0 -0
  1888. /package/dist/web/assets/{hjson-oBOZxrL4.js.gz → hjson-DuEq9Q4E.js.gz} +0 -0
  1889. /package/dist/web/assets/{hlsl-VEZxDU3L.js → hlsl-Cktd6biI.js} +0 -0
  1890. /package/dist/web/assets/{hlsl-VEZxDU3L.js.br → hlsl-Cktd6biI.js.br} +0 -0
  1891. /package/dist/web/assets/{hlsl-VEZxDU3L.js.gz → hlsl-Cktd6biI.js.gz} +0 -0
  1892. /package/dist/web/assets/{horizon-C_xHTsMO.js → horizon-CBC77M7h.js} +0 -0
  1893. /package/dist/web/assets/{horizon-C_xHTsMO.js.br → horizon-CBC77M7h.js.br} +0 -0
  1894. /package/dist/web/assets/{horizon-C_xHTsMO.js.gz → horizon-CBC77M7h.js.gz} +0 -0
  1895. /package/dist/web/assets/{horizon-bright-CJd-vMFG.js → horizon-bright-D4Nxn_E0.js} +0 -0
  1896. /package/dist/web/assets/{horizon-bright-CJd-vMFG.js.br → horizon-bright-D4Nxn_E0.js.br} +0 -0
  1897. /package/dist/web/assets/{horizon-bright-CJd-vMFG.js.gz → horizon-bright-D4Nxn_E0.js.gz} +0 -0
  1898. /package/dist/web/assets/{houston-BYOfZpV9.js → houston-CeUPsuAw.js} +0 -0
  1899. /package/dist/web/assets/{houston-BYOfZpV9.js.br → houston-CeUPsuAw.js.br} +0 -0
  1900. /package/dist/web/assets/{houston-BYOfZpV9.js.gz → houston-CeUPsuAw.js.gz} +0 -0
  1901. /package/dist/web/assets/{hy-DiruP4wR.js → hy-C2Krcc1P.js} +0 -0
  1902. /package/dist/web/assets/{hy-DiruP4wR.js.br → hy-C2Krcc1P.js.br} +0 -0
  1903. /package/dist/web/assets/{hy-DiruP4wR.js.gz → hy-C2Krcc1P.js.gz} +0 -0
  1904. /package/dist/web/assets/{image-gallery-DC3gRAqk.js → image-gallery-FN-9YT5_.js} +0 -0
  1905. /package/dist/web/assets/{image-preview-geometry-DN3DZQp0.js → image-preview-geometry-CC7s9J5U.js} +0 -0
  1906. /package/dist/web/assets/{imba-BBm5cmpQ.js → imba-BGyTjryK.js} +0 -0
  1907. /package/dist/web/assets/{imba-BBm5cmpQ.js.br → imba-BGyTjryK.js.br} +0 -0
  1908. /package/dist/web/assets/{imba-BBm5cmpQ.js.gz → imba-BGyTjryK.js.gz} +0 -0
  1909. /package/dist/web/assets/{ini-DIjchSIH.js → ini-BU3tDmkh.js} +0 -0
  1910. /package/dist/web/assets/{ini-DIjchSIH.js.br → ini-BU3tDmkh.js.br} +0 -0
  1911. /package/dist/web/assets/{ini-DIjchSIH.js.gz → ini-BU3tDmkh.js.gz} +0 -0
  1912. /package/dist/web/assets/{init-Cf64k-PQ.js → init-C8iN2fqI.js} +0 -0
  1913. /package/dist/web/assets/{input-CG8PS8mS.js → input-CP31LZnN.js} +0 -0
  1914. /package/dist/web/assets/{isArrayLikeObject-DoNOpNUH.js → isArrayLikeObject-Brn5jPfX.js} +0 -0
  1915. /package/dist/web/assets/{isArrayLikeObject-DoNOpNUH.js.br → isArrayLikeObject-Brn5jPfX.js.br} +0 -0
  1916. /package/dist/web/assets/{isArrayLikeObject-DoNOpNUH.js.gz → isArrayLikeObject-Brn5jPfX.js.gz} +0 -0
  1917. /package/dist/web/assets/{java-BjdsRxXN.js → java-DLdTpwDa.js} +0 -0
  1918. /package/dist/web/assets/{java-BjdsRxXN.js.br → java-DLdTpwDa.js.br} +0 -0
  1919. /package/dist/web/assets/{java-BjdsRxXN.js.gz → java-DLdTpwDa.js.gz} +0 -0
  1920. /package/dist/web/assets/{javascript-R2SZ_OEC.js → javascript-C8bwxWiO.js} +0 -0
  1921. /package/dist/web/assets/{javascript-R2SZ_OEC.js.br → javascript-C8bwxWiO.js.br} +0 -0
  1922. /package/dist/web/assets/{javascript-R2SZ_OEC.js.gz → javascript-C8bwxWiO.js.gz} +0 -0
  1923. /package/dist/web/assets/{json-CYCJeTwK.js → json-CLNZq64B.js} +0 -0
  1924. /package/dist/web/assets/{json-CYCJeTwK.js.br → json-CLNZq64B.js.br} +0 -0
  1925. /package/dist/web/assets/{json-CYCJeTwK.js.gz → json-CLNZq64B.js.gz} +0 -0
  1926. /package/dist/web/assets/{json5-0Pz845K0.js → json5-hP9gUO92.js} +0 -0
  1927. /package/dist/web/assets/{json5-0Pz845K0.js.br → json5-hP9gUO92.js.br} +0 -0
  1928. /package/dist/web/assets/{json5-0Pz845K0.js.gz → json5-hP9gUO92.js.gz} +0 -0
  1929. /package/dist/web/assets/{jsonc-B0jdT4uM.js → jsonc-BxRoxKXl.js} +0 -0
  1930. /package/dist/web/assets/{jsonc-B0jdT4uM.js.br → jsonc-BxRoxKXl.js.br} +0 -0
  1931. /package/dist/web/assets/{jsonc-B0jdT4uM.js.gz → jsonc-BxRoxKXl.js.gz} +0 -0
  1932. /package/dist/web/assets/{jsonl-CdvFKZtz.js → jsonl-CVi8ZVNj.js} +0 -0
  1933. /package/dist/web/assets/{jsonl-CdvFKZtz.js.br → jsonl-CVi8ZVNj.js.br} +0 -0
  1934. /package/dist/web/assets/{jsonl-CdvFKZtz.js.gz → jsonl-CVi8ZVNj.js.gz} +0 -0
  1935. /package/dist/web/assets/{jsonnet-BYd5ZGqe.js → jsonnet-BN-joSvb.js} +0 -0
  1936. /package/dist/web/assets/{jsonnet-BYd5ZGqe.js.br → jsonnet-BN-joSvb.js.br} +0 -0
  1937. /package/dist/web/assets/{jsonnet-BYd5ZGqe.js.gz → jsonnet-BN-joSvb.js.gz} +0 -0
  1938. /package/dist/web/assets/{jssm-BlBU_IK1.js → jssm-AsgbjMDo.js} +0 -0
  1939. /package/dist/web/assets/{jssm-BlBU_IK1.js.br → jssm-AsgbjMDo.js.br} +0 -0
  1940. /package/dist/web/assets/{jssm-BlBU_IK1.js.gz → jssm-AsgbjMDo.js.gz} +0 -0
  1941. /package/dist/web/assets/{jsx-CsWR7aMm.js → jsx-CCOY790H.js} +0 -0
  1942. /package/dist/web/assets/{jsx-CsWR7aMm.js.br → jsx-CCOY790H.js.br} +0 -0
  1943. /package/dist/web/assets/{jsx-CsWR7aMm.js.gz → jsx-CCOY790H.js.gz} +0 -0
  1944. /package/dist/web/assets/{kanagawa-dragon-C6ogFc3X.js → kanagawa-dragon-CX1DyNVl.js} +0 -0
  1945. /package/dist/web/assets/{kanagawa-dragon-C6ogFc3X.js.br → kanagawa-dragon-CX1DyNVl.js.br} +0 -0
  1946. /package/dist/web/assets/{kanagawa-dragon-C6ogFc3X.js.gz → kanagawa-dragon-CX1DyNVl.js.gz} +0 -0
  1947. /package/dist/web/assets/{kanagawa-lotus-8esZNUbA.js → kanagawa-lotus-BVeyRHCu.js} +0 -0
  1948. /package/dist/web/assets/{kanagawa-lotus-8esZNUbA.js.br → kanagawa-lotus-BVeyRHCu.js.br} +0 -0
  1949. /package/dist/web/assets/{kanagawa-lotus-8esZNUbA.js.gz → kanagawa-lotus-BVeyRHCu.js.gz} +0 -0
  1950. /package/dist/web/assets/{kanagawa-wave-C-yWQ6RD.js → kanagawa-wave-5mUx8ANY.js} +0 -0
  1951. /package/dist/web/assets/{kanagawa-wave-C-yWQ6RD.js.br → kanagawa-wave-5mUx8ANY.js.br} +0 -0
  1952. /package/dist/web/assets/{kanagawa-wave-C-yWQ6RD.js.gz → kanagawa-wave-5mUx8ANY.js.gz} +0 -0
  1953. /package/dist/web/assets/{katex-Cz0KLyXA.js → katex-ChDYIJeh.js} +0 -0
  1954. /package/dist/web/assets/{katex-Cz0KLyXA.js.br → katex-ChDYIJeh.js.br} +0 -0
  1955. /package/dist/web/assets/{katex-Cz0KLyXA.js.gz → katex-ChDYIJeh.js.gz} +0 -0
  1956. /package/dist/web/assets/{kdl-D712OVXR.js → kdl-Chk5I0ya.js} +0 -0
  1957. /package/dist/web/assets/{kdl-D712OVXR.js.br → kdl-Chk5I0ya.js.br} +0 -0
  1958. /package/dist/web/assets/{kdl-D712OVXR.js.gz → kdl-Chk5I0ya.js.gz} +0 -0
  1959. /package/dist/web/assets/{kotlin-BEUa7XzN.js → kotlin--vOpGKe5.js} +0 -0
  1960. /package/dist/web/assets/{kotlin-BEUa7XzN.js.br → kotlin--vOpGKe5.js.br} +0 -0
  1961. /package/dist/web/assets/{kotlin-BEUa7XzN.js.gz → kotlin--vOpGKe5.js.gz} +0 -0
  1962. /package/dist/web/assets/{kusto-n4J6aIey.js → kusto-CKcW11Xh.js} +0 -0
  1963. /package/dist/web/assets/{kusto-n4J6aIey.js.br → kusto-CKcW11Xh.js.br} +0 -0
  1964. /package/dist/web/assets/{kusto-n4J6aIey.js.gz → kusto-CKcW11Xh.js.gz} +0 -0
  1965. /package/dist/web/assets/{laserwave-CddL9sH-.js → laserwave-BvQ5sNh2.js} +0 -0
  1966. /package/dist/web/assets/{laserwave-CddL9sH-.js.br → laserwave-BvQ5sNh2.js.br} +0 -0
  1967. /package/dist/web/assets/{laserwave-CddL9sH-.js.gz → laserwave-BvQ5sNh2.js.gz} +0 -0
  1968. /package/dist/web/assets/{lean-CS8dnaPi.js → lean-8_xcSRiB.js} +0 -0
  1969. /package/dist/web/assets/{lean-CS8dnaPi.js.br → lean-8_xcSRiB.js.br} +0 -0
  1970. /package/dist/web/assets/{lean-CS8dnaPi.js.gz → lean-8_xcSRiB.js.gz} +0 -0
  1971. /package/dist/web/assets/{less-D7VWEXeK.js → less-By3o8hyi.js} +0 -0
  1972. /package/dist/web/assets/{less-D7VWEXeK.js.br → less-By3o8hyi.js.br} +0 -0
  1973. /package/dist/web/assets/{less-D7VWEXeK.js.gz → less-By3o8hyi.js.gz} +0 -0
  1974. /package/dist/web/assets/{lib-BY5fb-Cz.js → lib-g-qFlogj.js} +0 -0
  1975. /package/dist/web/assets/{lib-BY5fb-Cz.js.br → lib-g-qFlogj.js.br} +0 -0
  1976. /package/dist/web/assets/{lib-BY5fb-Cz.js.gz → lib-g-qFlogj.js.gz} +0 -0
  1977. /package/dist/web/assets/{libesm-DVoOUgb7.js → libesm-CxeQSM3t.js} +0 -0
  1978. /package/dist/web/assets/{libesm-DVoOUgb7.js.br → libesm-CxeQSM3t.js.br} +0 -0
  1979. /package/dist/web/assets/{libesm-DVoOUgb7.js.gz → libesm-CxeQSM3t.js.gz} +0 -0
  1980. /package/dist/web/assets/{light-plus-DUh-yC9k.js → light-plus-DLxZxwR2.js} +0 -0
  1981. /package/dist/web/assets/{light-plus-DUh-yC9k.js.br → light-plus-DLxZxwR2.js.br} +0 -0
  1982. /package/dist/web/assets/{light-plus-DUh-yC9k.js.gz → light-plus-DLxZxwR2.js.gz} +0 -0
  1983. /package/dist/web/assets/{llvm-P1D8XyMB.js → llvm-1Hx1tyeu.js} +0 -0
  1984. /package/dist/web/assets/{llvm-P1D8XyMB.js.br → llvm-1Hx1tyeu.js.br} +0 -0
  1985. /package/dist/web/assets/{llvm-P1D8XyMB.js.gz → llvm-1Hx1tyeu.js.gz} +0 -0
  1986. /package/dist/web/assets/{log-BGft0RQz.js → log-DqC4fyM8.js} +0 -0
  1987. /package/dist/web/assets/{log-BGft0RQz.js.br → log-DqC4fyM8.js.br} +0 -0
  1988. /package/dist/web/assets/{log-BGft0RQz.js.gz → log-DqC4fyM8.js.gz} +0 -0
  1989. /package/dist/web/assets/{logo-uFZx2JEw.js → logo-CRRMYYoS.js} +0 -0
  1990. /package/dist/web/assets/{logo-uFZx2JEw.js.br → logo-CRRMYYoS.js.br} +0 -0
  1991. /package/dist/web/assets/{logo-uFZx2JEw.js.gz → logo-CRRMYYoS.js.gz} +0 -0
  1992. /package/dist/web/assets/{luau-aDpnpIe3.js → luau-B_3cEvun.js} +0 -0
  1993. /package/dist/web/assets/{luau-aDpnpIe3.js.br → luau-B_3cEvun.js.br} +0 -0
  1994. /package/dist/web/assets/{luau-aDpnpIe3.js.gz → luau-B_3cEvun.js.gz} +0 -0
  1995. /package/dist/web/assets/{make-DwjpJeU5.js → make-BZXWV-XK.js} +0 -0
  1996. /package/dist/web/assets/{make-DwjpJeU5.js.br → make-BZXWV-XK.js.br} +0 -0
  1997. /package/dist/web/assets/{make-DwjpJeU5.js.gz → make-BZXWV-XK.js.gz} +0 -0
  1998. /package/dist/web/assets/{markdown-DC-eWqXi.js → markdown-Cl7yApmu.js} +0 -0
  1999. /package/dist/web/assets/{markdown-DC-eWqXi.js.br → markdown-Cl7yApmu.js.br} +0 -0
  2000. /package/dist/web/assets/{markdown-DC-eWqXi.js.gz → markdown-Cl7yApmu.js.gz} +0 -0
  2001. /package/dist/web/assets/{marked.esm-DDb9MclE.js → marked.esm-BHcxKPtl.js} +0 -0
  2002. /package/dist/web/assets/{marked.esm-DDb9MclE.js.br → marked.esm-BHcxKPtl.js.br} +0 -0
  2003. /package/dist/web/assets/{marked.esm-DDb9MclE.js.gz → marked.esm-BHcxKPtl.js.gz} +0 -0
  2004. /package/dist/web/assets/{material-theme-9BivM5cB.js → material-theme-BHubOdNd.js} +0 -0
  2005. /package/dist/web/assets/{material-theme-9BivM5cB.js.br → material-theme-BHubOdNd.js.br} +0 -0
  2006. /package/dist/web/assets/{material-theme-9BivM5cB.js.gz → material-theme-BHubOdNd.js.gz} +0 -0
  2007. /package/dist/web/assets/{material-theme-darker-Bg7I3WIw.js → material-theme-darker-KB-xfYQj.js} +0 -0
  2008. /package/dist/web/assets/{material-theme-darker-Bg7I3WIw.js.br → material-theme-darker-KB-xfYQj.js.br} +0 -0
  2009. /package/dist/web/assets/{material-theme-darker-Bg7I3WIw.js.gz → material-theme-darker-KB-xfYQj.js.gz} +0 -0
  2010. /package/dist/web/assets/{material-theme-lighter-BoEshpBb.js → material-theme-lighter-BIAYveG-.js} +0 -0
  2011. /package/dist/web/assets/{material-theme-lighter-BoEshpBb.js.br → material-theme-lighter-BIAYveG-.js.br} +0 -0
  2012. /package/dist/web/assets/{material-theme-lighter-BoEshpBb.js.gz → material-theme-lighter-BIAYveG-.js.gz} +0 -0
  2013. /package/dist/web/assets/{material-theme-ocean-CmKcBlBP.js → material-theme-ocean-IXLiJMmJ.js} +0 -0
  2014. /package/dist/web/assets/{material-theme-ocean-CmKcBlBP.js.br → material-theme-ocean-IXLiJMmJ.js.br} +0 -0
  2015. /package/dist/web/assets/{material-theme-ocean-CmKcBlBP.js.gz → material-theme-ocean-IXLiJMmJ.js.gz} +0 -0
  2016. /package/dist/web/assets/{material-theme-palenight-CUyfHC0C.js → material-theme-palenight-CKBeKmDI.js} +0 -0
  2017. /package/dist/web/assets/{material-theme-palenight-CUyfHC0C.js.br → material-theme-palenight-CKBeKmDI.js.br} +0 -0
  2018. /package/dist/web/assets/{material-theme-palenight-CUyfHC0C.js.gz → material-theme-palenight-CKBeKmDI.js.gz} +0 -0
  2019. /package/dist/web/assets/{math-DAaFbMeh.js → math-BSR_MMrJ.js} +0 -0
  2020. /package/dist/web/assets/{matlab-CqBfVqYF.js → matlab-CVke_bIU.js} +0 -0
  2021. /package/dist/web/assets/{matlab-CqBfVqYF.js.br → matlab-CVke_bIU.js.br} +0 -0
  2022. /package/dist/web/assets/{matlab-CqBfVqYF.js.gz → matlab-CVke_bIU.js.gz} +0 -0
  2023. /package/dist/web/assets/{mdx-CdC2mVzF.js → mdx-BoM6tA01.js} +0 -0
  2024. /package/dist/web/assets/{mdx-CdC2mVzF.js.br → mdx-BoM6tA01.js.br} +0 -0
  2025. /package/dist/web/assets/{mdx-CdC2mVzF.js.gz → mdx-BoM6tA01.js.gz} +0 -0
  2026. /package/dist/web/assets/{mermaid-B542RnGP.js → mermaid-dj9LCxrU.js} +0 -0
  2027. /package/dist/web/assets/{mermaid-B542RnGP.js.br → mermaid-dj9LCxrU.js.br} +0 -0
  2028. /package/dist/web/assets/{mermaid-B542RnGP.js.gz → mermaid-dj9LCxrU.js.gz} +0 -0
  2029. /package/dist/web/assets/{min-dark-uGP-9UE_.js → min-dark-CRi7sS-5.js} +0 -0
  2030. /package/dist/web/assets/{min-dark-uGP-9UE_.js.br → min-dark-CRi7sS-5.js.br} +0 -0
  2031. /package/dist/web/assets/{min-dark-uGP-9UE_.js.gz → min-dark-CRi7sS-5.js.gz} +0 -0
  2032. /package/dist/web/assets/{min-light-BkFlXt3G.js → min-light-Dgp1R_pl.js} +0 -0
  2033. /package/dist/web/assets/{min-light-BkFlXt3G.js.br → min-light-Dgp1R_pl.js.br} +0 -0
  2034. /package/dist/web/assets/{min-light-BkFlXt3G.js.gz → min-light-Dgp1R_pl.js.gz} +0 -0
  2035. /package/dist/web/assets/{mipsasm-CkaxcMA-.js → mipsasm-n1Jay_kN.js} +0 -0
  2036. /package/dist/web/assets/{mipsasm-CkaxcMA-.js.br → mipsasm-n1Jay_kN.js.br} +0 -0
  2037. /package/dist/web/assets/{mipsasm-CkaxcMA-.js.gz → mipsasm-n1Jay_kN.js.gz} +0 -0
  2038. /package/dist/web/assets/{mojo-DDh7AQLv.js → mojo-DY4XpIlH.js} +0 -0
  2039. /package/dist/web/assets/{mojo-DDh7AQLv.js.br → mojo-DY4XpIlH.js.br} +0 -0
  2040. /package/dist/web/assets/{mojo-DDh7AQLv.js.gz → mojo-DY4XpIlH.js.gz} +0 -0
  2041. /package/dist/web/assets/{monaco-dotenv-language-Bwq3gQsi.js → monaco-dotenv-language-CQpgAhmX.js} +0 -0
  2042. /package/dist/web/assets/{monokai-BA4dkSrE.js → monokai-MPQsLu-o.js} +0 -0
  2043. /package/dist/web/assets/{monokai-BA4dkSrE.js.br → monokai-MPQsLu-o.js.br} +0 -0
  2044. /package/dist/web/assets/{monokai-BA4dkSrE.js.gz → monokai-MPQsLu-o.js.gz} +0 -0
  2045. /package/dist/web/assets/{moonbit-DGxZDax4.js → moonbit-M5su_7_F.js} +0 -0
  2046. /package/dist/web/assets/{moonbit-DGxZDax4.js.br → moonbit-M5su_7_F.js.br} +0 -0
  2047. /package/dist/web/assets/{moonbit-DGxZDax4.js.gz → moonbit-M5su_7_F.js.gz} +0 -0
  2048. /package/dist/web/assets/{move-C1HZaVNc.js → move-CYYhJ2zp.js} +0 -0
  2049. /package/dist/web/assets/{move-C1HZaVNc.js.br → move-CYYhJ2zp.js.br} +0 -0
  2050. /package/dist/web/assets/{move-C1HZaVNc.js.gz → move-CYYhJ2zp.js.gz} +0 -0
  2051. /package/dist/web/assets/{narrat-g4c9qhYS.js → narrat-CL2YcnxD.js} +0 -0
  2052. /package/dist/web/assets/{narrat-g4c9qhYS.js.br → narrat-CL2YcnxD.js.br} +0 -0
  2053. /package/dist/web/assets/{narrat-g4c9qhYS.js.gz → narrat-CL2YcnxD.js.gz} +0 -0
  2054. /package/dist/web/assets/{nextflow-groovy-CisdbLPv.js → nextflow-groovy-Gol2hLKv.js} +0 -0
  2055. /package/dist/web/assets/{nextflow-groovy-CisdbLPv.js.br → nextflow-groovy-Gol2hLKv.js.br} +0 -0
  2056. /package/dist/web/assets/{nextflow-groovy-CisdbLPv.js.gz → nextflow-groovy-Gol2hLKv.js.gz} +0 -0
  2057. /package/dist/web/assets/{night-owl-ds7NNgBg.js → night-owl-k4Wf6vT5.js} +0 -0
  2058. /package/dist/web/assets/{night-owl-ds7NNgBg.js.br → night-owl-k4Wf6vT5.js.br} +0 -0
  2059. /package/dist/web/assets/{night-owl-ds7NNgBg.js.gz → night-owl-k4Wf6vT5.js.gz} +0 -0
  2060. /package/dist/web/assets/{night-owl-light-DurCGAfC.js → night-owl-light-BFys3GTP.js} +0 -0
  2061. /package/dist/web/assets/{night-owl-light-DurCGAfC.js.br → night-owl-light-BFys3GTP.js.br} +0 -0
  2062. /package/dist/web/assets/{night-owl-light-DurCGAfC.js.gz → night-owl-light-BFys3GTP.js.gz} +0 -0
  2063. /package/dist/web/assets/{nix-D7kCv9F9.js → nix--Y3Gk7HX.js} +0 -0
  2064. /package/dist/web/assets/{nix-D7kCv9F9.js.br → nix--Y3Gk7HX.js.br} +0 -0
  2065. /package/dist/web/assets/{nix-D7kCv9F9.js.gz → nix--Y3Gk7HX.js.gz} +0 -0
  2066. /package/dist/web/assets/{nord-C-O3ceAv.js → nord-BeZnxDcj.js} +0 -0
  2067. /package/dist/web/assets/{nord-C-O3ceAv.js.br → nord-BeZnxDcj.js.br} +0 -0
  2068. /package/dist/web/assets/{nord-C-O3ceAv.js.gz → nord-BeZnxDcj.js.gz} +0 -0
  2069. /package/dist/web/assets/{nushell-oUYTGkzu.js → nushell-BzCnhP84.js} +0 -0
  2070. /package/dist/web/assets/{nushell-oUYTGkzu.js.br → nushell-BzCnhP84.js.br} +0 -0
  2071. /package/dist/web/assets/{nushell-oUYTGkzu.js.gz → nushell-BzCnhP84.js.gz} +0 -0
  2072. /package/dist/web/assets/{objective-c-CzqHoRSj.js → objective-c-Dp7k0at7.js} +0 -0
  2073. /package/dist/web/assets/{objective-c-CzqHoRSj.js.br → objective-c-Dp7k0at7.js.br} +0 -0
  2074. /package/dist/web/assets/{objective-c-CzqHoRSj.js.gz → objective-c-Dp7k0at7.js.gz} +0 -0
  2075. /package/dist/web/assets/{objective-cpp-DJ8fgF2d.js → objective-cpp-DlP31ffn.js} +0 -0
  2076. /package/dist/web/assets/{objective-cpp-DJ8fgF2d.js.br → objective-cpp-DlP31ffn.js.br} +0 -0
  2077. /package/dist/web/assets/{objective-cpp-DJ8fgF2d.js.gz → objective-cpp-DlP31ffn.js.gz} +0 -0
  2078. /package/dist/web/assets/{ocaml-B_nWFfqA.js → ocaml-6zqfFlDt.js} +0 -0
  2079. /package/dist/web/assets/{ocaml-B_nWFfqA.js.br → ocaml-6zqfFlDt.js.br} +0 -0
  2080. /package/dist/web/assets/{ocaml-B_nWFfqA.js.gz → ocaml-6zqfFlDt.js.gz} +0 -0
  2081. /package/dist/web/assets/{odin-BUQfWY13.js → odin-Cwj0GwxV.js} +0 -0
  2082. /package/dist/web/assets/{odin-BUQfWY13.js.br → odin-Cwj0GwxV.js.br} +0 -0
  2083. /package/dist/web/assets/{odin-BUQfWY13.js.gz → odin-Cwj0GwxV.js.gz} +0 -0
  2084. /package/dist/web/assets/{one-dark-pro-DJQor_US.js → one-dark-pro-9ZCBq-1e.js} +0 -0
  2085. /package/dist/web/assets/{one-dark-pro-DJQor_US.js.br → one-dark-pro-9ZCBq-1e.js.br} +0 -0
  2086. /package/dist/web/assets/{one-dark-pro-DJQor_US.js.gz → one-dark-pro-9ZCBq-1e.js.gz} +0 -0
  2087. /package/dist/web/assets/{one-light-BMvQ1R6M.js → one-light-Cph_d1Z-.js} +0 -0
  2088. /package/dist/web/assets/{one-light-BMvQ1R6M.js.br → one-light-Cph_d1Z-.js.br} +0 -0
  2089. /package/dist/web/assets/{one-light-BMvQ1R6M.js.gz → one-light-Cph_d1Z-.js.gz} +0 -0
  2090. /package/dist/web/assets/{openscad-DTylcqP8.js → openscad-xKXlLDww.js} +0 -0
  2091. /package/dist/web/assets/{openscad-DTylcqP8.js.br → openscad-xKXlLDww.js.br} +0 -0
  2092. /package/dist/web/assets/{openscad-DTylcqP8.js.gz → openscad-xKXlLDww.js.gz} +0 -0
  2093. /package/dist/web/assets/{pascal-D0N_7LGg.js → pascal-D8Ly58pC.js} +0 -0
  2094. /package/dist/web/assets/{pascal-D0N_7LGg.js.br → pascal-D8Ly58pC.js.br} +0 -0
  2095. /package/dist/web/assets/{pascal-D0N_7LGg.js.gz → pascal-D8Ly58pC.js.gz} +0 -0
  2096. /package/dist/web/assets/{path-LyOWnqX5.js → path-BBZ3nmRT.js} +0 -0
  2097. /package/dist/web/assets/{path-LyOWnqX5.js.br → path-BBZ3nmRT.js.br} +0 -0
  2098. /package/dist/web/assets/{path-LyOWnqX5.js.gz → path-BBZ3nmRT.js.gz} +0 -0
  2099. /package/dist/web/assets/{pkl-HQNdCmJT.js → pkl-Ckef1qFU.js} +0 -0
  2100. /package/dist/web/assets/{pkl-HQNdCmJT.js.br → pkl-Ckef1qFU.js.br} +0 -0
  2101. /package/dist/web/assets/{pkl-HQNdCmJT.js.gz → pkl-Ckef1qFU.js.gz} +0 -0
  2102. /package/dist/web/assets/{plastic-QMrjD10f.js → plastic-IckJTiFF.js} +0 -0
  2103. /package/dist/web/assets/{plastic-QMrjD10f.js.br → plastic-IckJTiFF.js.br} +0 -0
  2104. /package/dist/web/assets/{plastic-QMrjD10f.js.gz → plastic-IckJTiFF.js.gz} +0 -0
  2105. /package/dist/web/assets/{plsql-Ds9EzM4F.js → plsql-DvrKSOLR.js} +0 -0
  2106. /package/dist/web/assets/{plsql-Ds9EzM4F.js.br → plsql-DvrKSOLR.js.br} +0 -0
  2107. /package/dist/web/assets/{plsql-Ds9EzM4F.js.gz → plsql-DvrKSOLR.js.gz} +0 -0
  2108. /package/dist/web/assets/{po-CM8JtETE.js → po-CAU2W5ki.js} +0 -0
  2109. /package/dist/web/assets/{po-CM8JtETE.js.br → po-CAU2W5ki.js.br} +0 -0
  2110. /package/dist/web/assets/{po-CM8JtETE.js.gz → po-CAU2W5ki.js.gz} +0 -0
  2111. /package/dist/web/assets/{poimandres-fat7kglW.js → poimandres-Bgni5euO.js} +0 -0
  2112. /package/dist/web/assets/{poimandres-fat7kglW.js.br → poimandres-Bgni5euO.js.br} +0 -0
  2113. /package/dist/web/assets/{poimandres-fat7kglW.js.gz → poimandres-Bgni5euO.js.gz} +0 -0
  2114. /package/dist/web/assets/{polar-CnOzO2UD.js → polar-CM5bsdfq.js} +0 -0
  2115. /package/dist/web/assets/{polar-CnOzO2UD.js.br → polar-CM5bsdfq.js.br} +0 -0
  2116. /package/dist/web/assets/{polar-CnOzO2UD.js.gz → polar-CM5bsdfq.js.gz} +0 -0
  2117. /package/dist/web/assets/{postcss-BaqfiaQC.js → postcss-B_FJDLw-.js} +0 -0
  2118. /package/dist/web/assets/{postcss-BaqfiaQC.js.br → postcss-B_FJDLw-.js.br} +0 -0
  2119. /package/dist/web/assets/{postcss-BaqfiaQC.js.gz → postcss-B_FJDLw-.js.gz} +0 -0
  2120. /package/dist/web/assets/{powerquery-CtMX6ik_.js → powerquery-CQl458mG.js} +0 -0
  2121. /package/dist/web/assets/{powerquery-CtMX6ik_.js.br → powerquery-CQl458mG.js.br} +0 -0
  2122. /package/dist/web/assets/{powerquery-CtMX6ik_.js.gz → powerquery-CQl458mG.js.gz} +0 -0
  2123. /package/dist/web/assets/{powershell-BaTgHUxS.js → powershell-XkQNRD_d.js} +0 -0
  2124. /package/dist/web/assets/{powershell-BaTgHUxS.js.br → powershell-XkQNRD_d.js.br} +0 -0
  2125. /package/dist/web/assets/{powershell-BaTgHUxS.js.gz → powershell-XkQNRD_d.js.gz} +0 -0
  2126. /package/dist/web/assets/{prisma-BLaoUK-7.js → prisma-CAYa37xo.js} +0 -0
  2127. /package/dist/web/assets/{prisma-BLaoUK-7.js.br → prisma-CAYa37xo.js.br} +0 -0
  2128. /package/dist/web/assets/{prisma-BLaoUK-7.js.gz → prisma-CAYa37xo.js.gz} +0 -0
  2129. /package/dist/web/assets/{prolog-0I-GhZLt.js → prolog-DhrbUCR0.js} +0 -0
  2130. /package/dist/web/assets/{prolog-0I-GhZLt.js.br → prolog-DhrbUCR0.js.br} +0 -0
  2131. /package/dist/web/assets/{prolog-0I-GhZLt.js.gz → prolog-DhrbUCR0.js.gz} +0 -0
  2132. /package/dist/web/assets/{proto-CHfg51WI.js → proto-Djemj7Is.js} +0 -0
  2133. /package/dist/web/assets/{proto-CHfg51WI.js.br → proto-Djemj7Is.js.br} +0 -0
  2134. /package/dist/web/assets/{proto-CHfg51WI.js.gz → proto-Djemj7Is.js.gz} +0 -0
  2135. /package/dist/web/assets/{puppet-B0WZdEhx.js → puppet-OeZAIY0k.js} +0 -0
  2136. /package/dist/web/assets/{puppet-B0WZdEhx.js.br → puppet-OeZAIY0k.js.br} +0 -0
  2137. /package/dist/web/assets/{puppet-B0WZdEhx.js.gz → puppet-OeZAIY0k.js.gz} +0 -0
  2138. /package/dist/web/assets/{purescript-CrVZ4Uql.js → purescript-B1goqZLW.js} +0 -0
  2139. /package/dist/web/assets/{purescript-CrVZ4Uql.js.br → purescript-B1goqZLW.js.br} +0 -0
  2140. /package/dist/web/assets/{purescript-CrVZ4Uql.js.gz → purescript-B1goqZLW.js.gz} +0 -0
  2141. /package/dist/web/assets/{python-aEpe7ZUF.js → python-DV-HoFeK.js} +0 -0
  2142. /package/dist/web/assets/{python-aEpe7ZUF.js.br → python-DV-HoFeK.js.br} +0 -0
  2143. /package/dist/web/assets/{python-aEpe7ZUF.js.gz → python-DV-HoFeK.js.gz} +0 -0
  2144. /package/dist/web/assets/{qmldir-DxTPc3lc.js → qmldir--lp1j2AJ.js} +0 -0
  2145. /package/dist/web/assets/{qss-D-nPbCGx.js → qss-Yi2yczza.js} +0 -0
  2146. /package/dist/web/assets/{qss-D-nPbCGx.js.br → qss-Yi2yczza.js.br} +0 -0
  2147. /package/dist/web/assets/{qss-D-nPbCGx.js.gz → qss-Yi2yczza.js.gz} +0 -0
  2148. /package/dist/web/assets/{r-BLnTqw3q.js → r-7ZmKRlHm.js} +0 -0
  2149. /package/dist/web/assets/{r-BLnTqw3q.js.br → r-7ZmKRlHm.js.br} +0 -0
  2150. /package/dist/web/assets/{r-BLnTqw3q.js.gz → r-7ZmKRlHm.js.gz} +0 -0
  2151. /package/dist/web/assets/{racket-DNO4210g.js → racket-fwmwNOYz.js} +0 -0
  2152. /package/dist/web/assets/{racket-DNO4210g.js.br → racket-fwmwNOYz.js.br} +0 -0
  2153. /package/dist/web/assets/{racket-DNO4210g.js.gz → racket-fwmwNOYz.js.gz} +0 -0
  2154. /package/dist/web/assets/{raku-iZJO4hxf.js → raku-DV8ZvXLi.js} +0 -0
  2155. /package/dist/web/assets/{raku-iZJO4hxf.js.br → raku-DV8ZvXLi.js.br} +0 -0
  2156. /package/dist/web/assets/{raku-iZJO4hxf.js.gz → raku-DV8ZvXLi.js.gz} +0 -0
  2157. /package/dist/web/assets/{red-F3EQNsNx.js → red-njAFcCD-.js} +0 -0
  2158. /package/dist/web/assets/{red-F3EQNsNx.js.br → red-njAFcCD-.js.br} +0 -0
  2159. /package/dist/web/assets/{red-F3EQNsNx.js.gz → red-njAFcCD-.js.gz} +0 -0
  2160. /package/dist/web/assets/{reg-DD_Uwu3t.js → reg-B0zsm4Ng.js} +0 -0
  2161. /package/dist/web/assets/{reg-DD_Uwu3t.js.br → reg-B0zsm4Ng.js.br} +0 -0
  2162. /package/dist/web/assets/{reg-DD_Uwu3t.js.gz → reg-B0zsm4Ng.js.gz} +0 -0
  2163. /package/dist/web/assets/{regexp-D3RlqUxN.js → regexp-BxNvyxL0.js} +0 -0
  2164. /package/dist/web/assets/{regexp-D3RlqUxN.js.br → regexp-BxNvyxL0.js.br} +0 -0
  2165. /package/dist/web/assets/{regexp-D3RlqUxN.js.gz → regexp-BxNvyxL0.js.gz} +0 -0
  2166. /package/dist/web/assets/{rel-DM5GSHUR.js → rel-BkCYIlpx.js} +0 -0
  2167. /package/dist/web/assets/{rel-DM5GSHUR.js.br → rel-BkCYIlpx.js.br} +0 -0
  2168. /package/dist/web/assets/{rel-DM5GSHUR.js.gz → rel-BkCYIlpx.js.gz} +0 -0
  2169. /package/dist/web/assets/{resolve-theme-STMsK2vc.js → resolve-theme-B87m6l4i.js} +0 -0
  2170. /package/dist/web/assets/{resolve-theme-STMsK2vc.js.br → resolve-theme-B87m6l4i.js.br} +0 -0
  2171. /package/dist/web/assets/{resolve-theme-STMsK2vc.js.gz → resolve-theme-B87m6l4i.js.gz} +0 -0
  2172. /package/dist/web/assets/{riscv-C_jO4gJw.js → riscv-BkIhxDPz.js} +0 -0
  2173. /package/dist/web/assets/{riscv-C_jO4gJw.js.br → riscv-BkIhxDPz.js.br} +0 -0
  2174. /package/dist/web/assets/{riscv-C_jO4gJw.js.gz → riscv-BkIhxDPz.js.gz} +0 -0
  2175. /package/dist/web/assets/{ron--r6_MG5U.js → ron-Dz2XANaL.js} +0 -0
  2176. /package/dist/web/assets/{ron--r6_MG5U.js.br → ron-Dz2XANaL.js.br} +0 -0
  2177. /package/dist/web/assets/{ron--r6_MG5U.js.gz → ron-Dz2XANaL.js.gz} +0 -0
  2178. /package/dist/web/assets/{rose-pine-dawn-DnsL01oA.js → rose-pine-dawn-DN9kWMIp.js} +0 -0
  2179. /package/dist/web/assets/{rose-pine-dawn-DnsL01oA.js.br → rose-pine-dawn-DN9kWMIp.js.br} +0 -0
  2180. /package/dist/web/assets/{rose-pine-dawn-DnsL01oA.js.gz → rose-pine-dawn-DN9kWMIp.js.gz} +0 -0
  2181. /package/dist/web/assets/{rose-pine-NjvlliYf.js → rose-pine-eIr8UZ5b.js} +0 -0
  2182. /package/dist/web/assets/{rose-pine-NjvlliYf.js.br → rose-pine-eIr8UZ5b.js.br} +0 -0
  2183. /package/dist/web/assets/{rose-pine-NjvlliYf.js.gz → rose-pine-eIr8UZ5b.js.gz} +0 -0
  2184. /package/dist/web/assets/{rose-pine-moon-DQTuCjVy.js → rose-pine-moon-CARJbo1N.js} +0 -0
  2185. /package/dist/web/assets/{rose-pine-moon-DQTuCjVy.js.br → rose-pine-moon-CARJbo1N.js.br} +0 -0
  2186. /package/dist/web/assets/{rose-pine-moon-DQTuCjVy.js.gz → rose-pine-moon-CARJbo1N.js.gz} +0 -0
  2187. /package/dist/web/assets/{rosmsg-BQrgxzms.js → rosmsg-CvdFrq8H.js} +0 -0
  2188. /package/dist/web/assets/{rosmsg-BQrgxzms.js.br → rosmsg-CvdFrq8H.js.br} +0 -0
  2189. /package/dist/web/assets/{rosmsg-BQrgxzms.js.gz → rosmsg-CvdFrq8H.js.gz} +0 -0
  2190. /package/dist/web/assets/{rough.esm-CSLcW3u5.js → rough.esm-DjDoC3p1.js} +0 -0
  2191. /package/dist/web/assets/{rough.esm-CSLcW3u5.js.br → rough.esm-DjDoC3p1.js.br} +0 -0
  2192. /package/dist/web/assets/{rough.esm-CSLcW3u5.js.gz → rough.esm-DjDoC3p1.js.gz} +0 -0
  2193. /package/dist/web/assets/{rust-CP39BBh-.js → rust-Dn0IvdCe.js} +0 -0
  2194. /package/dist/web/assets/{rust-CP39BBh-.js.br → rust-Dn0IvdCe.js.br} +0 -0
  2195. /package/dist/web/assets/{rust-CP39BBh-.js.gz → rust-Dn0IvdCe.js.gz} +0 -0
  2196. /package/dist/web/assets/{sass-CMiN16ff.js → sass-DuXbHlxS.js} +0 -0
  2197. /package/dist/web/assets/{sass-CMiN16ff.js.br → sass-DuXbHlxS.js.br} +0 -0
  2198. /package/dist/web/assets/{sass-CMiN16ff.js.gz → sass-DuXbHlxS.js.gz} +0 -0
  2199. /package/dist/web/assets/{scala-jm4Hro87.js → scala-f9V3Hdhj.js} +0 -0
  2200. /package/dist/web/assets/{scala-jm4Hro87.js.br → scala-f9V3Hdhj.js.br} +0 -0
  2201. /package/dist/web/assets/{scala-jm4Hro87.js.gz → scala-f9V3Hdhj.js.gz} +0 -0
  2202. /package/dist/web/assets/{scheme-Ct_BnC2r.js → scheme-mmNiztuh.js} +0 -0
  2203. /package/dist/web/assets/{scheme-Ct_BnC2r.js.br → scheme-mmNiztuh.js.br} +0 -0
  2204. /package/dist/web/assets/{scheme-Ct_BnC2r.js.gz → scheme-mmNiztuh.js.gz} +0 -0
  2205. /package/dist/web/assets/{sdbl-CnOjqCoH.js → sdbl-C-Dtt518.js} +0 -0
  2206. /package/dist/web/assets/{sdbl-CnOjqCoH.js.br → sdbl-C-Dtt518.js.br} +0 -0
  2207. /package/dist/web/assets/{sdbl-CnOjqCoH.js.gz → sdbl-C-Dtt518.js.gz} +0 -0
  2208. /package/dist/web/assets/{shellscript-C6sdrDvR.js → shellscript-DqPlhOxY.js} +0 -0
  2209. /package/dist/web/assets/{shellscript-C6sdrDvR.js.br → shellscript-DqPlhOxY.js.br} +0 -0
  2210. /package/dist/web/assets/{shellscript-C6sdrDvR.js.gz → shellscript-DqPlhOxY.js.gz} +0 -0
  2211. /package/dist/web/assets/{slack-dark-BOdgeH19.js → slack-dark-CcJuw2GE.js} +0 -0
  2212. /package/dist/web/assets/{slack-dark-BOdgeH19.js.br → slack-dark-CcJuw2GE.js.br} +0 -0
  2213. /package/dist/web/assets/{slack-dark-BOdgeH19.js.gz → slack-dark-CcJuw2GE.js.gz} +0 -0
  2214. /package/dist/web/assets/{slack-ochin-DBMQIw0j.js → slack-ochin-DhF5J4kG.js} +0 -0
  2215. /package/dist/web/assets/{slack-ochin-DBMQIw0j.js.br → slack-ochin-DhF5J4kG.js.br} +0 -0
  2216. /package/dist/web/assets/{slack-ochin-DBMQIw0j.js.gz → slack-ochin-DhF5J4kG.js.gz} +0 -0
  2217. /package/dist/web/assets/{smalltalk-BMQqYubg.js → smalltalk-I7kpfF3K.js} +0 -0
  2218. /package/dist/web/assets/{smalltalk-BMQqYubg.js.br → smalltalk-I7kpfF3K.js.br} +0 -0
  2219. /package/dist/web/assets/{smalltalk-BMQqYubg.js.gz → smalltalk-I7kpfF3K.js.gz} +0 -0
  2220. /package/dist/web/assets/{snazzy-light-DwnLbrVG.js → snazzy-light-C7twsQ2A.js} +0 -0
  2221. /package/dist/web/assets/{snazzy-light-DwnLbrVG.js.br → snazzy-light-C7twsQ2A.js.br} +0 -0
  2222. /package/dist/web/assets/{snazzy-light-DwnLbrVG.js.gz → snazzy-light-C7twsQ2A.js.gz} +0 -0
  2223. /package/dist/web/assets/{solarized-dark-DXJnupYd.js → solarized-dark-BNugyimf.js} +0 -0
  2224. /package/dist/web/assets/{solarized-dark-DXJnupYd.js.br → solarized-dark-BNugyimf.js.br} +0 -0
  2225. /package/dist/web/assets/{solarized-dark-DXJnupYd.js.gz → solarized-dark-BNugyimf.js.gz} +0 -0
  2226. /package/dist/web/assets/{solarized-light-DqhyrtI4.js → solarized-light-CvgUnQ1w.js} +0 -0
  2227. /package/dist/web/assets/{solarized-light-DqhyrtI4.js.br → solarized-light-CvgUnQ1w.js.br} +0 -0
  2228. /package/dist/web/assets/{solarized-light-DqhyrtI4.js.gz → solarized-light-CvgUnQ1w.js.gz} +0 -0
  2229. /package/dist/web/assets/{solidity-BM0p0sku.js → solidity-BDgrLeJ1.js} +0 -0
  2230. /package/dist/web/assets/{solidity-BM0p0sku.js.br → solidity-BDgrLeJ1.js.br} +0 -0
  2231. /package/dist/web/assets/{solidity-BM0p0sku.js.gz → solidity-BDgrLeJ1.js.gz} +0 -0
  2232. /package/dist/web/assets/{splunk-Cq6_jbaY.js → splunk-CNuF6KkM.js} +0 -0
  2233. /package/dist/web/assets/{splunk-Cq6_jbaY.js.br → splunk-CNuF6KkM.js.br} +0 -0
  2234. /package/dist/web/assets/{splunk-Cq6_jbaY.js.gz → splunk-CNuF6KkM.js.gz} +0 -0
  2235. /package/dist/web/assets/{sql-CPfIb_cO.js → sql-D48c69Jw.js} +0 -0
  2236. /package/dist/web/assets/{sql-CPfIb_cO.js.br → sql-D48c69Jw.js.br} +0 -0
  2237. /package/dist/web/assets/{sql-CPfIb_cO.js.gz → sql-D48c69Jw.js.gz} +0 -0
  2238. /package/dist/web/assets/{src-C7A68uNq.js → src-BbwyNwWE.js} +0 -0
  2239. /package/dist/web/assets/{src-C7A68uNq.js.br → src-BbwyNwWE.js.br} +0 -0
  2240. /package/dist/web/assets/{src-C7A68uNq.js.gz → src-BbwyNwWE.js.gz} +0 -0
  2241. /package/dist/web/assets/{ssh-config-GRgzMVtG.js → ssh-config-B1wBqiS9.js} +0 -0
  2242. /package/dist/web/assets/{ssh-config-GRgzMVtG.js.br → ssh-config-B1wBqiS9.js.br} +0 -0
  2243. /package/dist/web/assets/{ssh-config-GRgzMVtG.js.gz → ssh-config-B1wBqiS9.js.gz} +0 -0
  2244. /package/dist/web/assets/{stylus-DNs7ubf9.js → stylus-OJB8j7V7.js} +0 -0
  2245. /package/dist/web/assets/{stylus-DNs7ubf9.js.br → stylus-OJB8j7V7.js.br} +0 -0
  2246. /package/dist/web/assets/{stylus-DNs7ubf9.js.gz → stylus-OJB8j7V7.js.gz} +0 -0
  2247. /package/dist/web/assets/{swift-BQV34vng.js → swift-7GM5UsQV.js} +0 -0
  2248. /package/dist/web/assets/{swift-BQV34vng.js.br → swift-7GM5UsQV.js.br} +0 -0
  2249. /package/dist/web/assets/{swift-BQV34vng.js.gz → swift-7GM5UsQV.js.gz} +0 -0
  2250. /package/dist/web/assets/{synthwave-84-CypcdXbA.js → synthwave-84-D68U5tV6.js} +0 -0
  2251. /package/dist/web/assets/{synthwave-84-CypcdXbA.js.br → synthwave-84-D68U5tV6.js.br} +0 -0
  2252. /package/dist/web/assets/{synthwave-84-CypcdXbA.js.gz → synthwave-84-D68U5tV6.js.gz} +0 -0
  2253. /package/dist/web/assets/{system-verilog-DaLPjQ4v.js → system-verilog-BMr6tYGp.js} +0 -0
  2254. /package/dist/web/assets/{system-verilog-DaLPjQ4v.js.br → system-verilog-BMr6tYGp.js.br} +0 -0
  2255. /package/dist/web/assets/{system-verilog-DaLPjQ4v.js.gz → system-verilog-BMr6tYGp.js.gz} +0 -0
  2256. /package/dist/web/assets/{systemd-CXHFtmNc.js → systemd-EuUPsqCT.js} +0 -0
  2257. /package/dist/web/assets/{systemd-CXHFtmNc.js.br → systemd-EuUPsqCT.js.br} +0 -0
  2258. /package/dist/web/assets/{systemd-CXHFtmNc.js.gz → systemd-EuUPsqCT.js.gz} +0 -0
  2259. /package/dist/web/assets/{talonscript-DI9nO5jX.js → talonscript-DjUAMefb.js} +0 -0
  2260. /package/dist/web/assets/{talonscript-DI9nO5jX.js.br → talonscript-DjUAMefb.js.br} +0 -0
  2261. /package/dist/web/assets/{talonscript-DI9nO5jX.js.gz → talonscript-DjUAMefb.js.gz} +0 -0
  2262. /package/dist/web/assets/{tasl-BAQyAl0c.js → tasl-fq_y40Gw.js} +0 -0
  2263. /package/dist/web/assets/{tasl-BAQyAl0c.js.br → tasl-fq_y40Gw.js.br} +0 -0
  2264. /package/dist/web/assets/{tasl-BAQyAl0c.js.gz → tasl-fq_y40Gw.js.gz} +0 -0
  2265. /package/dist/web/assets/{tcl-BP_ozI58.js → tcl-C_4KPJpi.js} +0 -0
  2266. /package/dist/web/assets/{tcl-BP_ozI58.js.br → tcl-C_4KPJpi.js.br} +0 -0
  2267. /package/dist/web/assets/{tcl-BP_ozI58.js.gz → tcl-C_4KPJpi.js.gz} +0 -0
  2268. /package/dist/web/assets/{terraform-NrndR0yZ.js → terraform-D2x4kIoh.js} +0 -0
  2269. /package/dist/web/assets/{terraform-NrndR0yZ.js.br → terraform-D2x4kIoh.js.br} +0 -0
  2270. /package/dist/web/assets/{terraform-NrndR0yZ.js.gz → terraform-D2x4kIoh.js.gz} +0 -0
  2271. /package/dist/web/assets/{tokyo-night-CbUQlN8D.js → tokyo-night-CUGo2Zr_.js} +0 -0
  2272. /package/dist/web/assets/{tokyo-night-CbUQlN8D.js.br → tokyo-night-CUGo2Zr_.js.br} +0 -0
  2273. /package/dist/web/assets/{tokyo-night-CbUQlN8D.js.gz → tokyo-night-CUGo2Zr_.js.gz} +0 -0
  2274. /package/dist/web/assets/{toml-BM_zrMLj.js → toml-BcDWUUhX.js} +0 -0
  2275. /package/dist/web/assets/{toml-BM_zrMLj.js.br → toml-BcDWUUhX.js.br} +0 -0
  2276. /package/dist/web/assets/{toml-BM_zrMLj.js.gz → toml-BcDWUUhX.js.gz} +0 -0
  2277. /package/dist/web/assets/{tsv-CfyllNPO.js → tsv-C8SvedcS.js} +0 -0
  2278. /package/dist/web/assets/{tsx-BROcpVjE.js → tsx-lkr-nm_S.js} +0 -0
  2279. /package/dist/web/assets/{tsx-BROcpVjE.js.br → tsx-lkr-nm_S.js.br} +0 -0
  2280. /package/dist/web/assets/{tsx-BROcpVjE.js.gz → tsx-lkr-nm_S.js.gz} +0 -0
  2281. /package/dist/web/assets/{turtle-CHmyeS9k.js → turtle-B_e2j7qe.js} +0 -0
  2282. /package/dist/web/assets/{turtle-CHmyeS9k.js.br → turtle-B_e2j7qe.js.br} +0 -0
  2283. /package/dist/web/assets/{turtle-CHmyeS9k.js.gz → turtle-B_e2j7qe.js.gz} +0 -0
  2284. /package/dist/web/assets/{typescript-BVwspRg8.js → typescript-kiqZ6P0m.js} +0 -0
  2285. /package/dist/web/assets/{typescript-BVwspRg8.js.br → typescript-kiqZ6P0m.js.br} +0 -0
  2286. /package/dist/web/assets/{typescript-BVwspRg8.js.gz → typescript-kiqZ6P0m.js.gz} +0 -0
  2287. /package/dist/web/assets/{typespec-DXRppCgc.js → typespec-C_5SOJR4.js} +0 -0
  2288. /package/dist/web/assets/{typespec-DXRppCgc.js.br → typespec-C_5SOJR4.js.br} +0 -0
  2289. /package/dist/web/assets/{typespec-DXRppCgc.js.gz → typespec-C_5SOJR4.js.gz} +0 -0
  2290. /package/dist/web/assets/{typst-L5uwArOj.js → typst-C_MV14-S.js} +0 -0
  2291. /package/dist/web/assets/{typst-L5uwArOj.js.br → typst-C_MV14-S.js.br} +0 -0
  2292. /package/dist/web/assets/{typst-L5uwArOj.js.gz → typst-C_MV14-S.js.gz} +0 -0
  2293. /package/dist/web/assets/{use-is-mobile-BClDZJP5.js → use-is-mobile-CkO33jqU.js} +0 -0
  2294. /package/dist/web/assets/{use-visual-viewport-BGpcMnIx.js → use-visual-viewport-C307OVeV.js} +0 -0
  2295. /package/dist/web/assets/{v-Bz99d5uk.js → v-DaGxeDE4.js} +0 -0
  2296. /package/dist/web/assets/{v-Bz99d5uk.js.br → v-DaGxeDE4.js.br} +0 -0
  2297. /package/dist/web/assets/{v-Bz99d5uk.js.gz → v-DaGxeDE4.js.gz} +0 -0
  2298. /package/dist/web/assets/{vala-B-CtBLX1.js → vala-og0dxQci.js} +0 -0
  2299. /package/dist/web/assets/{vala-B-CtBLX1.js.br → vala-og0dxQci.js.br} +0 -0
  2300. /package/dist/web/assets/{vala-B-CtBLX1.js.gz → vala-og0dxQci.js.gz} +0 -0
  2301. /package/dist/web/assets/{vb-DHqiz9Cp.js → vb-6CaJs6KS.js} +0 -0
  2302. /package/dist/web/assets/{vb-DHqiz9Cp.js.br → vb-6CaJs6KS.js.br} +0 -0
  2303. /package/dist/web/assets/{vb-DHqiz9Cp.js.gz → vb-6CaJs6KS.js.gz} +0 -0
  2304. /package/dist/web/assets/{vendor-xterm-DLDtzLib.js → vendor-xterm-DHxOhwwM.js} +0 -0
  2305. /package/dist/web/assets/{vendor-xterm-DLDtzLib.js.br → vendor-xterm-DHxOhwwM.js.br} +0 -0
  2306. /package/dist/web/assets/{vendor-xterm-DLDtzLib.js.gz → vendor-xterm-DHxOhwwM.js.gz} +0 -0
  2307. /package/dist/web/assets/{verilog-DbTkSkM7.js → verilog-DITuWErO.js} +0 -0
  2308. /package/dist/web/assets/{verilog-DbTkSkM7.js.br → verilog-DITuWErO.js.br} +0 -0
  2309. /package/dist/web/assets/{verilog-DbTkSkM7.js.gz → verilog-DITuWErO.js.gz} +0 -0
  2310. /package/dist/web/assets/{vesper-2aVei4Le.js → vesper-lpvVk8gJ.js} +0 -0
  2311. /package/dist/web/assets/{vesper-2aVei4Le.js.br → vesper-lpvVk8gJ.js.br} +0 -0
  2312. /package/dist/web/assets/{vesper-2aVei4Le.js.gz → vesper-lpvVk8gJ.js.gz} +0 -0
  2313. /package/dist/web/assets/{vhdl-BJJSCnQQ.js → vhdl-BH7O0w5d.js} +0 -0
  2314. /package/dist/web/assets/{vhdl-BJJSCnQQ.js.br → vhdl-BH7O0w5d.js.br} +0 -0
  2315. /package/dist/web/assets/{vhdl-BJJSCnQQ.js.gz → vhdl-BH7O0w5d.js.gz} +0 -0
  2316. /package/dist/web/assets/{viml-qxSvRN8n.js → viml-BAdOLdlU.js} +0 -0
  2317. /package/dist/web/assets/{viml-qxSvRN8n.js.br → viml-BAdOLdlU.js.br} +0 -0
  2318. /package/dist/web/assets/{viml-qxSvRN8n.js.gz → viml-BAdOLdlU.js.gz} +0 -0
  2319. /package/dist/web/assets/{vitesse-black-CjR1y0Bv.js → vitesse-black-CVq0tV6W.js} +0 -0
  2320. /package/dist/web/assets/{vitesse-black-CjR1y0Bv.js.br → vitesse-black-CVq0tV6W.js.br} +0 -0
  2321. /package/dist/web/assets/{vitesse-black-CjR1y0Bv.js.gz → vitesse-black-CVq0tV6W.js.gz} +0 -0
  2322. /package/dist/web/assets/{vitesse-dark-jrcdsqkn.js → vitesse-dark-C5igeaQr.js} +0 -0
  2323. /package/dist/web/assets/{vitesse-dark-jrcdsqkn.js.br → vitesse-dark-C5igeaQr.js.br} +0 -0
  2324. /package/dist/web/assets/{vitesse-dark-jrcdsqkn.js.gz → vitesse-dark-C5igeaQr.js.gz} +0 -0
  2325. /package/dist/web/assets/{vitesse-light-DkC_qU0k.js → vitesse-light-BYsPg_gN.js} +0 -0
  2326. /package/dist/web/assets/{vitesse-light-DkC_qU0k.js.br → vitesse-light-BYsPg_gN.js.br} +0 -0
  2327. /package/dist/web/assets/{vitesse-light-DkC_qU0k.js.gz → vitesse-light-BYsPg_gN.js.gz} +0 -0
  2328. /package/dist/web/assets/{vyper-WAhkfwIX.js → vyper-BrpU-131.js} +0 -0
  2329. /package/dist/web/assets/{vyper-WAhkfwIX.js.br → vyper-BrpU-131.js.br} +0 -0
  2330. /package/dist/web/assets/{vyper-WAhkfwIX.js.gz → vyper-BrpU-131.js.gz} +0 -0
  2331. /package/dist/web/assets/{wasm-BYGI5YYa.js → wasm-BTWJu1hM.js} +0 -0
  2332. /package/dist/web/assets/{wasm-BYGI5YYa.js.br → wasm-BTWJu1hM.js.br} +0 -0
  2333. /package/dist/web/assets/{wasm-BYGI5YYa.js.gz → wasm-BTWJu1hM.js.gz} +0 -0
  2334. /package/dist/web/assets/{wasm-Miuao4O0.js → wasm-WCHstPNa.js} +0 -0
  2335. /package/dist/web/assets/{wasm-Miuao4O0.js.br → wasm-WCHstPNa.js.br} +0 -0
  2336. /package/dist/web/assets/{wasm-Miuao4O0.js.gz → wasm-WCHstPNa.js.gz} +0 -0
  2337. /package/dist/web/assets/{wenyan-Dd5qjF8u.js → wenyan-OcBsGWgI.js} +0 -0
  2338. /package/dist/web/assets/{wenyan-Dd5qjF8u.js.br → wenyan-OcBsGWgI.js.br} +0 -0
  2339. /package/dist/web/assets/{wenyan-Dd5qjF8u.js.gz → wenyan-OcBsGWgI.js.gz} +0 -0
  2340. /package/dist/web/assets/{wgsl-C3T5a0UO.js → wgsl-BHOPLF5w.js} +0 -0
  2341. /package/dist/web/assets/{wgsl-C3T5a0UO.js.br → wgsl-BHOPLF5w.js.br} +0 -0
  2342. /package/dist/web/assets/{wgsl-C3T5a0UO.js.gz → wgsl-BHOPLF5w.js.gz} +0 -0
  2343. /package/dist/web/assets/{wikitext-CvCJjxSa.js → wikitext-BF6KBxPK.js} +0 -0
  2344. /package/dist/web/assets/{wikitext-CvCJjxSa.js.br → wikitext-BF6KBxPK.js.br} +0 -0
  2345. /package/dist/web/assets/{wikitext-CvCJjxSa.js.gz → wikitext-BF6KBxPK.js.gz} +0 -0
  2346. /package/dist/web/assets/{wit-DybvG9BU.js → wit-CIP-bHDR.js} +0 -0
  2347. /package/dist/web/assets/{wit-DybvG9BU.js.br → wit-CIP-bHDR.js.br} +0 -0
  2348. /package/dist/web/assets/{wit-DybvG9BU.js.gz → wit-CIP-bHDR.js.gz} +0 -0
  2349. /package/dist/web/assets/{wolfram-CdhnrpZ7.js → wolfram-DX3pie6r.js} +0 -0
  2350. /package/dist/web/assets/{wolfram-CdhnrpZ7.js.br → wolfram-DX3pie6r.js.br} +0 -0
  2351. /package/dist/web/assets/{wolfram-CdhnrpZ7.js.gz → wolfram-DX3pie6r.js.gz} +0 -0
  2352. /package/dist/web/assets/{yaml-B0HIje0z.js → yaml-CtIxN55b.js} +0 -0
  2353. /package/dist/web/assets/{yaml-B0HIje0z.js.br → yaml-CtIxN55b.js.br} +0 -0
  2354. /package/dist/web/assets/{yaml-B0HIje0z.js.gz → yaml-CtIxN55b.js.gz} +0 -0
  2355. /package/dist/web/assets/{zenscript-CcLSNTvD.js → zenscript-BYsmNQ3N.js} +0 -0
  2356. /package/dist/web/assets/{zenscript-CcLSNTvD.js.br → zenscript-BYsmNQ3N.js.br} +0 -0
  2357. /package/dist/web/assets/{zenscript-CcLSNTvD.js.gz → zenscript-BYsmNQ3N.js.gz} +0 -0
  2358. /package/dist/web/assets/{zig-dAelYAUr.js → zig-Bj2fs45Q.js} +0 -0
  2359. /package/dist/web/assets/{zig-dAelYAUr.js.br → zig-Bj2fs45Q.js.br} +0 -0
  2360. /package/dist/web/assets/{zig-dAelYAUr.js.gz → zig-Bj2fs45Q.js.gz} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,103 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.23.8] - 2026-09-30
4
+
5
+ ### Changed
6
+
7
+ - **A new chat tab is ready the moment it opens.** Provider, mode and model chips and the `/` list show on the first frame from a copy saved in the browser. The account, draft, usage and tags then arrive in one request instead of six.
8
+ - **Recent chats appear instantly everywhere.** The sidebar, welcome screen, tab bar and history panel share one saved list, refreshed in the background with a small "Syncing…" note. Renaming, pinning, tagging or deleting a chat updates the list at once.
9
+ - A new tab's usage chip now shows the account that tab will actually run on.
10
+
11
+ ### Fixed
12
+
13
+ - The `/` command list is loaded as soon as a chat opens, so typing `/` right away no longer waits for it.
14
+ - Opening a Codex chat no longer stalls other requests while its history is read.
15
+ - Session titles, recent chats and saved commands cached in the browser are wiped when you are signed out.
16
+
17
+ ## [0.23.7] - 2026-09-28
18
+
19
+ ### Added
20
+
21
+ - **The System Monitor is now a full system monitor.** It had one page: a row of summary cards and a process table. Everything that makes Mission Center worth opening — which disk, which network interface, which GPU, what the memory is actually made of, which applications are running as opposed to which processes, and what systemd is doing — had no surface at all. The window now has five pages, and every number on them is measured without root.
22
+ - **Performance** — a sidebar of every device on the machine, each with its own live sparkline, and a detail page per device. CPU: utilisation and kernel time, current, base and maximum clock, temperature, package power, threads, handles, uptime, sockets, cores, logical processors, virtualisation, L1/L2/L3 cache and the governor in force. Memory: the composition bar (in use / modified / standby / free), available, cached, committed, swap — and **the DIMMs themselves**, one row per slot with its manufacturer, type, form factor, speed and size, plus how many slots are populated out of how many the board has. Disks: active time and transfer-rate graphs, read and write speed, average response time, totals since boot, capacity, SSD-or-HDD, whether it is the system disk, removable, rotation rate and serial. Network: link speed and address per interface, typed as Ethernet, Wi-Fi, Bridge, VPN or Docker rather than listed as eight identical rows. GPUs: utilisation, video memory, encode/decode, clocks, power, temperature, driver, OpenGL, Vulkan and PCIe link. Fans: RPM, duty cycle and the temperature each one is answering to.
23
+ - **Apps** — the applications you started, not the processes they spawned. A browser with nineteen renderers is one row with one icon, one CPU figure and one memory figure, ending as a group. They are identified from the systemd app cgroup each process lives in (`app-<desktop-id>.scope`), which is how the desktop itself knows, and the icon is the one that app's own `.desktop` entry names.
24
+ - **Services** — every systemd unit, system and user scope kept as separate lists because a user unit and a system unit of the same name are different units with very different consequences. Filter by running, failed or enabled-at-boot; start, stop, restart, enable or disable one from its context menu behind a confirmation; open any unit for its state, main PID, user, unit file path and **this boot's log**, read from journald. Two `systemctl` calls serve a whole list rather than one per unit.
25
+ - **Processes** gains Mission Center's own right-click menu: **Details…** (parent, user, state, threads, nice, start time, control group, executable, working directory, command line), **Send signal** (SIGTERM, SIGKILL, SIGSTOP, SIGCONT, SIGHUP, SIGINT, SIGUSR1, SIGUSR2) and End process — all of it refused, with the reason shown, for PPM's own processes, its tunnel, and anything OS-critical. Per-process **GPU** and **disk** columns are new too, read from DRM fdinfo and `/proc/<pid>/io`.
26
+ - **The CPU graph is re-pointable, the way Mission Center's is.** Right-click it (long-press on a phone) for *Change top graph to* — overall utilisation, **one graph per logical processor**, all threads overlaid, or all threads stacked — and *Change bottom graph to* — temperature, package power, clock speed, or nothing. The per-thread grid is the one that earns its place on a hybrid part: a 12900K's eight P-cores, their SMT siblings and eight E-cores behave nothing alike, and a single averaged line says none of that. It lays out 24 threads in six columns of four exactly as Mission Center does — which is *not* `ceil(sqrt(n))`, that gives five — and drops columns rather than shrinking past legibility when the window is narrow or the screen is a phone.
27
+ - Each graph now states what it is and where its top is — "Utilisation over 6 minutes / 100%", "Temperature over 6 minutes / 66.0 °C". The span is read from the points themselves rather than written into the label: PPM's window is 200 readings at the server's own cadence, which differs between the full and light tiers, so a fixed "over 1 minute" would be wrong on one of them and wrong again on a window that has only been open eight seconds.
28
+ - Stacked mode divides each thread by the thread count, so the top edge of the stack is the machine's overall utilisation rather than 2400%.
29
+ - **A drive's partitions, with what is actually on them.** Each disk page now lists its partitions with their label, filesystem, mount point and a used/total bar — the figures `df` prints, `statfs` arithmetic and all, so a btrfs root reads the same in both. One row per *partition* rather than per mount: a subvolume layout mounts one filesystem at seven places that all report identical numbers, and seven identical bars say nothing seven times. A partition that is not mounted says so; one whose usage the kernel refuses says *that*, with no bar, rather than drawing an empty one. The lookup was the hard part — `/proc/self/mountinfo` reports btrfs under an **anonymous** device number (`0:35` here) rather than the block device's own (`259:2`), so matching on that field alone finds no mount at all on most Arch installs, and the bug is invisible on ext4.
30
+ - **Swap is a graph of its own, and zram is named.** The memory page drew one line and listed swap as a number underneath; swap now has its own graph against its own total, drawn only where there *is* swap — a flat zero line over an axis that does not exist reads as "nothing is swapping", which is a different claim from "there is nowhere to swap to". Beside it: how much **zram** is holding compressed and how much that saved, summed across every device, absent entirely on a host with none.
31
+ - **The GPU page is three graphs, as Mission Center's is** — utilisation, video encode/decode and memory usage — each captioned with its span and its ceiling. And an integrated GPU finally has a memory figure instead of an em dash: i915 publishes no `mem_info_*` attribute, so the number is summed out of its clients' DRM fdinfo against the machine's RAM. Checked against Mission Center running beside it on the same host at the same moment: it read 2.52 GiB / 62.5 GiB, this read 2.54.
32
+ - **Swap per process, and the Services page shows what each unit is actually using.** The process table, the app rows and the group roll-ups gain a **Swap** column from `VmSwap` in `/proc/<pid>/status` — 3.2 ms for 561 processes, beside the 1.7 ms `/proc/<pid>/io` already costs. Every unit on the Services page then carries live CPU, memory, swap, drive and GPU, summed over the processes in its cgroup. Those sums are the *same numbers the Processes tab is showing*, rolled up in the browser rather than recomputed in the Services route: that route is two `systemctl` spawns on a 3 s poll with no counters of its own, and computing CPU% there would mean a second set of deltas over a second interval — the same process reporting two different figures on two pages of one window. A unit is identified by **scope and name together**, because `dbus-broker.service` exists in both scopes on an ordinary desktop and one key for the two would publish one figure for two different units. A unit with no rows is a dash only when it OUGHT to have processes: systemd reports a mount as `active (mounted)`, a finished oneshot as `active (exited)` and a listening socket as **`running`** with an empty `MainPID`, so the row has to agree with the unit's own type — going by `ActiveState` dashed 97 of this host's 222 rows and going by `SubState` alone still dashed 14 sockets, where the honest reading is zero.
33
+ - **Preferences** (the gear beside the connection light): temperature in °C or °F, and whether the CPU graph draws its kernel-time line. Both are per device — the unit you read in belongs to whoever is looking, not to the machine being watched — so a phone and a desktop watching the same host can disagree. Mission Center's update-interval and data-point-count settings are deliberately **not** here: PPM's tick rate is the server's and is shared by every subscriber, so a per-client control over it would either do nothing or change the rate for somebody else's window.
34
+ - Everything is read from `/proc`, `/sys`, `/run/udev/data`, DRM fdinfo, RAPL and hwmon, and `systemctl`/`journalctl` for the units — no root, no daemon, no helper binary. A value the host cannot measure is **absent**, and an absent value renders as an em dash: the one thing a monitor must never do is state a measurement it did not take.
35
+
36
+ - **`bg-surface-hover` never existed, so every row hover and every meter track in the System Monitor was a no-op.** The class was written against `--surface-hover`, a token that only lives in the extension panels' injected stylesheet — in the app Tailwind emitted **no rule at all** for it, and a class that resolves to nothing reads exactly like a class that works. 21 uses in the System Monitor alone: no hover feedback on any Processes, Services or Apps row, and the memory composition bar, the partition bars, the Performance sidebar sparklines and the Overview per-core strip all painted their track `rgba(0, 0, 0, 0)` — measured at a contrast ratio of **1.00** against the card, i.e. 24 CPU cores drawn as floating stubs with no frame behind them, which is what made the card look broken rather than idle. Defined once in `globals.css` as `color-mix(in srgb, var(--text) 8%, transparent)`, derived from the text colour exactly as `webview-shell.ts` does it — never from a panel colour, because some themes give `--panel` and `--panel-2` the same value and a hover mapped from either is invisible in precisely those themes. `tests/unit/web/tailwind-token-exists.test.ts` now fails on any colour class in that directory naming a token `globals.css` does not define.
37
+
38
+ - **The Services page answered a 500 on macOS and Windows instead of saying it could not read them.** `Bun.spawn` does not report a binary that is not on `PATH` through an exit code — it **throws synchronously**, and in the shared `defaultRunner` that call sat outside the `try`, so the exception escaped a function typed to return a `Promise<RunResult>`. Every provider built on that runner shells out to a tool belonging to one OS (`systemctl`, `plutil`, `powershell.exe`, `findmnt`, `xdg-user-dir`), so "the binary is absent" is the *normal* case on any other host — and for the Services page it meant the route threw, answered 500, and the page rendered the exception text, while the collector underneath it has a `supported: false` path and the page has a branch that says "this host has no service manager PPM can read". A missing binary now comes back as a run that failed (`code: null`, the message on stderr), which is the shape every caller already handles for a non-zero exit. Reproduced by taking `systemctl` off `PATH` — before: `THREW → Executable not found in $PATH: "systemctl"`; after: `supported: false` with a warning naming the reason on each scope. It was invisible on Linux, which is the only platform this repository can run, and `tests/unit/services/host-info/spawn-runner.test.ts` now spawns a missing binary for real rather than stubbing the thing under test.
39
+
40
+ - **The Services page is a table with column names you can sort by.** It showed five figures per unit with no header at all — the labels were `title` attributes, i.e. a tooltip you had to already suspect was there — so the fourth number along was unidentifiable, and 222 units could only ever be read in one order. It now carries Mission Center's own eight columns in its order (**Name, PID, CPU, Memory, Swap, Drive, GPU, GPU Memory** — PID and GPU Memory are new, and GPU no longer shares one cell with its memory), each a sticky header that sorts on click: descending, ascending, then back off to the page's own order. That third state matters and is why the cycle has one: the default is failed first, then running, then alphabetical, which is the reason the page is usually opened at all, and a sort that could only be replaced would have taken it away. Two rules are inherited from the Processes tab rather than reinvented. **An unmeasured figure sorts last in either direction** — 189 of this host's units have no `MainPID`, and ascending by PID must not read as "these units have the lowest one"; a unit that owns no processes is a real 0 and sorts among the numbers. And ties break on the unit name, because the list is rebuilt from a fresh array every 2 s tick and the hundred-odd units that all read 0% would otherwise trade places on every one of them.
41
+ - The columns arrive in a ladder on the panel's own width (`@container`, not the viewport — the window is routinely narrower than the screen): CPU and Memory first, then PID and Swap, then Drive, GPU and GPU Memory. All three of the header labels, the cell visibility and the grid template come from one table, because a column added to the header and forgotten in the template does not fail — it shifts every cell after it one track left, so the number under "Memory" is the swap figure and nothing says so. Verified by measuring: header and row templates identical, and all eight right edges matching to the pixel.
42
+
43
+ - **An Overview card opens the device it is about.** The five cards read a whole-machine figure each and the Performance page holds the per-device detail, but getting from one to the other meant changing tab, finding the device in a sidebar of twelve and clicking it — for a number you were already pointing at. Each card is now a button that switches to Performance with that device selected: CPU and Memory to themselves, a GPU card to its own GPU, and the Disk and Network cards to the **busiest** drive and interface, since those two cards show a machine-wide rate while the sidebar lists every device separately. Busiest rather than first, because `Disk 0` on this host is an idle Toshiba while the one doing the work is `Disk 1`, and by the metric each surface already prints — active time for a drive, raw throughput for an interface — so the page never contradicts the card that was clicked. A card with nowhere to go (a host reporting no drives at all) stays a plain frame rather than becoming a button that does nothing, and each button names itself ("Disk details") instead of letting a screen reader read the whole card as the control's name. On a phone the same tap lands *on* the device rather than on the list, which removed a piece of state rather than adding one: the panel no longer tracks whether it is drilled in, it asks whether a device is selected.
44
+
45
+ - **A dialog whose title is one long unbreakable string drew outside its own panel.** Opening a `.service` unit whose name is 60 characters with no spaces in it — `app-google\x2dchrome@8d02dd...service`, which is what systemd names a Chrome window — painted the title *over* the close button and ran the title and the log box past the right edge of the dialog, onto the page behind it. Measured: a 693px-wide column inside a 512px dialog. `DialogContent` is a CSS **grid**, and an implicit `auto` track takes its base size from its items' *min-content* contribution, so one 79-character log line widened the column and every child with it. Tailwind's `break-words` cannot prevent that — by specification `overflow-wrap` does not affect min-content size — so the column is now `minmax(0,1fr)`, whose base size is zero. Two smaller faults in the same dialog went with it: the close button is absolutely positioned over the header's first line, which now reserves that corner whenever the button is there; and the dialog's own `max-w-2xl` was **dead**, because the primitive caps width with a `sm:` variant that outranks a bare class at every width where it mattered — the dialog was 512px wide while its source said 672. `tests/unit/web/dialog-long-title.test.ts` pins all three.
46
+
47
+ - **The Overview cards are ruled like every other graph in the window.** `MetricChartCanvas` has carried Mission Center's 10x5 ruling all along and it defaults to off, which the five Performance detail pages all override and the five Overview cards did not — so an idle machine's CPU card was a flat line pinned near the bottom of an otherwise blank box, correct to the pixel (measured: ink at 86-89% down for a 7.4% reading) and reading as a rendering fault. The grid is what turns that empty space back into headroom.
48
+
49
+ - **A core waiting on the disk no longer reads as a core at 100%.** The Overview card's per-core strip drew one bar solid red, every tick, for a thread that was 3% busy — and the number behind it came out of `os.cpus()`, which cannot express the state it was in. libuv's Linux `uv_cpu_info` reads the `iowait`, `softirq` and `steal` columns of `/proc/stat` into a throwaway variable, so a core parked in iowait shows a *tiny* total delta with no idle in it: measured on this host, 6 jiffies of which 0 were idle, while the kernel reported 195 of 201 in iowait behind a 191 MB/s write. Busy came out as 6/6. The sample is now taken from `/proc/stat` directly, where iowait counts as not-busy (as `top` and Mission Center both have it) and softirq counts as kernel time instead of vanishing from the total — `os.cpus()` remains the fallback for every other platform. Re-measured against the kernel across all 24 threads afterwards, the worst disagreement is a point or two of sampling skew and that core reads 4% against 4%.
50
+
51
+ - **The Overview GPU card no longer claims an integrated GPU has zero VRAM.** It printed "VRAM 0 MB / 0 MB" for a UHD 770, which is a different statement from "this device has no dedicated memory" — and the Performance page's own GPU detail already rendered that case as an em dash, so the two disagreed about the same number on the same host.
52
+
53
+ - **A Mac with 8 GB of swap in use said nothing about swap at all.** `node:os` carries no swap figure, so off Linux `swapTotalMB`/`swapUsedMB` were simply absent — and the memory page renders an absent field as an em dash, i.e. as the claim that this host's swap cannot be measured. On macOS it can: `vm.swapusage` is one sysctl, and on the M1 Max this was found on it read **8039 MB of 9216 MB in use**, matching what the collector now reports to the megabyte on the same sample. Swap that is genuinely off stays a real `0` rather than becoming an em dash, because the UI hides the graph on a zero total and dashes only on `undefined`, and those are different claims. The cost was measured rather than assumed, since this runs on every tick: **1.33 ms**, against the 1.7 ms `/proc/<pid>/io` already costs per tick on Linux — and Linux pays none of it, because the `/proc/meminfo` branch returns before the reader is ever called.
54
+ - Not changed, and deliberately: the *used* figure itself. `os.freemem()` on darwin looks alarming — 97.9% used on that Mac — and it is right. macOS's own `top` reported `31G used … 75M unused` on the same machine at the same moment. The tempting correction is to add `vm_stat`'s inactive pages, or to follow `memory_pressure`, which called that machine "56% free"; that metric measures what could be reclaimed under duress, not free RAM, and taking it would have replaced a figure matching Activity Monitor with one contradicting it. Recorded in the source so the next reader does not re-derive the wrong conclusion.
55
+
56
+ - **The Details dialog told macOS users that running processes were dead.** Opening it on a Chrome renderer using 4.2% of the CPU — visible in the table behind the dialog — answered **“PID 72973 is no longer running”**. The reader was `/proc`-only and the service answered `null` for every other platform, which the route turned into a 404 carrying that sentence: correct on Linux, where a vanished `/proc/<pid>` really does mean the process exited, and simply false anywhere else. The two claims now travel separately — a host with no reader answers **501** saying so, and “no longer running” is said only when a process actually is.
57
+ - And macOS has a reader now, because it turns out `ps` answers **ten of the eleven fields**: parent, state, nice, user, executable, start time, threads, working directory, command line and name. Two of them arrive more directly than on Linux — `lstart` is a real timestamp rather than jiffies to be added to `btime`, and `user` is already the login name, so no `/etc/passwd` lookup is needed and it works across users. Only `cgroup` has no macOS equivalent and stays an em dash, which is the honest answer rather than an invented one. Cost, measured on an M1 Max: 29.7 ms for the first `ps`, then three concurrent calls (`ps -o command=`, `ps -M`, `lsof -d cwd`) at 30–38 ms — on-demand when the dialog opens, never on the tick.
58
+ - Two traps are pinned by tests rather than left to be rediscovered. The parse is **positional**, because macOS `ps` offers no delimiter and two fields contain spaces: `lstart` is always five tokens (a single-digit day pads with two, which a `\s+` split collapses) and `comm` must be last, since a path like `/Applications/Google Chrome.app/…/Google Chrome Helper (Renderer)` holds six spaces. And the state letters are **BSD's, not Linux's** — uninterruptible wait is `U` here where Linux writes `D`, and `Z` is not an edge case: this host had 126 zombies against 645 sleepers.
59
+ - Windows still has no reader; it now says that instead of claiming every process has exited.
60
+
61
+ - **"Up time —" on macOS and Windows, on hosts that knew perfectly well how long they had been up.** The CPU detail page takes `uptimeSec` from one writer, the Linux per-device collector reading `/proc/uptime`, and that collector is `null` on both other platforms — so the field was absent, and an absent field is drawn as an em dash, i.e. as the claim that the host cannot be asked. `os.uptime()` answers on all three (it reads `/proc/uptime`, `kern.boottime` and `GetTickCount64` respectively) and was used nowhere in the repository. It is now set while the snapshot is assembled, *before* `collectDevices` runs, so Linux's own finer reading is merged over it and that platform's number is unchanged to the decimal.
62
+
63
+ - **A missing language server has an Install button.** The editor named the server, printed a command and left the user to it — a shell, a package manager and a "then reopen this file" for something PPM can do itself. One press installs it and the open file picks the server up in place, with no reopen; the command stays underneath for anyone who would rather run it themselves. The rule it was written against still holds: nothing installs because a file was opened, and pressing a button that says Install is the user asking.
64
+ - **Into `<ppm dir>/lsp-servers`, never `-g`.** A global `typescript@5` replaces whatever TypeScript the user has installed globally, which PPM has no business doing, and a global bin directory is only found when it happens to be on the *service's* PATH — four entries for a systemd-started PPM here. PPM's own directory is neither, `PPM_HOME` already isolates it for tests, and `bun remove` is the whole uninstall. The same arrangement extensions have had since they shipped.
65
+ - Ten servers come from npm and get the button: TypeScript/JavaScript, Pyright, JSON, HTML, CSS, YAML, Bash, Intelephense, Vue and Svelte — each checked to answer `initialize` when started this way (23, 16, 12, 17, 16, 16, 11, 21, 21 and 24 capabilities respectively). clangd, Solargraph and lua-language-server keep a command to copy and no button: they come from a system package manager, i.e. a password prompt and a choice between pacman, apt and brew that PPM has no business making.
66
+ - **Go and Rust have the button too, and neither one is an `npm install` in disguise.** gopls is built by the host's own Go with `GOBIN` pointed at PPM's directory, so `~/go/bin` is left exactly as it was and the module and build caches stay where Go already keeps them (measured: 1.1 s with a warm cache, and the user's own gopls untouched). rust-analyzer is the deliberate exception to installing into PPM's directory at all — it is a rustup *component*, so PPM runs `rustup component add` **in the project's own directory** and keeps no copy: a private one would be the wrong server the moment a repository pins its own toolchain (1.9 s, landing in `~/.rustup/toolchains/<toolchain>/bin`).
67
+ - PPM installs language servers and never toolchains. Where there is no Go or no rustup there is no button at all, only the command — the check is `PATH`, deliberately, because that is the same `PATH` the server would inherit and be unable to run `go list` from.
68
+ - **`~/.cargo/bin/rust-analyzer` lies**: it is a rustup proxy that exists whether or not the component does — measured on a host with none installed, the symlink was there while `rustup which rust-analyzer` said `unknown binary`. Found on `PATH` it would report an installed server that prints that error and exits when spawned, which is a broken server rather than the missing one the button is offered for, so rustup is asked *before* `PATH` and its 3 ms answer is both the lookup and the installed-check. Related trap in the same area: `Bun.which` reads the `PATH` the process **started with** and never looks at `process.env.PATH` again, so a test cannot simulate a missing toolchain by emptying it — only the explicit `{ PATH }` option is live, which is what the lookup now passes.
69
+ - The browser sends a server **id**, and the packages are the registry's — nothing that reaches the route can name a package, a flag or a path. Two presses join one install rather than running two `bun add`s over one lockfile, and the install directory gets its own `package.json` first: measured, `bun add` in a directory with no manifest does not create one there, it walks *up* to the nearest parent that has one and installs into that.
70
+ - **Settings has a Language Servers pane of its own**, because the editor's button only ever appears on a file that already has no server — so setting a language up *before* opening anything in it was impossible, and there was nowhere to see what the machine actually has. It lists all 15 with their languages, which are installed, which are running right now, an Install button on each one PPM can install here, and the command to copy on the ones it cannot. It asks a deliberately machine-wide route (`GET /api/lsp/servers`): no project is open in Settings, so no project's `node_modules/.bin` is consulted and a rustup component lands in the default toolchain — a repository that pins its own is still served by the editor's button, which runs rustup inside that project. Both routers share one install handler, so the id-not-a-package-name property cannot hold on one and not the other. The on/off switch moved here from Appearance, where it was next to word wrap: a server installed while the feature is off does nothing, and the two belong on one pane.
71
+ - **Each of those rows has a Remove, and only the ones PPM installed do.** The gate is not whether the server is installed but *where it was found*, which is the same walk that decides which one gets started: a copy in the project's `node_modules` is the repository's, one on `PATH` is the user's own, and the TypeScript server PPM ships is its own dependency — removing any of the three would be PPM tidying up after somebody else, and the last would break the server a fresh install has. So those rows say `In project`, `On PATH` and `Bundled` where the others say `Installed`, which is also what explains the missing button.
72
+ - **One npm package can provide three servers**, and pressing Remove on JSON removes HTML and CSS with it — they are all `vscode-langservers-extracted`. That is not a thing to find out afterwards, so the confirmation names them: *"HTML and CSS come from the same npm package, so they go too."* Verified in a browser against a real install: one press, three rows back to Install.
73
+ - Each plan is undone by its own inverse — `bun remove` in PPM's directory, deleting the binary `GOBIN` put there (not `go clean -i`, which would reach into the user's module cache), and for rust-analyzer `rustup component remove`, which is again the one that leaves PPM's directory, for the same reason adding it did. Idle sessions for that server are shut down first; one with an editor open is left running, exactly as the session cap leaves it alone — a session that vanishes under a tab answers every later request with "no longer running" until it is reopened, and on Windows a running binary cannot be unlinked at all.
74
+ - **A compiled PPM could never reach the TypeScript server it ships**, which is what put that dialog in front of a user on a machine where PPM supposedly bundles one. `bundledServerEntry` resolves through `createRequire(import.meta.url)`, and in a compiled binary that URL is `file:///$bunfs/root/…`, so resolution falls back to the process's *current directory* — `~/.ppm` for the systemd unit. Measured: from inside the checkout it answers the real path, from anywhere else `null`, i.e. "TypeScript is not installed" on every release binary. Had it resolved, the spawn was `[process.execPath, entry]` — the PPM executable, which reaches PPM's own CLI, the same trap that made `<ppm> x @openai/codex app-server` die as "unknown command". Both of PPM's own copies now run through the bun that `resolveBunPath()` finds.
75
+
76
+ - **Speech to text for the chat mic, run on the host.** Whisper runs locally, so dictation works in any browser rather than only the ones that ship a speech API.
77
+ - **A master switch for the public tunnel**, so sharing can be switched off without uninstalling anything.
78
+ - **A prompt-cache countdown in the composer**, built from the window the API reports rather than guessed from the credential's shape.
79
+ - **The compaction notice says what it saved**, and warns before a turn would land on a cold cache.
80
+ - **Searchable pickers wherever a branch or repository is chosen** — branch review, Add Worktree, the repository picker, and a new status-bar control that checks out a branch or tag the way VS Code does.
81
+ - **Ctrl+` toggles the terminal panel**, the way VS Code does.
82
+ - **The account cards in the chat panel got a switch a thumb can hit.**
83
+
84
+ ### Fixed
85
+
86
+ - **A restart could leave PPM running with nothing listening on its port.** `systemctl restart` brings the new supervisor up while the outgoing one is still committing and checkpointing, and SQLite's default is to fail a contended lock **instantly** — measured, 0ms to `SQLiteError: database is locked`, against 1.5s-and-a-row for a connection that asks for a `busy_timeout`. Nothing in PPM asked for one; only the query audit's own database did, at 2s. The throw landed on the tunnel-config read in supervisor startup, arrived as an unhandled rejection, and ended startup at that line — **before** the edge forwarder, the process that owns the public port, was ever spawned. The server child came back 90 seconds later on its health check; the edge has no equivalent, because the probe that would respawn it is armed just after the spawn that never happened. So PPM sat there healthy on its loopback port and dark on 3210 for eight minutes, and the only way back was another restart. Two changes. Every connection PPM opens now sets `busy_timeout = 5000` — 5s rather than the audit's 2s, because one snapshot of a 300MB database measures ~1.2s and the wait has to cover a checkpoint plus whatever writes queued behind it. And that config read can no longer decide whether the edge is spawned: it falls back to **sharing off**, deliberately not to the resolver's own default, since an absent config row means "on" and a row that merely could not be read must never publish a tunnel for someone who had sharing switched off.
87
+
88
+ - **Codex disappeared from chat after a restart, and nothing on screen said why.** The provider is registered once, at startup, behind a probe that runs `bun x @openai/codex --version` — and bun re-fetches the npm manifest whenever its cached copy has gone stale, so a server restarting during a network blip probes a perfectly good install and is told `error: ConnectionRefused downloading package manifest @openai/codex`. Measured, that probe fails in **0ms**; the provider is then skipped for the whole life of the process, which on a machine running PPM as a service means until somebody thinks to restart it. There was nothing to notice it by, either: the composer hides its provider chip while only one provider is registered, so Codex did not render greyed out, it simply was not there — one line in the log was the entire record, while Settings went on showing a Codex tab, because a provider keeps its config entry once it has ever been configured. Registration is now retried on its own — 30s, 1m, 2m, 5m, then every 15 minutes, stopping the moment it succeeds and never armed at all for the one failure retrying cannot fix, a host with no bun. Verified against a real server pointed at an unreachable registry: probe 1 failed at 03:04:20, probe 2 registered at 03:04:50, no restart. Settings → AI now carries the reason on the provider's own tab with the time of the next automatic check and a **Check again** button, so the answer to "why is Codex not in the picker" is on the page rather than in `~/.ppm/ppm.log`.
89
+
90
+ - **PPM's own systemd unit was offered Stop, Restart and Disable.** `/proc/self/cgroup` is read whole, so its trailing newline landed on the innermost path segment and PPM never recognised itself in the list.
91
+ - **Starting a tunnel from the API ignored the master switch**, raising a public URL from the server process — which the supervisor never learns a pid for, so nothing reaps it until the next restart.
92
+ - **A stalled speech-to-text model download waited forever** rather than failing, with no way back but restarting the server. The timeout is on idleness, so a slow link still finishes a 1.5 GB model.
93
+ - **`git checkout <ref>` with no `--` read the ref as a pathspec** when no such ref existed, silently restoring every unstaged change under a directory of that name and exiting 0.
94
+ - **Uninstalling a language server left any other server sharing that install running** against files it no longer had.
95
+ - **Codex ran through the wrong executable when PPM is a compiled binary**, and read the account before waiting for a new sign-in to load.
96
+ - **PPM's own sessions were hidden from the SDK's session list** because its entrypoint had no name.
97
+ - **The idle notice quoted a number the SDK never reports.**
98
+ - **A database missing `codex_accounts` was left half-migrated.** One migration ran an unguarded `UPDATE` where every statement around it is wrapped, so the ladder threw partway through — and there is no transaction around it to undo the steps that had already run.
99
+ - **A host tool whose child outlived it made the five-second timeout do nothing.** Killing a process does not close its pipes, so reading its output went on until the grandchild exited: measured, the process was gone at 150 ms and the read took the full five seconds. The Services, drives and GPU pages could hang well past the bound they advertise.
100
+
3
101
  ## [0.23.6] - 2026-09-28
4
102
 
5
103
  ### Added
package/CLAUDE.md CHANGED
@@ -99,6 +99,9 @@ Related: `configService.save()`/`set()` throw when `load()` has not run, because
99
99
  - **Standalone Monaco's F12 into another file hijacks the current editor**: its default editor service, once a model exists for the target, swaps that model into the editor you are in. The tab keeps its old title and its old dirty state while showing another file's contents. `lsp-navigation.ts` replaces the binding and opens a real tab instead. Peek and find-references are left on Monaco's bindings — they render in place and never navigate — but they need a model to exist for the target, which is what the shadow models in `lsp-shadow-models.ts` are for; there is no public way to give standalone Monaco a model *resolver*, so providers create the models before returning locations.
100
100
  - **`Content-Length` in the LSP framing counts bytes, not characters**: one multi-byte character anywhere in a payload — a curly quote in a hover, a Vietnamese identifier, an emoji in a doc comment — makes a character-counting decoder cut the body short, fail to parse, then read the next message's header as body. The stream never recovers and it only happens for some files. Also bound the header search (`MAX_HEADER_BYTES`): a server writing a panic trace to stdout has no `\r\n\r\n` to find, so without a bound the decoder buffers forever and the session looks healthy while serving nothing.
101
101
  - **`typescript-language-server` needs TypeScript 5.x**: the 7.x line is the native port and ships no `tsserver.js`, so the server exits at `initialize` with "provides no tsserver". It reads like a broken install rather than the wrong major version, so the registry's install hint pins `typescript@5`.
102
+ - **A compiled PPM reaches none of its own `node_modules`, and is not bun**: `bundledServerEntry` resolves the TypeScript server it ships through `createRequire(import.meta.url)`, which in a compiled binary is `file:///$bunfs/root/…` — so resolution falls back to the process's **cwd**, and the systemd unit's cwd is `~/.ppm`. Measured: started from inside the checkout it answers the real path, started anywhere else `null`, i.e. "TypeScript is not installed" on every release binary and on the unit, for a server the repository does depend on. The second half is the same trap as `<ppm> x @openai/codex app-server`: `process.execPath` is bun only from source, so spawning `[process.execPath, entry]` runs *PPM's CLI* with a script path. Anything that runs a JS entry has to go through `resolveBunPath()` (`bunRuntime()` in `lsp-manager.ts`), and `installLanguageServer` needs it too — which is why a host with no bun at all is reported as not-installed rather than started and left to fail at spawn.
103
+ - **`bun add` in a directory with no `package.json` installs into the parent**: it does not create a manifest where it was asked to. Measured — in `<dir>/sub` with a manifest at `<dir>`, the package landed in `<dir>/node_modules` and `sub` stayed empty. Anything installing into a PPM-owned directory (`lsp-install.ts`, `extension-installer.ts`) must write that directory's own `package.json` first, or the packages appear somewhere above the PPM dir and every later lookup answers "not installed".
104
+ - **A `~/.cargo/bin` proxy exists whether or not the component does, and `Bun.which` cannot see a `PATH` you just set**: `~/.cargo/bin/rust-analyzer` is a symlink to rustup, present on any rustup install — measured on a host where `rustup which rust-analyzer` answered `unknown binary`, the symlink was right there. Found on `PATH` it reports an installed server that prints that error and exits at spawn, i.e. a *broken* server instead of the missing one the Install button is offered for, so `lsp-manager.ts` asks `rustupServerPath` **before** `Bun.which` and takes rustup's 3 ms answer as both the lookup and the installed-check. The same call is the reason a test cannot fake a missing toolchain: `Bun.which` reads the `PATH` the **process started with** and ignores every later write to `process.env.PATH` (so does `Bun.spawn`'s own resolution) — only the explicit `Bun.which(cmd, { PATH })` option is live, which is what `installToolPath` passes.
102
105
  - **Standalone Monaco can never turn semantic highlighting on from a theme**: `StandaloneTheme` hardcodes `semanticHighlighting = false` and never reads it from the `defineTheme` data (`IStandaloneThemeData` has no such field), while the `semanticHighlighting.enabled` option defaults to `'configuredByTheme'` — so tokens are fetched, decoded, and change nothing. The only switch is the editor option set to `true` (`code-editor.tsx`). Colours then resolve through the *same* rule trie as TextMate scopes: `getTokenStyleMetadata` joins the type and its modifiers with dots (`variable.readonly.local`) and `ThemeTrieElement.match` falls back segment by segment, so a type with no rule lands on the theme's default foreground — i.e. plain text where the regex tokenizer had colour. `src/web/theme/semantic-token-rules.ts` is that table, and it must cover names outside the specification: `typescript-language-server` sends **`member`** for methods, one of the most common tokens in a TS file.
103
106
  - **Monaco's bundled TypeScript service is off entirely, and `setDiagnosticsOptions` is not what does it**: that call silences the validator but leaves all **thirteen** providers in `modeConfigurationDefault` registered, so every `.ts` file had two completion lists and two hovers — the second from a worker that sees one file with no `tsconfig.json` and no `node_modules`. It also cost a *visible* stall: answering a hover at all means fetching `ts.worker.bundle.js` (**13 MB**, the whole TypeScript compiler), and Monaco's hover widget merges every provider and shows "Loading…" until the last one replies — so the real server's answer rendered in milliseconds and then sat behind a spinner. `setModeConfiguration` is the call that unregisters them (`monaco-builtin-typescript.ts`, asserted against Monaco's own default list so an upgrade adding a provider fails a test). Consequence, accepted: a buffer the LSP cannot serve — untitled, external, inline — falls back to word-based suggestions only.
104
107
  - **A button in a Monaco hover is a `command:` link in *trusted* markdown, and trust is all-or-nothing unless you narrow it**: a hover can only contain markdown, so the blame hover's actions are `[label](command:id?args)` links reaching ids registered with `monaco.editor.registerCommand`. The renderer *strips* those links unless the `IMarkdownString` is trusted — and `isTrusted: true` allows **every** command on the page's global registry. That hover embeds a commit message, so anyone who can land a commit could write `[click](command:...)` in one and have it render as a working button. Both defences are needed and both are in `blame-hover.ts`: `isTrusted: { enabledCommands: [...] }` (an array is honoured by `toAllowCommandsOption`), and escaping the message so it cannot form a link at all. `supportHtml` stays **off** — the avatar is `![](data:image/svg+xml,...)`, which renders inline at its intrinsic size, so no HTML has to be allowed for it. Escape `<` and `>` too: with `supportHtml` off the renderer does not leave an unknown tag alone, it drops the tag and keeps the text, so a message mentioning a literal `<script>alert(1)</script>` displayed as `alert(1)` — the message silently rewritten in the one view meant to show it verbatim.
@@ -156,6 +159,16 @@ Related: `configService.save()`/`set()` throw when `load()` has not run, because
156
159
  - **`opacity` is not a dimming level, it is a fade toward whatever is behind it — so one value cannot serve both modes**: the file explorer marked gitignored rows with `opacity-40`, which reads as a single decision and is not one. Measured against PPM's six built-in themes, that put a gitignored *filename* at **1.72–1.89:1** against the panel on the three light themes and 2.07–2.23:1 on the dark ones — unreadable on light, merely dim on dark, from the same class, so it reproduces only for whoever is on a light theme. A de-emphasised state has to be a **colour**: `--color-text-dim` is `color-mix(in srgb, var(--text-2) 50%, var(--text-3))`, which measures 3.59–5.21:1 across all six while staying visibly below `--text-2`. The file icon is then left alone entirely — those glyphs are `background-image` artwork with no `currentColor`, so an opacity on them is that same fade and nothing else, which is why the *folder* icon was the washed-out thing in the report. `tests/unit/web/explorer-ignored-contrast.test.ts` measures the hazard and the mitigation together and reads the mix out of `globals.css` rather than restating it, so the two cannot drift.
157
160
  - **Half of VS Code's compact folders is worse than none of it**: joining a single-child chain into one `a/b/c` row only makes sense if it happens on the way *in*, before the intermediate row is ever drawn. PPM's `flatten-visible-tree.ts` required both paths to be in `expandedPaths`, so it fired one gesture too late: clicking a folder made the row you clicked vanish upward into its parent and shifted everything below it a level left. `depth` is the load-bearing part — it becomes `paddingLeft`, so a compacted chain indented its children by how many rows were above them rather than by where they actually sit. It also leaked into four other files as an `effectiveNode`/`effectivePath` shadowing the real one (focus, range selection, the drop target, the inline-create target). One row per directory, always; `tests/unit/web/explorer-row-per-directory.test.ts` pins it.
158
161
 
162
+ - **A Tailwind colour class naming a token that does not exist emits no rule, and nothing reports it** — not the build, not the browser, not review. `bg-surface-hover` was written against `--surface-hover`, which only ever existed inside the extension panels' injected stylesheet (see the webview-theme entry above, where the app is explicitly described as having no hover token). In the app it resolved to nothing, so **21** uses in the System Monitor alone were silent no-ops: no hover feedback on any Processes/Services/Apps row, and the memory composition bar, the partition bars, the Performance sidebar sparklines and the Overview per-core strip all painted their track `rgba(0, 0, 0, 0)` — a contrast ratio of **1.00** against the card, which reads as a broken component rather than a missing colour. The tokens Tailwind can build a utility from are the `--color-*` declarations in `globals.css`'s `@theme` block and nothing else; `tests/unit/web/tailwind-token-exists.test.ts` pins that set against the classes `src/web/components/system` actually uses. Two related traps in the same file: derive a hover surface from `--text`, never from `--panel`/`--panel-2`, because some themes give those two the same value; and `MetricChartCanvas`'s `grid` prop defaults to **off**, which every Performance detail page overrides and the five Overview cards did not — an idle CPU card is then a correct flat line in a blank box, which reads as a rendering fault.
163
+
164
+ - **A dialog is a CSS grid, so one unbreakable string inside it widens the whole panel — and `break-words` cannot stop that**: `DialogContent`'s implicit `auto` column takes its base size from its items' **min-content** contribution, and `overflow-wrap: break-word` is defined *not* to affect min-content size. A 79-character log line in the Services unit dialog therefore sized the column at **693px inside a 512px dialog**, and the title and the log box drew outside the panel over the page behind it — with `word-break: break-all` on the title all along, which is irrelevant because the title was never the widest item. The column is `grid-cols-[minmax(0,1fr)]` (base size zero); anything that still does not fit then overflows *itself*, which for a scroll container is a scrollbar and for text is a wrap. Two traps ride along. The close button is `absolute top-4 right-4`, i.e. over the header's **first line**, so any title long enough to reach the corner renders under the X — the header reserves `pr-8`, but only when the button is rendered (`showCloseButton &&`), since the padding would otherwise shift the `text-center` header below `sm`. And a caller's own width class is usually **dead**: the primitive caps at `sm:max-w-lg`, so a bare `max-w-2xl`/`max-w-xl`/`max-w-md` emits a rule that loses to it at every width above 640px — ~10 dialogs in the app say a width their source does not render, and the fix is to pass `sm:max-w-*`. Verify a fix by *measuring* in a browser (`gridTemplateColumns`, `getBoundingClientRect` of the title against the close button and against the panel), not by reading the classes: all three of these look correct in review.
165
+
166
+ - **`Bun.spawn` throws on a missing binary rather than reporting it, and every per-OS tool is a missing binary somewhere**: it raises `Executable not found in $PATH` *synchronously*, so a `try` placed around the awaited output — the natural reading order — never sees it and the exception escapes a function typed `Promise<RunResult>`. `src/services/host-info/spawn-runner.ts` is shared by the `systemctl`, `plutil`, `powershell.exe`, `findmnt` and `xdg-user-dir` providers, i.e. by five tools that are each absent on two of the three platforms, and there the throw turned the Services page on macOS and Windows into a 500 showing the exception — past a collector that answers `supported: false` and a panel that has a branch for exactly that. A missing binary is returned as a *failed run* (`code: null`, message on stderr) because that is the shape callers already branch on; `gpu-collector-nvidia.ts` had been carrying its own `try` around the same hazard all along, which is the tell that it was known and not generalised. Two things to take from it. Reproduce a platform you do not have by removing what it lacks — `env PATH=/nonexistent bun -e '…'` took the Services collector from `THREW` to `supported: false` in one command, and no amount of reading the file would have. And the narrowed spawn type has to be preserved when the call moves into a `try`: `ReturnType<typeof Bun.spawn>` widens `stdout` back to a union with a raw fd that `new Response()` rejects, so name a helper and take `ReturnType<typeof helper>`.
167
+
168
+ - **A platform's memory figure can look wrong and be right, and `memory_pressure` is the trap**: `os.freemem()` on darwin reports only truly-free pages — 124 MB on a 32 GB M1 Max — which reads as a broken collector until you check the platform's own tool. `top` said `PhysMem: 31G used (3523M wired, 11G compressor), 75M unused` on the same host at the same moment, i.e. PPM already agreed with Activity Monitor. The correction that suggests itself is `memory_pressure`, which called that machine **"56% free"** — it measures what could be reclaimed under duress, not free RAM, and adopting it would have swapped a figure matching Activity Monitor for one contradicting it. `vm_stat`'s `inactive` (8.5 GB there) is the same mistake in another form: macOS counts it as used, Linux's `MemAvailable` would not. Compare against the *platform's own* headline number before "fixing" anything. What was genuinely missing on darwin was **swap**, which `node:os` does not carry at all and `vm.swapusage` answers in one sysctl (`memory-darwin.ts`, 1.33 ms/tick, measured); it was rendering as an em dash on a Mac with 8 GB swapped.
169
+
170
+ - **A platform gap parked as `null` becomes a *lie* the moment its caller has only one sentence for `null`**: the process Details reader was `/proc`-only and answered `null` everywhere else, and the route already spelled `null` as `PID <n> is no longer running` — true on Linux, where a vanished `/proc/<pid>` really is an exited process, and false on macOS, where it reported a renderer using 4.2% of the CPU as dead. A placeholder is only safe while nothing downstream *interprets* it, so give the unsupported case its own answer (`supportsProcessDetails()` → 501) before writing the `: null`. The gap itself was smaller than it looked: `ps` answers **ten of the eleven fields** on darwin (`process-details-darwin.ts`), two of them more directly than Linux — `lstart` is a real timestamp rather than jiffies to add to `btime`, and `user` is the login name already, so it works across users with no `/etc/passwd` lookup. Only `cgroup` has no equivalent. Three traps in the parse, all silent: macOS `ps` offers **no delimiter**, so fields are taken **positionally** — `lstart` is always five tokens (a single-digit day pads with two spaces, which a `\s+` split collapses rather than dropping) and `comm` must be **last**, since a path like `/Applications/Google Chrome.app/…/Google Chrome Helper (Renderer)` holds six spaces; `-M` may **not** be combined with `-o` (it prints the chosen columns *and* thread-layout leftovers on one line, which parses as nonsense instead of failing), so the thread count is a second call against the default format; and the state letters are **BSD's, not Linux's** — uninterruptible wait is `U` where Linux writes `D`, and `Z` is not an edge case (126 zombies against 645 sleepers on a normal desktop). Same family as the `Bun.spawn`-throws bullet above: reproduce a platform you do not have by taking its tools away, and verify the result against that platform's own output.
171
+ - **Whisper invents speech out of silence, and in Vietnamese it invents the same YouTube outro every time**: six seconds of digital silence transcribes as "Hãy subscribe cho kênh Ghiền Mì Gõ Để không bỏ lỡ những video hấp dẫn" on both `small` and `large-v3-turbo`, and pink noise as "Cảm ơn các bạn đã theo dõi và hẹn gặp lại." — so the Silero VAD model (885 KB) is downloaded beside every speech model and `--vad` is not a tuning knob: with it both come back empty, and in 0.3s rather than seconds. Four more traps in the same install. The browser's own recording is **not** a format whisper.cpp can read — Chrome records Opus in WebM, Firefox Opus in Ogg, Safari AAC in MP4, while whisper reads wav/flac/mp3/Vorbis-ogg — so the conversion is done in the browser (`recordingToWav`, an `OfflineAudioContext` at 16 kHz, which is also what makes the upload 32 KB/s), because doing it on the host would mean requiring ffmpeg there as well. The published Linux build needs **glibc 2.34** and GCC 11's libstdc++, so on an older host (Ubuntu 20.04 is 2.31) every file downloads fine and only the first sentence fails — the installer runs `whisper-cli --help` once so that surfaces as an install error naming the cause. macOS has **no** CLI in the release at all (its asset is an xcframework, a library for Swift apps), so a Mac installs Homebrew's `whisper.cpp` and PPM looks for `whisper-cli` at `/opt/homebrew/bin` and `/usr/local/bin` as well as on PATH — a launchd-started PPM has neither prefix in its PATH. And whisper.cpp defaults to **4 threads**, which is worth raising and worth capping: on a 24-thread i9-12900K a 10s clip took 12.0s at 4 threads, 8.1s at 8, 5.6s at 16 and 5.4s at 24. The VAD is not quite the end of it either: it stops every non-speech clip measured here (silence, white noise at four levels, 50 Hz hum, a 440 Hz tone, brown noise, typing, a cough, a breath, room tone — each of which *without* it comes back as that same one sentence, byte for byte), but a live install still produced it, so `whisper-hallucinations.ts` drops the invented sentence by whole segment — `-nt` prints one line per segment, which is what makes dropping one safe when real speech sits either side. The two knobs that look like the fix are not: `--suppress-nst` changes nothing at all, and `-nth 0.3` empties the invented sentence **and** a perfectly clear 10s dictation with it.
159
172
  - **MCP sign-in works in SDK mode, through methods `sdk.d.ts` does not declare**: a server the CLI reports as `needs-auth` (an HTTP server with OAuth such as Vanta, every plugin connector) used to be unusable from PPM because the CLI's `/mcp` screen does not exist without a terminal — and the model, reading the CLI's own "this session is non-interactive" hint, told users to go and open one. The `Query` object in fact carries `mcpAuthenticate(name, redirectUri?)` and `mcpSubmitOAuthCallbackUrl(name, url)` (in `sdk.mjs`, stripped from the typings), and a **prompt-less** streaming `query()` answers them — and `mcpServerStatus()` — in about a second with no model call. `src/services/mcp-oauth/` runs each sign-in in a subprocess of its own, and that process has to outlive the dialog's request: with the default `redirectScheme: "localhost"` the CLI's callback listener lives *inside* it, so closing it early strands the browser on a dead page. An https origin gets `redirectUri` pointed at PPM's public `GET /api/mcp-auth/callback` instead, which is what makes a phone over a tunnel work (Vanta accepts it); plain http falls back to the localhost listener plus a paste box. Four traps. The tokens land in the CLI's shared credential store, so a *running* chat still reports the server `needs-auth` until `reconnectMcpServer` is called in it — `chat-mcp-sign-in-sync.ts` does that, and drops an idle subprocess that still cannot see them. claude.ai connectors (`claude.ai <name>`, scope `claudeai`) answer "Server not found" to `mcp_authenticate` in SDK mode, so the UI sends them to claude.ai's connector settings rather than starting a flow that cannot succeed. The expiry timer only starts once there is a link, so `mcpAuthenticate` and the status probe's reads are wrapped in `withTimeout` — a CLI that never answers would otherwise hold its subprocess for as long as PPM runs, and every caller shares the probe. And in an e2e, Bun's `fetch` reuses a pooled socket the server has already closed after a long idle stretch, so a request silently never arrives: that read as a hung sign-in until the server log showed no `starting sign-in` line for it — `tests/e2e/mcp-sign-in-e2e.mjs` sends `Connection: close`. `tests/unit/services/mcp-oauth-flows.test.ts` greps `sdk.mjs` for the undeclared methods so an SDK upgrade that renames them fails a test rather than the button.
160
173
 
161
174
  - **A design canvas trusts a message for its nonce, not its source, and the frame only ever proposes writes**: a `sandbox="allow-scripts"` frame can still navigate itself, and the page it lands on *is* the iframe's `contentWindow`, so an `event.source` check alone accepts a foreign page. The parent also requires the per-load nonce (`?n=`), the bridge blocks link clicks and `navigate` in the frame, and `connect-src` own-source plus the 3 s liveness reload are the boundary (`'unsafe-eval'` adds nothing `'unsafe-inline'` does not). A shell `frame-src` would hard-block self-navigation but also stop html-preview frames following external links; that decision is still open, so no shell header is sent. A `transform-commit` is written only if `design-transform-proposal.ts` finds Move on, the parent's own target, the `ready` gen and `navigator.userActivation.isActive`, and the server then re-checks gen and tag and rate-limits. The same parent-window rule is why a design tab is never popped out (`NON_POPPABLE_TAB_TYPES`): in PiP the iframe's parent would be the PiP window.
@@ -170,6 +183,7 @@ Related: `configService.save()`/`set()` throw when `load()` has not run, because
170
183
  - **A PreToolUse hook verdict needs `hookSpecificOutput.hookEventName: "PreToolUse"`**: the bundled CLI reads `permissionDecision` only when the event name matches ("Hook returned incorrect event name" otherwise), so without it a Deny the user clicked did not block the tool. `preToolUseDecision()` in `claude-agent-sdk-query-options.ts` builds every verdict.
171
184
  - **Playwright's `evaluate` is a user gesture, and so is every poll**: `navigator.userActivation.isActive` turns true for about 5 s after a `frame.evaluate`, in the parent too, so a "no gesture" test that polls for its result re-arms the activation it is testing and the forged write goes through. `design-mode-e2e.mjs` posts the forgery from a page timer 7 s after the last evaluate and reads the outcome from console messages, which Playwright observes without touching either document.
172
185
  - **pptxgenjs 4.x takes `rectRadius` in inches**: its typings say 0–1, but the writer converts inches into OOXML's fraction of the shorter side, so a fraction gives almost square corners. `pptx-slide-mapper.ts` converts px to inches and clamps to half the shorter side.
186
+ - **A browser-cache hydrator in a lazy chunk registers after boot hydration has finished**: `hydrateProjectCache` (`src/web/lib/browser-cache/project-cache-hydration.ts`) runs once per project at boot and on `switchProject`, but `slash-items-cache.ts` loaded only with the lazy chat chunk, so it registered after the project was already marked hydrated. Its IndexedDB copy was never read, and the `/` list waited for the network after every reload, while every unit test passed. Registration now runs a late hydrator for projects that are already hydrated, and `app.tsx` imports the slash cache eagerly. A new cache owner needs the same check. Related: a new chat tab is resolved in `panel-store.openTab` rather than in the gate, because the gate's `pending` is a prop and anything it does in render or in an effect lands after the first paint.
173
187
 
174
188
  ## UI Rules
175
189
 
@@ -206,6 +220,12 @@ Before planning or implementing a new feature, read `docs/project-roadmap.md` to
206
220
  - `src/services/fs-ops/` — Guarded whole-disk filesystem operations (`/api/fs/*`) behind PPM auth
207
221
  - `src/services/host-info/` — Per-OS drives/known-folders/pinned-folders providers (`/api/system/host`)
208
222
  - `src/services/system-metrics/` — Task Manager backend (`/api/system/resources*`): per-OS collectors, one long-lived PowerShell child on Windows (never spawn per tick — 32 MiB commit leak each), light/full SSE tiers with leases, guarded kill. UI in `src/web/components/system/` (floating window on desktop, tab on mobile)
223
+ - Mission Center's pages are ported on top of it. Per-device collectors (`disk-devices-linux.ts`, `net-devices-linux.ts`, `gpu-devices-linux.ts`, `cpu-details-linux.ts`, `memory-linux.ts`, `fans-linux.ts`) feed the Performance page's device sidebar; the static labels beside them (DIMM vendors, disk models and serials, link speeds, driver/API versions) come from `hardware-inventory.ts` + `udev-db.ts` and are sent once, not per tick. Per-process GPU is DRM fdinfo (`gpu-fdinfo-linux.ts`). Signals are `signal-request-handler.ts` → `signal-executor.ts` behind the same parse → re-query → identity → guard sequence as the kill path, and `process-details-linux.ts` is the Details dialog.
224
+ - `src/services/system-services/` is the Services page (`/api/system/services*`, routes in `src/server/routes/system-services.ts`): **two** `systemctl` spawns per scope — `list-units` plus one bulk `show` — never one per unit, with `journalctl -o json` behind the per-unit log. There is no D-Bus in Bun, which is why this shells out at all. Pass each unit as its own argv element after `--`: `-.mount` begins with a dash.
225
+ - An application is not a process: `app-rows.ts` folds processes into apps by the systemd app cgroup they live in (`app-<desktop-id>[-<pid>].scope`, `app-<id>@<hash>.service`), and `/api/system/app-icon/:id` serves that app's own desktop-entry icon. That route is the one place the `?token=` query fallback in `middleware/auth.ts` was widened to — an `<img>` cannot send an `Authorization` header — and it is only safe because it takes an **app id, never a path**. Keep it that way.
226
+ - A pid names its Services row through `serviceKeyFromCgroup` in `system-services/app-cgroup-linux.ts`, which answers `"<scope>:<unit>"`. Three traps, all silent: the **innermost** unit wins (a user service nests under `user@1000.service`, so the outer one would put every desktop process on one row); living under `/user.slice/` does **not** make a unit a user one (`session-2.scope` and `user@1000.service` are both system units); and the scope is part of the key because `dbus-broker.service` exists in **both** scopes on an ordinary desktop. The Services page then sums the tick's own process rows in the browser (`services/service-resources.ts`) rather than recomputing rates in the services route, which has no counter state and would give one process two different figures on two pages of one window. A fourth trap lives on that side: a unit with no rows is only an em dash if it OUGHT to have processes, and neither `ActiveState` nor `SubState` answers that alone — systemd calls a mount `active (mounted)`, a finished oneshot `active (exited)` and a **listening socket `running`**, so going by the first dashed 97 of this host's 222 rows and going by the second still dashed 14. `resourcesFor` requires `SubState === "running"` **and** a `.service`/`.scope` unit, because a socket's processes live in the service it activates and its own `MainPID` is empty.
227
+ - **`os.cpus()` cannot express a core that is blocked on I/O**, and the failure is a *confident wrong number* rather than a gap: libuv's Linux `uv_cpu_info` reads the `iowait`, `softirq` and `steal` columns of `/proc/stat` into a throwaway, so a core parked in iowait reports a tiny total delta with no idle in it and `(total-idle)/total` comes out **100%** — one bar of the Overview per-core strip drew solid red, every tick, for a thread that was 3% busy behind a 191 MB/s write. `cpu-memory-collector.ts` samples `/proc/stat` itself (`parseProcStatCores`) and keeps `os.cpus()` as the off-Linux fallback; iowait is folded into not-busy the way `top` and Mission Center both have it, and softirq is counted as kernel time rather than dropped from the total. Do **not** also add `guest`/`guest_nice`: the kernel already counts them inside `user`/`nice`, so summing them deflates every percentage on a host running VMs. The whole-machine `total` hid this — one core's 6-jiffy window barely moves a sum over 24 — so verify per-core figures against `/proc/stat` directly, never against the total.
228
+ - The contract everywhere here is **`undefined` = cannot measure**, and the UI renders that as an em dash. Never substitute `0`: "this GPU has no dedicated memory" and "this GPU has 0 MB of memory" are different claims, and `tests/unit/web/overview-gpu-card-vram.test.tsx` pins the difference.
209
229
  - `src/services/db-backup/` — verified `VACUUM INTO` snapshots of `ppm.db` (hourly + at start + before every migration), GFS retention, `ppm backup` / `ppm restore`
210
230
  - `src/services/remote-desktop/` — Remote Desktop: one ffmpeg per WS session (`remote-desktop-capture.ts` + per-platform `remote-desktop-capture-input.ts` + `remote-desktop-encoder-args.ts`) → Annex-B H.264 access units → WebCodecs; input via `remote-desktop-input.ts` facade over `remote-desktop-input-{win32,darwin,linux,uinput}.ts` (bun:ffi, no helper binary); host checklist in `remote-desktop-requirements.ts` (ffmpeg install command, macOS TCC pre-flight, Linux session/XTEST/uinput rows); display list in `remote-desktop-displays.ts` (`CGGetActiveDisplayList` order = avfoundation `Capture screen N`, names/bounds via one JXA call; X11 monitors via `XRRGetMonitors`). Linux specifics: `remote-desktop-linux-session.ts` decides X11 vs Wayland and resolves `DISPLAY`/`XAUTHORITY`, `remote-desktop-x11.ts` is the shared Xlib connection, `remote-desktop-evdev-key-map.ts` is the one key table both Linux backends use. Clipboard sync is `remote-desktop-clipboard.ts` (host side, one helper process per read/write) and `src/web/components/remote-desktop/remote-desktop-clipboard-client.ts` (which key combos mean copy/paste, plus the insecure-origin copy fallback). The in-session controls are `remote-desktop-toolbar.tsx` (desktop, RustDesk's grouped menus) and `remote-desktop-mobile-toolbar.tsx` + `remote-desktop-mobile-settings.tsx` (thumb zone), with the scale maths in `remote-desktop-view-style.ts`. Host audio is `remote-desktop-audio.ts` (a second ffmpeg, Opus in Ogg) demuxed by `remote-desktop-ogg-opus.ts` and played by `use-opus-audio-player.ts`; privacy mode is `remote-desktop-privacy.ts` (X grabs + DPMS); host resolution is `remote-desktop-resolution.ts` (XRandR FFI) with the menu collapse and the fit-local decision in `remote-desktop-resolution-list.ts`; the custom image-quality maths ported from RustDesk's `video_qos.rs` are `src/shared/remote-desktop-custom-quality.ts` behind `remote-desktop-custom-quality-dialog.tsx`; screenshot/recording are `remote-desktop-recording.ts` + `use-remote-desktop-recorder.ts` (client-side `MediaRecorder` over the canvas). Codec choice comes from `workingEncoders()` in `media-transcode/ffmpeg-capabilities.ts`, which probes *every* candidate rather than short-circuiting. Routes `src/server/routes/remote-desktop.ts`, WS `src/server/ws/remote-desktop.ts`, UI `src/web/components/remote-desktop/`, e2e `tests/e2e/remote-desktop-e2e.mjs`
211
231
  - `src/services/git-hunks/` — hunk/line-level stage, unstage and discard (`/api/projects/:name/git/{hunks,stage-hunks,unstage-hunks,discard-hunks}`). `unified-diff.ts` holds the patch surgery (recomputed `@@` counts, unselected deletions demoted to context); the UI is `src/web/components/git/hunk-stage-dialog.tsx`
@@ -213,12 +233,13 @@ Before planning or implementing a new feature, read `docs/project-roadmap.md` to
213
233
  - `src/web/lib/icons.ts` + `src/web/lib/icons.generated.tsx` + `src/web/lib/fluent-icon.tsx` — the product icons (Fluent System Icons 20px Regular, MIT, microsoft/fluentui-system-icons) for the app's own chrome. Every UI icon is imported from `@/lib/icons`; regenerate with `bun scripts/gen-product-icons.ts` after editing its `MAP`
214
234
  - `src/server/routes/static-fallback.ts` + `src/web/components/root-error-boundary.tsx` + `src/web/lib/chunk-recovery.ts` + the inline watchdog in `src/web/index.html` — the four halves of not going blank when a chunk is missing: 404 instead of the shell, a boundary above `App`, one guarded purge-and-reload on `vite:preloadError`, and a dependency-free last resort for when the entry never ran at all
215
235
  - `src/web/lib/file-icons.tsx` + `src/web/lib/file-icon-name.ts` + `src/web/lib/file-icons.generated.ts` + `src/web/styles/file-icons.generated.css` — the file icon theme (real `vscode-icons` artwork, MIT). `FileIcon` for a component slot, `fileIconElement` for the `icon: ElementType` slots (tab bar, command palette, both through `src/web/lib/tab-type-icons.ts`). Name resolution is the pure half in `file-icon-name.ts` (importable under `bun:test`); the framework preset comes from `src/web/stores/project-framework-store.ts`. Regenerate with `bun scripts/gen-file-icons.ts`
216
- - `src/services/lsp/` — language servers for the editor. `server-registry.ts` says which binary serves which language and how to find it (project `node_modules/.bin` before PATH), `lsp-protocol.ts` is the `Content-Length` framing, `lsp-session.ts` owns one child process, `lsp-manager.ts` decides how many exist and shares them by *server + root directory*. Bridge at `src/server/ws/lsp.ts` on `/ws/project/:name/lsp`, status at `/api/projects/:name/lsp/status`. Browser side in `src/web/lib/lsp/` (client, Monaco conversions, providers, shadow models, F12 navigation) driven by `src/web/hooks/use-lsp.ts`. All of it is behind the `lspEnabled` setting — off by default, per device, never on below the `md` breakpoint — and mounted by `src/web/components/editor/editor-language-service.tsx`, which `code-editor.tsx` may only reach through `lazy()`. Real-server check: `bun tests/e2e/lsp-e2e.ts`
236
+ - `src/services/lsp/` — language servers for the editor. `server-registry.ts` says which binary serves which language and how to find it (project `node_modules/.bin`, then PATH, then PPM's own directory), `lsp-protocol.ts` is the `Content-Length` framing, `lsp-session.ts` owns one child process, `lsp-manager.ts` decides how many exist and shares them by *server + root directory*. `lsp-install.ts` is the Install button's host half, one plan per server: `bun add` of the registry's packages into `<ppm dir>/lsp-servers` — never `-g` — `go install` with `GOBIN` pointed at that same directory, and for rust-analyzer alone `rustup component add` **in the project's directory**, keeping no copy because the component belongs to whichever toolchain that project selects. All three behind `POST /api/project/:name/lsp/install`, which takes a server **id** and never a package name; a toolchain PPM cannot find means no button rather than one that fails; the browser side is `retryUnavailableLspDocuments()` in `lsp-client.ts`, which reopens the files that had no server so an install needs no reopened tab. The same pair exists machine-wide at `/api/lsp/{servers,install}` for `settings/language-servers-section.tsx` — Settings is open on no project, so nothing project-local is consulted there — and that pane reaches the client through a **dynamic** import, because the lazy-boundary test scans all of `src/web`. That pane's Remove (`POST /api/lsp/uninstall`, Settings only — the editor's dialog is only ever shown for a *missing* server) is gated on `origin` from `availability()`, which is where `resolveCommand` found the server: only `ppm` and `rustup` may be removed, because a copy on `PATH` is the user's, one in a project is the repository's and `bundled` is PPM's own dependency. One npm package can serve several rows (`vscode-langservers-extracted` is JSON + HTML + CSS), which `serversSharingInstall` names so the confirmation can say so before the removal takes all three. Bridge at `src/server/ws/lsp.ts` on `/ws/project/:name/lsp`, status at `/api/projects/:name/lsp/status`. Browser side in `src/web/lib/lsp/` (client, Monaco conversions, providers, shadow models, F12 navigation) driven by `src/web/hooks/use-lsp.ts`. All of it is behind the `lspEnabled` setting — off by default, per device, never on below the `md` breakpoint — and mounted by `src/web/components/editor/editor-language-service.tsx`, which `code-editor.tsx` may only reach through `lazy()`. Real-server check: `bun tests/e2e/lsp-e2e.ts`
217
237
  - `src/web/components/problems/` + `src/web/stores/problems-store.ts` — the Problems panel: a dock tab (`DOCK_ALLOWED_TAB_TYPES`) fed by every mounted editor's `useLsp`, opened from the status bar counts on desktop and the editor's LSP row on mobile. Scoped to the active project because `tab-pool` keeps other projects' editors mounted for keep-alive, so their servers keep publishing
218
238
  - `src/services/git-blame/` — `git blame --porcelain` for the editor's inline annotation (`/api/projects/:name/git/blame`); shared shape and formatting in `src/shared/blame.ts`, editor wiring in `src/web/hooks/use-inline-blame.ts`. The annotation's GitLens-style hover adds one `git show --unified=0` per commit *and line* (`/git/commit-line`, parsed by `commit-line-diff.ts`), with the markdown built in `src/web/lib/blame-hover.ts` and its buttons registered in `blame-hover-commands.ts`, which hand off to the Git Graph extension's own views over `ext:command:execute`
219
239
  - `dist/web` asset pipeline — `scripts/copy-monaco.ts` stages `monaco-editor/min/vs` under `dist/web/assets/monaco/` (inside `assets/` so it inherits the immutable cache header, the SW runtime cache and the compressed siblings), `scripts/precompress-web.ts` writes `.br`/`.gz` siblings, and `src/server/routes/static-encoding.ts` chooses one per request (honouring `q=0` and `*`, keeping the original MIME, adding `Vary: Accept-Encoding` and the encoding in the ETag). Both scripts run after `build:web` in the `build` chain
220
240
  - `src/web/components/extensions/` — the webview host. `extension-webview.tsx` matches a panel to a tab and mounts its HTML as a sandboxed `srcDoc`; `webview-theme.ts` injects PPM's applied theme into it (mode attribute + token block) and forwards later theme changes by `postMessage`
221
241
  - `scripts/gen-nerd-font.ts` + `src/web/styles/nerd-font.generated.css` + `src/web/styles/fonts/` — the terminal's icon glyphs (Nerd Fonts symbols-only, MIT, ryanoasis/nerd-fonts), subset per icon set so each `@font-face` is fetched only when something draws a character in its range. Regenerate with `bun scripts/gen-nerd-font.ts` after editing its `BLOCKS`; `TERMINAL_FONT_FAMILY` in `src/web/lib/editor-font.ts` is what names the family, and `use-terminal.ts` is what invalidates xterm's glyph atlas when a face lands
242
+ - `src/services/speech-to-text/` — speech to text for the chat mic, run on the host. `whisper-catalog.ts` pins the whisper.cpp build and every model by SHA-256, `whisper-download.ts` streams and hashes in one pass onto a `.part` file, `whisper-install.service.ts` installs under `<ppm dir>/whisper` and proves the binary runs before calling it installed, `whisper-transcribe.service.ts` is one `whisper-cli` run per request (serialised — two at once just make both slow), with `whisper-hallucinations.ts` dropping the sentences the model invents as a second line of defence behind the VAD. Routes `src/server/routes/speech.ts`, browser side `src/web/hooks/use-whisper-voice-input.ts` + `src/web/lib/voice-wav.ts`, Settings pane `src/web/components/settings/voice-settings-section.tsx` (the engine choice only appears once it is installed), e2e `bun tests/e2e/whisper-e2e.ts`
222
243
  - `src/services/mcp-oauth/` — MCP sign-in for `needs-auth` servers: `mcp-oauth-flows.ts` (one prompt-less Claude subprocess per flow, opened by the provider's `openMcpControlQuery`), `mcp-status-probe.ts` (cached per-directory status), `mcp-oauth-redirect.ts` (pure redirect/host rules). Routes `src/server/routes/mcp-auth.ts` (public `GET /api/mcp-auth/callback` mounted before auth), chat sync `src/server/ws/chat-mcp-sign-in-sync.ts`, UI `src/web/components/mcp-auth/` (dialog/bottom sheet, chat bar, the list shown in Settings → AI Provider and the AI Resources panel), e2e `tests/e2e/mcp-sign-in-e2e.mjs`
223
244
  - `src/services/named-tunnel/` — Named tunnel (stable `https://<prefix>.<zone>` URL via Cloudflare login), orchestrated from `src/server/routes/named-tunnel.ts`, spawned/probed by the supervisor; UI in `src/web/components/tunnels/named-tunnel/`
224
245
  - `src/services/design/` — Design mode: a design is `designs/<slug>/` with its canvas data in the git-ignored, unwatched `.design/`. `design-store.service.ts` (folders, `design.json`), `design-snapshots.service.ts` + `design-restore.service.ts`/`design-restore-journal.ts` (history, crash-safe restore), `design-turn-snapshot.ts` (a snapshot after each design turn, scheduled from `chatService.sendMessage`), `design-instructions.ts` + `design-tool-policy.ts` (the per-turn instructions `chatService.prepareSendOptions` adds, and the `acceptEdits` policy), `preview/` (capability tokens, CSP, parse5 `data-ppm-id` instrumentation, print view), `bridge/` (the in-frame script, shipped as source), `source/` (the patchers behind tweaks and move/resize), `comments/`, `export/` and `design-edit-undo-journal.ts`. Routes `src/server/routes/designs.ts` with its `design-*.ts` sub-routers, and `design-preview.ts` for the canvas; protocol `src/shared/design-bridge-protocol.ts`; UI `src/web/components/design/` with client helpers in `src/web/lib/design/`; docs `docs/architecture/workspace-and-ui.md` → Design mode; e2e `tests/e2e/design-mode-e2e.mjs` (fixture server and scripted provider in `tests/e2e/fixtures/design-mode-server.ts` / `design-script-provider.ts`)
package/Dockerfile.test CHANGED
@@ -26,7 +26,14 @@ WORKDIR /app
26
26
  COPY package.json bun.lock ./
27
27
  COPY packages/ext-git-graph/package.json packages/ext-git-graph/
28
28
  COPY packages/vscode-compat/package.json packages/vscode-compat/
29
- RUN bun install --frozen-lockfile
29
+ # `--network-concurrency 4`, because at the default the extraction step fails outright
30
+ # perhaps one build in two — and it names a different package each time (`mermaid`,
31
+ # `@esbuild/linux-x64`), which is what says it is contention rather than a bad tarball:
32
+ # measured here, the same lockfile installs cleanly on its own and at concurrency 4, and
33
+ # `bun install` without `--frozen-lockfile` also survives the default. The cost is about
34
+ # fifteen seconds on a layer that is cached anyway; a build that fails half the time is
35
+ # worse than a slow one, and it fails with a message that sends you after the wrong package.
36
+ RUN bun install --frozen-lockfile --network-concurrency 4
30
37
 
31
38
  # Run as the image's non-root user so permission-sensitive tests behave correctly
32
39
  # (e.g. inaccessible /root/.ssh must yield 403/500, not a readable listing).
@@ -71,4 +71,4 @@ This skill covers the `ppm` CLI, its HTTP API, and its config DB. It does **not*
71
71
  - Third-party extensions (inspect via `ppm ext list`).
72
72
  - The Claude Agent SDK internals (separate skill).
73
73
 
74
- <!-- Generated for PPM v0.23.6 at build time. Re-run `ppm export skill --install` to refresh. -->
74
+ <!-- Generated for PPM v0.23.8 at build time. Re-run `ppm export skill --install` to refresh. -->
@@ -781,7 +781,7 @@ Show recent runs for a schedule
781
781
  Manage and inspect discovered skills & commands
782
782
 
783
783
  **Options:**
784
- - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release"`)
784
+ - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release-0238"`)
785
785
 
786
786
  **Usage:** `ppm skills [options] [command]`
787
787
 
@@ -791,7 +791,7 @@ List all discovered skills and commands
791
791
 
792
792
  **Options:**
793
793
  - `--json` — JSON output
794
- - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release"`)
794
+ - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release-0238"`)
795
795
 
796
796
  ### `ppm skills search`
797
797
 
@@ -799,7 +799,7 @@ Fuzzy search skills and commands
799
799
 
800
800
  **Options:**
801
801
  - `--json` — JSON output
802
- - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release"`)
802
+ - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release-0238"`)
803
803
 
804
804
  **Usage:** `ppm skills search [options] <query>`
805
805
 
@@ -809,7 +809,7 @@ Show detailed info for a specific skill
809
809
 
810
810
  **Options:**
811
811
  - `--json` — JSON output
812
- - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release"`)
812
+ - `--project <path>` — Project path (default: `"C:\\Users\\PC\\ppm-release-0238"`)
813
813
 
814
814
  **Usage:** `ppm skills info [options] <name>`
815
815
 
@@ -162,6 +162,16 @@ _Base URL: `http://localhost:8080` (default; override via `ppm config set port <
162
162
 
163
163
  - `POST /api/loopback/callback`
164
164
 
165
+ ## /api/lsp
166
+
167
+ - `GET /api/lsp/status`
168
+ - `GET /api/lsp/projectPath`
169
+ - `POST /api/lsp/install`
170
+ - `GET /api/lsp/projectPath`
171
+ - `GET /api/lsp/servers`
172
+ - `POST /api/lsp/install`
173
+ - `POST /api/lsp/uninstall`
174
+
165
175
  ## /api/mcp-auth
166
176
 
167
177
  - `GET /api/mcp-auth/status`
@@ -243,6 +253,8 @@ _Base URL: `http://localhost:8080` (default; override via `ppm config set port <
243
253
  - `GET /api/settings/ai`
244
254
  - `PUT /api/settings/ai`
245
255
  - `GET /api/settings/ai`
256
+ - `GET /api/settings/ai/providers/status`
257
+ - `POST /api/settings/ai/providers/:id/probe`
246
258
  - `GET /api/settings/ai/providers/:id/models`
247
259
  - `GET /api/settings/keybindings`
248
260
  - `PUT /api/settings/keybindings`
@@ -292,13 +304,27 @@ _Base URL: `http://localhost:8080` (default; override via `ppm config set port <
292
304
  - `DELETE /api/settings/themes/:id`
293
305
  - `PATCH /api/settings/themes/:id`
294
306
 
307
+ ## /api/speech
308
+
309
+ - `GET /api/speech/status`
310
+ - `POST /api/speech/install`
311
+ - `POST /api/speech/uninstall`
312
+ - `POST /api/speech/transcribe`
313
+
295
314
  ## /api/system
296
315
 
316
+ - `GET /api/system/hardware`
317
+ - `GET /api/system/app-icon/:id`
297
318
  - `GET /api/system/resources`
298
319
  - `GET /api/system/resources/stream`
299
320
  - `POST /api/system/resources/stream/:sid/ping`
300
321
  - `DELETE /api/system/resources/stream/:sid`
322
+ - `GET /api/system/resources/process/:pid`
323
+ - `POST /api/system/resources/signal`
301
324
  - `POST /api/system/resources/kill`
325
+ - `GET /api/system/services`
326
+ - `GET /api/system/services/:scope/:unit`
327
+ - `POST /api/system/services/:scope/:unit/:action`
302
328
  - `GET /api/system/host`
303
329
 
304
330
  ## /api/teams
@@ -313,6 +339,8 @@ _Base URL: `http://localhost:8080` (default; override via `ppm config set port <
313
339
 
314
340
  - `GET /api/tunnel`
315
341
  - `GET /api/tunnel/port`
342
+ - `POST /api/tunnel/enabled`
343
+ - `GET /api/tunnel/tunnel`
316
344
  - `POST /api/tunnel/start`
317
345
  - `GET /api/tunnel/port`
318
346
  - `POST /api/tunnel/stop`
@@ -360,4 +388,4 @@ _Base URL: `http://localhost:8080` (default; override via `ppm config set port <
360
388
  - `ws://<host>/ws/terminal` — PTY terminal multiplexer
361
389
  - `ws://<host>/ws/extensions` — extension host channel
362
390
 
363
- <!-- Generated from src/server/routes/ for PPM v0.23.6 -->
391
+ <!-- Generated from src/server/routes/ for PPM v0.23.8 -->
@@ -0,0 +1 @@
1
+ import{A as e,B as t,C as n,E as r,H as i,M as a,U as o,V as s,k as c,p as l,w as u,z as d}from"./isArrayLikeObject-Brn5jPfX.js";import{A as f,C as p,D as m,M as h,N as g,S as _,T as v,f as y,h as b,u as x,w as S}from"./_baseUniq-DAyolJ43.js";var C=/\s/;function w(e){for(var t=e.length;t--&&C.test(e.charAt(t)););return t}var ee=/^\s+/;function T(e){return e&&e.slice(0,w(e)+1).replace(ee,``)}var E=NaN,D=/^[-+]0x[0-9a-f]+$/i,O=/^0b[01]+$/i,k=/^0o[0-7]+$/i,A=parseInt;function j(e){if(typeof e==`number`)return e;if(g(e))return E;if(t(e)){var n=typeof e.valueOf==`function`?e.valueOf():e;e=t(n)?n+``:n}if(typeof e!=`string`)return e===0?e:+e;e=T(e);var r=O.test(e);return r||k.test(e)?A(e.slice(2),r?2:8):D.test(e)?E:+e}var M=1/0,N=17976931348623157e292;function P(e){return e?(e=j(e),e===M||e===-M?(e<0?-1:1)*N:e===e?e:0):e===0?e:0}function F(e){var t=P(e),n=t%1;return t===t?n?t-n:t:0}function I(e){return e!=null&&e.length?_(e,1):[]}var L=Object.prototype,R=L.hasOwnProperty,z=r(function(t,r){t=Object(t);var i=-1,a=r.length,o=a>2?r[2]:void 0;for(o&&n(r[0],r[1],o)&&(a=1);++i<a;)for(var s=r[i],c=l(s),u=-1,d=c.length;++u<d;){var f=c[u],p=t[f];(p===void 0||e(p,L[f])&&!R.call(t,f))&&(t[f]=s[f])}return t});function B(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function V(e){return function(t,n,r){var i=Object(t);if(!u(t)){var a=y(n,3);t=m(t),n=function(e){return a(i[e],e,i)}}var o=e(t,n,r);return o>-1?i[a?t[o]:o]:void 0}}var H=Math.max;function U(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:F(n);return i<0&&(i=H(r+i,0)),f(e,y(t,3),i)}var W=V(U);function G(e,t){var n=-1,r=u(e)?Array(e.length):[];return x(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function K(e,t){return(s(e)?h:G)(e,y(t,3))}var q=Object.prototype.hasOwnProperty;function J(e,t){return e!=null&&q.call(e,t)}function Y(e,t){return e!=null&&b(e,t,J)}var X=`[object String]`;function Z(e){return typeof e==`string`||!s(e)&&i(e)&&o(e)==X}function Q(e,t){return e<t}function $(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],o=t(a);if(o!=null&&(s===void 0?o===o&&!g(o):n(o,s)))var s=o,c=a}return c}function te(e){return e&&e.length?$(e,d,Q):void 0}function ne(e,n,r,i){if(!t(e))return e;n=v(n,e);for(var o=-1,s=n.length,l=s-1,u=e;u!=null&&++o<s;){var d=S(n[o]),f=r;if(d===`__proto__`||d===`constructor`||d===`prototype`)return e;if(o!=l){var p=u[d];f=i?i(p,d,u):void 0,f===void 0&&(f=t(p)?p:a(n[o+1])?[]:{})}c(u,d,f),u=u[d]}return e}function re(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=p(e,o);n(s,o)&&ne(a,v(o,e),s)}return a}export{Z as a,G as c,z as d,I as f,Q as i,W as l,P as m,te as n,Y as o,F as p,$ as r,K as s,re as t,B as u};
@@ -0,0 +1 @@
1
+ import{A as e,B as t,F as n,H as r,M as i,O as a,T as o,U as s,V as c,W as l,_ as u,a as d,b as f,c as p,d as m,g as h,h as g,i as _,k as v,l as y,n as ee,o as b,p as x,r as te,s as ne,u as re,v as ie,w as S,y as C,z as w}from"./isArrayLikeObject-Brn5jPfX.js";import{i as ae,n as T,r as E}from"./isEmpty-BDA3VnUk.js";var oe=`[object Symbol]`;function D(e){return typeof e==`symbol`||r(e)&&s(e)==oe}function O(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var se=1/0,ce=l?l.prototype:void 0,le=ce?ce.toString:void 0;function ue(e){if(typeof e==`string`)return e;if(c(e))return O(e,ue)+``;if(D(e))return le?le.call(e):``;var t=e+``;return t==`0`&&1/e==-se?`-0`:t}function de(){}function fe(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function pe(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function me(e){return e!==e}function he(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function ge(e,t,n){return t===t?he(e,t,n):pe(e,me,n)}function _e(e,t){return!!(e!=null&&e.length)&&ge(e,t,0)>-1}function k(e){return S(e)?g(e):ae(e)}var ve=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ye=/^\w*$/;function A(e,t){if(c(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||D(e)?!0:ye.test(e)||!ve.test(e)||t!=null&&e in Object(t)}var be=500;function xe(e){var t=re(e,function(e){return n.size===be&&n.clear(),e}),n=t.cache;return t}var Se=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ce=/\\(\\)?/g,we=xe(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(Se,function(e,n,r,i){t.push(r?i.replace(Ce,`$1`):n||e)}),t});function j(e){return e==null?``:ue(e)}function M(e,t){return c(e)?e:A(e,t)?[e]:we(j(e))}var Te=1/0;function N(e){if(typeof e==`string`||D(e))return e;var t=e+``;return t==`0`&&1/e==-Te?`-0`:t}function P(e,t){t=M(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[N(t[n++])];return n&&n==r?e:void 0}function Ee(e,t,n){var r=e==null?void 0:P(e,t);return r===void 0?n:r}function F(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var I=l?l.isConcatSpreadable:void 0;function De(e){return c(e)||f(e)||!!(I&&e&&e[I])}function L(e,t,n,r,i){var a=-1,o=e.length;for(n||=De,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?L(s,t-1,n,r,i):F(i,s):r||(i[i.length]=s)}return i}function Oe(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function ke(e,t){return e&&a(t,k(t),e)}function Ae(e,t){return e&&a(t,x(t),e)}function R(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function z(){return[]}var je=Object.prototype.propertyIsEnumerable,B=Object.getOwnPropertySymbols,V=B?function(e){return e==null?[]:(e=Object(e),R(B(e),function(t){return je.call(e,t)}))}:z;function Me(e,t){return a(e,V(e),t)}var Ne=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)F(t,V(e)),e=y(e);return t}:z;function Pe(e,t){return a(e,Ne(e),t)}function Fe(e,t,n){var r=t(e);return c(e)?r:F(r,n(e))}function H(e){return Fe(e,k,V)}function Ie(e){return Fe(e,x,Ne)}var Le=Object.prototype.hasOwnProperty;function Re(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Le.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function ze(e,t){var n=t?d(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Be=/\w*$/;function Ve(e){var t=new e.constructor(e.source,Be.exec(e));return t.lastIndex=e.lastIndex,t}var He=l?l.prototype:void 0,Ue=He?He.valueOf:void 0;function We(e){return Ue?Object(Ue.call(e)):{}}var Ge=`[object Boolean]`,Ke=`[object Date]`,qe=`[object Map]`,Je=`[object Number]`,Ye=`[object RegExp]`,Xe=`[object Set]`,Ze=`[object String]`,Qe=`[object Symbol]`,$e=`[object ArrayBuffer]`,et=`[object DataView]`,tt=`[object Float32Array]`,nt=`[object Float64Array]`,rt=`[object Int8Array]`,it=`[object Int16Array]`,at=`[object Int32Array]`,ot=`[object Uint8Array]`,st=`[object Uint8ClampedArray]`,ct=`[object Uint16Array]`,lt=`[object Uint32Array]`;function ut(e,t,n){var r=e.constructor;switch(t){case $e:return d(e);case Ge:case Ke:return new r(+e);case et:return ze(e,n);case tt:case nt:case rt:case it:case at:case ot:case st:case ct:case lt:return _(e,n);case qe:return new r;case Je:case Ze:return new r(e);case Ye:return Ve(e);case Xe:return new r;case Qe:return We(e)}}var dt=`[object Map]`;function ft(e){return r(e)&&T(e)==dt}var pt=u&&u.isMap,mt=pt?ie(pt):ft,ht=`[object Set]`;function gt(e){return r(e)&&T(e)==ht}var _t=u&&u.isSet,vt=_t?ie(_t):gt,yt=1,bt=2,xt=4,St=`[object Arguments]`,Ct=`[object Array]`,wt=`[object Boolean]`,Tt=`[object Date]`,Et=`[object Error]`,Dt=`[object Function]`,Ot=`[object GeneratorFunction]`,kt=`[object Map]`,At=`[object Number]`,jt=`[object Object]`,Mt=`[object RegExp]`,Nt=`[object Set]`,Pt=`[object String]`,Ft=`[object Symbol]`,It=`[object WeakMap]`,Lt=`[object ArrayBuffer]`,Rt=`[object DataView]`,zt=`[object Float32Array]`,Bt=`[object Float64Array]`,Vt=`[object Int8Array]`,Ht=`[object Int16Array]`,Ut=`[object Int32Array]`,Wt=`[object Uint8Array]`,Gt=`[object Uint8ClampedArray]`,Kt=`[object Uint16Array]`,qt=`[object Uint32Array]`,U={};U[St]=U[Ct]=U[Lt]=U[Rt]=U[wt]=U[Tt]=U[zt]=U[Bt]=U[Vt]=U[Ht]=U[Ut]=U[kt]=U[At]=U[jt]=U[Mt]=U[Nt]=U[Pt]=U[Ft]=U[Wt]=U[Gt]=U[Kt]=U[qt]=!0,U[Et]=U[Dt]=U[It]=!1;function W(e,r,i,a,o,s){var l,u=r&yt,d=r&bt,f=r&xt;if(i&&(l=o?i(e,a,o,s):i(e)),l!==void 0)return l;if(!t(e))return e;var m=c(e);if(m){if(l=Re(e),!u)return n(e,l)}else{var h=T(e),g=h==Dt||h==Ot;if(C(e))return ne(e,u);if(h==jt||h==St||g&&!o){if(l=d||g?{}:te(e),!u)return d?Pe(e,Ae(l,e)):Me(e,ke(l,e))}else{if(!U[h])return o?e:{};l=ut(e,h,u)}}s||=new p;var _=s.get(e);if(_)return _;s.set(e,l),vt(e)?e.forEach(function(t){l.add(W(t,r,i,t,e,s))}):mt(e)&&e.forEach(function(t,n){l.set(n,W(t,r,i,n,e,s))});var y=m?void 0:(f?d?Ie:H:d?x:k)(e);return fe(y||e,function(t,n){y&&(n=t,t=e[n]),v(l,n,W(t,r,i,n,e,s))}),l}var Jt=`__lodash_hash_undefined__`;function Yt(e){return this.__data__.set(e,Jt),this}function Xt(e){return this.__data__.has(e)}function G(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new m;++t<n;)this.add(e[t])}G.prototype.add=G.prototype.push=Yt,G.prototype.has=Xt;function Zt(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function K(e,t){return e.has(t)}var Qt=1,$t=2;function en(e,t,n,r,i,a){var o=n&Qt,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&$t?new G:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var g=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(g!==void 0){if(g)continue;f=!1;break}if(p){if(!Zt(t,function(e,t){if(!K(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function tn(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function q(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var nn=1,rn=2,an=`[object Boolean]`,on=`[object Date]`,sn=`[object Error]`,cn=`[object Map]`,ln=`[object Number]`,un=`[object RegExp]`,dn=`[object Set]`,fn=`[object String]`,pn=`[object Symbol]`,mn=`[object ArrayBuffer]`,hn=`[object DataView]`,gn=l?l.prototype:void 0,J=gn?gn.valueOf:void 0;function _n(t,n,r,i,a,o,s){switch(r){case hn:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case mn:return!(t.byteLength!=n.byteLength||!o(new b(t),new b(n)));case an:case on:case ln:return e(+t,+n);case sn:return t.name==n.name&&t.message==n.message;case un:case fn:return t==n+``;case cn:var c=tn;case dn:var l=i&nn;if(c||=q,t.size!=n.size&&!l)return!1;var u=s.get(t);if(u)return u==n;i|=rn,s.set(t,n);var d=en(c(t),c(n),i,a,o,s);return s.delete(t),d;case pn:if(J)return J.call(t)==J.call(n)}return!1}var vn=1,yn=Object.prototype.hasOwnProperty;function bn(e,t,n,r,i,a){var o=n&vn,s=H(e),c=s.length;if(c!=H(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:yn.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],g=t[u];if(r)var _=o?r(g,h,u,t,e,a):r(h,g,u,e,t,a);if(!(_===void 0?h===g||i(h,g,n,r,a):_)){p=!1;break}m||=u==`constructor`}if(p&&!m){var v=e.constructor,y=t.constructor;v!=y&&`constructor`in e&&`constructor`in t&&!(typeof v==`function`&&v instanceof v&&typeof y==`function`&&y instanceof y)&&(p=!1)}return a.delete(e),a.delete(t),p}var xn=1,Sn=`[object Arguments]`,Cn=`[object Array]`,Y=`[object Object]`,wn=Object.prototype.hasOwnProperty;function Tn(e,t,n,r,i,a){var o=c(e),s=c(t),l=o?Cn:T(e),u=s?Cn:T(t);l=l==Sn?Y:l,u=u==Sn?Y:u;var d=l==Y,f=u==Y,m=l==u;if(m&&C(e)){if(!C(t))return!1;o=!0,d=!1}if(m&&!d)return a||=new p,o||h(e)?en(e,t,n,r,i,a):_n(e,t,l,n,r,i,a);if(!(n&xn)){var g=d&&wn.call(e,`__wrapped__`),_=f&&wn.call(t,`__wrapped__`);if(g||_){var v=g?e.value():e,y=_?t.value():t;return a||=new p,i(v,y,n,r,a)}}return m?(a||=new p,bn(e,t,n,r,i,a)):!1}function X(e,t,n,i,a){return e===t?!0:e==null||t==null||!r(e)&&!r(t)?e!==e&&t!==t:Tn(e,t,n,i,X,a)}var En=1,Dn=2;function On(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new p;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?X(u,l,En|Dn,r,d):f))return!1}}return!0}function kn(e){return e===e&&!t(e)}function An(e){for(var t=k(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,kn(i)]}return t}function Z(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}function jn(e){var t=An(e);return t.length==1&&t[0][2]?Z(t[0][0],t[0][1]):function(n){return n===e||On(n,e,t)}}function Mn(e,t){return e!=null&&t in Object(e)}function Nn(e,t,n){t=M(t,e);for(var r=-1,a=t.length,s=!1;++r<a;){var l=N(t[r]);if(!(s=e!=null&&n(e,l)))break;e=e[l]}return s||++r!=a?s:(a=e==null?0:e.length,!!a&&o(a)&&i(l,a)&&(c(e)||f(e)))}function Pn(e,t){return e!=null&&Nn(e,t,Mn)}var Fn=1,In=2;function Ln(e,t){return A(e)&&kn(t)?Z(N(e),t):function(n){var r=Ee(n,e);return r===void 0&&r===t?Pn(n,e):X(t,r,Fn|In)}}function Rn(e){return function(t){return t?.[e]}}function zn(e){return function(t){return P(t,e)}}function Bn(e){return A(e)?Rn(N(e)):zn(e)}function Q(e){return typeof e==`function`?e:e==null?w:typeof e==`object`?c(e)?Ln(e[0],e[1]):jn(e):Bn(e)}function Vn(e,t){return e&&ee(e,t,k)}function Hn(e,t){return function(n,r){if(n==null)return n;if(!S(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var $=Hn(Vn);function Un(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Wn(e){return typeof e==`function`?e:w}function Gn(e,t){return(c(e)?fe:$)(e,Wn(t))}function Kn(e,t){var n=[];return $(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function qn(e,t){return(c(e)?R:Kn)(e,Q(t,3))}function Jn(e,t){return O(t,function(t){return e[t]})}function Yn(e){return e==null?[]:Jn(e,k(e))}function Xn(e){return e===void 0}function Zn(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function Qn(e,t,n){var r=c(e)?Oe:Zn,i=arguments.length<3;return r(e,Q(t,4),n,i,$)}var $n=E&&1/q(new E([,-0]))[1]==1/0?function(e){return new E(e)}:de,er=200;function tr(e,t,n){var r=-1,i=_e,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=Un;else if(a>=er){var l=t?null:$n(e);if(l)return q(l);o=!1,i=K,c=new G}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}export{pe as A,P as C,k as D,j as E,O as M,D as N,_e as O,L as S,M as T,Zt as _,qn as a,Ie as b,Wn as c,Vn as d,Q as f,K as g,Nn as h,Yn as i,de as j,ge as k,Un as l,Pn as m,Qn as n,Kn as o,Rn as p,Xn as r,Gn as s,tr as t,$ as u,G as v,N as w,R as x,W as y};
@@ -0,0 +1 @@
1
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-P9Ym7hCv.js";import{Jr as r,Lr as i,Mr as a,St as o,V as s,Zn as c,Zt as l,fn as u,fr as d,nt as f,st as p,un as m}from"./icons-CO_II6D-.js";import{a as h}from"./api-client-F5Zi1sR0.js";import{n as g}from"./utils-btZ8C8-R.js";import"./portal-container-context-NFSuymMu.js";import"./chat-preparation-cache-DoS7sdal.js";import{n as _}from"./use-is-mobile-CkO33jqU.js";import{n as v,t as y}from"./button-CsmGH5xa.js";import{a as b,i as x,n as S,o as C,r as w,t as T}from"./dialog-z8PLkL8n.js";import{t as E}from"./mobile-bottom-sheet-CLic9ovp.js";import"./use-visual-viewport-C307OVeV.js";import{t as D}from"./input-CP31LZnN.js";import{Ct as O,In as k,Nt as A,Qn as j,St as M,bt as N,dr as P,fr as F,pr as I,vt as ee,xt as te,yt as ne}from"./index-DQCw6d-2.js";import{_ as re,a as ie,h as ae,m as oe,o as se,p as ce,r as le,v as ue,x as L,y as de}from"./api-settings-BeINN5Dy.js";import{_ as fe,a as pe,b as me,c as he,d as ge,g as R,h as z,l as _e,m as ve,n as ye,o as be,p as B,r as xe,s as V,t as Se,u as Ce,x as H,y as U}from"./codex-reset-credit-button-D2hal4bG.js";var W=e(t(),1),G=n(),K=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],q=Array.from({length:24},(e,t)=>t);function we(e,t){let n=Array.from({length:7},()=>Array.from({length:24},()=>({sum:0,count:0,avg:0})));for(let r of e){let e=t===`5h`?r.five_hour_util:r.weekly_util;if(e==null)continue;let i=new Date(r.recorded_at+(r.recorded_at.endsWith(`Z`)?``:`Z`)),a=(i.getDay()+6)%7,o=i.getHours();n[a][o].sum+=e,n[a][o].count+=1}for(let e of n)for(let t of e)t.avg=t.count>0?t.sum/t.count:0;return n}function Te(e){return e.map(e=>{let t=e.reduce((e,t)=>e+t.sum,0),n=e.reduce((e,t)=>e+t.count,0);return n>0?t/n:0})}function Ee(e){return q.map(t=>{let n=0,r=0;for(let i of e)n+=i[t].sum,r+=i[t].count;return r>0?n/r:0})}function J(e){return e===0?`bg-surface-elevated`:e<.3?`bg-success/30`:e<.5?`bg-success/60`:e<.7?`bg-warning/50`:e<.9?`bg-warning/80`:`bg-error/80`}function De(e){return e<.3?`bg-success`:e<.7?`bg-warning`:`bg-error`}function Oe({accountId:e}){let[t,n]=(0,W.useState)(null),[r,i]=(0,W.useState)(!0),[a,o]=(0,W.useState)(`5h`);(0,W.useEffect)(()=>{i(!0),ce(e).then(n).catch(()=>n([])).finally(()=>i(!1))},[e]);let s=(0,W.useMemo)(()=>t?we(t,a):null,[t,a]),c=(0,W.useMemo)(()=>s?Te(s):[],[s]),l=(0,W.useMemo)(()=>s?Ee(s):[],[s]),u=Math.max(...c,.01);if(Math.max(...l,.01),r)return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-3`,children:(0,G.jsx)(m,{className:`size-3 animate-spin text-text-subtle`})});if(!t||t.length===0)return(0,G.jsx)(`div`,{className:`text-[10px] text-text-subtle py-2 text-center`,children:`No usage history yet`});let d=t.length,f=new Set(t.map(e=>new Date(e.recorded_at+(e.recorded_at.endsWith(`Z`)?``:`Z`)).toDateString())).size;return(0,G.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-medium text-text-subtle`,children:`Usage Pattern (7d)`}),(0,G.jsxs)(`div`,{className:`flex gap-0.5 text-[9px]`,children:[(0,G.jsx)(`button`,{onClick:()=>o(`5h`),className:`px-1.5 py-0.5 rounded cursor-pointer transition-colors ${a===`5h`?`bg-primary/15 text-primary`:`text-text-subtle hover:text-text-secondary`}`,title:`5-hour rolling window limit — resets every 5 hours`,children:`5h`}),(0,G.jsx)(`button`,{onClick:()=>o(`weekly`),className:`px-1.5 py-0.5 rounded cursor-pointer transition-colors ${a===`weekly`?`bg-primary/15 text-primary`:`text-text-subtle hover:text-text-secondary`}`,title:`Weekly limit — resets every 7 days`,children:`Wk`})]})]}),(0,G.jsxs)(`p`,{className:`text-[9px] text-text-subtle leading-tight`,children:[`Avg `,a===`5h`?`5-hour`:`weekly`,` limit usage over `,f,`d (`,d,` samples). Higher % = closer to rate limit. Hover cells for details.`]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-[9px] text-text-subtle`,children:`Avg usage by day of week`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-[2px] mt-0.5`,children:K.map((e,t)=>{let n=c[t]??0;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-[8px] text-text-subtle w-5 shrink-0 text-right tabular-nums`,children:e}),(0,G.jsx)(`div`,{className:`flex-1 h-2.5 bg-surface-elevated rounded-sm overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-sm transition-all ${De(n)}`,style:{width:`${Math.round(n/u*100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-[8px] text-text-subtle w-6 shrink-0 text-right tabular-nums`,children:[Math.round(n*100),`%`]})]},e)})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-[9px] text-text-subtle`,children:`Avg usage by hour (0h-23h)`}),(0,G.jsx)(`div`,{className:`flex gap-[1px] mt-0.5`,children:q.map(e=>{let t=l[e]??0;return(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col items-center gap-[1px]`,children:[(0,G.jsx)(`div`,{className:`w-full aspect-square rounded-[2px] ${J(t)}`,title:`${e}:00 — avg ${Math.round(t*100)}% usage`}),e%6==0&&(0,G.jsx)(`span`,{className:`text-[7px] text-text-subtle tabular-nums`,children:e})]},e)})})]}),s&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-[9px] text-text-subtle`,children:`Day x Hour heatmap`}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-[1px] mt-0.5`,children:[K.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-[1px]`,children:[(0,G.jsx)(`span`,{className:`text-[7px] text-text-subtle w-4 shrink-0 text-right`,children:e.charAt(0)}),q.map(n=>{let r=s[t][n];return(0,G.jsx)(`div`,{className:`flex-1 aspect-square rounded-[1px] ${J(r.avg)}`,title:`${e} ${n}:00 — ${r.count>0?`avg ${Math.round(r.avg*100)}% (${r.count} samples)`:`no data`}`},n)})]},e)),(0,G.jsxs)(`div`,{className:`flex items-center gap-[1px]`,children:[(0,G.jsx)(`span`,{className:`w-4 shrink-0`}),q.map(e=>(0,G.jsx)(`div`,{className:`flex-1 text-center`,children:e%6==0&&(0,G.jsx)(`span`,{className:`text-[7px] text-text-subtle tabular-nums`,children:e})},e))]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[8px] text-text-subtle`,children:[(0,G.jsx)(`span`,{children:`Low`}),(0,G.jsxs)(`div`,{className:`flex gap-[2px]`,children:[(0,G.jsx)(`div`,{className:`size-2 rounded-[1px] bg-success/30`}),(0,G.jsx)(`div`,{className:`size-2 rounded-[1px] bg-success/60`}),(0,G.jsx)(`div`,{className:`size-2 rounded-[1px] bg-warning/50`}),(0,G.jsx)(`div`,{className:`size-2 rounded-[1px] bg-warning/80`}),(0,G.jsx)(`div`,{className:`size-2 rounded-[1px] bg-error/80`})]}),(0,G.jsx)(`span`,{children:`High`}),(0,G.jsx)(`span`,{className:`ml-1`,children:`|`}),(0,G.jsx)(`div`,{className:`size-2 rounded-[1px] bg-surface-elevated border border-border/30`}),(0,G.jsx)(`span`,{children:`No data`})]})]})}function ke({profile:e,accountId:t,onClose:n}){let i=[[`Name`,e.account?.display_name],[`Email`,e.account?.email],[`Org`,e.organization?.name],[`Type`,e.organization?.organization_type],[`Tier`,e.organization?.rate_limit_tier],[`Status`,e.organization?.subscription_status]];return(0,G.jsxs)(`section`,{className:`space-y-2 border-t border-border pt-3`,"data-testid":`account-profile-panel`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium`,children:`Profile`}),(0,G.jsx)(`button`,{className:`p-2 text-muted-foreground hover:text-foreground cursor-pointer`,onClick:n,"aria-label":`Close profile`,children:(0,G.jsx)(r,{className:`size-4`})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-[80px_1fr] gap-x-3 gap-y-1 text-xs`,children:i.map(([e,t])=>t?(0,G.jsxs)(`span`,{className:`contents`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e}),(0,G.jsx)(`span`,{className:`break-all`,children:t})]},e):null)}),(0,G.jsx)(Oe,{accountId:t})]})}function Ae({display:e,onConfirm:t,onCancel:n}){let r=_(),i=(0,G.jsxs)(`div`,{className:`space-y-4`,"data-testid":`account-delete-confirm`,children:[(0,G.jsxs)(`p`,{className:`text-sm`,children:[`Remove `,(0,G.jsx)(`span`,{className:`font-medium`,children:e}),`?`]}),(0,G.jsx)(`p`,{className:`text-xs text-text-subtle`,children:`The stored token is deleted from this machine. Any export you already made keeps working.`}),(0,G.jsxs)(`div`,{className:`flex flex-col-reverse md:flex-row gap-2 md:justify-end pt-2`,children:[(0,G.jsx)(y,{variant:`outline`,onClick:n,className:`min-h-11`,children:`Cancel`}),(0,G.jsx)(y,{variant:`destructive`,autoFocus:!1,onClick:t,className:`min-h-11`,children:`Remove account`})]})]});return r?(0,G.jsx)(E,{open:!0,onClose:n,children:(0,G.jsxs)(`div`,{className:`px-4 pb-4`,children:[(0,G.jsx)(`h2`,{className:`text-base font-semibold mb-3`,children:`Remove account`}),i]})}):(0,G.jsx)(T,{open:!0,onOpenChange:e=>{e||n()},children:(0,G.jsxs)(S,{className:`sm:max-w-sm`,children:[(0,G.jsx)(b,{children:(0,G.jsx)(C,{className:`text-sm`,children:`Remove account`})}),i]})})}function je(e){let t=new Blob([e],{type:`application/json`}),n=document.createElement(`a`);n.href=URL.createObjectURL(t),n.download=`ppm-accounts-backup.json`,n.click(),URL.revokeObjectURL(n.href)}function Me({open:e,onOpenChange:t,accounts:n,preselectId:r,onMessage:i}){let a=n.filter(e=>e.hasRefreshToken),[o,s]=(0,W.useState)(new Set),[c,l]=(0,W.useState)(``),[d,g]=(0,W.useState)(!1),[_,v]=(0,W.useState)(!1),[E,O]=(0,W.useState)(!1),[j,M]=(0,W.useState)(!1);e&&!j&&(s(r?new Set([r]):new Set(a.map(e=>e.id))),M(!0)),!e&&j&&M(!1);function N(){t(!1),l(``),g(!1),v(!1)}async function P(e){if(o.size===0)return;O(!0);let t=c.trim()||`ppm-hienlh`;try{let n={"Content-Type":`application/json`},r=h();r&&(n.Authorization=`Bearer ${r}`);let a=await fetch(`/api/accounts/export`,{method:`POST`,headers:n,body:JSON.stringify({password:t,accountIds:[...o],includeRefreshToken:d,refreshBeforeExport:_})});if(!a.ok){let e=await a.json();throw Error(e.error??`Export failed: ${a.status}`)}let s=await a.text();e&&await k(s)?i?.(`Backup copied to clipboard!`):(je(s),i?.(`Backup downloaded.`)),N()}catch{}O(!1)}let F=o.size>0&&!E;return(0,G.jsx)(T,{open:e,onOpenChange:e=>{e||N()},children:(0,G.jsxs)(S,{className:`sm:max-w-md`,children:[(0,G.jsxs)(b,{children:[(0,G.jsxs)(C,{className:`text-sm flex items-center gap-1.5`,children:[(0,G.jsx)(u,{className:`size-3.5`}),` Export Accounts`]}),(0,G.jsx)(w,{className:`text-xs`,children:`Select accounts and set a password to protect the backup.`})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`p`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Accounts to export`}),(0,G.jsx)(`button`,{className:`text-[10px] text-primary hover:underline cursor-pointer`,onClick:()=>s(o.size===a.length?new Set:new Set(a.map(e=>e.id))),children:o.size===a.length?`Deselect all`:`Select all`})]}),a.length===0?(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground p-2 border rounded`,children:`No exportable accounts.`}):(0,G.jsx)(`div`,{className:`max-h-36 overflow-y-auto space-y-1 border rounded p-2`,children:a.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`exp-${e.id}`,checked:o.has(e.id),onChange:t=>{let n=new Set(o);t.target.checked?n.add(e.id):n.delete(e.id),s(n)},className:`size-3.5 accent-primary cursor-pointer`}),(0,G.jsx)(`label`,{htmlFor:`exp-${e.id}`,className:`text-xs cursor-pointer truncate`,children:e.label??e.email??e.id.slice(0,8)})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(A,{className:`text-xs`,children:[`Password `,(0,G.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:`(optional)`})]}),(0,G.jsx)(D,{type:`password`,placeholder:`Leave empty for default`,value:c,onChange:e=>l(e.target.value),className:`text-xs h-8`,autoComplete:`new-password`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`exp-full`,checked:d,onChange:e=>g(e.target.checked),className:`size-3.5 accent-primary cursor-pointer`}),(0,G.jsx)(`label`,{htmlFor:`exp-full`,className:`text-[11px] cursor-pointer`,children:`Include refresh tokens (full transfer)`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`exp-refresh`,checked:_,onChange:e=>v(e.target.checked),className:`size-3.5 accent-primary cursor-pointer`}),(0,G.jsx)(`label`,{htmlFor:`exp-refresh`,className:`text-[11px] cursor-pointer`,children:`Refresh tokens before export`})]}),d?(0,G.jsxs)(`div`,{className:`rounded-md border border-error/30 bg-error/5 p-2.5`,children:[(0,G.jsx)(`p`,{className:`text-[10px] font-medium text-error`,children:`Full transfer — source accounts will expire`}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Refresh tokens included. Source machine expires in ~1h after target refreshes.`})]}):_?(0,G.jsx)(`div`,{className:`rounded-md border border-warning/30 bg-warning/5 p-2.5`,children:(0,G.jsx)(`p`,{className:`text-[10px] font-medium text-warning`,children:`Refresh before export — invalidates previous shares`})}):(0,G.jsx)(`div`,{className:`rounded-md border border-success/30 bg-success/5 p-2.5`,children:(0,G.jsx)(`p`,{className:`text-[10px] font-medium text-success`,children:`Share current token (safe)`})}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Encrypted with AES-256-GCM + scrypt.`})]}),(0,G.jsxs)(x,{className:`gap-1.5 flex-col sm:flex-row`,children:[(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`text-xs h-7 cursor-pointer`,onClick:N,children:`Cancel`}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`text-xs h-7 cursor-pointer`,disabled:!F,onClick:()=>P(!0),children:[(0,G.jsx)(f,{className:`size-3 mr-1`}),` Copy`]}),(0,G.jsx)(y,{size:`sm`,className:`text-xs h-7 cursor-pointer`,disabled:!F,onClick:()=>P(!1),children:E?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m,{className:`size-3 animate-spin mr-1`}),` Exporting...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(p,{className:`size-3 mr-1`}),` Download`]})})]})]})})}function Ne({open:e,onOpenChange:t,onSuccess:n}){let[r,i]=(0,W.useState)(``),[a,o]=(0,W.useState)(``),[s,c]=(0,W.useState)(!1),[l,d]=(0,W.useState)(null);function f(){t(!1),i(``),o(``),d(null)}async function p(){if(r.trim()){c(!0),d(null);try{let e=await oe({data:r.trim(),password:a.trim()||`ppm-hienlh`});f(),n(`Imported ${e.imported} account(s)`)}catch(e){d(e.message||`Import failed`)}c(!1)}}return(0,G.jsx)(T,{open:e,onOpenChange:e=>{e||f()},children:(0,G.jsxs)(S,{className:`sm:max-w-md`,children:[(0,G.jsxs)(b,{children:[(0,G.jsxs)(C,{className:`text-sm flex items-center gap-1.5`,children:[(0,G.jsx)(u,{className:`size-3.5`}),` Import Accounts`]}),(0,G.jsx)(w,{className:`text-xs`,children:`Paste backup data and enter the export password. Imported accounts are temporary (~1h).`})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(A,{className:`text-xs`,children:`Backup data`}),(0,G.jsx)(`textarea`,{value:r,onChange:e=>i(e.target.value),placeholder:`Paste backup JSON here...`,rows:4,className:`w-full text-xs p-2 rounded border border-border bg-background font-mono resize-none focus:outline-none focus:ring-1 focus:ring-primary`})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(A,{className:`text-xs`,children:[`Password `,(0,G.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:`(optional)`})]}),(0,G.jsx)(D,{type:`password`,placeholder:`Leave empty for default`,value:a,onChange:e=>o(e.target.value),className:`text-xs h-8`,autoComplete:`current-password`})]})]}),l&&(0,G.jsx)(`div`,{className:`text-[11px] p-2 rounded bg-error/10 text-error`,children:l}),(0,G.jsxs)(x,{children:[(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`text-xs h-7 cursor-pointer`,onClick:f,children:`Cancel`}),(0,G.jsx)(y,{size:`sm`,className:`text-xs h-7 cursor-pointer`,disabled:!r.trim()||s,onClick:p,children:s?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m,{className:`size-3 animate-spin mr-1`}),` Importing...`]}):`Import`})]})]})})}var Y=typeof window<`u`?window.matchMedia(`(min-width: 768px)`):null;function Pe(e){return Y?.addEventListener(`change`,e),()=>Y?.removeEventListener(`change`,e)}function Fe(){return Y?.matches??!0}function X(){let[e,t]=(0,W.useState)(null),[n,r]=(0,W.useState)(!0);return(0,W.useEffect)(()=>{r(!0),se().then(t).finally(()=>r(!1))},[]),n?(0,G.jsx)(`p`,{className:`text-xs text-text-subtle py-4 text-center`,children:`Loading...`}):e?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs font-medium text-text-primary`,children:`Rotation Strategy`}),(0,G.jsxs)(ee,{value:e.strategy,onValueChange:async e=>{t(await L({strategy:e}))},children:[(0,G.jsx)(te,{className:`w-full h-9 text-xs`,children:(0,G.jsx)(M,{})}),(0,G.jsxs)(ne,{children:[(0,G.jsx)(N,{value:`round-robin`,children:`Round-robin`}),(0,G.jsx)(N,{value:`fill-first`,children:`Fill-first`}),(0,G.jsx)(N,{value:`lowest-usage`,children:`Lowest usage`})]})]}),(0,G.jsxs)(`p`,{className:`text-[10px] text-text-subtle`,children:[e.strategy===`round-robin`&&`Cycles through accounts evenly`,e.strategy===`fill-first`&&`Uses one account until its limit, then moves on`,e.strategy===`lowest-usage`&&`Picks the account with the lowest current usage`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs font-medium text-text-primary`,children:`Max Retry`}),(0,G.jsx)(`input`,{type:`number`,min:0,value:e.maxRetry,className:`w-full h-9 text-xs border rounded-md px-3 bg-background`,onChange:async e=>{let n=parseInt(e.target.value,10);!isNaN(n)&&n>=0&&t(await L({maxRetry:n}))}}),(0,G.jsx)(`p`,{className:`text-[10px] text-text-subtle`,children:`How many accounts to try on failure. 0 = try all available accounts.`})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5 border-t border-border pt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`label`,{className:`text-xs font-medium text-text-primary`,children:`Cooldown parking`}),(0,G.jsx)(O,{checked:e.cooldownEnabled,onCheckedChange:async e=>{t(await L({cooldownEnabled:e}))}})]}),(0,G.jsx)(`p`,{className:`text-[10px] text-text-subtle`,children:`Park a failing account (rate limit / usage limit / auth error) until it recovers. Off: accounts stay selectable — rotation still skips accounts already ≥95% on the 5-hour limit.`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs border-t border-border pt-3`,children:[(0,G.jsx)(`span`,{className:`text-text-subtle`,children:`Active accounts`}),(0,G.jsx)(`span`,{className:`font-medium text-text-primary`,children:e.activeCount})]})]}):(0,G.jsx)(`p`,{className:`text-xs text-text-subtle py-4 text-center`,children:`Failed to load settings`})}function Ie({open:e,onOpenChange:t}){let n=(0,W.useSyncExternalStore)(Pe,Fe);return e?n?(0,G.jsx)(T,{open:e,onOpenChange:t,children:(0,G.jsxs)(S,{className:`sm:max-w-sm`,children:[(0,G.jsx)(b,{children:(0,G.jsxs)(C,{className:`text-sm flex items-center gap-2`,children:[(0,G.jsx)(d,{className:`size-4`}),` Rotation & Retry`]})}),(0,G.jsx)(X,{})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 transition-opacity duration-200 opacity-100`,onClick:()=>t(!1),style:{backgroundColor:`rgba(0,0,0,0.5)`}}),(0,G.jsxs)(`div`,{className:g(`fixed bottom-0 left-0 right-0 z-50 bg-background rounded-t-2xl border-t border-border shadow-2xl`,`transition-transform duration-300 ease-out max-h-[85vh] overflow-y-auto`,`translate-y-0`),children:[(0,G.jsx)(`div`,{className:`flex justify-center pt-3 pb-1`,children:(0,G.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-border`})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,G.jsxs)(`span`,{className:`text-sm font-semibold flex items-center gap-2`,children:[(0,G.jsx)(d,{className:`size-4`}),` Rotation & Retry`]}),(0,G.jsx)(`button`,{onClick:()=>t(!1),className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,G.jsx)(r,{className:`size-4`})})]}),(0,G.jsx)(`div`,{className:`px-4 py-4 pb-8`,children:(0,G.jsx)(X,{})})]})]}):null}var Le=v(`inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground shadow`,secondary:`border-transparent bg-secondary text-secondary-foreground`,destructive:`border-transparent bg-destructive text-destructive-foreground shadow`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function Z({className:e,variant:t,...n}){return(0,G.jsx)(`div`,{className:g(Le({variant:t}),e),...n})}function Re(e){let t=Math.floor(Date.now()/1e3);return e>t?`${Math.floor((e-t)/60)}m`:`exp`}function Q({accounts:e}){let[t,n]=(0,W.useState)([]),[r,i]=(0,W.useState)(!1),[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(new Map),l=e.filter(e=>e.hasRefreshToken);async function u(){if(l.length!==0){i(!0);try{let e=await ue(l.map(e=>e.id),a);n(t=>[...t,{round:t.length+1,time:new Date().toLocaleTimeString(),includeRefresh:a,items:e}])}catch{}i(!1)}}async function d(e,t){c(t=>new Map(t).set(e,{loading:!0}));try{let n=await de(t);c(t=>new Map(t).set(e,{loading:!1,...n}))}catch(t){c(n=>new Map(n).set(e,{loading:!1,status:`error`,error:t.message}))}}function f(e,t){return[{key:`r${e.round}-pre-${t.id}`,label:`Pre-export`,token:t.preExportTokenFull,preview:t.preExportToken,expires:t.preExportExpires},{key:`r${e.round}-exp-${t.id}`,label:`Exported`,token:t.exportedTokenFull,preview:t.exportedToken,expires:t.exportedExpires},{key:`r${e.round}-post-${t.id}`,label:`Post-export`,token:t.postExportTokenFull,preview:t.postExportToken,expires:t.postExportExpires}]}function p(){for(let e of t)for(let t of e.items)for(let n of f(e,t))n.token&&d(n.key,n.token)}return(0,G.jsxs)(`section`,{className:`border-t pt-4 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium`,children:`Simulate export`}),t.length>0&&(0,G.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[t.length,` round(s)`]})]}),(0,G.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Every run appends a round. Earlier rounds are kept so tokens can be compared across runs.`}),l.length===0?(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No OAuth account with a refresh token to export.`}):(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(O,{id:`sim-include-refresh`,checked:a,onCheckedChange:o,className:`cursor-pointer`}),(0,G.jsx)(A,{htmlFor:`sim-include-refresh`,className:`text-[11px] cursor-pointer`,children:`Include refresh tokens`})]}),(0,G.jsx)(y,{size:`sm`,className:`h-7 text-xs cursor-pointer`,disabled:r,onClick:()=>void u(),children:r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m,{className:`size-3 animate-spin mr-1`}),` Exporting...`]}):`Run export #${t.length+1}`})]}),t.length>0&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`w-full h-7 text-[11px] cursor-pointer`,onClick:p,children:[`Test all tokens (`,t.reduce((e,t)=>e+t.items.length*3,0),`)`]}),t.map(e=>(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`p`,{className:`text-xs font-medium text-primary`,children:[`Round #`,e.round]}),(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:e.time}),(0,G.jsx)(Z,{variant:e.includeRefresh?`destructive`:`secondary`,className:`text-[9px] px-1 py-0`,children:e.includeRefresh?`with refresh`:`access only`})]}),e.items.map(t=>(0,G.jsxs)(`div`,{className:`p-2 rounded-lg border bg-card space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-medium`,children:t.label??t.email??t.id.slice(0,8)}),t.tokenChanged&&(0,G.jsx)(Z,{variant:`secondary`,className:`text-[9px] px-1 py-0`,children:`DB token changed`})]}),f(e,t).map(e=>{let t=s.get(e.key);return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px]`,children:[(0,G.jsx)(`span`,{className:`w-20 shrink-0 text-muted-foreground text-[10px]`,children:e.label}),(0,G.jsx)(`code`,{className:`flex-1 truncate font-mono text-[10px] bg-muted px-1 rounded`,children:e.preview??`N/A`}),e.expires&&(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground shrink-0`,children:Re(e.expires)}),e.token?(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`h-6 text-[10px] px-1.5 cursor-pointer shrink-0`,disabled:t?.loading,onClick:()=>void d(e.key,e.token),children:t?.loading?(0,G.jsx)(m,{className:`size-3 animate-spin`}):`Test`}):(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`-`}),t&&!t.loading&&(0,G.jsx)(`span`,{className:`text-[10px] font-medium shrink-0 ${t.status?.startsWith(`valid`)?`text-success`:`text-error`}`,children:t.status})]},e.key)})]},`r${e.round}-${t.id}`))]},e.round))]})]})}function ze(e){let t=Math.floor(Date.now()/1e3),n=Math.floor(Math.abs(e-t)/60);return e>t?`${n}m left`:`expired ${n}m ago`}function Be({open:e,onOpenChange:t,accounts:n}){let[r,i]=(0,W.useState)(new Map),[a,s]=(0,W.useState)(!1);async function c(e){i(t=>new Map(t).set(e,{loading:!0}));try{let t=await re(e,a);i(n=>new Map(n).set(e,{loading:!1,result:t}))}catch(t){i(n=>new Map(n).set(e,{loading:!1,error:t.message}))}}function l(){for(let e of n.filter(e=>e.expiresAt!==null))c(e.id)}return(0,G.jsx)(T,{open:e,onOpenChange:t,children:(0,G.jsxs)(S,{className:`sm:max-w-xl max-h-[85vh] flex flex-col`,children:[(0,G.jsxs)(b,{children:[(0,G.jsxs)(C,{className:`text-sm flex items-center gap-1.5`,children:[(0,G.jsx)(o,{className:`size-4`}),` Token Test`]}),(0,G.jsx)(w,{className:`text-xs`,children:`Probe stored tokens for validity. Nothing is modified.`})]}),(0,G.jsxs)(`div`,{className:`space-y-4 overflow-y-auto flex-1 pr-1`,children:[(0,G.jsxs)(`section`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium`,children:`Current tokens`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(O,{id:`token-test-refresh`,checked:a,onCheckedChange:s,className:`cursor-pointer`}),(0,G.jsx)(A,{htmlFor:`token-test-refresh`,className:`text-[11px] cursor-pointer`,children:`Also test refresh`})]}),(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`h-7 text-xs cursor-pointer`,onClick:l,children:`Test all`})]})]}),n.length===0&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No accounts to test.`}),(0,G.jsx)(`div`,{className:`space-y-1.5`,children:n.map(e=>{let t=r.get(e.id),n=t?.result?.accessToken.status;return(0,G.jsxs)(`div`,{className:`p-2 rounded border bg-card space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium truncate block`,children:e.label??e.email??e.id.slice(0,8)}),e.expiresAt&&(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:ze(e.expiresAt)})]}),(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`h-7 text-xs cursor-pointer shrink-0`,disabled:t?.loading,onClick:()=>void c(e.id),children:t?.loading?(0,G.jsx)(m,{className:`size-3 animate-spin`}):`Test`})]}),t&&!t.loading&&(0,G.jsxs)(`div`,{className:`text-[11px] pl-2 border-l-2 border-muted`,children:[t.error&&(0,G.jsx)(`p`,{className:`text-error`,children:t.error}),n&&(0,G.jsxs)(`span`,{className:n.startsWith(`valid`)?`text-success`:`text-error`,children:[n,t.result?.accessToken.code?` (${t.result.accessToken.code})`:``]})]})]},e.id)})})]}),(0,G.jsx)(Q,{accounts:n})]}),(0,G.jsx)(x,{children:(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`text-xs cursor-pointer`,onClick:()=>t(!1),children:`Close`})})]})})}function Ve(){let{usages:e,accounts:t,activeAccountId:n,initialLoading:r,refreshing:a,flashIds:s,reload:u}=_e(),[f,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(null),[v,b]=(0,W.useState)(null),[x,S]=(0,W.useState)(null),[C,w]=(0,W.useState)(null),[T,E]=(0,W.useState)(null),[D,O]=(0,W.useState)(void 0);function k(e){u(),e&&h(e)}async function A(e,t){_(e);try{await ae(e,{status:t===`disabled`?`active`:`disabled`})}catch(e){h(e.message)}_(null),u()}async function j(){if(v){try{await le(v.id),h(`Account "${v.display}" removed.`),u()}catch(e){h(`Failed to remove: ${e.message}`)}b(null)}}let M=new Map(t.map(e=>[e.id,e])),N=e[0]?.usage.lastFetchedAt;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(z,{description:`Connect multiple Claude accounts. PPM rotates between them automatically to avoid rate limits.`,onRefresh:()=>void u(),refreshing:a,disabled:r,actions:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(y,{size:`sm`,className:`cursor-pointer gap-1.5`,onClick:()=>{O(void 0),E(`add`)},children:[(0,G.jsx)(c,{className:`size-4`}),` Add account`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>{w(null),E(`export`)},children:[(0,G.jsx)(p,{className:`size-4`}),` Export`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>E(`import`),children:[(0,G.jsx)(i,{className:`size-4`}),` Import`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>E(`rotation`),children:[(0,G.jsx)(d,{className:`size-4`}),` Rotation`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>E(`token-test`),children:[(0,G.jsx)(o,{className:`size-4`}),` Token test`]})]})}),(0,G.jsx)(R,{message:f,onDismiss:()=>h(null)}),(0,G.jsxs)(`section`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium`,children:`Accounts`}),N&&(0,G.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`usage `,me(new Date(N).getTime())]})]}),r?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,G.jsx)(m,{className:`size-4 animate-spin`}),` Loading accounts...`]}):e.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-8 text-center`,children:[(0,G.jsx)(l,{className:`size-5 text-muted-foreground`}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No accounts connected yet.`}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Add one to start using PPM.`})]}):(0,G.jsx)(B,{children:e.map(e=>(0,G.jsx)(Ce,{layout:`strip`,entry:e,isActive:e.accountId===n,accountInfo:M.get(e.accountId),onToggle:A,toggling:g===e.accountId,onDelete:(e,t)=>b({id:e,display:t}),onExport:e=>{w(e),E(`export`)},onViewProfile:(e,t)=>S({profile:e,accountId:t}),onReauth:()=>{O(e.accountLabel??e.accountId.slice(0,8)),E(`add`)},flash:s.has(e.accountId)},e.accountId))})]}),x&&(0,G.jsx)(ke,{profile:x.profile,accountId:x.accountId,onClose:()=>S(null)}),v&&(0,G.jsx)(Ae,{display:v.display,onConfirm:()=>void j(),onCancel:()=>b(null)}),(0,G.jsx)(he,{open:T===`add`,onOpenChange:e=>{E(e?`add`:null),e||O(void 0)},onSuccess:k,signInAgainFor:D}),(0,G.jsx)(Me,{open:T===`export`,onOpenChange:e=>{E(e?`export`:null),e||w(null)},accounts:t,preselectId:C,onMessage:h}),(0,G.jsx)(Ne,{open:T===`import`,onOpenChange:e=>E(e?`import`:null),onSuccess:k}),(0,G.jsx)(Ie,{open:T===`rotation`,onOpenChange:e=>E(e?`rotation`:null)}),(0,G.jsx)(Be,{open:T===`token-test`,onOpenChange:e=>E(e?`token-test`:null),accounts:t})]})}function He({mode:e,onOpenChange:t,password:n,onPasswordChange:r,busy:a,onExport:o,onImport:s,error:c}){let l=(0,W.useRef)(null),d=e===`export`;return(0,G.jsx)(T,{open:e!==null,onOpenChange:t,children:(0,G.jsxs)(S,{className:`sm:max-w-md`,children:[(0,G.jsxs)(b,{children:[(0,G.jsxs)(C,{className:`text-sm flex items-center gap-1.5`,children:[(0,G.jsx)(u,{className:`size-4`}),` `,d?`Export Codex Accounts`:`Import Codex Accounts`]}),(0,G.jsx)(w,{className:`text-xs leading-relaxed`,children:d?`Writes a password-encrypted file containing each account's login.`:`Reads a backup file. The password must be the one it was exported with.`})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(A,{htmlFor:`codex-backup-password`,className:`text-xs`,children:`Password`}),(0,G.jsx)(D,{id:`codex-backup-password`,type:`password`,placeholder:d?`Choose a password`:`Password used for the export`,value:n,onChange:e=>r(e.target.value),className:`text-xs`,autoComplete:d?`new-password`:`current-password`}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`A backup holds full logins — keep the file and its password together.`})]}),c&&(0,G.jsx)(`div`,{className:`text-[11px] p-2 rounded bg-error/10 text-error`,children:c}),(0,G.jsx)(`input`,{ref:l,type:`file`,accept:`application/json,.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&s(t)}}),(0,G.jsxs)(x,{children:[(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`text-xs cursor-pointer`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsxs)(y,{size:`sm`,className:`text-xs cursor-pointer gap-1.5`,disabled:!n.trim()||a,onClick:()=>d?o():l.current?.click(),children:[a?(0,G.jsx)(m,{className:`size-3.5 animate-spin`}):d?(0,G.jsx)(p,{className:`size-3.5`}):(0,G.jsx)(i,{className:`size-3.5`}),d?`Download backup`:`Choose file`]})]})]})})}var Ue=[{value:`round-robin`,label:`Round-robin`,hint:`Take the next account each time.`},{value:`fill-first`,label:`Fill-first`,hint:`Stay on one account until it runs out.`},{value:`lowest-usage`,label:`Lowest usage`,hint:`Pick whichever has the most left.`}];function We({open:e,onOpenChange:t,strategy:n,onChange:r}){return(0,G.jsx)(T,{open:e,onOpenChange:t,children:(0,G.jsxs)(S,{className:`sm:max-w-md`,children:[(0,G.jsxs)(b,{children:[(0,G.jsx)(C,{className:`text-sm`,children:`Codex Rotation`}),(0,G.jsx)(w,{className:`text-xs leading-relaxed`,children:`How a new chat chooses among your Codex accounts.`})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:Ue.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-current":n===e.value?`true`:void 0,className:g(`w-full text-left rounded-md border px-3 py-2.5 min-h-11 cursor-pointer transition-colors`,n===e.value?`border-primary bg-primary/10`:`border-border hover:bg-accent/50 active:bg-accent`),children:[(0,G.jsx)(`p`,{className:`text-sm font-medium`,children:e.label}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.hint})]},e.value))}),(0,G.jsx)(x,{children:(0,G.jsx)(y,{size:`sm`,variant:`outline`,className:`text-xs cursor-pointer`,onClick:()=>t(!1),children:`Done`})})]})})}function $(e){return e==null?null:Math.round(e*100)}function Ge({usage:e}){let t=e.session==null&&e.weekly==null;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(t||e.session!=null)&&(0,G.jsx)(U,{label:`5-Hour Session`,pct:$(e.fiveHour),reset:H(e.session),resetsAt:e.session?.resetsAt}),(t||e.weekly!=null)&&(0,G.jsx)(U,{label:`Weekly`,pct:$(e.sevenDay),reset:H(e.weekly),resetsAt:e.weekly?.resetsAt})]})}function Ke(){let[e,t]=(0,W.useState)(null),n=pe(()=>t(null)),[r,o]=(0,W.useState)(null);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(z,{description:(0,G.jsxs)(G.Fragment,{children:[`Each Codex account keeps its own login (`,(0,G.jsx)(`code`,{children:`CODEX_HOME`}),`). One is picked per chat by the rotation setting.`]}),onRefresh:()=>void n.load(),refreshing:n.loading,actions:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(y,{size:`sm`,className:`cursor-pointer gap-1.5`,onClick:()=>t(`add`),children:[(0,G.jsx)(c,{className:`size-4`}),` Add account`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>t(`export`),children:[(0,G.jsx)(p,{className:`size-4`}),` Export`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>t(`import`),children:[(0,G.jsx)(i,{className:`size-4`}),` Import`]}),(0,G.jsxs)(y,{size:`sm`,variant:`outline`,className:`cursor-pointer gap-1.5`,onClick:()=>t(`rotation`),children:[(0,G.jsx)(d,{className:`size-4`}),` Rotation`]})]})}),(0,G.jsx)(R,{message:n.msg??n.err,onDismiss:()=>{n.setMsg(null),n.setErr(null)}}),(0,G.jsxs)(`section`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium`,children:`Codex Accounts`}),(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground capitalize`,children:n.strategy.replace(`-`,` `)})]}),n.loading&&n.accounts.length===0?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,G.jsx)(m,{className:`size-4 animate-spin`}),` Loading accounts...`]}):n.accounts.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-8 text-center`,children:[(0,G.jsx)(l,{className:`size-5 text-muted-foreground`}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No Codex accounts yet.`}),(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Chats use your default `,(0,G.jsx)(`code`,{children:`~/.codex`}),` login until you add one.`]})]}):(0,G.jsx)(B,{children:n.accounts.map(e=>{let t=n.usages[e.id]??{};return(0,G.jsxs)(ve,{dense:!0,className:`min-w-[300px] shrink-0 snap-start${e.signedOut?` opacity-60`:``}`,"data-testid":`account-card`,"data-account-id":e.id,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium truncate flex-1 min-w-0`,children:e.label}),e.signedOut&&(0,G.jsx)(fe,{className:`text-[10px] text-error shrink-0 font-medium`,hint:`Codex rejected this account's login (revoked or expired), so no turn can run on it and it is skipped. The usage shown is the last reading. Click to sign in again — the account keeps its settings and chats.`,onClick:e.type===`chatgpt`?()=>o(e):void 0,children:`Sign in again`}),(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wide text-text-subtle border border-border rounded px-1 shrink-0`,children:e.type}),V(e.planType)&&(0,G.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0`,children:V(e.planType)}),(0,G.jsx)(O,{checked:e.status!==`disabled`,onCheckedChange:()=>void n.toggle(e.id,e.status??`active`),disabled:n.toggling.has(e.id),"aria-label":e.status===`disabled`?`Enable account`:`Disable account`,className:`cursor-pointer shrink-0`}),(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{asChild:!0,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>void n.remove(e.id),"aria-label":`Remove account`,className:`p-2 rounded cursor-pointer text-text-subtle hover:text-error hover:bg-surface-elevated transition-colors shrink-0`,children:(0,G.jsx)(a,{className:`size-4`})})}),(0,G.jsx)(F,{side:`top`,children:`Remove account`})]})]}),(0,G.jsx)(Ge,{usage:t}),t.resetCredits&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap text-[10px] text-text-subtle`,children:[(0,G.jsx)(ge,{credits:t.resetCredits}),(0,G.jsx)(Se,{account:e,usage:t,onDone:e=>{n.setMsg(e),n.load()}})]}),t.session==null&&(()=>{let r=be(t.weekly);return r?(0,G.jsxs)(`div`,{className:`flex min-h-12 items-center justify-between gap-3 rounded-md border px-2.5 py-1.5 ${e.dailyGuardEnabled&&r.blocked?`border-error/40 bg-error/5`:`border-border/50 bg-surface/40`}`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-medium ${e.dailyGuardEnabled&&r.blocked?`text-error`:`text-text-secondary`}`,children:[(0,G.jsx)(`span`,{children:`Daily guard`}),(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{asChild:!0,children:(0,G.jsx)(`button`,{type:`button`,"aria-label":`About Daily guard`,className:`text-text-subtle hover:text-text-primary cursor-help`,children:(0,G.jsx)(s,{className:`size-3.5`})})}),(0,G.jsx)(F,{side:`top`,className:`max-w-64 text-xs leading-relaxed`,children:`Spreads the weekly quota across five weekdays, adding 20% per weekday. Weekend slots keep the previous cap; unused allowance carries forward. Daily slots start at the reset time and use UTC weekdays. Turn it off any time to use the remaining quota freely.`})]})]}),(0,G.jsx)(`p`,{className:`text-[10px] tabular-nums ${e.dailyGuardEnabled&&r.blocked?`text-error`:`text-text-subtle`}`,children:e.dailyGuardEnabled&&r.blocked?`${Math.round(r.used*100)}% used / ${Math.round(r.cap*100)}% daily cap. New turns paused.`:`Weekday ${r.day}/5, ${Math.round(r.cap*100)}% daily cap`})]}),(0,G.jsxs)(`span`,{className:`hidden`,title:`Weekday ${r.day}/5: hold weekly usage at or below ${Math.round(r.cap*100)}% to last until reset.`,children:[`Daily guard `,e.dailyGuardEnabled?`· Weekday ${r.day}/5 cap ${Math.round(r.cap*100)}%`:``]}),(0,G.jsx)(O,{checked:!!e.dailyGuardEnabled,onCheckedChange:()=>void n.toggleDailyGuard(e.id,!!e.dailyGuardEnabled),disabled:n.toggling.has(e.id),"aria-label":e.dailyGuardEnabled?`Disable Daily guard`:`Enable Daily guard`,className:`cursor-pointer shrink-0`})]}):null})()]},e.id)})})]}),(0,G.jsx)(xe,{open:e===`add`,onOpenChange:e=>{e||n.cancelLogin(),t(e?`add`:null)},label:n.label,onLabelChange:n.setLabel,apiKey:n.apiKey,onApiKeyChange:n.setApiKey,adding:n.adding,onAddApiKey:()=>void n.addApiKey(),deviceWaiting:n.deviceWaiting,onStartDevice:()=>void n.startDevice(),device:n.device,browser:n.browser,onStartBrowser:()=>void n.startBrowser(),loginStarting:n.loginStarting,callbackUrl:n.callbackUrl,onCallbackUrlChange:n.setCallbackUrl,submittingCallback:n.submittingCallback,onSubmitCallback:()=>void n.submitCallback(),error:n.err}),(0,G.jsx)(He,{mode:e===`export`?`export`:e===`import`?`import`:null,onOpenChange:e=>{e||t(null)},password:n.backupPassword,onPasswordChange:n.setBackupPassword,busy:n.exporting||n.importing,onExport:()=>void n.doExport(),onImport:e=>void n.doImport(e),error:n.err}),r&&(0,G.jsx)(ye,{account:r,onClose:()=>o(null),onDone:()=>void n.load()}),(0,G.jsx)(We,{open:e===`rotation`,onOpenChange:e=>t(e?`rotation`:null),strategy:n.strategy,onChange:e=>void n.changeStrategy(e)})]})}var qe=[{id:`claude`,label:`Claude`},{id:`codex`,label:`Codex`}];function Je(){let[e,t]=(0,W.useState)(null),[n,r]=(0,W.useState)(`claude`);(0,W.useEffect)(()=>{let e=!1;return ie().then(n=>{e||t(new Set(Object.keys(n.providers??{})))}).catch(()=>{e||t(new Set([`claude`]))}),()=>{e=!0}},[]);let i=qe.filter(t=>t.id===`claude`||e?.has(t.id)),a=i.length>1;return(0,G.jsxs)(`div`,{className:`space-y-4`,"data-testid":`accounts-pane`,"data-provider":n,children:[a&&(0,G.jsx)(`div`,{className:`flex gap-1 border-b border-border/50`,children:i.map(e=>(0,G.jsxs)(`button`,{onClick:()=>r(e.id),"data-testid":`accounts-tab-${e.id}`,"aria-current":n===e.id?`page`:void 0,className:`flex items-center gap-1.5 px-3 py-2 text-xs rounded-t transition-colors cursor-pointer ${n===e.id?`text-primary border-b-2 border-primary font-medium`:`text-text-subtle hover:text-text-secondary`}`,children:[(0,G.jsx)(j,{providerId:e.id}),e.label]},e.id))}),e===null&&!a&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,G.jsx)(m,{className:`size-3 animate-spin`}),` Checking configured providers...`]}),n===`claude`?(0,G.jsx)(Ve,{}):(0,G.jsx)(Ke,{})]})}export{Je as AccountsSettingsSection};