@bryanhu/codexly 0.39.1 → 0.41.0

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 (743) hide show
  1. package/CHANGELOG.md +277 -499
  2. package/README.en.md +109 -0
  3. package/README.md +56 -124
  4. package/README.zh-CN.md +3 -154
  5. package/dist/{chunk-WJBQS5HE.js → chunk-7G5JKKJQ.js} +1 -1
  6. package/dist/chunk-C64TCOGX.js +26 -0
  7. package/dist/chunk-DW7IKH5A.js +934 -0
  8. package/dist/{chunk-LGFUYNXR.js → chunk-IUMX3J22.js} +10 -9
  9. package/dist/{chunk-MZC5MJLV.js → chunk-LRH4LRGC.js} +1 -1
  10. package/dist/{chunk-YLWOAPZD.js → chunk-LZBJFLMK.js} +3 -3
  11. package/dist/chunk-QE3SPWGR.js +19 -0
  12. package/dist/chunk-RVNRCEGR.js +37 -0
  13. package/dist/chunk-W4XMPSQ6.js +3 -0
  14. package/dist/cli.js +6 -6
  15. package/dist/client/index.js +2 -2
  16. package/dist/command-JURPOVRJ.js +88 -0
  17. package/dist/core/index.js +1 -1
  18. package/dist/protocol/index.js +1 -1
  19. package/dist/providers/claude/index.js +1 -1
  20. package/dist/providers/codex/index.js +1 -1
  21. package/dist/server/index.js +1 -1
  22. package/dist/sqlite-state-worker.js +44 -15
  23. package/dist/token-usage-response-FRCIPFC4.js +1 -0
  24. package/dist/web/.vite/manifest.json +658 -493
  25. package/dist/web/.vite/manifest.json.br +0 -0
  26. package/dist/web/.vite/manifest.json.gz +0 -0
  27. package/dist/web/assets/{abnfDiagram-N423BO3Z-CEEQQmQS.js → abnfDiagram-N423BO3Z-DhOWqv-9.js} +1 -1
  28. package/dist/web/assets/abnfDiagram-N423BO3Z-DhOWqv-9.js.br +0 -0
  29. package/dist/web/assets/abnfDiagram-N423BO3Z-DhOWqv-9.js.gz +0 -0
  30. package/dist/web/assets/activity-BLmbhAyP.js +1 -0
  31. package/dist/web/assets/activity-BLmbhAyP.js.br +0 -0
  32. package/dist/web/assets/activity-BLmbhAyP.js.gz +0 -0
  33. package/dist/web/assets/agent-settings-panel-BtT_fA4k.js +1 -0
  34. package/dist/web/assets/agent-settings-panel-BtT_fA4k.js.br +0 -0
  35. package/dist/web/assets/agent-settings-panel-BtT_fA4k.js.gz +0 -0
  36. package/dist/web/assets/{api-connection-fields-rwNEEzre.js → api-connection-fields-WueUKMmU.js} +1 -1
  37. package/dist/web/assets/api-connection-fields-WueUKMmU.js.br +0 -0
  38. package/dist/web/assets/api-connection-fields-WueUKMmU.js.gz +0 -0
  39. package/dist/web/assets/app-update-dialog-BVYanXEH.js +1 -0
  40. package/dist/web/assets/app-update-dialog-BVYanXEH.js.br +0 -0
  41. package/dist/web/assets/app-update-dialog-BVYanXEH.js.gz +0 -0
  42. package/dist/web/assets/{architectureDiagram-T3A2C74G-CF2Ovr5z.js → architectureDiagram-T3A2C74G-XaZ7JCUm.js} +1 -1
  43. package/dist/web/assets/architectureDiagram-T3A2C74G-XaZ7JCUm.js.br +0 -0
  44. package/dist/web/assets/architectureDiagram-T3A2C74G-XaZ7JCUm.js.gz +0 -0
  45. package/dist/web/assets/archived-tasks-dialog-DvYO0otZ.js +1 -0
  46. package/dist/web/assets/archived-tasks-dialog-DvYO0otZ.js.br +0 -0
  47. package/dist/web/assets/archived-tasks-dialog-DvYO0otZ.js.gz +0 -0
  48. package/dist/web/assets/arrow-down-DUHHdu_G.js +1 -0
  49. package/dist/web/assets/arrow-down-DUHHdu_G.js.br +0 -0
  50. package/dist/web/assets/arrow-down-DUHHdu_G.js.gz +0 -0
  51. package/dist/web/assets/arrow-up-right-pwN3fEpQ.js +1 -0
  52. package/dist/web/assets/arrow-up-right-pwN3fEpQ.js.br +0 -0
  53. package/dist/web/assets/arrow-up-right-pwN3fEpQ.js.gz +0 -0
  54. package/dist/web/assets/{background-image-picker-Dt25pttj.js → background-image-picker-qLNVDW8q.js} +1 -1
  55. package/dist/web/assets/background-image-picker-qLNVDW8q.js.br +0 -0
  56. package/dist/web/assets/background-image-picker-qLNVDW8q.js.gz +0 -0
  57. package/dist/web/assets/calendar-days-CaEmURf6.js +1 -0
  58. package/dist/web/assets/calendar-days-CaEmURf6.js.br +0 -0
  59. package/dist/web/assets/calendar-days-CaEmURf6.js.gz +0 -0
  60. package/dist/web/assets/chevron-left-Dsg_A5qc.js +1 -0
  61. package/dist/web/assets/chevron-left-Dsg_A5qc.js.br +0 -0
  62. package/dist/web/assets/chevron-left-Dsg_A5qc.js.gz +0 -0
  63. package/dist/web/assets/{chunk-5RXB4S5H-Bu1iYp4t.js → chunk-5RXB4S5H-Bbuu-yH3.js} +1 -1
  64. package/dist/web/assets/chunk-5RXB4S5H-Bbuu-yH3.js.br +0 -0
  65. package/dist/web/assets/{chunk-5RXB4S5H-Bu1iYp4t.js.gz → chunk-5RXB4S5H-Bbuu-yH3.js.gz} +0 -0
  66. package/dist/web/assets/{chunk-6Q2QTUOP-8pETCK89.js → chunk-6Q2QTUOP-BN9DLH6W.js} +1 -1
  67. package/dist/web/assets/chunk-6Q2QTUOP-BN9DLH6W.js.br +0 -0
  68. package/dist/web/assets/chunk-6Q2QTUOP-BN9DLH6W.js.gz +0 -0
  69. package/dist/web/assets/{chunk-GF5L2VYU-Clmi3b75.js → chunk-GF5L2VYU-BMWxsfjW.js} +1 -1
  70. package/dist/web/assets/chunk-GF5L2VYU-BMWxsfjW.js.br +0 -0
  71. package/dist/web/assets/{chunk-GF5L2VYU-Clmi3b75.js.gz → chunk-GF5L2VYU-BMWxsfjW.js.gz} +0 -0
  72. package/dist/web/assets/{chunk-JQJVKLGR-TByUBa_A.js → chunk-JQJVKLGR-CEr3AARA.js} +1 -1
  73. package/dist/web/assets/chunk-JQJVKLGR-CEr3AARA.js.br +0 -0
  74. package/dist/web/assets/{chunk-JQJVKLGR-TByUBa_A.js.gz → chunk-JQJVKLGR-CEr3AARA.js.gz} +0 -0
  75. package/dist/web/assets/{classDiagram-JCYQIIEL-CxEYeVQh.js → classDiagram-JCYQIIEL-BrSlNEkX.js} +1 -1
  76. package/dist/web/assets/classDiagram-JCYQIIEL-BrSlNEkX.js.br +0 -0
  77. package/dist/web/assets/classDiagram-JCYQIIEL-BrSlNEkX.js.gz +0 -0
  78. package/dist/web/assets/{classDiagram-v2-OCEON4UE-CxEYeVQh.js → classDiagram-v2-OCEON4UE-BrSlNEkX.js} +1 -1
  79. package/dist/web/assets/classDiagram-v2-OCEON4UE-BrSlNEkX.js.br +0 -0
  80. package/dist/web/assets/classDiagram-v2-OCEON4UE-BrSlNEkX.js.gz +0 -0
  81. package/dist/web/assets/claude-extensions-pane-B5alX6NW.js +1 -0
  82. package/dist/web/assets/claude-extensions-pane-B5alX6NW.js.br +0 -0
  83. package/dist/web/assets/claude-extensions-pane-B5alX6NW.js.gz +0 -0
  84. package/dist/web/assets/{claude-settings-panel-CZTefufO.js → claude-settings-panel-clCfG3vv.js} +1 -1
  85. package/dist/web/assets/claude-settings-panel-clCfG3vv.js.br +0 -0
  86. package/dist/web/assets/claude-settings-panel-clCfG3vv.js.gz +0 -0
  87. package/dist/web/assets/clipboard-rFJYhGgH.js +1 -0
  88. package/dist/web/assets/clipboard-rFJYhGgH.js.br +0 -0
  89. package/dist/web/assets/clipboard-rFJYhGgH.js.gz +0 -0
  90. package/dist/web/assets/code-highlighter-BSgLVO-5.js +3 -0
  91. package/dist/web/assets/code-highlighter-BSgLVO-5.js.br +0 -0
  92. package/dist/web/assets/code-highlighter-BSgLVO-5.js.gz +0 -0
  93. package/dist/web/assets/codex-resources-pane-17q6mdBu.js +1 -0
  94. package/dist/web/assets/codex-resources-pane-17q6mdBu.js.br +0 -0
  95. package/dist/web/assets/codex-resources-pane-17q6mdBu.js.gz +0 -0
  96. package/dist/web/assets/{commit-settings-panel-_6tz55NU.js → commit-settings-panel-BaCNJ-kP.js} +1 -1
  97. package/dist/web/assets/commit-settings-panel-BaCNJ-kP.js.br +0 -0
  98. package/dist/web/assets/commit-settings-panel-BaCNJ-kP.js.gz +0 -0
  99. package/dist/web/assets/composer-git-menu-DpQl41Lv.js +1 -0
  100. package/dist/web/assets/composer-git-menu-DpQl41Lv.js.br +0 -0
  101. package/dist/web/assets/composer-git-menu-DpQl41Lv.js.gz +0 -0
  102. package/dist/web/assets/{cynefinDiagram-MW4NZA55-BgrsE095.js → cynefinDiagram-MW4NZA55-BRur_bqy.js} +1 -1
  103. package/dist/web/assets/cynefinDiagram-MW4NZA55-BRur_bqy.js.br +0 -0
  104. package/dist/web/assets/cynefinDiagram-MW4NZA55-BRur_bqy.js.gz +0 -0
  105. package/dist/web/assets/{diagram-7IWD3JNH-d6DRTRQU.js → diagram-7IWD3JNH-Dm9goIk0.js} +1 -1
  106. package/dist/web/assets/diagram-7IWD3JNH-Dm9goIk0.js.br +0 -0
  107. package/dist/web/assets/diagram-7IWD3JNH-Dm9goIk0.js.gz +0 -0
  108. package/dist/web/assets/{diagram-LBJQPF4R-BTsB33l7.js → diagram-LBJQPF4R-D5MqQQlL.js} +1 -1
  109. package/dist/web/assets/diagram-LBJQPF4R-D5MqQQlL.js.br +0 -0
  110. package/dist/web/assets/diagram-LBJQPF4R-D5MqQQlL.js.gz +0 -0
  111. package/dist/web/assets/{diagram-Q27KOJAE-BR31NpE4.js → diagram-Q27KOJAE-CT9-om9c.js} +1 -1
  112. package/dist/web/assets/diagram-Q27KOJAE-CT9-om9c.js.br +0 -0
  113. package/dist/web/assets/diagram-Q27KOJAE-CT9-om9c.js.gz +0 -0
  114. package/dist/web/assets/{diagram-UB23O5K3-Giiek6vS.js → diagram-UB23O5K3-BNxdNO9N.js} +1 -1
  115. package/dist/web/assets/diagram-UB23O5K3-BNxdNO9N.js.br +0 -0
  116. package/dist/web/assets/diagram-UB23O5K3-BNxdNO9N.js.gz +0 -0
  117. package/dist/web/assets/{dist-DKGpvUu3.js → dist-AuPj8SgL.js} +3 -3
  118. package/dist/web/assets/dist-AuPj8SgL.js.br +0 -0
  119. package/dist/web/assets/dist-AuPj8SgL.js.gz +0 -0
  120. package/dist/web/assets/{dist-dQCgoXMl.js → dist-B5sI2dlF.js} +1 -1
  121. package/dist/web/assets/dist-B5sI2dlF.js.br +0 -0
  122. package/dist/web/assets/dist-B5sI2dlF.js.gz +0 -0
  123. package/dist/web/assets/{dist-CYMTYgBk.js → dist-BsL649bQ.js} +1 -1
  124. package/dist/web/assets/dist-BsL649bQ.js.br +0 -0
  125. package/dist/web/assets/dist-BsL649bQ.js.gz +0 -0
  126. package/dist/web/assets/{dist-C9Xo-R3R.js → dist-CAE1iZ8f.js} +1 -1
  127. package/dist/web/assets/dist-CAE1iZ8f.js.br +0 -0
  128. package/dist/web/assets/dist-CAE1iZ8f.js.gz +0 -0
  129. package/dist/web/assets/{dist-DQyQRzkb.js → dist-CXzWYcrE.js} +1 -1
  130. package/dist/web/assets/dist-CXzWYcrE.js.br +0 -0
  131. package/dist/web/assets/dist-CXzWYcrE.js.gz +0 -0
  132. package/dist/web/assets/{dist-Cdr0TsB-.js → dist-Ceirvrnz.js} +1 -1
  133. package/dist/web/assets/dist-Ceirvrnz.js.br +0 -0
  134. package/dist/web/assets/dist-Ceirvrnz.js.gz +0 -0
  135. package/dist/web/assets/{dist-BRQ8hrs7.js → dist-CuEOCH4w.js} +1 -1
  136. package/dist/web/assets/dist-CuEOCH4w.js.br +0 -0
  137. package/dist/web/assets/dist-CuEOCH4w.js.gz +0 -0
  138. package/dist/web/assets/{dist-D5aBWTdK.js → dist-DGIEKeyr.js} +1 -1
  139. package/dist/web/assets/dist-DGIEKeyr.js.br +0 -0
  140. package/dist/web/assets/dist-DGIEKeyr.js.gz +0 -0
  141. package/dist/web/assets/{dist-BS9Es7bq.js → dist-DTkOac6l.js} +1 -1
  142. package/dist/web/assets/dist-DTkOac6l.js.br +0 -0
  143. package/dist/web/assets/dist-DTkOac6l.js.gz +0 -0
  144. package/dist/web/assets/{dist-CZxkC4sf.js → dist-D_Wo-IHz.js} +1 -1
  145. package/dist/web/assets/dist-D_Wo-IHz.js.br +0 -0
  146. package/dist/web/assets/dist-D_Wo-IHz.js.gz +0 -0
  147. package/dist/web/assets/{dist-Dda7I8j1.js → dist-Dj9a4Mmk.js} +1 -1
  148. package/dist/web/assets/dist-Dj9a4Mmk.js.br +0 -0
  149. package/dist/web/assets/dist-Dj9a4Mmk.js.gz +0 -0
  150. package/dist/web/assets/{dist-BsHoamEK.js → dist-sWM-W4IA.js} +1 -1
  151. package/dist/web/assets/dist-sWM-W4IA.js.br +0 -0
  152. package/dist/web/assets/dist-sWM-W4IA.js.gz +0 -0
  153. package/dist/web/assets/{dist-ZywOhMVT.js → dist-taplUnD4.js} +1 -1
  154. package/dist/web/assets/dist-taplUnD4.js.br +0 -0
  155. package/dist/web/assets/dist-taplUnD4.js.gz +0 -0
  156. package/dist/web/assets/document-navigation-Da1q1H1O.js +3 -0
  157. package/dist/web/assets/document-navigation-Da1q1H1O.js.br +0 -0
  158. package/dist/web/assets/document-navigation-Da1q1H1O.js.gz +0 -0
  159. package/dist/web/assets/download-Be9bQeP_.js +1 -0
  160. package/dist/web/assets/download-Be9bQeP_.js.br +0 -0
  161. package/dist/web/assets/download-Be9bQeP_.js.gz +0 -0
  162. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-D1qXqma3.js → ebnfDiagram-BXEA7PRR-dyKzv1-Q.js} +1 -1
  163. package/dist/web/assets/ebnfDiagram-BXEA7PRR-dyKzv1-Q.js.br +0 -0
  164. package/dist/web/assets/ebnfDiagram-BXEA7PRR-dyKzv1-Q.js.gz +0 -0
  165. package/dist/web/assets/engine-setup-gate-CsMQae5w.js +1 -0
  166. package/dist/web/assets/engine-setup-gate-CsMQae5w.js.br +0 -0
  167. package/dist/web/assets/engine-setup-gate-CsMQae5w.js.gz +0 -0
  168. package/dist/web/assets/{erDiagram-JOGREHBK-C3UtJXJx.js → erDiagram-JOGREHBK-BmTsV3SL.js} +1 -1
  169. package/dist/web/assets/erDiagram-JOGREHBK-BmTsV3SL.js.br +0 -0
  170. package/dist/web/assets/erDiagram-JOGREHBK-BmTsV3SL.js.gz +0 -0
  171. package/dist/web/assets/extension-list-snCKzRql.js +1 -0
  172. package/dist/web/assets/extension-list-snCKzRql.js.br +0 -0
  173. package/dist/web/assets/extension-list-snCKzRql.js.gz +0 -0
  174. package/dist/web/assets/extension-operation-DyO98T-k.js +1 -0
  175. package/dist/web/assets/extension-operation-DyO98T-k.js.br +0 -0
  176. package/dist/web/assets/extension-operation-DyO98T-k.js.gz +0 -0
  177. package/dist/web/assets/external-link-EUD14c1S.js +1 -0
  178. package/dist/web/assets/external-link-EUD14c1S.js.br +0 -0
  179. package/dist/web/assets/external-link-EUD14c1S.js.gz +0 -0
  180. package/dist/web/assets/file-navigation-view-preference-DZIGllo5.js +1 -0
  181. package/dist/web/assets/file-navigation-view-preference-DZIGllo5.js.br +0 -0
  182. package/dist/web/assets/file-navigation-view-preference-DZIGllo5.js.gz +0 -0
  183. package/dist/web/assets/file-review-dialog-DvvuhUCl.js +2 -0
  184. package/dist/web/assets/file-review-dialog-DvvuhUCl.js.br +0 -0
  185. package/dist/web/assets/file-review-dialog-DvvuhUCl.js.gz +0 -0
  186. package/dist/web/assets/{flowDiagram-UKHOOZJN-CkmFxY4S.js → flowDiagram-UKHOOZJN-BGsVtiSj.js} +1 -1
  187. package/dist/web/assets/flowDiagram-UKHOOZJN-BGsVtiSj.js.br +2 -0
  188. package/dist/web/assets/flowDiagram-UKHOOZJN-BGsVtiSj.js.gz +0 -0
  189. package/dist/web/assets/git-commit-review-DrGBeiJa.js +2 -0
  190. package/dist/web/assets/git-commit-review-DrGBeiJa.js.br +0 -0
  191. package/dist/web/assets/git-commit-review-DrGBeiJa.js.gz +0 -0
  192. package/dist/web/assets/git-history-panel-BJ4OnqMO.js +1 -0
  193. package/dist/web/assets/git-history-panel-BJ4OnqMO.js.br +0 -0
  194. package/dist/web/assets/git-history-panel-BJ4OnqMO.js.gz +0 -0
  195. package/dist/web/assets/global-search-dialog-BZOhh2as.js +2 -0
  196. package/dist/web/assets/global-search-dialog-BZOhh2as.js.br +0 -0
  197. package/dist/web/assets/global-search-dialog-BZOhh2as.js.gz +0 -0
  198. package/dist/web/assets/global-settings-about-Cl_afjE6.js +1 -0
  199. package/dist/web/assets/global-settings-about-Cl_afjE6.js.br +0 -0
  200. package/dist/web/assets/global-settings-about-Cl_afjE6.js.gz +0 -0
  201. package/dist/web/assets/global-settings-fields-Cn48Go_s.js +1 -0
  202. package/dist/web/assets/global-settings-fields-Cn48Go_s.js.br +0 -0
  203. package/dist/web/assets/global-settings-fields-Cn48Go_s.js.gz +0 -0
  204. package/dist/web/assets/global-settings-page-YoE4BNgM.js +2 -0
  205. package/dist/web/assets/global-settings-page-YoE4BNgM.js.br +0 -0
  206. package/dist/web/assets/global-settings-page-YoE4BNgM.js.gz +0 -0
  207. package/dist/web/assets/{global-settings-pets-Dgq86Iwj.js → global-settings-pets-b0XLhN7A.js} +1 -1
  208. package/dist/web/assets/global-settings-pets-b0XLhN7A.js.br +0 -0
  209. package/dist/web/assets/global-settings-pets-b0XLhN7A.js.gz +0 -0
  210. package/dist/web/assets/{highlighted-body-OFNGDK62-CCHSSZrU.js → highlighted-body-OFNGDK62-B9dwCqpt.js} +1 -1
  211. package/dist/web/assets/highlighted-body-OFNGDK62-B9dwCqpt.js.br +0 -0
  212. package/dist/web/assets/highlighted-body-OFNGDK62-B9dwCqpt.js.gz +0 -0
  213. package/dist/web/assets/history-task-timeline-PqOQPY_u.js +1 -0
  214. package/dist/web/assets/history-task-timeline-PqOQPY_u.js.br +0 -0
  215. package/dist/web/assets/history-task-timeline-PqOQPY_u.js.gz +0 -0
  216. package/dist/web/assets/{image-preview-twQXvzOe.js → image-preview-D-s7cdTe.js} +2 -2
  217. package/dist/web/assets/image-preview-D-s7cdTe.js.br +0 -0
  218. package/dist/web/assets/image-preview-D-s7cdTe.js.gz +0 -0
  219. package/dist/web/assets/image-preview-content-CdIl5BJh.js +41 -0
  220. package/dist/web/assets/image-preview-content-CdIl5BJh.js.br +0 -0
  221. package/dist/web/assets/image-preview-content-CdIl5BJh.js.gz +0 -0
  222. package/dist/web/assets/index-CE2J7Z4y.js +4 -0
  223. package/dist/web/assets/index-CE2J7Z4y.js.br +0 -0
  224. package/dist/web/assets/index-CE2J7Z4y.js.gz +0 -0
  225. package/dist/web/assets/index-DNMb0zwW.css +2 -0
  226. package/dist/web/assets/index-DNMb0zwW.css.br +0 -0
  227. package/dist/web/assets/index-DNMb0zwW.css.gz +0 -0
  228. package/dist/web/assets/{infoDiagram-6WML65LV-DuWGeyW3.js → infoDiagram-6WML65LV-BAIuLIiE.js} +1 -1
  229. package/dist/web/assets/infoDiagram-6WML65LV-BAIuLIiE.js.br +0 -0
  230. package/dist/web/assets/infoDiagram-6WML65LV-BAIuLIiE.js.gz +0 -0
  231. package/dist/web/assets/{initial-deps-DZ-sH4cr.js → initial-deps-DBOKk1z5.js} +1 -1
  232. package/dist/web/assets/{initial-deps-DZ-sH4cr.js.br → initial-deps-DBOKk1z5.js.br} +0 -0
  233. package/dist/web/assets/{initial-deps-DZ-sH4cr.js.gz → initial-deps-DBOKk1z5.js.gz} +0 -0
  234. package/dist/web/assets/initial-deps-DGiIFgQX.js +2 -0
  235. package/dist/web/assets/initial-deps-DGiIFgQX.js.br +0 -0
  236. package/dist/web/assets/initial-deps-DGiIFgQX.js.gz +0 -0
  237. package/dist/web/assets/initial-deps-DgzPJEbl.js +1 -0
  238. package/dist/web/assets/initial-deps-DgzPJEbl.js.br +0 -0
  239. package/dist/web/assets/initial-deps-DgzPJEbl.js.gz +0 -0
  240. package/dist/web/assets/{initial-deps-n_ZBS3cC.js → initial-deps-YY1DxiPl.js} +1 -1
  241. package/dist/web/assets/initial-deps-YY1DxiPl.js.br +0 -0
  242. package/dist/web/assets/initial-deps-YY1DxiPl.js.gz +0 -0
  243. package/dist/web/assets/initial-deps-ZpffyCug.js +41 -0
  244. package/dist/web/assets/initial-deps-ZpffyCug.js.br +0 -0
  245. package/dist/web/assets/initial-deps-ZpffyCug.js.gz +0 -0
  246. package/dist/web/assets/{initial-deps-BeVJyoJH.js → initial-deps-cK7Q2EcP.js} +1 -1
  247. package/dist/web/assets/initial-deps-cK7Q2EcP.js.br +0 -0
  248. package/dist/web/assets/initial-deps-cK7Q2EcP.js.gz +0 -0
  249. package/dist/web/assets/installed-skills-pane-Cyyzl-Bb.js +1 -0
  250. package/dist/web/assets/installed-skills-pane-Cyyzl-Bb.js.br +0 -0
  251. package/dist/web/assets/installed-skills-pane-Cyyzl-Bb.js.gz +0 -0
  252. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-CKSQLCKs.js → ishikawaDiagram-WSZJBQD7-BHAsHeut.js} +1 -1
  253. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BHAsHeut.js.br +0 -0
  254. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BHAsHeut.js.gz +0 -0
  255. package/dist/web/assets/{kanban-definition-27J2QSJJ-Dy_spa9A.js → kanban-definition-27J2QSJJ-DXD7XDKp.js} +1 -1
  256. package/dist/web/assets/kanban-definition-27J2QSJJ-DXD7XDKp.js.br +0 -0
  257. package/dist/web/assets/kanban-definition-27J2QSJJ-DXD7XDKp.js.gz +0 -0
  258. package/dist/web/assets/maximize-2-DsnIK2kb.js +1 -0
  259. package/dist/web/assets/maximize-2-DsnIK2kb.js.br +0 -0
  260. package/dist/web/assets/maximize-2-DsnIK2kb.js.gz +0 -0
  261. package/dist/web/assets/mcp-management-pane-C-lhQebl.js +1 -0
  262. package/dist/web/assets/mcp-management-pane-C-lhQebl.js.br +0 -0
  263. package/dist/web/assets/mcp-management-pane-C-lhQebl.js.gz +0 -0
  264. package/dist/web/assets/mermaid-GHXKKRXX-BNvY3Im7.js +1 -0
  265. package/dist/web/assets/mermaid-GHXKKRXX-BNvY3Im7.js.br +0 -0
  266. package/dist/web/assets/mermaid-GHXKKRXX-BNvY3Im7.js.gz +0 -0
  267. package/dist/web/assets/message-assistant-directive-BGmxIV_g.js +3 -0
  268. package/dist/web/assets/message-assistant-directive-BGmxIV_g.js.br +0 -0
  269. package/dist/web/assets/message-assistant-directive-BGmxIV_g.js.gz +0 -0
  270. package/dist/web/assets/message-response-DHapkIAN.js +151 -0
  271. package/dist/web/assets/message-response-DHapkIAN.js.br +0 -0
  272. package/dist/web/assets/message-response-DHapkIAN.js.gz +0 -0
  273. package/dist/web/assets/{mindmap-definition-FAOFIHXS-BT3bfYzH.js → mindmap-definition-FAOFIHXS-CLTyPTLI.js} +1 -1
  274. package/dist/web/assets/mindmap-definition-FAOFIHXS-CLTyPTLI.js.br +0 -0
  275. package/dist/web/assets/mindmap-definition-FAOFIHXS-CLTyPTLI.js.gz +0 -0
  276. package/dist/web/assets/{model-context-window-input-Blo_ohMF.js → model-context-window-input-dM1RHCkE.js} +1 -1
  277. package/dist/web/assets/model-context-window-input-dM1RHCkE.js.br +0 -0
  278. package/dist/web/assets/model-context-window-input-dM1RHCkE.js.gz +0 -0
  279. package/dist/web/assets/official-plugin-sheet-hYSHhxo1.js +1 -0
  280. package/dist/web/assets/official-plugin-sheet-hYSHhxo1.js.br +0 -0
  281. package/dist/web/assets/official-plugin-sheet-hYSHhxo1.js.gz +0 -0
  282. package/dist/web/assets/official-plugins-pane-C3iFHqyq.js +2 -0
  283. package/dist/web/assets/official-plugins-pane-C3iFHqyq.js.br +0 -0
  284. package/dist/web/assets/official-plugins-pane-C3iFHqyq.js.gz +0 -0
  285. package/dist/web/assets/official-plugins-pane-DcZytL9D.css +1 -0
  286. package/dist/web/assets/official-plugins-pane-DcZytL9D.css.br +0 -0
  287. package/dist/web/assets/official-plugins-pane-DcZytL9D.css.gz +0 -0
  288. package/dist/web/assets/open-project-path-C3E-UncW.js +1 -0
  289. package/dist/web/assets/open-project-path-C3E-UncW.js.br +0 -0
  290. package/dist/web/assets/open-project-path-C3E-UncW.js.gz +0 -0
  291. package/dist/web/assets/{patch-diff-viewer-D4NrazF3.js → patch-diff-viewer-CAlOstmF.js} +24 -24
  292. package/dist/web/assets/patch-diff-viewer-CAlOstmF.js.br +0 -0
  293. package/dist/web/assets/patch-diff-viewer-CAlOstmF.js.gz +0 -0
  294. package/dist/web/assets/{pegDiagram-VL7TDLO6-BDpdrr1s.js → pegDiagram-VL7TDLO6-CEMTFena.js} +1 -1
  295. package/dist/web/assets/pegDiagram-VL7TDLO6-CEMTFena.js.br +0 -0
  296. package/dist/web/assets/pegDiagram-VL7TDLO6-CEMTFena.js.gz +0 -0
  297. package/dist/web/assets/personalization-settings-panel-CjR0RSn0.js +1 -0
  298. package/dist/web/assets/personalization-settings-panel-CjR0RSn0.js.br +0 -0
  299. package/dist/web/assets/personalization-settings-panel-CjR0RSn0.js.gz +0 -0
  300. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-DCypkhSo.js → pieDiagram-7S7Q4E2Y-CTU8oZML.js} +1 -1
  301. package/dist/web/assets/pieDiagram-7S7Q4E2Y-CTU8oZML.js.br +0 -0
  302. package/dist/web/assets/pieDiagram-7S7Q4E2Y-CTU8oZML.js.gz +0 -0
  303. package/dist/web/assets/{project-file-popup-page-DZ4w18TV.js → project-file-popup-page-c0wqWaPR.js} +1 -1
  304. package/dist/web/assets/project-file-popup-page-c0wqWaPR.js.br +0 -0
  305. package/dist/web/assets/project-file-popup-page-c0wqWaPR.js.gz +0 -0
  306. package/dist/web/assets/project-sidebar-timeline-B9S9jfdA.js +1 -0
  307. package/dist/web/assets/project-sidebar-timeline-B9S9jfdA.js.br +0 -0
  308. package/dist/web/assets/project-sidebar-timeline-B9S9jfdA.js.gz +0 -0
  309. package/dist/web/assets/project-source-panel-CDbtcBsp.js +2 -0
  310. package/dist/web/assets/project-source-panel-CDbtcBsp.js.br +0 -0
  311. package/dist/web/assets/project-source-panel-CDbtcBsp.js.gz +0 -0
  312. package/dist/web/assets/prompt-input-Qv__0ZYp.js +1 -0
  313. package/dist/web/assets/prompt-input-Qv__0ZYp.js.br +0 -0
  314. package/dist/web/assets/prompt-input-Qv__0ZYp.js.gz +0 -0
  315. package/dist/web/assets/provider-connection-panel-CFOjjrpy.js +1 -0
  316. package/dist/web/assets/provider-connection-panel-CFOjjrpy.js.br +0 -0
  317. package/dist/web/assets/provider-connection-panel-CFOjjrpy.js.gz +0 -0
  318. package/dist/web/assets/{provider-connection-queries-D0AjZJNn.js → provider-connection-queries-DaUJKsqr.js} +1 -1
  319. package/dist/web/assets/provider-connection-queries-DaUJKsqr.js.br +0 -0
  320. package/dist/web/assets/provider-connection-queries-DaUJKsqr.js.gz +0 -0
  321. package/dist/web/assets/{railroadDiagram-AXF67PYL-d16J9qzD.js → railroadDiagram-AXF67PYL-BOpAz8Rl.js} +1 -1
  322. package/dist/web/assets/railroadDiagram-AXF67PYL-BOpAz8Rl.js.br +0 -0
  323. package/dist/web/assets/railroadDiagram-AXF67PYL-BOpAz8Rl.js.gz +0 -0
  324. package/dist/web/assets/{requirementDiagram-LRYGKXZP-C9hUbT7e.js → requirementDiagram-LRYGKXZP-BOIE6jyw.js} +1 -1
  325. package/dist/web/assets/requirementDiagram-LRYGKXZP-BOIE6jyw.js.br +0 -0
  326. package/dist/web/assets/requirementDiagram-LRYGKXZP-BOIE6jyw.js.gz +0 -0
  327. package/dist/web/assets/resources-en-CNabznak.js +1 -0
  328. package/dist/web/assets/resources-en-CNabznak.js.br +0 -0
  329. package/dist/web/assets/resources-en-CNabznak.js.gz +0 -0
  330. package/dist/web/assets/saved-prompts-settings-BIWAIIuI.js +1 -0
  331. package/dist/web/assets/saved-prompts-settings-BIWAIIuI.js.br +0 -0
  332. package/dist/web/assets/saved-prompts-settings-BIWAIIuI.js.gz +0 -0
  333. package/dist/web/assets/scan-C6v7t2yH.js +1 -0
  334. package/dist/web/assets/scan-C6v7t2yH.js.br +1 -0
  335. package/dist/web/assets/scan-C6v7t2yH.js.gz +0 -0
  336. package/dist/web/assets/scheduled-task-date-time-picker-fytjNu3G.js +1 -0
  337. package/dist/web/assets/scheduled-task-date-time-picker-fytjNu3G.js.br +0 -0
  338. package/dist/web/assets/scheduled-task-date-time-picker-fytjNu3G.js.gz +0 -0
  339. package/dist/web/assets/{scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js → scheduled-task-floating-ui~scheduled-task-date-time-picker-CS9ppkbD.js} +1 -1
  340. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-CS9ppkbD.js.br +0 -0
  341. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-CS9ppkbD.js.gz +0 -0
  342. package/dist/web/assets/scheduled-tasks-container-CcEgcbyX.js +2 -0
  343. package/dist/web/assets/scheduled-tasks-container-CcEgcbyX.js.br +0 -0
  344. package/dist/web/assets/scheduled-tasks-container-CcEgcbyX.js.gz +0 -0
  345. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-CGA84wrP.js → sequenceDiagram-SI44F4Z6-CK-WlrkA.js} +1 -1
  346. package/dist/web/assets/sequenceDiagram-SI44F4Z6-CK-WlrkA.js.br +0 -0
  347. package/dist/web/assets/sequenceDiagram-SI44F4Z6-CK-WlrkA.js.gz +0 -0
  348. package/dist/web/assets/server-A3E6rPSE.js +1 -0
  349. package/dist/web/assets/server-A3E6rPSE.js.br +1 -0
  350. package/dist/web/assets/server-A3E6rPSE.js.gz +0 -0
  351. package/dist/web/assets/{settings-mutation-status-BCHdtmzH.js → settings-mutation-status-C_W3Brzy.js} +1 -1
  352. package/dist/web/assets/settings-mutation-status-C_W3Brzy.js.br +0 -0
  353. package/dist/web/assets/settings-mutation-status-C_W3Brzy.js.gz +0 -0
  354. package/dist/web/assets/settings-save-status-LZlDl2hi.js +1 -0
  355. package/dist/web/assets/settings-save-status-LZlDl2hi.js.br +0 -0
  356. package/dist/web/assets/settings-save-status-LZlDl2hi.js.gz +0 -0
  357. package/dist/web/assets/{shiki-bundle-DTJ4LKMP.js → shiki-bundle-BuVlco8m.js} +1 -1
  358. package/dist/web/assets/shiki-bundle-BuVlco8m.js.br +1 -0
  359. package/dist/web/assets/shiki-bundle-BuVlco8m.js.gz +0 -0
  360. package/dist/web/assets/skills-market-container-3F4yAU_u.js +2 -0
  361. package/dist/web/assets/skills-market-container-3F4yAU_u.js.br +0 -0
  362. package/dist/web/assets/skills-market-container-3F4yAU_u.js.gz +0 -0
  363. package/dist/web/assets/skills-market-container-BoEyKoRt.css +1 -0
  364. package/dist/web/assets/skills-market-container-BoEyKoRt.css.br +0 -0
  365. package/dist/web/assets/skills-market-container-BoEyKoRt.css.gz +0 -0
  366. package/dist/web/assets/split-workspace-menu-content-B-194fx-.js +1 -0
  367. package/dist/web/assets/split-workspace-menu-content-B-194fx-.js.br +2 -0
  368. package/dist/web/assets/split-workspace-menu-content-B-194fx-.js.gz +0 -0
  369. package/dist/web/assets/{stateDiagram-OKZ733FA-D0MVn7g1.js → stateDiagram-OKZ733FA-hLYv6w14.js} +1 -1
  370. package/dist/web/assets/stateDiagram-OKZ733FA-hLYv6w14.js.br +0 -0
  371. package/dist/web/assets/stateDiagram-OKZ733FA-hLYv6w14.js.gz +0 -0
  372. package/dist/web/assets/{stateDiagram-v2-UEYNNEHI-TUsb_3yM.js → stateDiagram-v2-UEYNNEHI-DGFWGBEN.js} +1 -1
  373. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DGFWGBEN.js.br +0 -0
  374. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DGFWGBEN.js.gz +0 -0
  375. package/dist/web/assets/{swimlanesDiagram-ULZ7WXOC-8Qb6Pp_Z.js → swimlanesDiagram-ULZ7WXOC-BDqOoYXX.js} +1 -1
  376. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BDqOoYXX.js.br +0 -0
  377. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BDqOoYXX.js.gz +0 -0
  378. package/dist/web/assets/{task-timeline-process-history-DQh6F650.js → task-timeline-process-history-FA7FqX65.js} +1 -1
  379. package/dist/web/assets/task-timeline-process-history-FA7FqX65.js.br +0 -0
  380. package/dist/web/assets/task-timeline-process-history-FA7FqX65.js.gz +0 -0
  381. package/dist/web/assets/text-file-editor-Dt1ptrwk.js +14 -0
  382. package/dist/web/assets/text-file-editor-Dt1ptrwk.js.br +0 -0
  383. package/dist/web/assets/text-file-editor-Dt1ptrwk.js.gz +0 -0
  384. package/dist/web/assets/{timeline-definition-Z64GVDOM-DRC7HLeH.js → timeline-definition-Z64GVDOM-C0ggW9ke.js} +1 -1
  385. package/dist/web/assets/timeline-definition-Z64GVDOM-C0ggW9ke.js.br +0 -0
  386. package/dist/web/assets/timeline-definition-Z64GVDOM-C0ggW9ke.js.gz +0 -0
  387. package/dist/web/assets/token-usage-response-oKnLCVhj.js +1 -0
  388. package/dist/web/assets/token-usage-response-oKnLCVhj.js.br +0 -0
  389. package/dist/web/assets/token-usage-response-oKnLCVhj.js.gz +0 -0
  390. package/dist/web/assets/upload-Dc5LJ6y_.js +1 -0
  391. package/dist/web/assets/upload-Dc5LJ6y_.js.br +0 -0
  392. package/dist/web/assets/upload-Dc5LJ6y_.js.gz +0 -0
  393. package/dist/web/assets/usage-statistics-C7zED1sM.css +1 -0
  394. package/dist/web/assets/usage-statistics-C7zED1sM.css.br +0 -0
  395. package/dist/web/assets/usage-statistics-C7zED1sM.css.gz +0 -0
  396. package/dist/web/assets/usage-statistics-CkWR_l2r.js +1 -0
  397. package/dist/web/assets/usage-statistics-CkWR_l2r.js.br +0 -0
  398. package/dist/web/assets/usage-statistics-CkWR_l2r.js.gz +0 -0
  399. package/dist/web/assets/useMutationState-DZj3iudU.js +1 -0
  400. package/dist/web/assets/useMutationState-DZj3iudU.js.br +0 -0
  401. package/dist/web/assets/useMutationState-DZj3iudU.js.gz +0 -0
  402. package/dist/web/assets/utils-O47BBoIx.js +1 -0
  403. package/dist/web/assets/utils-O47BBoIx.js.br +0 -0
  404. package/dist/web/assets/utils-O47BBoIx.js.gz +0 -0
  405. package/dist/web/assets/{vennDiagram-T6HMQDX7-B5BRVmyv.js → vennDiagram-T6HMQDX7-SCXL8ux1.js} +1 -1
  406. package/dist/web/assets/vennDiagram-T6HMQDX7-SCXL8ux1.js.br +0 -0
  407. package/dist/web/assets/vennDiagram-T6HMQDX7-SCXL8ux1.js.gz +0 -0
  408. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-BVuPKOmW.js → wardleyDiagram-T6FBY63Y-Cqe5SiO4.js} +1 -1
  409. package/dist/web/assets/wardleyDiagram-T6FBY63Y-Cqe5SiO4.js.br +0 -0
  410. package/dist/web/assets/wardleyDiagram-T6FBY63Y-Cqe5SiO4.js.gz +0 -0
  411. package/dist/web/assets/workbench-inspector-changes-ZSA-8aVd.js +1 -0
  412. package/dist/web/assets/workbench-inspector-changes-ZSA-8aVd.js.br +0 -0
  413. package/dist/web/assets/workbench-inspector-changes-ZSA-8aVd.js.gz +0 -0
  414. package/dist/web/assets/{workbench-pet-canvas-D7FEem4_.js → workbench-pet-canvas-CHABL440.js} +1 -1
  415. package/dist/web/assets/workbench-pet-canvas-CHABL440.js.br +0 -0
  416. package/dist/web/assets/workbench-pet-canvas-CHABL440.js.gz +0 -0
  417. package/dist/web/assets/workbench-shell-CR4teS_d.js +17 -0
  418. package/dist/web/assets/workbench-shell-CR4teS_d.js.br +0 -0
  419. package/dist/web/assets/workbench-shell-CR4teS_d.js.gz +0 -0
  420. package/dist/web/assets/{xychartDiagram-ELKLHX3M-Cyq1aXDR.js → xychartDiagram-ELKLHX3M-CWXlmFCE.js} +1 -1
  421. package/dist/web/assets/xychartDiagram-ELKLHX3M-CWXlmFCE.js.br +0 -0
  422. package/dist/web/assets/xychartDiagram-ELKLHX3M-CWXlmFCE.js.gz +0 -0
  423. package/dist/web/index.html +9 -9
  424. package/dist/web/index.html.br +0 -0
  425. package/dist/web/index.html.gz +0 -0
  426. package/docs/README.md +51 -0
  427. package/docs/agent-engines.md +20 -2
  428. package/docs/conversation-performance.md +37 -0
  429. package/docs/document-workspace.md +49 -0
  430. package/docs/faq.md +63 -0
  431. package/docs/getting-started.en.md +54 -0
  432. package/docs/getting-started.md +54 -0
  433. package/docs/global-search.md +49 -0
  434. package/docs/images/codexly-preview.png +0 -0
  435. package/docs/local-catalog.md +32 -1
  436. package/docs/model-context-window.md +10 -4
  437. package/docs/model-discovery.md +19 -5
  438. package/docs/scheduled-task-idempotency.md +28 -0
  439. package/docs/text-file-editing.md +97 -0
  440. package/docs/usage-statistics.md +51 -0
  441. package/docs/usage.en.md +77 -0
  442. package/docs/usage.md +79 -0
  443. package/docs/web-autostart.md +6 -2
  444. package/docs/web-autostart.zh-CN.md +6 -2
  445. package/docs/web.en.md +123 -0
  446. package/docs/web.md +123 -0
  447. package/package.json +23 -4
  448. package/dist/chunk-CUMMPRJN.js +0 -1066
  449. package/dist/chunk-LZ36FOFS.js +0 -37
  450. package/dist/chunk-USKJGAQY.js +0 -26
  451. package/dist/chunk-ZYNXEYSW.js +0 -3
  452. package/dist/command-FXYNYD4O.js +0 -84
  453. package/dist/web/assets/abnfDiagram-N423BO3Z-CEEQQmQS.js.br +0 -0
  454. package/dist/web/assets/abnfDiagram-N423BO3Z-CEEQQmQS.js.gz +0 -0
  455. package/dist/web/assets/agent-settings-panel-GcyPfLfD.js +0 -1
  456. package/dist/web/assets/agent-settings-panel-GcyPfLfD.js.br +0 -0
  457. package/dist/web/assets/agent-settings-panel-GcyPfLfD.js.gz +0 -0
  458. package/dist/web/assets/api-connection-fields-rwNEEzre.js.br +0 -0
  459. package/dist/web/assets/api-connection-fields-rwNEEzre.js.gz +0 -0
  460. package/dist/web/assets/app-update-dialog-DdlLCV_z.js +0 -1
  461. package/dist/web/assets/app-update-dialog-DdlLCV_z.js.br +0 -0
  462. package/dist/web/assets/app-update-dialog-DdlLCV_z.js.gz +0 -0
  463. package/dist/web/assets/architectureDiagram-T3A2C74G-CF2Ovr5z.js.br +0 -0
  464. package/dist/web/assets/architectureDiagram-T3A2C74G-CF2Ovr5z.js.gz +0 -0
  465. package/dist/web/assets/arrow-down-BiCRjuX3.js +0 -1
  466. package/dist/web/assets/arrow-down-BiCRjuX3.js.br +0 -0
  467. package/dist/web/assets/arrow-down-BiCRjuX3.js.gz +0 -0
  468. package/dist/web/assets/background-image-picker-Dt25pttj.js.br +0 -0
  469. package/dist/web/assets/background-image-picker-Dt25pttj.js.gz +0 -0
  470. package/dist/web/assets/chunk-5RXB4S5H-Bu1iYp4t.js.br +0 -0
  471. package/dist/web/assets/chunk-6Q2QTUOP-8pETCK89.js.br +0 -0
  472. package/dist/web/assets/chunk-6Q2QTUOP-8pETCK89.js.gz +0 -0
  473. package/dist/web/assets/chunk-GF5L2VYU-Clmi3b75.js.br +0 -0
  474. package/dist/web/assets/chunk-JQJVKLGR-TByUBa_A.js.br +0 -0
  475. package/dist/web/assets/classDiagram-JCYQIIEL-CxEYeVQh.js.br +0 -0
  476. package/dist/web/assets/classDiagram-JCYQIIEL-CxEYeVQh.js.gz +0 -0
  477. package/dist/web/assets/classDiagram-v2-OCEON4UE-CxEYeVQh.js.br +0 -0
  478. package/dist/web/assets/classDiagram-v2-OCEON4UE-CxEYeVQh.js.gz +0 -0
  479. package/dist/web/assets/claude-settings-panel-CZTefufO.js.br +0 -0
  480. package/dist/web/assets/claude-settings-panel-CZTefufO.js.gz +0 -0
  481. package/dist/web/assets/clipboard-C55zlT9y.js +0 -1
  482. package/dist/web/assets/clipboard-C55zlT9y.js.br +0 -0
  483. package/dist/web/assets/clipboard-C55zlT9y.js.gz +0 -0
  484. package/dist/web/assets/code-highlighter-0Z3RdljI.js +0 -3
  485. package/dist/web/assets/code-highlighter-0Z3RdljI.js.br +0 -0
  486. package/dist/web/assets/code-highlighter-0Z3RdljI.js.gz +0 -0
  487. package/dist/web/assets/commit-settings-panel-_6tz55NU.js.br +0 -0
  488. package/dist/web/assets/commit-settings-panel-_6tz55NU.js.gz +0 -0
  489. package/dist/web/assets/composer-git-menu-DpKwGaj6.js +0 -1
  490. package/dist/web/assets/composer-git-menu-DpKwGaj6.js.br +0 -0
  491. package/dist/web/assets/composer-git-menu-DpKwGaj6.js.gz +0 -0
  492. package/dist/web/assets/cynefinDiagram-MW4NZA55-BgrsE095.js.br +0 -0
  493. package/dist/web/assets/cynefinDiagram-MW4NZA55-BgrsE095.js.gz +0 -0
  494. package/dist/web/assets/diagram-7IWD3JNH-d6DRTRQU.js.br +0 -0
  495. package/dist/web/assets/diagram-7IWD3JNH-d6DRTRQU.js.gz +0 -0
  496. package/dist/web/assets/diagram-LBJQPF4R-BTsB33l7.js.br +0 -0
  497. package/dist/web/assets/diagram-LBJQPF4R-BTsB33l7.js.gz +0 -0
  498. package/dist/web/assets/diagram-Q27KOJAE-BR31NpE4.js.br +0 -0
  499. package/dist/web/assets/diagram-Q27KOJAE-BR31NpE4.js.gz +0 -0
  500. package/dist/web/assets/diagram-UB23O5K3-Giiek6vS.js.br +0 -0
  501. package/dist/web/assets/diagram-UB23O5K3-Giiek6vS.js.gz +0 -0
  502. package/dist/web/assets/dist-BRQ8hrs7.js.br +0 -0
  503. package/dist/web/assets/dist-BRQ8hrs7.js.gz +0 -0
  504. package/dist/web/assets/dist-BS9Es7bq.js.br +0 -0
  505. package/dist/web/assets/dist-BS9Es7bq.js.gz +0 -0
  506. package/dist/web/assets/dist-BsHoamEK.js.br +0 -0
  507. package/dist/web/assets/dist-BsHoamEK.js.gz +0 -0
  508. package/dist/web/assets/dist-C5hT0FeX.js +0 -1
  509. package/dist/web/assets/dist-C5hT0FeX.js.br +0 -0
  510. package/dist/web/assets/dist-C5hT0FeX.js.gz +0 -0
  511. package/dist/web/assets/dist-C9Xo-R3R.js.br +0 -0
  512. package/dist/web/assets/dist-C9Xo-R3R.js.gz +0 -0
  513. package/dist/web/assets/dist-CYMTYgBk.js.br +0 -0
  514. package/dist/web/assets/dist-CYMTYgBk.js.gz +0 -0
  515. package/dist/web/assets/dist-CZxkC4sf.js.br +0 -0
  516. package/dist/web/assets/dist-CZxkC4sf.js.gz +0 -0
  517. package/dist/web/assets/dist-Cdr0TsB-.js.br +0 -0
  518. package/dist/web/assets/dist-Cdr0TsB-.js.gz +0 -0
  519. package/dist/web/assets/dist-D5aBWTdK.js.br +0 -0
  520. package/dist/web/assets/dist-D5aBWTdK.js.gz +0 -0
  521. package/dist/web/assets/dist-DKGpvUu3.js.br +0 -0
  522. package/dist/web/assets/dist-DKGpvUu3.js.gz +0 -0
  523. package/dist/web/assets/dist-DQyQRzkb.js.br +0 -0
  524. package/dist/web/assets/dist-DQyQRzkb.js.gz +0 -0
  525. package/dist/web/assets/dist-Dda7I8j1.js.br +0 -0
  526. package/dist/web/assets/dist-Dda7I8j1.js.gz +0 -0
  527. package/dist/web/assets/dist-ZywOhMVT.js.br +0 -0
  528. package/dist/web/assets/dist-ZywOhMVT.js.gz +0 -0
  529. package/dist/web/assets/dist-dQCgoXMl.js.br +0 -0
  530. package/dist/web/assets/dist-dQCgoXMl.js.gz +0 -0
  531. package/dist/web/assets/download-DSulXOCZ.js +0 -1
  532. package/dist/web/assets/download-DSulXOCZ.js.br +0 -0
  533. package/dist/web/assets/download-DSulXOCZ.js.gz +0 -0
  534. package/dist/web/assets/ebnfDiagram-BXEA7PRR-D1qXqma3.js.br +0 -0
  535. package/dist/web/assets/ebnfDiagram-BXEA7PRR-D1qXqma3.js.gz +0 -0
  536. package/dist/web/assets/engine-setup-gate-CLwMC0cZ.js +0 -1
  537. package/dist/web/assets/engine-setup-gate-CLwMC0cZ.js.br +0 -0
  538. package/dist/web/assets/engine-setup-gate-CLwMC0cZ.js.gz +0 -0
  539. package/dist/web/assets/erDiagram-JOGREHBK-C3UtJXJx.js.br +0 -0
  540. package/dist/web/assets/erDiagram-JOGREHBK-C3UtJXJx.js.gz +0 -0
  541. package/dist/web/assets/external-link-DTvUbh5p.js +0 -1
  542. package/dist/web/assets/external-link-DTvUbh5p.js.br +0 -0
  543. package/dist/web/assets/external-link-DTvUbh5p.js.gz +0 -0
  544. package/dist/web/assets/file-navigation-view-preference-D5PlYpLl.js +0 -1
  545. package/dist/web/assets/file-navigation-view-preference-D5PlYpLl.js.br +0 -0
  546. package/dist/web/assets/file-navigation-view-preference-D5PlYpLl.js.gz +0 -0
  547. package/dist/web/assets/file-review-dialog-BXpGVDGs.js +0 -2
  548. package/dist/web/assets/file-review-dialog-BXpGVDGs.js.br +0 -0
  549. package/dist/web/assets/file-review-dialog-BXpGVDGs.js.gz +0 -0
  550. package/dist/web/assets/flowDiagram-UKHOOZJN-CkmFxY4S.js.br +0 -0
  551. package/dist/web/assets/flowDiagram-UKHOOZJN-CkmFxY4S.js.gz +0 -0
  552. package/dist/web/assets/git-commit-review-B9S0XgSb.js +0 -2
  553. package/dist/web/assets/git-commit-review-B9S0XgSb.js.br +0 -0
  554. package/dist/web/assets/git-commit-review-B9S0XgSb.js.gz +0 -0
  555. package/dist/web/assets/git-history-panel-DfcnGX1A.js +0 -1
  556. package/dist/web/assets/git-history-panel-DfcnGX1A.js.br +0 -0
  557. package/dist/web/assets/git-history-panel-DfcnGX1A.js.gz +0 -0
  558. package/dist/web/assets/global-search-dialog-BKoOMCoP.js +0 -2
  559. package/dist/web/assets/global-search-dialog-BKoOMCoP.js.br +0 -0
  560. package/dist/web/assets/global-search-dialog-BKoOMCoP.js.gz +0 -0
  561. package/dist/web/assets/global-settings-about-DKRCMAdV.js +0 -1
  562. package/dist/web/assets/global-settings-about-DKRCMAdV.js.br +0 -0
  563. package/dist/web/assets/global-settings-about-DKRCMAdV.js.gz +0 -0
  564. package/dist/web/assets/global-settings-fields-CZQRvk7T.js +0 -1
  565. package/dist/web/assets/global-settings-fields-CZQRvk7T.js.br +0 -0
  566. package/dist/web/assets/global-settings-fields-CZQRvk7T.js.gz +0 -0
  567. package/dist/web/assets/global-settings-page-CjcdnklO.js +0 -2
  568. package/dist/web/assets/global-settings-page-CjcdnklO.js.br +0 -0
  569. package/dist/web/assets/global-settings-page-CjcdnklO.js.gz +0 -0
  570. package/dist/web/assets/global-settings-pets-Dgq86Iwj.js.br +0 -0
  571. package/dist/web/assets/global-settings-pets-Dgq86Iwj.js.gz +0 -0
  572. package/dist/web/assets/highlighted-body-OFNGDK62-CCHSSZrU.js.br +0 -0
  573. package/dist/web/assets/highlighted-body-OFNGDK62-CCHSSZrU.js.gz +0 -0
  574. package/dist/web/assets/history-location-C01Ls1aP.js +0 -1
  575. package/dist/web/assets/history-location-C01Ls1aP.js.br +0 -0
  576. package/dist/web/assets/history-location-C01Ls1aP.js.gz +0 -0
  577. package/dist/web/assets/history-task-timeline-BCyUvqft.js +0 -1
  578. package/dist/web/assets/history-task-timeline-BCyUvqft.js.br +0 -0
  579. package/dist/web/assets/history-task-timeline-BCyUvqft.js.gz +0 -0
  580. package/dist/web/assets/image-preview-content-D0yaZycO.js +0 -41
  581. package/dist/web/assets/image-preview-content-D0yaZycO.js.br +0 -0
  582. package/dist/web/assets/image-preview-content-D0yaZycO.js.gz +0 -0
  583. package/dist/web/assets/image-preview-twQXvzOe.js.br +0 -0
  584. package/dist/web/assets/image-preview-twQXvzOe.js.gz +0 -0
  585. package/dist/web/assets/index-BPQs_vk8.css +0 -2
  586. package/dist/web/assets/index-BPQs_vk8.css.br +0 -0
  587. package/dist/web/assets/index-BPQs_vk8.css.gz +0 -0
  588. package/dist/web/assets/index-WWY-Ngf-.js +0 -4
  589. package/dist/web/assets/index-WWY-Ngf-.js.br +0 -0
  590. package/dist/web/assets/index-WWY-Ngf-.js.gz +0 -0
  591. package/dist/web/assets/infoDiagram-6WML65LV-DuWGeyW3.js.br +0 -0
  592. package/dist/web/assets/infoDiagram-6WML65LV-DuWGeyW3.js.gz +0 -0
  593. package/dist/web/assets/initial-deps-BeVJyoJH.js.br +0 -0
  594. package/dist/web/assets/initial-deps-BeVJyoJH.js.gz +0 -0
  595. package/dist/web/assets/initial-deps-CRaxZAOH.js +0 -41
  596. package/dist/web/assets/initial-deps-CRaxZAOH.js.br +0 -0
  597. package/dist/web/assets/initial-deps-CRaxZAOH.js.gz +0 -0
  598. package/dist/web/assets/initial-deps-DG--jjIA.js +0 -2
  599. package/dist/web/assets/initial-deps-DG--jjIA.js.br +0 -0
  600. package/dist/web/assets/initial-deps-DG--jjIA.js.gz +0 -0
  601. package/dist/web/assets/initial-deps-DNAUCF1H.js +0 -1
  602. package/dist/web/assets/initial-deps-DNAUCF1H.js.br +0 -0
  603. package/dist/web/assets/initial-deps-DNAUCF1H.js.gz +0 -0
  604. package/dist/web/assets/initial-deps-n_ZBS3cC.js.br +0 -0
  605. package/dist/web/assets/initial-deps-n_ZBS3cC.js.gz +0 -0
  606. package/dist/web/assets/installed-skills-pane-CqWvZCqX.js +0 -1
  607. package/dist/web/assets/installed-skills-pane-CqWvZCqX.js.br +0 -0
  608. package/dist/web/assets/installed-skills-pane-CqWvZCqX.js.gz +0 -0
  609. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-CKSQLCKs.js.br +0 -0
  610. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-CKSQLCKs.js.gz +0 -0
  611. package/dist/web/assets/kanban-definition-27J2QSJJ-Dy_spa9A.js.br +0 -0
  612. package/dist/web/assets/kanban-definition-27J2QSJJ-Dy_spa9A.js.gz +0 -0
  613. package/dist/web/assets/maximize-2-Fh0PepSo.js +0 -1
  614. package/dist/web/assets/maximize-2-Fh0PepSo.js.br +0 -0
  615. package/dist/web/assets/maximize-2-Fh0PepSo.js.gz +0 -0
  616. package/dist/web/assets/mcp-management-pane-CRnxzNPO.js +0 -1
  617. package/dist/web/assets/mcp-management-pane-CRnxzNPO.js.br +0 -0
  618. package/dist/web/assets/mcp-management-pane-CRnxzNPO.js.gz +0 -0
  619. package/dist/web/assets/mermaid-GHXKKRXX-CQ6ZLXfO.js +0 -1
  620. package/dist/web/assets/mermaid-GHXKKRXX-CQ6ZLXfO.js.br +0 -0
  621. package/dist/web/assets/mermaid-GHXKKRXX-CQ6ZLXfO.js.gz +0 -0
  622. package/dist/web/assets/message-assistant-directive-TOAo3G6q.js +0 -3
  623. package/dist/web/assets/message-assistant-directive-TOAo3G6q.js.br +0 -0
  624. package/dist/web/assets/message-assistant-directive-TOAo3G6q.js.gz +0 -0
  625. package/dist/web/assets/message-response-C1VxUFiG.js +0 -151
  626. package/dist/web/assets/message-response-C1VxUFiG.js.br +0 -0
  627. package/dist/web/assets/message-response-C1VxUFiG.js.gz +0 -0
  628. package/dist/web/assets/mindmap-definition-FAOFIHXS-BT3bfYzH.js.br +0 -0
  629. package/dist/web/assets/mindmap-definition-FAOFIHXS-BT3bfYzH.js.gz +0 -0
  630. package/dist/web/assets/model-context-window-input-Blo_ohMF.js.br +0 -0
  631. package/dist/web/assets/model-context-window-input-Blo_ohMF.js.gz +0 -0
  632. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css +0 -1
  633. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.br +0 -0
  634. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.gz +0 -0
  635. package/dist/web/assets/official-plugins-pane-CV6nzUMx.js +0 -1
  636. package/dist/web/assets/official-plugins-pane-CV6nzUMx.js.br +0 -0
  637. package/dist/web/assets/official-plugins-pane-CV6nzUMx.js.gz +0 -0
  638. package/dist/web/assets/patch-diff-viewer-D4NrazF3.js.br +0 -0
  639. package/dist/web/assets/patch-diff-viewer-D4NrazF3.js.gz +0 -0
  640. package/dist/web/assets/pdf-preview-Cl3Njv1q.js +0 -3
  641. package/dist/web/assets/pdf-preview-Cl3Njv1q.js.br +0 -0
  642. package/dist/web/assets/pdf-preview-Cl3Njv1q.js.gz +0 -0
  643. package/dist/web/assets/pegDiagram-VL7TDLO6-BDpdrr1s.js.br +0 -0
  644. package/dist/web/assets/pegDiagram-VL7TDLO6-BDpdrr1s.js.gz +0 -0
  645. package/dist/web/assets/personalization-settings-panel-DjAbwwrQ.js +0 -1
  646. package/dist/web/assets/personalization-settings-panel-DjAbwwrQ.js.br +0 -0
  647. package/dist/web/assets/personalization-settings-panel-DjAbwwrQ.js.gz +0 -0
  648. package/dist/web/assets/pieDiagram-7S7Q4E2Y-DCypkhSo.js.br +0 -0
  649. package/dist/web/assets/pieDiagram-7S7Q4E2Y-DCypkhSo.js.gz +0 -0
  650. package/dist/web/assets/project-file-popup-page-DZ4w18TV.js.br +0 -0
  651. package/dist/web/assets/project-file-popup-page-DZ4w18TV.js.gz +0 -0
  652. package/dist/web/assets/project-source-panel-B7XIYPte.js +0 -2
  653. package/dist/web/assets/project-source-panel-B7XIYPte.js.br +0 -0
  654. package/dist/web/assets/project-source-panel-B7XIYPte.js.gz +0 -0
  655. package/dist/web/assets/prompt-input-CJK7fW5b.js +0 -1
  656. package/dist/web/assets/prompt-input-CJK7fW5b.js.br +0 -0
  657. package/dist/web/assets/prompt-input-CJK7fW5b.js.gz +0 -0
  658. package/dist/web/assets/provider-connection-panel-BI_YJrBr.js +0 -1
  659. package/dist/web/assets/provider-connection-panel-BI_YJrBr.js.br +0 -0
  660. package/dist/web/assets/provider-connection-panel-BI_YJrBr.js.gz +0 -0
  661. package/dist/web/assets/provider-connection-queries-D0AjZJNn.js.br +0 -0
  662. package/dist/web/assets/provider-connection-queries-D0AjZJNn.js.gz +0 -0
  663. package/dist/web/assets/railroadDiagram-AXF67PYL-d16J9qzD.js.br +0 -0
  664. package/dist/web/assets/railroadDiagram-AXF67PYL-d16J9qzD.js.gz +0 -0
  665. package/dist/web/assets/requirementDiagram-LRYGKXZP-C9hUbT7e.js.br +0 -0
  666. package/dist/web/assets/requirementDiagram-LRYGKXZP-C9hUbT7e.js.gz +0 -0
  667. package/dist/web/assets/resources-en-DinTd3sL.js +0 -1
  668. package/dist/web/assets/resources-en-DinTd3sL.js.br +0 -0
  669. package/dist/web/assets/resources-en-DinTd3sL.js.gz +0 -0
  670. package/dist/web/assets/scan-DYCzmZAH.js +0 -1
  671. package/dist/web/assets/scan-DYCzmZAH.js.br +0 -2
  672. package/dist/web/assets/scan-DYCzmZAH.js.gz +0 -0
  673. package/dist/web/assets/scheduled-task-date-time-picker-BFlpWVIu.js +0 -1
  674. package/dist/web/assets/scheduled-task-date-time-picker-BFlpWVIu.js.br +0 -0
  675. package/dist/web/assets/scheduled-task-date-time-picker-BFlpWVIu.js.gz +0 -0
  676. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js.br +0 -0
  677. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js.gz +0 -0
  678. package/dist/web/assets/scheduled-tasks-container-B0OwC2BV.js +0 -2
  679. package/dist/web/assets/scheduled-tasks-container-B0OwC2BV.js.br +0 -0
  680. package/dist/web/assets/scheduled-tasks-container-B0OwC2BV.js.gz +0 -0
  681. package/dist/web/assets/sequenceDiagram-SI44F4Z6-CGA84wrP.js.br +0 -0
  682. package/dist/web/assets/sequenceDiagram-SI44F4Z6-CGA84wrP.js.gz +0 -0
  683. package/dist/web/assets/server-DkIJGjQG.js +0 -1
  684. package/dist/web/assets/server-DkIJGjQG.js.br +0 -2
  685. package/dist/web/assets/server-DkIJGjQG.js.gz +0 -0
  686. package/dist/web/assets/settings-mutation-status-BCHdtmzH.js.br +0 -0
  687. package/dist/web/assets/settings-mutation-status-BCHdtmzH.js.gz +0 -0
  688. package/dist/web/assets/settings-save-status-DFCaOej1.js +0 -1
  689. package/dist/web/assets/settings-save-status-DFCaOej1.js.br +0 -0
  690. package/dist/web/assets/settings-save-status-DFCaOej1.js.gz +0 -0
  691. package/dist/web/assets/shiki-bundle-DTJ4LKMP.js.br +0 -2
  692. package/dist/web/assets/shiki-bundle-DTJ4LKMP.js.gz +0 -0
  693. package/dist/web/assets/skills-market-container-C8okZy75.css +0 -1
  694. package/dist/web/assets/skills-market-container-C8okZy75.css.br +0 -0
  695. package/dist/web/assets/skills-market-container-C8okZy75.css.gz +0 -0
  696. package/dist/web/assets/skills-market-container-CAnQE1ql.js +0 -2
  697. package/dist/web/assets/skills-market-container-CAnQE1ql.js.br +0 -0
  698. package/dist/web/assets/skills-market-container-CAnQE1ql.js.gz +0 -0
  699. package/dist/web/assets/sliders-horizontal-DFgw0FeX.js +0 -1
  700. package/dist/web/assets/sliders-horizontal-DFgw0FeX.js.br +0 -0
  701. package/dist/web/assets/sliders-horizontal-DFgw0FeX.js.gz +0 -0
  702. package/dist/web/assets/split-workspace-menu-content-B0juQhVb.js +0 -1
  703. package/dist/web/assets/split-workspace-menu-content-B0juQhVb.js.br +0 -2
  704. package/dist/web/assets/split-workspace-menu-content-B0juQhVb.js.gz +0 -0
  705. package/dist/web/assets/stateDiagram-OKZ733FA-D0MVn7g1.js.br +0 -0
  706. package/dist/web/assets/stateDiagram-OKZ733FA-D0MVn7g1.js.gz +0 -0
  707. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-TUsb_3yM.js.br +0 -0
  708. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-TUsb_3yM.js.gz +0 -0
  709. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-8Qb6Pp_Z.js.br +0 -0
  710. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-8Qb6Pp_Z.js.gz +0 -0
  711. package/dist/web/assets/task-timeline-process-history-DQh6F650.js.br +0 -0
  712. package/dist/web/assets/task-timeline-process-history-DQh6F650.js.gz +0 -0
  713. package/dist/web/assets/text-file-editor-CEKsFPli.js +0 -14
  714. package/dist/web/assets/text-file-editor-CEKsFPli.js.br +0 -0
  715. package/dist/web/assets/text-file-editor-CEKsFPli.js.gz +0 -0
  716. package/dist/web/assets/third-party-marketplace-pane-D-0qL80m.js +0 -1
  717. package/dist/web/assets/third-party-marketplace-pane-D-0qL80m.js.br +0 -0
  718. package/dist/web/assets/third-party-marketplace-pane-D-0qL80m.js.gz +0 -0
  719. package/dist/web/assets/timeline-definition-Z64GVDOM-DRC7HLeH.js.br +0 -0
  720. package/dist/web/assets/timeline-definition-Z64GVDOM-DRC7HLeH.js.gz +0 -0
  721. package/dist/web/assets/upload-BypRc41z.js +0 -1
  722. package/dist/web/assets/upload-BypRc41z.js.br +0 -0
  723. package/dist/web/assets/upload-BypRc41z.js.gz +0 -0
  724. package/dist/web/assets/utils-BjjzKOgD.js +0 -1
  725. package/dist/web/assets/utils-BjjzKOgD.js.br +0 -0
  726. package/dist/web/assets/utils-BjjzKOgD.js.gz +0 -0
  727. package/dist/web/assets/vennDiagram-T6HMQDX7-B5BRVmyv.js.br +0 -0
  728. package/dist/web/assets/vennDiagram-T6HMQDX7-B5BRVmyv.js.gz +0 -0
  729. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BVuPKOmW.js.br +0 -0
  730. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BVuPKOmW.js.gz +0 -0
  731. package/dist/web/assets/workbench-inspector-changes-CjhVNI8E.js +0 -1
  732. package/dist/web/assets/workbench-inspector-changes-CjhVNI8E.js.br +0 -0
  733. package/dist/web/assets/workbench-inspector-changes-CjhVNI8E.js.gz +0 -0
  734. package/dist/web/assets/workbench-pet-canvas-D7FEem4_.js.br +0 -0
  735. package/dist/web/assets/workbench-pet-canvas-D7FEem4_.js.gz +0 -0
  736. package/dist/web/assets/workbench-shell--cyl6F5f.js +0 -17
  737. package/dist/web/assets/workbench-shell--cyl6F5f.js.br +0 -0
  738. package/dist/web/assets/workbench-shell--cyl6F5f.js.gz +0 -0
  739. package/dist/web/assets/xychartDiagram-ELKLHX3M-Cyq1aXDR.js.br +0 -0
  740. package/dist/web/assets/xychartDiagram-ELKLHX3M-Cyq1aXDR.js.gz +0 -0
  741. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~b4s77zfd-ClgveiMa.js} +0 -0
  742. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js.br → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~b4s77zfd-ClgveiMa.js.br} +0 -0
  743. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js.gz → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~b4s77zfd-ClgveiMa.js.gz} +0 -0
