@cloudcli-ai/cloudcli 1.37.2 → 1.37.4

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 (453) hide show
  1. package/README.md +269 -0
  2. package/dist/assets/{abnfDiagram-N423BO3Z-C4UAoHJb.js → abnfDiagram-N423BO3Z-Dmkwx38H.js} +1 -1
  3. package/dist/assets/{arc-B8jF-ja9.js → arc-DLe9AYuO.js} +1 -1
  4. package/dist/assets/{architectureDiagram-T3A2C74G-C_Wur_CU.js → architectureDiagram-T3A2C74G-CBbbbNUW.js} +1 -1
  5. package/dist/assets/{blockDiagram-VBNYF7ZC-Cq4P1i8t.js → blockDiagram-VBNYF7ZC-CaMEaWu4.js} +1 -1
  6. package/dist/assets/{c4Diagram-5PPSVZJV-C1wG4eUj.js → c4Diagram-5PPSVZJV-DhjMgNnR.js} +1 -1
  7. package/dist/assets/channel-CWrmwsir.js +1 -0
  8. package/dist/assets/{chunk-2GRJ4B5K-B8fnBG6E.js → chunk-2GRJ4B5K-yjl3-F-i.js} +1 -1
  9. package/dist/assets/{chunk-2Q5K7J3B-WdfPooPJ.js → chunk-2Q5K7J3B-DsAYaWEP.js} +1 -1
  10. package/dist/assets/{chunk-5RXB4S5H-DhZJuG2E.js → chunk-5RXB4S5H-Bt5qmqOX.js} +1 -1
  11. package/dist/assets/{chunk-5VM5RSS4-B0rjslal.js → chunk-5VM5RSS4-yWrWVvUt.js} +1 -1
  12. package/dist/assets/{chunk-6Q2QTUOP-CG2Oj4jL.js → chunk-6Q2QTUOP-Dt66K5xb.js} +1 -1
  13. package/dist/assets/{chunk-GF5L2VYU-rrl2lRxY.js → chunk-GF5L2VYU-DA0vzaj4.js} +1 -1
  14. package/dist/assets/{chunk-JWPE2WC7-CjVbrVMA.js → chunk-JWPE2WC7-CUkbx96V.js} +1 -1
  15. package/dist/assets/{chunk-KBJHAD2P-CRzKgU8S.js → chunk-KBJHAD2P-DWKxx1WH.js} +1 -1
  16. package/dist/assets/{chunk-RYQCIY6F-DBz4GTZF.js → chunk-RYQCIY6F-BqluplN0.js} +1 -1
  17. package/dist/assets/{chunk-XXDRQBXY-wHxalsXk.js → chunk-XXDRQBXY-DelKg3Xf.js} +1 -1
  18. package/dist/assets/classDiagram-JCYQIIEL-COAGCC6w.js +1 -0
  19. package/dist/assets/classDiagram-v2-OCEON4UE-COAGCC6w.js +1 -0
  20. package/dist/assets/{cose-bilkent-JH36ORCC-s1hygY8e.js → cose-bilkent-JH36ORCC-DHV93-Em.js} +1 -1
  21. package/dist/assets/{cynefin-VYW2F7L2-C4LGV15i.js → cynefin-VYW2F7L2-B9HZgoGX.js} +1 -1
  22. package/dist/assets/{cynefinDiagram-MW4NZA55-C5uhu7B3.js → cynefinDiagram-MW4NZA55-hFjjEQg8.js} +1 -1
  23. package/dist/assets/{dagre-VZM6K2ZE-B-OBTewm.js → dagre-VZM6K2ZE-CpeVOC7V.js} +1 -1
  24. package/dist/assets/{diagram-7IWD3JNH-BjGKQxih.js → diagram-7IWD3JNH-D0H1UoRA.js} +1 -1
  25. package/dist/assets/{diagram-B4RE2ZJO-BMKz1X2L.js → diagram-B4RE2ZJO-6Y7BQUup.js} +1 -1
  26. package/dist/assets/{diagram-LBJQPF4R-DNh-GhKC.js → diagram-LBJQPF4R-C0nNOwht.js} +1 -1
  27. package/dist/assets/{diagram-Q27KOJAE-BaTG9jPT.js → diagram-Q27KOJAE-En6QlOVX.js} +1 -1
  28. package/dist/assets/{diagram-UB23O5K3-BUwo2OvJ.js → diagram-UB23O5K3-CmPiNeGD.js} +1 -1
  29. package/dist/assets/{ebnfDiagram-BXEA7PRR-DAZgfzX2.js → ebnfDiagram-BXEA7PRR-Bygzp1Qt.js} +1 -1
  30. package/dist/assets/{erDiagram-JOGREHBK-1w1CcGEb.js → erDiagram-JOGREHBK-CwScRfzl.js} +1 -1
  31. package/dist/assets/{flowDiagram-UKHOOZJN-D4EII8Jj.js → flowDiagram-UKHOOZJN-bKX-0xP6.js} +1 -1
  32. package/dist/assets/{ganttDiagram-PKOTCBZU-ChvJZAgB.js → ganttDiagram-PKOTCBZU-DtZPKXGd.js} +1 -1
  33. package/dist/assets/{gitGraphDiagram-DS77QQ5N-DtOn41S8.js → gitGraphDiagram-DS77QQ5N-CUOtdL1o.js} +1 -1
  34. package/dist/assets/index-CdjIFxM2.js +5004 -0
  35. package/dist/assets/index-DgafhGTF.css +32 -0
  36. package/dist/assets/{infoDiagram-6WML65LV-DN_PVEJZ.js → infoDiagram-6WML65LV-ciRQTS0h.js} +1 -1
  37. package/dist/assets/{ishikawaDiagram-WSZJBQD7-DbkF1kXb.js → ishikawaDiagram-WSZJBQD7-CgjhQZ84.js} +1 -1
  38. package/dist/assets/{journeyDiagram-NVQOT4AX-pJwmhddE.js → journeyDiagram-NVQOT4AX-BsbQSeIW.js} +1 -1
  39. package/dist/assets/{kanban-definition-27J2QSJJ-PPAPgNp5.js → kanban-definition-27J2QSJJ-CrwzY9Jw.js} +1 -1
  40. package/dist/assets/{linear-iPR-J9f7.js → linear-BUaCDr6l.js} +1 -1
  41. package/dist/assets/{mermaid.core-BEUL86Z6.js → mermaid.core-ClgdUU0j.js} +5 -5
  42. package/dist/assets/{mindmap-definition-FAOFIHXS-BvZoBib7.js → mindmap-definition-FAOFIHXS-BictljY1.js} +1 -1
  43. package/dist/assets/{pegDiagram-VL7TDLO6-DhYreaUd.js → pegDiagram-VL7TDLO6-BXdByy_U.js} +1 -1
  44. package/dist/assets/{pieDiagram-7S7Q4E2Y-CrOHlyD0.js → pieDiagram-7S7Q4E2Y-uZsMfkRX.js} +1 -1
  45. package/dist/assets/{quadrantDiagram-CIZ2JOQS-D4g5yH3t.js → quadrantDiagram-CIZ2JOQS-7lCv4QIj.js} +1 -1
  46. package/dist/assets/{railroadDiagram-AXF67PYL-Dj39lHlf.js → railroadDiagram-AXF67PYL-07dxIWbi.js} +1 -1
  47. package/dist/assets/{requirementDiagram-LRYGKXZP-1AS4Zgm_.js → requirementDiagram-LRYGKXZP-Cb31Yv1_.js} +1 -1
  48. package/dist/assets/{sankeyDiagram-W5VNT64P-CKlMn19P.js → sankeyDiagram-W5VNT64P-X0YPSyF9.js} +1 -1
  49. package/dist/assets/{sequenceDiagram-SI44F4Z6-B_j3qyvo.js → sequenceDiagram-SI44F4Z6-BdBxSIlP.js} +1 -1
  50. package/dist/assets/server.browser-CtX3Hdl5.js +27 -0
  51. package/dist/assets/{sizeCapture-X5ZJPWSS-Bp2Op16v.js → sizeCapture-X5ZJPWSS-DQM5xAyD.js} +1 -1
  52. package/dist/assets/{stateDiagram-OKZ733FA-C0cN6DoY.js → stateDiagram-OKZ733FA-DJ3xkLUF.js} +1 -1
  53. package/dist/assets/stateDiagram-v2-UEYNNEHI-vAaE4zNo.js +1 -0
  54. package/dist/assets/{swimlanes-SLNWSIFB-BEvXOV9b.js → swimlanes-SLNWSIFB-rjfYdW0w.js} +2 -2
  55. package/dist/assets/swimlanesDiagram-ULZ7WXOC-TV2IF4Nq.js +8 -0
  56. package/dist/assets/{timeline-definition-Z64GVDOM-zdJQinvZ.js → timeline-definition-Z64GVDOM-DZMra5do.js} +1 -1
  57. package/dist/assets/{vendor-codemirror-OwyKSvPE.js → vendor-codemirror-CYrSt7-U.js} +18 -18
  58. package/dist/assets/{vennDiagram-T6HMQDX7-DuF1uZMY.js → vennDiagram-T6HMQDX7-BevD8uu0.js} +1 -1
  59. package/dist/assets/{wardleyDiagram-T6FBY63Y-B9AlLQup.js → wardleyDiagram-T6FBY63Y-DsIyXB7z.js} +1 -1
  60. package/dist/assets/{xychartDiagram-ELKLHX3M-DTJX48Qg.js → xychartDiagram-ELKLHX3M-G3PlF3ko.js} +1 -1
  61. package/dist/index.html +3 -3
  62. package/dist-server/server/index.js +11 -4
  63. package/dist-server/server/index.js.map +1 -1
  64. package/dist-server/server/modules/agent/agent.module.js +9 -2
  65. package/dist-server/server/modules/agent/agent.module.js.map +1 -1
  66. package/dist-server/server/modules/agent/agent.routes.js +177 -130
  67. package/dist-server/server/modules/agent/agent.routes.js.map +1 -1
  68. package/dist-server/server/modules/agent/tests/agent-run-registration.test.js +306 -0
  69. package/dist-server/server/modules/agent/tests/agent-run-registration.test.js.map +1 -0
  70. package/dist-server/server/modules/agent/tests/agent.routes.test.js +48 -2
  71. package/dist-server/server/modules/agent/tests/agent.routes.test.js.map +1 -1
  72. package/dist-server/server/modules/browser-use/browser-use.routes.js +39 -33
  73. package/dist-server/server/modules/browser-use/browser-use.routes.js.map +1 -1
  74. package/dist-server/server/modules/database/connection.js +1 -1
  75. package/dist-server/server/modules/database/connection.js.map +1 -1
  76. package/dist-server/server/modules/database/index.js +5 -0
  77. package/dist-server/server/modules/database/index.js.map +1 -1
  78. package/dist-server/server/modules/database/migrations.js +45 -1
  79. package/dist-server/server/modules/database/migrations.js.map +1 -1
  80. package/dist-server/server/modules/database/repositories/provider-models.js +60 -6
  81. package/dist-server/server/modules/database/repositories/provider-models.js.map +1 -1
  82. package/dist-server/server/modules/database/repositories/scheduled-messages.db.js +71 -0
  83. package/dist-server/server/modules/database/repositories/scheduled-messages.db.js.map +1 -0
  84. package/dist-server/server/modules/database/repositories/session-drafts.db.js +105 -0
  85. package/dist-server/server/modules/database/repositories/session-drafts.db.js.map +1 -0
  86. package/dist-server/server/modules/database/repositories/sessions.db.js +144 -5
  87. package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -1
  88. package/dist-server/server/modules/database/repositories/user-preferences.db.js +65 -0
  89. package/dist-server/server/modules/database/repositories/user-preferences.db.js.map +1 -0
  90. package/dist-server/server/modules/database/schema.js +99 -0
  91. package/dist-server/server/modules/database/schema.js.map +1 -1
  92. package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js +99 -0
  93. package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js.map +1 -1
  94. package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +39 -0
  95. package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -1
  96. package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js +105 -0
  97. package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js.map +1 -0
  98. package/dist-server/server/modules/file-tree/file-tree.module.js +2 -1
  99. package/dist-server/server/modules/file-tree/file-tree.module.js.map +1 -1
  100. package/dist-server/server/modules/file-tree/file-tree.service.js +44 -7
  101. package/dist-server/server/modules/file-tree/file-tree.service.js.map +1 -1
  102. package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js +126 -1
  103. package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js.map +1 -1
  104. package/dist-server/server/modules/git/git-branch-diff.service.js +142 -0
  105. package/dist-server/server/modules/git/git-branch-diff.service.js.map +1 -0
  106. package/dist-server/server/modules/git/git-branch.service.js.map +1 -1
  107. package/dist-server/server/modules/git/git.routes.js +92 -5
  108. package/dist-server/server/modules/git/git.routes.js.map +1 -1
  109. package/dist-server/server/modules/git/tests/git-branch-diff.service.test.js +160 -0
  110. package/dist-server/server/modules/git/tests/git-branch-diff.service.test.js.map +1 -0
  111. package/dist-server/server/modules/projects/project-clone.routes.js +108 -0
  112. package/dist-server/server/modules/projects/project-clone.routes.js.map +1 -0
  113. package/dist-server/server/modules/projects/projects.routes.js +13 -66
  114. package/dist-server/server/modules/projects/projects.routes.js.map +1 -1
  115. package/dist-server/server/modules/projects/services/project-clone-request.service.js +36 -0
  116. package/dist-server/server/modules/projects/services/project-clone-request.service.js.map +1 -0
  117. package/dist-server/server/modules/projects/services/project-clone.service.js +86 -32
  118. package/dist-server/server/modules/projects/services/project-clone.service.js.map +1 -1
  119. package/dist-server/server/modules/projects/services/project-delete.service.js +12 -1
  120. package/dist-server/server/modules/projects/services/project-delete.service.js.map +1 -1
  121. package/dist-server/server/modules/projects/services/project-star.service.js +2 -2
  122. package/dist-server/server/modules/projects/services/project-star.service.js.map +1 -1
  123. package/dist-server/server/modules/projects/tests/project-clone.routes.test.js +191 -0
  124. package/dist-server/server/modules/projects/tests/project-clone.routes.test.js.map +1 -0
  125. package/dist-server/server/modules/projects/tests/project-clone.service.test.js +275 -0
  126. package/dist-server/server/modules/projects/tests/project-clone.service.test.js.map +1 -1
  127. package/dist-server/server/modules/providers/index.js +3 -0
  128. package/dist-server/server/modules/providers/index.js.map +1 -1
  129. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +62 -9
  130. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
  131. package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js +46 -0
  132. package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js.map +1 -0
  133. package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +31 -12
  134. package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -1
  135. package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js +472 -53
  136. package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js.map +1 -1
  137. package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +38 -11
  138. package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -1
  139. package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +1007 -60
  140. package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -1
  141. package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +4 -1
  142. package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js.map +1 -1
  143. package/dist-server/server/modules/providers/list/claude/claude.provider.js +2 -0
  144. package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -1
  145. package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js +204 -0
  146. package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js.map +1 -0
  147. package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js +32 -0
  148. package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js.map +1 -0
  149. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +47 -0
  150. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -1
  151. package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js +71 -53
  152. package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js.map +1 -1
  153. package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +8 -0
  154. package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -1
  155. package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +1621 -431
  156. package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -1
  157. package/dist-server/server/modules/providers/list/codex/codex.provider.js +2 -0
  158. package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -1
  159. package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js +9 -2
  160. package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js.map +1 -1
  161. package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js +16 -8
  162. package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js.map +1 -1
  163. package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -1
  164. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +274 -9
  165. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -1
  166. package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js +5 -2
  167. package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js.map +1 -1
  168. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +19 -2
  169. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -1
  170. package/dist-server/server/modules/providers/provider.routes.js +134 -2
  171. package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
  172. package/dist-server/server/modules/providers/services/claude-cli-liveness.service.js +100 -0
  173. package/dist-server/server/modules/providers/services/claude-cli-liveness.service.js.map +1 -0
  174. package/dist-server/server/modules/providers/services/claude-settings-permissions.service.js +97 -0
  175. package/dist-server/server/modules/providers/services/claude-settings-permissions.service.js.map +1 -0
  176. package/dist-server/server/modules/providers/services/provider-capabilities.service.js +23 -1
  177. package/dist-server/server/modules/providers/services/provider-capabilities.service.js.map +1 -1
  178. package/dist-server/server/modules/providers/services/provider-models.service.js +59 -5
  179. package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -1
  180. package/dist-server/server/modules/providers/services/provider-runtime.service.js +8 -0
  181. package/dist-server/server/modules/providers/services/provider-runtime.service.js.map +1 -1
  182. package/dist-server/server/modules/providers/services/provider-token-usage.service.js +139 -35
  183. package/dist-server/server/modules/providers/services/provider-token-usage.service.js.map +1 -1
  184. package/dist-server/server/modules/providers/services/session-conversations-search.service.js +2 -4
  185. package/dist-server/server/modules/providers/services/session-conversations-search.service.js.map +1 -1
  186. package/dist-server/server/modules/providers/services/session-history-cache.service.js +91 -0
  187. package/dist-server/server/modules/providers/services/session-history-cache.service.js.map +1 -0
  188. package/dist-server/server/modules/providers/services/session-synchronizer.service.js +105 -32
  189. package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -1
  190. package/dist-server/server/modules/providers/services/sessions-watcher.service.js +3 -60
  191. package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
  192. package/dist-server/server/modules/providers/services/sessions.service.js +252 -12
  193. package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -1
  194. package/dist-server/server/modules/providers/tests/claude-auth.test.js +183 -0
  195. package/dist-server/server/modules/providers/tests/claude-auth.test.js.map +1 -1
  196. package/dist-server/server/modules/providers/tests/claude-background-work.test.js +172 -0
  197. package/dist-server/server/modules/providers/tests/claude-background-work.test.js.map +1 -0
  198. package/dist-server/server/modules/providers/tests/claude-compaction.test.js +84 -0
  199. package/dist-server/server/modules/providers/tests/claude-compaction.test.js.map +1 -0
  200. package/dist-server/server/modules/providers/tests/claude-message-model.test.js +123 -0
  201. package/dist-server/server/modules/providers/tests/claude-message-model.test.js.map +1 -0
  202. package/dist-server/server/modules/providers/tests/claude-models.test.js +39 -0
  203. package/dist-server/server/modules/providers/tests/claude-models.test.js.map +1 -0
  204. package/dist-server/server/modules/providers/tests/claude-runtime-hold.test.js +265 -0
  205. package/dist-server/server/modules/providers/tests/claude-runtime-hold.test.js.map +1 -0
  206. package/dist-server/server/modules/providers/tests/claude-sessions.test.js +1815 -33
  207. package/dist-server/server/modules/providers/tests/claude-sessions.test.js.map +1 -1
  208. package/dist-server/server/modules/providers/tests/claude-settings-permissions.test.js +228 -0
  209. package/dist-server/server/modules/providers/tests/claude-settings-permissions.test.js.map +1 -0
  210. package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js +16 -0
  211. package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js.map +1 -0
  212. package/dist-server/server/modules/providers/tests/claude-token-budget.test.js +85 -0
  213. package/dist-server/server/modules/providers/tests/claude-token-budget.test.js.map +1 -0
  214. package/dist-server/server/modules/providers/tests/codex-message-editing.test.js +338 -0
  215. package/dist-server/server/modules/providers/tests/codex-message-editing.test.js.map +1 -0
  216. package/dist-server/server/modules/providers/tests/codex-models.test.js +25 -0
  217. package/dist-server/server/modules/providers/tests/codex-models.test.js.map +1 -0
  218. package/dist-server/server/modules/providers/tests/codex-runtime.test.js +83 -0
  219. package/dist-server/server/modules/providers/tests/codex-runtime.test.js.map +1 -0
  220. package/dist-server/server/modules/providers/tests/codex-session-fork.test.js +54 -0
  221. package/dist-server/server/modules/providers/tests/codex-session-fork.test.js.map +1 -0
  222. package/dist-server/server/modules/providers/tests/codex-sessions.test.js +354 -15
  223. package/dist-server/server/modules/providers/tests/codex-sessions.test.js.map +1 -1
  224. package/dist-server/server/modules/providers/tests/cursor-auth.test.js +167 -0
  225. package/dist-server/server/modules/providers/tests/cursor-auth.test.js.map +1 -0
  226. package/dist-server/server/modules/providers/tests/opencode-models.test.js +196 -4
  227. package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -1
  228. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +19 -1
  229. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -1
  230. package/dist-server/server/modules/providers/tests/provider-capabilities.service.test.js +30 -0
  231. package/dist-server/server/modules/providers/tests/provider-capabilities.service.test.js.map +1 -0
  232. package/dist-server/server/modules/providers/tests/provider-models.service.test.js +79 -1
  233. package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -1
  234. package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js +164 -1
  235. package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js.map +1 -1
  236. package/dist-server/server/modules/providers/tests/provider.routes.test.js +190 -1
  237. package/dist-server/server/modules/providers/tests/provider.routes.test.js.map +1 -1
  238. package/dist-server/server/modules/providers/tests/session-fork.test.js +113 -0
  239. package/dist-server/server/modules/providers/tests/session-fork.test.js.map +1 -0
  240. package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js +139 -0
  241. package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js.map +1 -0
  242. package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js +90 -0
  243. package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js.map +1 -0
  244. package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js +122 -0
  245. package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js.map +1 -0
  246. package/dist-server/server/modules/providers/tests/sessions.service.test.js +219 -1
  247. package/dist-server/server/modules/providers/tests/sessions.service.test.js.map +1 -1
  248. package/dist-server/server/modules/providers/tests/skills.test.js +15 -3
  249. package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -1
  250. package/dist-server/server/modules/scheduled-messages/index.js +5 -0
  251. package/dist-server/server/modules/scheduled-messages/index.js.map +1 -0
  252. package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js +47 -0
  253. package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js.map +1 -0
  254. package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js +175 -0
  255. package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js.map +1 -0
  256. package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js +95 -0
  257. package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js.map +1 -0
  258. package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js +290 -0
  259. package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js.map +1 -0
  260. package/dist-server/server/modules/taskmaster/taskmaster.routes.js +23 -23
  261. package/dist-server/server/modules/taskmaster/taskmaster.routes.js.map +1 -1
  262. package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js +48 -0
  263. package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js.map +1 -1
  264. package/dist-server/server/modules/user/tests/user.service.test.js +70 -0
  265. package/dist-server/server/modules/user/tests/user.service.test.js.map +1 -1
  266. package/dist-server/server/modules/user/user.module.js +10 -1
  267. package/dist-server/server/modules/user/user.module.js.map +1 -1
  268. package/dist-server/server/modules/user/user.routes.js +44 -0
  269. package/dist-server/server/modules/user/user.routes.js.map +1 -1
  270. package/dist-server/server/modules/user/user.service.js +75 -0
  271. package/dist-server/server/modules/user/user.service.js.map +1 -1
  272. package/dist-server/server/modules/voice/tests/voice.service.test.js +3 -2
  273. package/dist-server/server/modules/voice/tests/voice.service.test.js.map +1 -1
  274. package/dist-server/server/modules/websocket/index.js +7 -0
  275. package/dist-server/server/modules/websocket/index.js.map +1 -1
  276. package/dist-server/server/modules/websocket/services/chat-run-registry.service.js +37 -49
  277. package/dist-server/server/modules/websocket/services/chat-run-registry.service.js.map +1 -1
  278. package/dist-server/server/modules/websocket/services/chat-session-writer.service.js +35 -5
  279. package/dist-server/server/modules/websocket/services/chat-session-writer.service.js.map +1 -1
  280. package/dist-server/server/modules/websocket/services/chat-websocket.service.js +204 -10
  281. package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
  282. package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js +94 -0
  283. package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js.map +1 -0
  284. package/dist-server/server/modules/websocket/services/shell-websocket.service.js +236 -20
  285. package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
  286. package/dist-server/server/modules/websocket/tests/chat-background-subscribe.test.js +137 -0
  287. package/dist-server/server/modules/websocket/tests/chat-background-subscribe.test.js.map +1 -0
  288. package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js +263 -0
  289. package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js.map +1 -0
  290. package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js +29 -3
  291. package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js.map +1 -1
  292. package/dist-server/server/modules/websocket/tests/chat-stop-task.test.js +96 -0
  293. package/dist-server/server/modules/websocket/tests/chat-stop-task.test.js.map +1 -0
  294. package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js +106 -0
  295. package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js.map +1 -0
  296. package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js +500 -0
  297. package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js.map +1 -1
  298. package/dist-server/server/shared/claude-cli-path.js +22 -5
  299. package/dist-server/server/shared/claude-cli-path.js.map +1 -1
  300. package/dist-server/server/shared/index.js +3 -0
  301. package/dist-server/server/shared/index.js.map +1 -0
  302. package/dist-server/server/shared/message-unification.js +376 -0
  303. package/dist-server/server/shared/message-unification.js.map +1 -0
  304. package/dist-server/server/shared/tests/claude-cli-path.test.js +45 -1
  305. package/dist-server/server/shared/tests/claude-cli-path.test.js.map +1 -1
  306. package/dist-server/server/shared/tests/message-unification.test.js +174 -0
  307. package/dist-server/server/shared/tests/message-unification.test.js.map +1 -0
  308. package/dist-server/server/shared/tests/read-only-roots.test.js +124 -0
  309. package/dist-server/server/shared/tests/read-only-roots.test.js.map +1 -0
  310. package/dist-server/server/shared/tests/strip-ansi-sequences.test.js +31 -0
  311. package/dist-server/server/shared/tests/strip-ansi-sequences.test.js.map +1 -0
  312. package/dist-server/server/shared/utils.js +160 -0
  313. package/dist-server/server/shared/utils.js.map +1 -1
  314. package/electron/desktopWindow.js +6 -0
  315. package/electron/viewHost.js +25 -2
  316. package/package.json +20 -17
  317. package/server/index.ts +16 -5
  318. package/server/modules/agent/agent.module.ts +11 -1
  319. package/server/modules/agent/agent.routes.ts +200 -142
  320. package/server/modules/agent/tests/agent-run-registration.test.ts +348 -0
  321. package/server/modules/agent/tests/agent.routes.test.ts +51 -2
  322. package/server/modules/browser-use/browser-use.routes.ts +96 -33
  323. package/server/modules/database/connection.ts +2 -1
  324. package/server/modules/database/index.ts +10 -0
  325. package/server/modules/database/migrations.ts +51 -0
  326. package/server/modules/database/repositories/provider-models.ts +79 -6
  327. package/server/modules/database/repositories/scheduled-messages.db.ts +127 -0
  328. package/server/modules/database/repositories/session-drafts.db.ts +171 -0
  329. package/server/modules/database/repositories/sessions.db.ts +204 -3
  330. package/server/modules/database/repositories/user-preferences.db.ts +80 -0
  331. package/server/modules/database/schema.ts +103 -0
  332. package/server/modules/database/tests/provider-models.db.integration.test.ts +113 -0
  333. package/server/modules/database/tests/sessions.db.integration.test.ts +52 -0
  334. package/server/modules/database/tests/user-preferences.db.integration.test.ts +135 -0
  335. package/server/modules/file-tree/file-tree.module.ts +2 -1
  336. package/server/modules/file-tree/file-tree.service.ts +49 -7
  337. package/server/modules/file-tree/tests/file-tree.service.test.ts +163 -1
  338. package/server/modules/git/git-branch-diff.service.ts +204 -0
  339. package/server/modules/git/git-branch.service.ts +2 -12
  340. package/server/modules/git/git.routes.ts +100 -6
  341. package/server/modules/git/tests/git-branch-diff.service.test.ts +210 -0
  342. package/server/modules/projects/project-clone.routes.ts +142 -0
  343. package/server/modules/projects/projects.routes.ts +16 -81
  344. package/server/modules/projects/services/project-clone-request.service.ts +56 -0
  345. package/server/modules/projects/services/project-clone.service.ts +102 -34
  346. package/server/modules/projects/services/project-delete.service.ts +13 -1
  347. package/server/modules/projects/services/project-star.service.ts +2 -2
  348. package/server/modules/projects/tests/project-clone.routes.test.ts +246 -0
  349. package/server/modules/projects/tests/project-clone.service.test.ts +376 -0
  350. package/server/modules/providers/index.ts +4 -0
  351. package/server/modules/providers/list/claude/claude-auth.provider.ts +81 -11
  352. package/server/modules/providers/list/claude/claude-fork.provider.ts +57 -0
  353. package/server/modules/providers/list/claude/claude-models.provider.ts +37 -17
  354. package/server/modules/providers/list/claude/claude-runtime.provider.js +510 -54
  355. package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +40 -14
  356. package/server/modules/providers/list/claude/claude-sessions.provider.ts +1195 -63
  357. package/server/modules/providers/list/claude/claude-skills.provider.ts +4 -1
  358. package/server/modules/providers/list/claude/claude.provider.ts +3 -0
  359. package/server/modules/providers/list/codex/codex-app-server.client.ts +243 -0
  360. package/server/modules/providers/list/codex/codex-fork.provider.ts +40 -0
  361. package/server/modules/providers/list/codex/codex-models.provider.ts +47 -0
  362. package/server/modules/providers/list/codex/{codex-runtime.provider.js → codex-runtime.provider.ts} +105 -70
  363. package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +9 -0
  364. package/server/modules/providers/list/codex/codex-sessions.provider.ts +1847 -455
  365. package/server/modules/providers/list/codex/codex.provider.ts +3 -0
  366. package/server/modules/providers/list/cursor/cursor-auth.provider.ts +10 -2
  367. package/server/modules/providers/list/cursor/cursor-runtime.provider.js +17 -8
  368. package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +0 -1
  369. package/server/modules/providers/list/opencode/opencode-models.provider.ts +297 -9
  370. package/server/modules/providers/list/opencode/opencode-runtime.provider.js +5 -2
  371. package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +30 -2
  372. package/server/modules/providers/provider.routes.ts +162 -2
  373. package/server/modules/providers/services/claude-cli-liveness.service.ts +121 -0
  374. package/server/modules/providers/services/claude-settings-permissions.service.ts +127 -0
  375. package/server/modules/providers/services/provider-capabilities.service.ts +40 -1
  376. package/server/modules/providers/services/provider-models.service.ts +71 -4
  377. package/server/modules/providers/services/provider-runtime.service.ts +11 -0
  378. package/server/modules/providers/services/provider-token-usage.service.ts +166 -39
  379. package/server/modules/providers/services/session-conversations-search.service.ts +2 -5
  380. package/server/modules/providers/services/session-history-cache.service.ts +150 -0
  381. package/server/modules/providers/services/session-synchronizer.service.ts +125 -38
  382. package/server/modules/providers/services/sessions-watcher.service.ts +3 -64
  383. package/server/modules/providers/services/sessions.service.ts +309 -17
  384. package/server/modules/providers/tests/claude-auth.test.ts +208 -0
  385. package/server/modules/providers/tests/claude-background-work.test.ts +213 -0
  386. package/server/modules/providers/tests/claude-compaction.test.ts +101 -0
  387. package/server/modules/providers/tests/claude-message-model.test.ts +160 -0
  388. package/server/modules/providers/tests/claude-models.test.ts +87 -0
  389. package/server/modules/providers/tests/claude-runtime-hold.test.ts +309 -0
  390. package/server/modules/providers/tests/claude-sessions.test.ts +2167 -37
  391. package/server/modules/providers/tests/claude-settings-permissions.test.ts +271 -0
  392. package/server/modules/providers/tests/claude-subagent-echo.test.ts +25 -0
  393. package/server/modules/providers/tests/claude-token-budget.test.ts +104 -0
  394. package/server/modules/providers/tests/codex-message-editing.test.ts +419 -0
  395. package/server/modules/providers/tests/codex-models.test.ts +37 -0
  396. package/server/modules/providers/tests/codex-runtime.test.ts +94 -0
  397. package/server/modules/providers/tests/codex-session-fork.test.ts +59 -0
  398. package/server/modules/providers/tests/codex-sessions.test.ts +396 -15
  399. package/server/modules/providers/tests/cursor-auth.test.ts +187 -0
  400. package/server/modules/providers/tests/opencode-models.test.ts +266 -8
  401. package/server/modules/providers/tests/opencode-sessions.test.ts +40 -1
  402. package/server/modules/providers/tests/provider-capabilities.service.test.ts +37 -0
  403. package/server/modules/providers/tests/provider-models.service.test.ts +99 -1
  404. package/server/modules/providers/tests/provider-token-usage.service.test.ts +188 -1
  405. package/server/modules/providers/tests/provider.routes.test.ts +230 -1
  406. package/server/modules/providers/tests/session-fork.test.ts +173 -0
  407. package/server/modules/providers/tests/session-history-cache.service.test.ts +165 -0
  408. package/server/modules/providers/tests/session-orphan-prune.test.ts +107 -0
  409. package/server/modules/providers/tests/session-synchronizer-coalescing.test.ts +136 -0
  410. package/server/modules/providers/tests/sessions.service.test.ts +303 -1
  411. package/server/modules/providers/tests/skills.test.ts +21 -5
  412. package/server/modules/scheduled-messages/index.ts +8 -0
  413. package/server/modules/scheduled-messages/scheduled-messages.routes.ts +68 -0
  414. package/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.ts +216 -0
  415. package/server/modules/scheduled-messages/services/scheduled-messages.service.ts +121 -0
  416. package/server/modules/scheduled-messages/tests/scheduled-messages.test.ts +354 -0
  417. package/server/modules/taskmaster/taskmaster.routes.ts +23 -33
  418. package/server/modules/taskmaster/tests/taskmaster.routes.test.ts +57 -0
  419. package/server/modules/user/tests/user.service.test.ts +90 -0
  420. package/server/modules/user/user.module.ts +10 -1
  421. package/server/modules/user/user.routes.ts +44 -0
  422. package/server/modules/user/user.service.ts +105 -0
  423. package/server/modules/voice/tests/voice.service.test.ts +3 -2
  424. package/server/modules/websocket/README.md +4 -2
  425. package/server/modules/websocket/index.ts +8 -0
  426. package/server/modules/websocket/services/chat-run-registry.service.ts +45 -54
  427. package/server/modules/websocket/services/chat-session-writer.service.ts +36 -6
  428. package/server/modules/websocket/services/chat-websocket.service.ts +302 -16
  429. package/server/modules/websocket/services/session-upsert-broadcast.service.ts +108 -0
  430. package/server/modules/websocket/services/shell-websocket.service.ts +276 -22
  431. package/server/modules/websocket/tests/chat-background-subscribe.test.ts +167 -0
  432. package/server/modules/websocket/tests/chat-edit-send.test.ts +309 -0
  433. package/server/modules/websocket/tests/chat-run-registry.test.ts +34 -3
  434. package/server/modules/websocket/tests/chat-stop-task.test.ts +127 -0
  435. package/server/modules/websocket/tests/session-upsert-broadcast.test.ts +138 -0
  436. package/server/modules/websocket/tests/shell-websocket.service.test.ts +629 -0
  437. package/server/shared/claude-cli-path.ts +24 -6
  438. package/server/shared/index.ts +3 -0
  439. package/server/shared/interfaces.ts +91 -0
  440. package/server/shared/message-unification.ts +449 -0
  441. package/server/shared/tests/claude-cli-path.test.ts +58 -1
  442. package/server/shared/tests/message-unification.test.ts +218 -0
  443. package/server/shared/tests/read-only-roots.test.ts +139 -0
  444. package/server/shared/tests/strip-ansi-sequences.test.ts +42 -0
  445. package/server/shared/types.ts +382 -7
  446. package/server/shared/utils.ts +176 -0
  447. package/dist/assets/channel-_falYbU1.js +0 -1
  448. package/dist/assets/classDiagram-JCYQIIEL-Dn-3CfpR.js +0 -1
  449. package/dist/assets/classDiagram-v2-OCEON4UE-Dn-3CfpR.js +0 -1
  450. package/dist/assets/index-CzPLBvXT.css +0 -32
  451. package/dist/assets/index-DFkBBuSA.js +0 -1549
  452. package/dist/assets/stateDiagram-v2-UEYNNEHI-BvBxUUrZ.js +0 -1
  453. package/dist/assets/swimlanesDiagram-ULZ7WXOC-CsE-x4YK.js +0 -8
