@hienlh/ppm 0.23.13 → 0.23.15

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 (1218) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/CLAUDE.md +19 -4
  3. package/THIRD-PARTY-NOTICES.md +1 -1
  4. package/assets/skills/ppm/SKILL.md +3 -2
  5. package/assets/skills/ppm/references/cli-reference.md +4 -4
  6. package/assets/skills/ppm/references/common-tasks.md +6 -0
  7. package/assets/skills/ppm/references/http-api.md +13 -1
  8. package/bun.lock +15 -0
  9. package/dist/web/assets/accounts-settings-section-B5YXy0vd.js +1 -0
  10. package/dist/web/assets/accounts-settings-section-B5YXy0vd.js.br +0 -0
  11. package/dist/web/assets/accounts-settings-section-B5YXy0vd.js.gz +0 -0
  12. package/dist/web/assets/adaptive-context-menu-C4jNSORA.js +1 -0
  13. package/dist/web/assets/adaptive-context-menu-C4jNSORA.js.br +0 -0
  14. package/dist/web/assets/adaptive-context-menu-C4jNSORA.js.gz +0 -0
  15. package/dist/web/assets/agent-session-sheet-Bj42PwCK.js +2 -0
  16. package/dist/web/assets/agent-session-sheet-Bj42PwCK.js.br +0 -0
  17. package/dist/web/assets/agent-session-sheet-Bj42PwCK.js.gz +0 -0
  18. package/dist/web/assets/agent-session-sheet-store-BAfLnsLX.js +1 -0
  19. package/dist/web/assets/agent-session-window-content-LqL6fVPU.js +1 -0
  20. package/dist/web/assets/agent-session-window-content-LqL6fVPU.js.br +0 -0
  21. package/dist/web/assets/agent-session-window-content-LqL6fVPU.js.gz +0 -0
  22. package/dist/web/assets/ai-resource-editor-jVv2nvAG.js +1 -0
  23. package/dist/web/assets/ai-resource-editor-jVv2nvAG.js.br +0 -0
  24. package/dist/web/assets/ai-resource-editor-jVv2nvAG.js.gz +0 -0
  25. package/dist/web/assets/ai-settings-section-C9Q-v8fY.js +1 -0
  26. package/dist/web/assets/ai-settings-section-C9Q-v8fY.js.br +0 -0
  27. package/dist/web/assets/ai-settings-section-C9Q-v8fY.js.gz +0 -0
  28. package/dist/web/assets/ai-settings-section-CN5BR1ZZ.js +1 -0
  29. package/dist/web/assets/android-tab-CwqiuEZP.js +2 -0
  30. package/dist/web/assets/android-tab-CwqiuEZP.js.br +0 -0
  31. package/dist/web/assets/android-tab-CwqiuEZP.js.gz +0 -0
  32. package/dist/web/assets/api-client-xQDlhUTu.js +1 -0
  33. package/dist/web/assets/api-client-xQDlhUTu.js.br +0 -0
  34. package/dist/web/assets/api-client-xQDlhUTu.js.gz +0 -0
  35. package/dist/web/assets/api-client-xR05zj6r.js +1 -0
  36. package/dist/web/assets/api-settings-VAi0LpIJ.js +1 -0
  37. package/dist/web/assets/api-settings-vmIRFNwZ.js +1 -0
  38. package/dist/web/assets/api-settings-vmIRFNwZ.js.br +0 -0
  39. package/dist/web/assets/api-settings-vmIRFNwZ.js.gz +0 -0
  40. package/dist/web/assets/api-themes-CaXofG7d.js +1 -0
  41. package/dist/web/assets/appearance-settings-section-D0JIfiRx.js +1 -0
  42. package/dist/web/assets/appearance-settings-section-D0JIfiRx.js.br +0 -0
  43. package/dist/web/assets/appearance-settings-section-D0JIfiRx.js.gz +0 -0
  44. package/dist/web/assets/apps-panel-Cz_KJ37M.js +1 -0
  45. package/dist/web/assets/apps-panel-Cz_KJ37M.js.br +0 -0
  46. package/dist/web/assets/apps-panel-Cz_KJ37M.js.gz +0 -0
  47. package/dist/web/assets/audio-preview-Dq7qZ_6i.js +1 -0
  48. package/dist/web/assets/audio-preview-Dq7qZ_6i.js.br +0 -0
  49. package/dist/web/assets/audio-preview-Dq7qZ_6i.js.gz +0 -0
  50. package/dist/web/assets/branch-review-tab-C3QNpsm7.js +1 -0
  51. package/dist/web/assets/branch-review-tab-C3QNpsm7.js.br +0 -0
  52. package/dist/web/assets/branch-review-tab-C3QNpsm7.js.gz +0 -0
  53. package/dist/web/assets/button-C9ZXWb3b.js +1 -0
  54. package/dist/web/assets/button-C9ZXWb3b.js.br +0 -0
  55. package/dist/web/assets/button-C9ZXWb3b.js.gz +0 -0
  56. package/dist/web/assets/chat-preparation-cache-190LLyy7.js +1 -0
  57. package/dist/web/assets/chat-preparation-cache-190LLyy7.js.br +0 -0
  58. package/dist/web/assets/chat-preparation-cache-190LLyy7.js.gz +0 -0
  59. package/dist/web/assets/chat-tab-D14CUl0J.js +1 -0
  60. package/dist/web/assets/chat-tab-D14CUl0J.js.br +0 -0
  61. package/dist/web/assets/chat-tab-D14CUl0J.js.gz +0 -0
  62. package/dist/web/assets/chat-tab-D8iAVZKV.js +16 -0
  63. package/dist/web/assets/chat-tab-D8iAVZKV.js.br +0 -0
  64. package/dist/web/assets/chat-tab-D8iAVZKV.js.gz +0 -0
  65. package/dist/web/assets/code-editor-B7gbH4-x.js +10 -0
  66. package/dist/web/assets/code-editor-B7gbH4-x.js.br +0 -0
  67. package/dist/web/assets/code-editor-B7gbH4-x.js.gz +0 -0
  68. package/dist/web/assets/codex-reset-credit-button-DQDtyvnd.js +1 -0
  69. package/dist/web/assets/codex-reset-credit-button-DQDtyvnd.js.br +0 -0
  70. package/dist/web/assets/codex-reset-credit-button-DQDtyvnd.js.gz +0 -0
  71. package/dist/web/assets/conflict-editor-ktOkrODA.js +19 -0
  72. package/dist/web/assets/conflict-editor-ktOkrODA.js.br +0 -0
  73. package/dist/web/assets/conflict-editor-ktOkrODA.js.gz +0 -0
  74. package/dist/web/assets/connection-form-tab-CxvExR7T.js +4 -0
  75. package/dist/web/assets/connection-form-tab-CxvExR7T.js.br +0 -0
  76. package/dist/web/assets/connection-form-tab-CxvExR7T.js.gz +0 -0
  77. package/dist/web/assets/context-menu-BCuZYfWC.js +1 -0
  78. package/dist/web/assets/context-menu-BCuZYfWC.js.br +0 -0
  79. package/dist/web/assets/context-menu-BCuZYfWC.js.gz +0 -0
  80. package/dist/web/assets/createLucideIcon-D9_fdOKS.js +1 -0
  81. package/dist/web/assets/createLucideIcon-D9_fdOKS.js.br +0 -0
  82. package/dist/web/assets/createLucideIcon-D9_fdOKS.js.gz +0 -0
  83. package/dist/web/assets/csv-preview-CBDMTEsF.js +10 -0
  84. package/dist/web/assets/csv-preview-CBDMTEsF.js.br +0 -0
  85. package/dist/web/assets/csv-preview-CBDMTEsF.js.gz +0 -0
  86. package/dist/web/assets/database-drivers-section-DJvU6bf5.js +1 -0
  87. package/dist/web/assets/database-drivers-section-DJvU6bf5.js.br +0 -0
  88. package/dist/web/assets/database-drivers-section-DJvU6bf5.js.gz +0 -0
  89. package/dist/web/assets/db-ai-tools-CVbbW_MZ.js +1 -0
  90. package/dist/web/assets/db-ai-tools-CVbbW_MZ.js.br +0 -0
  91. package/dist/web/assets/db-ai-tools-CVbbW_MZ.js.gz +0 -0
  92. package/dist/web/assets/db-explorer-store-BmpvDHz6.js +1 -0
  93. package/dist/web/assets/db-explorer-store-BmpvDHz6.js.br +0 -0
  94. package/dist/web/assets/db-explorer-store-BmpvDHz6.js.gz +0 -0
  95. package/dist/web/assets/db-sidebar-reveal-_qw0CliT.js +1 -0
  96. package/dist/web/assets/db-sidebar-reveal-_qw0CliT.js.br +0 -0
  97. package/dist/web/assets/db-sidebar-reveal-_qw0CliT.js.gz +0 -0
  98. package/dist/web/assets/db-tab-parts-BgVpKbi6.js +1 -0
  99. package/dist/web/assets/db-tab-parts-BgVpKbi6.js.br +0 -0
  100. package/dist/web/assets/db-tab-parts-BgVpKbi6.js.gz +0 -0
  101. package/dist/web/assets/db-types-CNhENouW.js +1 -0
  102. package/dist/web/assets/design-canvas-check-BIHc2d_k.js +1 -0
  103. package/dist/web/assets/design-canvas-check-BIHc2d_k.js.br +0 -0
  104. package/dist/web/assets/design-canvas-check-BIHc2d_k.js.gz +0 -0
  105. package/dist/web/assets/design-export-client-CJ3w7Zrk.js +1 -0
  106. package/dist/web/assets/design-export-client-CJ3w7Zrk.js.br +0 -0
  107. package/dist/web/assets/design-export-client-CJ3w7Zrk.js.gz +0 -0
  108. package/dist/web/assets/design-responsive-dialog-MAFgVOmv.js +1 -0
  109. package/dist/web/assets/design-responsive-dialog-MAFgVOmv.js.br +0 -0
  110. package/dist/web/assets/design-responsive-dialog-MAFgVOmv.js.gz +0 -0
  111. package/dist/web/assets/design-settings-section-DPGw61pY.js +2 -0
  112. package/dist/web/assets/design-settings-section-DPGw61pY.js.br +0 -0
  113. package/dist/web/assets/design-settings-section-DPGw61pY.js.gz +0 -0
  114. package/dist/web/assets/design-skill-suggestion-Dmmg_ap5.js +3 -0
  115. package/dist/web/assets/design-skill-suggestion-Dmmg_ap5.js.br +0 -0
  116. package/dist/web/assets/design-skill-suggestion-Dmmg_ap5.js.gz +0 -0
  117. package/dist/web/assets/design-tab-BiCqHNl3.js +57 -0
  118. package/dist/web/assets/design-tab-BiCqHNl3.js.br +0 -0
  119. package/dist/web/assets/design-tab-BiCqHNl3.js.gz +0 -0
  120. package/dist/web/assets/designs-sidebar-panel-pcJ2Rx5G.js +1 -0
  121. package/dist/web/assets/designs-sidebar-panel-pcJ2Rx5G.js.br +0 -0
  122. package/dist/web/assets/designs-sidebar-panel-pcJ2Rx5G.js.gz +0 -0
  123. package/dist/web/assets/dialog-Dn_2tuYa.js +1 -0
  124. package/dist/web/assets/dialog-Dn_2tuYa.js.br +0 -0
  125. package/dist/web/assets/dialog-Dn_2tuYa.js.gz +0 -0
  126. package/dist/web/assets/diff-viewer-CLAvyqVG.js +4 -0
  127. package/dist/web/assets/diff-viewer-CLAvyqVG.js.br +0 -0
  128. package/dist/web/assets/diff-viewer-CLAvyqVG.js.gz +0 -0
  129. package/dist/web/assets/docx-preview-XSkD2IL6.js +12 -0
  130. package/dist/web/assets/docx-preview-XSkD2IL6.js.br +0 -0
  131. package/dist/web/assets/docx-preview-XSkD2IL6.js.gz +0 -0
  132. package/dist/web/assets/dropdown-menu-BQidk_OJ.js +1 -0
  133. package/dist/web/assets/dropdown-menu-BQidk_OJ.js.br +0 -0
  134. package/dist/web/assets/dropdown-menu-BQidk_OJ.js.gz +0 -0
  135. package/dist/web/assets/edit-diff-preview-DyWUMlkI.js +7 -0
  136. package/dist/web/assets/edit-diff-preview-DyWUMlkI.js.br +0 -0
  137. package/dist/web/assets/edit-diff-preview-DyWUMlkI.js.gz +0 -0
  138. package/dist/web/assets/editor-dialog-cQvqVZAR.js +1 -0
  139. package/dist/web/assets/editor-dialog-cQvqVZAR.js.br +0 -0
  140. package/dist/web/assets/editor-dialog-cQvqVZAR.js.gz +0 -0
  141. package/dist/web/assets/editor-language-service-6-7mS6_9.js +1 -0
  142. package/dist/web/assets/editor-language-service-6-7mS6_9.js.br +0 -0
  143. package/dist/web/assets/editor-language-service-6-7mS6_9.js.gz +0 -0
  144. package/dist/web/assets/explorer-body-BlGDPmNa.js +2 -0
  145. package/dist/web/assets/explorer-body-BlGDPmNa.js.br +0 -0
  146. package/dist/web/assets/explorer-body-BlGDPmNa.js.gz +0 -0
  147. package/dist/web/assets/explorer-model-BtJN4MZ9.js +1 -0
  148. package/dist/web/assets/explorer-model-BtJN4MZ9.js.br +0 -0
  149. package/dist/web/assets/explorer-model-BtJN4MZ9.js.gz +0 -0
  150. package/dist/web/assets/explorer-window-content-BLWY8GJ_.js +1 -0
  151. package/dist/web/assets/explorer-window-content-BLWY8GJ_.js.br +0 -0
  152. package/dist/web/assets/explorer-window-content-BLWY8GJ_.js.gz +0 -0
  153. package/dist/web/assets/extension-manager-section-NSEt5f4z.js +1 -0
  154. package/dist/web/assets/extension-manager-section-NSEt5f4z.js.br +0 -0
  155. package/dist/web/assets/extension-manager-section-NSEt5f4z.js.gz +0 -0
  156. package/dist/web/assets/extension-webview-BkAEBWin.js +12 -0
  157. package/dist/web/assets/extension-webview-BkAEBWin.js.br +0 -0
  158. package/dist/web/assets/extension-webview-BkAEBWin.js.gz +0 -0
  159. package/dist/web/assets/file-diff-CcDhJkXB.js +1 -0
  160. package/dist/web/assets/file-icons-JInFtBVl.js +1 -0
  161. package/dist/web/assets/file-icons-JInFtBVl.js.br +0 -0
  162. package/dist/web/assets/file-icons-JInFtBVl.js.gz +0 -0
  163. package/dist/web/assets/file-store-BQ41vIs5.js +1 -0
  164. package/dist/web/assets/file-store-BQ41vIs5.js.br +0 -0
  165. package/dist/web/assets/file-store-BQ41vIs5.js.gz +0 -0
  166. package/dist/web/assets/files-settings-section-Bq7liJ_r.js +1 -0
  167. package/dist/web/assets/files-settings-section-Bq7liJ_r.js.br +0 -0
  168. package/dist/web/assets/files-settings-section-Bq7liJ_r.js.gz +0 -0
  169. package/dist/web/assets/filter-dialog-frame-BkEbqBA4.js +1 -0
  170. package/dist/web/assets/filter-dialog-frame-BkEbqBA4.js.br +0 -0
  171. package/dist/web/assets/filter-dialog-frame-BkEbqBA4.js.gz +0 -0
  172. package/dist/web/assets/format-file-meta-DdYtk07C.js +1 -0
  173. package/dist/web/assets/format-file-meta-DdYtk07C.js.br +0 -0
  174. package/dist/web/assets/format-file-meta-DdYtk07C.js.gz +0 -0
  175. package/dist/web/assets/fs-api-CFtQzsIJ.js +1 -0
  176. package/dist/web/assets/fs-api-CFtQzsIJ.js.br +0 -0
  177. package/dist/web/assets/fs-api-CFtQzsIJ.js.gz +0 -0
  178. package/dist/web/assets/general-settings-section-DvHROAMa.js +1 -0
  179. package/dist/web/assets/general-settings-section-DvHROAMa.js.br +0 -0
  180. package/dist/web/assets/general-settings-section-DvHROAMa.js.gz +0 -0
  181. package/dist/web/assets/git-commit-horizontal-BPdj2L1i.js +1 -0
  182. package/dist/web/assets/git-log-panel-Cu9kK48H.js +1 -0
  183. package/dist/web/assets/git-log-panel-Cu9kK48H.js.br +0 -0
  184. package/dist/web/assets/git-log-panel-Cu9kK48H.js.gz +0 -0
  185. package/dist/web/assets/git-repo-store-CKB5fdNP.js +1 -0
  186. package/dist/web/assets/git-repo-store-CKB5fdNP.js.br +0 -0
  187. package/dist/web/assets/git-repo-store-CKB5fdNP.js.gz +0 -0
  188. package/dist/web/assets/git-review-tab-B_JT649W.js +3 -0
  189. package/dist/web/assets/git-review-tab-B_JT649W.js.br +0 -0
  190. package/dist/web/assets/git-review-tab-B_JT649W.js.gz +0 -0
  191. package/dist/web/assets/glide-data-grid-BlposOph.js +177 -0
  192. package/dist/web/assets/glide-data-grid-BlposOph.js.br +0 -0
  193. package/dist/web/assets/glide-data-grid-BlposOph.js.gz +0 -0
  194. package/dist/web/assets/grid-save-dialog-B0d0qhnN.js +2 -0
  195. package/dist/web/assets/grid-save-dialog-B0d0qhnN.js.br +0 -0
  196. package/dist/web/assets/grid-save-dialog-B0d0qhnN.js.gz +0 -0
  197. package/dist/web/assets/group-chat-tab-jirUsGm-.js +1 -0
  198. package/dist/web/assets/group-chat-tab-jirUsGm-.js.br +0 -0
  199. package/dist/web/assets/group-chat-tab-jirUsGm-.js.gz +0 -0
  200. package/dist/web/assets/html-preview-loads-CMWBC-iv.js +1 -0
  201. package/dist/web/assets/icons-BwyIKaTT.js +1 -0
  202. package/dist/web/assets/icons-BwyIKaTT.js.br +0 -0
  203. package/dist/web/assets/icons-BwyIKaTT.js.gz +0 -0
  204. package/dist/web/assets/image-preview-gOBK9zED.js +1 -0
  205. package/dist/web/assets/impexp-tab-HJVcOTYJ.js +1 -0
  206. package/dist/web/assets/impexp-tab-HJVcOTYJ.js.br +0 -0
  207. package/dist/web/assets/impexp-tab-HJVcOTYJ.js.gz +0 -0
  208. package/dist/web/assets/index-DLB3j_P0.js +59 -0
  209. package/dist/web/assets/index-DLB3j_P0.js.br +0 -0
  210. package/dist/web/assets/index-DLB3j_P0.js.gz +0 -0
  211. package/dist/web/assets/index-M3DUzop8.css +1 -0
  212. package/dist/web/assets/index-M3DUzop8.css.br +0 -0
  213. package/dist/web/assets/index-M3DUzop8.css.gz +0 -0
  214. package/dist/web/assets/input-C3oVNCMq.js +1 -0
  215. package/dist/web/assets/jira-watcher-section-EQvdnETB.js +1 -0
  216. package/dist/web/assets/keybindings-store-CEy-Sdcc.js +1 -0
  217. package/dist/web/assets/keyboard-shortcuts-section-DN21gB-T.js +1 -0
  218. package/dist/web/assets/keyboard-shortcuts-section-DN21gB-T.js.br +0 -0
  219. package/dist/web/assets/keyboard-shortcuts-section-DN21gB-T.js.gz +0 -0
  220. package/dist/web/assets/language-servers-section-DOcZ72FJ.js +2 -0
  221. package/dist/web/assets/language-servers-section-DOcZ72FJ.js.br +0 -0
  222. package/dist/web/assets/language-servers-section-DOcZ72FJ.js.gz +0 -0
  223. package/dist/web/assets/lib-5Chotbwm.js +2 -0
  224. package/dist/web/assets/lib-5Chotbwm.js.br +0 -0
  225. package/dist/web/assets/lib-5Chotbwm.js.gz +0 -0
  226. package/dist/web/assets/logs-app-C7n9GSCn.js +13 -0
  227. package/dist/web/assets/logs-app-C7n9GSCn.js.br +0 -0
  228. package/dist/web/assets/logs-app-C7n9GSCn.js.gz +0 -0
  229. package/dist/web/assets/logs-tab-CSOiexvx.js +1 -0
  230. package/dist/web/assets/logs-window-content-C4Qs6-0q.js +1 -0
  231. package/dist/web/assets/lsp-client-DpYmPhXX.js +1 -0
  232. package/dist/web/assets/lsp-client-DpYmPhXX.js.br +0 -0
  233. package/dist/web/assets/lsp-client-DpYmPhXX.js.gz +0 -0
  234. package/dist/web/assets/markdown-renderer-CtEl6qAt.js +4 -0
  235. package/dist/web/assets/markdown-renderer-CtEl6qAt.js.br +0 -0
  236. package/dist/web/assets/markdown-renderer-CtEl6qAt.js.gz +0 -0
  237. package/dist/web/assets/markdown-renderer-Df3r-CCb.js +1 -0
  238. package/dist/web/assets/media-url-Cn2yRAxP.js +1 -0
  239. package/dist/web/assets/metric-chart-canvas-DEW16Su8.js +1 -0
  240. package/dist/web/assets/metric-chart-canvas-DEW16Su8.js.br +0 -0
  241. package/dist/web/assets/metric-chart-canvas-DEW16Su8.js.gz +0 -0
  242. package/dist/web/assets/mobile-bottom-sheet-DArbIyrD.js +1 -0
  243. package/dist/web/assets/mobile-bottom-sheet-DArbIyrD.js.br +0 -0
  244. package/dist/web/assets/mobile-bottom-sheet-DArbIyrD.js.gz +0 -0
  245. package/dist/web/assets/mobile-explorer-sheet-B-rcKEL9.js +1 -0
  246. package/dist/web/assets/mobile-explorer-sheet-B-rcKEL9.js.br +0 -0
  247. package/dist/web/assets/mobile-explorer-sheet-B-rcKEL9.js.gz +0 -0
  248. package/dist/web/assets/new-design-dialog-DgztQK5R.js +1 -0
  249. package/dist/web/assets/new-design-dialog-DgztQK5R.js.br +0 -0
  250. package/dist/web/assets/new-design-dialog-DgztQK5R.js.gz +0 -0
  251. package/dist/web/assets/notification-store-B92dvP_u.js +1 -0
  252. package/dist/web/assets/notifications-settings-section-JiGvaCFx.js +1 -0
  253. package/dist/web/assets/notifications-settings-section-JiGvaCFx.js.br +0 -0
  254. package/dist/web/assets/notifications-settings-section-JiGvaCFx.js.gz +0 -0
  255. package/dist/web/assets/onboarding-entry-eehqBvyM.js +1 -0
  256. package/dist/web/assets/onboarding-entry-eehqBvyM.js.br +0 -0
  257. package/dist/web/assets/onboarding-entry-eehqBvyM.js.gz +0 -0
  258. package/dist/web/assets/onboarding-quick-orientation-CTHtIRib.js +1 -0
  259. package/dist/web/assets/onboarding-quick-orientation-CTHtIRib.js.br +0 -0
  260. package/dist/web/assets/onboarding-quick-orientation-CTHtIRib.js.gz +0 -0
  261. package/dist/web/assets/open-db-tabs-CtWIWHOa.js +1 -0
  262. package/dist/web/assets/open-db-tabs-CtWIWHOa.js.br +0 -0
  263. package/dist/web/assets/open-db-tabs-CtWIWHOa.js.gz +0 -0
  264. package/dist/web/assets/open-settings-EXR4zoZG.js +1 -0
  265. package/dist/web/assets/overview-panel-DEGF2DmZ.js +1 -0
  266. package/dist/web/assets/overview-panel-DEGF2DmZ.js.br +0 -0
  267. package/dist/web/assets/overview-panel-DEGF2DmZ.js.gz +0 -0
  268. package/dist/web/assets/panel-store-BJhazigC.js +1 -0
  269. package/dist/web/assets/panel-store-BJhazigC.js.br +0 -0
  270. package/dist/web/assets/panel-store-BJhazigC.js.gz +0 -0
  271. package/dist/web/assets/patch-tab-metadata-C92YkrRX.js +1 -0
  272. package/dist/web/assets/pdf-preview-C9gMtv2a.js +1 -0
  273. package/dist/web/assets/pdf-preview-C9gMtv2a.js.br +0 -0
  274. package/dist/web/assets/pdf-preview-C9gMtv2a.js.gz +0 -0
  275. package/dist/web/assets/performance-panel-TkwfKIZa.js +3 -0
  276. package/dist/web/assets/performance-panel-TkwfKIZa.js.br +0 -0
  277. package/dist/web/assets/performance-panel-TkwfKIZa.js.gz +0 -0
  278. package/dist/web/assets/portal-container-context-NBi-KGK0.js +1 -0
  279. package/dist/web/assets/ppmbot-settings-section-XfrZ8VoC.js +1 -0
  280. package/dist/web/assets/ppmbot-settings-section-XfrZ8VoC.js.br +0 -0
  281. package/dist/web/assets/ppmbot-settings-section-XfrZ8VoC.js.gz +0 -0
  282. package/dist/web/assets/pptx-export-B2wCBWlV.js +111 -0
  283. package/dist/web/assets/pptx-export-B2wCBWlV.js.br +0 -0
  284. package/dist/web/assets/pptx-export-B2wCBWlV.js.gz +0 -0
  285. package/dist/web/assets/problems-panel-CDzwSJn6.js +1 -0
  286. package/dist/web/assets/problems-panel-CDzwSJn6.js.br +0 -0
  287. package/dist/web/assets/problems-panel-CDzwSJn6.js.gz +0 -0
  288. package/dist/web/assets/process-row-format-CytRH7g2.js +1 -0
  289. package/dist/web/assets/process-table-C_B39GHm.js +1 -0
  290. package/dist/web/assets/process-table-C_B39GHm.js.br +0 -0
  291. package/dist/web/assets/process-table-C_B39GHm.js.gz +0 -0
  292. package/dist/web/assets/project-framework-store-DwLxaRan.js +1 -0
  293. package/dist/web/assets/project-store-BLGl9IAO.js +1 -0
  294. package/dist/web/assets/project-store-BLGl9IAO.js.br +0 -0
  295. package/dist/web/assets/project-store-BLGl9IAO.js.gz +0 -0
  296. package/dist/web/assets/proxy-settings-section-CvaOvYIv.js +1 -0
  297. package/dist/web/assets/proxy-settings-section-CvaOvYIv.js.br +0 -0
  298. package/dist/web/assets/proxy-settings-section-CvaOvYIv.js.gz +0 -0
  299. package/dist/web/assets/query-audit-section-D_WDp1m-.js +1 -0
  300. package/dist/web/assets/query-audit-section-D_WDp1m-.js.br +0 -0
  301. package/dist/web/assets/query-audit-section-D_WDp1m-.js.gz +0 -0
  302. package/dist/web/assets/query-tab-B8aMpAbI.js +22 -0
  303. package/dist/web/assets/query-tab-B8aMpAbI.js.br +0 -0
  304. package/dist/web/assets/query-tab-B8aMpAbI.js.gz +0 -0
  305. package/dist/web/assets/react-BZ0kba1-.js +1 -0
  306. package/dist/web/assets/remote-access-settings-section-Bv0eawR4.js +1 -0
  307. package/dist/web/assets/remote-access-settings-section-Bv0eawR4.js.br +0 -0
  308. package/dist/web/assets/remote-access-settings-section-Bv0eawR4.js.gz +0 -0
  309. package/dist/web/assets/remote-desktop-clipboard-notice-BpDakRY0.js +1 -0
  310. package/dist/web/assets/remote-desktop-clipboard-notice-BpDakRY0.js.br +0 -0
  311. package/dist/web/assets/remote-desktop-clipboard-notice-BpDakRY0.js.gz +0 -0
  312. package/dist/web/assets/remote-desktop-mobile-sheet-C5GQ3kzY.js +2 -0
  313. package/dist/web/assets/remote-desktop-mobile-sheet-C5GQ3kzY.js.br +0 -0
  314. package/dist/web/assets/remote-desktop-mobile-sheet-C5GQ3kzY.js.gz +0 -0
  315. package/dist/web/assets/remote-desktop-mobile-view-CZb5EMEK.js +1 -0
  316. package/dist/web/assets/remote-desktop-mobile-view-CZb5EMEK.js.br +0 -0
  317. package/dist/web/assets/remote-desktop-mobile-view-CZb5EMEK.js.gz +0 -0
  318. package/dist/web/assets/remote-desktop-readiness-gate-CipNtLX5.js +1 -0
  319. package/dist/web/assets/remote-desktop-readiness-gate-CipNtLX5.js.br +0 -0
  320. package/dist/web/assets/remote-desktop-readiness-gate-CipNtLX5.js.gz +0 -0
  321. package/dist/web/assets/remote-desktop-settings-section-ZAsBRwjq.js +1 -0
  322. package/dist/web/assets/remote-desktop-settings-section-ZAsBRwjq.js.br +0 -0
  323. package/dist/web/assets/remote-desktop-settings-section-ZAsBRwjq.js.gz +0 -0
  324. package/dist/web/assets/remote-desktop-window-content-B7OXXvAM.js +1 -0
  325. package/dist/web/assets/remote-desktop-window-content-B7OXXvAM.js.br +0 -0
  326. package/dist/web/assets/remote-desktop-window-content-B7OXXvAM.js.gz +0 -0
  327. package/dist/web/assets/rename-object-dialog-B4W6S7Xg.js +1 -0
  328. package/dist/web/assets/rename-object-dialog-B4W6S7Xg.js.br +0 -0
  329. package/dist/web/assets/rename-object-dialog-B4W6S7Xg.js.gz +0 -0
  330. package/dist/web/assets/review-code-B4osj0k1.js +5 -0
  331. package/dist/web/assets/review-code-B4osj0k1.js.br +0 -0
  332. package/dist/web/assets/review-code-B4osj0k1.js.gz +0 -0
  333. package/dist/web/assets/run-in-terminal-button-m3i-Hcou.js +1 -0
  334. package/dist/web/assets/run-in-terminal-ujoc25vj.js +1 -0
  335. package/dist/web/assets/save-as-dialog-DpXv_f1d.js +1 -0
  336. package/dist/web/assets/save-as-dialog-DpXv_f1d.js.br +5 -0
  337. package/dist/web/assets/save-as-dialog-DpXv_f1d.js.gz +0 -0
  338. package/dist/web/assets/schedules-settings-section-BbaPbc28.js +1 -0
  339. package/dist/web/assets/schedules-settings-section-BbaPbc28.js.br +0 -0
  340. package/dist/web/assets/schedules-settings-section-BbaPbc28.js.gz +0 -0
  341. package/dist/web/assets/scroll-area-DOlQJGZp.js +1 -0
  342. package/dist/web/assets/scroll-area-DOlQJGZp.js.br +0 -0
  343. package/dist/web/assets/scroll-area-DOlQJGZp.js.gz +0 -0
  344. package/dist/web/assets/send-to-chat-CWV1qd3c.js +1 -0
  345. package/dist/web/assets/send-to-chat-CWV1qd3c.js.br +0 -0
  346. package/dist/web/assets/send-to-chat-CWV1qd3c.js.gz +0 -0
  347. package/dist/web/assets/separator-DmU9aJwq.js +1 -0
  348. package/dist/web/assets/services-panel-CZQOrvth.js +1 -0
  349. package/dist/web/assets/services-panel-CZQOrvth.js.br +0 -0
  350. package/dist/web/assets/services-panel-CZQOrvth.js.gz +0 -0
  351. package/dist/web/assets/session-changes-bar-VfS2sHuH.js +1 -0
  352. package/dist/web/assets/session-changes-bar-VfS2sHuH.js.br +0 -0
  353. package/dist/web/assets/session-changes-bar-VfS2sHuH.js.gz +0 -0
  354. package/dist/web/assets/session-list-sync-triggers-DtJI5KF0.js +1 -0
  355. package/dist/web/assets/session-list-sync-triggers-DtJI5KF0.js.br +0 -0
  356. package/dist/web/assets/session-list-sync-triggers-DtJI5KF0.js.gz +0 -0
  357. package/dist/web/assets/session-review-tab-Aq3FEooH.js +6 -0
  358. package/dist/web/assets/session-review-tab-Aq3FEooH.js.br +0 -0
  359. package/dist/web/assets/session-review-tab-Aq3FEooH.js.gz +0 -0
  360. package/dist/web/assets/settings-body-vXbOWchN.js +1 -0
  361. package/dist/web/assets/settings-body-vXbOWchN.js.br +0 -0
  362. package/dist/web/assets/settings-body-vXbOWchN.js.gz +0 -0
  363. package/dist/web/assets/settings-categories-Ajj4ui27.js +1 -0
  364. package/dist/web/assets/settings-categories-Ajj4ui27.js.br +0 -0
  365. package/dist/web/assets/settings-categories-Ajj4ui27.js.gz +0 -0
  366. package/dist/web/assets/settings-rows-DD7Gxmst.js +1 -0
  367. package/dist/web/assets/settings-rows-DD7Gxmst.js.br +0 -0
  368. package/dist/web/assets/settings-rows-DD7Gxmst.js.gz +0 -0
  369. package/dist/web/assets/settings-section-content-CVtvJ6ze.js +1 -0
  370. package/dist/web/assets/settings-section-content-DkUJFop6.js +2 -0
  371. package/dist/web/assets/settings-section-content-DkUJFop6.js.br +0 -0
  372. package/dist/web/assets/settings-section-content-DkUJFop6.js.gz +0 -0
  373. package/dist/web/assets/settings-store-B4mLp19V.js +2 -0
  374. package/dist/web/assets/settings-store-B4mLp19V.js.br +0 -0
  375. package/dist/web/assets/settings-store-B4mLp19V.js.gz +0 -0
  376. package/dist/web/assets/settings-tab-Cdv9_OIe.js +1 -0
  377. package/dist/web/assets/settings-window-content-DLa6Ph4u.js +1 -0
  378. package/dist/web/assets/share-BV49OI6q.css +2 -0
  379. package/dist/web/assets/share-BV49OI6q.css.br +0 -0
  380. package/dist/web/assets/share-BV49OI6q.css.gz +0 -0
  381. package/dist/web/assets/share-D5ufGmNI.js +9 -0
  382. package/dist/web/assets/share-D5ufGmNI.js.br +0 -0
  383. package/dist/web/assets/share-D5ufGmNI.js.gz +0 -0
  384. package/dist/web/assets/slash-command-picker-lILYDfK3.js +1 -0
  385. package/dist/web/assets/slash-command-picker-lILYDfK3.js.br +0 -0
  386. package/dist/web/assets/slash-command-picker-lILYDfK3.js.gz +0 -0
  387. package/dist/web/assets/sortable-header-DwzTFLkG.js +1 -0
  388. package/dist/web/assets/sortable-header-DwzTFLkG.js.br +0 -0
  389. package/dist/web/assets/sortable-header-DwzTFLkG.js.gz +0 -0
  390. package/dist/web/assets/split-sql-statements-DcAeXbk_.js +5 -0
  391. package/dist/web/assets/split-sql-statements-DcAeXbk_.js.br +0 -0
  392. package/dist/web/assets/split-sql-statements-DcAeXbk_.js.gz +0 -0
  393. package/dist/web/assets/sql-completion-provider-CS-ElfgJ.js +1 -0
  394. package/dist/web/assets/sql-completion-provider-CS-ElfgJ.js.br +0 -0
  395. package/dist/web/assets/sql-completion-provider-CS-ElfgJ.js.gz +0 -0
  396. package/dist/web/assets/sql-object-tab-Da42SMK5.js +1 -0
  397. package/dist/web/assets/sql-object-tab-Da42SMK5.js.br +0 -0
  398. package/dist/web/assets/sql-object-tab-Da42SMK5.js.gz +0 -0
  399. package/dist/web/assets/sqlite-viewer-V3SKNukY.js +1 -0
  400. package/dist/web/assets/sqlite-viewer-V3SKNukY.js.br +0 -0
  401. package/dist/web/assets/sqlite-viewer-V3SKNukY.js.gz +0 -0
  402. package/dist/web/assets/start-ellipsis-CU8GkxaV.js +1 -0
  403. package/dist/web/assets/structure-save-dialog-B635iyPI.js +1 -0
  404. package/dist/web/assets/structure-save-dialog-B635iyPI.js.br +0 -0
  405. package/dist/web/assets/structure-save-dialog-B635iyPI.js.gz +0 -0
  406. package/dist/web/assets/structure-tab-Co9d8ktU.js +3 -0
  407. package/dist/web/assets/structure-tab-Co9d8ktU.js.br +0 -0
  408. package/dist/web/assets/structure-tab-Co9d8ktU.js.gz +0 -0
  409. package/dist/web/assets/system-monitor-body-DC0j8RqP.js +2 -0
  410. package/dist/web/assets/system-monitor-body-DC0j8RqP.js.br +0 -0
  411. package/dist/web/assets/system-monitor-body-DC0j8RqP.js.gz +0 -0
  412. package/dist/web/assets/system-monitor-tab-DA8BcdXo.js +1 -0
  413. package/dist/web/assets/system-monitor-window-content-BiuLo8XW.js +1 -0
  414. package/dist/web/assets/tab-host-window-content-Crvt1r5F.js +1 -0
  415. package/dist/web/assets/tab-host-window-content-Crvt1r5F.js.br +0 -0
  416. package/dist/web/assets/tab-host-window-content-Crvt1r5F.js.gz +0 -0
  417. package/dist/web/assets/tab-store-D5I52eLN.js +1 -0
  418. package/dist/web/assets/table-tab-C2cYw7a0.js +2 -0
  419. package/dist/web/assets/table-tab-C2cYw7a0.js.br +0 -0
  420. package/dist/web/assets/table-tab-C2cYw7a0.js.gz +0 -0
  421. package/dist/web/assets/telegram-bot-token-field-BqNtOo5n.js +1 -0
  422. package/dist/web/assets/telegram-bot-token-field-BqNtOo5n.js.br +0 -0
  423. package/dist/web/assets/telegram-bot-token-field-BqNtOo5n.js.gz +0 -0
  424. package/dist/web/assets/terminal-tab-CrKxibGC.js +3 -0
  425. package/dist/web/assets/terminal-tab-CrKxibGC.js.br +0 -0
  426. package/dist/web/assets/terminal-tab-CrKxibGC.js.gz +0 -0
  427. package/dist/web/assets/tool-cards-BRto67jM.js +15 -0
  428. package/dist/web/assets/tool-cards-BRto67jM.js.br +0 -0
  429. package/dist/web/assets/tool-cards-BRto67jM.js.gz +0 -0
  430. package/dist/web/assets/tools-settings-section-DEvZsrxq.js +1 -0
  431. package/dist/web/assets/tools-settings-section-DEvZsrxq.js.br +0 -0
  432. package/dist/web/assets/tools-settings-section-DEvZsrxq.js.gz +0 -0
  433. package/dist/web/assets/use-at-most-wide-BHsrzvv3.js +1 -0
  434. package/dist/web/assets/use-blob-url-Clm7wbB_.js +1 -0
  435. package/dist/web/assets/use-db-driver-installed-anzWkGi5.js +1 -0
  436. package/dist/web/assets/use-db-read-BCYhIrJM.js +1 -0
  437. package/dist/web/assets/use-db-read-BCYhIrJM.js.br +0 -0
  438. package/dist/web/assets/use-db-read-BCYhIrJM.js.gz +0 -0
  439. package/dist/web/assets/use-db-tab-B8LjdDb7.js +1 -0
  440. package/dist/web/assets/use-db-tab-B8LjdDb7.js.br +0 -0
  441. package/dist/web/assets/use-db-tab-B8LjdDb7.js.gz +0 -0
  442. package/dist/web/assets/use-design-canvas-check-DBsLf1At.js +1 -0
  443. package/dist/web/assets/use-design-canvas-check-DBsLf1At.js.br +0 -0
  444. package/dist/web/assets/use-design-canvas-check-DBsLf1At.js.gz +0 -0
  445. package/dist/web/assets/use-h264-canvas-decoder-_zqeiVx8.js +1 -0
  446. package/dist/web/assets/use-h264-canvas-decoder-_zqeiVx8.js.br +0 -0
  447. package/dist/web/assets/use-h264-canvas-decoder-_zqeiVx8.js.gz +0 -0
  448. package/dist/web/assets/use-inline-blame-CRWJU6Rq.js +16 -0
  449. package/dist/web/assets/use-inline-blame-CRWJU6Rq.js.br +0 -0
  450. package/dist/web/assets/use-inline-blame-CRWJU6Rq.js.gz +0 -0
  451. package/dist/web/assets/use-is-mobile-VRV9eZy1.js +1 -0
  452. package/dist/web/assets/use-lsp-B-otjr-6.js +6 -0
  453. package/dist/web/assets/use-lsp-B-otjr-6.js.br +0 -0
  454. package/dist/web/assets/use-lsp-B-otjr-6.js.gz +0 -0
  455. package/dist/web/assets/use-monaco-theme-BiDXRJ4e.js +1 -0
  456. package/dist/web/assets/use-opener-focus-CDRKhHwX.js +1 -0
  457. package/dist/web/assets/use-process-kill-BW2UW0mZ.js +1 -0
  458. package/dist/web/assets/use-process-kill-BW2UW0mZ.js.br +0 -0
  459. package/dist/web/assets/use-process-kill-BW2UW0mZ.js.gz +0 -0
  460. package/dist/web/assets/use-sql-schema-info-D_Kc2FI7.js +4 -0
  461. package/dist/web/assets/use-sql-schema-info-D_Kc2FI7.js.br +0 -0
  462. package/dist/web/assets/use-sql-schema-info-D_Kc2FI7.js.gz +0 -0
  463. package/dist/web/assets/use-visual-viewport-MmugpRg-.js +1 -0
  464. package/dist/web/assets/use-websocket-n3Ud9vEA.js +1 -0
  465. package/dist/web/assets/vendor-markdown-C-P1aR4p.js +291 -0
  466. package/dist/web/assets/vendor-markdown-C-P1aR4p.js.br +0 -0
  467. package/dist/web/assets/vendor-markdown-C-P1aR4p.js.gz +0 -0
  468. package/dist/web/assets/vendor-ui-BTSIXzhZ.js +45 -0
  469. package/dist/web/assets/vendor-ui-BTSIXzhZ.js.br +0 -0
  470. package/dist/web/assets/vendor-ui-BTSIXzhZ.js.gz +0 -0
  471. package/dist/web/assets/video-preview-CjB6wesi.js +1 -0
  472. package/dist/web/assets/video-preview-CjB6wesi.js.br +0 -0
  473. package/dist/web/assets/video-preview-CjB6wesi.js.gz +0 -0
  474. package/dist/web/assets/voice-settings-section-C6Wb6q5o.js +1 -0
  475. package/dist/web/assets/voice-settings-section-C6Wb6q5o.js.br +0 -0
  476. package/dist/web/assets/voice-settings-section-C6Wb6q5o.js.gz +0 -0
  477. package/dist/web/assets/web-preview-tab-doNpegW3.js +1 -0
  478. package/dist/web/assets/web-preview-tab-doNpegW3.js.br +0 -0
  479. package/dist/web/assets/web-preview-tab-doNpegW3.js.gz +0 -0
  480. package/dist/web/assets/window-store-DqX_qmkQ.js +1 -0
  481. package/dist/web/assets/window-store-DqX_qmkQ.js.br +0 -0
  482. package/dist/web/assets/window-store-DqX_qmkQ.js.gz +0 -0
  483. package/dist/web/assets/ws-auth-CbF6GqxP.js +1 -0
  484. package/dist/web/design-share-page/index.html +18 -0
  485. package/dist/web/index.html +47 -47
  486. package/dist/web/index.html.br +0 -0
  487. package/dist/web/index.html.gz +0 -0
  488. package/dist/web/sw.js +1 -1
  489. package/dist/web/sw.js.br +0 -0
  490. package/dist/web/sw.js.gz +0 -0
  491. package/docs/architecture/ai-chat-and-providers.md +258 -26
  492. package/docs/architecture/data-and-storage.md +9 -3
  493. package/docs/architecture/workspace-and-ui.md +42 -5
  494. package/docs/project-roadmap.md +5 -0
  495. package/package.json +6 -2
  496. package/scripts/gen-product-icons.ts +1 -0
  497. package/src/cli/commands/db-cmd.ts +79 -1
  498. package/src/providers/claude-agent-sdk-query-options.ts +42 -10
  499. package/src/providers/claude-agent-sdk.ts +19 -6
  500. package/src/providers/codex-app-server/codex-provider.ts +9 -3
  501. package/src/providers/codex-app-server/codex-thread-params.ts +34 -4
  502. package/src/server/index.ts +17 -5
  503. package/src/server/middleware/access-log.ts +6 -3
  504. package/src/server/routes/accounts.ts +3 -2
  505. package/src/server/routes/chat-file-changes.ts +15 -1
  506. package/src/server/routes/chat.ts +92 -18
  507. package/src/server/routes/database-query.ts +14 -5
  508. package/src/server/routes/database.ts +14 -0
  509. package/src/server/routes/debug-crash.ts +30 -0
  510. package/src/server/routes/design-comments.ts +56 -7
  511. package/src/server/routes/design-share-address.ts +20 -0
  512. package/src/server/routes/design-share-guest-comments.ts +120 -0
  513. package/src/server/routes/design-share-guest-files.ts +99 -0
  514. package/src/server/routes/design-share-guest-shared.ts +95 -0
  515. package/src/server/routes/design-share-guest.ts +77 -0
  516. package/src/server/routes/design-shares.ts +90 -0
  517. package/src/server/routes/designs.ts +2 -0
  518. package/src/server/routes/settings.ts +12 -0
  519. package/src/server/routes/static.ts +10 -2
  520. package/src/server/ws/chat.ts +113 -39
  521. package/src/server/ws/global.ts +10 -8
  522. package/src/services/account.service.ts +57 -18
  523. package/src/services/chat.service.ts +16 -6
  524. package/src/services/db-ai-tools/db-ai-connections.ts +48 -0
  525. package/src/services/db-ai-tools/db-ai-format.ts +107 -0
  526. package/src/services/db-ai-tools/db-ai-run.ts +199 -0
  527. package/src/services/db-ai-tools/db-ai-target.ts +59 -0
  528. package/src/services/db-ai-tools/db-ai-tools-endpoint.ts +225 -0
  529. package/src/services/db-ai-tools/db-ai-tools-tokens.ts +33 -0
  530. package/src/services/db-ai-tools/db-ai-tools-tool.ts +131 -0
  531. package/src/services/db-ai-tools/db-approval-broker.ts +157 -0
  532. package/src/services/db.service.ts +25 -1
  533. package/src/services/design/bridge/bridge-picker.ts +15 -5
  534. package/src/services/design/bridge/guest-bridge.ts +19 -0
  535. package/src/services/design/comments/design-comment-element-context.ts +28 -6
  536. package/src/services/design/comments/design-comment-input.ts +47 -0
  537. package/src/services/design/comments/design-comment-views.ts +146 -0
  538. package/src/services/design/comments/design-comments-revision.ts +19 -0
  539. package/src/services/design/comments/design-comments-store.ts +82 -9
  540. package/src/services/design/design-comment-replies.service.ts +126 -0
  541. package/src/services/design/design-comments.service.ts +77 -34
  542. package/src/services/design/design-restore.service.ts +6 -2
  543. package/src/services/design/design-snapshots.service.ts +8 -2
  544. package/src/services/design/design-store.service.ts +7 -1
  545. package/src/services/design/design-write-rate-limit.ts +11 -17
  546. package/src/services/design/preview/design-guest-alias.ts +64 -0
  547. package/src/services/design/preview/design-preview-html.ts +16 -3
  548. package/src/services/design/preview/design-preview-scope.ts +29 -5
  549. package/src/services/design/share/design-share-address.ts +81 -0
  550. package/src/services/design/share/design-share-changed-files.ts +74 -0
  551. package/src/services/design/share/design-share-client-key.ts +72 -0
  552. package/src/services/design/share/design-share-code.ts +116 -0
  553. package/src/services/design/share/design-share-comments.service.ts +162 -0
  554. package/src/services/design/share/design-share-guest-link.ts +109 -0
  555. package/src/services/design/share/design-share-guest-page.ts +86 -0
  556. package/src/services/design/share/design-share-link-rules.ts +83 -0
  557. package/src/services/design/share/design-share-links-store.ts +157 -0
  558. package/src/services/design/share/design-share-links.service.ts +174 -0
  559. package/src/services/design/share/design-share-notifier.ts +192 -0
  560. package/src/services/design/share/design-share-rate-limit.ts +71 -0
  561. package/src/services/design/share/design-share-resolve.ts +31 -0
  562. package/src/services/mcp-http-endpoint.ts +23 -10
  563. package/src/services/mysql.service.ts +6 -2
  564. package/src/services/notification-format.ts +10 -2
  565. package/src/services/notification-link.ts +1 -1
  566. package/src/services/notification.service.ts +47 -15
  567. package/src/services/ppm-password.ts +26 -0
  568. package/src/services/project-name-for-path.ts +18 -0
  569. package/src/services/query-audit/query-audit.service.ts +7 -4
  570. package/src/services/remote-desktop/access-unit-assembler.ts +11 -7
  571. package/src/services/remote-desktop/nal-splitter.ts +14 -1
  572. package/src/services/remote-desktop/remote-desktop-capture-wayland.ts +47 -21
  573. package/src/services/remote-desktop/remote-desktop-encoder-args.ts +5 -3
  574. package/src/services/session-file-baselines/session-file-baselines.service.ts +48 -0
  575. package/src/services/session-file-baselines/session-file-blame.ts +57 -24
  576. package/src/services/session-file-baselines/session-file-changes.service.ts +220 -22
  577. package/src/services/session-file-baselines/session-file-history.ts +5 -1
  578. package/src/services/session-file-baselines/session-file-writes.ts +28 -0
  579. package/src/services/sliding-window-limiter.ts +106 -0
  580. package/src/services/tab-tools-mcp/open-url-tool.ts +149 -0
  581. package/src/services/tab-tools-mcp/tab-open-broker.ts +12 -4
  582. package/src/services/tab-tools-mcp/tab-tools-mcp-endpoint.ts +66 -22
  583. package/src/services/tab-tools-mcp/tab-tools-mcp-tokens.ts +3 -1
  584. package/src/services/tab-tools-mcp/tab-tools-mcp-tool.ts +78 -6
  585. package/src/services/tab-tools-mcp/terminal-text.ts +45 -0
  586. package/src/services/tab-tools-mcp/terminal-tools.ts +297 -0
  587. package/src/services/terminal.service.ts +39 -4
  588. package/src/shared/db-ai-tools.ts +118 -0
  589. package/src/shared/db-query-script.ts +16 -0
  590. package/src/shared/design-comment-thread-types.ts +80 -0
  591. package/src/shared/design-comment-types.ts +53 -4
  592. package/src/shared/design-share-guest-types.ts +59 -0
  593. package/src/shared/design-share-types.ts +100 -0
  594. package/src/shared/notification-settings.ts +4 -3
  595. package/src/shared/ppm-tools.ts +39 -0
  596. package/src/shared/session-file-changes.ts +16 -0
  597. package/src/shared/tab-open-protocol.ts +50 -6
  598. package/src/shared/untrusted-text.ts +15 -1
  599. package/src/types/chat.ts +7 -1
  600. package/src/types/config.ts +5 -2
  601. package/src/types/database.ts +6 -0
  602. package/src/web/components/chat/chat-history-bar.tsx +10 -6
  603. package/src/web/components/chat/chat-tab.tsx +7 -1
  604. package/src/web/components/chat/db-execute-approval-card.tsx +100 -0
  605. package/src/web/components/chat/db-tool-card.tsx +42 -0
  606. package/src/web/components/chat/device-tool-card.tsx +45 -0
  607. package/src/web/components/chat/message-input.tsx +9 -6
  608. package/src/web/components/chat/message-list.tsx +6 -1
  609. package/src/web/components/chat/message-markdown.tsx +6 -3
  610. package/src/web/components/chat/message-user-bubble.tsx +2 -1
  611. package/src/web/components/chat/model-thinking-selector.tsx +6 -4
  612. package/src/web/components/chat/prompt-cache-chip.tsx +1 -1
  613. package/src/web/components/chat/running-agents-bar.tsx +164 -76
  614. package/src/web/components/chat/session-changes-bar.tsx +46 -13
  615. package/src/web/components/chat/tool-cards.tsx +29 -1
  616. package/src/web/components/chat/turn-change-rollup.tsx +8 -1
  617. package/src/web/components/chat/usage-badge.tsx +3 -3
  618. package/src/web/components/database/query/query-run-state.ts +11 -1
  619. package/src/web/components/database/query/query-tab.tsx +33 -7
  620. package/src/web/components/database/query/use-query-runner.ts +3 -0
  621. package/src/web/components/database/query/write-once-dialog.tsx +70 -0
  622. package/src/web/components/design/canvas/design-canvas-pane.tsx +5 -2
  623. package/src/web/components/design/comments/comment-author-label.tsx +23 -0
  624. package/src/web/components/design/comments/comment-composer.tsx +6 -14
  625. package/src/web/components/design/comments/comment-pins-overlay.tsx +8 -3
  626. package/src/web/components/design/comments/comment-thread-replies.tsx +82 -0
  627. package/src/web/components/design/comments/comment-thread-text-box.tsx +69 -0
  628. package/src/web/components/design/comments/comment-thread-view.tsx +115 -0
  629. package/src/web/components/design/comments/comments-panel.tsx +33 -10
  630. package/src/web/components/design/comments/comments-send-preview.tsx +20 -8
  631. package/src/web/components/design/comments/design-comments-layer.tsx +3 -1
  632. package/src/web/components/design/comments/use-comment-pins.ts +3 -0
  633. package/src/web/components/design/comments/use-design-comments-feature.ts +40 -25
  634. package/src/web/components/design/comments/use-design-comments.ts +44 -12
  635. package/src/web/components/design/design-split-layout.tsx +106 -10
  636. package/src/web/components/design/design-tab-context.ts +2 -0
  637. package/src/web/components/design/design-tab.tsx +5 -1
  638. package/src/web/components/design/design-toolbar.tsx +24 -4
  639. package/src/web/components/design/share/design-share-dialog.tsx +81 -0
  640. package/src/web/components/design/share/new-share-link-form.tsx +85 -0
  641. package/src/web/components/design/share/share-address-block.tsx +101 -0
  642. package/src/web/components/design/share/share-changed-files.tsx +30 -0
  643. package/src/web/components/design/share/share-expiry-picker.tsx +44 -0
  644. package/src/web/components/design/share/share-repin-panel.tsx +64 -0
  645. package/src/web/components/design/share/share-row-panel.tsx +35 -0
  646. package/src/web/components/design/share/share-version-picker.tsx +67 -0
  647. package/src/web/components/design/share/shared-link-action-panels.tsx +120 -0
  648. package/src/web/components/design/share/shared-link-row.tsx +131 -0
  649. package/src/web/components/design/share/shared-links-list.tsx +33 -0
  650. package/src/web/components/design/share/use-share-address.ts +74 -0
  651. package/src/web/components/design/share/use-share-links.ts +93 -0
  652. package/src/web/components/design/use-design-layout.ts +7 -4
  653. package/src/web/components/editor/diff-viewer.tsx +16 -12
  654. package/src/web/components/editor/docx-preview.tsx +7 -2
  655. package/src/web/components/floating-window/close-window.ts +32 -0
  656. package/src/web/components/floating-window/floating-window.tsx +65 -24
  657. package/src/web/components/floating-window/open-tab-in-pip.ts +3 -0
  658. package/src/web/components/floating-window/use-window-drag.ts +33 -7
  659. package/src/web/components/floating-window/use-window-meta.ts +138 -0
  660. package/src/web/components/floating-window/window-chrome-contract.ts +19 -2
  661. package/src/web/components/floating-window/window-dock-layout.ts +72 -0
  662. package/src/web/components/floating-window/window-dock-list.tsx +156 -0
  663. package/src/web/components/floating-window/window-dock.tsx +192 -0
  664. package/src/web/components/floating-window/window-geometry.ts +39 -1
  665. package/src/web/components/floating-window/window-layer.tsx +59 -23
  666. package/src/web/components/floating-window/window-persistence.ts +16 -3
  667. package/src/web/components/floating-window/window-store-types.ts +13 -2
  668. package/src/web/components/floating-window/window-store.ts +75 -8
  669. package/src/web/components/floating-window/window-title-identity.tsx +86 -0
  670. package/src/web/components/layout/status-bar.tsx +3 -0
  671. package/src/web/components/layout/tab-pop-out-menu-item.tsx +2 -2
  672. package/src/web/components/logs/open-logs.ts +0 -1
  673. package/src/web/components/os-explorer/actions/explorer-actions-upload.ts +2 -1
  674. package/src/web/components/os-explorer/skins/macos-window-chrome.tsx +17 -11
  675. package/src/web/components/os-explorer/skins/windows-window-chrome.tsx +14 -5
  676. package/src/web/components/remote-desktop/use-remote-desktop-readiness.ts +8 -3
  677. package/src/web/components/settings/accounts/account-add-dialog.tsx +25 -13
  678. package/src/web/components/settings/accounts/claude-accounts-section.tsx +3 -3
  679. package/src/web/components/settings/ai-settings-section.tsx +0 -20
  680. package/src/web/components/settings/design-settings-section.tsx +3 -0
  681. package/src/web/components/settings/design-window-setting.tsx +28 -0
  682. package/src/web/components/settings/settings-categories.ts +3 -0
  683. package/src/web/components/settings/settings-section-content.tsx +1 -0
  684. package/src/web/components/settings/tools-settings-section.tsx +120 -0
  685. package/src/web/components/shared/docx-html-sanitize.ts +59 -0
  686. package/src/web/components/shared/markdown-code-block.tsx +3 -1
  687. package/src/web/components/shared/markdown-renderer.tsx +15 -3
  688. package/src/web/components/shared/markdown-sanitize.ts +65 -0
  689. package/src/web/components/web-preview/web-preview-tab.tsx +6 -3
  690. package/src/web/design-share-page/index.html +17 -0
  691. package/src/web/design-share-page/main.tsx +11 -0
  692. package/src/web/design-share-page/share-api.ts +131 -0
  693. package/src/web/design-share-page/share-app.tsx +14 -0
  694. package/src/web/design-share-page/share-bottom-sheet.tsx +61 -0
  695. package/src/web/design-share-page/share-canvas.tsx +92 -0
  696. package/src/web/design-share-page/share-composer.tsx +104 -0
  697. package/src/web/design-share-page/share-entry.tsx +92 -0
  698. package/src/web/design-share-page/share-identity.ts +81 -0
  699. package/src/web/design-share-page/share-name-prompt.tsx +59 -0
  700. package/src/web/design-share-page/share-panel-content.tsx +57 -0
  701. package/src/web/design-share-page/share-pins-overlay.tsx +50 -0
  702. package/src/web/design-share-page/share-review.tsx +123 -0
  703. package/src/web/design-share-page/share-states.tsx +78 -0
  704. package/src/web/design-share-page/share-thread-model.ts +83 -0
  705. package/src/web/design-share-page/share-thread-view.tsx +61 -0
  706. package/src/web/design-share-page/share-threads-panel.tsx +103 -0
  707. package/src/web/design-share-page/share-toolbar.tsx +105 -0
  708. package/src/web/design-share-page/share-ui.ts +30 -0
  709. package/src/web/design-share-page/share.css +63 -0
  710. package/src/web/design-share-page/use-share-canvas.ts +51 -0
  711. package/src/web/design-share-page/use-share-info.ts +34 -0
  712. package/src/web/design-share-page/use-share-session.ts +75 -0
  713. package/src/web/design-share-page/use-share-threads.ts +139 -0
  714. package/src/web/hooks/use-chat.ts +5 -2
  715. package/src/web/hooks/use-design-session-redirect.ts +3 -2
  716. package/src/web/hooks/use-git-repo.ts +36 -16
  717. package/src/web/hooks/use-global-events.ts +4 -0
  718. package/src/web/hooks/use-inline-blame.ts +17 -11
  719. package/src/web/hooks/use-notification-clicks.ts +23 -5
  720. package/src/web/hooks/use-session-file-changes.ts +118 -41
  721. package/src/web/hooks/use-url-sync.ts +5 -4
  722. package/src/web/lib/api-settings.ts +2 -0
  723. package/src/web/lib/chat-attempt-lifecycle.ts +3 -1
  724. package/src/web/lib/db-tool-call.ts +57 -0
  725. package/src/web/lib/design/api-design-comments.ts +39 -9
  726. package/src/web/lib/design/api-design-shares.ts +47 -0
  727. package/src/web/lib/design/design-comments-prompt.ts +108 -23
  728. package/src/web/lib/design/design-layout-mode.ts +16 -1
  729. package/src/web/lib/design/design-share-address-state.ts +88 -0
  730. package/src/web/lib/design/design-share-expiry.ts +96 -0
  731. package/src/web/lib/design/design-share-link-status.ts +66 -0
  732. package/src/web/lib/design/design-view-prefs.ts +20 -1
  733. package/src/web/lib/design/open-design-tab.ts +54 -1
  734. package/src/web/lib/git-repo-scope.ts +60 -0
  735. package/src/web/lib/icons.generated.tsx +3 -1
  736. package/src/web/lib/model-display-name.ts +16 -0
  737. package/src/web/lib/open-ai-tab.ts +129 -19
  738. package/src/web/lib/running-agent-rows.ts +52 -0
  739. package/src/web/lib/session-file-changes-client.ts +6 -0
  740. package/src/web/lib/session-file-changes.ts +13 -0
  741. package/src/web/lib/tab-tool-call.ts +37 -1
  742. package/src/web/lib/utils.ts +4 -1
  743. package/src/web/stores/panel-store.ts +13 -1
  744. package/src/web/stores/panel-utils.ts +9 -4
  745. package/src/web/stores/settings-store.ts +14 -0
  746. package/src/web/stores/window-panel-actions.ts +21 -3
  747. package/src/web/stores/window-panel-persistence.ts +2 -1
  748. package/src/web/sw-notification-click.ts +12 -1
  749. package/templates/skill/SKILL.md.tmpl +2 -1
  750. package/templates/skill/common-tasks.md +6 -0
  751. package/vite.config.ts +10 -0
  752. package/vite.share.config.ts +43 -0
  753. package/dist/web/assets/accounts-settings-section-DU-lTifs.js +0 -1
  754. package/dist/web/assets/accounts-settings-section-DU-lTifs.js.br +0 -0
  755. package/dist/web/assets/accounts-settings-section-DU-lTifs.js.gz +0 -0
  756. package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js +0 -1
  757. package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js.br +0 -0
  758. package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js.gz +0 -0
  759. package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js +0 -2
  760. package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js.br +0 -0
  761. package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js.gz +0 -0
  762. package/dist/web/assets/agent-session-sheet-store-BoBrAw5i.js +0 -1
  763. package/dist/web/assets/agent-session-window-content-CB_uvabH.js +0 -1
  764. package/dist/web/assets/agent-session-window-content-CB_uvabH.js.br +0 -0
  765. package/dist/web/assets/agent-session-window-content-CB_uvabH.js.gz +0 -0
  766. package/dist/web/assets/ai-resource-editor-Czearm3I.js +0 -1
  767. package/dist/web/assets/ai-resource-editor-Czearm3I.js.br +0 -0
  768. package/dist/web/assets/ai-resource-editor-Czearm3I.js.gz +0 -0
  769. package/dist/web/assets/ai-settings-section-AOgAUCgH.js +0 -1
  770. package/dist/web/assets/ai-settings-section-B_OFMlrt.js +0 -1
  771. package/dist/web/assets/ai-settings-section-B_OFMlrt.js.br +0 -0
  772. package/dist/web/assets/ai-settings-section-B_OFMlrt.js.gz +0 -0
  773. package/dist/web/assets/android-tab-L7DmLfHG.js +0 -2
  774. package/dist/web/assets/android-tab-L7DmLfHG.js.br +0 -0
  775. package/dist/web/assets/android-tab-L7DmLfHG.js.gz +0 -0
  776. package/dist/web/assets/api-client-DAQfiXg0.js +0 -1
  777. package/dist/web/assets/api-client-OiA8Ida1.js +0 -1
  778. package/dist/web/assets/api-client-OiA8Ida1.js.br +0 -0
  779. package/dist/web/assets/api-client-OiA8Ida1.js.gz +0 -0
  780. package/dist/web/assets/api-settings-D2H6gjen.js +0 -1
  781. package/dist/web/assets/api-settings-D2H6gjen.js.br +0 -0
  782. package/dist/web/assets/api-settings-D2H6gjen.js.gz +0 -0
  783. package/dist/web/assets/api-settings-DHhcUHtx.js +0 -1
  784. package/dist/web/assets/api-themes-CE8gPZ3X.js +0 -1
  785. package/dist/web/assets/appearance-settings-section-s3KWKTBm.js +0 -1
  786. package/dist/web/assets/appearance-settings-section-s3KWKTBm.js.br +0 -0
  787. package/dist/web/assets/appearance-settings-section-s3KWKTBm.js.gz +0 -0
  788. package/dist/web/assets/apps-panel-DaojtUvh.js +0 -1
  789. package/dist/web/assets/apps-panel-DaojtUvh.js.br +0 -0
  790. package/dist/web/assets/apps-panel-DaojtUvh.js.gz +0 -0
  791. package/dist/web/assets/audio-preview-CWcPZqTA.js +0 -1
  792. package/dist/web/assets/audio-preview-CWcPZqTA.js.br +0 -4
  793. package/dist/web/assets/audio-preview-CWcPZqTA.js.gz +0 -0
  794. package/dist/web/assets/branch-review-tab-9UB4ccpF.js +0 -1
  795. package/dist/web/assets/branch-review-tab-9UB4ccpF.js.br +0 -0
  796. package/dist/web/assets/branch-review-tab-9UB4ccpF.js.gz +0 -0
  797. package/dist/web/assets/button-Br60hGkw.js +0 -1
  798. package/dist/web/assets/button-Br60hGkw.js.br +0 -0
  799. package/dist/web/assets/button-Br60hGkw.js.gz +0 -0
  800. package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js +0 -1
  801. package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js.br +0 -0
  802. package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js.gz +0 -0
  803. package/dist/web/assets/chat-tab-DMVb_mgx.js +0 -1
  804. package/dist/web/assets/chat-tab-DMVb_mgx.js.br +0 -0
  805. package/dist/web/assets/chat-tab-DMVb_mgx.js.gz +0 -0
  806. package/dist/web/assets/chat-tab-s7uAnh-h.js +0 -17
  807. package/dist/web/assets/chat-tab-s7uAnh-h.js.br +0 -0
  808. package/dist/web/assets/chat-tab-s7uAnh-h.js.gz +0 -0
  809. package/dist/web/assets/code-editor-JK49X9EX.js +0 -10
  810. package/dist/web/assets/code-editor-JK49X9EX.js.br +0 -0
  811. package/dist/web/assets/code-editor-JK49X9EX.js.gz +0 -0
  812. package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js +0 -1
  813. package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js.br +0 -0
  814. package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js.gz +0 -0
  815. package/dist/web/assets/conflict-editor-rOpVkK9P.js +0 -19
  816. package/dist/web/assets/conflict-editor-rOpVkK9P.js.br +0 -0
  817. package/dist/web/assets/conflict-editor-rOpVkK9P.js.gz +0 -0
  818. package/dist/web/assets/connection-form-tab-BGmb918E.js +0 -4
  819. package/dist/web/assets/connection-form-tab-BGmb918E.js.br +0 -0
  820. package/dist/web/assets/connection-form-tab-BGmb918E.js.gz +0 -0
  821. package/dist/web/assets/context-menu-BoQ6lxte.js +0 -1
  822. package/dist/web/assets/context-menu-BoQ6lxte.js.br +0 -0
  823. package/dist/web/assets/context-menu-BoQ6lxte.js.gz +0 -0
  824. package/dist/web/assets/createLucideIcon-DBXq3G0e.js +0 -1
  825. package/dist/web/assets/createLucideIcon-DBXq3G0e.js.br +0 -0
  826. package/dist/web/assets/createLucideIcon-DBXq3G0e.js.gz +0 -0
  827. package/dist/web/assets/csv-preview-CM7su92m.js +0 -10
  828. package/dist/web/assets/csv-preview-CM7su92m.js.br +0 -0
  829. package/dist/web/assets/csv-preview-CM7su92m.js.gz +0 -0
  830. package/dist/web/assets/database-drivers-section-C6ZKPWaE.js +0 -1
  831. package/dist/web/assets/database-drivers-section-C6ZKPWaE.js.br +0 -0
  832. package/dist/web/assets/database-drivers-section-C6ZKPWaE.js.gz +0 -0
  833. package/dist/web/assets/db-explorer-store-BcLxq-X0.js +0 -1
  834. package/dist/web/assets/db-explorer-store-BcLxq-X0.js.br +0 -0
  835. package/dist/web/assets/db-explorer-store-BcLxq-X0.js.gz +0 -0
  836. package/dist/web/assets/db-tab-parts-DvmnlA6V.js +0 -1
  837. package/dist/web/assets/db-tab-parts-DvmnlA6V.js.br +0 -0
  838. package/dist/web/assets/db-tab-parts-DvmnlA6V.js.gz +0 -0
  839. package/dist/web/assets/db-types-9ac-eYxf.js +0 -1
  840. package/dist/web/assets/db-types-9ac-eYxf.js.br +0 -0
  841. package/dist/web/assets/db-types-9ac-eYxf.js.gz +0 -0
  842. package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js +0 -1
  843. package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js.br +0 -0
  844. package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js.gz +0 -0
  845. package/dist/web/assets/design-export-client-ClwRg798.js +0 -1
  846. package/dist/web/assets/design-export-client-ClwRg798.js.br +0 -0
  847. package/dist/web/assets/design-export-client-ClwRg798.js.gz +0 -0
  848. package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js +0 -1
  849. package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js.br +0 -0
  850. package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js.gz +0 -0
  851. package/dist/web/assets/design-settings-section-CuxZSLAr.js +0 -2
  852. package/dist/web/assets/design-settings-section-CuxZSLAr.js.br +0 -0
  853. package/dist/web/assets/design-settings-section-CuxZSLAr.js.gz +0 -0
  854. package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js +0 -3
  855. package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js.br +0 -0
  856. package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js.gz +0 -0
  857. package/dist/web/assets/design-tab-JlKmHVkd.js +0 -57
  858. package/dist/web/assets/design-tab-JlKmHVkd.js.br +0 -0
  859. package/dist/web/assets/design-tab-JlKmHVkd.js.gz +0 -0
  860. package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js +0 -1
  861. package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js.br +0 -0
  862. package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js.gz +0 -0
  863. package/dist/web/assets/dialog-DOaEX6AK.js +0 -1
  864. package/dist/web/assets/dialog-DOaEX6AK.js.br +0 -0
  865. package/dist/web/assets/dialog-DOaEX6AK.js.gz +0 -0
  866. package/dist/web/assets/diff-viewer-FidH7Nsq.js +0 -4
  867. package/dist/web/assets/diff-viewer-FidH7Nsq.js.br +0 -0
  868. package/dist/web/assets/diff-viewer-FidH7Nsq.js.gz +0 -0
  869. package/dist/web/assets/docx-preview-ENiLGqzy.js +0 -12
  870. package/dist/web/assets/docx-preview-ENiLGqzy.js.br +0 -0
  871. package/dist/web/assets/docx-preview-ENiLGqzy.js.gz +0 -0
  872. package/dist/web/assets/dropdown-menu-DB3yyoVz.js +0 -1
  873. package/dist/web/assets/dropdown-menu-DB3yyoVz.js.br +0 -0
  874. package/dist/web/assets/dropdown-menu-DB3yyoVz.js.gz +0 -0
  875. package/dist/web/assets/edit-diff-preview-D4EqC86X.js +0 -7
  876. package/dist/web/assets/edit-diff-preview-D4EqC86X.js.br +0 -0
  877. package/dist/web/assets/edit-diff-preview-D4EqC86X.js.gz +0 -0
  878. package/dist/web/assets/editor-dialog-DC7dUWAX.js +0 -1
  879. package/dist/web/assets/editor-dialog-DC7dUWAX.js.br +0 -0
  880. package/dist/web/assets/editor-dialog-DC7dUWAX.js.gz +0 -0
  881. package/dist/web/assets/editor-language-service-0pN0TxYN.js +0 -1
  882. package/dist/web/assets/editor-language-service-0pN0TxYN.js.br +0 -0
  883. package/dist/web/assets/editor-language-service-0pN0TxYN.js.gz +0 -0
  884. package/dist/web/assets/explorer-body-tFaUp9_Q.js +0 -2
  885. package/dist/web/assets/explorer-body-tFaUp9_Q.js.br +0 -0
  886. package/dist/web/assets/explorer-body-tFaUp9_Q.js.gz +0 -0
  887. package/dist/web/assets/explorer-model-BmgFEsj1.js +0 -1
  888. package/dist/web/assets/explorer-model-BmgFEsj1.js.br +0 -0
  889. package/dist/web/assets/explorer-model-BmgFEsj1.js.gz +0 -0
  890. package/dist/web/assets/explorer-window-content-XnRTZT_X.js +0 -1
  891. package/dist/web/assets/explorer-window-content-XnRTZT_X.js.br +0 -0
  892. package/dist/web/assets/explorer-window-content-XnRTZT_X.js.gz +0 -0
  893. package/dist/web/assets/extension-manager-section-DEbwRPf1.js +0 -1
  894. package/dist/web/assets/extension-manager-section-DEbwRPf1.js.br +0 -0
  895. package/dist/web/assets/extension-manager-section-DEbwRPf1.js.gz +0 -0
  896. package/dist/web/assets/extension-webview-C9ApceLU.js +0 -12
  897. package/dist/web/assets/extension-webview-C9ApceLU.js.br +0 -0
  898. package/dist/web/assets/extension-webview-C9ApceLU.js.gz +0 -0
  899. package/dist/web/assets/file-diff-lX1a7RLF.js +0 -1
  900. package/dist/web/assets/file-icons-DpwcJLL4.js +0 -1
  901. package/dist/web/assets/file-icons-DpwcJLL4.js.br +0 -0
  902. package/dist/web/assets/file-icons-DpwcJLL4.js.gz +0 -0
  903. package/dist/web/assets/file-store-Bk1WYfdy.js +0 -1
  904. package/dist/web/assets/file-store-Bk1WYfdy.js.br +0 -0
  905. package/dist/web/assets/file-store-Bk1WYfdy.js.gz +0 -0
  906. package/dist/web/assets/files-settings-section-C8MacVFQ.js +0 -1
  907. package/dist/web/assets/files-settings-section-C8MacVFQ.js.br +0 -0
  908. package/dist/web/assets/files-settings-section-C8MacVFQ.js.gz +0 -0
  909. package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js +0 -1
  910. package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js.br +0 -0
  911. package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js.gz +0 -0
  912. package/dist/web/assets/format-file-meta-C0LKHE3e.js +0 -1
  913. package/dist/web/assets/format-file-meta-C0LKHE3e.js.br +0 -0
  914. package/dist/web/assets/format-file-meta-C0LKHE3e.js.gz +0 -0
  915. package/dist/web/assets/fs-api-BQrIEcvo.js +0 -1
  916. package/dist/web/assets/fs-api-BQrIEcvo.js.br +0 -0
  917. package/dist/web/assets/fs-api-BQrIEcvo.js.gz +0 -0
  918. package/dist/web/assets/general-settings-section-DZRRGdlQ.js +0 -1
  919. package/dist/web/assets/general-settings-section-DZRRGdlQ.js.br +0 -0
  920. package/dist/web/assets/general-settings-section-DZRRGdlQ.js.gz +0 -0
  921. package/dist/web/assets/git-commit-horizontal-BVihXafd.js +0 -1
  922. package/dist/web/assets/git-log-panel-g2pBnu6r.js +0 -1
  923. package/dist/web/assets/git-log-panel-g2pBnu6r.js.br +0 -0
  924. package/dist/web/assets/git-log-panel-g2pBnu6r.js.gz +0 -0
  925. package/dist/web/assets/git-repo-store-BOYLnV67.js +0 -1
  926. package/dist/web/assets/git-repo-store-BOYLnV67.js.br +0 -0
  927. package/dist/web/assets/git-repo-store-BOYLnV67.js.gz +0 -0
  928. package/dist/web/assets/git-review-tab-BzI5mxWd.js +0 -3
  929. package/dist/web/assets/git-review-tab-BzI5mxWd.js.br +0 -0
  930. package/dist/web/assets/git-review-tab-BzI5mxWd.js.gz +0 -0
  931. package/dist/web/assets/glide-data-grid-BxvI3ehr.js +0 -177
  932. package/dist/web/assets/glide-data-grid-BxvI3ehr.js.br +0 -0
  933. package/dist/web/assets/glide-data-grid-BxvI3ehr.js.gz +0 -0
  934. package/dist/web/assets/grid-save-dialog-D55Po6Vu.js +0 -2
  935. package/dist/web/assets/grid-save-dialog-D55Po6Vu.js.br +0 -0
  936. package/dist/web/assets/grid-save-dialog-D55Po6Vu.js.gz +0 -0
  937. package/dist/web/assets/group-chat-tab-CoMC-Fx1.js +0 -1
  938. package/dist/web/assets/group-chat-tab-CoMC-Fx1.js.br +0 -0
  939. package/dist/web/assets/group-chat-tab-CoMC-Fx1.js.gz +0 -0
  940. package/dist/web/assets/icons-JMA45Ifw.js +0 -1
  941. package/dist/web/assets/icons-JMA45Ifw.js.br +0 -0
  942. package/dist/web/assets/icons-JMA45Ifw.js.gz +0 -0
  943. package/dist/web/assets/image-preview-D7KR11Xo.js +0 -1
  944. package/dist/web/assets/impexp-tab-JF6JF8eO.js +0 -1
  945. package/dist/web/assets/impexp-tab-JF6JF8eO.js.br +0 -0
  946. package/dist/web/assets/impexp-tab-JF6JF8eO.js.gz +0 -0
  947. package/dist/web/assets/index-DyYGWFVa.css +0 -1
  948. package/dist/web/assets/index-DyYGWFVa.css.br +0 -0
  949. package/dist/web/assets/index-DyYGWFVa.css.gz +0 -0
  950. package/dist/web/assets/index-ItT-dTPV.js +0 -59
  951. package/dist/web/assets/index-ItT-dTPV.js.br +0 -0
  952. package/dist/web/assets/index-ItT-dTPV.js.gz +0 -0
  953. package/dist/web/assets/input-CKGoVpYv.js +0 -1
  954. package/dist/web/assets/jira-watcher-section-CvyXLyjO.js +0 -1
  955. package/dist/web/assets/keybindings-store-CeEtx6js.js +0 -1
  956. package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js +0 -1
  957. package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js.br +0 -0
  958. package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js.gz +0 -0
  959. package/dist/web/assets/language-servers-section-DiYURB24.js +0 -2
  960. package/dist/web/assets/language-servers-section-DiYURB24.js.br +0 -0
  961. package/dist/web/assets/language-servers-section-DiYURB24.js.gz +0 -0
  962. package/dist/web/assets/logs-app-CJlNqOdc.js +0 -13
  963. package/dist/web/assets/logs-app-CJlNqOdc.js.br +0 -0
  964. package/dist/web/assets/logs-app-CJlNqOdc.js.gz +0 -0
  965. package/dist/web/assets/logs-tab-BoAlm_8H.js +0 -1
  966. package/dist/web/assets/logs-window-content-nNm4jl1s.js +0 -1
  967. package/dist/web/assets/lsp-client-LnKiMWeG.js +0 -1
  968. package/dist/web/assets/lsp-client-LnKiMWeG.js.br +0 -0
  969. package/dist/web/assets/lsp-client-LnKiMWeG.js.gz +0 -0
  970. package/dist/web/assets/markdown-renderer-8Hef5MLx.js +0 -1
  971. package/dist/web/assets/markdown-renderer-BH_CFPJw.js +0 -5
  972. package/dist/web/assets/markdown-renderer-BH_CFPJw.js.br +0 -0
  973. package/dist/web/assets/markdown-renderer-BH_CFPJw.js.gz +0 -0
  974. package/dist/web/assets/media-url-CsdZ6q_T.js +0 -1
  975. package/dist/web/assets/metric-chart-canvas-LAMaVJTu.js +0 -1
  976. package/dist/web/assets/metric-chart-canvas-LAMaVJTu.js.br +0 -0
  977. package/dist/web/assets/metric-chart-canvas-LAMaVJTu.js.gz +0 -0
  978. package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js +0 -1
  979. package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js.br +0 -0
  980. package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js.gz +0 -0
  981. package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js +0 -1
  982. package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js.br +0 -0
  983. package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js.gz +0 -0
  984. package/dist/web/assets/new-design-dialog-CgBUrVFx.js +0 -1
  985. package/dist/web/assets/new-design-dialog-CgBUrVFx.js.br +0 -0
  986. package/dist/web/assets/new-design-dialog-CgBUrVFx.js.gz +0 -0
  987. package/dist/web/assets/notification-store-CXC7u6MW.js +0 -1
  988. package/dist/web/assets/notifications-settings-section-CPbx23nU.js +0 -1
  989. package/dist/web/assets/notifications-settings-section-CPbx23nU.js.br +0 -0
  990. package/dist/web/assets/notifications-settings-section-CPbx23nU.js.gz +0 -0
  991. package/dist/web/assets/onboarding-entry--MWe4amV.js +0 -1
  992. package/dist/web/assets/onboarding-entry--MWe4amV.js.br +0 -0
  993. package/dist/web/assets/onboarding-entry--MWe4amV.js.gz +0 -0
  994. package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js +0 -1
  995. package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js.br +0 -0
  996. package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js.gz +0 -0
  997. package/dist/web/assets/open-db-tabs-CkQe49j_.js +0 -1
  998. package/dist/web/assets/open-db-tabs-CkQe49j_.js.br +0 -0
  999. package/dist/web/assets/open-db-tabs-CkQe49j_.js.gz +0 -0
  1000. package/dist/web/assets/open-settings-DsGBn73g.js +0 -1
  1001. package/dist/web/assets/overview-panel-CcUGDvnt.js +0 -1
  1002. package/dist/web/assets/overview-panel-CcUGDvnt.js.br +0 -0
  1003. package/dist/web/assets/overview-panel-CcUGDvnt.js.gz +0 -0
  1004. package/dist/web/assets/panel-store-DmP16Fo0.js +0 -1
  1005. package/dist/web/assets/panel-store-DmP16Fo0.js.br +0 -0
  1006. package/dist/web/assets/panel-store-DmP16Fo0.js.gz +0 -0
  1007. package/dist/web/assets/patch-tab-metadata-B-jH5svY.js +0 -1
  1008. package/dist/web/assets/pdf-preview-DMUIWb9B.js +0 -1
  1009. package/dist/web/assets/pdf-preview-DMUIWb9B.js.br +0 -0
  1010. package/dist/web/assets/pdf-preview-DMUIWb9B.js.gz +0 -0
  1011. package/dist/web/assets/performance-panel-CJDLUwrs.js +0 -3
  1012. package/dist/web/assets/performance-panel-CJDLUwrs.js.br +0 -0
  1013. package/dist/web/assets/performance-panel-CJDLUwrs.js.gz +0 -0
  1014. package/dist/web/assets/portal-container-context-BXAsDqrB.js +0 -1
  1015. package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js +0 -1
  1016. package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js.br +0 -0
  1017. package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js.gz +0 -0
  1018. package/dist/web/assets/pptx-export-BxmgltJ4.js +0 -111
  1019. package/dist/web/assets/pptx-export-BxmgltJ4.js.br +0 -0
  1020. package/dist/web/assets/pptx-export-BxmgltJ4.js.gz +0 -0
  1021. package/dist/web/assets/problems-panel-DX32QDH_.js +0 -1
  1022. package/dist/web/assets/problems-panel-DX32QDH_.js.br +0 -0
  1023. package/dist/web/assets/problems-panel-DX32QDH_.js.gz +0 -0
  1024. package/dist/web/assets/process-row-format-CBw-CQCx.js +0 -1
  1025. package/dist/web/assets/process-table-CX-NhOg6.js +0 -1
  1026. package/dist/web/assets/process-table-CX-NhOg6.js.br +0 -0
  1027. package/dist/web/assets/process-table-CX-NhOg6.js.gz +0 -0
  1028. package/dist/web/assets/project-framework-store-Bi5dyHdx.js +0 -1
  1029. package/dist/web/assets/project-store-CEGoLMOl.js +0 -1
  1030. package/dist/web/assets/project-store-CEGoLMOl.js.br +0 -0
  1031. package/dist/web/assets/project-store-CEGoLMOl.js.gz +0 -0
  1032. package/dist/web/assets/proxy-settings-section-BGNvFe7e.js +0 -1
  1033. package/dist/web/assets/proxy-settings-section-BGNvFe7e.js.br +0 -0
  1034. package/dist/web/assets/proxy-settings-section-BGNvFe7e.js.gz +0 -0
  1035. package/dist/web/assets/query-audit-section-DTHI5GP7.js +0 -1
  1036. package/dist/web/assets/query-audit-section-DTHI5GP7.js.br +0 -0
  1037. package/dist/web/assets/query-audit-section-DTHI5GP7.js.gz +0 -0
  1038. package/dist/web/assets/query-tab-qMlIkHRk.js +0 -22
  1039. package/dist/web/assets/query-tab-qMlIkHRk.js.br +0 -0
  1040. package/dist/web/assets/query-tab-qMlIkHRk.js.gz +0 -0
  1041. package/dist/web/assets/react-PkBxFcos.js +0 -1
  1042. package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js +0 -1
  1043. package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js.br +0 -0
  1044. package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js.gz +0 -0
  1045. package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js +0 -1
  1046. package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js.br +0 -0
  1047. package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js.gz +0 -0
  1048. package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js +0 -2
  1049. package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js.br +0 -0
  1050. package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js.gz +0 -0
  1051. package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js +0 -1
  1052. package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js.br +0 -0
  1053. package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js.gz +0 -0
  1054. package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js +0 -1
  1055. package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js.br +0 -0
  1056. package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js.gz +0 -0
  1057. package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js +0 -1
  1058. package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js.br +0 -0
  1059. package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js.gz +0 -0
  1060. package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js +0 -1
  1061. package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js.br +0 -0
  1062. package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js.gz +0 -0
  1063. package/dist/web/assets/rename-object-dialog-FSlcdUoB.js +0 -1
  1064. package/dist/web/assets/rename-object-dialog-FSlcdUoB.js.br +0 -0
  1065. package/dist/web/assets/rename-object-dialog-FSlcdUoB.js.gz +0 -0
  1066. package/dist/web/assets/review-code-CfuJeLYd.js +0 -5
  1067. package/dist/web/assets/review-code-CfuJeLYd.js.br +0 -0
  1068. package/dist/web/assets/review-code-CfuJeLYd.js.gz +0 -0
  1069. package/dist/web/assets/run-in-terminal-Bk9Bw7G1.js +0 -1
  1070. package/dist/web/assets/run-in-terminal-button-DFPQUlZs.js +0 -1
  1071. package/dist/web/assets/save-as-dialog-Bj9VpGYf.js +0 -1
  1072. package/dist/web/assets/save-as-dialog-Bj9VpGYf.js.br +0 -0
  1073. package/dist/web/assets/save-as-dialog-Bj9VpGYf.js.gz +0 -0
  1074. package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js +0 -1
  1075. package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js.br +0 -0
  1076. package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js.gz +0 -0
  1077. package/dist/web/assets/scroll-area-6Am1KMiB.js +0 -1
  1078. package/dist/web/assets/scroll-area-6Am1KMiB.js.br +0 -0
  1079. package/dist/web/assets/scroll-area-6Am1KMiB.js.gz +0 -0
  1080. package/dist/web/assets/send-to-chat-Bcm_Lcog.js +0 -1
  1081. package/dist/web/assets/send-to-chat-Bcm_Lcog.js.br +0 -0
  1082. package/dist/web/assets/send-to-chat-Bcm_Lcog.js.gz +0 -0
  1083. package/dist/web/assets/separator-BOYUIPkH.js +0 -1
  1084. package/dist/web/assets/services-panel-CBRTsROB.js +0 -1
  1085. package/dist/web/assets/services-panel-CBRTsROB.js.br +0 -0
  1086. package/dist/web/assets/services-panel-CBRTsROB.js.gz +0 -0
  1087. package/dist/web/assets/session-changes-bar-BRopa3Dh.js +0 -1
  1088. package/dist/web/assets/session-changes-bar-BRopa3Dh.js.br +0 -0
  1089. package/dist/web/assets/session-changes-bar-BRopa3Dh.js.gz +0 -0
  1090. package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js +0 -1
  1091. package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js.br +0 -0
  1092. package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js.gz +0 -0
  1093. package/dist/web/assets/session-review-tab--kNB_FKQ.js +0 -6
  1094. package/dist/web/assets/session-review-tab--kNB_FKQ.js.br +0 -0
  1095. package/dist/web/assets/session-review-tab--kNB_FKQ.js.gz +0 -0
  1096. package/dist/web/assets/settings-body-B-s0fEjc.js +0 -1
  1097. package/dist/web/assets/settings-body-B-s0fEjc.js.br +0 -0
  1098. package/dist/web/assets/settings-body-B-s0fEjc.js.gz +0 -0
  1099. package/dist/web/assets/settings-categories-CcR9eL3x.js +0 -1
  1100. package/dist/web/assets/settings-categories-CcR9eL3x.js.br +0 -0
  1101. package/dist/web/assets/settings-categories-CcR9eL3x.js.gz +0 -0
  1102. package/dist/web/assets/settings-section-content-BJ35dy5r.js +0 -1
  1103. package/dist/web/assets/settings-section-content-DckksvTg.js +0 -2
  1104. package/dist/web/assets/settings-section-content-DckksvTg.js.br +0 -0
  1105. package/dist/web/assets/settings-section-content-DckksvTg.js.gz +0 -0
  1106. package/dist/web/assets/settings-store-WeJyQVL8.js +0 -2
  1107. package/dist/web/assets/settings-store-WeJyQVL8.js.br +0 -0
  1108. package/dist/web/assets/settings-store-WeJyQVL8.js.gz +0 -0
  1109. package/dist/web/assets/settings-tab-BlX33GEN.js +0 -1
  1110. package/dist/web/assets/settings-window-content-B-7yV1_q.js +0 -1
  1111. package/dist/web/assets/slash-command-picker-BBcy6w6m.js +0 -1
  1112. package/dist/web/assets/slash-command-picker-BBcy6w6m.js.br +0 -0
  1113. package/dist/web/assets/slash-command-picker-BBcy6w6m.js.gz +0 -0
  1114. package/dist/web/assets/sortable-header-B9gfWik4.js +0 -1
  1115. package/dist/web/assets/sortable-header-B9gfWik4.js.br +0 -0
  1116. package/dist/web/assets/sortable-header-B9gfWik4.js.gz +0 -0
  1117. package/dist/web/assets/sql-completion-provider-CaTHVr1l.js +0 -5
  1118. package/dist/web/assets/sql-completion-provider-CaTHVr1l.js.br +0 -0
  1119. package/dist/web/assets/sql-completion-provider-CaTHVr1l.js.gz +0 -0
  1120. package/dist/web/assets/sql-object-tab-DVo4bxRI.js +0 -1
  1121. package/dist/web/assets/sql-object-tab-DVo4bxRI.js.br +0 -0
  1122. package/dist/web/assets/sql-object-tab-DVo4bxRI.js.gz +0 -0
  1123. package/dist/web/assets/sqlite-viewer-BGfIpl5x.js +0 -1
  1124. package/dist/web/assets/sqlite-viewer-BGfIpl5x.js.br +0 -0
  1125. package/dist/web/assets/sqlite-viewer-BGfIpl5x.js.gz +0 -0
  1126. package/dist/web/assets/start-ellipsis-rBh37k0n.js +0 -1
  1127. package/dist/web/assets/structure-save-dialog-STK_RFCK.js +0 -1
  1128. package/dist/web/assets/structure-save-dialog-STK_RFCK.js.br +0 -0
  1129. package/dist/web/assets/structure-save-dialog-STK_RFCK.js.gz +0 -0
  1130. package/dist/web/assets/structure-tab-DuLnsTC4.js +0 -3
  1131. package/dist/web/assets/structure-tab-DuLnsTC4.js.br +0 -0
  1132. package/dist/web/assets/structure-tab-DuLnsTC4.js.gz +0 -0
  1133. package/dist/web/assets/system-monitor-body-BIjW16Pb.js +0 -2
  1134. package/dist/web/assets/system-monitor-body-BIjW16Pb.js.br +0 -0
  1135. package/dist/web/assets/system-monitor-body-BIjW16Pb.js.gz +0 -0
  1136. package/dist/web/assets/system-monitor-tab-B6_tC9LO.js +0 -1
  1137. package/dist/web/assets/system-monitor-window-content-CwBzqMUe.js +0 -1
  1138. package/dist/web/assets/tab-host-window-content-CpdEjkZd.js +0 -1
  1139. package/dist/web/assets/tab-host-window-content-CpdEjkZd.js.br +0 -0
  1140. package/dist/web/assets/tab-host-window-content-CpdEjkZd.js.gz +0 -0
  1141. package/dist/web/assets/tab-store-nNzRNfVV.js +0 -1
  1142. package/dist/web/assets/table-tab-B5asfTBP.js +0 -2
  1143. package/dist/web/assets/table-tab-B5asfTBP.js.br +0 -0
  1144. package/dist/web/assets/table-tab-B5asfTBP.js.gz +0 -0
  1145. package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js +0 -1
  1146. package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js.br +0 -0
  1147. package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js.gz +0 -0
  1148. package/dist/web/assets/terminal-tab-DpMONMVB.js +0 -3
  1149. package/dist/web/assets/terminal-tab-DpMONMVB.js.br +0 -0
  1150. package/dist/web/assets/terminal-tab-DpMONMVB.js.gz +0 -0
  1151. package/dist/web/assets/tool-cards-DoDKxqN4.js +0 -14
  1152. package/dist/web/assets/tool-cards-DoDKxqN4.js.br +0 -0
  1153. package/dist/web/assets/tool-cards-DoDKxqN4.js.gz +0 -0
  1154. package/dist/web/assets/use-at-most-wide-BQFi1Sjv.js +0 -1
  1155. package/dist/web/assets/use-blob-url-D7ElNPnW.js +0 -1
  1156. package/dist/web/assets/use-db-driver-installed-BscdI-wS.js +0 -1
  1157. package/dist/web/assets/use-db-read-DYuyNA5i.js +0 -1
  1158. package/dist/web/assets/use-db-read-DYuyNA5i.js.br +0 -0
  1159. package/dist/web/assets/use-db-read-DYuyNA5i.js.gz +0 -0
  1160. package/dist/web/assets/use-db-tab-Cr4lXxwF.js +0 -1
  1161. package/dist/web/assets/use-db-tab-Cr4lXxwF.js.br +0 -0
  1162. package/dist/web/assets/use-db-tab-Cr4lXxwF.js.gz +0 -0
  1163. package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js +0 -1
  1164. package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js.br +0 -0
  1165. package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js.gz +0 -0
  1166. package/dist/web/assets/use-h264-canvas-decoder-DAjp9oHe.js +0 -1
  1167. package/dist/web/assets/use-h264-canvas-decoder-DAjp9oHe.js.br +0 -0
  1168. package/dist/web/assets/use-h264-canvas-decoder-DAjp9oHe.js.gz +0 -0
  1169. package/dist/web/assets/use-inline-blame-DS0HrHJ3.js +0 -16
  1170. package/dist/web/assets/use-inline-blame-DS0HrHJ3.js.br +0 -0
  1171. package/dist/web/assets/use-inline-blame-DS0HrHJ3.js.gz +0 -0
  1172. package/dist/web/assets/use-is-mobile-BXHbkfs9.js +0 -1
  1173. package/dist/web/assets/use-lsp-BTVDYrt6.js +0 -6
  1174. package/dist/web/assets/use-lsp-BTVDYrt6.js.br +0 -0
  1175. package/dist/web/assets/use-lsp-BTVDYrt6.js.gz +0 -0
  1176. package/dist/web/assets/use-monaco-theme-DqnhExsm.js +0 -1
  1177. package/dist/web/assets/use-opener-focus-C5L5UUJs.js +0 -1
  1178. package/dist/web/assets/use-process-kill-D-SGQxDn.js +0 -1
  1179. package/dist/web/assets/use-process-kill-D-SGQxDn.js.br +0 -0
  1180. package/dist/web/assets/use-process-kill-D-SGQxDn.js.gz +0 -0
  1181. package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js +0 -4
  1182. package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js.br +0 -0
  1183. package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js.gz +0 -0
  1184. package/dist/web/assets/use-visual-viewport-CQ6-A0Dt.js +0 -1
  1185. package/dist/web/assets/use-websocket-C6RnlNVJ.js +0 -1
  1186. package/dist/web/assets/vendor-markdown-QKPNiWEd.js +0 -291
  1187. package/dist/web/assets/vendor-markdown-QKPNiWEd.js.br +0 -0
  1188. package/dist/web/assets/vendor-markdown-QKPNiWEd.js.gz +0 -0
  1189. package/dist/web/assets/vendor-ui-CS1GvlOm.js +0 -45
  1190. package/dist/web/assets/vendor-ui-CS1GvlOm.js.br +0 -0
  1191. package/dist/web/assets/vendor-ui-CS1GvlOm.js.gz +0 -0
  1192. package/dist/web/assets/video-preview-CYzeUPfH.js +0 -1
  1193. package/dist/web/assets/video-preview-CYzeUPfH.js.br +0 -0
  1194. package/dist/web/assets/video-preview-CYzeUPfH.js.gz +0 -0
  1195. package/dist/web/assets/voice-settings-section-C01d-toF.js +0 -1
  1196. package/dist/web/assets/voice-settings-section-C01d-toF.js.br +0 -0
  1197. package/dist/web/assets/voice-settings-section-C01d-toF.js.gz +0 -0
  1198. package/dist/web/assets/web-preview-tab-F5C3quQs.js +0 -1
  1199. package/dist/web/assets/web-preview-tab-F5C3quQs.js.br +0 -0
  1200. package/dist/web/assets/web-preview-tab-F5C3quQs.js.gz +0 -0
  1201. package/dist/web/assets/window-pip-registry-DSoB7T3k.js +0 -1
  1202. package/dist/web/assets/window-store-zJczRsv4.js +0 -1
  1203. package/dist/web/assets/window-store-zJczRsv4.js.br +0 -0
  1204. package/dist/web/assets/window-store-zJczRsv4.js.gz +0 -0
  1205. package/dist/web/assets/ws-auth-cWeQ7_61.js +0 -1
  1206. /package/dist/web/assets/{__vite-browser-external-B4VNaaaA.js → __vite-browser-external-DL4jXWNt.js} +0 -0
  1207. /package/dist/web/assets/{clipboard-D3XnL7CB.js → clipboard-D-VCry-F.js} +0 -0
  1208. /package/dist/web/assets/{clipboard-D3XnL7CB.js.br → clipboard-D-VCry-F.js.br} +0 -0
  1209. /package/dist/web/assets/{clipboard-D3XnL7CB.js.gz → clipboard-D-VCry-F.js.gz} +0 -0
  1210. /package/dist/web/assets/{code-fence-vHZyBehL.js → code-fence-BK57HRhJ.js} +0 -0
  1211. /package/dist/web/assets/{design-system-status-label-Cus6e2Df.js → design-system-status-label-KA4ESjWe.js} +0 -0
  1212. /package/dist/web/assets/{format-bytes-B2kC4sbB.js → format-bytes-he3TR0bV.js} +0 -0
  1213. /package/dist/web/assets/{session-turns-gmrmXzeg.js → session-turns-D3QpTtCq.js} +0 -0
  1214. /package/dist/web/assets/{session-turns-gmrmXzeg.js.br → session-turns-D3QpTtCq.js.br} +0 -0
  1215. /package/dist/web/assets/{session-turns-gmrmXzeg.js.gz → session-turns-D3QpTtCq.js.gz} +0 -0
  1216. /package/dist/web/assets/{vendor-xterm-sFX94k3w.js → vendor-xterm-DRhOk3kW.js} +0 -0
  1217. /package/dist/web/assets/{vendor-xterm-sFX94k3w.js.br → vendor-xterm-DRhOk3kW.js.br} +0 -0
  1218. /package/dist/web/assets/{vendor-xterm-sFX94k3w.js.gz → vendor-xterm-DRhOk3kW.js.gz} +0 -0