@@ -1,4 +1,4 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-BY_WSiz7.js";import{D as n,H as r,K as i,U as a,a as o,b as s,c,f as l,v as u,w as d,y as f,z as p}from"./chunk-I66GZJ75-DQ6xf6w7.js";import{t as m}from"./linear-CExu3jxD.js";import{t as h}from"./ordinal-BDEzSJ7C.js";import{t as g}from"./init-C-OQMol4.js";import{i as _}from"./chunk-NSK5VX7P-CWtmfyNT.js";import{t as v}from"./line-CxzJiGLl.js";import"./chunk-4I5QYGJK-CFTW6BjH.js";import{t as y}from"./chunk-WRU74C26-COKHzxBn.js";import{a as b}from"./dist-DKGpvUu3.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=h().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=x(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return S(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},g.apply(d(),arguments)}var C=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,10,12,14,16,18,19,21,23],r=[2,6],i=[1,3],a=[1,5],o=[1,6],s=[1,7],c=[1,5,10,12,14,16,18,19,21,23,36,37,38],l=[1,25],u=[1,26],d=[1,28],f=[1,29],p=[1,30],m=[1,31],h=[1,32],g=[1,33],_=[1,34],v=[1,35],y=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,36,37,38],E=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],D=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],O=[1,65],k=[26,28],A={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,28:`COMMA`,29:`NUMBER_WITH_DECIMAL`,30:`STR`,33:`ARROW_DELIMITER`,36:`NEWLINE`,37:`SEMI`,38:`EOF`,40:`MD_STR`,42:`AMP`,43:`NUM`,44:`ALPHA`,45:`PLUS`,46:`EQUALS`,47:`MULT`,48:`DOT`,49:`BRKT`,50:`MINUS`,51:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:case 30:this.$=[a[s-2],...a[s]];break;case 21:case 31:this.$=[a[s]];break;case 22:this.$={value:Number(a[s-1]),label:a[s]};break;case 23:this.$={value:Number(a[s]),label:``};break;case 24:r.setXAxisTitle(a[s]);break;case 25:r.setXAxisTitle(a[s-1]);break;case 26:r.setXAxisTitle({type:`text`,text:``});break;case 27:r.setXAxisBand(a[s]);break;case 28:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 29:this.$=a[s-1];break;case 32:r.setYAxisTitle(a[s]);break;case 33:r.setYAxisTitle(a[s-1]);break;case 34:r.setYAxisTitle({type:`text`,text:``});break;case 35:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 39:this.$={text:a[s],type:`text`};break;case 40:this.$={text:a[s],type:`text`};break;case 41:this.$={text:a[s],type:`markdown`};break;case 42:this.$=a[s];break;case 43:this.$=a[s-1]+``+a[s]}},`anonymous`),table:[t(n,r,{3:1,4:2,7:4,5:i,36:a,37:o,38:s}),{1:[3]},t(n,r,{4:2,7:4,3:8,5:i,36:a,37:o,38:s}),t(n,r,{4:2,7:4,6:9,3:10,5:i,8:[1,11],36:a,37:o,38:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(c,[2,36]),t(c,[2,37]),t(c,[2,38]),{1:[2,1]},t(n,r,{4:2,7:4,3:21,5:i,36:a,37:o,38:s}),{1:[2,3]},t(c,[2,5]),t(n,[2,7],{4:22,36:a,37:o,38:s}),{11:23,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:39,13:38,24:x,29:S,30:l,31:40,32:41,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:45,15:44,29:C,30:l,35:46,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:49,17:48,24:w,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:52,17:51,24:w,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{20:[1,53]},{22:[1,54]},t(T,[2,18]),{1:[2,2]},t(T,[2,8]),t(T,[2,9]),t(E,[2,39],{41:55,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b}),t(E,[2,40]),t(E,[2,41]),t(D,[2,42]),t(D,[2,44]),t(D,[2,45]),t(D,[2,46]),t(D,[2,47]),t(D,[2,48]),t(D,[2,49]),t(D,[2,50]),t(D,[2,51]),t(D,[2,52]),t(D,[2,53]),t(T,[2,10]),t(T,[2,24],{32:41,31:56,24:x,29:S}),t(T,[2,26]),t(T,[2,27]),{33:[1,57]},{11:59,30:l,34:58,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},t(T,[2,11]),t(T,[2,32],{35:60,29:C}),t(T,[2,34]),{33:[1,61]},t(T,[2,12]),{17:62,24:w},{25:63,27:64,29:O},t(T,[2,14]),{17:66,24:w},t(T,[2,16]),t(T,[2,17]),t(D,[2,43]),t(T,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},t(T,[2,33]),{29:[1,70]},t(T,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},t(k,[2,23],{30:[1,73]}),t(T,[2,15]),t(T,[2,28]),t(T,[2,29]),{11:59,30:l,34:74,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},t(T,[2,35]),t(T,[2,19]),{25:75,27:64,29:O},t(k,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
1
+ import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-BY_WSiz7.js";import{D as n,H as r,K as i,U as a,a as o,b as s,c,f as l,v as u,w as d,y as f,z as p}from"./chunk-I66GZJ75-DQ6xf6w7.js";import{t as m}from"./linear-CExu3jxD.js";import{t as h}from"./ordinal-BDEzSJ7C.js";import{t as g}from"./init-C-OQMol4.js";import{i as _}from"./chunk-NSK5VX7P-CWtmfyNT.js";import{t as v}from"./line-CxzJiGLl.js";import"./chunk-4I5QYGJK-CFTW6BjH.js";import{t as y}from"./chunk-WRU74C26-COKHzxBn.js";import{a as b}from"./dist-AuPj8SgL.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=h().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=x(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return S(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},g.apply(d(),arguments)}var C=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,10,12,14,16,18,19,21,23],r=[2,6],i=[1,3],a=[1,5],o=[1,6],s=[1,7],c=[1,5,10,12,14,16,18,19,21,23,36,37,38],l=[1,25],u=[1,26],d=[1,28],f=[1,29],p=[1,30],m=[1,31],h=[1,32],g=[1,33],_=[1,34],v=[1,35],y=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,36,37,38],E=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],D=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],O=[1,65],k=[26,28],A={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,28:`COMMA`,29:`NUMBER_WITH_DECIMAL`,30:`STR`,33:`ARROW_DELIMITER`,36:`NEWLINE`,37:`SEMI`,38:`EOF`,40:`MD_STR`,42:`AMP`,43:`NUM`,44:`ALPHA`,45:`PLUS`,46:`EQUALS`,47:`MULT`,48:`DOT`,49:`BRKT`,50:`MINUS`,51:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:case 30:this.$=[a[s-2],...a[s]];break;case 21:case 31:this.$=[a[s]];break;case 22:this.$={value:Number(a[s-1]),label:a[s]};break;case 23:this.$={value:Number(a[s]),label:``};break;case 24:r.setXAxisTitle(a[s]);break;case 25:r.setXAxisTitle(a[s-1]);break;case 26:r.setXAxisTitle({type:`text`,text:``});break;case 27:r.setXAxisBand(a[s]);break;case 28:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 29:this.$=a[s-1];break;case 32:r.setYAxisTitle(a[s]);break;case 33:r.setYAxisTitle(a[s-1]);break;case 34:r.setYAxisTitle({type:`text`,text:``});break;case 35:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 39:this.$={text:a[s],type:`text`};break;case 40:this.$={text:a[s],type:`text`};break;case 41:this.$={text:a[s],type:`markdown`};break;case 42:this.$=a[s];break;case 43:this.$=a[s-1]+``+a[s]}},`anonymous`),table:[t(n,r,{3:1,4:2,7:4,5:i,36:a,37:o,38:s}),{1:[3]},t(n,r,{4:2,7:4,3:8,5:i,36:a,37:o,38:s}),t(n,r,{4:2,7:4,6:9,3:10,5:i,8:[1,11],36:a,37:o,38:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(c,[2,36]),t(c,[2,37]),t(c,[2,38]),{1:[2,1]},t(n,r,{4:2,7:4,3:21,5:i,36:a,37:o,38:s}),{1:[2,3]},t(c,[2,5]),t(n,[2,7],{4:22,36:a,37:o,38:s}),{11:23,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:39,13:38,24:x,29:S,30:l,31:40,32:41,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:45,15:44,29:C,30:l,35:46,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:49,17:48,24:w,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:52,17:51,24:w,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{20:[1,53]},{22:[1,54]},t(T,[2,18]),{1:[2,2]},t(T,[2,8]),t(T,[2,9]),t(E,[2,39],{41:55,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b}),t(E,[2,40]),t(E,[2,41]),t(D,[2,42]),t(D,[2,44]),t(D,[2,45]),t(D,[2,46]),t(D,[2,47]),t(D,[2,48]),t(D,[2,49]),t(D,[2,50]),t(D,[2,51]),t(D,[2,52]),t(D,[2,53]),t(T,[2,10]),t(T,[2,24],{32:41,31:56,24:x,29:S}),t(T,[2,26]),t(T,[2,27]),{33:[1,57]},{11:59,30:l,34:58,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},t(T,[2,11]),t(T,[2,32],{35:60,29:C}),t(T,[2,34]),{33:[1,61]},t(T,[2,12]),{17:62,24:w},{25:63,27:64,29:O},t(T,[2,14]),{17:66,24:w},t(T,[2,16]),t(T,[2,17]),t(D,[2,43]),t(T,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},t(T,[2,33]),{29:[1,70]},t(T,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},t(k,[2,23],{30:[1,73]}),t(T,[2,15]),t(T,[2,28]),t(T,[2,29]),{11:59,30:l,34:74,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},t(T,[2,35]),t(T,[2,19]),{25:75,27:64,29:O},t(k,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
2
  `+h.showPosition()+`
3
3
  Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};A.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
@@ -7,21 +7,21 @@
7
7
  <meta name="theme-color" content="#181818" media="(prefers-color-scheme: dark)" />
8
8
  <link rel="icon" href="/favicon.svg?v=4" type="image/svg+xml" />
9
9
  <title>Codexly</title>
10
- <script type="module" crossorigin src="/assets/index-WWY-Ngf-.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-CE2J7Z4y.js"></script>
11
11
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-B0Z9INg1.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/initial-deps-CqwWvUnY.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/react-runtime-CMZHB3u8.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/initial-deps-CG4ykI_P.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/initial-deps-D0opk7c-.js">
16
- <link rel="modulepreload" crossorigin href="/assets/initial-deps-DNAUCF1H.js">
17
- <link rel="modulepreload" crossorigin href="/assets/initial-deps-DZ-sH4cr.js">
18
- <link rel="modulepreload" crossorigin href="/assets/initial-deps-BeVJyoJH.js">
19
- <link rel="modulepreload" crossorigin href="/assets/initial-deps-CRaxZAOH.js">
20
- <link rel="modulepreload" crossorigin href="/assets/scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/initial-deps-DgzPJEbl.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/initial-deps-DBOKk1z5.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/initial-deps-cK7Q2EcP.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/initial-deps-ZpffyCug.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~b4s77zfd-ClgveiMa.js">
21
21
  <link rel="modulepreload" crossorigin href="/assets/initial-deps-DFOart6r.js">
22
- <link rel="modulepreload" crossorigin href="/assets/initial-deps-n_ZBS3cC.js">
23
- <link rel="modulepreload" crossorigin href="/assets/initial-deps-DG--jjIA.js">
24
- <link rel="stylesheet" crossorigin href="/assets/index-BPQs_vk8.css">
22
+ <link rel="modulepreload" crossorigin href="/assets/initial-deps-YY1DxiPl.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/initial-deps-DGiIFgQX.js">
24
+ <link rel="stylesheet" crossorigin href="/assets/index-DNMb0zwW.css">
25
25
  </head>
26
26
  <body>
27
27
  <div id="root"></div>
Binary file
Binary file
package/docs/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # Codexly 文档
2
+
3
+ Codexly 支持 Codex 与 Claude,提供桌面应用、电脑 Web 和移动浏览器三种使用方式。移动端连接 Web 服务,项目与智能体运行在提供服务的电脑上。
4
+
5
+ [产品首页](../README.md) · [English README](../README.en.md) · [下载桌面版](https://github.com/BryanHoo/Codexly/releases)
6
+
7
+ ## 安装与第一次使用
8
+
9
+ | 你想做什么 | 中文 | English |
10
+ | -------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------- |
11
+ | 选择使用端、连接智能体并创建第一个任务 | [首次使用](getting-started.md) | [Getting started](getting-started.en.md) |
12
+ | 安装、更新或卸载桌面应用 | [桌面安装指南](../desktop/docs/installation.md) | [Desktop installation](../desktop/docs/installation.en.md) |
13
+ | 启动 Web、连接手机或配置局域网访问 | [Web 与移动端](web.md) | [Web and mobile](web.en.md) |
14
+ | 让 Web 服务在登录系统后启动 | [Web 登录自启动](web-autostart.zh-CN.md) | [Web startup at login](web-autostart.md) |
15
+
16
+ ## 日常使用
17
+
18
+ - [工作台使用](usage.md) · [Workspace guide](usage.en.md):任务时间线、通知、常用提示词、队列、分屏、文件、扩展与定时任务。
19
+ - [用量统计](usage-statistics.md):双引擎 Token 用量、年度热力图、统计口径与验证。
20
+ - [Git 操作](git-workflow.md):差异审阅、提交、远端同步、分支与 worktree,含英文说明。
21
+ - [聊天与文件工作区](document-workspace.md):中栏标签、聊天对照、移动视图与设计依据。
22
+ - [文本编辑](text-file-editing.md):保存、文件限制与冲突处理。
23
+ - [全局搜索](global-search.md):项目、任务、消息与文件搜索。
24
+ - [常见问题](faq.md):本地数据、跨端使用、连接失败与更新。
25
+
26
+ ## 智能体与数据参考
27
+
28
+ 以下文档也包含实现细节,日常使用可先读首次使用与工作台指南。
29
+
30
+ - [智能体引擎与连接](agent-engines.md):Codex / Claude 的配置来源、能力边界及扩展范围。
31
+ - [模型与思考强度](model-discovery.md):模型目录、Claude 模型映射与能力来源。
32
+ - [模型上下文窗口](model-context-window.md):两种引擎的窗口和自动压缩设置。
33
+ - [本地目录与任务](local-catalog.md):同机共享数据、旧数据导入与配置目录。
34
+ - [会话加载与性能](conversation-performance.md):历史与执行过程按需加载。
35
+ - [定时任务执行边界](scheduled-task-idempotency.md):不确定结果与清理恢复。
36
+
37
+ ## 问题排查
38
+
39
+ Web 先查看启动终端,按需运行 `codexly doctor`;桌面端可在「设置 → 关于」导出诊断材料。先确认出错的使用端和智能体,再按[常见问题](faq.md)排查。[桌面诊断日志](../desktop/docs/diagnostics.md)提供进一步分析方法。
40
+
41
+ [问题反馈](https://github.com/BryanHoo/Codexly/issues) · [安全漏洞私密报告](../SECURITY.md) · [更新日志](../CHANGELOG.md)
42
+
43
+ ## 开发与维护
44
+
45
+ - [贡献指南](../CONTRIBUTING.md):源码开发、验证、文档维护与提交约定。
46
+ - [桌面源码开发](../desktop/docs/development.md) · [English](../desktop/docs/development.en.md)。
47
+ - [三端与双引擎能力参考](../desktop/docs/codexly-capability-matrix.md)。
48
+ - [桌面运行时分发](../desktop/docs/provider-runtime-management.md)。
49
+ - [联合发布](releasing.md)。
50
+
51
+ `codex-*-upgrade.md`、带日期的测试报告、架构调研及迁移记录保留当时的背景和验证结果,不作为当前安装或能力说明。当前行为以使用指南、能力参考与对应版本的更新日志为准。
@@ -8,6 +8,8 @@ Codexly 通过应用自己的任务目录保存聊天身份,新聊天可以选
8
8
 
9
9
  Web(含移动端)继续使用服务端依赖和原有初始化流程,浏览器不下载桌面执行文件。两端共用配置面板、模型能力、选择器和会话逻辑。
10
10
 
11
+ 日常使用先读[首次连接](getting-started.md)与[工作台指南](usage.md);本文维护原生配置与实现边界。移动端是连接 Web 服务的浏览器界面,不是独立执行端;桌面应用不自动提供 LAN 服务,手机接入需另行[启动 Web 局域网模式](web.md#移动端与局域网访问)。macOS Legacy 桌面包仅支持 Codex。
12
+
11
13
  Claude 仅提供 API 配置:填写服务地址和密钥。官方地址为 `https://api.anthropic.com`;兼容服务必须支持 Anthropic Messages 协议,保存时自动检测 API Key 或 Token 认证,无需手动选择;检测要求服务提供 `/v1/models` 接口。应用不提供 Claude 账号登录。
12
14
 
13
15
  初始化点击“连接并开始使用”,设置页点击“保存连接”。输入和失焦不会保存密钥。普通模型与权限偏好自动保存。完成连接配置不能代替真实请求对密钥、额度及模型权限的验证。
@@ -53,7 +55,23 @@ Web 与桌面端的 Claude 模型选择仅显示 `Haiku`、`Sonnet`、`Opus`,
53
55
 
54
56
  权限模式是 Claude 的工具授权策略,不等于 Codex 的操作系统沙盒。会话级授权只能采用 SDK 返回的具体授权建议,不能把批准一个命令扩大成批准整类工具。当前会话的权限模式可在运行时切换,复用存活查询;SDK 主动退出计划模式等权限变更会同步到两端界面,失败时保留已确认状态并显示错误。
55
57
 
56
- Web 服务先启动本地目录与 HTTP,首次使用 Codex 功能时才启动其执行进程和读取模型目录。已初始化且仅启用 Claude 的用户,即使 Codex 执行文件不可用,也能启动 Web、查看历史并对话。未启用 Codex 时隐藏依赖它的搜索和扩展入口;在设置中启用后恢复。
58
+ Web 服务先启动本地目录与 HTTP,首次使用 Codex 功能时才启动其执行进程和读取模型目录。已初始化且仅启用 Claude 的用户,即使 Codex 执行文件不可用,也能启动 Web、查看历史并对话。全局搜索按已启用引擎分别检索,Claude 历史使用应用摘要,不要求启动 Codex;扩展中心仍可进入并默认显示 Claude。详见[搜索边界](global-search.md)。
59
+
60
+ ### 扩展中心
61
+
62
+ Codex 与 Claude 的 Skills、MCP 和官方插件统一使用紧凑列表、搜索、筛选和范围标识;安装、移除与开关按条目反馈状态。Codex 插件支持行内安装,点击名称查看能力,需要授权时保留授权入口;实际可用操作以各引擎原生接口为准。
63
+
64
+ 两种引擎共用全局/项目选择。Codex 项目 MCP 根据官方配置层显示,写入接口只允许修改全局配置,因此项目项只读并提供说明。Claude 列表按栏目和项目缓存,刷新后重读;大目录只挂载视口附近的条目,切换栏目不会反复初始化整个目录。
65
+
66
+ Web 与桌面端共用精简的扩展列表,分别管理 Codex 和 Claude,切换分类不会切换引擎。Claude 的范围选择包含全局与当前项目;Skills、MCP 只显示所选范围的配置。项目 MCP 包含项目共享与项目私有定义,不混入全局配置。
67
+
68
+ - **MCP**:读取已有的用户、项目共享和项目私有配置;支持按项目启停及按来源范围移除。本次不提供新增 MCP。开关表示配置是否启用,不代表实时连接状态。配置列表不回传地址中的凭据或环境变量值。
69
+ - **Skills**:发现用户 `skills/` 和项目 `.claude/skills/`;开关通过官方 `skillOverrides` 保存可见性,不修改原始 `SKILL.md`。在项目中操作时写入项目私有设置。插件中的 Skills 通过所属插件管理。
70
+ - **官方插件**:同步 `anthropics/claude-plugins-official`,通过同版本官方 CLI 安装、启停、更新和卸载。插件的下载、依赖和缓存由 Claude Code 管理,不直接改写安装登记文件。列表中的“官方”指官方维护的目录。
71
+
72
+ 配置变更后,新建会话以完整加载扩展。管理页面按需读取数据,不启动推理会话或主动连接所有 MCP 服务;Web 的配置位于服务所在的电脑。
73
+
74
+ 官方依据:[MCP 作用域与启停](https://code.claude.com/docs/en/mcp)、[Skills 可见性设置](https://code.claude.com/docs/en/skills#override-skill-visibility-from-settings)、[插件 CLI](https://code.claude.com/docs/en/plugins/cli-reference)。
57
75
 
58
76
  ## 定时任务
59
77
 
@@ -88,7 +106,7 @@ Claude 的 Write/Edit 成功返回后,使用实际结果中的文件路径和
88
106
  - 父回合 `result` 结束本轮回复,后台子代理仍可继续执行。后续回合复用存活的查询,后台结果更新创建它的原回合;没有前台或后台工作连续 30 秒后释放进程。实际 CLI 是否先返回父结果取决于任务类型与运行模式,不能由此推断所有后台任务的消息顺序。此生命周期遵循官方[流式输入](https://code.claude.com/docs/en/agent-sdk/streaming-vs-single-mode)与[子代理](https://code.claude.com/docs/en/agent-sdk/subagents)契约。
89
107
  - 运行中的 Claude 会话在下次发送前,通过 SDK 动态控制应用模型、思考强度和权限模式,无需重建查询,后台任务继续运行。未变化的参数不重复发送控制请求;控制失败时不发送新消息,重试只应用尚未成功的变更。连接凭据、项目配置加载来源和结构化输出 Schema 等启动配置仍需重建查询,后台工作存活时要求先停止后台工作。
90
108
  - 独立停止接口:Web 使用 `POST /v1/projects/:projectId/tasks/:taskId/session/stop`(要求幂等键),桌面使用 `stop_task_session`。参数包含 `taskId`,可选 `backgroundTaskId`:指定时仅停止该原生后台任务,省略时停止整个会话;不要求父回合仍在运行。子代理工具输出中的 `nativeTaskId` 是原生后台 ID。
91
- - 扩展中心原有安装管理仍属于 Codex。Claude 可以按设置加载项目配置;此次没有增加 Claude 扩展安装管理器。
109
+ - 扩展中心按引擎分别管理原生扩展。Claude 使用官方 CLI 管理官方插件;两端共用界面与范围选择,扩展只在进入对应栏目时读取。
92
110
  - 执行上下文保留在官方 SDK 会话中。界面历史按记录保存到磁盘,内存只保留最近的有界投影,运行中定期写检查点。主回合超出展示缓存后不再追加“已省略较早执行记录”;Web 和桌面端均可在中栏顶部点击“加载更早记录”,先补齐同一回合的记录,再继续更早回合。每页最多 100 条记录并受字节预算限制,刷新或重启宿主后仍可续页。检查点恢复不会把异常退出伪装成成功。单条超长正文、工具结果和嵌套子代理输出仍保留有界预览;预览不会裁剪 SDK 实际工具参数或改变执行结果。旧版已从展示历史中丢弃的记录不能由新索引恢复。
93
111
 
94
112
  ### 资源与分发
@@ -0,0 +1,37 @@
1
+ # 会话加载与性能 / Conversation Loading and Performance
2
+
3
+ 本文说明当前 Codexly 的会话加载与资源管理行为,适用于 Codex / Claude 任务,以及 Web(含移动端)和 Windows、Ubuntu、macOS 桌面应用。引擎历史读取细节可不同,界面共用按需加载和有界渲染策略。
4
+
5
+ This document describes current conversation loading and resource management for Codex and Claude tasks across Web (including mobile) and Windows, Ubuntu, and macOS desktop apps. Engine history adapters differ, while the interface shares on-demand loading and bounded rendering.
6
+
7
+ ## 会话历史 / Conversation History
8
+
9
+ 打开任务时优先读取最近回合的问题与最终答复摘要,每页最多 10 个回合。顶部「加载更早历史」每次只读取一页更早回合,不加载回合内部的过程条目。展开某个回合的过程后独立读取执行条目,分页历史每次最多读取该回合的 100 个条目,支持继续加载与失败重试,不改变问题与最终答复的顺序;保留审查结果和条目耗时,长过程内容限制在当前分屏内。旧格式历史仍按回合读取完整过程,过程入口同样按需加载。分页是读取方式,不会删除磁盘上的历史记录。
10
+
11
+ Opening a task loads summaries of recent questions and final answers, with up to 10 turns per page. The top history control loads one page of earlier turns without fetching their internal execution details. Expanding a turn’s process loads its details independently, with up to 100 items per page for paginated history and controls to load more or retry failures, while keeping questions and final answers in order. Review results and item timings are preserved, and long process content stays within the current pane. Legacy history reads the complete process by turn, also only when expanded. Pagination changes how history is read; it does not delete history on disk.
12
+
13
+ ## 代码与 Markdown / Code and Markdown
14
+
15
+ 两端共用代码查看器,按需加载语法模块并分批高亮,长代码按可见行渲染。完整代码的 UTF-8 大小超过 128 KiB 时使用纯文本,仍可查看和复制完整源码。流式 Markdown 保留增量内容,尾块异步收尾;正文的动画订阅与稳定内容分离,减少重复渲染。
16
+
17
+ Both editions share a code viewer that loads grammars on demand, highlights in batches, and renders visible lines for long code. Code whose complete UTF-8 source exceeds 128 KiB uses plain text while retaining the full source for viewing and copying. Streaming Markdown retains incremental content and finalizes its tail asynchronously. Animation subscriptions are isolated from stable content to reduce repeated rendering.
18
+
19
+ ## 缓存与后台更新 / Caches and Background Updates
20
+
21
+ 非活跃任务快照最多保留 12 份,估算容量预算为 48 MiB;超过任一限制就释放最久未使用的非活跃快照,单份超预算快照直接释放。活跃任务不计入此预算,因此它不是整个应用的内存上限。重新打开被释放的任务会重新读取历史。
22
+
23
+ The cache retains at most 12 inactive task snapshots within an estimated 48 MiB budget. Exceeding either limit evicts the least recently used inactive snapshots; a snapshot that exceeds the entire budget is released immediately. Active tasks are outside this budget, so it is not a total application memory limit. Reopening an evicted task reads its history again.
24
+
25
+ 两端在页面或 WebView 隐藏时继续提交已收到的任务事件,避免仅依赖动画帧导致后台状态停滞。空闲任务不保留事件提交的周期定时器。
26
+
27
+ Both editions continue committing received task events while the page or WebView is hidden, preventing background state from stalling on animation-frame scheduling. Idle tasks do not retain periodic event-flush timers.
28
+
29
+ ## Web 多设备与传输 / Web Devices and Transport
30
+
31
+ 连接同一 Web 服务的浏览器与设备通过变更通知同步项目待办与异步问答。后台页面只将相关缓存标记为失效,恢复可见后读取最新状态;首次连接和断线重连也会校准。该机制不在独立 Web 服务与桌面应用之间同步本地数据。
32
+
33
+ Browsers and devices connected to the same Web server synchronize project todos and asynchronous questions through change notifications. Hidden pages mark related caches stale and fetch current state when visible again. Initial connections and reconnections also refresh state. This does not synchronize local data between independent Web servers and desktop apps.
34
+
35
+ Web 事件批次限制数量与 UTF-8 字节数,并对慢客户端施加发送缓冲限制。不可发送的超大事件会触发客户端读取快照恢复状态。搜索连接关闭后取消后续扫描与在途 RPC;历史附件在有界后台工作线程中落盘,每个任务的通知保持顺序。
36
+
37
+ Web event batches are bounded by both count and UTF-8 size, with send-buffer limits for slow clients. An oversized event triggers snapshot recovery on the client. Closing a search connection cancels subsequent scans and pending RPC reads. History attachments are persisted by a bounded worker pool while preserving notification order within each task.
@@ -0,0 +1,49 @@
1
+ # 聊天与文件工作区设计
2
+
3
+ 本方案面向在 AI 对话、项目文件与代码变更之间反复核对的用户。文件内容进入中栏,导航列表保留原位,避免每打开一个文件就丢失文件树或变更列表。
4
+
5
+ ## 布局与选择依据
6
+
7
+ | 区域 | 职责 | 打开内容后的行为 |
8
+ | ---- | ----------------------------------------------- | ------------------------------------ |
9
+ | 左栏 | 项目、任务与搜索入口 | 保留任务导航,文件交给聚焦任务 |
10
+ | 中栏 | 聊天、源码、图片、PDF、Diff、批量审核、提交详情 | 使用独立、可关闭的文档标签;聊天常驻 |
11
+ | 右栏 | 项目文件树、变更列表、提交历史、运行上下文 | 点击条目后保留原来的导航标签与列表 |
12
+
13
+ 采用中央内容标签而非继续扩充右栏,是因为文件与差异需要主要阅读空间;文件树和变更列表需要在阅读时持续可用。聊天仍是默认入口,纯聊天用户无需选择文件或调整布局。
14
+
15
+ 视觉沿用项目语义色:内容白色 `#ffffff` / 深色 `#181818`、主强调蓝 `#006aff` / `#339cff`,边界使用已有低对比度分隔线。标签采用现有系统字体,源码沿用等宽字体;不引入新字体下载、动画库或工作台框架。选中标签使用与右栏一致的低对比度灰色底,无强调下划线;桌面标签栏高 28px,只有聊天时完全隐藏。文件类型图标区分源码、图片和变更,完整路径通过悬停查看。
16
+
17
+ ## 实际操作
18
+
19
+ 1. 点击文件树、搜索结果或消息中的文件引用,内容在当前任务的中栏标签打开。
20
+ 2. 点击「聊天」返回会话,草稿和聊天 DOM 状态保留。
21
+ 3. 在文件标签工具栏选择「与聊天左右对照」或「与聊天上下对照」,同时阅读聊天和文件。拖动分割线调整比例,方向键微调,双击恢复等分。
22
+ 4. 再次点击已选中的对照按钮恢复单栏;最右侧聚焦按钮可回到聊天并退出对照,保留文件标签。左右对照、上下对照和聚焦按钮均提供 Tooltip,并固定在标签栏右侧;只有左侧标签区域滚动。回到聊天时按钮区仍保留,对照按钮暂时置灰。关闭当前文件优先选择相邻标签,最后一个关闭后返回聊天。
23
+ 5. 标签栏支持左右方向键、Home、End、Delete 与鼠标中键关闭;标签过多时可用鼠标滚轮、触控板横滑或触摸滑动浏览,不额外显示下拉菜单。点击或切换标签后自动居中显示完整标签(包含关闭按钮),栏宽改变后重新定位。
24
+
25
+ 现有任务分屏仍支持最多四个任务。每个任务有自己的标签和对照状态,右栏跟随当前聚焦任务。从侧栏、搜索或通知导航到任务时自动回到聊天,保留已打开的文件标签;普通点击分屏内的文件区域只切换焦点,不重置文档。任务分屏与聊天/文件对照是两种不同操作:前者处理多个任务,后者核对一个任务的内容。当前不提供文件标签跨任务拖移、任意文件对文件分组或重启后的标签恢复。
26
+
27
+ 手机及触摸设备保持单组标签,打开文件自动收起覆盖内容的侧栏;不展示对照入口。桌面缩小再恢复时,对照方向仍保留。
28
+
29
+ ## 状态、安全与性能边界
30
+
31
+ - 两端共用文档状态、标签、对照布局、快捷键和分割线,只保留客户端与文件查看器的宿主适配。
32
+ - 标签只保存资源描述。只有当前文档挂载查看器,后台标签不挂载图片、PDF、代码高亮或 Diff。
33
+ - 聊天使用 React `Activity` 保留状态,隐藏时暂停界面副作用;任务运行时位于边界外,继续接收事件。
34
+ - 文本复用已有带容量预算的编辑会话缓存、撤销和滚动快照。切换与关闭等待保存;保存失败保留文件和草稿。迟到的保存不能恢复已离开的工作目录。
35
+ - 文件树、搜索与消息的路径按项目和根目录统一身份,重复打开复用标签;不同工作树相同相对路径隔离。
36
+ - 拖动只写布局 CSS 变量,释放指针后才更新分割线语义状态,不逐帧刷新聊天和编辑器。
37
+ - 当前标签与布局只在本窗口生命周期内保留;不将文件内容复制到布局状态或持久存储。
38
+
39
+ ## 官方参考
40
+
41
+ - [VS Code:用户界面、标签与编辑器组](https://code.visualstudio.com/docs/getstarted/userinterface):导航与主要内容分区,活动编辑器接收新文件,支持并排阅读。
42
+ - [JetBrains:Editor basics](https://www.jetbrains.com/help/idea/using-code-editor.html):文档标签、预览标签、拆分和键盘切换。本实现使用显式文档标签,避免连续浏览时替换用户正在编辑的内容。
43
+ - [React:Activity](https://react.dev/reference/react/Activity):保留隐藏界面状态并清理其副作用。
44
+
45
+ ## 验证入口
46
+
47
+ 共享状态与资源身份见 `packages/frontend-core/src/document-*.test.ts`。真实 Chromium / WebKit 的草稿、保存保护和挂载数量验证见 `desktop/src/shared/components/core/document-workspace.browser.test.tsx`。完整 Web、移动与多任务分屏流程见 `tests/e2e/app-shell-document-workspace.spec.ts`。
48
+
49
+ 这些验证检查资源生命周期、布局与行为,不代表真实大型项目、所有操作系统上的帧率或内存峰值基准。
package/docs/faq.md ADDED
@@ -0,0 +1,63 @@
1
+ # 常见问题
2
+
3
+ [文档导航](README.md) · [首次使用](getting-started.md) · [Web 与移动端](web.md)
4
+
5
+ ## 桌面、Web、移动端是什么关系?
6
+
7
+ 桌面版是 macOS、Windows 和 Ubuntu 上的独立应用,内置运行时;Web 版通过 npm 启动本地服务。移动端是 Web 的小屏浏览器界面,不是独立安装包。桌面应用不自动开启局域网服务,需要手机访问时另行启动 `codexly start --lan`。
8
+
9
+ ## 只使用 Claude 可以吗?
10
+
11
+ 可以。聊天、项目、公共设置、Git 提交说明生成与定时任务不要求配置或启动 Codex。macOS Legacy 安装包除外,该版本只支持 Codex。已创建任务的引擎固定,要换引擎请新建任务。
12
+
13
+ ## Claude 怎么登录?
14
+
15
+ 应用不提供 Claude 账号登录。可复用主机上受支持的 Claude Code 认证,或填写支持 Anthropic Messages API 与 `/v1/models` 的服务地址和密钥。连接检测成功仅表示模型列表可读取,不保证模型调用权限、额度或计费可用。详见[连接指南](getting-started.md#claude)。
16
+
17
+ ## 为什么模型或思考强度没有显示?
18
+
19
+ 先确认当前引擎已经配置,连接地址、认证和模型权限有效。Codex 根据原生模型目录显示模型与支持的思考档位;兼容目录未声明推理能力时不会猜测,菜单可能隐藏。Claude 显示 Haiku / Sonnet / Opus,网关模型 ID 通过映射配置;思考档位以 SDK 报告为准。详见[模型参考](model-discovery.md)。
20
+
21
+ ## 文件和对话保存在哪里?会上传吗?
22
+
23
+ 项目文件位于运行 Codexly 的电脑上。应用数据在该系统用户的 `~/.codexly`,Codex 原生配置与会话默认在 `~/.codex`,Claude 默认在 `~/.claude`。引擎目录可分别由 `CODEX_HOME`、`CLAUDE_CONFIG_DIR` 改写。
24
+
25
+ “本地工作台”指应用存储与执行位置,不表示离线模型。任务相关请求和上下文仍会发送到所配置的模型服务,MCP 和插件也按各自配置访问外部服务。
26
+
27
+ ## 桌面与 Web 会共享项目吗?换电脑会同步吗?
28
+
29
+ 同机同一系统用户的桌面与 Web 共用应用项目、任务和历史。手机访问 Web 主机的同一份数据;另一台电脑没有自动云同步。界面草稿、分屏偏好不保证跨设备同步,共享存储也不等于同一个运行会话可被两个进程同时控制。
30
+
31
+ `--codex-home` 只改变 Codex 自身配置、历史和旧数据导入位置,不隔离 `~/.codexly`。详见[本地目录与任务](local-catalog.md)。
32
+
33
+ ## 怎么备份和迁移?
34
+
35
+ 退出桌面应用并停止所有 Web 服务后,备份 `~/.codexly`、实际使用的 Codex / Claude 配置与历史目录,以及项目文件。它们可能包含密钥和对话内容,应妥善保存。恢复后还需确认项目绝对路径、操作系统认证及系统钥匙串可用;仅复制应用目录不保证跨系统凭据和执行上下文可以直接使用。
36
+
37
+ ## 手机为什么打不开?
38
+
39
+ 确保使用 `--lan` 启动,手机与主机在同一可信局域网,并使用终端输出的局域网地址,而不是 `127.0.0.1`。检查主机是否休眠、服务是否仍运行、端口是否被防火墙阻止,以及 Wi-Fi 是否启用设备隔离。端口占用会自动递增,请以实际输出为准。
40
+
41
+ 服务重启后需要重新登录;普通 LAN 启动的随机密码会改变,自启动服务保存的密码可用 `codexly autostart credentials` 查看。不要为解决访问问题将服务直接暴露到公网。
42
+
43
+ ## 关闭窗口后任务和计划还会运行吗?
44
+
45
+ 浏览器页面不是执行主机;只要电脑唤醒且 Web 服务仍运行,关闭页面不会等于关闭服务。桌面版要区分最小化到托盘与真正退出;真正退出应用或停止 Web 服务后,不能继续处理任务或触发计划。具体运行状态以应用为准,休眠不会自动唤醒执行计划。
46
+
47
+ 定时任务显示结果不确定时,先查看关联会话确认实际结果,再删除并重建计划,避免重复执行。
48
+
49
+ ## 如何更新?Windows 便携版只换 EXE 可以吗?
50
+
51
+ 侧栏出现新版本后点击版本号,或到「设置 → 关于」检查更新。Web 全局安装也可重新运行 `npm install --global @bryanhu/codexly@latest`。
52
+
53
+ Windows 便携版必须关闭应用并用新版 ZIP 的完整解压目录替换旧目录,保留主程序、Claude 宿主和 `runtime`。只换 EXE 会造成资源缺失或版本不匹配。macOS Legacy 与 Modern 有独立更新渠道,升级系统后需手动安装 Modern 才会切换。
54
+
55
+ ## 卸载会删除项目和历史吗?
56
+
57
+ 移除桌面应用或 npm 包不会自动删除项目,也不会清空共享的 `~/.codexly`。删除应用数据会影响同机其他 Codexly 使用端。清理前先备份并停用 Web 登录自启动;系统日志与缓存位置见[桌面安装指南](../desktop/docs/installation.md)。
58
+
59
+ ## 怎样反馈问题?
60
+
61
+ 请提供应用版本、系统及架构、桌面 / 电脑 Web / 移动浏览器、Codex / Claude、复现步骤与脱敏错误。Web 查看启动终端,必要时运行 `codexly doctor`;桌面在「设置 → 关于」导出诊断 ZIP,分析方法见[诊断指南](../desktop/docs/diagnostics.md)。原始 ZIP 留在本地,仅提交必要的脱敏片段。
62
+
63
+ 普通问题提交到 [Issues](https://github.com/BryanHoo/Codexly/issues);漏洞请按[安全策略](../SECURITY.md)私密报告。
@@ -0,0 +1,54 @@
1
+ # Get started with Codexly
2
+
3
+ [Documentation](README.md) · [简体中文](getting-started.md)
4
+
5
+ Choose a client, connect Codex or Claude, and start your first task in a local project.
6
+
7
+ ## Choose a client
8
+
9
+ - **Desktop**: download from [Releases](https://github.com/BryanHoo/Codexly/releases) and follow [installation](../desktop/docs/installation.en.md). Runtimes are bundled; no separate Node.js, Bun, or CLI is needed. macOS Legacy supports Codex only.
10
+ - **Computer browser**: install Node.js 24+, run the command below, and open the printed local address.
11
+ - **Phone or tablet**: add `--lan` to the command on your computer, then open the printed LAN address on your mobile device and enter the password. See [Web and mobile](web.en.md).
12
+
13
+ ```bash
14
+ npx --package @bryanhu/codexly@latest codexly start
15
+ ```
16
+
17
+ Desktop opens directly into the workspace; configure connections in Settings. Web provides first-use setup. Supported existing local configurations are recognized. You can configure just one agent and add the other later.
18
+
19
+ ## Connect an agent
20
+
21
+ ### Codex
22
+
23
+ Use ChatGPT sign-in or configure a compatible API URL and key. Custom services must support the OpenAI Responses API and a model list. Select a model available through that connection; reasoning options follow its reported capabilities.
24
+
25
+ ### Claude
26
+
27
+ Reuse supported Claude Code credentials on the host computer, or enter a service URL and key in Claude connection settings. The official API URL is `https://api.anthropic.com`; compatible services must support Anthropic Messages and `/v1/models`. Click the connection or save button to save credentials; typing or leaving the field does not submit them.
28
+
29
+ In-app Claude account login is unavailable. Connection checks read the model list without a generation request; success does not verify inference credits or every model permission.
30
+
31
+ Choose Haiku, Sonnet, or Opus. For gateways using custom model IDs, configure their mappings in Claude agent settings; official connections can usually leave mappings empty. Claude-only setups support conversations, common settings, Git commit message generation, and schedules without Codex configuration.
32
+
33
+ ### Where settings apply
34
+
35
+ Desktop reads the local user's configuration. Web and mobile change configuration on the Web host, not on the browser device. Default directories are `~/.codex` and `~/.claude`, overridden by `CODEX_HOME` and `CLAUDE_CONFIG_DIR` respectively.
36
+
37
+ Credentials, model access, and charges belong to your chosen provider. Codexly includes no model credits. Relevant project content is sent to that service as part of agent execution.
38
+
39
+ ## Start a task
40
+
41
+ 1. Add a folder as a project in the sidebar. Mobile selects a folder on the Web host.
42
+ 2. Open the project and create a task. Choose Codex or Claude in the composer when both are available; a single configured engine is selected automatically.
43
+ 3. Select a model and permissions. Permission semantics differ by engine; confirmation-based modes help you inspect operations.
44
+ 4. Describe a concrete goal, such as “Explain how this project starts and find its test entry points.” Attach files, reference project files with `@`, or Skills with `$` as needed.
45
+ 5. Follow execution and respond to approvals or questions. Review code changes in the Changes panel before committing.
46
+
47
+ Use **New task** for a conversation without a project. Existing tasks keep their engine; create a new task to use the other agent.
48
+
49
+ ## Next steps
50
+
51
+ - [Workspace guide](usage.en.md): steering, queues, panes, files, and schedules.
52
+ - [Git workflow](git-workflow.md): branches, worktrees, commits, and pushes; includes English instructions.
53
+ - [FAQ (中文)](faq.md): connections, shared data, and updates.
54
+ - [Agent reference (中文)](agent-engines.md): native configuration, permissions, and extensions.
@@ -0,0 +1,54 @@
1
+ # 首次使用 Codexly
2
+
3
+ [文档导航](README.md) · [English](getting-started.en.md)
4
+
5
+ 目标:选择使用端,连接 Codex 或 Claude,用本机项目完成第一个任务。
6
+
7
+ ## 选择使用端
8
+
9
+ - **桌面应用**:从 [Releases](https://github.com/BryanHoo/Codexly/releases) 下载安装包,按[安装指南](../desktop/docs/installation.md)打开。运行时已内置,无需另装 Node.js、Bun 或 CLI;macOS Legacy 仅支持 Codex。
10
+ - **电脑浏览器**:安装 Node.js 24+,运行下方命令,打开终端显示的本机地址。
11
+ - **手机和平板**:在电脑上使用下方命令并加上 `--lan`,再用移动浏览器访问终端显示的局域网地址、输入密码。完整步骤见 [Web 与移动端](web.md)。
12
+
13
+ ```bash
14
+ npx --package @bryanhu/codexly@latest codexly start
15
+ ```
16
+
17
+ 桌面端打开后直接进入工作台,在设置中配置连接;Web 首次使用时按初始化界面完成配置。已有受支持的本机配置会被识别。你可以只配置一个智能体,之后再添加另一个。
18
+
19
+ ## 连接 Codex 或 Claude
20
+
21
+ ### Codex
22
+
23
+ 在 Codex 连接设置中选择 ChatGPT 登录,或填写兼容服务的地址与密钥。自定义服务需支持 OpenAI Responses API 和模型列表。保存后选择服务实际提供的模型,模型和思考档位随当前连接变化。
24
+
25
+ ### Claude
26
+
27
+ 可复用运行 Codexly 的电脑上已有的受支持 Claude Code 凭据,也可在 Claude 连接设置中填写服务地址与密钥。官方 API 地址为 `https://api.anthropic.com`;兼容服务需支持 Anthropic Messages API 和 `/v1/models`。点击连接或保存按钮才会保存密钥,单纯输入或失焦不会提交。
28
+
29
+ 应用内不提供 Claude 账号登录。连接检测读取模型列表,不发送生成请求;检测成功不代表已经验证调用额度和全部模型权限。
30
+
31
+ 模型选择使用 Haiku、Sonnet、Opus 档位。使用网关且实际模型 ID 不同时,在 Claude 智能体设置中配置模型映射;官方连接通常可以留空。只配置 Claude 也可使用聊天、公共设置、Git 提交说明生成与定时任务,无需配置 Codex。
32
+
33
+ ### 配置在哪台设备上生效
34
+
35
+ 桌面应用读取本机用户配置;电脑与移动浏览器操作 Web 服务所在电脑的配置,而非浏览器所在设备。Codex 默认使用 `~/.codex`,Claude 默认使用 `~/.claude`;指定 `CODEX_HOME` 或 `CLAUDE_CONFIG_DIR` 时使用对应目录。
36
+
37
+ 密钥、模型权限与额度由所用服务管理。Codexly 不包含模型额度,项目中与任务相关的内容会按智能体行为发送给模型服务。
38
+
39
+ ## 创建第一个任务
40
+
41
+ 1. 在侧栏添加一个电脑上的文件夹作为项目。手机访问时选择的也是 Web 主机上的目录。
42
+ 2. 打开项目并新建任务。两种引擎都可用时,在输入区选择 Codex 或 Claude;只有一种时自动使用该引擎。
43
+ 3. 选择模型,按需要调整权限。不同引擎的权限语义不同,先使用需要确认的模式更便于检查操作。
44
+ 4. 输入明确的目标,例如「解释这个项目的启动方式,并找出测试入口」,再发送。可以添加附件、用 `@` 引用项目文件、用 `$` 引用 Skills。
45
+ 5. 查看输出与工具执行过程,处理出现的审批或问题。修改代码后,在变更面板审阅差异,再决定是否提交。
46
+
47
+ 无需项目时,可从「新建任务」开始临时对话。已有任务的引擎固定;希望使用另一种引擎时请新建任务。
48
+
49
+ ## 继续使用
50
+
51
+ - [工作台使用](usage.md):补充指令、消息队列、分屏、文件与定时任务。
52
+ - [Git 操作](git-workflow.md):分支、worktree、提交与推送。
53
+ - [常见问题](faq.md):连接失败、数据共享与更新。
54
+ - [智能体技术参考](agent-engines.md):原生配置、权限和扩展的详细边界。
@@ -0,0 +1,49 @@
1
+ # 全局搜索
2
+
3
+ Web(含移动端)与桌面端共用搜索契约,支持任务标题、可见历史和项目文件。
4
+
5
+ ## 引擎与数据源
6
+
7
+ 两端按当前可用的引擎集合筛选:Web 使用初始化后的启用状态,桌面使用原生连接配置识别结果,传递 `engines=codex`、`claude` 或 `codex,claude`。单引擎不查询另一个引擎,双引擎按本地 `updatedAt DESC, id DESC` 综合搜索;旧客户端省略筛选时默认包含两种引擎。任务名称、固定与归档状态以应用目录为准,正文检索按持久化 provider 身份路由。
8
+
9
+ | 来源 | 实现 | 定位 |
10
+ | ----------- | ------------------------------------------------------------------- | ------------------------------------------ |
11
+ | 标题 | 应用目录先按引擎、标题与归档状态过滤,再分页;不启动引擎 | 打开任务 |
12
+ | Codex 历史 | `thread/searchOccurrences`;仅 `-32601` 时回退可见消息分页匹配 | 官方 inclusive 游标 |
13
+ | Claude 历史 | Web/桌面复用已有问题与最终答复摘要检索;不创建 SDK 会话或模型请求 | 原消息 ID、回合 ID 与摘要页 inclusive 游标 |
14
+ | 文件 | Web 使用 Node 扫描,桌面使用 Rust `ProjectFileSearch`,均独立于引擎 | 内部预览或系统打开 |
15
+
16
+ Claude 官方文档公开会话列举与消息读取,未给出与 Codex 等价的全文检索接口;本项目因此检索应用的可见摘要。摘要仅负责展示,执行上下文始终由官方 SDK 管理。历史不检索推理、工具输出或过程答复,文件搜索不检索源码正文。
17
+
18
+ ## 分页与故障
19
+
20
+ - 标题每页 30 条;历史每批最多检查 10 个本地候选,并发上限 4,候选仅取首个精确命中。无匹配的候选页自动继续读取,直到找到命中、出现部分故障或范围耗尽,不能把较早任务误报成无结果。
21
+ - 综合游标绑定查询、类别、归档与引擎集合;切换依赖重置弹窗分页和定位状态,Query key 同时包含引擎集合。
22
+ - 单引擎失败保留健康源命中,通过 `unavailableEngines` 返回失败源,界面提示部分结果加载失败;精确匹配保留错误,取消不能转成部分成功。
23
+ - 精确匹配每页最多 30 条。Claude 续查绑定任务、查询与摘要页,记录页内命中偏移;新回合到来不改变固定的续查位置。Codex 兼容路径与 Claude 共用 UTF-16 匹配范围及摘要截取函数。
24
+ - 跳转以 `summary: true` 读取 inclusive 页,使用独立只读 Store,禁止覆盖实时任务 Store。定位失败保留结果并报错,不把任务首页当作命中。
25
+ - 消息身份变化时,仅在同回合完整摘要唯一匹配后重新绑定,禁止只按关键词误跳。保留消息级高亮与现有虚拟列表定位,高亮不改变消息尺寸。
26
+
27
+ ## 性能与取消
28
+
29
+ - 输入防抖 180ms,中文组合输入期间不查询;关闭弹窗取消请求并保留窗口内结果和滚动位置,不写磁盘、不轮询。
30
+ - Claude 只分页读取摘要,不读取工具正文或完整 transcript。旧格式按已有规则补建摘要,稳定读取不另建全文索引或监视器。
31
+ - HTTP 断连传播取消信号;桌面通过宿主 `cancelId` 在摘要页之间停止后续 I/O,不中断同宿主对话。有界队列饱和时取消帧为尽力交付,不承诺中断已开始的单次磁盘或官方内部操作。
32
+ - 文件搜索使用大小写不敏感的相对路径子串匹配,最多两个并发扫描、50 条结果;跳过符号链接、隐藏文件、生成目录和项目 `.gitignore`/`.ignore` 匹配项。
33
+ - 文件索引单根最多 16 MiB,总计最多 32 MiB/8 根,TTL 5 秒;超预算仍扫描目录尾部,只保留排序最前的 50 个命中。Web 定期释放 ignore 匹配缓存,不新增常驻监视器。
34
+ - 文件预览与系统打开复用既有根目录授权;前端明确提示文件结果截断。
35
+
36
+ ## 官方依据
37
+
38
+ - [Codex App Server](https://developers.openai.com/codex/app-server):结合固定的 0.163.0 协议与 `.local/project-paths.json` 指向的官方本地源码验证接口。
39
+ - [Claude 会话文档](https://code.claude.com/docs/en/agent-sdk/sessions):会话列举、消息读取与持久化;本项目 SDK 固定为 0.3.300。
40
+ - [node-ignore](https://github.com/kaelzhang/node-ignore):使用 Git ignore 语义处理项目忽略规则。
41
+ - [TanStack Query 请求取消](https://tanstack.com/query/latest/docs/framework/react/guides/query-cancellation):查询函数消费 `AbortSignal`。
42
+
43
+ ## 验证
44
+
45
+ - 根目录与桌面目录分别运行 `pnpm check`。
46
+ - `pnpm test:claude-host` 覆盖真实独立宿主重启后的搜索及定位,并断言搜索无新增模型请求。
47
+ - `src/cli-claude-start.test.ts` 覆盖真实 HTTP、SQLite、单/双引擎选择、Codex 离线与部分故障。
48
+ - `catalog-search.test.ts`、Claude `global-search.test.ts` 及 Rust `application/catalog_search.rs` 测试覆盖聚合、归属、取消和分页。
49
+ - 浏览器交互调试使用 Chrome DevTools MCP,通过 CDP 连接用户正在运行的 Chrome;自动测试不替代跨平台实机验收。
Binary file
@@ -18,7 +18,29 @@ Codexly 是目录、任务及其管理状态的唯一数据源。Web 和桌面
18
18
  | 对话正文与执行上下文 | 对应引擎 | 通过适配器按需读取、恢复和分叉 |
19
19
  | 导入标记 | managed_catalog_migration | 与全部导入记录在同一事务提交 |
20
20
 
21
- Web 使用现有的 `CODEX_HOME/codexly/state.sqlite3`,保持现有安装与隔离参数兼容;桌面端使用应用数据目录中的 `catalog.sqlite3`。两者共用 `packages/protocol/src/local-catalog-schema.json` 的表定义。Web 数据库操作在 SQLite Worker 执行,桌面端在阻塞池执行,流式通知不读取完整任务目录。
21
+ Web 与桌面端在同一台电脑、同一系统用户下共用 `~/.codexly/state.sqlite3`,同时共用 `engines/claude` 历史投影目录。`CODEX_HOME` 和 `--codex-home` 仅决定 Codex 引擎的原生配置、会话位置及旧数据发现,不再决定应用数据位置。Codex、Claude 自身的配置与认证仍由官方引擎维护。
22
+
23
+ | 平台 | 应用数据目录 |
24
+ | ------- | ------------------------ |
25
+ | macOS | `/Users/<用户>/.codexly` |
26
+ | Ubuntu | `/home/<用户>/.codexly` |
27
+ | Windows | `%USERPROFILE%\.codexly` |
28
+
29
+ Node 使用 [os.homedir()](https://nodejs.org/api/os.html#oshomedir),桌面端使用 [Tauri homeDir](https://v2.tauri.app/reference/javascript/api/namespacepath/#homedir) 对应的原生接口,禁止拼接启动目录或通过系统应用数据目录创建第二份业务数据。引擎安装资源、操作系统登录服务登记、平台日志与可再生缓存仍遵循对应平台的专用目录。
30
+
31
+ 两端共用 `packages/protocol/src/local-catalog-schema.json` 的表定义及 `app-storage-migration.json` 的导入 SQL。Web 数据库操作在 SQLite Worker 执行,桌面端在阻塞池执行;WAL、外键、5 秒 busy timeout 和短事务支持同机多进程访问,不增加后台同步轮询。切回窗口时,两端共用的恢复逻辑只使项目、任务、归档和置顶列表失效,后台不读取聊天正文。
32
+
33
+ ## 应用目录升级
34
+
35
+ 升级前退出旧版本的 Web 服务和桌面应用,再分别启动新版本。首次启动发现 `CODEX_HOME/codexly`、默认 `~/.codex/codexly` 和旧 Tauri 应用目录(macOS Application Support、Ubuntu XDG 数据目录、Windows Roaming AppData)。已经迁移的目录以目标数据库内的标记判断;不再反复导入旧记录。
36
+
37
+ - 若目标数据库尚不存在,使用 SQLite 的 [VACUUM INTO](https://www.sqlite.org/backup.html) 创建旧 Web 数据库的一致快照,包含 WAL 中已提交的数据。通过同目录临时文件和不覆盖目标的原子发布,避免并发启动替换已打开的数据库。
38
+ - 在共享事务内合并旧桌面目录与任务,并提交对应源目录的完成标记。保留目标目录中已有的管理状态;按规范化路径合并项目,同 provider/sessionId 的会话不重复创建。Windows 扩展路径前缀统一为普通路径;保留实际大小写与路径分隔符。
39
+ - 项目 ID 合并时复制对应附件、任务偏好及项目默认值到合并后的身份;已存在的目标文件优先。Claude 历史和其索引复制到共同的引擎目录。旧数据库、旧文件及已过时缓存保留在原位置,方便恢复;不复制活动 SQLite 的 db/wal/shm 文件组合。
40
+ - 文件复制或数据库约束失败时不标记该源完成,下次启动可重试。完成标记与导入记录在同一事务内;迁移后删除的任务不会在后续重启时复活。
41
+ - Web v34 通过数据库触发器维护旧设置、队列等业务表的外键投影。因此桌面端直接创建或删除目录时,Web 的关联写入仍有效。
42
+
43
+ 这属于同机共享存储。远程浏览器使用 Web 服务所在电脑的数据,不在浏览器设备上建立第二份数据库。
22
44
 
23
45
  公共 Project 暂时保留 `roots` 数组的传输形状,但输入、输出协议均要求恰好一项。两端选择器共用单选函数,选择新文件夹会替换旧选择。Git worktree 仍是任务的执行工作区,不增加项目根目录。
24
46
 
@@ -26,6 +48,14 @@ Web 使用现有的 `CODEX_HOME/codexly/state.sqlite3`,保持现有安装与
26
48
 
27
49
  Codex 适配边界负责翻译请求、响应、通知和审批请求中的任务引用。正文、工具文本和回合 ID 保持原值;不同 provider 的 session ID 不共享映射。适配器只为 Codex 任务执行请求,其他 provider 必须接入自己的执行适配器。
28
50
 
51
+ ### 任务标题与首条消息预览
52
+
53
+ 正式名称与首条输入预览独立保存。首次向未命名的 Codex 任务发送请求时,两端先持久化首个非空输入行(最多 1024 个 Unicode 字符),无正文时使用技能或附件名称。预览只写一次,后续消息不改写它,也不改变任务排序时间。列表、固定任务、详情和搜索按“正式名称 → 持久预览 → 新聊天”显示;预览不能冒充引擎协议的 `name`,因此自动标题成功后仍能替换预览,手动改名仍保持优先。
54
+
55
+ Web 与桌面共用 `local-catalog-schema.json` 中的 `previewSql`,通过独立的 `managed_task_previews` 表保存预览,删除任务时由外键一并清理。建表是幂等增量操作,兼容任一端先升级;不改变既有任务表的列顺序或管理字段。
56
+
57
+ 旧版本遗留的空标题任务在打开本地仓储时恢复:仅针对已有 Codex 会话绑定、正式名称和持久预览都缺失的记录,以只读方式按 session ID 查询原生索引中的有界预览。基线索引为 `state_5.sqlite`,目录使用 `CODEX_SQLITE_HOME`、`CODEX_HOME` 或默认 `~/.codex`;源索引缺失、占用或不兼容时保留离线目录能力,下次打开重试。恢复不导入或复活任务,不读取完整会话、不调用模型、不更改正式名称、排序、置顶或归档状态。正常列表读取不轮询执行引擎。
58
+
29
59
  ## 首次迁移
30
60
 
31
61
  1. 读取原目录、活动任务、归档任务以及既有 Web 项目记录。仅首次导入需要上游列表接口。
@@ -46,6 +76,7 @@ Codex 适配边界负责翻译请求、响应、通知和审批请求中的任
46
76
  ## 验证
47
77
 
48
78
  - `packages/server/src/local-catalog*.test.ts`:持久化、稳定分页、目录唯一性、迁移拆分与回滚、身份映射,以及引擎离线时的 HTTP 管理全流程。
79
+ - `local-catalog-preview.test.ts`、`local-catalog-title-restart.test.ts` 与 Rust `local_catalog::preview_tests`:自动标题成功、失败和取消后的重启恢复,旧仓储升级补齐,以及正式名称、归档和排序保持。
49
80
  - Rust `local_catalog` 测试:本地生命周期、创建空任务不发送 RPC、执行请求与通知身份转换。
50
81
  - 单文件夹协议测试和共享选择器回归:拒绝多个根,不丢弃用户输入中的额外根后继续创建。
51
82
  - 两端运行完整测试、类型检查、静态检查及构建;浏览器验证通过 chrome-devtools-mcp 连接运行中的 Chrome。