@@ -1,25 +1,77 @@
1
1
  import { providerModelsDb, sessionsDb } from '../../../modules/database/index.js';
2
2
  import { providerRegistry } from '../../../modules/providers/provider.registry.js';
3
+ import { providerCapabilitiesService } from '../../../modules/providers/services/provider-capabilities.service.js';
3
4
  import { AppError } from '../../../shared/utils.js';
5
+ /**
6
+ * Converts a stored custom row into a catalog option.
7
+ *
8
+ * `effort` is emitted in the same shape predefined models use, so the composer
9
+ * and every runtime's effort validation treat declared levels identically.
10
+ * Rows without declared levels omit `effort` on purpose: the composer then
11
+ * hides Reasoning and runtimes send no effort, instead of guessing levels the
12
+ * model might reject.
13
+ */
4
14
  const toCustomProviderModelOption = (record) => ({
5
15
  value: record.modelId,
6
16
  label: record.model,
7
17
  recordId: record.recordId,
8
18
  isCustom: true,
19
+ ...(record.effort
20
+ ? {
21
+ effort: {
22
+ ...(record.effort.default ? { default: record.effort.default } : {}),
23
+ values: record.effort.values.map((value) => ({ value })),
24
+ },
25
+ }
26
+ : {}),
9
27
  });
