@bryanhu/codexly 0.38.0 → 0.40.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 (624) hide show
  1. package/CHANGELOG.md +272 -474
  2. package/README.en.md +108 -0
  3. package/README.md +55 -118
  4. package/README.zh-CN.md +3 -148
  5. package/dist/chunk-5YNWOUR2.js +2 -0
  6. package/dist/{chunk-RWMSDM4X.js → chunk-BXOL6SUO.js} +1 -1
  7. package/dist/chunk-PZZN5FBZ.js +934 -0
  8. package/dist/chunk-Q2VQAUSH.js +19 -0
  9. package/dist/chunk-S7LPESTQ.js +3 -0
  10. package/dist/{chunk-LGFUYNXR.js → chunk-UFZBNM7A.js} +4 -3
  11. package/dist/chunk-UR6FEWGU.js +37 -0
  12. package/dist/chunk-VBTBWY72.js +8 -0
  13. package/dist/chunk-WE42CHL5.js +26 -0
  14. package/dist/cli.js +6 -6
  15. package/dist/client/index.js +2 -2
  16. package/dist/command-SFIOITEA.js +88 -0
  17. package/dist/core/index.js +1 -1
  18. package/dist/historical-attachment-worker.js +2 -2
  19. package/dist/protocol/index.js +1 -1
  20. package/dist/providers/claude/index.js +1 -0
  21. package/dist/providers/codex/index.js +1 -1
  22. package/dist/server/index.js +1 -1
  23. package/dist/sqlite-state-worker.js +58 -30
  24. package/dist/web/.vite/manifest.json +597 -356
  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-BA9G7eND.js → abnfDiagram-N423BO3Z-CEEQQmQS.js} +1 -1
  28. package/dist/web/assets/abnfDiagram-N423BO3Z-CEEQQmQS.js.br +0 -0
  29. package/dist/web/assets/abnfDiagram-N423BO3Z-CEEQQmQS.js.gz +0 -0
  30. package/dist/web/assets/agent-settings-panel-BpLGmoGs.js +1 -0
  31. package/dist/web/assets/agent-settings-panel-BpLGmoGs.js.br +0 -0
  32. package/dist/web/assets/agent-settings-panel-BpLGmoGs.js.gz +0 -0
  33. package/dist/web/assets/api-connection-fields-BibbcpNv.js +1 -0
  34. package/dist/web/assets/api-connection-fields-BibbcpNv.js.br +0 -0
  35. package/dist/web/assets/api-connection-fields-BibbcpNv.js.gz +0 -0
  36. package/dist/web/assets/{app-update-dialog-BsIh1VPg.js → app-update-dialog-DQoACHXt.js} +1 -1
  37. package/dist/web/assets/app-update-dialog-DQoACHXt.js.br +0 -0
  38. package/dist/web/assets/app-update-dialog-DQoACHXt.js.gz +0 -0
  39. package/dist/web/assets/approval-mode-CKJY6q52.js +1 -0
  40. package/dist/web/assets/approval-mode-CKJY6q52.js.br +0 -0
  41. package/dist/web/assets/approval-mode-CKJY6q52.js.gz +0 -0
  42. package/dist/web/assets/{architectureDiagram-T3A2C74G-hY1IIQ-y.js → architectureDiagram-T3A2C74G-CF2Ovr5z.js} +1 -1
  43. package/dist/web/assets/architectureDiagram-T3A2C74G-CF2Ovr5z.js.br +0 -0
  44. package/dist/web/assets/architectureDiagram-T3A2C74G-CF2Ovr5z.js.gz +0 -0
  45. package/dist/web/assets/arrow-down-BiCRjuX3.js +1 -0
  46. package/dist/web/assets/arrow-down-BiCRjuX3.js.br +0 -0
  47. package/dist/web/assets/arrow-down-BiCRjuX3.js.gz +0 -0
  48. package/dist/web/assets/arrow-up-right-1gv4rBr2.js +1 -0
  49. package/dist/web/assets/arrow-up-right-1gv4rBr2.js.br +0 -0
  50. package/dist/web/assets/arrow-up-right-1gv4rBr2.js.gz +0 -0
  51. package/dist/web/assets/{background-image-picker-B1xDUft3.js → background-image-picker-BSsADQTT.js} +1 -1
  52. package/dist/web/assets/background-image-picker-BSsADQTT.js.br +0 -0
  53. package/dist/web/assets/background-image-picker-BSsADQTT.js.gz +0 -0
  54. package/dist/web/assets/{chunk-5RXB4S5H-fg31GjQR.js → chunk-5RXB4S5H-Bu1iYp4t.js} +1 -1
  55. package/dist/web/assets/chunk-5RXB4S5H-Bu1iYp4t.js.br +0 -0
  56. package/dist/web/assets/chunk-5RXB4S5H-Bu1iYp4t.js.gz +0 -0
  57. package/dist/web/assets/{chunk-6Q2QTUOP-UGVxaGe-.js → chunk-6Q2QTUOP-8pETCK89.js} +1 -1
  58. package/dist/web/assets/chunk-6Q2QTUOP-8pETCK89.js.br +0 -0
  59. package/dist/web/assets/chunk-6Q2QTUOP-8pETCK89.js.gz +0 -0
  60. package/dist/web/assets/{chunk-GF5L2VYU-iTLU6Gbu.js → chunk-GF5L2VYU-Clmi3b75.js} +1 -1
  61. package/dist/web/assets/chunk-GF5L2VYU-Clmi3b75.js.br +0 -0
  62. package/dist/web/assets/chunk-GF5L2VYU-Clmi3b75.js.gz +0 -0
  63. package/dist/web/assets/{chunk-JQJVKLGR-DzWAKhHq.js → chunk-JQJVKLGR-TByUBa_A.js} +1 -1
  64. package/dist/web/assets/chunk-JQJVKLGR-TByUBa_A.js.br +0 -0
  65. package/dist/web/assets/chunk-JQJVKLGR-TByUBa_A.js.gz +0 -0
  66. package/dist/web/assets/{classDiagram-JCYQIIEL-Cc_4r5xo.js → classDiagram-JCYQIIEL-CxEYeVQh.js} +1 -1
  67. package/dist/web/assets/classDiagram-JCYQIIEL-CxEYeVQh.js.br +0 -0
  68. package/dist/web/assets/classDiagram-JCYQIIEL-CxEYeVQh.js.gz +0 -0
  69. package/dist/web/assets/{classDiagram-v2-OCEON4UE-Cc_4r5xo.js → classDiagram-v2-OCEON4UE-CxEYeVQh.js} +1 -1
  70. package/dist/web/assets/classDiagram-v2-OCEON4UE-CxEYeVQh.js.br +0 -0
  71. package/dist/web/assets/classDiagram-v2-OCEON4UE-CxEYeVQh.js.gz +0 -0
  72. package/dist/web/assets/claude-extensions-pane-CQr8ljAY.js +1 -0
  73. package/dist/web/assets/claude-extensions-pane-CQr8ljAY.js.br +0 -0
  74. package/dist/web/assets/claude-extensions-pane-CQr8ljAY.js.gz +0 -0
  75. package/dist/web/assets/claude-settings-panel-DXKvK9Cx.js +1 -0
  76. package/dist/web/assets/claude-settings-panel-DXKvK9Cx.js.br +0 -0
  77. package/dist/web/assets/claude-settings-panel-DXKvK9Cx.js.gz +0 -0
  78. package/dist/web/assets/clipboard-C55zlT9y.js +1 -0
  79. package/dist/web/assets/clipboard-C55zlT9y.js.br +0 -0
  80. package/dist/web/assets/clipboard-C55zlT9y.js.gz +0 -0
  81. package/dist/web/assets/{code-highlighter-kiC_chgH.js → code-highlighter-DLfpC-2j.js} +1 -1
  82. package/dist/web/assets/code-highlighter-DLfpC-2j.js.br +0 -0
  83. package/dist/web/assets/code-highlighter-DLfpC-2j.js.gz +0 -0
  84. package/dist/web/assets/codex-resources-pane-wsrvgVrc.js +1 -0
  85. package/dist/web/assets/codex-resources-pane-wsrvgVrc.js.br +0 -0
  86. package/dist/web/assets/codex-resources-pane-wsrvgVrc.js.gz +0 -0
  87. package/dist/web/assets/commit-settings-panel-CDFZi6_m.js +1 -0
  88. package/dist/web/assets/commit-settings-panel-CDFZi6_m.js.br +0 -0
  89. package/dist/web/assets/commit-settings-panel-CDFZi6_m.js.gz +0 -0
  90. package/dist/web/assets/composer-git-menu-RXjhQAjt.js +1 -0
  91. package/dist/web/assets/composer-git-menu-RXjhQAjt.js.br +0 -0
  92. package/dist/web/assets/composer-git-menu-RXjhQAjt.js.gz +0 -0
  93. package/dist/web/assets/{cynefinDiagram-MW4NZA55-CarrAQe_.js → cynefinDiagram-MW4NZA55-BgrsE095.js} +1 -1
  94. package/dist/web/assets/cynefinDiagram-MW4NZA55-BgrsE095.js.br +0 -0
  95. package/dist/web/assets/cynefinDiagram-MW4NZA55-BgrsE095.js.gz +0 -0
  96. package/dist/web/assets/{diagram-7IWD3JNH-CHgQ34Br.js → diagram-7IWD3JNH-d6DRTRQU.js} +1 -1
  97. package/dist/web/assets/diagram-7IWD3JNH-d6DRTRQU.js.br +0 -0
  98. package/dist/web/assets/diagram-7IWD3JNH-d6DRTRQU.js.gz +0 -0
  99. package/dist/web/assets/{diagram-LBJQPF4R-Do0sclzV.js → diagram-LBJQPF4R-BTsB33l7.js} +1 -1
  100. package/dist/web/assets/diagram-LBJQPF4R-BTsB33l7.js.br +0 -0
  101. package/dist/web/assets/diagram-LBJQPF4R-BTsB33l7.js.gz +0 -0
  102. package/dist/web/assets/{diagram-Q27KOJAE-CuX25bnK.js → diagram-Q27KOJAE-BR31NpE4.js} +1 -1
  103. package/dist/web/assets/diagram-Q27KOJAE-BR31NpE4.js.br +0 -0
  104. package/dist/web/assets/diagram-Q27KOJAE-BR31NpE4.js.gz +0 -0
  105. package/dist/web/assets/{diagram-UB23O5K3-C8vf7TKH.js → diagram-UB23O5K3-Giiek6vS.js} +1 -1
  106. package/dist/web/assets/diagram-UB23O5K3-Giiek6vS.js.br +0 -0
  107. package/dist/web/assets/diagram-UB23O5K3-Giiek6vS.js.gz +0 -0
  108. package/dist/web/assets/{dist-DHnVkR1t.js → dist-DKGpvUu3.js} +3 -3
  109. package/dist/web/assets/dist-DKGpvUu3.js.br +0 -0
  110. package/dist/web/assets/dist-DKGpvUu3.js.gz +0 -0
  111. package/dist/web/assets/download-DSulXOCZ.js +1 -0
  112. package/dist/web/assets/download-DSulXOCZ.js.br +0 -0
  113. package/dist/web/assets/download-DSulXOCZ.js.gz +0 -0
  114. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-DctRYehy.js → ebnfDiagram-BXEA7PRR-D1qXqma3.js} +1 -1
  115. package/dist/web/assets/ebnfDiagram-BXEA7PRR-D1qXqma3.js.br +0 -0
  116. package/dist/web/assets/ebnfDiagram-BXEA7PRR-D1qXqma3.js.gz +0 -0
  117. package/dist/web/assets/engine-setup-gate-BMxHgUPX.js +1 -0
  118. package/dist/web/assets/engine-setup-gate-BMxHgUPX.js.br +0 -0
  119. package/dist/web/assets/engine-setup-gate-BMxHgUPX.js.gz +0 -0
  120. package/dist/web/assets/{erDiagram-JOGREHBK-BkfLzWvS.js → erDiagram-JOGREHBK-C3UtJXJx.js} +1 -1
  121. package/dist/web/assets/erDiagram-JOGREHBK-C3UtJXJx.js.br +0 -0
  122. package/dist/web/assets/erDiagram-JOGREHBK-C3UtJXJx.js.gz +0 -0
  123. package/dist/web/assets/extension-list-FpN59xyu.js +1 -0
  124. package/dist/web/assets/extension-list-FpN59xyu.js.br +0 -0
  125. package/dist/web/assets/extension-list-FpN59xyu.js.gz +0 -0
  126. package/dist/web/assets/extension-operation-C25lNEcc.js +1 -0
  127. package/dist/web/assets/extension-operation-C25lNEcc.js.br +3 -0
  128. package/dist/web/assets/extension-operation-C25lNEcc.js.gz +0 -0
  129. package/dist/web/assets/external-link-DTvUbh5p.js +1 -0
  130. package/dist/web/assets/external-link-DTvUbh5p.js.br +0 -0
  131. package/dist/web/assets/external-link-DTvUbh5p.js.gz +0 -0
  132. package/dist/web/assets/file-navigation-view-preference-D5PlYpLl.js +1 -0
  133. package/dist/web/assets/file-navigation-view-preference-D5PlYpLl.js.br +0 -0
  134. package/dist/web/assets/file-navigation-view-preference-D5PlYpLl.js.gz +0 -0
  135. package/dist/web/assets/file-review-dialog-B0m1uX8I.js +2 -0
  136. package/dist/web/assets/file-review-dialog-B0m1uX8I.js.br +0 -0
  137. package/dist/web/assets/file-review-dialog-B0m1uX8I.js.gz +0 -0
  138. package/dist/web/assets/{flowDiagram-UKHOOZJN-CQWRJfj_.js → flowDiagram-UKHOOZJN-CkmFxY4S.js} +1 -1
  139. package/dist/web/assets/flowDiagram-UKHOOZJN-CkmFxY4S.js.br +0 -0
  140. package/dist/web/assets/flowDiagram-UKHOOZJN-CkmFxY4S.js.gz +0 -0
  141. package/dist/web/assets/git-commit-review-BzmpTmCu.js +2 -0
  142. package/dist/web/assets/git-commit-review-BzmpTmCu.js.br +0 -0
  143. package/dist/web/assets/git-commit-review-BzmpTmCu.js.gz +0 -0
  144. package/dist/web/assets/git-history-panel-D0NtL4Ey.js +1 -0
  145. package/dist/web/assets/git-history-panel-D0NtL4Ey.js.br +0 -0
  146. package/dist/web/assets/git-history-panel-D0NtL4Ey.js.gz +0 -0
  147. package/dist/web/assets/global-search-dialog-CfUFXT2P.js +2 -0
  148. package/dist/web/assets/global-search-dialog-CfUFXT2P.js.br +0 -0
  149. package/dist/web/assets/global-search-dialog-CfUFXT2P.js.gz +0 -0
  150. package/dist/web/assets/global-settings-about-0K0nGRC-.js +1 -0
  151. package/dist/web/assets/global-settings-about-0K0nGRC-.js.br +0 -0
  152. package/dist/web/assets/global-settings-about-0K0nGRC-.js.gz +0 -0
  153. package/dist/web/assets/global-settings-fields-Bguzhix9.js +1 -0
  154. package/dist/web/assets/global-settings-fields-Bguzhix9.js.br +0 -0
  155. package/dist/web/assets/global-settings-fields-Bguzhix9.js.gz +0 -0
  156. package/dist/web/assets/global-settings-page-BpfeYCYG.js +2 -0
  157. package/dist/web/assets/global-settings-page-BpfeYCYG.js.br +0 -0
  158. package/dist/web/assets/global-settings-page-BpfeYCYG.js.gz +0 -0
  159. package/dist/web/assets/global-settings-pets-B43_pFUh.js +1 -0
  160. package/dist/web/assets/global-settings-pets-B43_pFUh.js.br +0 -0
  161. package/dist/web/assets/global-settings-pets-B43_pFUh.js.gz +0 -0
  162. package/dist/web/assets/{highlighted-body-OFNGDK62-CeVKUhHG.js → highlighted-body-OFNGDK62-DWnfzzs7.js} +1 -1
  163. package/dist/web/assets/highlighted-body-OFNGDK62-DWnfzzs7.js.br +0 -0
  164. package/dist/web/assets/highlighted-body-OFNGDK62-DWnfzzs7.js.gz +0 -0
  165. package/dist/web/assets/history-task-timeline-BtWNWjvT.js +1 -0
  166. package/dist/web/assets/history-task-timeline-BtWNWjvT.js.br +0 -0
  167. package/dist/web/assets/history-task-timeline-BtWNWjvT.js.gz +0 -0
  168. package/dist/web/assets/{image-preview-Bez628xh.js → image-preview-DLbcm8V_.js} +2 -2
  169. package/dist/web/assets/image-preview-DLbcm8V_.js.br +0 -0
  170. package/dist/web/assets/image-preview-DLbcm8V_.js.gz +0 -0
  171. package/dist/web/assets/image-preview-content-B8t4zN2r.js +41 -0
  172. package/dist/web/assets/image-preview-content-B8t4zN2r.js.br +0 -0
  173. package/dist/web/assets/image-preview-content-B8t4zN2r.js.gz +0 -0
  174. package/dist/web/assets/index-BUna2uyD.js +4 -0
  175. package/dist/web/assets/index-BUna2uyD.js.br +0 -0
  176. package/dist/web/assets/index-BUna2uyD.js.gz +0 -0
  177. package/dist/web/assets/index-CB0Jmx2g.css +2 -0
  178. package/dist/web/assets/index-CB0Jmx2g.css.br +0 -0
  179. package/dist/web/assets/index-CB0Jmx2g.css.gz +0 -0
  180. package/dist/web/assets/{infoDiagram-6WML65LV-smD1e7u3.js → infoDiagram-6WML65LV-DuWGeyW3.js} +1 -1
  181. package/dist/web/assets/infoDiagram-6WML65LV-DuWGeyW3.js.br +0 -0
  182. package/dist/web/assets/infoDiagram-6WML65LV-DuWGeyW3.js.gz +0 -0
  183. package/dist/web/assets/{initial-deps-CW5Jl6i2.js → initial-deps-BeVJyoJH.js} +1 -1
  184. package/dist/web/assets/initial-deps-BeVJyoJH.js.br +0 -0
  185. package/dist/web/assets/initial-deps-BeVJyoJH.js.gz +0 -0
  186. package/dist/web/assets/initial-deps-CRaxZAOH.js +41 -0
  187. package/dist/web/assets/initial-deps-CRaxZAOH.js.br +0 -0
  188. package/dist/web/assets/initial-deps-CRaxZAOH.js.gz +0 -0
  189. package/dist/web/assets/{initial-deps-Cppvl2Gz.js → initial-deps-CilSILfP.js} +1 -1
  190. package/dist/web/assets/initial-deps-CilSILfP.js.br +0 -0
  191. package/dist/web/assets/initial-deps-CilSILfP.js.gz +0 -0
  192. package/dist/web/assets/initial-deps-CyMAtgCd.js +2 -0
  193. package/dist/web/assets/initial-deps-CyMAtgCd.js.br +0 -0
  194. package/dist/web/assets/initial-deps-CyMAtgCd.js.gz +0 -0
  195. package/dist/web/assets/{initial-deps-C0_XYRrC.js → initial-deps-DNAUCF1H.js} +1 -1
  196. package/dist/web/assets/initial-deps-DNAUCF1H.js.br +0 -0
  197. package/dist/web/assets/initial-deps-DNAUCF1H.js.gz +0 -0
  198. package/dist/web/assets/installed-skills-pane-Cp1c9O0j.js +1 -0
  199. package/dist/web/assets/installed-skills-pane-Cp1c9O0j.js.br +0 -0
  200. package/dist/web/assets/installed-skills-pane-Cp1c9O0j.js.gz +0 -0
  201. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-BMJ0kCX-.js → ishikawaDiagram-WSZJBQD7-CKSQLCKs.js} +1 -1
  202. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-CKSQLCKs.js.br +0 -0
  203. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-CKSQLCKs.js.gz +0 -0
  204. package/dist/web/assets/{kanban-definition-27J2QSJJ-pQQ3ybGq.js → kanban-definition-27J2QSJJ-Dy_spa9A.js} +1 -1
  205. package/dist/web/assets/kanban-definition-27J2QSJJ-Dy_spa9A.js.br +0 -0
  206. package/dist/web/assets/kanban-definition-27J2QSJJ-Dy_spa9A.js.gz +0 -0
  207. package/dist/web/assets/maximize-2-Fh0PepSo.js +1 -0
  208. package/dist/web/assets/maximize-2-Fh0PepSo.js.br +0 -0
  209. package/dist/web/assets/maximize-2-Fh0PepSo.js.gz +0 -0
  210. package/dist/web/assets/mcp-management-pane-C95hsTpS.js +1 -0
  211. package/dist/web/assets/mcp-management-pane-C95hsTpS.js.br +0 -0
  212. package/dist/web/assets/mcp-management-pane-C95hsTpS.js.gz +0 -0
  213. package/dist/web/assets/mermaid-GHXKKRXX-CVt2koup.js +1 -0
  214. package/dist/web/assets/mermaid-GHXKKRXX-CVt2koup.js.br +0 -0
  215. package/dist/web/assets/mermaid-GHXKKRXX-CVt2koup.js.gz +0 -0
  216. package/dist/web/assets/message-assistant-directive-DMoVi7q3.js +3 -0
  217. package/dist/web/assets/message-assistant-directive-DMoVi7q3.js.br +0 -0
  218. package/dist/web/assets/message-assistant-directive-DMoVi7q3.js.gz +0 -0
  219. package/dist/web/assets/{message-response-DTlvlBMa.js → message-response-BswwJ_0M.js} +25 -25
  220. package/dist/web/assets/message-response-BswwJ_0M.js.br +0 -0
  221. package/dist/web/assets/message-response-BswwJ_0M.js.gz +0 -0
  222. package/dist/web/assets/{mindmap-definition-FAOFIHXS-CgQ5woK5.js → mindmap-definition-FAOFIHXS-BT3bfYzH.js} +1 -1
  223. package/dist/web/assets/mindmap-definition-FAOFIHXS-BT3bfYzH.js.br +0 -0
  224. package/dist/web/assets/mindmap-definition-FAOFIHXS-BT3bfYzH.js.gz +0 -0
  225. package/dist/web/assets/model-context-window-input-B1WfG4S_.js +1 -0
  226. package/dist/web/assets/model-context-window-input-B1WfG4S_.js.br +0 -0
  227. package/dist/web/assets/model-context-window-input-B1WfG4S_.js.gz +0 -0
  228. package/dist/web/assets/official-plugin-sheet-DIa2udRz.js +1 -0
  229. package/dist/web/assets/official-plugin-sheet-DIa2udRz.js.br +0 -0
  230. package/dist/web/assets/official-plugin-sheet-DIa2udRz.js.gz +0 -0
  231. package/dist/web/assets/official-plugins-pane-DcZytL9D.css +1 -0
  232. package/dist/web/assets/official-plugins-pane-DcZytL9D.css.br +0 -0
  233. package/dist/web/assets/official-plugins-pane-DcZytL9D.css.gz +0 -0
  234. package/dist/web/assets/official-plugins-pane-DoRHj17k.js +2 -0
  235. package/dist/web/assets/official-plugins-pane-DoRHj17k.js.br +0 -0
  236. package/dist/web/assets/official-plugins-pane-DoRHj17k.js.gz +0 -0
  237. package/dist/web/assets/open-project-path-tkV3GG0_.js +1 -0
  238. package/dist/web/assets/open-project-path-tkV3GG0_.js.br +0 -0
  239. package/dist/web/assets/open-project-path-tkV3GG0_.js.gz +0 -0
  240. package/dist/web/assets/{patch-diff-viewer-fv2hVYyb.js → patch-diff-viewer-_6e4j2Xu.js} +2 -2
  241. package/dist/web/assets/patch-diff-viewer-_6e4j2Xu.js.br +0 -0
  242. package/dist/web/assets/{patch-diff-viewer-fv2hVYyb.js.gz → patch-diff-viewer-_6e4j2Xu.js.gz} +0 -0
  243. package/dist/web/assets/{pdf-preview-CEvfJiZa.js → pdf-preview-C7dU4MfB.js} +3 -3
  244. package/dist/web/assets/pdf-preview-C7dU4MfB.js.br +0 -0
  245. package/dist/web/assets/pdf-preview-C7dU4MfB.js.gz +0 -0
  246. package/dist/web/assets/{pegDiagram-VL7TDLO6-CEECg9Qv.js → pegDiagram-VL7TDLO6-BDpdrr1s.js} +1 -1
  247. package/dist/web/assets/pegDiagram-VL7TDLO6-BDpdrr1s.js.br +0 -0
  248. package/dist/web/assets/pegDiagram-VL7TDLO6-BDpdrr1s.js.gz +0 -0
  249. package/dist/web/assets/personalization-instructions-editor-CrllgQKz.js +1 -0
  250. package/dist/web/assets/personalization-instructions-editor-CrllgQKz.js.br +0 -0
  251. package/dist/web/assets/personalization-instructions-editor-CrllgQKz.js.gz +0 -0
  252. package/dist/web/assets/personalization-settings-panel-Bn69EkZ8.js +1 -0
  253. package/dist/web/assets/personalization-settings-panel-Bn69EkZ8.js.br +0 -0
  254. package/dist/web/assets/personalization-settings-panel-Bn69EkZ8.js.gz +0 -0
  255. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-C3L4IYmx.js → pieDiagram-7S7Q4E2Y-DCypkhSo.js} +1 -1
  256. package/dist/web/assets/pieDiagram-7S7Q4E2Y-DCypkhSo.js.br +0 -0
  257. package/dist/web/assets/pieDiagram-7S7Q4E2Y-DCypkhSo.js.gz +0 -0
  258. package/dist/web/assets/{project-file-popup-page-rkdge4He.js → project-file-popup-page-zQmKyPor.js} +1 -1
  259. package/dist/web/assets/project-file-popup-page-zQmKyPor.js.br +0 -0
  260. package/dist/web/assets/project-file-popup-page-zQmKyPor.js.gz +0 -0
  261. package/dist/web/assets/project-source-panel-B073gmHb.js +2 -0
  262. package/dist/web/assets/project-source-panel-B073gmHb.js.br +0 -0
  263. package/dist/web/assets/project-source-panel-B073gmHb.js.gz +0 -0
  264. package/dist/web/assets/prompt-input-CppQfZJu.js +1 -0
  265. package/dist/web/assets/prompt-input-CppQfZJu.js.br +0 -0
  266. package/dist/web/assets/prompt-input-CppQfZJu.js.gz +0 -0
  267. package/dist/web/assets/provider-connection-panel-stjpuDi-.js +1 -0
  268. package/dist/web/assets/provider-connection-panel-stjpuDi-.js.br +0 -0
  269. package/dist/web/assets/provider-connection-panel-stjpuDi-.js.gz +0 -0
  270. package/dist/web/assets/provider-connection-queries-Bi1sUodL.js +1 -0
  271. package/dist/web/assets/provider-connection-queries-Bi1sUodL.js.br +0 -0
  272. package/dist/web/assets/provider-connection-queries-Bi1sUodL.js.gz +0 -0
  273. package/dist/web/assets/{railroadDiagram-AXF67PYL-CXSGJisB.js → railroadDiagram-AXF67PYL-d16J9qzD.js} +1 -1
  274. package/dist/web/assets/railroadDiagram-AXF67PYL-d16J9qzD.js.br +0 -0
  275. package/dist/web/assets/railroadDiagram-AXF67PYL-d16J9qzD.js.gz +0 -0
  276. package/dist/web/assets/{requirementDiagram-LRYGKXZP-uB3tW141.js → requirementDiagram-LRYGKXZP-C9hUbT7e.js} +1 -1
  277. package/dist/web/assets/requirementDiagram-LRYGKXZP-C9hUbT7e.js.br +0 -0
  278. package/dist/web/assets/requirementDiagram-LRYGKXZP-C9hUbT7e.js.gz +0 -0
  279. package/dist/web/assets/resources-en-yeMes3Ah.js +1 -0
  280. package/dist/web/assets/resources-en-yeMes3Ah.js.br +0 -0
  281. package/dist/web/assets/resources-en-yeMes3Ah.js.gz +0 -0
  282. package/dist/web/assets/scan-DYCzmZAH.js +1 -0
  283. package/dist/web/assets/scan-DYCzmZAH.js.br +2 -0
  284. package/dist/web/assets/scan-DYCzmZAH.js.gz +0 -0
  285. package/dist/web/assets/scheduled-task-date-time-picker-BDHyAcNa.js +1 -0
  286. package/dist/web/assets/scheduled-task-date-time-picker-BDHyAcNa.js.br +0 -0
  287. package/dist/web/assets/scheduled-task-date-time-picker-BDHyAcNa.js.gz +0 -0
  288. package/dist/web/assets/{scheduled-task-floating-ui~scheduled-task-date-time-picker-wwPq7k9m.js → scheduled-task-floating-ui~scheduled-task-date-time-picker-cReLi3tI.js} +1 -1
  289. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-cReLi3tI.js.br +0 -0
  290. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-cReLi3tI.js.gz +0 -0
  291. package/dist/web/assets/scheduled-tasks-container-BrEi6mNO.js +2 -0
  292. package/dist/web/assets/scheduled-tasks-container-BrEi6mNO.js.br +0 -0
  293. package/dist/web/assets/scheduled-tasks-container-BrEi6mNO.js.gz +0 -0
  294. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BikVJyrh.js → sequenceDiagram-SI44F4Z6-CGA84wrP.js} +1 -1
  295. package/dist/web/assets/sequenceDiagram-SI44F4Z6-CGA84wrP.js.br +0 -0
  296. package/dist/web/assets/sequenceDiagram-SI44F4Z6-CGA84wrP.js.gz +0 -0
  297. package/dist/web/assets/server-DkIJGjQG.js +1 -0
  298. package/dist/web/assets/server-DkIJGjQG.js.br +2 -0
  299. package/dist/web/assets/server-DkIJGjQG.js.gz +0 -0
  300. package/dist/web/assets/settings-mutation-status-Dke6ycgH.js +1 -0
  301. package/dist/web/assets/settings-mutation-status-Dke6ycgH.js.br +0 -0
  302. package/dist/web/assets/settings-mutation-status-Dke6ycgH.js.gz +0 -0
  303. package/dist/web/assets/settings-save-status-CUoSP7m5.js +1 -0
  304. package/dist/web/assets/settings-save-status-CUoSP7m5.js.br +0 -0
  305. package/dist/web/assets/settings-save-status-CUoSP7m5.js.gz +0 -0
  306. package/dist/web/assets/{shiki-bundle-CHd-S0Yk.js → shiki-bundle-DoOIe8qx.js} +1 -1
  307. package/dist/web/assets/shiki-bundle-DoOIe8qx.js.br +2 -0
  308. package/dist/web/assets/shiki-bundle-DoOIe8qx.js.gz +0 -0
  309. package/dist/web/assets/skills-market-container-BoEyKoRt.css +1 -0
  310. package/dist/web/assets/skills-market-container-BoEyKoRt.css.br +0 -0
  311. package/dist/web/assets/skills-market-container-BoEyKoRt.css.gz +0 -0
  312. package/dist/web/assets/skills-market-container-PCo27WKC.js +2 -0
  313. package/dist/web/assets/skills-market-container-PCo27WKC.js.br +0 -0
  314. package/dist/web/assets/skills-market-container-PCo27WKC.js.gz +0 -0
  315. package/dist/web/assets/sliders-horizontal-DFgw0FeX.js +1 -0
  316. package/dist/web/assets/sliders-horizontal-DFgw0FeX.js.br +0 -0
  317. package/dist/web/assets/sliders-horizontal-DFgw0FeX.js.gz +0 -0
  318. package/dist/web/assets/{split-workspace-menu-content-DgbECHxu.js → split-workspace-menu-content-Co-x9yyy.js} +1 -1
  319. package/dist/web/assets/split-workspace-menu-content-Co-x9yyy.js.br +2 -0
  320. package/dist/web/assets/split-workspace-menu-content-Co-x9yyy.js.gz +0 -0
  321. package/dist/web/assets/{stateDiagram-OKZ733FA-CBWRnaGO.js → stateDiagram-OKZ733FA-D0MVn7g1.js} +1 -1
  322. package/dist/web/assets/stateDiagram-OKZ733FA-D0MVn7g1.js.br +0 -0
  323. package/dist/web/assets/stateDiagram-OKZ733FA-D0MVn7g1.js.gz +0 -0
  324. package/dist/web/assets/{stateDiagram-v2-UEYNNEHI-CJYWLmtB.js → stateDiagram-v2-UEYNNEHI-TUsb_3yM.js} +1 -1
  325. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-TUsb_3yM.js.br +0 -0
  326. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-TUsb_3yM.js.gz +0 -0
  327. package/dist/web/assets/{swimlanesDiagram-ULZ7WXOC-5agQ3ner.js → swimlanesDiagram-ULZ7WXOC-8Qb6Pp_Z.js} +1 -1
  328. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-8Qb6Pp_Z.js.br +0 -0
  329. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-8Qb6Pp_Z.js.gz +0 -0
  330. package/dist/web/assets/task-timeline-process-history-CZep5llt.js +1 -0
  331. package/dist/web/assets/task-timeline-process-history-CZep5llt.js.br +0 -0
  332. package/dist/web/assets/task-timeline-process-history-CZep5llt.js.gz +0 -0
  333. package/dist/web/assets/{timeline-definition-Z64GVDOM-D_09Q10V.js → timeline-definition-Z64GVDOM-DRC7HLeH.js} +1 -1
  334. package/dist/web/assets/timeline-definition-Z64GVDOM-DRC7HLeH.js.br +0 -0
  335. package/dist/web/assets/timeline-definition-Z64GVDOM-DRC7HLeH.js.gz +0 -0
  336. package/dist/web/assets/upload-BypRc41z.js +1 -0
  337. package/dist/web/assets/upload-BypRc41z.js.br +0 -0
  338. package/dist/web/assets/upload-BypRc41z.js.gz +0 -0
  339. package/dist/web/assets/useMutationState-CuY6Z3bo.js +1 -0
  340. package/dist/web/assets/useMutationState-CuY6Z3bo.js.br +0 -0
  341. package/dist/web/assets/useMutationState-CuY6Z3bo.js.gz +0 -0
  342. package/dist/web/assets/utils-BjjzKOgD.js +1 -0
  343. package/dist/web/assets/utils-BjjzKOgD.js.br +0 -0
  344. package/dist/web/assets/utils-BjjzKOgD.js.gz +0 -0
  345. package/dist/web/assets/{vennDiagram-T6HMQDX7-3WtBk1Fg.js → vennDiagram-T6HMQDX7-B5BRVmyv.js} +1 -1
  346. package/dist/web/assets/vennDiagram-T6HMQDX7-B5BRVmyv.js.br +0 -0
  347. package/dist/web/assets/vennDiagram-T6HMQDX7-B5BRVmyv.js.gz +0 -0
  348. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-DBIzys3u.js → wardleyDiagram-T6FBY63Y-BVuPKOmW.js} +1 -1
  349. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BVuPKOmW.js.br +0 -0
  350. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BVuPKOmW.js.gz +0 -0
  351. package/dist/web/assets/workbench-inspector-changes-C-xC1l-l.js +1 -0
  352. package/dist/web/assets/workbench-inspector-changes-C-xC1l-l.js.br +0 -0
  353. package/dist/web/assets/workbench-inspector-changes-C-xC1l-l.js.gz +0 -0
  354. package/dist/web/assets/{workbench-pet-canvas-B5jypDil.js → workbench-pet-canvas-DfV_J-9g.js} +1 -1
  355. package/dist/web/assets/workbench-pet-canvas-DfV_J-9g.js.br +0 -0
  356. package/dist/web/assets/workbench-pet-canvas-DfV_J-9g.js.gz +0 -0
  357. package/dist/web/assets/workbench-shell-BjJSD8dp.js +17 -0
  358. package/dist/web/assets/workbench-shell-BjJSD8dp.js.br +0 -0
  359. package/dist/web/assets/workbench-shell-BjJSD8dp.js.gz +0 -0
  360. package/dist/web/assets/{xychartDiagram-ELKLHX3M-DwDj5q-W.js → xychartDiagram-ELKLHX3M-Cyq1aXDR.js} +1 -1
  361. package/dist/web/assets/xychartDiagram-ELKLHX3M-Cyq1aXDR.js.br +0 -0
  362. package/dist/web/assets/xychartDiagram-ELKLHX3M-Cyq1aXDR.js.gz +0 -0
  363. package/dist/web/index.html +8 -8
  364. package/dist/web/index.html.br +0 -0
  365. package/dist/web/index.html.gz +0 -0
  366. package/docs/README.md +49 -0
  367. package/docs/agent-engines.md +154 -0
  368. package/docs/conversation-performance.md +37 -0
  369. package/docs/faq.md +63 -0
  370. package/docs/getting-started.en.md +54 -0
  371. package/docs/getting-started.md +54 -0
  372. package/docs/git-workflow.md +10 -0
  373. package/docs/global-search.md +49 -0
  374. package/docs/images/codexly-preview.png +0 -0
  375. package/docs/local-catalog.md +23 -1
  376. package/docs/model-context-window.md +25 -4
  377. package/docs/model-discovery.md +19 -5
  378. package/docs/scheduled-task-idempotency.md +28 -0
  379. package/docs/text-file-editing.md +97 -0
  380. package/docs/usage.en.md +65 -0
  381. package/docs/usage.md +67 -0
  382. package/docs/web-autostart.md +6 -2
  383. package/docs/web-autostart.zh-CN.md +6 -2
  384. package/docs/web.en.md +123 -0
  385. package/docs/web.md +123 -0
  386. package/package.json +32 -9
  387. package/dist/chunk-4RQ7HLCK.js +0 -3
  388. package/dist/chunk-GMNBWGMQ.js +0 -5
  389. package/dist/chunk-SNN2J7BU.js +0 -1061
  390. package/dist/chunk-YCHIPWV2.js +0 -40
  391. package/dist/command-2D66UEBJ.js +0 -84
  392. package/dist/web/assets/abnfDiagram-N423BO3Z-BA9G7eND.js.br +0 -0
  393. package/dist/web/assets/abnfDiagram-N423BO3Z-BA9G7eND.js.gz +0 -0
  394. package/dist/web/assets/agent-settings-panel-C9S0LXqi.js +0 -1
  395. package/dist/web/assets/agent-settings-panel-C9S0LXqi.js.br +0 -0
  396. package/dist/web/assets/agent-settings-panel-C9S0LXqi.js.gz +0 -0
  397. package/dist/web/assets/app-update-dialog-BsIh1VPg.js.br +0 -0
  398. package/dist/web/assets/app-update-dialog-BsIh1VPg.js.gz +0 -0
  399. package/dist/web/assets/architectureDiagram-T3A2C74G-hY1IIQ-y.js.br +0 -0
  400. package/dist/web/assets/architectureDiagram-T3A2C74G-hY1IIQ-y.js.gz +0 -0
  401. package/dist/web/assets/arrow-down-DoJlTckg.js +0 -1
  402. package/dist/web/assets/arrow-down-DoJlTckg.js.br +0 -0
  403. package/dist/web/assets/arrow-down-DoJlTckg.js.gz +0 -0
  404. package/dist/web/assets/background-image-picker-B1xDUft3.js.br +0 -0
  405. package/dist/web/assets/background-image-picker-B1xDUft3.js.gz +0 -0
  406. package/dist/web/assets/chunk-5RXB4S5H-fg31GjQR.js.br +0 -0
  407. package/dist/web/assets/chunk-5RXB4S5H-fg31GjQR.js.gz +0 -0
  408. package/dist/web/assets/chunk-6Q2QTUOP-UGVxaGe-.js.br +0 -0
  409. package/dist/web/assets/chunk-6Q2QTUOP-UGVxaGe-.js.gz +0 -0
  410. package/dist/web/assets/chunk-GF5L2VYU-iTLU6Gbu.js.br +0 -0
  411. package/dist/web/assets/chunk-GF5L2VYU-iTLU6Gbu.js.gz +0 -0
  412. package/dist/web/assets/chunk-JQJVKLGR-DzWAKhHq.js.br +0 -0
  413. package/dist/web/assets/chunk-JQJVKLGR-DzWAKhHq.js.gz +0 -0
  414. package/dist/web/assets/classDiagram-JCYQIIEL-Cc_4r5xo.js.br +0 -0
  415. package/dist/web/assets/classDiagram-JCYQIIEL-Cc_4r5xo.js.gz +0 -0
  416. package/dist/web/assets/classDiagram-v2-OCEON4UE-Cc_4r5xo.js.br +0 -0
  417. package/dist/web/assets/classDiagram-v2-OCEON4UE-Cc_4r5xo.js.gz +0 -0
  418. package/dist/web/assets/clipboard-BxrWcnRh.js +0 -1
  419. package/dist/web/assets/clipboard-BxrWcnRh.js.br +0 -0
  420. package/dist/web/assets/clipboard-BxrWcnRh.js.gz +0 -0
  421. package/dist/web/assets/code-highlighter-kiC_chgH.js.br +0 -0
  422. package/dist/web/assets/code-highlighter-kiC_chgH.js.gz +0 -0
  423. package/dist/web/assets/commit-settings-panel-Cdtyux2J.js +0 -1
  424. package/dist/web/assets/commit-settings-panel-Cdtyux2J.js.br +0 -0
  425. package/dist/web/assets/commit-settings-panel-Cdtyux2J.js.gz +0 -0
  426. package/dist/web/assets/cynefinDiagram-MW4NZA55-CarrAQe_.js.br +0 -0
  427. package/dist/web/assets/cynefinDiagram-MW4NZA55-CarrAQe_.js.gz +0 -0
  428. package/dist/web/assets/diagram-7IWD3JNH-CHgQ34Br.js.br +0 -0
  429. package/dist/web/assets/diagram-7IWD3JNH-CHgQ34Br.js.gz +0 -0
  430. package/dist/web/assets/diagram-LBJQPF4R-Do0sclzV.js.br +0 -0
  431. package/dist/web/assets/diagram-LBJQPF4R-Do0sclzV.js.gz +0 -0
  432. package/dist/web/assets/diagram-Q27KOJAE-CuX25bnK.js.br +0 -0
  433. package/dist/web/assets/diagram-Q27KOJAE-CuX25bnK.js.gz +0 -0
  434. package/dist/web/assets/diagram-UB23O5K3-C8vf7TKH.js.br +0 -0
  435. package/dist/web/assets/diagram-UB23O5K3-C8vf7TKH.js.gz +0 -0
  436. package/dist/web/assets/dist-D2KGXHMS.js +0 -1
  437. package/dist/web/assets/dist-D2KGXHMS.js.br +0 -0
  438. package/dist/web/assets/dist-D2KGXHMS.js.gz +0 -0
  439. package/dist/web/assets/dist-DHnVkR1t.js.br +0 -0
  440. package/dist/web/assets/dist-DHnVkR1t.js.gz +0 -0
  441. package/dist/web/assets/download-05FmZQzE.js +0 -1
  442. package/dist/web/assets/download-05FmZQzE.js.br +0 -0
  443. package/dist/web/assets/download-05FmZQzE.js.gz +0 -0
  444. package/dist/web/assets/ebnfDiagram-BXEA7PRR-DctRYehy.js.br +0 -0
  445. package/dist/web/assets/ebnfDiagram-BXEA7PRR-DctRYehy.js.gz +0 -0
  446. package/dist/web/assets/erDiagram-JOGREHBK-BkfLzWvS.js.br +0 -0
  447. package/dist/web/assets/erDiagram-JOGREHBK-BkfLzWvS.js.gz +0 -0
  448. package/dist/web/assets/external-link-DQSTtNhw.js +0 -1
  449. package/dist/web/assets/external-link-DQSTtNhw.js.br +0 -0
  450. package/dist/web/assets/external-link-DQSTtNhw.js.gz +0 -0
  451. package/dist/web/assets/file-navigation-view-preference-BYYgwRsz.js +0 -1
  452. package/dist/web/assets/file-navigation-view-preference-BYYgwRsz.js.br +0 -0
  453. package/dist/web/assets/file-navigation-view-preference-BYYgwRsz.js.gz +0 -0
  454. package/dist/web/assets/file-review-dialog-DaGgZASG.js +0 -2
  455. package/dist/web/assets/file-review-dialog-DaGgZASG.js.br +0 -0
  456. package/dist/web/assets/file-review-dialog-DaGgZASG.js.gz +0 -0
  457. package/dist/web/assets/flowDiagram-UKHOOZJN-CQWRJfj_.js.br +0 -0
  458. package/dist/web/assets/flowDiagram-UKHOOZJN-CQWRJfj_.js.gz +0 -0
  459. package/dist/web/assets/git-commit-review-Bz8YDy59.js +0 -2
  460. package/dist/web/assets/git-commit-review-Bz8YDy59.js.br +0 -0
  461. package/dist/web/assets/git-commit-review-Bz8YDy59.js.gz +0 -0
  462. package/dist/web/assets/git-fork-CElzN7bT.js +0 -1
  463. package/dist/web/assets/git-fork-CElzN7bT.js.br +0 -1
  464. package/dist/web/assets/git-fork-CElzN7bT.js.gz +0 -0
  465. package/dist/web/assets/git-history-panel-QBsXgUT7.js +0 -1
  466. package/dist/web/assets/git-history-panel-QBsXgUT7.js.br +0 -0
  467. package/dist/web/assets/git-history-panel-QBsXgUT7.js.gz +0 -0
  468. package/dist/web/assets/global-search-dialog-DDaHRgce.js +0 -2
  469. package/dist/web/assets/global-search-dialog-DDaHRgce.js.br +0 -0
  470. package/dist/web/assets/global-search-dialog-DDaHRgce.js.gz +0 -0
  471. package/dist/web/assets/global-settings-about-DpKyx3RM.js +0 -1
  472. package/dist/web/assets/global-settings-about-DpKyx3RM.js.br +0 -0
  473. package/dist/web/assets/global-settings-about-DpKyx3RM.js.gz +0 -0
  474. package/dist/web/assets/global-settings-page-BEUBn7B5.js +0 -2
  475. package/dist/web/assets/global-settings-page-BEUBn7B5.js.br +0 -0
  476. package/dist/web/assets/global-settings-page-BEUBn7B5.js.gz +0 -0
  477. package/dist/web/assets/global-settings-pets-DBYFpNQk.js +0 -1
  478. package/dist/web/assets/global-settings-pets-DBYFpNQk.js.br +0 -0
  479. package/dist/web/assets/global-settings-pets-DBYFpNQk.js.gz +0 -0
  480. package/dist/web/assets/highlighted-body-OFNGDK62-CeVKUhHG.js.br +0 -0
  481. package/dist/web/assets/highlighted-body-OFNGDK62-CeVKUhHG.js.gz +0 -0
  482. package/dist/web/assets/history-location-C2XDYAuy.js +0 -1
  483. package/dist/web/assets/history-location-C2XDYAuy.js.br +0 -0
  484. package/dist/web/assets/history-location-C2XDYAuy.js.gz +0 -0
  485. package/dist/web/assets/history-task-timeline-Dl6to6Cp.js +0 -1
  486. package/dist/web/assets/history-task-timeline-Dl6to6Cp.js.br +0 -0
  487. package/dist/web/assets/history-task-timeline-Dl6to6Cp.js.gz +0 -0
  488. package/dist/web/assets/image-preview-Bez628xh.js.br +0 -0
  489. package/dist/web/assets/image-preview-Bez628xh.js.gz +0 -0
  490. package/dist/web/assets/image-preview-content-TkopF2n1.js +0 -41
  491. package/dist/web/assets/image-preview-content-TkopF2n1.js.br +0 -0
  492. package/dist/web/assets/image-preview-content-TkopF2n1.js.gz +0 -0
  493. package/dist/web/assets/index-CHJSDTYw.css +0 -2
  494. package/dist/web/assets/index-CHJSDTYw.css.br +0 -0
  495. package/dist/web/assets/index-CHJSDTYw.css.gz +0 -0
  496. package/dist/web/assets/index-DobF11m_.js +0 -4
  497. package/dist/web/assets/index-DobF11m_.js.br +0 -0
  498. package/dist/web/assets/index-DobF11m_.js.gz +0 -0
  499. package/dist/web/assets/infoDiagram-6WML65LV-smD1e7u3.js.br +0 -0
  500. package/dist/web/assets/infoDiagram-6WML65LV-smD1e7u3.js.gz +0 -0
  501. package/dist/web/assets/initial-deps-B8FrcWWN.js +0 -41
  502. package/dist/web/assets/initial-deps-B8FrcWWN.js.br +0 -0
  503. package/dist/web/assets/initial-deps-B8FrcWWN.js.gz +0 -0
  504. package/dist/web/assets/initial-deps-C-3sxJvc.js +0 -2
  505. package/dist/web/assets/initial-deps-C-3sxJvc.js.br +0 -0
  506. package/dist/web/assets/initial-deps-C-3sxJvc.js.gz +0 -0
  507. package/dist/web/assets/initial-deps-C0_XYRrC.js.br +0 -0
  508. package/dist/web/assets/initial-deps-C0_XYRrC.js.gz +0 -0
  509. package/dist/web/assets/initial-deps-CW5Jl6i2.js.br +0 -0
  510. package/dist/web/assets/initial-deps-CW5Jl6i2.js.gz +0 -0
  511. package/dist/web/assets/initial-deps-Cppvl2Gz.js.br +0 -0
  512. package/dist/web/assets/initial-deps-Cppvl2Gz.js.gz +0 -0
  513. package/dist/web/assets/installed-skills-pane-yCfl2E4Z.js +0 -1
  514. package/dist/web/assets/installed-skills-pane-yCfl2E4Z.js.br +0 -0
  515. package/dist/web/assets/installed-skills-pane-yCfl2E4Z.js.gz +0 -0
  516. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BMJ0kCX-.js.br +0 -0
  517. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BMJ0kCX-.js.gz +0 -0
  518. package/dist/web/assets/kanban-definition-27J2QSJJ-pQQ3ybGq.js.br +0 -0
  519. package/dist/web/assets/kanban-definition-27J2QSJJ-pQQ3ybGq.js.gz +0 -0
  520. package/dist/web/assets/maximize-2-CawekEKe.js +0 -1
  521. package/dist/web/assets/maximize-2-CawekEKe.js.br +0 -0
  522. package/dist/web/assets/maximize-2-CawekEKe.js.gz +0 -0
  523. package/dist/web/assets/mcp-management-pane-D4fhknd1.js +0 -1
  524. package/dist/web/assets/mcp-management-pane-D4fhknd1.js.br +0 -0
  525. package/dist/web/assets/mcp-management-pane-D4fhknd1.js.gz +0 -0
  526. package/dist/web/assets/mermaid-GHXKKRXX-BL0SiEsb.js +0 -1
  527. package/dist/web/assets/mermaid-GHXKKRXX-BL0SiEsb.js.br +0 -1
  528. package/dist/web/assets/mermaid-GHXKKRXX-BL0SiEsb.js.gz +0 -0
  529. package/dist/web/assets/message-assistant-directive-r0UOX93m.js +0 -3
  530. package/dist/web/assets/message-assistant-directive-r0UOX93m.js.br +0 -0
  531. package/dist/web/assets/message-assistant-directive-r0UOX93m.js.gz +0 -0
  532. package/dist/web/assets/message-response-DTlvlBMa.js.br +0 -0
  533. package/dist/web/assets/message-response-DTlvlBMa.js.gz +0 -0
  534. package/dist/web/assets/mindmap-definition-FAOFIHXS-CgQ5woK5.js.br +0 -0
  535. package/dist/web/assets/mindmap-definition-FAOFIHXS-CgQ5woK5.js.gz +0 -0
  536. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css +0 -1
  537. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.br +0 -0
  538. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.gz +0 -0
  539. package/dist/web/assets/official-plugins-pane-CRnpq0MJ.js +0 -1
  540. package/dist/web/assets/official-plugins-pane-CRnpq0MJ.js.br +0 -0
  541. package/dist/web/assets/official-plugins-pane-CRnpq0MJ.js.gz +0 -0
  542. package/dist/web/assets/patch-diff-viewer-fv2hVYyb.js.br +0 -0
  543. package/dist/web/assets/pdf-preview-CEvfJiZa.js.br +0 -0
  544. package/dist/web/assets/pdf-preview-CEvfJiZa.js.gz +0 -0
  545. package/dist/web/assets/pegDiagram-VL7TDLO6-CEECg9Qv.js.br +0 -0
  546. package/dist/web/assets/pegDiagram-VL7TDLO6-CEECg9Qv.js.gz +0 -0
  547. package/dist/web/assets/personalization-settings-panel-CmNqDQg6.js +0 -1
  548. package/dist/web/assets/personalization-settings-panel-CmNqDQg6.js.br +0 -0
  549. package/dist/web/assets/personalization-settings-panel-CmNqDQg6.js.gz +0 -0
  550. package/dist/web/assets/pieDiagram-7S7Q4E2Y-C3L4IYmx.js.br +0 -0
  551. package/dist/web/assets/pieDiagram-7S7Q4E2Y-C3L4IYmx.js.gz +0 -0
  552. package/dist/web/assets/project-file-popup-page-rkdge4He.js.br +0 -0
  553. package/dist/web/assets/project-file-popup-page-rkdge4He.js.gz +0 -0
  554. package/dist/web/assets/project-source-panel-Dfdd7hXf.js +0 -2
  555. package/dist/web/assets/project-source-panel-Dfdd7hXf.js.br +0 -0
  556. package/dist/web/assets/project-source-panel-Dfdd7hXf.js.gz +0 -0
  557. package/dist/web/assets/prompt-input-rTS8jFNM.js +0 -1
  558. package/dist/web/assets/prompt-input-rTS8jFNM.js.br +0 -0
  559. package/dist/web/assets/prompt-input-rTS8jFNM.js.gz +0 -0
  560. package/dist/web/assets/railroadDiagram-AXF67PYL-CXSGJisB.js.br +0 -0
  561. package/dist/web/assets/railroadDiagram-AXF67PYL-CXSGJisB.js.gz +0 -0
  562. package/dist/web/assets/requirementDiagram-LRYGKXZP-uB3tW141.js.br +0 -0
  563. package/dist/web/assets/requirementDiagram-LRYGKXZP-uB3tW141.js.gz +0 -0
  564. package/dist/web/assets/resources-en-DiMZyInt.js +0 -1
  565. package/dist/web/assets/resources-en-DiMZyInt.js.br +0 -0
  566. package/dist/web/assets/resources-en-DiMZyInt.js.gz +0 -0
  567. package/dist/web/assets/scan-DyLrpouW.js +0 -1
  568. package/dist/web/assets/scan-DyLrpouW.js.br +0 -3
  569. package/dist/web/assets/scan-DyLrpouW.js.gz +0 -0
  570. package/dist/web/assets/scheduled-task-date-time-picker-8cWX1p1O.js +0 -1
  571. package/dist/web/assets/scheduled-task-date-time-picker-8cWX1p1O.js.br +0 -0
  572. package/dist/web/assets/scheduled-task-date-time-picker-8cWX1p1O.js.gz +0 -0
  573. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-wwPq7k9m.js.br +0 -0
  574. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-wwPq7k9m.js.gz +0 -0
  575. package/dist/web/assets/scheduled-tasks-container-BA7pSsmC.js +0 -2
  576. package/dist/web/assets/scheduled-tasks-container-BA7pSsmC.js.br +0 -0
  577. package/dist/web/assets/scheduled-tasks-container-BA7pSsmC.js.gz +0 -0
  578. package/dist/web/assets/sequenceDiagram-SI44F4Z6-BikVJyrh.js.br +0 -0
  579. package/dist/web/assets/sequenceDiagram-SI44F4Z6-BikVJyrh.js.gz +0 -0
  580. package/dist/web/assets/shiki-bundle-CHd-S0Yk.js.br +0 -2
  581. package/dist/web/assets/shiki-bundle-CHd-S0Yk.js.gz +0 -0
  582. package/dist/web/assets/skills-market-container-BdTREXZb.js +0 -2
  583. package/dist/web/assets/skills-market-container-BdTREXZb.js.br +0 -0
  584. package/dist/web/assets/skills-market-container-BdTREXZb.js.gz +0 -0
  585. package/dist/web/assets/skills-market-container-C8okZy75.css +0 -1
  586. package/dist/web/assets/skills-market-container-C8okZy75.css.br +0 -0
  587. package/dist/web/assets/skills-market-container-C8okZy75.css.gz +0 -0
  588. package/dist/web/assets/sliders-horizontal-C6QQuWdW.js +0 -1
  589. package/dist/web/assets/sliders-horizontal-C6QQuWdW.js.br +0 -0
  590. package/dist/web/assets/sliders-horizontal-C6QQuWdW.js.gz +0 -0
  591. package/dist/web/assets/split-workspace-menu-content-DgbECHxu.js.br +0 -0
  592. package/dist/web/assets/split-workspace-menu-content-DgbECHxu.js.gz +0 -0
  593. package/dist/web/assets/stateDiagram-OKZ733FA-CBWRnaGO.js.br +0 -0
  594. package/dist/web/assets/stateDiagram-OKZ733FA-CBWRnaGO.js.gz +0 -0
  595. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CJYWLmtB.js.br +0 -0
  596. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CJYWLmtB.js.gz +0 -0
  597. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-5agQ3ner.js.br +0 -0
  598. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-5agQ3ner.js.gz +0 -0
  599. package/dist/web/assets/third-party-marketplace-pane-BPN-3gk1.js +0 -1
  600. package/dist/web/assets/third-party-marketplace-pane-BPN-3gk1.js.br +0 -0
  601. package/dist/web/assets/third-party-marketplace-pane-BPN-3gk1.js.gz +0 -0
  602. package/dist/web/assets/timeline-definition-Z64GVDOM-D_09Q10V.js.br +0 -0
  603. package/dist/web/assets/timeline-definition-Z64GVDOM-D_09Q10V.js.gz +0 -0
  604. package/dist/web/assets/upload-BQhbr7lC.js +0 -1
  605. package/dist/web/assets/upload-BQhbr7lC.js.br +0 -0
  606. package/dist/web/assets/upload-BQhbr7lC.js.gz +0 -0
  607. package/dist/web/assets/vennDiagram-T6HMQDX7-3WtBk1Fg.js.br +0 -0
  608. package/dist/web/assets/vennDiagram-T6HMQDX7-3WtBk1Fg.js.gz +0 -0
  609. package/dist/web/assets/wardleyDiagram-T6FBY63Y-DBIzys3u.js.br +0 -0
  610. package/dist/web/assets/wardleyDiagram-T6FBY63Y-DBIzys3u.js.gz +0 -0
  611. package/dist/web/assets/workbench-inspector-changes-D1rDsafv.js +0 -1
  612. package/dist/web/assets/workbench-inspector-changes-D1rDsafv.js.br +0 -0
  613. package/dist/web/assets/workbench-inspector-changes-D1rDsafv.js.gz +0 -0
  614. package/dist/web/assets/workbench-pet-canvas-B5jypDil.js.br +0 -0
  615. package/dist/web/assets/workbench-pet-canvas-B5jypDil.js.gz +0 -0
  616. package/dist/web/assets/workbench-shell-B139izuR.js +0 -16
  617. package/dist/web/assets/workbench-shell-B139izuR.js.br +0 -0
  618. package/dist/web/assets/workbench-shell-B139izuR.js.gz +0 -0
  619. package/dist/web/assets/xychartDiagram-ELKLHX3M-DwDj5q-W.js.br +0 -0
  620. package/dist/web/assets/xychartDiagram-ELKLHX3M-DwDj5q-W.js.gz +0 -0
  621. /package/dist/{chunk-XJOOU7A5.js → chunk-OILMAASC.js} +0 -0
  622. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~c6tt9j64-ClgveiMa.js → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~dp1dands-ClgveiMa.js} +0 -0
  623. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~c6tt9j64-ClgveiMa.js.br → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~dp1dands-ClgveiMa.js.br} +0 -0
  624. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~c6tt9j64-ClgveiMa.js.gz → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~dp1dands-ClgveiMa.js.gz} +0 -0