@@ -0,0 +1 @@
1
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{A as r,L as i,M as a,_n as o,_t as s,hr as c,li as l,vt as u}from"./icons-BwyIKaTT.js";import{t as d}from"./file-diff-CcDhJkXB.js";import{o as f,r as p}from"./api-client-xQDlhUTu.js";import{t as m}from"./react-BZ0kba1-.js";import{n as h}from"./utils-Bslrbb-G.js";import{i as g}from"./project-store-BLGl9IAO.js";import{t as _}from"./tab-store-D5I52eLN.js";import{n as v}from"./use-is-mobile-VRV9eZy1.js";import{n as y}from"./file-icons-JInFtBVl.js";import{n as b}from"./patch-tab-metadata-C92YkrRX.js";import{t as ee}from"./mobile-bottom-sheet-DArbIyrD.js";import{t as x}from"./start-ellipsis-CU8GkxaV.js";import{i as S}from"./session-turns-D3QpTtCq.js";var C=e=>e.map(e=>`${e.n}:${e.messageId}:${e.calls.length}:${e.calls[e.calls.length-1]??``}:${e.prompt.length}`).join(`|`),w=m((e,t)=>({bySession:{},publish:(n,r,i)=>{let a=t().bySession[n];a&&a.live===i&&C(a.turns)===C(r)||e(e=>({bySession:{...e.bySession,[n]:{turns:r,byCall:S(r),live:i}}}))},release:n=>{let r=t().bySession[n];r?.live&&e(e=>({bySession:{...e.bySession,[n]:{...r,live:!1}}}))}})),T=m((e,t)=>({request:null,jump:t=>e({request:{...t,at:Date.now()}}),done:n=>{t().request===n&&e({request:null})}}));function E(e,t){return`${f(e)}/chat/sessions/${encodeURIComponent(t)}/file-changes`}async function D(e,t,n,r){let i=await p.post(E(e,t),{paths:n},{signal:r});return Array.isArray(i?.files)?i.files:[]}async function O(e,t,n){let r=await p.get(`${E(e,t)}/count`,{signal:n});return typeof r?.count==`number`?r.count:0}function k(e,t,n,r){return p.get(`${E(e,t)}/diff?path=${encodeURIComponent(n)}`,{signal:r})}function A(e,t,n,r){return p.post(`${E(e,t)}/reviewed`,{files:n.map(e=>({path:e.path,version:e.version})),reviewed:r})}function j(e,t,n,r){return p.post(`${E(e,t)}/answer`,{answer:n,files:r})}function M(e,t,n,r){return p.post(`${E(e,t)}/revert-turn`,{calls:n,...r?{apply:r}:{}})}function N(e,t,n){return p.post(`${E(e,t)}/undo`,{undoId:n})}var P=`ppm:session-review-marks`;function F(e){window.dispatchEvent(new CustomEvent(P,{detail:e}))}var I=`ppm:session-file-changes`;function L(e){window.dispatchEvent(new CustomEvent(I,{detail:e}))}function R(e){let t={paths:e.paths,...e.title?{chatTitle:e.title}:{},select:e.selectPath?{path:e.selectPath,at:Date.now()}:void 0},n=_.getState().openTab({type:`session-review`,title:e.title?`Changes: ${e.title}`:`Session changes`,projectId:e.projectName,closable:!0,metadata:{projectName:e.projectName,sessionId:e.sessionId,providerId:e.providerId,...t}});n&&b(n,t)}var z=n();function B({added:e,removed:t,editCount:n,className:r}){return(0,z.jsxs)(`span`,{className:h(`flex items-center gap-[5px] tabular-nums`,r),children:[(0,z.jsxs)(`span`,{className:`text-success`,children:[`+`,e]}),(0,z.jsxs)(`span`,{className:`text-error`,children:[`−`,t]}),n!=null&&n>1&&(0,z.jsxs)(`span`,{className:`text-text-subtle`,children:[`×`,n]})]})}function V(e){let t=0,n=0;for(let r of e)t+=r.additions??0,n+=r.deletions??0;return{added:t,removed:n}}function H(e,t){if(!t)return e;let n=t.replace(/[\\/]+$/,``);return e.length>n.length&&e.startsWith(n)&&/[\\/]/.test(e[n.length])?e.slice(n.length+1):e}function U(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t<0?{base:e,dir:``}:{base:e.slice(t+1),dir:e.slice(0,t)}}function W(e){return`${e} file${e===1?``:`s`}`}function G(e){let t=[],n=[];for(let r of e)(r.reviewed?n:t).push(r);return{pending:t,reviewed:n}}function K(e,t,n){return e.map(e=>{if(!t.has(e.path))return e;let{reviewed:r,sinceReview:i,...a}=e;return n?{...a,reviewed:!0}:a})}function q(e,t,n){let r=new Map(t.map(e=>[e.path,e])),i=new Set(n),a=e.filter(e=>!i.has(e.path)).map(e=>r.get(e.path)??e),o=new Set(e.map(e=>e.path));for(let e of t)o.has(e.path)||a.push(e);return a}function J(e){let t=e.reviewed?`reviewed`:e.sinceReview?`since`:``;return`${e.path}\0${e.status}\0${e.baseline}\0${e.version}\0${t}`}var Y={added:{glyph:`A`,cls:`text-success`,label:`Added`},modified:{glyph:`M`,cls:`text-warning`,label:`Modified`},deleted:{glyph:`D`,cls:`text-error`,label:`Deleted`}};function X({file:e,className:t}){return e.additions==null||e.deletions==null?(0,z.jsx)(`span`,{className:h(`text-text-subtle`,t),children:e.binary?`binary`:e.tooLarge?`too large`:``}):(0,z.jsx)(B,{added:e.additions,removed:e.deletions,className:t})}function Z({checked:e,className:t}){return(0,z.jsx)(`span`,{"aria-hidden":!0,className:h(`flex size-4 shrink-0 items-center justify-center rounded border transition-colors`,e?`border-primary bg-primary text-primary-foreground`:`border-text-subtle`,t),children:e&&(0,z.jsx)(r,{className:`size-3`})})}function te({file:e,projectPath:t,dense:n,selected:r,onClick:i,onToggleReviewed:a}){let o=Y[e.status],{base:s,dir:c}=U(H(e.path,t)),l=!!e.reviewed;return(0,z.jsxs)(`div`,{className:`flex border-b border-border-soft`,"data-testid":`session-change-item`,children:[(0,z.jsxs)(`button`,{type:`button`,onClick:i,title:e.path,"aria-current":r?`true`:void 0,"data-testid":`session-change-row`,className:h(`grid min-w-0 flex-1 grid-cols-[16px_minmax(0,1fr)_auto_12px] items-center gap-2.5 text-left`,`transition-colors hover:bg-surface`,n?`min-h-9 px-2.5 py-1 text-xs`:`min-h-[52px] px-3 py-1.5 text-[13px]`,r&&`bg-surface shadow-[inset_2px_0_0_var(--accent)]`),children:[(0,z.jsx)(y,{name:s,className:`size-4`}),(0,z.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,z.jsx)(`span`,{className:h(`truncate`,e.status===`deleted`&&`line-through`,e.status===`deleted`||l?`text-text-secondary`:`text-text-primary`),children:s}),c&&(0,z.jsx)(`span`,{className:`flex min-w-0 text-[11px] text-text-subtle`,children:(0,z.jsx)(x,{children:c})})]}),(0,z.jsx)(X,{file:e,className:`font-mono text-[11px]`}),(0,z.jsx)(`span`,{"aria-label":o.label,title:o.label,className:h(`text-center font-mono text-[11px] font-semibold`,o.cls),children:o.glyph})]}),a&&(0,z.jsx)(`button`,{type:`button`,role:`checkbox`,"aria-checked":l,"aria-label":`Mark ${s} reviewed`,title:l?`Reviewed — click to bring it back to the list`:`Mark reviewed`,onClick:a,className:h(`flex shrink-0 items-center justify-center transition-colors hover:bg-surface`,n?`w-8`:`w-11`),children:(0,z.jsx)(Z,{checked:l})})]})}var Q=e(t(),1);function $(e){return e===`claude`?`Shell commands are followed through git: a file outside a repository, or one git ignores, is not listed. Source Control shows everything on disk.`:`Files changed by shell commands are not listed — Source Control shows everything on disk.`}function ne({count:e,shown:t,dense:n,onToggle:r}){let i=t?u:s;return(0,z.jsxs)(`button`,{type:`button`,onClick:r,"aria-expanded":t,className:h(`flex w-full items-center gap-2 border-b border-border-soft text-left text-text-secondary transition-colors hover:bg-surface`,n?`min-h-8 px-2.5 text-[11px]`:`min-h-11 px-3 text-xs`),children:[(0,z.jsx)(i,{className:`size-3.5 shrink-0`}),(0,z.jsxs)(`span`,{className:`flex-1`,children:[e,` reviewed`]}),(0,z.jsx)(`span`,{className:`text-text-subtle`,children:t?`Hide`:`Show`})]})}function re({files:e,loaded:t=!0,loading:n=!1,unloadedCount:r=0,projectName:s,providerId:u,onReview:f,onOpen:p,onRefresh:m,onSetReviewed:_}){let[y,b]=(0,Q.useState)(!1),[x,S]=(0,Q.useState)(!1),C=v(),w=(0,Q.useId)(),T=g(e=>e.projects.find(e=>e.name===s)?.path);if(t?e.length===0&&!(n&&y):r===0)return null;let{pending:E,reviewed:D}=G(e),O=t&&e.length>0&&E.length===0,k=x||O,A=V(E),j=t?O?`All ${W(D.length)} reviewed`:`${W(E.length)} changed`:`${W(r)} changed`,M=()=>{y||p?.(),b(!y)},N=e=>{b(!1),t||p?.(),f(e)},P=()=>{b(!1),_?.(E,!0)},F=(e,t)=>(0,z.jsx)(te,{file:e,projectPath:T,dense:t,onClick:()=>N(e.path),onToggleReviewed:_?()=>_([e],!e.reviewed):void 0},e.path),I=t=>(0,z.jsxs)(z.Fragment,{children:[n&&e.length===0&&(0,z.jsx)(`p`,{className:h(`text-text-subtle`,t?`px-2.5 py-1.5 text-[11px]`:`px-4 py-3 text-xs`),children:`Working out what changed…`}),E.map(e=>F(e,t)),D.length>0&&!O&&(0,z.jsx)(ne,{count:D.length,shown:x,dense:t,onToggle:()=>S(!x)}),k&&D.map(e=>F(e,t))]});return(0,z.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface-elevated/60`,"data-testid":`session-changes-bar`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-1 px-1.5`,children:[(0,z.jsxs)(`button`,{type:`button`,onClick:M,"aria-expanded":y,"aria-controls":C?void 0:w,className:`flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded px-1 text-left text-xs transition-colors hover:bg-surface md:min-h-8`,children:[(0,z.jsx)(i,{className:h(`size-3.5 shrink-0 text-text-subtle transition-transform`,y&&!C&&`rotate-90`)}),O&&(0,z.jsx)(a,{className:`size-3.5 shrink-0 text-success`}),(0,z.jsx)(`span`,{className:h(`truncate font-medium`,O?`text-text-secondary`:`text-text-primary`),children:j}),t&&!O&&(0,z.jsx)(B,{added:A.added,removed:A.removed,className:`shrink-0 font-mono text-[11px]`}),!O&&D.length>0&&(0,z.jsxs)(`span`,{className:`shrink-0 text-[11px] text-text-subtle @max-[420px]/chat:hidden`,children:[`· `,D.length,` reviewed`]})]}),m&&(0,z.jsx)(`button`,{type:`button`,onClick:m,disabled:n,"aria-label":`Refresh changes`,title:`Refresh changes`,"data-testid":`session-changes-refresh`,className:`inline-flex min-h-11 min-w-11 shrink-0 items-center justify-center rounded text-text-secondary transition-colors hover:bg-surface hover:text-text-primary disabled:opacity-60 md:min-h-8 md:min-w-8`,children:(0,z.jsx)(c,{className:h(`size-3.5`,n&&`animate-spin`)})}),!C&&t&&!O&&_&&(0,z.jsxs)(`button`,{type:`button`,onClick:P,"aria-label":`Mark all reviewed`,title:`Mark all reviewed`,className:`inline-flex min-h-8 shrink-0 items-center gap-1.5 rounded px-2 text-xs text-text-secondary transition-colors hover:bg-surface hover:text-text-primary @max-[420px]/chat:px-1.5`,children:[(0,z.jsx)(o,{className:`size-3.5`}),(0,z.jsx)(`span`,{className:`@max-[420px]/chat:hidden`,children:`Mark all reviewed`})]}),!O&&(0,z.jsxs)(`button`,{type:`button`,onClick:()=>N(),className:`inline-flex min-h-11 shrink-0 items-center gap-1.5 rounded px-3 text-xs font-medium text-primary transition-colors hover:bg-surface md:min-h-8 md:px-2`,children:[(0,z.jsx)(d,{className:`size-3.5`}),`Review`]})]}),!C&&y&&(0,z.jsxs)(`div`,{id:w,className:`max-h-56 overflow-y-auto border-t border-border-soft`,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),b(!1))},children:[I(!0),(0,z.jsx)(`p`,{className:`px-2.5 py-1.5 text-[11px] text-text-subtle`,children:$(u)})]}),C&&(0,z.jsxs)(ee,{open:y,onClose:()=>b(!1),className:`flex max-h-[85%] flex-col`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border-soft pb-1 pl-4 pr-1`,children:[(0,z.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm font-medium text-text-primary`,children:`Changed in this chat`}),t&&!O&&(0,z.jsx)(B,{added:A.added,removed:A.removed,className:`shrink-0 font-mono text-xs`}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>b(!1),"aria-label":`Close`,className:`inline-flex size-11 shrink-0 items-center justify-center rounded-lg text-text-subtle transition-colors hover:bg-surface hover:text-text-primary`,children:(0,z.jsx)(l,{className:`size-4`})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:I(!1)}),(0,z.jsxs)(`div`,{className:`shrink-0 space-y-2 border-t border-border-soft px-3 pt-2`,children:[(0,z.jsx)(`p`,{className:`text-xs leading-relaxed text-text-subtle`,children:$(u)}),!O&&(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[t&&_&&(0,z.jsxs)(`button`,{type:`button`,onClick:P,className:`flex min-h-11 flex-1 items-center justify-center gap-2 rounded-lg border border-border bg-background text-sm font-medium text-text-primary transition-colors hover:bg-surface`,children:[(0,z.jsx)(o,{className:`size-4`}),`Mark all reviewed`]}),(0,z.jsxs)(`button`,{type:`button`,onClick:()=>N(),className:`flex min-h-11 flex-1 items-center justify-center gap-2 rounded-lg bg-primary text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:[(0,z.jsx)(d,{className:`size-4`}),`Review all `,W(t?E.length:r)]})]})]})]})]})}export{w as C,T as S,k as _,H as a,A as b,K as c,P as d,F as f,D as g,O as h,J as i,B as l,j as m,$ as n,U as o,L as p,X as r,q as s,re as t,I as u,R as v,N as x,M as y};
@@ -0,0 +1 @@
1
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{D as n,S as r,T as i,_ as a,b as o,h as s,l as c,o as l,r as u,v as d}from"./api-client-xQDlhUTu.js";import{t as f}from"./react-BZ0kba1-.js";import{i as p}from"./project-store-BLGl9IAO.js";function m(e,t){return e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:h(t)-h(e)}function h(e){let t=e.updatedAt?Date.parse(e.updatedAt):NaN;if(Number.isFinite(t))return t;let n=Date.parse(e.createdAt);return Number.isFinite(n)?n:0}function g(e){return[...e].sort(m)}function _(e,t){let n=e.findIndex(e=>e.id===t.id);return g(n===-1?[...e,t]:e.map((e,r)=>r===n?{...e,...t}:e))}function v(e,t){return e.filter(e=>e.id!==t)}function y(e,t,n){return e.map(e=>e.id===t?{...e,title:n}:e)}function b(e,t,n){return t===n?e:(e.some(e=>e.id===n)?e.filter(e=>e.id!==t):e).map(e=>e.id===t?{...e,id:n}:e)}function x(e,t,n){return g(e.map(e=>e.id===t?{...e,pinned:n}:e))}function S(e,t,n){return e.map(e=>e.id===t?{...e,tag:n}:e)}function C(e,t){return e.map(e=>e.tag?.id===t?{...e,tag:null}:e)}function w(e){let t=e.updatedAt?Date.parse(e.updatedAt):NaN;if(Number.isFinite(t))return t;let n=Date.parse(e.createdAt);return Number.isFinite(n)?n:0}function T(e,t,n=Date.now()){let r=n-t*24*60*60*1e3;return e.filter(e=>e.pinned||w(e)>=r)}var E=50,D=3e4,O=[];function k(){return{project:null,sessions:O,hasMore:!1,tags:null,isSyncing:!1,lastSyncError:null,lastSyncedAt:null,hydrated:!1,tagsSeededAt:null}}var A=new Map;async function j(e){return u.get(`${l(e.name)}/tags`)}var M=f((e,t)=>{function i(n,r){let i=d(n),a=r({...t().byProject[i]??k(),project:n});return e({byProject:{...t().byProject,[i]:a}}),a}function a(e,t){let r=d(e),a=i(e,e=>({...e,sessions:t(e.sessions)}));n(o(r),{sessions:a.sessions,hasMore:a.hasMore})}function c(e,t){let a=d(e);i(e,e=>({...e,tags:t,tagsSeededAt:Date.now()})),n(r(a),t)}return{byProject:{},ensure:async e=>{let n=d(e);await s(e);let r=t().byProject[n];(!r||r.lastSyncedAt===null||Date.now()-r.lastSyncedAt>15e3)&&await t().sync(e)},sync:e=>{let a=d(e),s=A.get(a);if(s)return s;let c=(async()=>{i(e,e=>({...e,isSyncing:!0}));try{let s=new URLSearchParams({limit:String(E),offset:`0`}),c=await u.get(`${l(e.name)}/chat/sessions?${s}`),d=t().byProject[a]??k(),f=d.tagsSeededAt!==null&&Date.now()-d.tagsSeededAt<D,p=d.tags,m=d.tagsSeededAt;if(!f)try{p=await j(e),m=Date.now()}catch{}let h=g(c.sessions);i(e,()=>({project:e,sessions:h,hasMore:c.hasMore,tags:p,tagsSeededAt:m,isSyncing:!1,lastSyncError:null,lastSyncedAt:Date.now(),hydrated:!0})),n(o(a),{sessions:h,hasMore:c.hasMore}),p&&n(r(a),p)}catch(t){i(e,e=>({...e,isSyncing:!1,lastSyncError:t instanceof Error?t.message:`Sync failed`}))}finally{A.delete(a)}})();return A.set(a,c),c},upsertSession:(e,t)=>a(e,e=>_(e,t)),removeSession:(e,t)=>a(e,e=>v(e,t)),renameSession:(e,t,n)=>a(e,e=>y(e,t,n)),replaceSessionId:(e,t,n)=>a(e,e=>b(e,t,n)),setPinned:(e,t,n)=>a(e,e=>x(e,t,n)),setSessionTag:(e,t,n)=>a(e,e=>S(e,t,n)),removeOlderThan:(e,t)=>a(e,e=>T(e,t)),onTagDeleted:(e,t)=>a(e,e=>C(e,t)),seedTags:(e,t)=>c(e,t),refreshTags:async e=>{try{c(e,await j(e))}catch{}}}});async function N(e,t){try{return await t(),!0}catch{return M.getState().sync(e),!1}}a(async e=>{let t=d(e),[n,a]=await Promise.all([i(o(t)),i(r(t))]);M.setState(r=>{let i=r.byProject[t]??k();return i.hydrated?r:{byProject:{...r.byProject,[t]:{...i,project:e,sessions:n?.sessions??i.sessions,hasMore:n?.hasMore??i.hasMore,tags:a??i.tags,hydrated:!0}}}})}),c(()=>{M.setState({byProject:{}})});var P=e(t(),1);function F(e){return{name:e,path:p.getState().projects.find(t=>t.name===e)?.path??e}}function I(e){let t=p(t=>e?t.projects.find(t=>t.name===e)?.path:void 0);return(0,P.useMemo)(()=>e?{name:e,path:t??e}:null,[e,t])}function L(){let e=M.getState();for(let t of Object.values(e.byProject))t.project&&e.sync(t.project)}typeof document<`u`&&document.addEventListener(`visibilitychange`,()=>{if(document.hidden)return;let e=M.getState(),t=Date.now();for(let n of Object.values(e.byProject))n.project&&(n.lastSyncedAt===null||t-n.lastSyncedAt>15e3)&&e.sync(n.project)});export{N as a,y as c,g as d,O as i,x as l,L as n,M as o,I as r,v as s,F as t,S as u};
@@ -0,0 +1,6 @@
1
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{A as r,Bt as i,Hn as a,Hr as o,I as s,L as c,M as l,Yr as u,_n as d,gr as f,gt as p,hr as m,kn as h,li as g,m as _,xn as v}from"./icons-BwyIKaTT.js";import{o as ee,r as te}from"./api-client-xQDlhUTu.js";import{n as y}from"./utils-Bslrbb-G.js";import"./portal-container-context-NBi-KGK0.js";import"./window-store-DqX_qmkQ.js";import"./panel-store-BJhazigC.js";import{i as b}from"./project-store-BLGl9IAO.js";import"./project-framework-store-DwLxaRan.js";import"./session-list-sync-triggers-DtJI5KF0.js";import{t as ne}from"./tab-store-D5I52eLN.js";import{n as x}from"./use-is-mobile-VRV9eZy1.js";import{t as S}from"./button-C9ZXWb3b.js";import{n as C}from"./file-icons-JInFtBVl.js";import"./patch-tab-metadata-C92YkrRX.js";import{t as w}from"./mobile-bottom-sheet-DArbIyrD.js";import"./use-visual-viewport-MmugpRg-.js";import"./start-ellipsis-CU8GkxaV.js";import"./libesm-B6LsX5wH.js";import{i as T,t as re}from"./session-turns-D3QpTtCq.js";import{C as E,S as D,_ as ie,a as O,f as ae,g as oe,i as se,m as ce,n as k,o as A,r as le,u as ue,x as de}from"./session-changes-bar-VfS2sHuH.js";import{a as j,c as M,d as fe,f as pe,l as me,m as he,n as N,o as ge,r as P,s as F,t as I,u as L}from"./review-code-B4osj0k1.js";var R=e(t(),1),_e=5e3,z=e=>e.slice(Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))+1);function ve(e,t){return{key:e.key,rows:e.rows,oldFrom:e.oldFrom,oldTo:e.oldTo,added:e.added,removed:e.removed,base:t.base,drawnVersion:t.version,...e.calls?{calls:e.calls}:{}}}function B(e){let{projectName:t,sessionId:n}=e,[r,i]=(0,R.useState)(null),[a,o]=(0,R.useState)([]),[s,c]=(0,R.useState)(new Map),[l,u]=(0,R.useState)(new Map),[d,f]=(0,R.useState)(new Map),[p,m]=(0,R.useState)(null),[h,g]=(0,R.useState)(null),[_,v]=(0,R.useState)(null),[ee,te]=(0,R.useState)(!1),[y,b]=(0,R.useState)(null),[ne,x]=(0,R.useState)(null),S=(0,R.useRef)(0),C=(0,R.useRef)(-1),w=(0,R.useRef)(Promise.resolve()),T=(0,R.useRef)(new Map),re=(0,R.useRef)([]),E=(0,R.useRef)([]);E.current=[...new Set([...e.paths,...re.current])];let D=(0,R.useCallback)((e,t)=>{S.current>0||t<C.current||(i(e),o(t=>{let n=new Set(t),r=e.map(e=>e.path).filter(e=>!n.has(e));return r.length?[...t,...r]:t}))},[]),O=(0,R.useRef)(null),k=(0,R.useCallback)(async()=>{if(!t||!n)return;O.current?.abort();let e=new AbortController;O.current=e;let r=performance.now();te(!0),b(null);try{let i=await oe(t,n,E.current,e.signal);e.signal.aborted||D(i,r)}catch(t){e.signal.aborted||b(t instanceof Error?t.message:`Could not list this chat's changes`)}finally{e.signal.aborted||te(!1)}},[t,n,D]);(0,R.useEffect)(()=>(k(),()=>O.current?.abort()),[k]),(0,R.useEffect)(()=>{let e=e=>{let r=e.detail;r.projectName!==t||r.sessionId!==n||(re.current=r.paths,D(r.files,r.askedAt))};return window.addEventListener(ue,e),()=>window.removeEventListener(ue,e)},[t,n,D]);let A=(0,R.useMemo)(()=>ge({order:a,files:r??[],reverted:s,gone:l,pending:d}),[a,r,s,l,d]),le=(0,R.useMemo)(()=>fe(A),[A]),j=p?A.find(e=>e.path===p.path)??null:null,he=(0,R.useRef)(void 0);(0,R.useEffect)(()=>{if(!r)return;let t=e.select?.path&&e.select.at!==he.current?e.select:null;if(t){he.current=t.at;let e=A.find(e=>e.path===t.path);if(e){m(F(e));return}}m(e=>{if(!e)return S.current>0?null:M(A,null);let t=A.find(t=>t.path===e.path);return t?t.blocks.some(t=>t.key===e.key)?e:F(t):M(A,null)})},[r,A,e.select?.path,e.select?.at]);let N=j&&!j.gone&&j.file.blocks?j.file:null,I=N?se(N):``;(0,R.useEffect)(()=>{if(!t||!n||!N)return;let e=new AbortController,r=I;return ie(t,n,N.path,e.signal).then(t=>{e.signal.aborted||g(t)}).catch(t=>{e.signal.aborted||v({key:r,message:t instanceof Error?t.message:`Could not load this file's diff`})}),()=>e.abort()},[t,n,I]);let L=(0,R.useMemo)(()=>{if(!j)return{kind:`none`};let e=s.get(j.path)??[],t=new Map;for(let e of j.blocks){let n=d.get(P(j.path,e.key));n&&t.set(e.key,n)}let n=null;if(j.gone){let e=l.get(j.path);e&&e.text!==null&&(n={original:e.text,modified:e.text,version:``,base:e.file.base??``,kept:new Set})}else if(j.file.blocks){if(h?.path!==j.path)return _?.key===I?{kind:`error`,message:_.message}:{kind:`loading`};let e=new Set((j.file.blocks??[]).filter(e=>e.kept).map(e=>e.key)),t=new Map((j.file.blocks??[]).flatMap(e=>e.calls?.length?[[e.key,e.calls]]:[]));n={original:h.original,modified:h.modified,version:h.version,base:h.base??``,kept:e,calls:t}}let r=n&&me({...n,reverted:e,pending:t});return!n||!r?{kind:`whole`,review:j,undoId:j.gone?l.get(j.path)?.undoId:void 0}:{kind:`blocks`,review:j,model:r,version:n.version,original:n.original,base:n.base}},[j,s,l,d,h,_,I]),B=L.kind===`blocks`?L.model.stale.join(`
2
+ `):``;(0,R.useEffect)(()=>{if(!B||L.kind!==`blocks`)return;let e=L.review.path,t=new Set(B.split(`
3
+ `));c(n=>new Map(n).set(e,(n.get(e)??[]).filter(e=>!t.has(e.key))))},[B]);let V=(0,R.useRef)(null),ye=(0,R.useRef)(0),H=(0,R.useCallback)(e=>{V.current&&clearTimeout(V.current);let t=++ye.current;x({...e,id:t}),V.current=setTimeout(()=>x(e=>e?.id===t?null:e),_e)},[]),be=(0,R.useCallback)(()=>{V.current&&clearTimeout(V.current),x(null)},[]);(0,R.useEffect)(()=>()=>{V.current&&clearTimeout(V.current)},[]);let U=(e,t)=>{let n=T.current.get(e),r=t;for(let e=0;n?.has(r)&&e<64;e++)r=n.get(r);return r},W=(e,t,n)=>{if(t===n)return;let r=T.current.get(e)??new Map;T.current.set(e,r.set(t,n))},G=e=>{let t=new Map(e.map(e=>[e.path,e.file]));i(n=>{if(!n)return n;let r=n.flatMap(e=>t.has(e.path)?t.get(e.path)?[t.get(e.path)]:[]:[e]);for(let t of e)t.file&&!n.some(e=>e.path===t.path)&&r.push(t.file);return r}),o(t=>{let n=e.filter(e=>e.file&&!t.includes(e.path)).map(e=>e.path);return n.length?[...t,...n]:t}),u(t=>{if(!e.some(e=>e.file&&t.has(e.path)))return t;let n=new Map(t);for(let t of e)t.file&&n.delete(t.path);return n})},K=e=>{let t=e.find(e=>e.stale||e.error);return t?(H(t.error?{lead:t.error}:{lead:``,name:z(t.path),tail:` changed before the answer reached it, so it is shown again as it is now.`}),!0):!1},xe=e=>{S.current++;let r=async()=>{try{return await e()}finally{S.current--,C.current=performance.now(),t&&n&&ae({projectName:t,sessionId:n})}},i=w.current.then(r,r);return w.current=i,i},q=(e,r,i)=>{if(!t||!n||r.length===0)return Promise.resolve(null);let a=i.states??new Map,o=i.ghosts??new Map;a.size&&f(e=>new Map([...e,...a])),o.size&&c(e=>{let t=new Map(e);for(let[n,r]of o)t.set(n,[...(e.get(n)??[]).filter(e=>!r.some(t=>t.key===e.key)),...r]);return t});let s=e=>{c(t=>{let n=new Map(t);for(let[r,i]of o)n.set(r,(t.get(r)??[]).flatMap(t=>i.includes(t)?[e(t,r)].filter(e=>!!e):[t]));return n})};return xe(async()=>{let i=r.map(e=>({path:e.review.path,version:U(e.review.path,e.drawn),...e.keys?{keys:e.keys}:{}}));try{let a=await ce(t,n,e,i),o=new Set(a.files.filter(e=>e.stale||e.error).map(e=>e.path));if(s((e,t)=>o.has(t)?null:{...e,undoId:a.undoId}),a.files.forEach((e,t)=>{o.has(e.path)||W(e.path,i[t]?.version??``,e.file?.version??``)}),e===`revert`){let e=r.filter(e=>a.files.some(t=>t.path===e.review.path&&!o.has(t.path)&&!t.file));e.length&&u(t=>{let n=new Map(t);for(let t of e)n.set(t.review.path,{file:t.review.file,text:t.text??null,undoId:a.undoId});return n})}return G(a.files),a}catch(e){return s(()=>null),H({lead:e instanceof Error?e.message:`Could not save the answer`}),null}finally{a.size&&f(e=>{let t=new Map(e);for(let e of a.keys())t.delete(e);return t})}})},J=e=>L.kind===`blocks`&&L.review.path===e.path?L.version:e.file.version,Se=e=>L.kind===`blocks`?L.model.items.find(t=>t.kind===`block`&&t.key===e):void 0,Y=e=>ge({order:a,files:r??[],reverted:s,gone:l,pending:new Map([...d,...e])}),X=async(e,t)=>{if(!j||j.gone)return;let n=j,r=Se(e),i=new Map([[P(n.path,e),t===`keep`?`kept`:`reverted`]]),a=Y(i);m(M(a,{path:n.path,key:e}));let o=t===`revert`&&r&&L.kind===`blocks`?new Map([[n.path,[ve(r,L)]]]):void 0,s=L.kind===`blocks`?L.original:null,c=await q(t,[{review:n,drawn:J(n),keys:e===`*`?void 0:[e],text:s}],{states:i,ghosts:o});if(!c||K(c.files))return;let l=a.find(e=>e.path===n.path)?.open===0;H({lead:`${t===`keep`?`Kept`:`Reverted`} ${r?`block ${r.index+1} of `:``}`,name:z(n.path),tail:l?` — file done`:``,undoId:c.undoId,focus:{path:n.path,key:e}})};return{files:r,reviews:A,progress:le,focus:p,setFocus:m,focused:j,pane:L,loading:ee,error:y,toast:ne,dismissToast:be,reload:k,step:(0,R.useCallback)(e=>m(t=>pe(A,t,e)),[A]),focusFile:(0,R.useCallback)(e=>{let t=A.find(t=>t.path===e);t&&m(F(t))},[A]),keepBlock:e=>X(e,`keep`),revertBlock:e=>X(e,`revert`),reopenBlock:async e=>{if(!j||j.gone)return;let t=j,n=Se(e);m({path:t.path,key:e});let r=await q(`open`,[{review:t,drawn:J(t),keys:e===`*`?void 0:[e]}],{states:new Map([[P(t.path,e),`open`]])});!r||K(r.files)||H({lead:n?`Block ${n.index+1} of `:``,name:z(t.path),tail:` is open again`,undoId:r.undoId,focus:{path:t.path,key:e}})},undo:(e,i)=>!t||!n?Promise.resolve():(be(),xe(async()=>{try{let a=await de(t,n,e);if(a.stale){H({lead:`Could not undo: the file changed since.`});return}for(let e of a.files){let t=r?.find(t=>t.path===e.path)?.version;t!==void 0&&e.file&&W(e.path,t,e.file.version)}c(t=>{let n=new Map;for(let[r,i]of t)n.set(r,i.filter(t=>t.undoId!==e));return n}),G(a.files),i&&m(i)}catch(e){H({lead:e instanceof Error?e.message:`Could not undo`})}})),keepFile:async()=>{if(!j||j.gone||j.open===0)return;let e=j,t=e.blocks.filter(e=>e.state===`open`).map(e=>e.key),n=new Map(t.map(t=>[P(e.path,t),`kept`]));m(M(Y(n),{path:e.path,key:e.blocks[e.blocks.length-1].key}));let r=await q(`keep`,[{review:e,drawn:J(e),keys:t.includes(`*`)?void 0:t}],{states:n});!r||K(r.files)||H({lead:`Kept `,name:z(e.path),undoId:r.undoId,focus:F(e)})},revertFile:async()=>{if(!j||j.gone)return;let e=j,t=new Map(e.blocks.filter(e=>e.state!==`reverted`).map(t=>[P(e.path,t.key),`reverted`]));m(M(Y(t),{path:e.path,key:e.blocks[e.blocks.length-1].key}));let n=L.kind===`blocks`&&L.review.path===e.path?new Map([[e.path,L.model.items.filter(e=>e.kind===`block`&&e.state!==`reverted`).map(e=>ve(e,L))]]):void 0,r=L.kind===`blocks`?L.original:null,i=await q(`revert`,[{review:e,drawn:J(e),text:r}],{states:t,ghosts:n});!i||K(i.files)||H({lead:`Reverted `,name:z(e.path),undoId:i.undoId,focus:F(e)})},keepAll:async()=>{let e=A.filter(e=>e.open>0&&!e.gone);if(e.length===0)return;let t=new Map(e.flatMap(e=>e.blocks.filter(e=>e.state===`open`).map(t=>[P(e.path,t.key),`kept`]))),n=p;m(null);let r=await q(`keep`,e.map(e=>{let t=e.blocks.filter(e=>e.state===`open`).map(e=>e.key);return{review:e,drawn:J(e),keys:t.includes(`*`)?void 0:t}}),{states:t});!r||K(r.files)||H({lead:`Kept ${t.size} block${t.size===1?``:`s`}`,undoId:r.undoId,focus:n})}}}var V=8e3,ye=new Map,H=new Map;function be(e){let{projectName:t,sessionId:n,providerId:r}=e,i=E(e=>n?e.bySession[n]:void 0),a=i?.byCall??ye,o=e.calls.filter(e=>!a.has(e)).sort().join(`
4
+ `),s=i?.live??!1;return(0,R.useEffect)(()=>{if(!t||!n||!r||s||i&&!o)return;let e=H.get(n);if(i&&e?.unplaced===o)return;let a=new AbortController,c=setTimeout(()=>{H.set(n,{at:Date.now(),unplaced:e?.unplaced??null}),te.get(`${ee(t)}/chat/sessions/${n}/messages?providerId=${r}`,{signal:a.signal}).then(e=>{let t=Array.isArray(e)?e:e?.messages;if(a.signal.aborted||!Array.isArray(t))return;let r=re(t),i=T(r);H.set(n,{at:Date.now(),unplaced:o.split(`
5
+ `).filter(e=>e&&!i.has(e)).join(`
6
+ `)}),!E.getState().bySession[n]?.live&&E.getState().publish(n,r,!1)}).catch(()=>{})},e?Math.max(0,e.at+V-Date.now()):0);return()=>{clearTimeout(c),a.abort()}},[t,n,r,s,!!i,o]),a}var U=n(),W=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function G(e,t){return A(O(e,t))}var K={added:{glyph:`A`,cls:`text-success bg-[color-mix(in_srgb,var(--success)_14%,transparent)]`,label:`Added`},modified:{glyph:`M`,cls:`text-warning bg-[color-mix(in_srgb,var(--warning)_14%,transparent)]`,label:`Modified`},deleted:{glyph:`D`,cls:`text-error bg-[color-mix(in_srgb,var(--error)_14%,transparent)]`,label:`Deleted`}};function xe({status:e}){let t=K[e];return(0,U.jsx)(`span`,{title:t.label,"aria-label":t.label,className:y(`inline-grid size-[18px] shrink-0 place-items-center rounded-[5px] font-mono text-[10.5px] font-semibold leading-none`,t.cls),children:t.glyph})}function q({tint:e,children:t}){return(0,U.jsx)(`span`,{className:`inline-flex shrink-0 items-center whitespace-nowrap rounded px-[5px] text-[10px] font-semibold leading-[15px]`,style:{color:e,background:`color-mix(in srgb, ${e} 14%, transparent)`},children:t})}var J=10;function Se({review:e,current:t,mobile:n,projectPath:r,onPick:i}){let{base:a,dir:o}=G(e.path,r),s=e.file,c=e.open===0,l=c?j(e):null,u=e.blocks.length-e.open;return(0,U.jsxs)(`button`,{type:`button`,title:e.path,"aria-current":t?`true`:void 0,"data-testid":`review-file-row`,onClick:()=>i(e.path),className:y(`grid w-full items-center text-left text-text transition-colors hover:bg-surface-hover`,n?`min-h-14 grid-cols-[18px_minmax(0,1fr)_auto] gap-3 px-4 py-1.5`:`min-h-[42px] grid-cols-[16px_minmax(0,1fr)_auto] gap-[9px] px-3 py-1`,t&&`bg-accent-wash shadow-[inset_2px_0_0_var(--accent)] hover:bg-accent-wash`),children:[(0,U.jsx)(C,{name:a,className:n?`size-[18px]`:`size-4`}),(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,U.jsx)(`span`,{className:y(`truncate`,n?`text-sm leading-[19px]`:`text-[13px] leading-[17px]`,c?`font-normal text-text-2`:`font-medium`,s.status===`deleted`&&`line-through`),children:a}),(0,U.jsxs)(`span`,{className:y(`flex min-w-0 items-center gap-1.5 text-text-subtle`,n?`text-xs`:`text-[11px] leading-[15px]`),children:[s.sinceReview?(0,U.jsx)(q,{tint:`var(--accent-2)`,children:`New since review`}):s.baseline===`head`&&(0,U.jsx)(q,{tint:`var(--warning)`,children:`vs last commit`}),o&&(0,U.jsx)(`span`,{dir:`rtl`,className:`min-w-0 flex-1 truncate text-left`,children:(0,U.jsx)(`bdi`,{children:o})})]})]}),(0,U.jsxs)(`span`,{className:`flex flex-col items-end gap-1`,children:[(0,U.jsx)(`span`,{className:`flex gap-[3px]`,"aria-hidden":!0,children:e.blocks.slice(0,J).map(e=>(0,U.jsx)(`i`,{className:y(`rounded-full border-[1.5px]`,n?`size-2.5`:`size-2`,e.state===`kept`?`border-primary bg-primary`:e.state===`reverted`?`border-error bg-error`:`border-[color-mix(in_srgb,var(--text-3)_80%,transparent)]`)},e.key))}),l?(0,U.jsx)(`span`,{className:y(`whitespace-nowrap text-[10.5px] font-semibold`,l.tone===`kept`?`text-primary`:l.tone===`reverted`?`text-error`:`font-medium text-text-subtle`),children:l.label}):(0,U.jsxs)(`span`,{className:`font-mono text-[10.5px] font-medium leading-none text-text-subtle`,children:[u,`/`,e.blocks.length]})]})]})}function Y({label:e,count:t}){return(0,U.jsxs)(`div`,{className:`flex h-8 w-full shrink-0 items-center gap-1.5 px-3 text-[10.5px] font-semibold uppercase tracking-[.07em] text-text-subtle`,children:[e,(0,U.jsx)(`span`,{className:`rounded-full bg-surface-hover px-1.5 py-px font-mono text-[10.5px] font-medium leading-[14px] tracking-normal text-text-2`,children:t})]})}function X({reviews:e,current:t,mobile:n,projectPath:r,onPick:i}){let a=e.filter(e=>e.open>0),o=e.filter(e=>e.open===0),s=e=>(0,U.jsx)(Se,{review:e,current:e.path===t,mobile:n,projectPath:r,onPick:i},e.path);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Y,{label:`To review`,count:a.length}),a.length?a.map(s):(0,U.jsx)(`p`,{className:`m-0 px-3 pb-2 text-xs text-text-subtle`,children:`Nothing left open.`}),o.length>0&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Y,{label:`Done`,count:o.length}),o.map(s)]})]})}var Ce=48;function we({reviews:e,total:t,open:n,projectPath:r}){let i=e.flatMap(e=>e.blocks.map((t,n)=>({id:`${e.path}\0${t.key}`,state:t.state,title:`${G(e.path,r).base} · block ${n+1}`}))),a=i.filter(e=>e.state===`kept`).length,o=i.filter(e=>e.state===`reverted`).length;return(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-2.5 gap-y-1.5 whitespace-nowrap text-[12.5px] text-text-2`,children:[(0,U.jsx)(`span`,{role:`progressbar`,"aria-label":`Blocks decided`,"aria-valuemin":0,"aria-valuemax":t,"aria-valuenow":t-n,className:`flex gap-0.5`,children:t<=Ce?i.map(e=>(0,U.jsx)(`i`,{title:e.title,className:y(`h-1.5 w-3 rounded-[3px] transition-colors`,e.state===`kept`?`bg-primary`:e.state===`reverted`?`bg-[color-mix(in_srgb,var(--error)_70%,transparent)]`:`bg-[color-mix(in_srgb,var(--text)_13%,transparent)]`)},e.id)):(0,U.jsxs)(`span`,{className:`flex h-1.5 w-40 overflow-hidden rounded-[3px] bg-[color-mix(in_srgb,var(--text)_13%,transparent)]`,children:[(0,U.jsx)(`i`,{className:`bg-primary`,style:{width:`${a/t*100}%`}}),(0,U.jsx)(`i`,{className:`bg-[color-mix(in_srgb,var(--error)_70%,transparent)]`,style:{width:`${o/t*100}%`}})]})}),(0,U.jsxs)(`span`,{children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:t-n}),` of `,W(t,`block`),` decided`]}),n?(0,U.jsxs)(`span`,{className:`text-text-subtle`,children:[`· `,n,` left`]}):(0,U.jsx)(`span`,{className:`text-success`,children:`· all done`})]})}function Te(e,t,n){let r=(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:t}),i=e.additions!=null&&e.deletions!=null?(0,U.jsxs)(`span`,{className:`font-mono text-[11px]`,children:[(0,U.jsxs)(`span`,{className:`text-success`,children:[`+`,e.additions]}),` `,(0,U.jsxs)(`span`,{className:`text-error`,children:[`−`,e.deletions]})]}):null;return e.status===`added`?(0,U.jsxs)(U.Fragment,{children:[`Deletes `,r,` — it did not exist before this chat. You can undo it right after.`]}):e.status===`deleted`?(0,U.jsxs)(U.Fragment,{children:[`Brings `,r,` back`,e.deletions?` with its ${W(e.deletions,`line`)}`:``,`. You can undo it right after.`]}):(0,U.jsxs)(U.Fragment,{children:[e.sinceReview?(0,U.jsxs)(U.Fragment,{children:[`Puts `,r,` back to the version you reviewed`]}):e.baseline===`head`?(0,U.jsxs)(U.Fragment,{children:[`Puts `,r,` back to its last committed version`]}):(0,U.jsxs)(U.Fragment,{children:[`Puts `,r,` back the way it was before this chat`]}),n>1?(0,U.jsxs)(U.Fragment,{children:[`, all `,W(n,`block`)]}):null,i?(0,U.jsxs)(U.Fragment,{children:[` — `,i,` undone on disk`]}):null,`. You can undo it right after.`]})}function Z({toast:e,mobile:t,onUndo:n}){return(0,U.jsxs)(`div`,{role:`status`,"data-testid":`review-toast`,className:y(`absolute z-30 flex items-center border border-border bg-panel-2 shadow-[var(--shadow-float)]`,t?`inset-x-3 bottom-3 gap-2.5 rounded-xl py-1.5 pr-1.5 pl-3.5 text-[13.5px]`:`bottom-3 left-1/2 max-w-[calc(100%-24px)] -translate-x-1/2 gap-3 rounded-[10px] py-1.5 pr-1.5 pl-3.5 text-[12.5px]`),children:[(0,U.jsxs)(`span`,{className:y(`min-w-0`,t?`flex-1`:`truncate`),children:[e.lead,e.name&&(0,U.jsx)(`b`,{className:`font-semibold`,children:e.name}),e.tail]}),e.undoId&&(0,U.jsx)(S,{variant:`ghost`,size:t?`sm`:`xs`,className:y(`text-primary hover:text-primary`,t&&`h-10`),onClick:n,children:`Undo`})]})}function Ee({loading:e,files:t,total:n,kept:r,onChat:i}){return e?(0,U.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,U.jsx)(v,{className:`size-4 animate-spin text-text-subtle`})}):(0,U.jsx)(`div`,{className:`grid flex-1 place-items-center p-8 text-center`,children:(0,U.jsxs)(`div`,{children:[t>0&&(0,U.jsx)(`div`,{className:`mx-auto mb-3.5 grid size-[52px] place-items-center rounded-full bg-[color-mix(in_srgb,var(--success)_14%,transparent)] text-success`,children:(0,U.jsx)(l,{className:`size-5`})}),(0,U.jsx)(`h4`,{className:`m-0 mb-1.5 text-[15px] font-semibold`,children:t>0?`All ${W(n,`block`)} decided`:`No changes yet`}),(0,U.jsx)(`p`,{className:`mx-auto mb-4 max-w-[38ch] text-[13px] text-text-2`,children:t>0?`${r} kept, ${n-r} reverted. A block comes back here if the agent changes it again.`:`This chat has not changed any file.`}),(0,U.jsxs)(S,{variant:`outline`,size:`sm`,className:`max-md:h-11`,onClick:i,children:[(0,U.jsx)(h,{}),`Back to chat`]})]})})}function De(e){let{review:t}=e,{focused:n,focus:r,pane:i,reviews:a}=t,o=n&&r?n.blocks.find(e=>e.key===r.key):void 0,s=null;n&&o&&(s={index:n.blocks.indexOf(o),total:n.blocks.length});let c=i.kind===`blocks`&&r?i.model.items.find(e=>e.kind===`block`&&e.key===r.key):void 0;c?.kind===`block`&&i.kind===`blocks`&&(s={index:c.index,total:i.model.total});let l=L(a),u=n?l.findIndex(e=>e.path===n.path):-1,d=l.find((e,t)=>t>u&&e.open>0)??l.find(e=>e.open>0&&e.path!==n?.path)??null,f=i.kind===`whole`,p=c?.kind===`block`?c.undoId:f?i.undoId:void 0,m=null;return r&&o?.state===`kept`?m=()=>t.reopenBlock(r.key):r&&o?.state===`reverted`&&p&&(m=()=>t.undo(p,r)),{...e,focusState:o?.state??null,place:s,nextFile:d,keepFocused:()=>{!r||o?.state!==`open`||(f?t.keepFile():t.keepBlock(r.key))},revertFocused:e=>{!r||o?.state!==`open`||(f?e():t.revertBlock(r.key))},changeFocused:m,codeActions:{focus:e=>n&&t.setFocus({path:n.path,key:e}),keep:e=>t.keepBlock(e),revert:e=>t.revertBlock(e),reopen:e=>t.reopenBlock(e),undo:(e,r)=>n&&t.undo(e,{path:n.path,key:r}),showInChat:e.showInChat}}}function Oe({view:e,compact:t,onRevertFile:n}){let{pane:r,focus:i}=e.review;return r.kind===`blocks`?(0,U.jsx)(N,{file:r.review.file,model:r.model,focusKey:i?.path===r.review.path?i.key:null,compact:t,lang:he(r.review.path),turns:e.turns,actions:e.codeActions},r.review.path):r.kind===`whole`?(0,U.jsx)(ke,{view:e,review:r.review,compact:t,onRevertFile:n}):r.kind===`error`?(0,U.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4 text-center text-sm text-text-subtle`,children:r.message}):(0,U.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,U.jsx)(v,{className:`size-4 animate-spin text-text-subtle`})})}function ke({view:e,review:t,compact:n,onRevertFile:i}){let a=t.file,o=t.gone?`Reverted: the file is back the way it was.`:a.binary?`A binary file has no lines to compare, so it is kept or reverted whole.`:a.tooLarge?`This file is too large to show, so it is kept or reverted whole.`:`This diff is too large to cut into blocks, so the file is kept or reverted whole.`,s=t.open===0?j(t):null;return(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-bg p-3`,children:(0,U.jsxs)(`div`,{"data-testid":`review-whole-file`,className:y(`rounded-[10px] border border-border-soft bg-panel p-4 text-[13px] text-text-2`,s&&`border-dashed`),children:[(0,U.jsx)(`p`,{className:`m-0`,children:o}),!n&&(0,U.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:s?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`span`,{className:y(`inline-flex items-center gap-1 font-semibold`,s.tone===`kept`?`text-primary`:s.tone===`reverted`?`text-error`:`text-text-subtle`),children:[s.tone===`reverted`?(0,U.jsx)(f,{className:`size-3.5`}):(0,U.jsx)(r,{className:`size-3.5`}),s.label]}),e.changeFocused&&(0,U.jsxs)(S,{variant:`ghost`,size:`xs`,className:`text-text-secondary`,onClick:e.changeFocused,children:[(0,U.jsx)(u,{}),`Change`]})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(S,{variant:`outline`,size:`sm`,className:`hover:text-error`,onClick:i,children:[(0,U.jsx)(f,{}),`Revert file…`]}),(0,U.jsxs)(S,{size:`sm`,onClick:()=>e.review.keepFile(),children:[(0,U.jsx)(r,{}),`Keep file`]})]})})]})})}var Ae=`inline-grid size-7 shrink-0 place-items-center rounded-md text-text-subtle hover:bg-surface-hover hover:text-text`;function je({view:e}){let{review:t,projectPath:n}=e,{focused:r,focus:a,progress:s,reviews:c}=t,l=(0,R.useRef)(null),[u,f]=(0,R.useState)(!1),[p,g]=(0,R.useState)(!1);(0,R.useEffect)(()=>{let e=document.activeElement;(!e||e===document.body||e.getClientRects().length===0)&&!e?.closest(`input, textarea, select, [contenteditable='true']`)&&l.current?.focus({preventScroll:!0})},[a?.path,a?.key,t.pane.kind]),(0,R.useEffect)(()=>f(!1),[r?.path]);let _=n=>{if(n.ctrlKey||n.metaKey||n.altKey||n.defaultPrevented||n.target.closest(`input, textarea, select, [contenteditable='true']`))return;let r=n.key.toLowerCase();if(r===`j`||r===`k`)t.step(r===`j`?1:-1);else if(r===`y`&&e.focusState===`open`)e.keepFocused();else if(r===`n`&&e.focusState===`open`)e.revertFocused(()=>f(!0));else if(r===`escape`&&(u||p))f(!1),g(!1);else return;n.preventDefault()},v=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(X,{reviews:c,current:r?.path??null,mobile:!1,projectPath:n,onPick:e=>{t.focusFile(e),g(!1)}}),(0,U.jsxs)(`div`,{className:`mt-auto border-t border-border-soft px-3 pt-2.5 pb-3 text-[11.5px] leading-normal text-text-subtle`,children:[(0,U.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,U.jsx)(o,{className:`mt-0.5 size-3 shrink-0`}),(0,U.jsxs)(`span`,{children:[`A binary or very large file has no blocks: it is kept or reverted whole. `,k(e.providerId)]})]}),(0,U.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap gap-x-3 gap-y-1`,children:[(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(I,{children:`J`}),(0,U.jsx)(I,{children:`K`}),` move`]}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(I,{children:`Y`}),` keep`]}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(I,{children:`N`}),` revert`]})]})]})]});return(0,U.jsxs)(`div`,{ref:l,tabIndex:0,onKeyDown:_,"data-testid":`session-review`,className:`@container flex h-full flex-col overflow-hidden bg-bg outline-none`,children:[(0,U.jsxs)(`div`,{className:`relative flex shrink-0 flex-wrap items-center gap-x-[18px] gap-y-2 border-b border-border-soft bg-panel py-2.5 pr-3 pl-4`,children:[(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`h3`,{className:`m-0 text-sm font-semibold leading-5`,children:`Review changes`}),(0,U.jsxs)(`button`,{type:`button`,title:`Back to the chat`,onClick:e.openChat,className:`inline-flex max-w-full items-center gap-1 text-xs text-text-2 underline-offset-[3px] hover:text-text hover:underline`,children:[(0,U.jsx)(h,{className:`size-3 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.chatTitle||`Chat`})]})]}),s.total>0&&(0,U.jsx)(we,{reviews:c,total:s.total,open:s.open,projectPath:n}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary @min-[760px]:hidden`,"aria-expanded":p,onClick:()=>g(!p),children:[(0,U.jsx)(i,{}),W(c.length,`file`)]}),s.open>0&&(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,onClick:()=>void t.keepAll(),children:[(0,U.jsx)(d,{}),`Keep all remaining`]}),(0,U.jsx)(`button`,{type:`button`,className:Ae,title:`Reload`,"aria-label":`Reload`,onClick:()=>void t.reload(),children:(0,U.jsx)(m,{className:y(`size-3.5`,t.loading&&`animate-spin`)})})]})]}),t.error&&(0,U.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),(0,U.jsxs)(`div`,{className:`relative grid min-h-0 flex-1 grid-cols-[minmax(0,1fr)] @min-[760px]:grid-cols-[288px_minmax(0,1fr)]`,children:[(0,U.jsx)(`aside`,{"aria-label":`Changed files`,className:`hidden min-h-0 flex-col overflow-y-auto border-r border-border-soft bg-panel @min-[760px]:flex`,children:v}),p&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 @min-[760px]:hidden`,onClick:()=>g(!1)}),(0,U.jsx)(`aside`,{"aria-label":`Changed files`,className:`absolute inset-y-0 left-0 z-30 flex w-[min(288px,85%)] flex-col overflow-y-auto border-r border-border bg-panel shadow-[var(--shadow-float)] @min-[760px]:hidden`,children:v})]}),(0,U.jsx)(`section`,{"aria-label":`Changes`,className:`relative flex min-h-0 min-w-0 flex-col`,children:r?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Me,{view:e}),(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Oe,{view:e,compact:!1,onRevertFile:()=>f(!0)}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!1,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]}),(0,U.jsx)(Ne,{view:e,confirm:u,setConfirm:f})]}):(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Ee,{loading:t.files===null||s.open>0&&!a,files:c.length,total:s.total,kept:s.kept,onChat:e.openChat}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!1,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]})})]})]})}function Me({view:e}){let t=e.review.focused,{base:n,dir:r}=G(t.path,e.projectPath),i=t.file.status===`deleted`;return(0,U.jsxs)(`div`,{className:`relative flex min-h-12 shrink-0 flex-wrap items-center gap-x-[9px] gap-y-1.5 border-b border-border-soft py-2 pr-3 pl-4`,children:[(0,U.jsx)(C,{name:n,className:`size-4`}),(0,U.jsx)(`span`,{className:y(`whitespace-nowrap text-sm font-semibold`,i&&`text-text-2 line-through`),children:n}),(0,U.jsx)(xe,{status:t.file.status}),r&&(0,U.jsx)(`span`,{dir:`rtl`,title:t.path,className:`min-w-10 shrink truncate text-left text-xs text-text-subtle`,children:(0,U.jsxs)(`bdi`,{children:[r,`/`]})}),(0,U.jsx)(le,{file:t.file,className:`font-mono text-[11px]`}),(0,U.jsx)(`span`,{className:`flex-1`}),!i&&!t.gone&&(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,onClick:()=>e.openFile(t.path),children:[(0,U.jsx)(p,{}),`Open`]})]})}function Ne({view:e,confirm:t,setConfirm:n}){let{review:i}=e,a=i.focused,{base:o}=G(a.path,e.projectPath),l=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(!t)return;let e=e=>{l.current?.contains(e.target)||n(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[t,n]);let u=e.nextFile;return(0,U.jsxs)(`div`,{className:`relative flex shrink-0 flex-wrap items-center gap-x-2.5 gap-y-2 border-t border-border-soft bg-panel px-3 py-2 text-[12.5px] text-text-2`,children:[(0,U.jsxs)(`div`,{className:`inline-flex items-center gap-0.5 rounded-lg bg-[color-mix(in_srgb,var(--text)_6%,transparent)] p-0.5`,children:[(0,U.jsx)(`button`,{type:`button`,className:Ae,title:`Previous block (K)`,"aria-label":`Previous block`,onClick:()=>i.step(-1),children:(0,U.jsx)(s,{className:`size-3.5`})}),(0,U.jsx)(`span`,{className:`min-w-[92px] text-center text-xs font-medium text-text-2`,children:i.pane.kind===`whole`?`Whole file`:e.place?`Block ${e.place.index+1} of ${e.place.total}`:``}),(0,U.jsx)(`button`,{type:`button`,className:Ae,title:`Next block (J)`,"aria-label":`Next block`,onClick:()=>i.step(1),children:(0,U.jsx)(c,{className:`size-3.5`})})]}),(0,U.jsx)(`span`,{className:`min-w-0 truncate`,children:a.open?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:a.open}),` open in `,o]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:o}),` is done`]})}),(0,U.jsx)(`span`,{className:`flex-1`}),!a.gone&&(0,U.jsxs)(`span`,{ref:l,className:`relative`,children:[(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,"aria-expanded":t,onClick:()=>n(!t),children:[(0,U.jsx)(f,{}),`Revert file…`]}),t&&(0,U.jsxs)(`div`,{role:`dialog`,"aria-label":`Revert ${o}?`,className:`absolute right-0 bottom-[calc(100%+8px)] z-40 w-[330px] max-w-[calc(100vw-24px)] rounded-xl border border-border bg-panel-2 p-3.5 text-[12.5px] leading-normal text-text-2 shadow-[var(--shadow-float)]`,children:[(0,U.jsxs)(`h5`,{className:`m-0 mb-1.5 flex items-center gap-2 text-[13px] font-semibold text-text`,children:[(0,U.jsx)(f,{className:`size-3.5`}),`Revert `,o,`?`]}),(0,U.jsx)(`p`,{className:`m-0 mb-3`,children:Te(a.file,o,a.blocks.length)}),(0,U.jsxs)(`div`,{className:`flex justify-end gap-1.5`,children:[(0,U.jsx)(S,{variant:`ghost`,size:`sm`,onClick:()=>n(!1),children:`Cancel`}),(0,U.jsxs)(S,{variant:`destructive`,size:`sm`,onClick:()=>{n(!1),i.revertFile()},children:[(0,U.jsx)(f,{}),`Revert file`]})]})]})]}),a.open>0&&!a.gone&&(0,U.jsxs)(S,{variant:`outline`,size:`sm`,onClick:()=>void i.keepFile(),children:[(0,U.jsx)(r,{}),`Keep file`]}),u&&(0,U.jsxs)(S,{variant:a.open?`ghost`:`default`,size:`sm`,className:y(a.open>0&&`text-text-secondary`),onClick:()=>i.focusFile(u.path),children:[`Next: `,G(u.path,e.projectPath).base,(0,U.jsx)(_,{})]})]})}var Pe=`inline-grid size-11 shrink-0 place-items-center rounded-[10px] text-text-2 active:bg-surface-hover`,Q=`inline-flex h-11 min-w-11 items-center justify-center gap-2 whitespace-nowrap rounded-[10px] border px-3 text-sm font-medium active:opacity-80 disabled:opacity-50`;function Fe({view:e}){let{review:t,projectPath:n}=e,{focused:a,focus:o,progress:l,reviews:p}=t,[m,h]=(0,R.useState)(null),g=()=>h(null),_=l.total-l.open;return(0,U.jsxs)(`div`,{"data-testid":`session-review`,className:`flex h-full flex-col overflow-hidden bg-bg`,children:[(0,U.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center gap-1 border-b border-border-soft bg-panel pr-1 pl-3.5`,children:[(0,U.jsx)(`h3`,{className:`m-0 min-w-0 flex-1 truncate text-[15px] font-semibold`,children:`Review changes`}),l.total>0&&(0,U.jsxs)(`span`,{className:`mr-0.5 text-xs text-text-2`,children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:_}),`/`,l.total,` blocks`]}),(0,U.jsx)(`button`,{type:`button`,className:Pe,"aria-label":`All files`,onClick:()=>h(`files`),children:(0,U.jsx)(i,{className:`size-5`})})]}),(0,U.jsx)(`div`,{className:`h-[3px] shrink-0 bg-[color-mix(in_srgb,var(--text)_10%,transparent)]`,children:(0,U.jsx)(`div`,{className:`h-full bg-primary transition-[width]`,style:{width:l.total?`${_/l.total*100}%`:0}})}),t.error&&(0,U.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),a?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Le,{view:e,onActions:()=>h(`actions`)}),(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Oe,{view:e,compact:!0,onRevertFile:()=>h(`confirm`)}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!0,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-t border-border-soft bg-panel px-2.5 py-2`,children:[(0,U.jsx)(`button`,{type:`button`,className:y(Q,`border-border bg-panel-2 px-0 text-text`),"aria-label":`Previous block`,onClick:()=>t.step(-1),children:(0,U.jsx)(s,{className:`size-5`})}),e.focusState===`open`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),onClick:()=>e.revertFocused(()=>h(`confirm`)),children:[(0,U.jsx)(f,{className:`size-5`}),`Revert`]}),(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-transparent bg-primary text-primary-foreground`),onClick:e.keepFocused,children:[(0,U.jsx)(r,{className:`size-5`}),`Keep`]})]}):(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),disabled:!e.changeFocused,onClick:()=>e.changeFocused?.(),children:[(0,U.jsx)(u,{className:`size-5`}),`Change`]}),(0,U.jsx)(`button`,{type:`button`,className:y(Q,`border-border bg-panel-2 px-0 text-text`),"aria-label":`Next block`,onClick:()=>t.step(1),children:(0,U.jsx)(c,{className:`size-5`})})]})]}):(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Ee,{loading:t.files===null||l.open>0&&!o,files:p.length,total:l.total,kept:l.kept,onChat:e.openChat}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!0,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]}),(0,U.jsxs)(w,{open:m===`files`,onClose:g,className:`flex max-h-[85%] flex-col`,children:[(0,U.jsx)(Ie,{title:`Files changed in this chat`,sub:`${_} of ${l.total} blocks decided · ${l.open} left`,onClose:g}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,U.jsx)(X,{reviews:p,current:a?.path??null,mobile:!0,projectPath:n,onPick:e=>{t.focusFile(e),g()}})}),l.open>0&&(0,U.jsx)(`div`,{className:`flex shrink-0 gap-2 border-t border-border-soft px-4 pt-2.5`,children:(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),onClick:()=>{g(),t.keepAll()},children:[(0,U.jsx)(d,{className:`size-5`}),`Keep all remaining`]})})]}),a&&(0,U.jsx)(w,{open:m===`actions`||m===`confirm`,onClose:g,className:`flex max-h-[85%] flex-col`,children:m===`confirm`?(0,U.jsx)(ze,{view:e,onDone:g}):(0,U.jsx)(Re,{view:e,onClose:g,onRevert:()=>h(`confirm`)})})]})}function Ie({title:e,sub:t,icon:n,onClose:r}){return(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2.5 pt-0.5 pr-1.5 pb-2 pl-4`,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n,(0,U.jsx)(`h4`,{className:`m-0 min-w-0 truncate text-[15px] font-semibold`,children:e})]}),t&&(0,U.jsx)(`p`,{className:`m-0 mt-0.5 text-xs text-text-subtle`,children:t})]}),(0,U.jsx)(`button`,{type:`button`,className:Pe,"aria-label":`Close`,onClick:r,children:(0,U.jsx)(g,{className:`size-5`})})]})}function Le({view:e,onActions:t}){let n=e.review.focused,{base:r,dir:i}=G(n.path,e.projectPath),o=e.review.pane.kind===`whole`?`Whole file`:e.place?`Block ${e.place.index+1} of ${e.place.total}`:``;return(0,U.jsxs)(`div`,{className:`flex min-h-[52px] shrink-0 items-center gap-2 border-b border-border-soft bg-panel py-1 pr-1 pl-3.5`,children:[(0,U.jsx)(C,{name:r,className:`size-4`}),(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,U.jsx)(`b`,{className:y(`truncate text-sm font-semibold`,n.file.status===`deleted`&&`text-text-2 line-through`),children:r}),(0,U.jsx)(`small`,{className:`truncate text-[11.5px] text-text-subtle`,children:[o,i].filter(Boolean).join(` · `)})]}),(0,U.jsx)(`button`,{type:`button`,className:Pe,"aria-label":`File actions`,onClick:t,children:(0,U.jsx)(a,{className:`size-5`})})]})}function $({icon:e,label:t,destructive:n,onClick:r}){return(0,U.jsxs)(`button`,{type:`button`,onClick:r,className:y(`flex min-h-12 w-full items-center gap-3 px-4 text-left text-sm active:bg-surface-hover`,n?`text-error`:`text-text`),children:[e,t]})}function Re({view:e,onClose:t,onRevert:n}){let i=e.review.focused,{base:a}=G(i.path,e.projectPath),o=i.file.status===`deleted`,s=e=>()=>{t(),e()};return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Ie,{title:a,onClose:t}),(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto border-t border-border-soft py-1`,children:[!o&&!i.gone&&(0,U.jsx)($,{icon:(0,U.jsx)(p,{className:`size-5`}),label:`Open file`,onClick:s(()=>e.openFile(i.path))}),i.open>0&&!i.gone&&(0,U.jsx)($,{icon:(0,U.jsx)(r,{className:`size-5`}),label:`Keep file`,onClick:s(()=>void e.review.keepFile())}),!i.gone&&(0,U.jsx)($,{icon:(0,U.jsx)(f,{className:`size-5`}),label:`Revert file…`,destructive:!0,onClick:n}),(0,U.jsx)($,{icon:(0,U.jsx)(h,{className:`size-5`}),label:`Back to chat`,onClick:s(e.openChat)})]})]})}function ze({view:e,onDone:t}){let n=e.review.focused,{base:r}=G(n.path,e.projectPath);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Ie,{title:`Revert ${r}?`,icon:(0,U.jsx)(f,{className:`size-5 shrink-0 text-error`}),onClose:t}),(0,U.jsxs)(`div`,{className:`px-4 pb-1`,children:[(0,U.jsx)(`p`,{className:`m-0 mb-3.5 text-sm leading-normal text-text-2`,children:Te(n.file,r,n.blocks.length)}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),onClick:t,children:`Cancel`}),(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-transparent bg-[color-mix(in_srgb,var(--error)_85%,#000)] text-white`),onClick:()=>{t(),e.review.revertFile()},children:[(0,U.jsx)(f,{className:`size-5`}),`Revert file`]})]})]})]})}function Be(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Ve({metadata:e}){let t=e?.projectName,n=e?.sessionId,r=e?.providerId,i=e?.chatTitle,a=x(),o=b(e=>e.projects.find(e=>e.name===t)?.path),s=B({projectName:t,sessionId:n,paths:Be(e?.paths),select:e?.select}),c=(0,R.useCallback)(()=>{!t||!n||ne.getState().openTab({type:`chat`,title:i||`Chat`,projectId:t,metadata:{projectName:t,sessionId:n,...r?{providerId:r}:{}},closable:!0})},[t,n,r,i]),l=(0,R.useCallback)((e,t)=>{n&&(D.getState().jump({sessionId:n,toolUseId:t,messageId:e.messageId}),c())},[n,c]),u=be({projectName:t,sessionId:n,providerId:r,calls:(0,R.useMemo)(()=>s.reviews.flatMap(e=>e.file.blocks?.flatMap(e=>e.calls??[])??[]),[s.reviews])}),d=(0,R.useCallback)(e=>{t&&ne.getState().openTab({type:`editor`,title:G(e,void 0).base,metadata:{filePath:e,projectName:t},projectId:t,closable:!0})},[t]);if(!t||!n)return(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-text-3`,children:`No chat session.`});let f=De({review:s,projectPath:o,providerId:r,chatTitle:i,openChat:c,openFile:d,turns:u,showInChat:l});return a?(0,U.jsx)(Fe,{view:f}):(0,U.jsx)(je,{view:f})}export{Ve as SessionReviewTab};
@@ -0,0 +1 @@
1
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{L as r,u as i}from"./icons-BwyIKaTT.js";import{n as a}from"./utils-Bslrbb-G.js";import{a as o,i as s,n as c,o as l,r as u}from"./settings-categories-Ajj4ui27.js";import{t as d}from"./button-C9ZXWb3b.js";import{t as f}from"./scroll-area-DOlQJGZp.js";import{t as p}from"./separator-DmU9aJwq.js";import{n as m}from"./settings-section-content-DkUJFop6.js";var h=n();function g({active:e,onSelect:t}){return(0,h.jsx)(f,{className:`h-full`,children:(0,h.jsx)(`nav`,{className:`p-2 space-y-4`,"aria-label":`Settings categories`,children:c.map(n=>{let r=o(n.id);return r.length===0?null:(0,h.jsxs)(`div`,{className:`space-y-1`,children:[n.label&&(0,h.jsx)(`h3`,{className:`px-2 pt-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:n.label}),r.map(n=>{let r=n.icon,i=n.id===e;return(0,h.jsxs)(`button`,{onClick:()=>t(n.id),"data-testid":`settings-rail-${n.id}`,"aria-current":i?`page`:void 0,className:a(`w-full flex items-center gap-2.5 px-2.5 py-2 rounded-md text-left cursor-pointer transition-colors`,i?`bg-accent text-accent-foreground`:`hover:bg-accent/50 active:bg-accent`),children:[(0,h.jsx)(r,{className:a(`size-4 shrink-0`,i?`text-foreground`:`text-muted-foreground`)}),(0,h.jsx)(`span`,{className:`text-sm truncate`,children:n.label})]},n.id)})]},n.id)})})})}function _({onSelect:e}){return(0,h.jsx)(f,{className:`h-full`,children:(0,h.jsx)(`nav`,{className:`p-3 space-y-5`,"aria-label":`Settings categories`,children:c.map(t=>{let n=o(t.id);return n.length===0?null:(0,h.jsxs)(`div`,{className:`space-y-1`,children:[t.label&&(0,h.jsx)(`h3`,{className:`px-1 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:t.label}),n.map(t=>{let n=t.icon;return(0,h.jsxs)(`button`,{onClick:()=>e(t.id),"data-testid":`settings-index-${t.id}`,className:`w-full flex items-center gap-3 px-2.5 py-3 rounded-lg text-left cursor-pointer group hover:bg-accent/50 active:bg-accent transition-colors`,children:[(0,h.jsx)(`div`,{className:`size-10 rounded-md bg-muted flex items-center justify-center shrink-0 group-hover:bg-accent`,children:(0,h.jsx)(n,{className:`size-4 text-muted-foreground`})}),(0,h.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,h.jsx)(`p`,{className:`text-sm font-medium truncate`,children:t.label}),(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:t.subtitle})]}),(0,h.jsx)(r,{className:`size-4 text-muted-foreground shrink-0`})]},t.id)})]},t.id)})})})}var v=e(t(),1);function y({initialCategory:e,onCategoryChange:t}){let[n,r]=(0,v.useState)(e??`general`),[a,o]=(0,v.useState)(e===void 0),c=l(n),y=c.icon;function b(e){r(e),o(!1),t?.(e)}let x=(0,v.useRef)(b);return x.current=b,(0,v.useEffect)(()=>{let e=e=>{let t=e.detail;s(t)&&x.current(t)};return window.addEventListener(u,e),()=>window.removeEventListener(u,e)},[]),(0,h.jsx)(`div`,{className:`@container h-full w-full`,"data-testid":`settings-window`,"data-category":n,children:(0,h.jsxs)(`div`,{className:`h-full w-full flex`,children:[(0,h.jsx)(`aside`,{className:`hidden @[640px]:flex @[640px]:flex-col w-[210px] shrink-0 border-r border-border min-h-0`,"data-testid":`settings-rail`,children:(0,h.jsx)(g,{active:n,onSelect:b})}),(0,h.jsxs)(`div`,{className:`relative flex-1 min-w-0`,children:[(0,h.jsxs)(`div`,{className:`h-full flex flex-col min-h-0`,children:[(0,h.jsxs)(`div`,{className:`shrink-0 flex items-center gap-2 px-2 py-2.5 @[640px]:px-4`,children:[(0,h.jsx)(d,{variant:`ghost`,size:`icon`,"aria-label":`Back to settings list`,className:`size-9 shrink-0 cursor-pointer @[640px]:hidden`,onClick:()=>o(!0),children:(0,h.jsx)(i,{className:`size-4`})}),(0,h.jsx)(y,{className:`size-4 text-muted-foreground shrink-0`}),(0,h.jsx)(`h2`,{className:`text-sm font-semibold truncate`,"data-testid":`settings-pane-title`,children:c.label})]}),(0,h.jsx)(p,{}),(0,h.jsx)(f,{className:`flex-1 min-h-0`,children:(0,h.jsx)(`div`,{className:`p-4 pb-8`,children:(0,h.jsx)(m,{category:n})})})]}),a&&(0,h.jsxs)(`div`,{className:`absolute inset-0 z-10 bg-background flex flex-col min-h-0 @[640px]:hidden`,"data-testid":`settings-index`,children:[(0,h.jsx)(`div`,{className:`shrink-0 px-4 py-3`,children:(0,h.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,h.jsx)(p,{}),(0,h.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,h.jsx)(_,{onSelect:b})})]})]})]})})}export{y as t};
@@ -0,0 +1 @@
1
+ import{C as e,D as t,Gt as n,Jn as r,Ln as i,Mn as a,O as o,Rn as s,Rt as c,T as l,ci as u,fn as d,fr as f,ln as p,mt as m,pi as h,pt as g,un as _,w as v,wr as y}from"./icons-BwyIKaTT.js";var b=[{id:`core`,label:null},{id:`ai`,label:`AI & Accounts`},{id:`integrations`,label:`Integrations`},{id:`advanced`,label:`Advanced`}],x=[{id:`general`,group:`core`,label:`General`,subtitle:`Device name, password, version`,icon:y},{id:`appearance`,group:`core`,label:`Appearance`,subtitle:`Theme, tabs, explorer skin`,icon:r},{id:`language-servers`,group:`core`,label:`Language Servers`,subtitle:`Completions and go to definition, per language`,icon:h},{id:`remote-desktop`,group:`core`,label:`Remote Desktop`,subtitle:`WebRTC relay for streaming this host's screen`,icon:i},{id:`database-drivers`,group:`core`,label:`Database Drivers`,subtitle:`MySQL and MariaDB support, installed on request`,icon:g},{id:`ai-provider`,group:`ai`,label:`AI Provider`,subtitle:`Model, execution mode, limits`,icon:v},{id:`tools`,group:`ai`,label:`Tools`,subtitle:`PPM tools the AI can use`,icon:u},{id:`accounts`,group:`ai`,label:`Accounts`,subtitle:`Claude and Codex sign-ins, rotation`,icon:p},{id:`design`,group:`ai`,label:`Design`,subtitle:`Design instructions and skills`,icon:d},{id:`voice`,group:`ai`,label:`Voice Input`,subtitle:`Speech to text for the chat box`,icon:a},{id:`ppmbot`,group:`integrations`,label:`PPMBot`,subtitle:`Telegram AI bot`,icon:l},{id:`notifications`,group:`integrations`,label:`Notifications`,subtitle:`Push, Telegram & ntfy alerts`,icon:e},{id:`jira`,group:`integrations`,label:`Jira Watcher`,subtitle:`Auto-debug Jira tickets`,icon:t},{id:`extensions`,group:`integrations`,label:`Extensions`,subtitle:`Install and manage extensions`,icon:f},{id:`proxy`,group:`integrations`,label:`API Proxy`,subtitle:`Expose accounts as Anthropic API`,icon:n},{id:`remote-access`,group:`integrations`,label:`Remote Access`,subtitle:`Tailscale, public link`,icon:s},{id:`schedules`,group:`advanced`,label:`Scheduled Agents`,subtitle:`Run Claude on a cron schedule`,icon:o},{id:`shortcuts`,group:`advanced`,label:`Keyboard Shortcuts`,subtitle:`Customize key bindings`,icon:_},{id:`files`,group:`advanced`,label:`File Filters`,subtitle:`Exclude patterns, ignore files`,icon:c},{id:`query-audit`,group:`advanced`,label:`Query Audit Log`,subtitle:`SQL history retention and size`,icon:m}],S=`ppm:settings-navigate`,C=`general`;function w(e){return typeof e==`string`&&x.some(t=>t.id===e)}function T(e){return x.find(t=>t.id===e)}function E(e){return x.filter(t=>t.group===e)}export{E as a,w as i,b as n,T as o,S as r,C as t};
@@ -0,0 +1 @@
1
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{n as r}from"./utils-Bslrbb-G.js";import{t as i}from"./button-C9ZXWb3b.js";import{Kn as a}from"./index-DLB3j_P0.js";var o=e(t(),1),s=n();function c({title:e,children:t}){return(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{className:`text-sm font-medium`,children:e}),(0,s.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:t})]})}function l({label:e,note:t,checked:n,disabled:i,onChange:c}){let l=(0,o.useId)();return(0,s.jsxs)(`div`,{className:`flex min-h-11 items-center justify-between gap-3 px-4`,children:[(0,s.jsxs)(`label`,{htmlFor:l,className:r(`min-w-0 flex-1 py-3`,i?`cursor-default`:`cursor-pointer`),children:[(0,s.jsx)(`span`,{className:`block text-sm`,children:e}),t&&(0,s.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:t})]}),(0,s.jsx)(a,{id:l,checked:n,disabled:i,onCheckedChange:c})]})}function u({label:e,onClick:t,disabled:n,danger:a,children:o}){return(0,s.jsx)(i,{variant:`ghost`,size:`icon`,"aria-label":e,title:e,disabled:n,onClick:t,className:r(`size-11 shrink-0 cursor-pointer md:size-9`,a&&`text-error hover:text-error`),children:o})}export{c as n,l as r,u as t};
@@ -0,0 +1 @@
1
+ import"./vendor-markdown-C-P1aR4p.js";import"./icons-BwyIKaTT.js";import{r as e}from"./settings-section-content-DkUJFop6.js";export{e as preloadSettingsSections};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/general-settings-section-DvHROAMa.js","assets/rolldown-runtime-C5c2KzVm.js","assets/index-DLB3j_P0.js","assets/preload-helper-CM8YhcCa.js","assets/vendor-ui-BTSIXzhZ.js","assets/vendor-markdown-C-P1aR4p.js","assets/button-C9ZXWb3b.js","assets/utils-Bslrbb-G.js","assets/createLucideIcon-D9_fdOKS.js","assets/file-diff-CcDhJkXB.js","assets/git-commit-horizontal-BPdj2L1i.js","assets/api-client-xQDlhUTu.js","assets/react-BZ0kba1-.js","assets/open-db-tabs-CtWIWHOa.js","assets/window-store-DqX_qmkQ.js","assets/panel-store-BJhazigC.js","assets/session-list-sync-triggers-DtJI5KF0.js","assets/project-store-BLGl9IAO.js","assets/project-framework-store-DwLxaRan.js","assets/explorer-model-BtJN4MZ9.js","assets/db-sidebar-reveal-_qw0CliT.js","assets/settings-store-B4mLp19V.js","assets/use-is-mobile-VRV9eZy1.js","assets/db-types-CNhENouW.js","assets/tab-store-D5I52eLN.js","assets/use-db-driver-installed-anzWkGi5.js","assets/impexp-state-BWKOuRGj.js","assets/file-store-BQ41vIs5.js","assets/sql-identifiers-DDISwQor.js","assets/db-explorer-store-BmpvDHz6.js","assets/onboarding-quick-orientation-CTHtIRib.js","assets/dialog-Dn_2tuYa.js","assets/portal-container-context-NBi-KGK0.js","assets/icons-BwyIKaTT.js","assets/format-file-meta-DdYtk07C.js","assets/fs-api-CFtQzsIJ.js","assets/open-settings-EXR4zoZG.js","assets/settings-categories-Ajj4ui27.js","assets/adaptive-context-menu-C4jNSORA.js","assets/context-menu-BCuZYfWC.js","assets/mobile-bottom-sheet-DArbIyrD.js","assets/use-visual-viewport-MmugpRg-.js","assets/dropdown-menu-BQidk_OJ.js","assets/input-C3oVNCMq.js","assets/scroll-area-DOlQJGZp.js","assets/start-ellipsis-CU8GkxaV.js","assets/chat-preparation-cache-190LLyy7.js","assets/clipboard-D-VCry-F.js","assets/file-icons-JInFtBVl.js","assets/format-date-CSHaU2wN.js","assets/git-repo-store-CKB5fdNP.js","assets/patch-tab-metadata-C92YkrRX.js","assets/ws-auth-CbF6GqxP.js","assets/apply-theme-ORrEdHKT.js","assets/resolve-theme-BqoL27BW.js","assets/index-M3DUzop8.css","assets/onboarding-entry-eehqBvyM.js","assets/separator-DmU9aJwq.js","assets/appearance-settings-section-D0JIfiRx.js","assets/language-servers-section-DOcZ72FJ.js","assets/remote-desktop-settings-section-ZAsBRwjq.js","assets/database-drivers-section-DJvU6bf5.js","assets/ai-settings-section-CN5BR1ZZ.js","assets/ai-settings-section-C9Q-v8fY.js","assets/api-settings-vmIRFNwZ.js","assets/tools-settings-section-DEvZsrxq.js","assets/db-ai-tools-CVbbW_MZ.js","assets/split-sql-statements-DcAeXbk_.js","assets/design-canvas-check-BIHc2d_k.js","assets/settings-rows-DD7Gxmst.js","assets/accounts-settings-section-B5YXy0vd.js","assets/codex-reset-credit-button-DQDtyvnd.js","assets/design-settings-section-DPGw61pY.js","assets/design-skill-suggestion-Dmmg_ap5.js","assets/slash-command-picker-lILYDfK3.js","assets/design-responsive-dialog-MAFgVOmv.js","assets/design-system-status-label-KA4ESjWe.js","assets/voice-settings-section-C6Wb6q5o.js","assets/run-in-terminal-button-m3i-Hcou.js","assets/run-in-terminal-ujoc25vj.js","assets/ppmbot-settings-section-XfrZ8VoC.js","assets/telegram-bot-token-field-BqNtOo5n.js","assets/notifications-settings-section-JiGvaCFx.js","assets/jira-watcher-section-EQvdnETB.js","assets/extension-manager-section-NSEt5f4z.js","assets/proxy-settings-section-CvaOvYIv.js","assets/remote-access-settings-section-Bv0eawR4.js","assets/schedules-settings-section-BbaPbc28.js","assets/keyboard-shortcuts-section-DN21gB-T.js","assets/files-settings-section-Bq7liJ_r.js","assets/query-audit-section-D_WDp1m-.js"])))=>i.map(i=>d[i]);
2
+ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{xn as r}from"./icons-BwyIKaTT.js";import{t as i}from"./preload-helper-CM8YhcCa.js";import{ui as a}from"./index-DLB3j_P0.js";var o=e(t(),1),s=n(),c={general:a(()=>i(()=>import(`./general-settings-section-DvHROAMa.js`).then(e=>({default:e.GeneralSettingsSection})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]))),appearance:a(()=>i(()=>import(`./appearance-settings-section-D0JIfiRx.js`).then(e=>({default:e.AppearanceSettingsSection})),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),"language-servers":a(()=>i(()=>import(`./language-servers-section-DOcZ72FJ.js`).then(e=>({default:e.LanguageServersSection})),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),"remote-desktop":a(()=>i(()=>import(`./remote-desktop-settings-section-ZAsBRwjq.js`).then(e=>({default:e.RemoteDesktopSettingsSection})),__vite__mapDeps([60,1,4,5,6,7,11,57,33]))),"database-drivers":a(()=>i(()=>import(`./database-drivers-section-DJvU6bf5.js`).then(e=>({default:e.DatabaseDriversSection})),__vite__mapDeps([61,1,4,5,6,7,11,25,31,32,33,40,41,22]))),"ai-provider":a(()=>i(()=>import(`./ai-settings-section-CN5BR1ZZ.js`).then(e=>({default:e.AISettingsSection})),__vite__mapDeps([62,4,1,5,6,7,11,21,3,12,14,15,16,17,18,63,2,8,9,10,13,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,64]))),tools:a(()=>i(()=>import(`./tools-settings-section-DEvZsrxq.js`).then(e=>({default:e.ToolsSettingsSection})),__vite__mapDeps([65,1,4,5,6,7,11,66,23,67,68,69,2,3,8,9,10,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,64]))),accounts:a(()=>i(()=>import(`./accounts-settings-section-B5YXy0vd.js`).then(e=>({default:e.AccountsSettingsSection})),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,71,64]))),design:a(()=>i(()=>import(`./design-settings-section-DPGw61pY.js`).then(e=>({default:e.DesignSettingsSection})),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,73,74,75,76]))),voice:a(()=>i(()=>import(`./voice-settings-section-C6Wb6q5o.js`).then(e=>({default:e.VoiceSettingsSection})),__vite__mapDeps([77,1,4,5,6,7,11,21,3,12,14,15,16,17,18,78,33,79,57]))),ppmbot:a(()=>i(()=>import(`./ppmbot-settings-section-XfrZ8VoC.js`).then(e=>({default:e.PPMBotSettingsSection})),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,69,81,57]))),notifications:a(()=>i(()=>import(`./notifications-settings-section-JiGvaCFx.js`).then(e=>({default:e.NotificationsSettingsSection})),__vite__mapDeps([82,1,4,5,6,7,11,69,2,3,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,81,57]))),jira:a(()=>i(()=>import(`./jira-watcher-section-EQvdnETB.js`).then(e=>({default:e.JiraWatcherSection})),__vite__mapDeps([83,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),extensions:a(()=>i(()=>import(`./extension-manager-section-NSEt5f4z.js`).then(e=>({default:e.ExtensionManagerSection})),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),proxy:a(()=>i(()=>import(`./proxy-settings-section-CvaOvYIv.js`).then(e=>({default:e.ProxySettingsSection})),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,64]))),"remote-access":a(()=>i(()=>import(`./remote-access-settings-section-Bv0eawR4.js`).then(e=>({default:e.RemoteAccessSettingsSection})),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,78,79]))),schedules:a(()=>i(()=>import(`./schedules-settings-section-BbaPbc28.js`).then(e=>({default:e.SchedulesSettingsSection})),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),shortcuts:a(()=>i(()=>import(`./keyboard-shortcuts-section-DN21gB-T.js`).then(e=>({default:e.KeyboardShortcutsSection})),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),files:a(()=>i(()=>import(`./files-settings-section-Bq7liJ_r.js`).then(e=>({default:e.FilesSettingsSection})),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),"query-audit":a(()=>i(()=>import(`./query-audit-section-D_WDp1m-.js`).then(e=>({default:e.QueryAuditSection})),__vite__mapDeps([90,1,4,5,6,7,11,43,64,46,33])))};function l(){return Promise.all(Object.values(c).map(e=>e.preload()))}function u({category:e}){let t=c[e];return(0,s.jsx)(o.Suspense,{fallback:(0,s.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,s.jsx)(r,{className:`size-5 animate-spin text-muted-foreground`})}),children:(0,s.jsx)(t,{})})}export{u as n,l as r,c as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-themes-CaXofG7d.js","assets/vendor-ui-BTSIXzhZ.js","assets/rolldown-runtime-C5c2KzVm.js","assets/vendor-markdown-C-P1aR4p.js","assets/api-client-xQDlhUTu.js","assets/api-settings-VAi0LpIJ.js","assets/api-settings-vmIRFNwZ.js","assets/chat-preparation-cache-190LLyy7.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./api-client-xQDlhUTu.js";import{t}from"./react-BZ0kba1-.js";import{t as n}from"./preload-helper-CM8YhcCa.js";var r={best:{id:`best`,label:`Good image quality`,ratio:1.5},balanced:{id:`balanced`,label:`Balanced`,ratio:.67},low:{id:`low`,label:`Optimize reaction time`,ratio:.5}},i=[`best`,`balanced`,`low`],a=`balanced`;function o(e){return typeof e==`string`&&Object.hasOwn(r,e)?e:null}function s(e){return e===`custom`?e:o(e)??`balanced`}function c(e){return e===`custom`?i[0]:i[(i.indexOf(e)+1)%i.length]}var l={best:`Good`,balanced:`Balanced`,low:`Reaction`};function u(e){return e===`custom`?`Custom`:l[e]}var d=[`table`,`view`,`matview`,`function`,`procedure`,`trigger`,`sequence`],f={ids:200,folders:200,objects:500,text:300,schemas:100},p=.15,m=.85,h={opened:[],expandedConns:[],collapsedFolders:[],emptyFolders:[],openGroups:[`table`],expandedObjects:[]},g={current:null,split:.42,connectionsCollapsed:!1,objectsCollapsed:!1,connectionSearch:[`name`,`database`],objectSearch:[`name`],objectSort:`name`,onlyWithRows:!1,schemas:{}},_=e=>typeof e==`number`&&Number.isInteger(e)&&e>0,v=e=>typeof e==`string`&&e.length>0&&e.length<=f.text,ee=e=>d.includes(e);function y(e,t,n){return Array.isArray(e)?[...new Set(e.filter(t))].slice(-n):[]}function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function x(e){return b(e)?{opened:y(e.opened,_,f.ids),expandedConns:y(e.expandedConns,_,f.ids),collapsedFolders:y(e.collapsedFolders,v,f.folders),emptyFolders:y(e.emptyFolders,v,f.folders),openGroups:Array.isArray(e.openGroups)?y(e.openGroups,ee,d.length):h.openGroups,expandedObjects:y(e.expandedObjects,v,f.objects)}:null}function te(e){return typeof e==`number`&&Number.isFinite(e)?Math.min(m,Math.max(p,e)):g.split}function S(e){if(!b(e))return null;let t=g,n=e.current,r=b(n)&&_(n.conn)&&(n.database===null||v(n.database))?{conn:n.conn,database:n.database}:null,i={};if(b(e.schemas))for(let[t,n]of Object.entries(e.schemas).slice(-f.schemas))v(t)&&v(n)&&(i[t]=n);return{current:r,split:te(e.split),connectionsCollapsed:e.connectionsCollapsed===!0,objectsCollapsed:e.objectsCollapsed===!0,connectionSearch:Array.isArray(e.connectionSearch)?y(e.connectionSearch,v,10):t.connectionSearch,objectSearch:Array.isArray(e.objectSearch)?y(e.objectSearch,v,10):t.objectSearch,objectSort:e.objectSort===`rows`?`rows`:`name`,onlyWithRows:e.onlyWithRows===!0,schemas:i}}var C={tables:500,key:1e3,column:300},ne=e=>e.length>0&&e.length<=C.key,re=e=>typeof e==`string`&&e.length>0&&e.length<=C.column,ie=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function w(e){if(!ie(e))return null;let t=Object.entries(e).filter(e=>ne(e[0])&&re(e[1]));return Object.fromEntries(t.slice(-C.tables))}function ae(e,t,n){let{[t]:r,...i}=e;return w({...i,[t]:n})??{}}function oe(e){return e*9/5+32}function se(e,t){if(!(e===void 0||!Number.isFinite(e)))return t===`f`?`${oe(e).toFixed(1)} °F`:`${e.toFixed(1)} °C`}function ce(e){return e===`f`?`f`:`c`}var T=[`overall`,`logical`,`threads`,`threads-stacked`],le={overall:`Overall utilisation`,logical:`Logical processors`,threads:`All threads`,"threads-stacked":`All threads stacked`};function ue(e){return T.includes(e)?e:`overall`}var de=[`temperature`,`power`,`clock`,`none`],fe={temperature:`Temperature`,power:`Power draw`,clock:`Clock speed`,none:`None`};function pe(e){return de.includes(e)?e:`temperature`}function me(e,t){if(e<=0)return{cols:0,rows:0};let n=Math.ceil(e/Math.max(1,Math.floor(Math.sqrt(e)))),r=t>0?Math.max(1,Math.floor(t/84)):n,i=Math.min(n,r);return{cols:i,rows:Math.ceil(e/i)}}function he(e){if(e.length<2)return;let t=e[0],n=e[e.length-1],r=Math.round((n-t)/1e3);if(!Number.isFinite(r)||r<=0)return;if(r<90)return`over ${r} seconds`;let i=Math.round(r/60);return i===1?`over 1 minute`:`over ${i} minutes`}var E=[[640,480,400],[800,600,500],[1024,768,800],[1280,720,1e3],[1366,768,1100],[1440,900,1300],[1600,900,1500],[1920,1080,2073],[2048,1080,2200],[2560,1440,3e3],[3440,1440,4e3],[3840,2160,5e3],[7680,4320,12e3]],D=2e3,O=.2,k=40;function ge(e,t){let n=Math.max(1,Math.round(e)*Math.round(t)),r=E[7],i=1/0;for(let e of E){let t=Math.abs(e[0]*e[1]-n);t<i&&(i=t,r=e)}let a=r[0]*r[1];return Math.max(1,Math.round(r[2]*(n/a)))}function _e(e){return Number.isFinite(e)?Math.min(Math.max(e*2/100,O),k):100/100}function ve(e){return Number.isFinite(e)?Math.min(Math.max(e,O),k):O}function ye(e,t,n){return Math.max(1,Math.round(ge(t,n)*ve(e)))}function be(e,t,n){return ye(_e(e),t,n)}function A(e,t=!1){let n=t?D:100;return typeof e!=`number`||!Number.isFinite(e)?50:Math.min(Math.max(Math.round(e),10),n)}function j(e){return typeof e!=`number`||!Number.isFinite(e)?30:Math.min(Math.max(Math.round(e),5),120)}var xe=`adaptive`,Se=[`original`,`adaptive`,`custom`],M={original:`Scale original`,adaptive:`Scale adaptive`,custom:`Scale custom`},N=1e3,P=1/3,Ce=5/100;N/100;function we(e){if(!Number.isFinite(e)||e<=0)return 5;if(e>=1)return N;if(e<=.3333333333333333){let t=e/P;return F(Math.round(5+t*95))}let t=(e-P)/(1-P);return F(Math.round(100+t*(N-100)))}function Te(e){let t=F(e);return t<=100?(t-5)/95*P:P+(t-100)/(N-100)*(1-P)}function Ee(e){return!Number.isFinite(e)||Math.abs(e-.3333333333333333)<=.006?P:Math.min(Math.max(e,0),1)}function F(e){return Number.isFinite(e)?Math.min(Math.max(Math.round(e),5),N):100}function De(e){return typeof e==`string`&&Object.hasOwn(M,e)?e:xe}function I(e){return typeof e!=`number`||!Number.isFinite(e)?1:Math.min(Math.max(e,Ce),10)}function Oe(e,t,n){if(e===`adaptive`||n.width<=0||n.height<=0)return null;let r=e===`original`?1:I(t);return{width:Math.round(n.width*r),height:Math.round(n.height*r)}}var L=`ppm-settings`,R=[`aurora`,`slate`,`precision`,`custom`],z=[`dark`,`light`,`system`];function B(){try{let e=localStorage.getItem(L);if(e)return JSON.parse(e)}catch{}return{}}function ke(e){return e.themeStyle&&R.includes(e.themeStyle)&&e.themeMode&&z.includes(e.themeMode)?{style:e.themeStyle,mode:e.themeMode,customThemeId:e.customThemeId}:e.theme&&z.includes(e.theme)?{style:`aurora`,mode:e.theme}:{style:`aurora`,mode:`system`}}function V(e){return typeof e==`string`?[`explorer`,`git`,`database`,`search`,`jira`,`ai-resources`,`history`,`tunnels`,`teams`,`designs`].includes(e)||e.startsWith(`ext:`):!1}function H(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e)V(r)&&!t.has(r)&&(t.add(r),n.push(r));return n}var U=200;function W(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0&&e.length<=200).slice(-U):null}function G(e){let t=B();localStorage.setItem(L,JSON.stringify({...t,...e}))}var K=null,q={};function Ae(t){let{theme:n,themeStyle:r,themeMode:i,customThemeId:a,...o}=t;Object.keys(o).length!==0&&(Object.assign(q,o),K&&clearTimeout(K),K=setTimeout(()=>{let t=q;q={},K=null;let n=e();fetch(`/api/settings/ui-prefs`,{method:`PUT`,headers:{"Content-Type":`application/json`,...n?{Authorization:`Bearer ${n}`}:{}},body:JSON.stringify(t)}).catch(()=>{})},400))}function J(e){G(e),Ae(e)}function Y(e){G(e)}function X(t,n,r){let i=e();return fetch(`/api/settings/theme`,{method:`PUT`,headers:{"Content-Type":`application/json`,...i?{Authorization:`Bearer ${i}`}:{}},body:JSON.stringify({style:t,mode:n,...r?{customThemeId:r}:{}})}).then(()=>{}).catch(()=>{})}function je(e){let t={};typeof e.wordWrap==`boolean`&&(t.wordWrap=e.wordWrap),typeof e.inlineBlame==`boolean`&&(t.inlineBlame=e.inlineBlame),typeof e.designWindows==`boolean`&&(t.designWindows=e.designWindows),typeof e.tabWrap==`boolean`&&(t.tabWrap=e.tabWrap),typeof e.sidebarCollapsed==`boolean`&&(t.sidebarCollapsed=e.sidebarCollapsed),typeof e.sidebarWidth==`number`&&e.sidebarWidth>=200&&e.sidebarWidth<=600&&(t.sidebarWidth=e.sidebarWidth),(e.gitStatusViewMode===`flat`||e.gitStatusViewMode===`tree`)&&(t.gitStatusViewMode=e.gitStatusViewMode),(e.editorTabStyle===`default`||e.editorTabStyle===`boxed`||e.editorTabStyle===`pill`)&&(t.editorTabStyle=e.editorTabStyle),V(e.sidebarActiveTab)&&(t.sidebarActiveTab=e.sidebarActiveTab),Array.isArray(e.sidebarTabOrder)&&(t.sidebarTabOrder=H(e.sidebarTabOrder)),typeof e.jiraEnabled==`boolean`&&(t.jiraEnabled=e.jiraEnabled),(e.dockPosition===`left`||e.dockPosition===`bottom`||e.dockPosition===`right`)&&(t.dockPosition=e.dockPosition),(e.explorerSkin===`auto`||e.explorerSkin===`windows`||e.explorerSkin===`macos`)&&(t.explorerSkin=e.explorerSkin),typeof e.remoteDesktopStatsVisible==`boolean`&&(t.remoteDesktopStatsVisible=e.remoteDesktopStatsVisible),typeof e.remoteDesktopWarningDismissed==`boolean`&&(t.remoteDesktopWarningDismissed=e.remoteDesktopWarningDismissed);let n=W(e.mcpSignInDismissed);n&&(t.mcpSignInDismissed=n),typeof e.keepScreenAwake==`boolean`&&(t.keepScreenAwake=e.keepScreenAwake);let r=x(e.dbExplorer);r&&(t.dbExplorer=r);let i=w(e.dbLookupDescriptions);i&&(t.dbLookupDescriptions=i),Object.keys(t).length!==0&&(G(t),$.setState(t))}var Z=B(),Q=ke(Z),$=t((t,r)=>({themeStyle:Q.style,themeMode:Q.mode,customThemeId:Q.customThemeId,customThemes:[],sidebarCollapsed:Z.sidebarCollapsed??!1,sidebarWidth:Z.sidebarWidth??280,gitStatusViewMode:Z.gitStatusViewMode===`tree`?`tree`:`flat`,inlineBlame:Z.inlineBlame??!1,designWindows:Z.designWindows??!0,wordWrap:Z.wordWrap??!1,remoteDesktopQuality:s(Z.remoteDesktopQuality),remoteDesktopViewStyle:De(Z.remoteDesktopViewStyle),remoteDesktopCustomScale:I(Z.remoteDesktopCustomScale),remoteDesktopCustomQualityMore:Z.remoteDesktopCustomQualityMore??!1,remoteDesktopCustomQualityPercent:A(Z.remoteDesktopCustomQualityPercent,Z.remoteDesktopCustomQualityMore??!1),remoteDesktopCustomFps:j(Z.remoteDesktopCustomFps),remoteDesktopShowCursor:Z.remoteDesktopShowCursor??!0,remoteDesktopClipboardSync:Z.remoteDesktopClipboardSync??!0,remoteDesktopCodec:typeof Z.remoteDesktopCodec==`string`?Z.remoteDesktopCodec:null,mobileWordWrap:Z.mobileWordWrap??!0,lspEnabled:Z.lspEnabled??!1,voiceEngine:Z.voiceEngine===`whisper`?`whisper`:`browser`,tabWrap:Z.tabWrap??!1,editorTabStyle:Z.editorTabStyle===`boxed`||Z.editorTabStyle===`pill`?Z.editorTabStyle:`default`,sidebarActiveTab:V(Z.sidebarActiveTab)?Z.sidebarActiveTab:`history`,sidebarTabOrder:H(Z.sidebarTabOrder),jiraEnabled:Z.jiraEnabled??!1,dockPosition:Z.dockPosition===`left`||Z.dockPosition===`right`?Z.dockPosition:`bottom`,dbExplorer:x(Z.dbExplorer)??h,dbExplorerView:S(Z.dbExplorerView)??g,dbLookupDescriptions:w(Z.dbLookupDescriptions)??{},explorerSkin:Z.explorerSkin===`windows`||Z.explorerSkin===`macos`?Z.explorerSkin:`auto`,remoteDesktopStatsVisible:Z.remoteDesktopStatsVisible??!1,sysmonTempUnit:ce(Z.sysmonTempUnit),sysmonKernelTimes:Z.sysmonKernelTimes??!0,sysmonCpuGraph:ue(Z.sysmonCpuGraph),sysmonCpuBottomGraph:pe(Z.sysmonCpuBottomGraph),logsUtc:Z.logsUtc===!0,logsWrap:Z.logsWrap===!0,logsBadge:Z.logsBadge!==!1,remoteDesktopWarningDismissed:Z.remoteDesktopWarningDismissed??!1,mcpSignInDismissed:W(Z.mcpSignInDismissed)??[],keepScreenAwake:Z.keepScreenAwake??!0,deviceName:null,version:null,tunnelActive:!1,setThemeStyle:e=>{let n=r().themeMode,i=e===`custom`?r().customThemeId:void 0;G({themeStyle:e,customThemeId:i}),t({themeStyle:e,customThemeId:i}),X(e,n,i)},setThemeMode:e=>{G({themeMode:e}),t({themeMode:e}),X(r().themeStyle,e,r().customThemeId)},setCustomTheme:e=>{G({themeStyle:`custom`,customThemeId:e}),t({themeStyle:`custom`,customThemeId:e}),X(`custom`,r().themeMode,e)},setThemeFromPayload:({style:e,mode:n,customThemeId:r})=>{let i=R.includes(e)?e:`aurora`,a=z.includes(n)?n:`system`;G({themeStyle:i,themeMode:a,customThemeId:r}),t({themeStyle:i,themeMode:a,customThemeId:r})},setCustomThemes:e=>t({customThemes:e}),fetchThemes:async()=>{try{let{fetchImportedThemes:e}=await n(async()=>{let{fetchImportedThemes:e}=await import(`./api-themes-CaXofG7d.js`);return{fetchImportedThemes:e}},__vite__mapDeps([0,1,2,3,4]));t({customThemes:await e()})}catch{}},importThemeFrom:async e=>{let{importTheme:t}=await n(async()=>{let{importTheme:e}=await import(`./api-themes-CaXofG7d.js`);return{importTheme:e}},__vite__mapDeps([0,1,2,3,4])),i=await t(e);return await r().fetchThemes(),i},deleteCustomTheme:async e=>{let{deleteImportedTheme:i}=await n(async()=>{let{deleteImportedTheme:e}=await import(`./api-themes-CaXofG7d.js`);return{deleteImportedTheme:e}},__vite__mapDeps([0,1,2,3,4]));await i(e),await r().fetchThemes(),r().themeStyle===`custom`&&r().customThemeId===e&&(G({themeStyle:`aurora`,themeMode:r().themeMode,customThemeId:void 0}),t({themeStyle:`aurora`,customThemeId:void 0}),X(`aurora`,r().themeMode))},setDeviceName:async e=>{let r=e.trim();t({deviceName:r||null}),r?document.title=`PPM — ${r}`:document.title=`PPM`;try{let{updateDeviceName:e}=await n(async()=>{let{updateDeviceName:e}=await import(`./api-settings-VAi0LpIJ.js`);return{updateDeviceName:e}},__vite__mapDeps([5,1,2,3,4,6,7]));await e(r)}catch{}},setJiraEnabled:e=>{if(J({jiraEnabled:e}),t({jiraEnabled:e}),!e&&r().sidebarActiveTab===`jira`){let e=`explorer`;J({sidebarActiveTab:e}),t({sidebarActiveTab:e})}},toggleSidebar:()=>{let e=!r().sidebarCollapsed;J({sidebarCollapsed:e}),t({sidebarCollapsed:e})},setSidebarWidth:e=>{let n=Math.max(200,Math.min(600,e));J({sidebarWidth:n}),t({sidebarWidth:n})},setGitStatusViewMode:e=>{J({gitStatusViewMode:e}),t({gitStatusViewMode:e})},toggleInlineBlame:()=>{let e=!r().inlineBlame;J({inlineBlame:e}),t({inlineBlame:e})},setDesignWindows:e=>{J({designWindows:e}),t({designWindows:e})},toggleWordWrap:()=>{let e=!r().wordWrap;J({wordWrap:e}),t({wordWrap:e})},toggleMobileWordWrap:()=>{let e=!r().mobileWordWrap;Y({mobileWordWrap:e}),t({mobileWordWrap:e})},setLspEnabled:e=>{Y({lspEnabled:e}),t({lspEnabled:e})},setVoiceEngine:e=>{Y({voiceEngine:e}),t({voiceEngine:e})},setRemoteDesktopQuality:e=>{Y({remoteDesktopQuality:e}),t({remoteDesktopQuality:e})},setRemoteDesktopViewStyle:e=>{Y({remoteDesktopViewStyle:e}),t({remoteDesktopViewStyle:e})},setRemoteDesktopCustomScale:e=>{let n=I(e);Y({remoteDesktopCustomScale:n}),t({remoteDesktopCustomScale:n})},setRemoteDesktopCustomQuality:(e,n)=>{let i={remoteDesktopCustomQualityPercent:A(e,r().remoteDesktopCustomQualityMore),remoteDesktopCustomFps:j(n)};Y(i),t(i)},setRemoteDesktopCustomQualityMore:e=>{let n={remoteDesktopCustomQualityMore:e,remoteDesktopCustomQualityPercent:A(r().remoteDesktopCustomQualityPercent,e)};Y(n),t(n)},setRemoteDesktopShowCursor:e=>{Y({remoteDesktopShowCursor:e}),t({remoteDesktopShowCursor:e})},setRemoteDesktopClipboardSync:e=>{Y({remoteDesktopClipboardSync:e}),t({remoteDesktopClipboardSync:e})},setRemoteDesktopCodec:e=>{Y({remoteDesktopCodec:e}),t({remoteDesktopCodec:e})},toggleTabWrap:()=>{let e=!r().tabWrap;J({tabWrap:e}),t({tabWrap:e})},toggleRemoteDesktopStatsVisible:()=>{let e=!r().remoteDesktopStatsVisible;J({remoteDesktopStatsVisible:e}),t({remoteDesktopStatsVisible:e})},setSysmonTempUnit:e=>{Y({sysmonTempUnit:e}),t({sysmonTempUnit:e})},setSysmonKernelTimes:e=>{Y({sysmonKernelTimes:e}),t({sysmonKernelTimes:e})},setSysmonCpuGraph:e=>{Y({sysmonCpuGraph:e}),t({sysmonCpuGraph:e})},setSysmonCpuBottomGraph:e=>{Y({sysmonCpuBottomGraph:e}),t({sysmonCpuBottomGraph:e})},setLogsUtc:e=>{Y({logsUtc:e}),t({logsUtc:e})},setLogsWrap:e=>{Y({logsWrap:e}),t({logsWrap:e})},setLogsBadge:e=>{Y({logsBadge:e}),t({logsBadge:e})},setRemoteDesktopWarningDismissed:e=>{J({remoteDesktopWarningDismissed:e}),t({remoteDesktopWarningDismissed:e})},dismissMcpSignIn:e=>{let n=r().mcpSignInDismissed,i=[...n,...e.filter(e=>!n.includes(e))].slice(-U);J({mcpSignInDismissed:i}),t({mcpSignInDismissed:i})},undismissMcpSignIn:e=>{let n=r().mcpSignInDismissed;if(!n.includes(e))return;let i=n.filter(t=>t!==e);J({mcpSignInDismissed:i}),t({mcpSignInDismissed:i})},setKeepScreenAwake:e=>{J({keepScreenAwake:e}),t({keepScreenAwake:e})},setEditorTabStyle:e=>{J({editorTabStyle:e}),t({editorTabStyle:e})},setSidebarActiveTab:e=>{J({sidebarActiveTab:e}),t({sidebarActiveTab:e})},setSidebarTabOrder:e=>{let n=H(e);J({sidebarTabOrder:n}),t({sidebarTabOrder:n})},setDockPosition:e=>{J({dockPosition:e}),t({dockPosition:e})},setDbExplorer:e=>{let n=x(e)??h;J({dbExplorer:n}),t({dbExplorer:n})},setDbExplorerView:e=>{let n=S(e)??g;Y({dbExplorerView:n}),t({dbExplorerView:n})},setDbLookupDescription:(e,n)=>{let i=ae(r().dbLookupDescriptions,e,n);J({dbLookupDescriptions:i}),t({dbLookupDescriptions:i})},setExplorerSkin:e=>{J({explorerSkin:e}),t({explorerSkin:e})},fetchServerInfo:async()=>{try{let n=e(),i=n?{headers:{Authorization:`Bearer ${n}`}}:{},[a,o,s]=await Promise.all([fetch(`/api/info`,i),fetch(`/api/settings/theme`,i),fetch(`/api/settings/ui-prefs`,i)]),c=await a.json();if(c.ok){let{device_name:e,version:n,tunnel_active:r}=c.data;t({deviceName:e||null,version:n||null,tunnelActive:!!r}),e&&(document.title=`PPM — ${e}`)}let l=await o.json(),u=l.ok?l.data?.theme:null;u&&typeof u==`object`&&typeof u.style==`string`&&r().setThemeFromPayload({style:u.style,mode:u.mode,customThemeId:u.customThemeId});let d=await s.json();d.ok&&d.data&&je(d.data),r().fetchThemes()}catch{}},syncThemeToServer:async()=>{await X(r().themeStyle,r().themeMode,r().customThemeId)}}));export{u as A,m as C,i as D,r as E,c as O,g as S,a as T,le as _,Oe as a,he as b,Te as c,D as d,j as f,fe as g,de as h,Se as i,o as k,we as l,be as m,N as n,I as o,A as p,M as r,F as s,$ as t,Ee as u,T as v,p as w,se as x,me as y};
@@ -0,0 +1 @@
1
+ import{E as e}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import"./icons-BwyIKaTT.js";import{i as t}from"./settings-categories-Ajj4ui27.js";import"./button-C9ZXWb3b.js";import"./scroll-area-DOlQJGZp.js";import"./separator-DmU9aJwq.js";import"./settings-section-content-DkUJFop6.js";import{t as n}from"./settings-body-vXbOWchN.js";var r=e(),i=({metadata:e})=>(0,r.jsx)(n,{initialCategory:t(e?.category)?e.category:void 0});export{i as SettingsTab};
@@ -0,0 +1 @@
1
+ import{E as e}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import"./icons-BwyIKaTT.js";import{n as t}from"./window-store-DqX_qmkQ.js";import{i as n}from"./settings-categories-Ajj4ui27.js";import"./button-C9ZXWb3b.js";import"./scroll-area-DOlQJGZp.js";import"./separator-DmU9aJwq.js";import"./settings-section-content-DkUJFop6.js";import{t as r}from"./settings-body-vXbOWchN.js";var i=e();function a({id:e,payload:a}){let o=t(e=>e.setPayload);return(0,i.jsx)(r,{initialCategory:n(a?.category)?a.category:void 0,onCategoryChange:t=>o(e,{category:t})})}export{a as default};
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#f6f7f9;--color-panel:#fff;--color-panel-2:#eef0f3;--color-border:#d9dde3;--color-text:#15181d;--color-text-2:#4a525e;--color-text-3:#6b7380;--color-primary:#2563eb;--color-primary-fg:#fff;--color-owner:#7c3aed;--color-owner-fg:#fff;--color-error:#c62828;--color-stage:#e6e9ee}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-tap-highlight-color:transparent;margin:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-\[max\(0\.5rem\,env\(safe-area-inset-top\)\)\]{top:max(.5rem, env(safe-area-inset-top))}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[60\]{z-index:60}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.-ml-3{margin-left:calc(var(--spacing) * -3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-dvh{height:100dvh}.max-h-\[85dvh\]{max-height:85dvh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.w-10{width:calc(var(--spacing) * 10)}.w-80{width:calc(var(--spacing) * 80)}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-16{min-width:calc(var(--spacing) * 16)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.resize-y{resize:vertical}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border{border-color:var(--color-border)}.bg-bg{background-color:var(--color-bg)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-owner{background-color:var(--color-owner)}.bg-panel{background-color:var(--color-panel)}.bg-panel-2{background-color:var(--color-panel-2)}.bg-primary{background-color:var(--color-primary)}.bg-stage{background-color:var(--color-stage)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-\[max\(0\.375rem\,env\(safe-area-inset-top\)\)\]{padding-top:max(.375rem, env(safe-area-inset-top))}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-\[max\(0\.5rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.5rem, env(safe-area-inset-bottom))}.pb-\[max\(0\.25rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.25rem, env(safe-area-inset-bottom))}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-error{color:var(--color-error)}.text-owner-fg{color:var(--color-owner-fg)}.text-primary{color:var(--color-primary)}.text-primary-fg{color:var(--color-primary-fg)}.text-text{color:var(--color-text)}.text-text-2{color:var(--color-text-2)}.text-text-3{color:var(--color-text-3)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-border{--tw-ring-color:var(--color-border)}.ring-panel{--tw-ring-color:var(--color-panel)}.ring-text{--tw-ring-color:var(--color-text)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-text-3::placeholder{color:var(--color-text-3)}.active\:bg-panel-2:active{background-color:var(--color-panel-2)}.active\:opacity-80:active{opacity:.8}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:w-96{width:calc(var(--spacing) * 96)}}@media (hover:hover) and (pointer:fine){@media (hover:hover){.can-hover\:hover\:bg-panel-2:hover{background-color:var(--color-panel-2)}.can-hover\:hover\:opacity-90:hover{opacity:.9}}}}@media (prefers-color-scheme:dark){:root{--color-bg:#111418;--color-panel:#181c22;--color-panel-2:#222831;--color-border:#313844;--color-text:#e8ebef;--color-text-2:#b4bcc7;--color-text-3:#8d96a3;--color-primary:#5b8def;--color-primary-fg:#0b1220;--color-owner:#a78bfa;--color-owner-fg:#140b2b;--color-error:#ff7b72;--color-warning:#e3b341;--color-stage:#0b0d10}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}