10
- const mergeProviderModels = (predefined, custom) => {
28
+ /**
29
+ * Effort levels a custom model of this provider may declare, weakest first:
30
+ * the levels its runtime can pass on, from the capability matrix. Empty
31
+ * (Cursor) means no effort support at all.
32
+ *
33
+ * Deliberately not derived from the predefined models: OpenCode narrows its
34
+ * catalog to the upstream providers this machine has connected, and only its
35
+ * OpenCode Go models declare effort, so a catalog-derived set would vanish for
36
+ * Zen, Anthropic, or OpenAI users and change with unrelated credentials.
37
+ */
38
+ const readCustomModelEffortLevels = (provider) => (providerCapabilitiesService.getProviderCapabilities(provider).effortLevels);
39
+ const mergeProviderModels = (provider, predefined, custom) => {
11
40
  return {
12
41
  OPTIONS: [
13
42
  ...predefined.OPTIONS.map((option) => ({ ...option, isCustom: false })),
14
43
  ...custom.map(toCustomProviderModelOption),
15
44
  ],
16
45
  DEFAULT: predefined.DEFAULT,
46
+ // Copied so no caller can mutate the shared capability matrix.
47
+ EFFORT_LEVELS: [...readCustomModelEffortLevels(provider)],
17
48
  };
18
49
  };
19
50
  const normalizeCustomModelInput = (input) => ({
20
51
  id: input.id.trim(),
21
52
  model: input.model.trim(),
53
+ ...(input.effort === undefined ? {} : { effort: input.effort }),
22
54
  });
55
+ const assertEffortLevelsSupported = (provider, input) => {
56
+ const declaredLevels = input.effort?.values ?? [];
57
+ if (declaredLevels.length === 0) {
58
+ return;
59
+ }
60
+ const supportedLevels = readCustomModelEffortLevels(provider);
61
+ if (supportedLevels.length === 0) {
62
+ throw new AppError(`${provider} models do not support reasoning effort.`, {
63
+ code: 'MODEL_EFFORT_NOT_SUPPORTED',
64
+ statusCode: 400,
65
+ });
66
+ }
67
+ const unsupportedLevel = declaredLevels.find((level) => !supportedLevels.includes(level));
68
+ if (unsupportedLevel) {
69
+ throw new AppError(`"${unsupportedLevel}" is not a ${provider} effort level. Use one of: ${supportedLevels.join(', ')}.`, {
70
+ code: 'INVALID_MODEL_EFFORT',
71
+ statusCode: 400,
72
+ });
73
+ }
74
+ };
23
75
  const isUniqueConstraintError = (error) => (error !== null
24
76
  && error !== undefined
25
77
  && typeof error === 'object'
@@ -40,7 +92,7 @@ export const createProviderModelsService = (dependencies = {}) => {
40
92
  const sessions = dependencies.sessions ?? sessionsDb;
41
93
  const getProviderModels = async (provider) => {
42
94
  const predefined = await resolveProvider(provider).models.getSupportedModels();
43
- return mergeProviderModels(predefined, catalog.listCustomProviderModels(provider));
95
+ return mergeProviderModels(provider, predefined, catalog.listCustomProviderModels(provider));
44
96
  };
45
97
  const getCurrentActiveModel = async (provider, sessionId) => resolveProvider(provider).models.getCurrentActiveModel(sessionId);
46
98
  const readCustomModel = (provider, recordId) => {
@@ -72,11 +124,12 @@ export const createProviderModelsService = (dependencies = {}) => {
72
124
  const predefined = await resolveProvider(provider).models.getSupportedModels();
73
125
  const normalized = normalizeCustomModelInput(input);
74
126
  assertModelIdAvailable(provider, predefined, normalized.id);
127
+ assertEffortLevelsSupported(provider, normalized);
75
128
  try {
76
129
  const created = catalog.createCustomProviderModel(provider, normalized);
77
130
  return {
78
131
  model: toCustomProviderModelOption(created),
79
- models: mergeProviderModels(predefined, catalog.listCustomProviderModels(provider)),
132
+ models: mergeProviderModels(provider, predefined, catalog.listCustomProviderModels(provider)),
80
133
  };
81
134
  }
82
135
  catch (error) {
@@ -94,6 +147,7 @@ export const createProviderModelsService = (dependencies = {}) => {
94
147
  readCustomModel(provider, recordId);
95
148
  const normalized = normalizeCustomModelInput(input);
96
149
  assertModelIdAvailable(provider, predefined, normalized.id, recordId);
150
+ assertEffortLevelsSupported(provider, normalized);
97
151
  try {
98
152
  const updated = catalog.updateCustomProviderModel(provider, recordId, normalized);
99
153
  if (!updated) {
@@ -104,7 +158,7 @@ export const createProviderModelsService = (dependencies = {}) => {
104
158
  }
105
159
  return {
106
160
  model: toCustomProviderModelOption(updated),
107
- models: mergeProviderModels(predefined, catalog.listCustomProviderModels(provider)),
161
+ models: mergeProviderModels(provider, predefined, catalog.listCustomProviderModels(provider)),
108
162
  };
109
163
  }
110
164
  catch (error) {
@@ -129,7 +183,7 @@ export const createProviderModelsService = (dependencies = {}) => {
129
183
  }
130
184
  return {
131
185
  model: toCustomProviderModelOption(removed),
132
- models: mergeProviderModels(predefined, catalog.listCustomProviderModels(provider)),
186
+ models: mergeProviderModels(provider, predefined, catalog.listCustomProviderModels(provider)),
133
187
  };
134
188
  };
135
189
  const readRecordedSessionSelection = (sessionId) => {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-models.service.js","sourceRoot":"","sources":["../../../../../server/modules/providers/services/provider-models.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAW5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA0B7C,MAAM,2BAA2B,GAAG,CAClC,MAAiC,EACZ,EAAE,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,OAAO;IACrB,KAAK,EAAE,MAAM,CAAC,KAAK;IACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAC1B,UAAoC,EACpC,MAAmC,EACT,EAAE;IAC5B,OAAO;QACL,OAAO,EAAE;YACP,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;SAC3C;QACD,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAA+B,EAA4B,EAAE,CAAC,CAAC;IAChG,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;IACnB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAC3D,KAAK,KAAK,IAAI;OACX,KAAK,KAAK,SAAS;OACnB,OAAO,KAAK,KAAK,QAAQ;OACzB,MAAM,IAAI,KAAK;OACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CACtD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,eAAkD,EAAE,EAAE,EAAE;IAClG,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,gBAAgB,CAAC,eAAe,CAAC;IACzF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,UAAU,CAAC;IAErD,MAAM,iBAAiB,GAAG,KAAK,EAAE,QAAqB,EAAqC,EAAE;QAC3F,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/E,OAAO,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,EACjC,QAAqB,EACrB,SAAkB,EACmB,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAE5G,MAAM,eAAe,GAAG,CACtB,QAAqB,EACrB,QAAgB,EACW,EAAE;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE;gBACrC,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAC7B,QAAqB,EACrB,UAAoC,EACpC,OAAe,EACf,eAAwB,EAClB,EAAE;QACR,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,QAAQ,CAAC,KAAK,QAAQ,qCAAqC,EAAE;gBACrE,IAAI,EAAE,yBAAyB;gBAC/B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,gCAAgC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;YACxD,MAAM,IAAI,QAAQ,CAAC,KAAK,QAAQ,qCAAqC,EAAE;gBACrE,IAAI,EAAE,yBAAyB;gBAC/B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,QAAqB,EACrB,KAA+B,EAC4C,EAAE;QAC7E,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACpD,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxE,OAAO;gBACL,KAAK,EAAE,2BAA2B,CAAC,OAAO,CAAC;gBAC3C,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;aACpF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,QAAQ,CAAC,KAAK,QAAQ,qCAAqC,EAAE;oBACrE,IAAI,EAAE,yBAAyB;oBAC/B,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,QAAqB,EACrB,QAAgB,EAChB,KAA+B,EAC4C,EAAE;QAC7E,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/E,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACpD,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE;oBACrC,IAAI,EAAE,iBAAiB;oBACvB,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,2BAA2B,CAAC,OAAO,CAAC;gBAC3C,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;aACpF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,QAAQ,CAAC,KAAK,QAAQ,qCAAqC,EAAE;oBACrE,IAAI,EAAE,yBAAyB;oBAC/B,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,QAAqB,EACrB,QAAgB,EAC2D,EAAE;QAC7E,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/E,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE;gBACrC,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,KAAK,EAAE,2BAA2B,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;SACpF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CACnC,SAAiB,EACuC,EAAE;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI;SACvC,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,eAAe,GAAG,CACtB,QAAqB,EACrB,SAAiB,EACjB,KAAa,EACgB,EAAE;QAC/B,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAC/D,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,mBAAmB;YAC9B,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,gBAAgB,GAAG,CACvB,QAAqB,EACrB,SAAiB,EACjB,MAAc,EAC0E,EAAE;QAC1F,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;QACjE,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,mBAAmB,GAAG,KAAK,EAC/B,QAAqB,EACrB,UAAyE,EAAE,EAC5C,EAAE;QACjC,MAAM,mBAAmB,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,MAAM,wBAAwB,GAAG,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ;YACzE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE;YAC/B,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,CAAC;YAC5E,IAAI,iBAAiB,EAAE,KAAK,EAAE,CAAC;gBAC7B,OAAO;oBACL,QAAQ;oBACR,SAAS,EAAE,mBAAmB;oBAC9B,KAAK,EAAE,iBAAiB,CAAC,KAAK;oBAC9B,MAAM,EAAE,iBAAiB,CAAC,MAAM;oBAChC,MAAM,EAAE,SAAS;iBAClB,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YACjF,MAAM,qBAAqB,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YAC1D,IAAI,qBAAqB,IAAI,qBAAqB,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC/E,OAAO;oBACL,QAAQ;oBACR,SAAS,EAAE,mBAAmB;oBAC9B,KAAK,EAAE,qBAAqB;oBAC5B,MAAM,EAAE,iBAAiB,EAAE,MAAM,IAAI,IAAI;oBACzC,MAAM,EAAE,UAAU;iBACnB,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,QAAQ;gBACR,SAAS,EAAE,mBAAmB;gBAC9B,KAAK,EAAE,wBAAwB,IAAI,eAAe,CAAC,OAAO;gBAC1D,MAAM,EAAE,iBAAiB,EAAE,MAAM,IAAI,IAAI;gBACzC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC;QACJ,CAAC;QAED,IAAI,wBAAwB,EAAE,CAAC;YAC7B,OAAO;gBACL,QAAQ;gBACR,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,wBAAwB;gBAC/B,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,eAAe,CAAC,OAAO;YAC9B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,kBAAkB,GAAG,KAAK,EAC9B,QAAqB,EACrB,SAA6B,EAC7B,cAA8B,EACD,EAAE;QAC/B,KAAK,QAAQ,CAAC;QACd,MAAM,wBAAwB,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,mBAAmB,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,OAAO,wBAAwB,IAAI,SAAS,CAAC;QAC/C,CAAC;QAED,MAAM,aAAa,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAC/E,OAAO,aAAa,IAAI,wBAAwB,IAAI,SAAS,CAAC;IAChE,CAAC,CAAC;IAEF,OAAO;QACL,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"provider-models.service.js","sourceRoot":"","sources":["../../../../../server/modules/providers/services/provider-models.service.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,14 @@ export function createProviderRuntimeService(dependencyOverrides = {}) {
52
52
  async abort(providerName, sessionId) {
53
53
  return Boolean(await dependencies.resolveProvider(providerName).runtime.abort(sessionId));
54
54
  },
55
+ async stopBackgroundTask(providerName, sessionId, taskId) {
56
+ // A runtime that never holds background work has no task to stop.
57
+ const { runtime } = dependencies.resolveProvider(providerName);
58
+ return Boolean(await runtime.stopBackgroundTask?.(sessionId, taskId));
59
+ },
60
+ hasBackgroundWork(sessionId) {
61
+ return dependencies.listProviders().some((provider) => (provider.runtime.listBackgroundWork?.() ?? []).some((entry) => entry.sessionId === sessionId));
62
+ },
55
63
  resolveToolApproval(requestId, decision) {
56
64
  for (const provider of dependencies.listProviders()) {
57
65
  provider.runtime.permissions?.resolve(requestId, decision);
@@ -1 +1 @@
1
- {"version":3,"file":"provider-runtime.service.js","sourceRoot":"","sources":["../../../../../server/modules/providers/services/provider-runtime.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-runtime.service.js","sourceRoot":"","sources":["../../../../../server/modules/providers/services/provider-runtime.service.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,13 @@ import path from 'node:path';
5
5
  import Database from 'better-sqlite3';
6
6
  import { sessionsDb } from '../../../modules/database/index.js';
7
7
  import { AppError, getOpenCodeDatabasePath } from '../../../shared/utils.js';
8
+ /**
9
+ * Both JSONL usage readers below only need the newest usage row, which sits at
10
+ * or near the end of the transcript. Reading just this much of the tail keeps
11
+ * a session-open usage lookup O(1) in the transcript's size; the rare tail
12
+ * with no usage row at all falls back to the full read.
13
+ */
14
+ const TOKEN_USAGE_TAIL_BYTES = 4 * 1024 * 1024;
8
15
  const defaultDependencies = {
9
16
  getSessionById: (sessionId) => sessionsDb.getSessionById(sessionId),
10
17
  getHomeDirectory: () => os.homedir(),
@@ -12,7 +19,31 @@ const defaultDependencies = {
12
19
  fileExists: (filePath) => fsSync.existsSync(filePath),
13
20
  readDirectory: (directoryPath) => fsp.readdir(directoryPath, { withFileTypes: true }),
14
21
  readTextFile: (filePath) => fsp.readFile(filePath, 'utf8'),
22
+ readTextFileTail: async (filePath, maxBytes) => {
23
+ const handle = await fsp.open(filePath, 'r');
24
+ try {
25
+ const { size } = await handle.stat();
26
+ if (size <= maxBytes) {
27
+ return { content: await handle.readFile({ encoding: 'utf8' }), isComplete: true };
28
+ }
29
+ const buffer = Buffer.alloc(maxBytes);
30
+ await handle.read(buffer, 0, maxBytes, size - maxBytes);
31
+ const content = buffer.toString('utf8');
32
+ // The window almost never starts on a row boundary; dropping everything
33
+ // up to the first newline discards the partial row (and any split
34
+ // multi-byte character with it).
35
+ const firstNewline = content.indexOf('\n');
36
+ return {
37
+ content: firstNewline === -1 ? '' : content.slice(firstNewline + 1),
38
+ isComplete: false,
39
+ };
40
+ }
41
+ finally {
42
+ await handle.close();
43
+ }
44
+ },
15
45
  getClaudeContextWindow: () => process.env.CONTEXT_WINDOW,
46
+ isProviderSessionSuperseded: (providerSessionId, provider) => sessionsDb.isProviderSessionSuperseded(providerSessionId, provider),
16
47
  };
17
48
  function readUsageNumber(value) {
18
49
  const parsedValue = Number(value);
@@ -43,11 +74,8 @@ async function findCodexSessionFile(directoryPath, providerSessionId, dependenci
43
74
  }
44
75
  return null;
45
76
  }
46
- function readCodexTokenUsage(fileContent) {
47
- let inputTokens = 0;
48
- let outputTokens = 0;
49
- let totalTokens = 0;
50
- let contextWindow = 200_000;
77
+ /** Newest `token_count` snapshot in the given JSONL text, or null when it has none. */
78
+ function findCodexTokenUsage(fileContent) {
51
79
  const lines = fileContent.trim().split('\n');
52
80
  for (let index = lines.length - 1; index >= 0; index -= 1) {
53
81
  try {
@@ -58,52 +86,87 @@ function readCodexTokenUsage(fileContent) {
58
86
  if (!tokenInfo) {
59
87
  continue;
60
88
  }
89
+ let inputTokens = 0;
90
+ let outputTokens = 0;
91
+ let totalTokens = 0;
61
92
  if (tokenInfo.total_token_usage) {
62
93
  inputTokens = readUsageNumber(tokenInfo.total_token_usage.input_tokens);
63
94
  outputTokens = readUsageNumber(tokenInfo.total_token_usage.output_tokens);
64
95
  totalTokens = readUsageNumber(tokenInfo.total_token_usage.total_tokens)
65
96
  || inputTokens + outputTokens;
66
97
  }
67
- contextWindow = readUsageNumber(tokenInfo.model_context_window) || contextWindow;
68
- break;
98
+ return {
99
+ used: totalTokens,
100
+ total: readUsageNumber(tokenInfo.model_context_window) || 200_000,
101
+ inputTokens,
102
+ outputTokens,
103
+ breakdown: { input: inputTokens, output: outputTokens },
104
+ };
69
105
  }
70
106
  catch {
71
107
  // A provider may be writing the last JSONL line while this read happens.
72
108
  }
73
109
  }
110
+ return null;
111
+ }
112
+ function emptyCodexTokenUsage() {
74
113
  return {
75
- used: totalTokens,
76
- total: contextWindow,
77
- inputTokens,
78
- outputTokens,
79
- breakdown: { input: inputTokens, output: outputTokens },
114
+ used: 0,
115
+ total: 200_000,
116
+ inputTokens: 0,
117
+ outputTokens: 0,
118
+ breakdown: { input: 0, output: 0 },
80
119
  };
81
120
  }
82
- function readClaudeTokenUsage(fileContent, configuredContextWindow) {
121
+ /**
122
+ * Latest context-window usage from a Claude transcript's already-parsed rows.
123
+ *
124
+ * Exported because the session-messages reader hands the same usage back on
125
+ * every history page, the way the Codex and OpenCode readers do. Without that,
126
+ * a Claude session's counter only moved when the session was reselected, and
127
+ * the store's "this provider reports no usage" path overwrote it with zero.
128
+ *
129
+ * Reads the newest assistant turn only: `input_tokens + cache_read +
130
+ * cache_creation` is that one request's whole prompt, i.e. what the context
131
+ * window currently holds. Summing turns would count the same cached prefix
132
+ * once per turn.
133
+ */
134
+ export function summarizeClaudeTokenUsage(entries, configuredContextWindow = process.env.CONTEXT_WINDOW) {
83
135
  let inputTokens = 0;
84
136
  let outputTokens = 0;
85
137
  let cacheReadTokens = 0;
86
138
  let cacheCreationTokens = 0;
87
- const lines = fileContent.trim().split('\n');
88
- for (let index = lines.length - 1; index >= 0; index -= 1) {
89
- try {
90
- const entry = JSON.parse(lines[index]);
91
- const usage = entry.type === 'assistant' ? entry.message?.usage : null;
92
- if (!usage) {
93
- continue;
94
- }
95
- const directInputTokens = readUsageNumber(usage.input_tokens ?? usage.inputTokens);
96
- cacheReadTokens = readUsageNumber(usage.cache_read_input_tokens ?? usage.cacheReadInputTokens ?? usage.cacheReadTokens);
97
- cacheCreationTokens = readUsageNumber(usage.cache_creation_input_tokens
98
- ?? usage.cacheCreationInputTokens
99
- ?? usage.cacheCreationTokens);
100
- inputTokens = directInputTokens + cacheReadTokens + cacheCreationTokens;
101
- outputTokens = readUsageNumber(usage.output_tokens ?? usage.outputTokens);
102
- break;
139
+ for (let index = entries.length - 1; index >= 0; index -= 1) {
140
+ const entry = entries[index];
141
+ // A subagent's turns report the subagent's context window, not this
142
+ // conversation's; reading one makes the counter drop to the subagent's
143
+ // number and bounce back on the next main-thread turn.
144
+ if (entry?.isSidechain === true) {
145
+ continue;
103
146
  }
104
- catch {
105
- // Skip malformed lines without discarding usage from earlier messages.
147
+ const usage = entry?.type === 'assistant' ? entry.message?.usage : null;
148
+ if (!usage) {
149
+ continue;
150
+ }
151
+ const directInputTokens = readUsageNumber(usage.input_tokens ?? usage.inputTokens);
152
+ const rowCacheReadTokens = readUsageNumber(usage.cache_read_input_tokens ?? usage.cacheReadInputTokens ?? usage.cacheReadTokens);
153
+ const rowCacheCreationTokens = readUsageNumber(usage.cache_creation_input_tokens
154
+ ?? usage.cacheCreationInputTokens
155
+ ?? usage.cacheCreationTokens);
156
+ const rowInputTokens = directInputTokens + rowCacheReadTokens + rowCacheCreationTokens;
157
+ const rowOutputTokens = readUsageNumber(usage.output_tokens ?? usage.outputTokens);
158
+ // `<synthetic>` rows — interrupts, API errors, "No response requested" —
159
+ // are written with an all-zero usage block rather than none at all. They
160
+ // never carried a prompt, so treating one as the newest turn zeroed a
161
+ // counter that a live event had just set correctly.
162
+ if (rowInputTokens === 0 && rowOutputTokens === 0) {
163
+ continue;
106
164
  }
165
+ cacheReadTokens = rowCacheReadTokens;
166
+ cacheCreationTokens = rowCacheCreationTokens;
167
+ inputTokens = rowInputTokens;
168
+ outputTokens = rowOutputTokens;
169
+ break;
107
170
  }
108
171
  const parsedContextWindow = Number.parseInt(configuredContextWindow ?? '', 10);
109
172
  const contextWindow = Number.isFinite(parsedContextWindow) ? parsedContextWindow : 160_000;
@@ -119,6 +182,21 @@ function readClaudeTokenUsage(fileContent, configuredContextWindow) {
119
182
  breakdown: { input: inputTokens, output: outputTokens },
120
183
  };
121
184
  }
185
+ function parseClaudeUsageEntries(fileContent) {
186
+ const entries = [];
187
+ for (const line of fileContent.trim().split('\n')) {
188
+ try {
189
+ entries.push(JSON.parse(line));
190
+ }
191
+ catch {
192
+ // Skip malformed lines without discarding usage from earlier messages.
193
+ }
194
+ }
195
+ return entries;
196
+ }
197
+ function claudeEntriesHaveUsage(entries) {
198
+ return entries.some((entry) => entry?.type === 'assistant' && entry.message?.usage);
199
+ }
122
200
  function readOpenCodeTokenUsage(databasePath, providerSessionId) {
123
201
  const database = new Database(databasePath, { readonly: true, fileMustExist: true });
124
202
  try {
@@ -195,6 +273,21 @@ export function createProviderTokenUsageService(dependencyOverrides = {}) {
195
273
  statusCode: 404,
196
274
  });
197
275
  }
276
+ // The fallback covers rows whose provider id was never recorded, and for
277
+ // a session discovered from disk the app id *is* its provider id. That
278
+ // stops being true the moment an edit rewinds the conversation off a
279
+ // thread: until the replacement run announces its own id, the fallback
280
+ // would resolve the retired transcript and report the discarded
281
+ // conversation's usage against an empty one.
282
+ if (!session.provider_session_id
283
+ && dependencies.isProviderSessionSuperseded(sessionId, session.provider)) {
284
+ return {
285
+ used: 0,
286
+ inputTokens: 0,
287
+ outputTokens: 0,
288
+ breakdown: { input: 0, output: 0 },
289
+ };
290
+ }
198
291
  const providerSessionId = session.provider_session_id || sessionId;
199
292
  if (session.provider === 'cursor') {
200
293
  return {
@@ -228,8 +321,15 @@ export function createProviderTokenUsageService(dependencyOverrides = {}) {
228
321
  statusCode: 404,
229
322
  });
230
323
  }
231
- const fileContent = await dependencies.readTextFile(sessionFilePath);
232
- return readCodexTokenUsage(fileContent);
324
+ const tail = await dependencies.readTextFileTail(sessionFilePath, TOKEN_USAGE_TAIL_BYTES);
325
+ const tailUsage = findCodexTokenUsage(tail.content);
326
+ if (tailUsage || tail.isComplete) {
327
+ return tailUsage ?? emptyCodexTokenUsage();
328
+ }
329
+ // A tail this large with no token_count row is pathological, but the
330
+ // whole file is still authoritative when it happens.
331
+ return findCodexTokenUsage(await dependencies.readTextFile(sessionFilePath))
332
+ ?? emptyCodexTokenUsage();
233
333
  }
234
334
  let sessionFilePath = session.jsonl_path;
235
335
  if (!sessionFilePath) {
@@ -256,8 +356,12 @@ export function createProviderTokenUsageService(dependencyOverrides = {}) {
256
356
  statusCode: 404,
257
357
  });
258
358
  }
259
- const fileContent = await dependencies.readTextFile(sessionFilePath);
260
- return readClaudeTokenUsage(fileContent, dependencies.getClaudeContextWindow());
359
+ const tail = await dependencies.readTextFileTail(sessionFilePath, TOKEN_USAGE_TAIL_BYTES);
360
+ let entries = parseClaudeUsageEntries(tail.content);
361
+ if (!claudeEntriesHaveUsage(entries) && !tail.isComplete) {
362
+ entries = parseClaudeUsageEntries(await dependencies.readTextFile(sessionFilePath));
363
+ }
364
+ return summarizeClaudeTokenUsage(entries, dependencies.getClaudeContextWindow());
261
365
  },
262
366
  };
263
367
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-token-usage.service.js","sourceRoot":"","sources":["../../../../../server/modules/providers/services/provider-token-usage.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-token-usage.service.js","sourceRoot":"","sources":["../../../../../server/modules/providers/services/provider-token-usage.service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import path from 'node:path';
3
3
  import readline from 'node:readline';
4
4
  import { spawn } from 'cross-spawn';
5
5
  import { rgPath } from '@vscode/ripgrep';
6
+ import { stripAnsiSequences } from '../../../shared/utils.js';
6
7
  import { projectsDb, sessionsDb } from '../../../modules/database/index.js';
7
8
  const SUPPORTED_PROVIDERS = new Set(['claude', 'codex']);
8
9
  const MAX_MATCHES_PER_SESSION = 2;
@@ -252,9 +253,6 @@ function buildClaudeLocalCommandDisplayText(payload) {
252
253
  }
253
254
  return commandArgs ? `${baseCommand} ${commandArgs}` : baseCommand;
254
255
  }
255
- function stripAnsiFormatting(text) {
256
- return text.replace(/\u001B\[[0-9;?]*[ -/]*[@-~]/g, '');
257
- }
258
256
  /**
259
257
  * Claude mixes visible chat, compact summaries, and local command wrappers into
260
258
  * the same transcript stream. Search should operate on the user-visible meaning
@@ -288,7 +286,7 @@ function extractClaudeSearchableMessage(entry) {
288
286
  }
289
287
  const localCommandStdout = extractTaggedContent(content, 'local-command-stdout');
290
288
  if (localCommandStdout !== null) {
291
- const stdoutText = stripAnsiFormatting(localCommandStdout).trim();
289
+ const stdoutText = stripAnsiSequences(localCommandStdout).trim();
292
290
  return stdoutText
293
291
  ? {
294
292
  text: stdoutText,