@@ -1,65 +1,89 @@
1
- import {createRequire}from'node:module';import'./chunk-YXJGRSCL.js';import {mkdirSync}from'fs';import {resolve}from'path';import {workerData,parentPort}from'worker_threads';import $ from'better-sqlite3';import {createHash}from'crypto';createRequire(import.meta.url);
2
- var h=["mcp_elicitations","request_permissions","rules","sandbox_approval","skill_approval"];function L(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Stored approval policy is invalid");let a=Object.keys(e),s=e.granular;if(a.length!==1||a[0]!=="granular"||typeof s!="object"||s===null||Array.isArray(s)||Object.keys(s).length!==h.length||h.some(n=>typeof s[n]!="boolean"))throw new Error("Stored granular approval policy is invalid");return {granular:Object.fromEntries(h.map(n=>[n,s[n]]))}}function S(e,a){if(e==="on-request"||e==="never"||a==="turn"&&e==="untrusted")return e;if(typeof e!="string"||!e.startsWith("{"))throw new Error(`Stored ${a} approval policy is invalid`);try{return L(JSON.parse(e))}catch(s){throw s instanceof SyntaxError?new Error(`Stored ${a} approval policy JSON is invalid`,{cause:s}):s}}function R(e){return typeof e=="string"?e:JSON.stringify(L(e))}function v(e,a){if(e===void 0)return;let s=a.map(n=>({id:n.root_id,path:n.path}));if(s.length===0)throw new Error(`Project ${e.id} has no stored roots`);return {createdAt:e.created_at,id:e.id,name:e.name,roots:s}}function x(e,a){let s=new Map;for(let n of a){let p=s.get(n.project_id)??[];p.push(n),s.set(n.project_id,p);}return e.map(n=>v(n,s.get(n.id)??[]))}function D(e){if(e!==void 0)return {approvalPolicy:S(e.approval_policy,"turn"),approvalsReviewer:e.approvals_reviewer,fastMode:e.fast_mode===1,model:e.model,reasoningEffort:e.reasoning_effort,sandboxMode:e.sandbox_mode}}function P(e){if(e!==void 0)return {approvalPolicy:S(e.approval_policy,"turn"),approvalsReviewer:e.approvals_reviewer,model:e.model,reasoningEffort:e.reasoning_effort,sandboxMode:e.sandbox_mode}}function C(e){if(e!==void 0)return {approvalPolicy:S(e.approval_policy,"global"),approvalsReviewer:e.approvals_reviewer,commitMessageModel:e.commit_message_model,commitMessagePrompt:e.commit_message_prompt,modelContextWindow:null,defaultOpenAppId:e.default_open_app_id,fastMode:e.fast_mode===1,followUpBehavior:e.follow_up_behavior,model:e.model,pet:{enabled:e.pet_enabled===1,selectedPetId:e.pet_id},reasoningEffort:e.reasoning_effort,sandboxMode:e.sandbox_mode}}function w(e){if(e!==void 0)return {customBaseUrl:e.custom_base_url,customModelsJson:e.custom_models_json,mode:e.mode,updatedAt:e.updated_at}}function T(e,a){return e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(a)!==void 0}function M(e){e.pragma("journal_mode = WAL"),e.pragma("foreign_keys = ON"),e.pragma("synchronous = NORMAL"),e.pragma("busy_timeout = 5000");}function F(e){return T(e,"schema_migrations")?e.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations").get().version:0}function y(e,a,s=()=>{}){e.exec(`
1
+ import {createRequire}from'node:module';import {a}from'./chunk-Q2VQAUSH.js';import'./chunk-YXJGRSCL.js';import {mkdirSync,existsSync,rmSync,linkSync,readdirSync,lstatSync,copyFileSync,constants,readFileSync,writeFileSync,renameSync}from'fs';import {dirname,resolve,join}from'path';import {randomUUID,createHash}from'crypto';import q from'better-sqlite3';import {workerData,parentPort}from'worker_threads';createRequire(import.meta.url);
2
+ var h={version:1,importSql:`CREATE TEMP VIEW storage_source_projects AS SELECT id,name,CASE WHEN substr(path,1,8)='\\\\?\\UNC\\' THEN '\\\\'||substr(path,9) WHEN substr(path,1,4)='\\\\?\\' THEN substr(path,5) ELSE path END AS path,created_at,position FROM legacy.managed_projects;
3
+
4
+ CREATE TEMP TABLE storage_project_map AS
5
+ SELECT source.id AS old_id, COALESCE(target.id,source.id) AS new_id
6
+ FROM storage_source_projects source LEFT JOIN main.managed_projects target ON target.path=source.path;
7
+ INSERT INTO main.managed_projects
8
+ SELECT source.id,source.name,source.path,source.created_at,
9
+ (SELECT COALESCE(MAX(position)+1,0) FROM main.managed_projects)+source.position
10
+ FROM storage_source_projects source WHERE true ON CONFLICT(path) DO NOTHING;
11
+ CREATE TEMP TABLE storage_import_guard (ok INTEGER CHECK(ok=1));
12
+ INSERT INTO storage_import_guard
13
+ SELECT 0 FROM legacy.managed_tasks source JOIN main.managed_tasks target ON target.id=source.id
14
+ WHERE source.provider<>target.provider OR source.session_id IS NOT target.session_id;
15
+ INSERT INTO main.managed_tasks
16
+ SELECT source.id, mapping.new_id, source.title, source.cwd, source.provider, source.session_id,
17
+ source.updated_at, source.pinned, source.archived, source.status
18
+ FROM legacy.managed_tasks source LEFT JOIN storage_project_map mapping ON mapping.old_id=source.project_id
19
+ WHERE NOT EXISTS (SELECT 1 FROM main.managed_tasks target WHERE target.id=source.id
20
+ OR (source.session_id IS NOT NULL AND target.provider=source.provider AND target.session_id=source.session_id));
21
+ INSERT OR IGNORE INTO main.managed_catalog_migration SELECT * FROM legacy.managed_catalog_migration;
22
+ DROP TABLE storage_project_map;
23
+ DROP TABLE storage_import_guard;
24
+
25
+ DROP VIEW storage_source_projects;
26
+ `,projectMappingSql:"SELECT source.id AS old_id,target.id AS new_id FROM legacy.managed_projects source JOIN main.managed_projects target ON CASE WHEN substr(source.path,1,8)='\\\\?\\UNC\\' THEN '\\\\'||substr(source.path,9) WHEN substr(source.path,1,4)='\\\\?\\' THEN substr(source.path,5) ELSE source.path END=target.path WHERE source.id<>target.id",normalizeProjectsSql:"UPDATE managed_projects SET path=CASE WHEN substr(path,1,8)='\\\\?\\UNC\\' THEN '\\\\'||substr(path,9) WHEN substr(path,1,4)='\\\\?\\' THEN substr(path,5) ELSE path END WHERE substr(path,1,4)='\\\\?\\';"};function x(e,i){try{linkSync(e,i);}catch(s){if(s.code!=="EEXIST")throw s}finally{rmSync(e,{force:true});}}function D(e,i){mkdirSync(i,{recursive:true,mode:448});for(let s of readdirSync(e)){if(s.includes(".sqlite3")||/\.(?:lock|tmp)$/.test(s)||s===".DS_Store")continue;let n=join(e,s),p=join(i,s),c=lstatSync(n);if(!c.isSymbolicLink()){if(c.isDirectory())D(n,p);else if(c.isFile()&&!existsSync(p)){let u=join(i,`.migration-${randomUUID()}.tmp`);try{copyFileSync(n,u,constants.COPYFILE_EXCL),x(u,p);}finally{rmSync(u,{force:true});}}}}}function B(e,i,s=false){mkdirSync(dirname(e),{recursive:true,mode:448});let n=join(dirname(e),`.migration-${randomUUID()}.tmp`);try{writeFileSync(n,JSON.stringify(i),{flag:"wx",mode:384}),s?renameSync(n,e):x(n,e);}finally{rmSync(n,{force:true});}}function je(e,i,s){let n=join(i,"agent-settings.json"),p=join(e,"agent-settings.json"),c=existsSync(n)?JSON.parse(readFileSync(n,"utf8")):void 0,u=existsSync(p)?JSON.parse(readFileSync(p,"utf8")):void 0,t=false;for(let{old_id:a,new_id:d}of s){if(![a,d].every(l=>/^[a-zA-Z0-9_-]{1,256}$/.test(l)))throw new Error("Invalid legacy project identifier");let o=join(e,"attachments",a);existsSync(o)&&D(o,join(i,"attachments",d));let r=join(e,"task-settings",a);if(existsSync(r))for(let l of readdirSync(r)){let _=join(i,"task-settings",d,l);if(!l.endsWith(".json")||existsSync(_)||!lstatSync(join(r,l)).isFile())continue;let E=JSON.parse(readFileSync(join(r,l),"utf8"));if(E.projectId!==a)throw new Error("Invalid legacy task settings project");B(_,{...E,projectId:d});}c?.projects&&u?.projects?.[a]&&!Object.hasOwn(c.projects,d)&&(c.projects[d]=u.projects[a],t=true);}t&&B(n,c,true);}function V(e,i=[]){let s=dirname(e);if(mkdirSync(s,{recursive:true,mode:448}),i.length===0)return;let n=[...new Set(i.map(c=>resolve(c)))].filter(c=>c!==resolve(s)&&existsSync(c));if(!existsSync(e)){let c=n.map(u=>join(u,"state.sqlite3")).find(existsSync);if(c){let u=join(s,`.migration-${randomUUID()}.tmp`),t=new q(c,{readonly:true});try{t.prepare("VACUUM INTO ?").run(u),x(u,e);}finally{t.close(),rmSync(u,{force:true});}}}let p=new q(e);try{p.pragma("busy_timeout = 5000"),p.pragma("journal_mode = WAL"),p.pragma("foreign_keys = ON"),p.transaction(()=>{p.exec(a.sql),p.exec(h.normalizeProjectsSql),p.exec("CREATE TABLE IF NOT EXISTS app_storage_migrations (source TEXT PRIMARY KEY) STRICT");}).immediate();for(let c of n){let u=()=>!!p.prepare("SELECT 1 FROM app_storage_migrations WHERE source=?").get(c);if(u())continue;D(c,s);let t=["state.sqlite3","catalog.sqlite3"].map(a=>join(c,a)).find(existsSync);t&&p.prepare("ATTACH DATABASE ? AS legacy").run(t);try{p.transaction(()=>{u()||(t&&p.prepare("SELECT 1 FROM legacy.sqlite_master WHERE name='managed_projects'").get()&&(je(c,s,p.prepare(h.projectMappingSql).all()),p.exec(h.importSql)),p.prepare("INSERT INTO app_storage_migrations VALUES (?)").run(c));}).immediate();}finally{t&&p.exec("DETACH DATABASE legacy");}}}finally{p.close();}}var w=["mcp_elicitations","request_permissions","rules","sandbox_approval","skill_approval"];function G(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Stored approval policy is invalid");let i=Object.keys(e),s=e.granular;if(i.length!==1||i[0]!=="granular"||typeof s!="object"||s===null||Array.isArray(s)||Object.keys(s).length!==w.length||w.some(n=>typeof s[n]!="boolean"))throw new Error("Stored granular approval policy is invalid");return {granular:Object.fromEntries(w.map(n=>[n,s[n]]))}}function A(e,i){if(e==="on-request"||e==="never"||i==="turn"&&e==="untrusted")return e;if(typeof e!="string"||!e.startsWith("{"))throw new Error(`Stored ${i} approval policy is invalid`);try{return G(JSON.parse(e))}catch(s){throw s instanceof SyntaxError?new Error(`Stored ${i} approval policy JSON is invalid`,{cause:s}):s}}function v(e){return typeof e=="string"?e:JSON.stringify(G(e))}function P(e,i){if(e===void 0)return;let s=i.map(n=>({id:n.root_id,path:n.path}));if(s.length===0)throw new Error(`Project ${e.id} has no stored roots`);return {createdAt:e.created_at,id:e.id,name:e.name,roots:s}}function X(e,i){let s=new Map;for(let n of i){let p=s.get(n.project_id)??[];p.push(n),s.set(n.project_id,p);}return e.map(n=>P(n,s.get(n.id)??[]))}function $(e){if(e!==void 0)return {approvalPolicy:A(e.approval_policy,"turn"),approvalsReviewer:e.approvals_reviewer,fastMode:e.fast_mode===1,model:e.model,reasoningEffort:e.reasoning_effort,sandboxMode:e.sandbox_mode}}function Q(e){if(e!==void 0)return {...e.engine_options==null?{}:{engineOptions:JSON.parse(e.engine_options)},approvalPolicy:A(e.approval_policy,"turn"),approvalsReviewer:e.approvals_reviewer,model:e.model,reasoningEffort:e.reasoning_effort,sandboxMode:e.sandbox_mode}}function Y(e){if(e!==void 0)return {approvalPolicy:A(e.approval_policy,"global"),approvalsReviewer:e.approvals_reviewer,defaultModel:e.commit_message_model,...e.default_agent==null?{}:{defaultAgent:e.default_agent},commitMessagePrompt:e.commit_message_prompt,...e.task_title_prompt?{taskTitlePrompt:e.task_title_prompt}:{},modelContextWindow:null,defaultOpenAppId:e.default_open_app_id,fastMode:e.fast_mode===1,followUpBehavior:e.follow_up_behavior,model:e.model,pet:{enabled:e.pet_enabled===1,selectedPetId:e.pet_id},reasoningEffort:e.reasoning_effort,sandboxMode:e.sandbox_mode}}function z(e){if(e!==void 0)return {customBaseUrl:e.custom_base_url,customModelsJson:e.custom_models_json,mode:e.mode,updatedAt:e.updated_at}}function S(e,i){return e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(i)!==void 0}function K(e){e.pragma("journal_mode = WAL"),e.pragma("foreign_keys = ON"),e.pragma("synchronous = NORMAL"),e.pragma("busy_timeout = 5000");}function Z(e){return S(e,"schema_migrations")?e.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations").get().version:0}function ee(e,i,s=()=>{}){e.exec(`
3
27
  CREATE TABLE IF NOT EXISTS schema_migrations (
4
28
  version INTEGER PRIMARY KEY,
5
29
  name TEXT NOT NULL,
6
30
  applied_at TEXT NOT NULL
7
31
  ) STRICT;
8
- `);let n=new Set(e.prepare("SELECT version FROM schema_migrations").all().map(d=>d.version)),p=0;for(let d of a){if(!Number.isInteger(d.version)||d.version<=p||typeof d.name!="string"||typeof d.sql!="string")throw new Error("Invalid SQLite migration definition");p=d.version,!n.has(d.version)&&e.transaction(()=>{e.exec(d.sql),s(d.version),e.prepare("INSERT INTO schema_migrations (version, name, applied_at) VALUES (?, ?, ?)").run(d.version,d.name,new Date().toISOString());})();}}function A(e,a){T(e,"project_source_migration")&&e.prepare(`INSERT OR IGNORE INTO project_source_migration
9
- (id, completed, recover_unassigned) VALUES (1, 0, ?)`).run(a===14?1:0);}function U(e){if(!T(e,"global_settings"))return;let a=new Set(e.prepare("PRAGMA table_info(global_settings)").all().map(s=>s.name));e.transaction(()=>{a.has("fast_mode")||e.exec(`
32
+ `);let n=new Set(e.prepare("SELECT version FROM schema_migrations").all().map(c=>c.version)),p=0;for(let c of i){if(!Number.isInteger(c.version)||c.version<=p||typeof c.name!="string"||typeof c.sql!="string")throw new Error("Invalid SQLite migration definition");p=c.version,!n.has(c.version)&&e.transaction(()=>{e.exec(c.sql),s(c.version),e.prepare("INSERT INTO schema_migrations (version, name, applied_at) VALUES (?, ?, ?)").run(c.version,c.name,new Date().toISOString());})();}}function M(e,i){S(e,"project_source_migration")&&e.prepare(`INSERT OR IGNORE INTO project_source_migration
33
+ (id, completed, recover_unassigned) VALUES (1, 0, ?)`).run(i===14?1:0);}function te(e){if(!S(e,"global_settings"))return;let i=new Set(e.prepare("PRAGMA table_info(global_settings)").all().map(s=>s.name));e.transaction(()=>{i.has("fast_mode")||e.exec(`
10
34
  ALTER TABLE global_settings
11
35
  ADD COLUMN fast_mode INTEGER NOT NULL DEFAULT 0
12
36
  CHECK (fast_mode IN (0, 1));
13
- `),a.has("commit_message_reasoning_effort")||e.exec(`
37
+ `),i.has("commit_message_reasoning_effort")||e.exec(`
14
38
  ALTER TABLE global_settings
15
39
  ADD COLUMN commit_message_reasoning_effort TEXT NOT NULL DEFAULT '';
16
40
  UPDATE global_settings
17
41
  SET commit_message_reasoning_effort = reasoning_effort;
18
- `),a.has("pet_enabled")||e.exec(`
42
+ `),i.has("pet_enabled")||e.exec(`
19
43
  ALTER TABLE global_settings
20
44
  ADD COLUMN pet_enabled INTEGER NOT NULL DEFAULT 0
21
45
  CHECK (pet_enabled IN (0, 1));
22
- `),a.has("pet_id")||e.exec("ALTER TABLE global_settings ADD COLUMN pet_id TEXT;");})();}function N(e){return {clientUserMessageId:e.client_user_message_id,id:e.id,inputJson:e.input_json,projectId:e.project_id,status:e.status,taskId:e.task_id,...e.execution_json===null?{}:{executionJson:e.execution_json}}}function H(e){let a,s=()=>{if(a!==void 0)return a;let n=e.prepare(`
46
+ `),i.has("pet_id")||e.exec("ALTER TABLE global_settings ADD COLUMN pet_id TEXT;");})();}function y(e){return {clientUserMessageId:e.client_user_message_id,id:e.id,inputJson:e.input_json,projectId:e.project_id,status:e.status,taskId:e.task_id,...e.execution_json===null?{}:{executionJson:e.execution_json}}}function re(e){let i,s=()=>{if(i!==void 0)return i;let n=e.prepare(`
23
47
  SELECT project_id, task_id, id, client_user_message_id, input_json, status, execution_json
24
48
  FROM task_queue WHERE project_id = ? AND task_id = ? ORDER BY position
25
- `),p=e.prepare("UPDATE task_queue SET position = ? WHERE project_id = ? AND task_id = ? AND id = ?"),d=e.transaction((u,o,i)=>{let c=n.all(u,o).map(r=>r.id),t=new Set(i);if(c.length!==i.length||t.size!==c.length||c.some(r=>!t.has(r)))throw new Error("Task queue order must contain every queued submission exactly once");i.forEach((r,l)=>p.run(-l-1,u,o,r)),i.forEach((r,l)=>p.run(l,u,o,r));});return a={insert:e.prepare(`
49
+ `),p=e.prepare("UPDATE task_queue SET position = ? WHERE project_id = ? AND task_id = ? AND id = ?"),c=e.transaction((u,t,a)=>{let d=n.all(u,t).map(r=>r.id),o=new Set(a);if(d.length!==a.length||o.size!==d.length||d.some(r=>!o.has(r)))throw new Error("Task queue order must contain every queued submission exactly once");a.forEach((r,l)=>p.run(-l-1,u,t,r)),a.forEach((r,l)=>p.run(l,u,t,r));});return i={insert:e.prepare(`
26
50
  INSERT INTO task_queue (
27
51
  project_id, task_id, id, client_user_message_id, input_json, status, position, updated_at, execution_json
28
52
  ) VALUES (?, ?, ?, ?, ?, ?, (
29
53
  SELECT COALESCE(MAX(position) + 1, 0)
30
54
  FROM task_queue WHERE project_id = ? AND task_id = ?
31
55
  ), ?, ?)
32
- `),list:n,remove:e.prepare("DELETE FROM task_queue WHERE project_id = ? AND task_id = ? AND id = ?"),reorder:d,update:e.prepare(`
56
+ `),list:n,remove:e.prepare("DELETE FROM task_queue WHERE project_id = ? AND task_id = ? AND id = ?"),reorder:c,update:e.prepare(`
33
57
  UPDATE task_queue SET input_json = ?, status = ?, updated_at = ?
34
58
  WHERE project_id = ? AND task_id = ? AND id = ? AND execution_json IS NULL
35
59
  `),execution:e.prepare(`
36
60
  UPDATE task_queue SET execution_json = ?
37
61
  WHERE project_id = ? AND task_id = ? AND id = ?
38
62
  AND (? = 0 OR (execution_json IS NULL AND status = 'queued'))
39
- `)},a};return {setTaskQueueExecution(n){let{execution:p}=s();return p.run(n.executionJson,n.projectId,n.taskId,n.id,n.claim?1:0).changes>0},addTaskQueueRecord(n){let{insert:p,list:d}=s();return p.run(n.projectId,n.taskId,n.id,n.clientUserMessageId,n.inputJson,n.status,n.projectId,n.taskId,n.updatedAt,n.execution===void 0?null:JSON.stringify(n.execution)),d.all(n.projectId,n.taskId).map(N).find(u=>u.id===n.id)},deleteTaskQueueRecord(n){let{remove:p}=s();return p.run(n.projectId,n.taskId,n.queuedSubmissionId).changes>0},listTaskQueueRecords(n){let{list:p}=s();return p.all(n.projectId,n.taskId).map(N)},reorderTaskQueueRecords(n){let{reorder:p}=s();return p(n.projectId,n.taskId,n.queuedSubmissionIds),null},updateTaskQueueRecord(n){let{list:p,update:d}=s();if(d.run(n.inputJson,n.status,n.updatedAt,n.projectId,n.taskId,n.queuedSubmissionId).changes!==0)return p.all(n.projectId,n.taskId).map(N).find(o=>o.id===n.queuedSubmissionId)}}}function W(e){if(e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get("scheduled_task_state")===void 0)return {};let s=e.prepare("SELECT tasks_json FROM scheduled_task_state WHERE id = 1"),n=e.prepare(`
63
+ `)},i};return {setTaskQueueExecution(n){let{execution:p}=s();return p.run(n.executionJson,n.projectId,n.taskId,n.id,n.claim?1:0).changes>0},addTaskQueueRecord(n){let{insert:p,list:c}=s();return p.run(n.projectId,n.taskId,n.id,n.clientUserMessageId,n.inputJson,n.status,n.projectId,n.taskId,n.updatedAt,n.execution===void 0?null:JSON.stringify(n.execution)),c.all(n.projectId,n.taskId).map(y).find(u=>u.id===n.id)},deleteTaskQueueRecord(n){let{remove:p}=s();return p.run(n.projectId,n.taskId,n.queuedSubmissionId).changes>0},listTaskQueueRecords(n){let{list:p}=s();return p.all(n.projectId,n.taskId).map(y)},reorderTaskQueueRecords(n){let{reorder:p}=s();return p(n.projectId,n.taskId,n.queuedSubmissionIds),null},updateTaskQueueRecord(n){let{list:p,update:c}=s();if(c.run(n.inputJson,n.status,n.updatedAt,n.projectId,n.taskId,n.queuedSubmissionId).changes!==0)return p.all(n.projectId,n.taskId).map(y).find(t=>t.id===n.queuedSubmissionId)}}}function oe(e){if(e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get("scheduled_task_state")===void 0)return {};let s=e.prepare("SELECT tasks_json FROM scheduled_task_state WHERE id = 1"),n=e.prepare(`
40
64
  INSERT INTO scheduled_task_state (id, tasks_json) VALUES (1, ?)
41
65
  ON CONFLICT(id) DO UPDATE SET tasks_json = excluded.tasks_json
42
- `),p=e.prepare("DELETE FROM scheduled_task_attachments WHERE task_id = ?"),d=e.prepare(`
66
+ `),p=e.prepare("DELETE FROM scheduled_task_attachments WHERE task_id = ?"),c=e.prepare(`
43
67
  INSERT INTO scheduled_task_attachments (
44
68
  task_id, attachment_id, project_id, kind, media_type, name, size, content
45
69
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
46
- `),u=e.prepare("SELECT * FROM scheduled_task_attachments WHERE task_id = ? ORDER BY attachment_id"),o=e.prepare(`
70
+ `),u=e.prepare("SELECT * FROM scheduled_task_attachments WHERE task_id = ? ORDER BY attachment_id"),t=e.prepare(`
47
71
  SELECT * FROM scheduled_task_attachments
48
72
  WHERE project_id = ? AND attachment_id = ?
49
73
  LIMIT 1
50
- `),i=e.prepare(`
74
+ `),a=e.prepare(`
51
75
  DELETE FROM scheduled_task_attachments
52
76
  WHERE task_id NOT IN (SELECT json_extract(value, '$.id') FROM json_each(?))
53
- `),c=r=>{p.run(r.taskId);for(let l of r.attachments)d.run(r.taskId,l.attachment.id,r.projectId,l.attachment.kind,l.attachment.mediaType,l.attachment.name,l.attachment.size,l.content);},t=e.transaction(r=>{n.run(r.tasksJson),r.attachments!==void 0&&c(r.attachments),i.run(r.tasksJson);});return {listScheduledTaskAttachments(r){return u.all(r.taskId)},readScheduledTasks(){return s.get()?.tasks_json??"[]"},readScheduledTaskAttachment(r){return o.get(r.projectId,r.attachmentId)},writeScheduledTasks(r){return t(r),null}}}function q(e){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'task_submissions'").get())return {};let a=e.prepare("SELECT record_json FROM task_submissions WHERE project_id = ? AND submission_key = ?"),s=e.prepare("SELECT COUNT(*) AS count FROM task_submissions"),n=e.prepare("DELETE FROM task_submissions WHERE completed = 1 AND updated_at < ?"),p=e.prepare(`INSERT INTO task_submissions (project_id, submission_key, record_json, completed, updated_at)
77
+ `),d=r=>{p.run(r.taskId);for(let l of r.attachments)c.run(r.taskId,l.attachment.id,r.projectId,l.attachment.kind,l.attachment.mediaType,l.attachment.name,l.attachment.size,l.content);},o=e.transaction(r=>{n.run(r.tasksJson),r.attachments!==void 0&&d(r.attachments),a.run(r.tasksJson);});return {listScheduledTaskAttachments(r){return u.all(r.taskId)},readScheduledTasks(){return s.get()?.tasks_json??"[]"},readScheduledTaskAttachment(r){return t.get(r.projectId,r.attachmentId)},writeScheduledTasks(r){return o(r),null}}}function ne(e){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'task_submissions'").get())return {};let i=e.prepare("SELECT record_json FROM task_submissions WHERE project_id = ? AND submission_key = ?"),s=e.prepare("SELECT COUNT(*) AS count FROM task_submissions"),n=e.prepare("DELETE FROM task_submissions WHERE completed = 1 AND updated_at < ?"),p=e.prepare(`INSERT INTO task_submissions (project_id, submission_key, record_json, completed, updated_at)
54
78
  VALUES (?, ?, ?, ?, ?) ON CONFLICT(project_id, submission_key) DO UPDATE SET
55
- record_json = excluded.record_json, completed = excluded.completed, updated_at = excluded.updated_at`);return {readSubmission({projectId:d,key:u}){return a.get(d,u)?.record_json},writeSubmission:e.transaction(({projectId:d,key:u,recordJson:o,completed:i})=>{let c=Date.now();if(n.run(c-10080*60*1e3),!a.get(d,u)&&s.get().count>=1e4)throw new Error("Submission recovery capacity is exhausted");return p.run(d,u,o,i?1:0,c),null})}}function B(e){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'project_todos'").get())return {};let a=e.prepare("SELECT record_json FROM project_todos WHERE project_id = ? ORDER BY updated_at DESC, id"),s=e.prepare("SELECT version FROM project_todos WHERE project_id = ? AND id = ?"),n=e.prepare(`INSERT INTO project_todos (project_id, id, version, updated_at, record_json) VALUES (?, ?, ?, ?, ?)
56
- ON CONFLICT(project_id, id) DO UPDATE SET version = excluded.version, updated_at = excluded.updated_at, record_json = excluded.record_json`),p=e.prepare("DELETE FROM project_todos WHERE project_id = ? AND id = ?"),d=e.prepare("DELETE FROM project_todo_attachments WHERE project_id = ? AND todo_id = ?"),u=e.prepare("INSERT INTO project_todo_attachments (project_id, todo_id, attachment_id, metadata, content) VALUES (?, ?, ?, ?, ?)"),o=e.prepare("SELECT metadata, content FROM project_todo_attachments WHERE project_id = ? AND attachment_id = ? LIMIT 1");return {listProjectTodos:({projectId:i})=>a.all(i).map(c=>c.record_json),readProjectTodoAttachment:({projectId:i,attachmentId:c})=>o.get(i,c),saveProjectTodo:e.transaction(({todo:i,expectedVersion:c,attachments:t})=>{if((s.get(i.projectId,i.id)?.version??null)!==c)return false;if(c===null&&a.all(i.projectId).length>=1e3)throw new Error("Project todo capacity is exhausted");n.run(i.projectId,i.id,i.version,i.updatedAt,JSON.stringify(i)),d.run(i.projectId,i.id);for(let{attachment:r,content:l}of t)u.run(i.projectId,i.id,r.id,JSON.stringify(r),l);return true}),deleteProjectTodo:e.transaction(({projectId:i,todoId:c,expectedVersion:t})=>{let r=s.get(i,c);return r===void 0?false:r.version!==t?null:(p.run(i,c),true)})}}function V(e){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'async_questions'").get())return {};let a=e.prepare("SELECT record_json FROM async_questions WHERE project_id = ? AND task_id = ? ORDER BY json_extract(record_json, '$.group.createdAt'), rowid"),s=e.prepare("SELECT record_json FROM async_questions WHERE project_id = ? AND task_id = ? AND id = ?"),n=e.prepare("INSERT OR IGNORE INTO async_questions (project_id, task_id, id, status, record_json) VALUES (?, ?, ?, 'pending', ?)"),p=e.prepare("UPDATE async_questions SET status = ?, record_json = ? WHERE project_id = ? AND task_id = ? AND id = ? AND status = ?"),d=e.prepare("SELECT COUNT(*) AS count FROM async_questions WHERE project_id = ? AND task_id = ?");return {listAsyncQuestions:({projectId:u,taskId:o})=>a.all(u,o).map(i=>i.record_json),discoverAsyncQuestions:e.transaction(({projectId:u,taskId:o,groups:i})=>{for(let c of i)n.run(u,o,c.id,JSON.stringify({group:c}));if(d.get(u,o).count>1e4)throw new Error("Async question capacity is exhausted");return null}),updateAsyncQuestion:({projectId:u,taskId:o,record:i,expectedStatus:c})=>p.run(i.group.status,JSON.stringify(i),u,o,i.group.id,c).changes===1,dismissAsyncQuestions:e.transaction(({projectId:u,taskId:o,ids:i})=>{for(let c of i){let t=s.get(u,o,c);if(t===void 0)continue;let r=JSON.parse(t.record_json);r.group.status="dismissed",p.run("dismissed",JSON.stringify(r),u,o,c,"pending");}return null})}}function G(e){return e?{id:e.id,name:e.name,path:e.path,createdAt:e.created_at}:null}function I(e){return e?{id:e.id,projectId:e.project_id,title:e.title,cwd:e.cwd,provider:e.provider,sessionId:e.session_id,updatedAt:e.updated_at,pinned:!!e.pinned,archived:!!e.archived,status:e.status}:null}function J(e){let a=o=>G(e.prepare("SELECT * FROM managed_projects WHERE id = ?").get(o)),s=o=>I(e.prepare("SELECT * FROM managed_tasks WHERE id = ?").get(o)),n=()=>e.prepare("SELECT * FROM managed_projects ORDER BY position, id").all().map(G),p=e.transaction(o=>(e.prepare(`INSERT INTO managed_projects VALUES (?, ?, ?, ?, (SELECT COALESCE(MAX(position)+1,0) FROM managed_projects))
57
- ON CONFLICT(id) DO UPDATE SET name=excluded.name, path=excluded.path`).run(o.id,o.name,o.path,o.createdAt),e.prepare(`INSERT INTO projects (id,name,created_at,sort_order,kind)
79
+ record_json = excluded.record_json, completed = excluded.completed, updated_at = excluded.updated_at`);return {readSubmission({projectId:c,key:u}){return i.get(c,u)?.record_json},writeSubmission:e.transaction(({projectId:c,key:u,recordJson:t,completed:a})=>{let d=Date.now();if(n.run(d-10080*60*1e3),!i.get(c,u)&&s.get().count>=1e4)throw new Error("Submission recovery capacity is exhausted");return p.run(c,u,t,a?1:0,d),null})}}function se(e){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'project_todos'").get())return {};let i=e.prepare("SELECT record_json FROM project_todos WHERE project_id = ? ORDER BY updated_at DESC, id"),s=e.prepare("SELECT version FROM project_todos WHERE project_id = ? AND id = ?"),n=e.prepare(`INSERT INTO project_todos (project_id, id, version, updated_at, record_json) VALUES (?, ?, ?, ?, ?)
80
+ ON CONFLICT(project_id, id) DO UPDATE SET version = excluded.version, updated_at = excluded.updated_at, record_json = excluded.record_json`),p=e.prepare("DELETE FROM project_todos WHERE project_id = ? AND id = ?"),c=e.prepare("DELETE FROM project_todo_attachments WHERE project_id = ? AND todo_id = ?"),u=e.prepare("INSERT INTO project_todo_attachments (project_id, todo_id, attachment_id, metadata, content) VALUES (?, ?, ?, ?, ?)"),t=e.prepare("SELECT metadata, content FROM project_todo_attachments WHERE project_id = ? AND attachment_id = ? LIMIT 1");return {listProjectTodos:({projectId:a})=>i.all(a).map(d=>d.record_json),readProjectTodoAttachment:({projectId:a,attachmentId:d})=>t.get(a,d),saveProjectTodo:e.transaction(({todo:a,expectedVersion:d,attachments:o})=>{if((s.get(a.projectId,a.id)?.version??null)!==d)return false;if(d===null&&i.all(a.projectId).length>=1e3)throw new Error("Project todo capacity is exhausted");n.run(a.projectId,a.id,a.version,a.updatedAt,JSON.stringify(a)),c.run(a.projectId,a.id);for(let{attachment:r,content:l}of o)u.run(a.projectId,a.id,r.id,JSON.stringify(r),l);return true}),deleteProjectTodo:e.transaction(({projectId:a,todoId:d,expectedVersion:o})=>{let r=s.get(a,d);return r===void 0?false:r.version!==o?null:(p.run(a,d),true)})}}function ie(e){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'async_questions'").get())return {};let i=e.prepare("SELECT record_json FROM async_questions WHERE project_id = ? AND task_id = ? ORDER BY json_extract(record_json, '$.group.createdAt'), rowid"),s=e.prepare("SELECT record_json FROM async_questions WHERE project_id = ? AND task_id = ? AND id = ?"),n=e.prepare("INSERT OR IGNORE INTO async_questions (project_id, task_id, id, status, record_json) VALUES (?, ?, ?, 'pending', ?)"),p=e.prepare("UPDATE async_questions SET status = ?, record_json = ? WHERE project_id = ? AND task_id = ? AND id = ? AND status = ?"),c=e.prepare("SELECT COUNT(*) AS count FROM async_questions WHERE project_id = ? AND task_id = ?");return {listAsyncQuestions:({projectId:u,taskId:t})=>i.all(u,t).map(a=>a.record_json),discoverAsyncQuestions:e.transaction(({projectId:u,taskId:t,groups:a})=>{for(let d of a)n.run(u,t,d.id,JSON.stringify({group:d}));if(c.get(u,t).count>1e4)throw new Error("Async question capacity is exhausted");return null}),updateAsyncQuestion:({projectId:u,taskId:t,record:a,expectedStatus:d})=>p.run(a.group.status,JSON.stringify(a),u,t,a.group.id,d).changes===1,dismissAsyncQuestions:e.transaction(({projectId:u,taskId:t,ids:a})=>{for(let d of a){let o=s.get(u,t,d);if(o===void 0)continue;let r=JSON.parse(o.record_json);r.group.status="dismissed",p.run("dismissed",JSON.stringify(r),u,t,d,"pending");}return null})}}function ae(e){return e?{id:e.id,name:e.name,path:e.path,createdAt:e.created_at}:null}function F(e){return e?{id:e.id,projectId:e.project_id,title:e.title,cwd:e.cwd,provider:e.provider,sessionId:e.session_id,updatedAt:e.updated_at,pinned:!!e.pinned,archived:!!e.archived,status:e.status}:null}function ce(e,i){if(e){for(let s of ["provider","projectId","sessionId"])if(!(s==="sessionId"&&e.sessionId===null)&&Object.hasOwn(i,s)&&i[s]!==e[s])throw new Error(`Task ${s} is immutable`)}}function de(e){let i=t=>ae(e.prepare("SELECT * FROM managed_projects WHERE id = ?").get(t)),s=t=>F(e.prepare("SELECT * FROM managed_tasks WHERE id = ?").get(t)),n=()=>e.prepare("SELECT * FROM managed_projects ORDER BY position, id").all().map(ae),p=e.transaction(t=>(e.prepare(`INSERT INTO managed_projects VALUES (?, ?, ?, ?, (SELECT COALESCE(MAX(position)+1,0) FROM managed_projects))
81
+ ON CONFLICT(id) DO UPDATE SET name=excluded.name, path=excluded.path`).run(t.id,t.name,t.path,t.createdAt),e.prepare(`INSERT INTO projects (id,name,created_at,sort_order,kind)
58
82
  VALUES (?,?,?,(SELECT COALESCE(MAX(sort_order)+1,0) FROM projects),'user')
59
- ON CONFLICT(id) DO UPDATE SET name=excluded.name`).run(o.id,o.name,o.createdAt),e.prepare("DELETE FROM project_roots WHERE project_id=?").run(o.id),e.prepare("INSERT INTO project_roots (project_id,position,root_id,path) VALUES (?,0,?,?)").run(o.id,createHash("sha256").update(o.path).digest("hex").slice(0,32),o.path),a(o.id))),d=o=>(e.prepare(`INSERT INTO managed_tasks VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
60
- ON CONFLICT(id) DO NOTHING`).run(o.id,o.projectId,o.title,o.cwd,o.provider,o.sessionId,o.updatedAt,Number(o.pinned),Number(o.archived),o.status),s(o.id)),u={"project.list":n,"project.read":({id:o})=>a(o),"project.put":p,"project.rename":e.transaction(({id:o,name:i})=>{if(!i.trim())throw new Error("Project name is required");if(!e.prepare("UPDATE managed_projects SET name=? WHERE id=?").run(i.trim(),o).changes)throw new Error("Project not found");return e.prepare("UPDATE projects SET name=? WHERE id=?").run(i.trim(),o),a(o)}),"project.remove":e.transaction(({id:o})=>{if(e.prepare("SELECT 1 FROM managed_tasks WHERE project_id=? AND status='active' LIMIT 1").get(o))throw new Error("Cannot remove a project with a running task");let c=!!e.prepare("DELETE FROM managed_projects WHERE id=?").run(o).changes;return c&&(e.prepare("DELETE FROM task_settings WHERE project_id=?").run(o),e.prepare("DELETE FROM projects WHERE id=? AND kind='user'").run(o)),c}),"project.reorder":e.transaction(({ids:o})=>{let i=n();if(new Set(o).size!==o.length||o.length!==i.length||i.some(t=>!o.includes(t.id)))throw new Error("Invalid project order");let c=e.prepare("UPDATE managed_projects SET position=? WHERE id=?");return o.forEach((t,r)=>c.run(r,t)),n()}),"task.put":d,"task.read":({id:o})=>s(o),"task.bindings":()=>e.prepare("SELECT * FROM managed_tasks").all().map(I),"task.patch":({id:o,...i})=>{let c=s(o);if(!c)throw new Error("Task not found");if(i.title!==void 0){if(!i.title.trim())throw new Error("Task title is required");i.title=i.title.trim();}let t={...c,...i,...c.sessionId!==null?{sessionId:c.sessionId}:{}};return e.prepare("UPDATE managed_tasks SET title=?,cwd=?,session_id=?,updated_at=?,pinned=?,archived=?,status=? WHERE id=?").run(t.title,t.cwd,t.sessionId,t.updatedAt,Number(t.pinned),Number(t.archived),t.status,o),t},"task.remove":e.transaction(({id:o})=>{let i=s(o);if(i?.status==="active")throw new Error("Cannot delete a running task");let c=!!e.prepare("DELETE FROM managed_tasks WHERE id=?").run(o).changes;if(c)for(let t of ["task_settings","task_queue","async_questions"])e.prepare(`DELETE FROM ${t} WHERE task_id=? AND project_id=?`).run(o,i.projectId??"temporary");return c}),"task.list":o=>{let i=["archived = ?"],c=[+(o.archived===true)];if(Object.hasOwn(o,"projectId")&&(i.push("project_id IS ?"),c.push(o.projectId)),o.pinned===true&&i.push("pinned = 1"),o.searchTerm&&(i.push("instr(lower(title), lower(?)) > 0"),c.push(o.searchTerm)),o.cursor){let m=JSON.parse(o.cursor);if(!Array.isArray(m)||m.length!==2||!Number.isFinite(m[0])||typeof m[1]!="string")throw new Error("Invalid task cursor");i.push("(updated_at, id) < (?, ?)"),c.push(...m);}let t=Math.min(100,Math.max(1,o.limit??50)),r=e.prepare(`SELECT * FROM managed_tasks WHERE ${i.join(" AND ")} ORDER BY updated_at DESC,id DESC LIMIT ?`).all(...c,t+1),l=r.slice(0,t).map(I),_=l.at(-1);return {data:l,nextCursor:r.length>t?JSON.stringify([_.updatedAt,_.id]):null}},"migration.done":()=>!!e.prepare("SELECT 1 FROM managed_catalog_migration WHERE id=1").get(),"migration.import":e.transaction(({projects:o,tasks:i})=>{if(!u["migration.done"]()){for(let c of o)if(p(c),c.sourceId&&c.sourceId!==c.id){let t=e.prepare("PRAGMA table_info(project_defaults)").all().map(r=>r.name).filter(r=>r!=="project_id");e.prepare(`INSERT INTO project_defaults (project_id,${t.join(",")}) SELECT ?,${t.join(",")} FROM project_defaults WHERE project_id=? ON CONFLICT(project_id) DO NOTHING`).run(c.id,c.sourceId);}for(let c of i)if(d(c),c.projectId!==null)for(let t of ["task_settings","task_queue","async_questions"])e.prepare(`UPDATE ${t} SET project_id=? WHERE task_id=? AND project_id<>?`).run(c.projectId,c.id,c.projectId);e.prepare("INSERT INTO managed_catalog_migration VALUES (1)").run();}})};return {localCatalog:({operation:o,payload:i})=>{if(!Object.hasOwn(u,o))throw new Error("Unknown catalog operation");return u[o](i)}}}function Q(e){return {...J(e),...H(e),...W(e),...q(e),...B(e),...V(e)}}function k(e){return {message:e instanceof Error?e.message:String(e),name:e instanceof Error?e.name:"Error"}}function b(e){let a=new $(`${e}.scheduled-lock`,{timeout:5e3});a.exec(`CREATE TABLE IF NOT EXISTS run_owners (
83
+ ON CONFLICT(id) DO UPDATE SET name=excluded.name`).run(t.id,t.name,t.createdAt),e.prepare("DELETE FROM project_roots WHERE project_id=?").run(t.id),e.prepare("INSERT INTO project_roots (project_id,position,root_id,path) VALUES (?,0,?,?)").run(t.id,createHash("sha256").update(t.path).digest("hex").slice(0,32),t.path),i(t.id))),c=t=>(ce(s(t.id),t),e.prepare(`INSERT INTO managed_tasks VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
84
+ ON CONFLICT(id) DO NOTHING`).run(t.id,t.projectId,t.title,t.cwd,t.provider,t.sessionId,t.updatedAt,Number(t.pinned),Number(t.archived),t.status),s(t.id)),u={"project.list":n,"project.read":({id:t})=>i(t),"project.put":p,"project.rename":e.transaction(({id:t,name:a})=>{if(!a.trim())throw new Error("Project name is required");if(!e.prepare("UPDATE managed_projects SET name=? WHERE id=?").run(a.trim(),t).changes)throw new Error("Project not found");return e.prepare("UPDATE projects SET name=? WHERE id=?").run(a.trim(),t),i(t)}),"project.remove":e.transaction(({id:t})=>{if(e.prepare("SELECT 1 FROM managed_tasks WHERE project_id=? AND status='active' LIMIT 1").get(t))throw new Error("Cannot remove a project with a running task");let d=!!e.prepare("DELETE FROM managed_projects WHERE id=?").run(t).changes;return d&&(e.prepare("DELETE FROM task_settings WHERE project_id=?").run(t),e.prepare("DELETE FROM projects WHERE id=? AND kind='user'").run(t)),d}),"project.reorder":e.transaction(({ids:t})=>{let a=n();if(new Set(t).size!==t.length||t.length!==a.length||a.some(o=>!t.includes(o.id)))throw new Error("Invalid project order");let d=e.prepare("UPDATE managed_projects SET position=? WHERE id=?");return t.forEach((o,r)=>d.run(r,o)),n()}),"task.put":c,"task.read":({id:t})=>s(t),"task.bindings":()=>e.prepare("SELECT * FROM managed_tasks").all().map(F),"task.patch":({id:t,...a})=>{let d=s(t);if(!d)throw new Error("Task not found");if(ce(d,a),a.title!==void 0){if(!a.title.trim())throw new Error("Task title is required");a.title=a.title.trim();}let o={...d,...a,...d.sessionId!==null?{sessionId:d.sessionId}:{}};return e.prepare("UPDATE managed_tasks SET title=?,cwd=?,session_id=?,updated_at=?,pinned=?,archived=?,status=? WHERE id=?").run(o.title,o.cwd,o.sessionId,o.updatedAt,Number(o.pinned),Number(o.archived),o.status,t),o},"task.remove":e.transaction(({id:t})=>{let a=s(t);if(a?.status==="active")throw new Error("Cannot delete a running task");let d=!!e.prepare("DELETE FROM managed_tasks WHERE id=?").run(t).changes;if(d)for(let o of ["task_settings","task_queue","async_questions"])e.prepare(`DELETE FROM ${o} WHERE task_id=? AND project_id=?`).run(t,a.projectId??"temporary");return d}),"task.list":t=>{let a=["archived = ?"],d=[+(t.archived===true)];if(t.providers!==void 0){if(!Array.isArray(t.providers)||t.providers.length>2||t.providers.some(E=>E!=="codex"&&E!=="claude"))throw new Error("Invalid task providers");a.push(`provider IN (${t.providers.map(()=>"?").join(",")})`),d.push(...t.providers);}if(Object.hasOwn(t,"projectId")&&(a.push("project_id IS ?"),d.push(t.projectId)),t.pinned===true&&a.push("pinned = 1"),t.completed===true&&a.push("status IN ('idle', 'notLoaded') AND project_id IS NOT NULL"),t.searchTerm&&(a.push("instr(lower(title), lower(?)) > 0"),d.push(t.searchTerm)),t.cursor){let E=JSON.parse(t.cursor);if(!Array.isArray(E)||E.length!==2||!Number.isFinite(E[0])||typeof E[1]!="string")throw new Error("Invalid task cursor");a.push("(updated_at, id) < (?, ?)"),d.push(...E);}let o=Math.min(100,Math.max(1,t.limit??50)),r=e.prepare(`SELECT * FROM managed_tasks WHERE ${a.join(" AND ")} ORDER BY updated_at DESC,id DESC LIMIT ?`).all(...d,o+1),l=r.slice(0,o).map(F),_=l.at(-1);return {data:l,nextCursor:r.length>o?JSON.stringify([_.updatedAt,_.id]):null}},"migration.done":()=>!!e.prepare("SELECT 1 FROM managed_catalog_migration WHERE id=1").get(),"migration.import":e.transaction(({projects:t,tasks:a})=>{if(!u["migration.done"]()){for(let d of t)if(p(d),d.sourceId&&d.sourceId!==d.id){let o=e.prepare("PRAGMA table_info(project_defaults)").all().map(r=>r.name).filter(r=>r!=="project_id");e.prepare(`INSERT INTO project_defaults (project_id,${o.join(",")}) SELECT ?,${o.join(",")} FROM project_defaults WHERE project_id=? ON CONFLICT(project_id) DO NOTHING`).run(d.id,d.sourceId);}for(let d of a)if(c(d),d.projectId!==null)for(let o of ["task_settings","task_queue","async_questions"])e.prepare(`UPDATE ${o} SET project_id=? WHERE task_id=? AND project_id<>?`).run(d.projectId,d.id,d.projectId);e.prepare("INSERT INTO managed_catalog_migration VALUES (1)").run();}})};return {localCatalog:({operation:t,payload:a})=>{if(!Object.hasOwn(u,t))throw new Error("Unknown catalog operation");return u[t](a)}}}function pe(e){return {...de(e),...re(e),...oe(e),...ne(e),...se(e),...ie(e)}}function H(e){return {code:e!==null&&typeof e=="object"&&typeof e.code=="string"?e.code:void 0,message:e instanceof Error?e.message:String(e),name:e instanceof Error?e.name:"Error"}}function ue(e){let i=new q(`${e}.scheduled-lock`,{timeout:5e3});i.exec(`CREATE TABLE IF NOT EXISTS run_owners (
61
85
  run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL
62
- ) STRICT`);let s=a.prepare("SELECT run_id, pid FROM run_owners"),n=a.prepare("DELETE FROM run_owners WHERE run_id = ?"),p=a.prepare("INSERT INTO run_owners (run_id, pid) VALUES (?, ?)");return {initialize(d){try{return a.transaction(d).immediate()}finally{a.pragma("busy_timeout = 0");}},close:()=>a.close(),operations:{acquireScheduledTaskLock(){if(a.inTransaction)return false;try{return a.exec("BEGIN IMMEDIATE"),!0}catch(d){if(d.code==="SQLITE_BUSY")return false;throw d}},releaseScheduledTaskLock(){return a.exec("COMMIT"),null},listActiveScheduledTaskRunIds(){let d=[];for(let u of s.all())try{process.kill(u.pid,0),d.push(u.run_id);}catch(o){o.code==="ESRCH"?n.run(u.run_id):d.push(u.run_id);}return d},claimScheduledTaskRun(d){return p.run(d.runId,process.pid),null},releaseScheduledTaskRun(d){return n.run(d.runId),null}}}}function ee(e){let a=T(e,"projects")&&T(e,"project_roots")?{upsertProject:e.prepare(`INSERT INTO projects (id, name, created_at, sort_order, kind)
86
+ ) STRICT`);let s=i.prepare("SELECT run_id, pid FROM run_owners"),n=i.prepare("DELETE FROM run_owners WHERE run_id = ?"),p=i.prepare("INSERT INTO run_owners (run_id, pid) VALUES (?, ?)");return {initialize(c){try{return i.transaction(c).immediate()}finally{i.pragma("busy_timeout = 0");}},close:()=>i.close(),operations:{acquireScheduledTaskLock(){if(i.inTransaction)return false;try{return i.exec("BEGIN IMMEDIATE"),!0}catch(c){if(c.code==="SQLITE_BUSY")return false;throw c}},releaseScheduledTaskLock(){return i.exec("COMMIT"),null},listActiveScheduledTaskRunIds(){let c=[];for(let u of s.all())try{process.kill(u.pid,0),c.push(u.run_id);}catch(t){t.code==="ESRCH"?n.run(u.run_id):c.push(u.run_id);}return c},claimScheduledTaskRun(c){return p.run(c.runId,process.pid),null},releaseScheduledTaskRun(c){return n.run(c.runId),null}}}}function he(e){let i=S(e,"projects")&&S(e,"project_roots")?{upsertProject:e.prepare(`INSERT INTO projects (id, name, created_at, sort_order, kind)
63
87
  VALUES (?, ?, ?, (
64
88
  SELECT COALESCE(MAX(sort_order) + 1, 0) FROM projects WHERE kind = 'user'
65
89
  ), 'user')
@@ -91,9 +115,9 @@ var h=["mcp_elicitations","request_permissions","rules","sandbox_approval","skil
91
115
  approvals_reviewer = excluded.approvals_reviewer,
92
116
  fast_mode = excluded.fast_mode`),copyTaskSettings:e.prepare(`INSERT INTO task_settings
93
117
  (project_id, task_id, approval_policy, model, reasoning_effort, updated_at,
94
- sandbox_mode, approvals_reviewer)
118
+ sandbox_mode, approvals_reviewer, engine_options)
95
119
  SELECT ?, task_id, approval_policy, model, reasoning_effort, updated_at,
96
- sandbox_mode, approvals_reviewer
120
+ sandbox_mode, approvals_reviewer, engine_options
97
121
  FROM task_settings WHERE project_id = ?
98
122
  ON CONFLICT(project_id, task_id) DO UPDATE SET
99
123
  approval_policy = excluded.approval_policy,
@@ -101,12 +125,13 @@ var h=["mcp_elicitations","request_permissions","rules","sandbox_approval","skil
101
125
  reasoning_effort = excluded.reasoning_effort,
102
126
  updated_at = excluded.updated_at,
103
127
  sandbox_mode = excluded.sandbox_mode,
104
- approvals_reviewer = excluded.approvals_reviewer`),writeProjectSortOrder:e.prepare("UPDATE projects SET sort_order = ? WHERE id = ? AND kind = 'user'"),readProjectDefaults:e.prepare(`SELECT approval_policy, approvals_reviewer, fast_mode, model,
128
+ approvals_reviewer = excluded.approvals_reviewer,
129
+ engine_options = excluded.engine_options`),writeProjectSortOrder:e.prepare("UPDATE projects SET sort_order = ? WHERE id = ? AND kind = 'user'"),readProjectDefaults:e.prepare(`SELECT approval_policy, approvals_reviewer, fast_mode, model,
105
130
  reasoning_effort, sandbox_mode
106
- FROM project_defaults WHERE project_id = ?`),readGlobalSettings:e.prepare(`SELECT approval_policy, approvals_reviewer, commit_message_model, commit_message_prompt,
131
+ FROM project_defaults WHERE project_id = ?`),readGlobalSettings:e.prepare(`SELECT task_title_prompt, default_agent, approval_policy, approvals_reviewer, commit_message_model, commit_message_prompt,
107
132
  model, reasoning_effort, sandbox_mode, default_open_app_id, fast_mode, follow_up_behavior, pet_enabled, pet_id
108
133
  FROM global_settings WHERE id = 1`),readProviderConnection:e.prepare(`SELECT mode, custom_base_url, custom_models_json, updated_at
109
- FROM provider_connection WHERE id = 1`),readTaskSettings:e.prepare("SELECT approval_policy, approvals_reviewer, model, reasoning_effort, sandbox_mode FROM task_settings WHERE project_id = ? AND task_id = ?"),writeProjectDefaults:e.prepare(`
134
+ FROM provider_connection WHERE id = 1`),readTaskSettings:e.prepare("SELECT approval_policy, approvals_reviewer, model, reasoning_effort, sandbox_mode, engine_options FROM task_settings WHERE project_id = ? AND task_id = ?"),writeProjectDefaults:e.prepare(`
110
135
  INSERT INTO project_defaults (
111
136
  project_id, approval_policy, approvals_reviewer, fast_mode, model,
112
137
  reasoning_effort, sandbox_mode, updated_at
@@ -121,10 +146,12 @@ var h=["mcp_elicitations","request_permissions","rules","sandbox_approval","skil
121
146
  updated_at = excluded.updated_at
122
147
  `),writeGlobalSettings:e.prepare(`
123
148
  INSERT INTO global_settings (
124
- id, approval_policy, approvals_reviewer, commit_message_model, commit_message_prompt, model,
149
+ id, task_title_prompt, default_agent, approval_policy, approvals_reviewer, commit_message_model, commit_message_prompt, model,
125
150
  reasoning_effort, sandbox_mode, default_open_app_id, fast_mode, follow_up_behavior, pet_enabled, pet_id, updated_at
126
- ) VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
151
+ ) VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
127
152
  ON CONFLICT(id) DO UPDATE SET
153
+ task_title_prompt = excluded.task_title_prompt,
154
+ default_agent = excluded.default_agent,
128
155
  approval_policy = excluded.approval_policy,
129
156
  approvals_reviewer = excluded.approvals_reviewer,
130
157
  commit_message_model = excluded.commit_message_model,
@@ -148,13 +175,14 @@ var h=["mcp_elicitations","request_permissions","rules","sandbox_approval","skil
148
175
  updated_at = excluded.updated_at
149
176
  `),writeTaskSettings:e.prepare(`
150
177
  INSERT INTO task_settings (
151
- project_id, task_id, approval_policy, approvals_reviewer, model, reasoning_effort, sandbox_mode, updated_at
152
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
178
+ project_id, task_id, approval_policy, approvals_reviewer, model, reasoning_effort, sandbox_mode, updated_at, engine_options
179
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
153
180
  ON CONFLICT(project_id, task_id) DO UPDATE SET
181
+ engine_options = excluded.engine_options,
154
182
  approval_policy = excluded.approval_policy,
155
183
  approvals_reviewer = excluded.approvals_reviewer,
156
184
  model = excluded.model,
157
185
  reasoning_effort = excluded.reasoning_effort,
158
186
  sandbox_mode = excluded.sandbox_mode,
159
187
  updated_at = excluded.updated_at
160
- `)}:void 0;function s(){if(a===void 0)throw new Error("SQLite state tables are unavailable");return a}function n(t){let r=s();return v(r.readProject.get(t),r.readProjectRoots.all(t))}function p(){let t=s();return x(t.listProjects.all(),t.listProjectRoots.all())}function d(t){let r=s();if(!Array.isArray(t.roots)||t.roots.length===0)throw new Error("Project roots must contain a primary root");let l=t.roots.map(m=>m.id),_=t.roots.map(m=>m.path);if(l.some(m=>typeof m!="string"||m.length===0))throw new Error("Project root ids must be non-empty strings");if(new Set(l).size!==l.length)throw new Error("Project root ids must be unique");if(_.some(m=>typeof m!="string"||m.length===0))throw new Error("Project root paths must be non-empty strings");if(new Set(_).size!==_.length)throw new Error("Project root paths must be unique");r.removeProjectRoots.run(t.id),_.forEach((m,E)=>{r.writeProjectRoot.run(t.id,E,l[E],m);});}let u=e.transaction(t=>{let r=s(),l=r.listProjectIds.all().map(E=>E.id),_=new Set(t);if(!(t.length===l.length&&_.size===l.length&&l.every(E=>_.has(E))))throw new Error("Project order must contain every project exactly once");return t.forEach((E,Y)=>{r.writeProjectSortOrder.run(Y,E);}),p()}),o=e.transaction(t=>{let r=s(),l=new Set(t.map(_=>_.id));if(l.size!==t.length)throw new Error("Project projection must contain unique project ids");for(let{id:_}of r.listProjectIds.all())l.has(_)||r.removeProject.run(_);return t.forEach((_,m)=>{r.upsertProjectAtOrder.run(_.id,_.name,_.createdAt,m),d(_);}),p()}),i=e.transaction((t,r)=>{let l=s(),_=l.readProjectWithOrder.get(t),m=_?.sort_order??l.listProjectIds.all().length;l.upsertProjectAtOrder.run(r.id,r.name,r.createdAt,m),d(r),t!==r.id&&_!==void 0&&(l.copyProjectDefaults.run(r.id,t),l.copyTaskSettings.run(r.id,t),l.removeProject.run(t));let E=n(r.id);if(E===void 0)throw new Error("Migrated Project projection could not be stored");return E}),c=T(e,"project_source_migration")?{complete:e.prepare("UPDATE project_source_migration SET completed = 1 WHERE id = 1"),read:e.prepare("SELECT completed, recover_unassigned FROM project_source_migration WHERE id = 1")}:void 0;return {...Q(e),diagnose(){e.exec("BEGIN IMMEDIATE");try{e.prepare("INSERT INTO schema_migrations (version, name, applied_at) VALUES (-1, 'doctor', ?)").run(new Date().toISOString());}finally{e.exec("ROLLBACK");}let t=e.pragma("synchronous",{simple:true});return {busyTimeout:e.pragma("busy_timeout",{simple:true}),foreignKeys:e.pragma("foreign_keys",{simple:true})===1,integrityCheck:e.pragma("integrity_check",{simple:true}),journalMode:e.pragma("journal_mode",{simple:true}),migrationVersion:e.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations").get().version,synchronous:t===1?"normal":String(t),writable:true}},completeProjectSourceMigration(){if(c===void 0)throw new Error("Project source migration state is unavailable");return c.complete.run(),null},listProjects(){return p()},readProject(t){return n(t.projectId)},readProjectSourceMigration(){if(c===void 0)throw new Error("Project source migration state is unavailable");let t=c.read.get();if(t===void 0)throw new Error("Project source migration state is missing");return {completed:t.completed===1,recoverUnassigned:t.recover_unassigned===1}},replaceProjects(t){return o(t.projects)},upsertProject(t){return e.transaction(r=>{s().upsertProject.run(r.id,r.name,r.createdAt),d(r);let _=n(r.id);if(_===void 0)throw new Error("Project projection could not be stored");return _})(t.project)},migrateProject(t){return i(t.legacyProjectId,t.project)},deleteProject(t){return s().removeProject.run(t.projectId).changes>0},setProjectOrder(t){return u(t.projectIds)},readProjectDefaults(t){return D(s().readProjectDefaults.get(t.projectId))},readGlobalSettings(){return C(s().readGlobalSettings.get())},readProviderConnection(){return w(s().readProviderConnection.get())},readTaskSettings(t){return P(s().readTaskSettings.get(t.projectId,t.taskId))},writeProjectDefaults(t){let r=t.settings;return s().writeProjectDefaults.run(t.projectId,R(r.approvalPolicy),r.approvalsReviewer,r.fastMode?1:0,r.model,r.reasoningEffort,r.sandboxMode,t.updatedAt),r},writeGlobalSettings(t){let r=t.settings;return s().writeGlobalSettings.run(R(r.approvalPolicy),r.approvalsReviewer,r.commitMessageModel,r.commitMessagePrompt,r.model,r.reasoningEffort,r.sandboxMode,r.defaultOpenAppId,r.fastMode?1:0,r.followUpBehavior,r.pet.enabled?1:0,r.pet.selectedPetId,t.updatedAt),r},writeProviderConnection(t){return s().writeProviderConnection.run(t.mode,t.customBaseUrl,t.customModelsJson,t.updatedAt),null},writeTaskSettings(t){let r=t.settings;return s().writeTaskSettings.run(t.projectId,t.taskId,R(r.approvalPolicy),r.approvalsReviewer,r.model,r.reasoningEffort,r.sandboxMode,t.updatedAt),r}}}var f,j;try{mkdirSync(resolve(workerData.databasePath,".."),{recursive:!0}),j=b(workerData.databasePath),j.initialize(()=>{f=new $(workerData.databasePath),M(f);let a=F(f);y(f,workerData.migrations,s=>{s===15&&A(f,a);}),A(f,a),U(f);});let e={...ee(f),...j.operations};parentPort.on("message",a=>{try{if(a.operation==="close"){j.close(),f.close(),parentPort.postMessage({id:a.id,result:null,type:"response"}),parentPort.close();return}let s=e[a.operation];if(typeof s!="function")throw new Error(`Unknown SQLite worker operation: ${String(a.operation)}`);parentPort.postMessage({id:a.id,result:s(a.payload),type:"response"});}catch(s){parentPort.postMessage({id:a.id,error:k(s),type:"response"});}}),parentPort.postMessage({type:"ready"});}catch(e){j?.close(),f?.close(),parentPort.postMessage({error:k(e),type:"fatal"}),parentPort.close();}
188
+ `)}:void 0;function s(){if(i===void 0)throw new Error("SQLite state tables are unavailable");return i}function n(o){let r=s();return P(r.readProject.get(o),r.readProjectRoots.all(o))}function p(){let o=s();return X(o.listProjects.all(),o.listProjectRoots.all())}function c(o){let r=s();if(!Array.isArray(o.roots)||o.roots.length===0)throw new Error("Project roots must contain a primary root");let l=o.roots.map(E=>E.id),_=o.roots.map(E=>E.path);if(l.some(E=>typeof E!="string"||E.length===0))throw new Error("Project root ids must be non-empty strings");if(new Set(l).size!==l.length)throw new Error("Project root ids must be unique");if(_.some(E=>typeof E!="string"||E.length===0))throw new Error("Project root paths must be non-empty strings");if(new Set(_).size!==_.length)throw new Error("Project root paths must be unique");r.removeProjectRoots.run(o.id),_.forEach((E,f)=>{r.writeProjectRoot.run(o.id,f,l[f],E);});}let u=e.transaction(o=>{let r=s(),l=r.listProjectIds.all().map(f=>f.id),_=new Set(o);if(!(o.length===l.length&&_.size===l.length&&l.every(f=>_.has(f))))throw new Error("Project order must contain every project exactly once");return o.forEach((f,le)=>{r.writeProjectSortOrder.run(le,f);}),p()}),t=e.transaction(o=>{let r=s(),l=new Set(o.map(_=>_.id));if(l.size!==o.length)throw new Error("Project projection must contain unique project ids");for(let{id:_}of r.listProjectIds.all())l.has(_)||r.removeProject.run(_);return o.forEach((_,E)=>{r.upsertProjectAtOrder.run(_.id,_.name,_.createdAt,E),c(_);}),p()}),a=e.transaction((o,r)=>{let l=s(),_=l.readProjectWithOrder.get(o),E=_?.sort_order??l.listProjectIds.all().length;l.upsertProjectAtOrder.run(r.id,r.name,r.createdAt,E),c(r),o!==r.id&&_!==void 0&&(l.copyProjectDefaults.run(r.id,o),l.copyTaskSettings.run(r.id,o),l.removeProject.run(o));let f=n(r.id);if(f===void 0)throw new Error("Migrated Project projection could not be stored");return f}),d=S(e,"project_source_migration")?{complete:e.prepare("UPDATE project_source_migration SET completed = 1 WHERE id = 1"),read:e.prepare("SELECT completed, recover_unassigned FROM project_source_migration WHERE id = 1")}:void 0;return {...pe(e),diagnose(){e.exec("BEGIN IMMEDIATE");try{e.prepare("INSERT INTO schema_migrations (version, name, applied_at) VALUES (-1, 'doctor', ?)").run(new Date().toISOString());}finally{e.exec("ROLLBACK");}let o=e.pragma("synchronous",{simple:true});return {busyTimeout:e.pragma("busy_timeout",{simple:true}),foreignKeys:e.pragma("foreign_keys",{simple:true})===1,integrityCheck:e.pragma("integrity_check",{simple:true}),journalMode:e.pragma("journal_mode",{simple:true}),migrationVersion:e.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations").get().version,synchronous:o===1?"normal":String(o),writable:true}},completeProjectSourceMigration(){if(d===void 0)throw new Error("Project source migration state is unavailable");return d.complete.run(),null},listProjects(){return p()},readProject(o){return n(o.projectId)},readProjectSourceMigration(){if(d===void 0)throw new Error("Project source migration state is unavailable");let o=d.read.get();if(o===void 0)throw new Error("Project source migration state is missing");return {completed:o.completed===1,recoverUnassigned:o.recover_unassigned===1}},replaceProjects(o){return t(o.projects)},upsertProject(o){return e.transaction(r=>{s().upsertProject.run(r.id,r.name,r.createdAt),c(r);let _=n(r.id);if(_===void 0)throw new Error("Project projection could not be stored");return _})(o.project)},migrateProject(o){return a(o.legacyProjectId,o.project)},deleteProject(o){return s().removeProject.run(o.projectId).changes>0},setProjectOrder(o){return u(o.projectIds)},readProjectDefaults(o){return $(s().readProjectDefaults.get(o.projectId))},readGlobalSettings(){return Y(s().readGlobalSettings.get())},readProviderConnection(){return z(s().readProviderConnection.get())},readTaskSettings(o){return Q(s().readTaskSettings.get(o.projectId,o.taskId))},writeProjectDefaults(o){let r=o.settings;return s().writeProjectDefaults.run(o.projectId,v(r.approvalPolicy),r.approvalsReviewer,r.fastMode?1:0,r.model,r.reasoningEffort,r.sandboxMode,o.updatedAt),r},writeGlobalSettings(o){let r=o.settings;return s().writeGlobalSettings.run(r.taskTitlePrompt??"",r.defaultAgent??null,v(r.approvalPolicy),r.approvalsReviewer,r.defaultModel,r.commitMessagePrompt,r.model,r.reasoningEffort,r.sandboxMode,r.defaultOpenAppId,r.fastMode?1:0,r.followUpBehavior,r.pet.enabled?1:0,r.pet.selectedPetId,o.updatedAt),r},writeProviderConnection(o){return s().writeProviderConnection.run(o.mode,o.customBaseUrl,o.customModelsJson,o.updatedAt),null},writeTaskSettings(o){let r=o.settings;return s().writeTaskSettings.run(o.projectId,o.taskId,v(r.approvalPolicy),r.approvalsReviewer,r.model,r.reasoningEffort,r.sandboxMode,o.updatedAt,r.engineOptions===void 0?null:JSON.stringify(r.engineOptions)),r}}}var T,R;try{V(workerData.databasePath,workerData.legacyDirectories),R=ue(workerData.databasePath),R.initialize(()=>{T=new q(workerData.databasePath),K(T);let i=Z(T);ee(T,workerData.migrations,s=>{s===15&&M(T,i);}),M(T,i),te(T);});let e={...he(T),...R.operations};parentPort.on("message",i=>{try{if(i.operation==="close"){R.close(),T.close(),parentPort.postMessage({id:i.id,result:null,type:"response"}),parentPort.close();return}let s=e[i.operation];if(typeof s!="function")throw new Error(`Unknown SQLite worker operation: ${String(i.operation)}`);parentPort.postMessage({id:i.id,result:s(i.payload),type:"response"});}catch(s){parentPort.postMessage({id:i.id,error:H(s),type:"response"});}}),parentPort.postMessage({type:"ready"});}catch(e){R?.close(),T?.close(),parentPort.postMessage({error:H(e),type:"fatal"}),parentPort.close();}