@cloudcli-ai/cloudcli 1.31.5 → 1.33.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 (252) hide show
  1. package/README.de.md +1 -1
  2. package/README.ko.md +1 -1
  3. package/README.md +1 -1
  4. package/README.ru.md +1 -1
  5. package/README.tr.md +1 -1
  6. package/README.zh-CN.md +1 -1
  7. package/dist/api-docs.html +6 -7
  8. package/dist/assets/index-MOIvpy53.css +32 -0
  9. package/dist/assets/{index-DqMVUeZS.js → index-skXSjBje.js} +290 -270
  10. package/dist/index.html +2 -2
  11. package/dist/modelConstants.js +841 -0
  12. package/dist-server/server/claude-sdk.js +67 -39
  13. package/dist-server/server/claude-sdk.js.map +1 -1
  14. package/dist-server/server/cursor-cli.js +6 -9
  15. package/dist-server/server/cursor-cli.js.map +1 -1
  16. package/dist-server/server/gemini-cli.js +163 -35
  17. package/dist-server/server/gemini-cli.js.map +1 -1
  18. package/dist-server/server/gemini-response-handler.js +34 -0
  19. package/dist-server/server/gemini-response-handler.js.map +1 -1
  20. package/dist-server/server/index.js +131 -19
  21. package/dist-server/server/index.js.map +1 -1
  22. package/dist-server/server/modules/database/index.js +1 -0
  23. package/dist-server/server/modules/database/index.js.map +1 -1
  24. package/dist-server/server/modules/database/migrations.js +11 -0
  25. package/dist-server/server/modules/database/migrations.js.map +1 -1
  26. package/dist-server/server/modules/database/repositories/projects.db.js +12 -0
  27. package/dist-server/server/modules/database/repositories/projects.db.js.map +1 -1
  28. package/dist-server/server/modules/database/repositories/sessions.db.integration.test.js +61 -0
  29. package/dist-server/server/modules/database/repositories/sessions.db.integration.test.js.map +1 -0
  30. package/dist-server/server/modules/database/repositories/sessions.db.js +49 -8
  31. package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -1
  32. package/dist-server/server/modules/database/schema.js +1 -0
  33. package/dist-server/server/modules/database/schema.js.map +1 -1
  34. package/dist-server/server/modules/projects/projects.routes.js +12 -3
  35. package/dist-server/server/modules/projects/projects.routes.js.map +1 -1
  36. package/dist-server/server/modules/projects/services/project-delete.service.js +14 -1
  37. package/dist-server/server/modules/projects/services/project-delete.service.js.map +1 -1
  38. package/dist-server/server/modules/projects/services/project-management.service.js +1 -0
  39. package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -1
  40. package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +47 -0
  41. package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -1
  42. package/dist-server/server/modules/providers/index.js +1 -0
  43. package/dist-server/server/modules/providers/index.js.map +1 -1
  44. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +27 -7
  45. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
  46. package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +141 -0
  47. package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -0
  48. package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +55 -2
  49. package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -1
  50. package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +153 -14
  51. package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -1
  52. package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +198 -0
  53. package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js.map +1 -0
  54. package/dist-server/server/modules/providers/list/claude/claude.provider.js +4 -0
  55. package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -1
  56. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +84 -0
  57. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -0
  58. package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +54 -2
  59. package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -1
  60. package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +21 -6
  61. package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -1
  62. package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js +50 -0
  63. package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js.map +1 -0
  64. package/dist-server/server/modules/providers/list/codex/codex.provider.js +4 -0
  65. package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -1
  66. package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js +754 -0
  67. package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js.map +1 -0
  68. package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js +8 -30
  69. package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -1
  70. package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js +187 -24
  71. package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js.map +1 -1
  72. package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js +28 -0
  73. package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js.map +1 -0
  74. package/dist-server/server/modules/providers/list/cursor/cursor.provider.js +4 -0
  75. package/dist-server/server/modules/providers/list/cursor/cursor.provider.js.map +1 -1
  76. package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js +125 -2
  77. package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js.map +1 -1
  78. package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js +27 -0
  79. package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js.map +1 -0
  80. package/dist-server/server/modules/providers/list/gemini/gemini-session-synchronizer.provider.js +24 -8
  81. package/dist-server/server/modules/providers/list/gemini/gemini-session-synchronizer.provider.js.map +1 -1
  82. package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js +10 -10
  83. package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js.map +1 -1
  84. package/dist-server/server/modules/providers/list/gemini/gemini-skills.provider.js +33 -0
  85. package/dist-server/server/modules/providers/list/gemini/gemini-skills.provider.js.map +1 -0
  86. package/dist-server/server/modules/providers/list/gemini/gemini.provider.js +4 -0
  87. package/dist-server/server/modules/providers/list/gemini/gemini.provider.js.map +1 -1
  88. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +92 -0
  89. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -0
  90. package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js +181 -0
  91. package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js.map +1 -0
  92. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +267 -0
  93. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -0
  94. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +115 -0
  95. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -0
  96. package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js +410 -0
  97. package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js.map +1 -0
  98. package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js +62 -0
  99. package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js.map +1 -0
  100. package/dist-server/server/modules/providers/list/opencode/opencode.provider.js +19 -0
  101. package/dist-server/server/modules/providers/list/opencode/opencode.provider.js.map +1 -0
  102. package/dist-server/server/modules/providers/provider.registry.js +2 -0
  103. package/dist-server/server/modules/providers/provider.registry.js.map +1 -1
  104. package/dist-server/server/modules/providers/provider.routes.js +65 -3
  105. package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
  106. package/dist-server/server/modules/providers/services/mcp.service.js +1 -9
  107. package/dist-server/server/modules/providers/services/mcp.service.js.map +1 -1
  108. package/dist-server/server/modules/providers/services/provider-models.service.js +199 -0
  109. package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -0
  110. package/dist-server/server/modules/providers/services/session-conversations-search.service.js +129 -13
  111. package/dist-server/server/modules/providers/services/session-conversations-search.service.js.map +1 -1
  112. package/dist-server/server/modules/providers/services/session-synchronizer.service.js +1 -0
  113. package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -1
  114. package/dist-server/server/modules/providers/services/sessions-watcher.service.js +13 -4
  115. package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
  116. package/dist-server/server/modules/providers/services/sessions.service.js +81 -7
  117. package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -1
  118. package/dist-server/server/modules/providers/services/skills.service.js +11 -0
  119. package/dist-server/server/modules/providers/services/skills.service.js.map +1 -0
  120. package/dist-server/server/modules/providers/shared/base/abstract.provider.js.map +1 -1
  121. package/dist-server/server/modules/providers/shared/skills/skills.provider.js +45 -0
  122. package/dist-server/server/modules/providers/shared/skills/skills.provider.js.map +1 -0
  123. package/dist-server/server/modules/providers/tests/mcp.test.js +73 -6
  124. package/dist-server/server/modules/providers/tests/mcp.test.js.map +1 -1
  125. package/dist-server/server/modules/providers/tests/opencode-models.test.js +66 -0
  126. package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -0
  127. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +262 -0
  128. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -0
  129. package/dist-server/server/modules/providers/tests/provider-models.service.test.js +270 -0
  130. package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -0
  131. package/dist-server/server/modules/providers/tests/skills.test.js +259 -0
  132. package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -0
  133. package/dist-server/server/modules/websocket/services/chat-websocket.service.js +12 -1
  134. package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
  135. package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js +4 -4
  136. package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js.map +1 -1
  137. package/dist-server/server/modules/websocket/services/shell-websocket.service.js +9 -1
  138. package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
  139. package/dist-server/server/openai-codex.js +87 -29
  140. package/dist-server/server/openai-codex.js.map +1 -1
  141. package/dist-server/server/opencode-cli.js +287 -0
  142. package/dist-server/server/opencode-cli.js.map +1 -0
  143. package/dist-server/server/opencode-cli.test.js +84 -0
  144. package/dist-server/server/opencode-cli.test.js.map +1 -0
  145. package/dist-server/server/routes/agent.js +21 -8
  146. package/dist-server/server/routes/agent.js.map +1 -1
  147. package/dist-server/server/routes/commands.js +204 -211
  148. package/dist-server/server/routes/commands.js.map +1 -1
  149. package/dist-server/server/routes/cursor.js +2 -2
  150. package/dist-server/server/routes/cursor.js.map +1 -1
  151. package/dist-server/server/routes/settings.js +0 -10
  152. package/dist-server/server/routes/settings.js.map +1 -1
  153. package/dist-server/server/routes/tests/commands.test.js +76 -0
  154. package/dist-server/server/routes/tests/commands.test.js.map +1 -0
  155. package/dist-server/server/shared/claude-cli-path.js +103 -0
  156. package/dist-server/server/shared/claude-cli-path.js.map +1 -0
  157. package/dist-server/server/shared/claude-cli-path.test.js +45 -0
  158. package/dist-server/server/shared/claude-cli-path.test.js.map +1 -0
  159. package/dist-server/server/{utils → shared}/frontmatter.js +3 -3
  160. package/dist-server/server/shared/frontmatter.js.map +1 -0
  161. package/dist-server/server/shared/utils.js +368 -0
  162. package/dist-server/server/shared/utils.js.map +1 -1
  163. package/dist-server/server/utils/commandParser.js +3 -3
  164. package/dist-server/server/utils/commandParser.js.map +1 -1
  165. package/package.json +3 -1
  166. package/public/api-docs.html +878 -0
  167. package/public/modelConstants.js +841 -0
  168. package/server/claude-sdk.js +74 -40
  169. package/server/cursor-cli.js +6 -11
  170. package/server/gemini-cli.js +197 -43
  171. package/server/gemini-response-handler.js +38 -0
  172. package/server/index.js +144 -19
  173. package/server/modules/database/index.ts +1 -0
  174. package/server/modules/database/migrations.ts +12 -0
  175. package/server/modules/database/repositories/projects.db.ts +13 -0
  176. package/server/modules/database/repositories/sessions.db.integration.test.ts +72 -0
  177. package/server/modules/database/repositories/sessions.db.ts +60 -9
  178. package/server/modules/database/schema.ts +1 -0
  179. package/server/modules/projects/projects.routes.ts +20 -3
  180. package/server/modules/projects/services/project-delete.service.ts +16 -1
  181. package/server/modules/projects/services/project-management.service.ts +2 -0
  182. package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +71 -1
  183. package/server/modules/providers/README.md +354 -0
  184. package/server/modules/providers/index.ts +2 -1
  185. package/server/modules/providers/list/claude/claude-auth.provider.ts +38 -13
  186. package/server/modules/providers/list/claude/claude-models.provider.ts +191 -0
  187. package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +68 -2
  188. package/server/modules/providers/list/claude/claude-sessions.provider.ts +175 -14
  189. package/server/modules/providers/list/claude/claude-skills.provider.ts +257 -0
  190. package/server/modules/providers/list/claude/claude.provider.ts +11 -1
  191. package/server/modules/providers/list/codex/codex-models.provider.ts +125 -0
  192. package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +62 -2
  193. package/server/modules/providers/list/codex/codex-sessions.provider.ts +25 -6
  194. package/server/modules/providers/list/codex/codex-skills.provider.ts +60 -0
  195. package/server/modules/providers/list/codex/codex.provider.ts +11 -1
  196. package/server/modules/providers/list/cursor/cursor-models.provider.ts +820 -0
  197. package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +17 -40
  198. package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +216 -26
  199. package/server/modules/providers/list/cursor/cursor-skills.provider.ts +31 -0
  200. package/server/modules/providers/list/cursor/cursor.provider.ts +11 -1
  201. package/server/modules/providers/list/gemini/gemini-auth.provider.ts +158 -2
  202. package/server/modules/providers/list/gemini/gemini-models.provider.ts +42 -0
  203. package/server/modules/providers/list/gemini/gemini-session-synchronizer.provider.ts +24 -20
  204. package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +10 -11
  205. package/server/modules/providers/list/gemini/gemini-skills.provider.ts +36 -0
  206. package/server/modules/providers/list/gemini/gemini.provider.ts +11 -1
  207. package/server/modules/providers/list/opencode/opencode-auth.provider.ts +111 -0
  208. package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +228 -0
  209. package/server/modules/providers/list/opencode/opencode-models.provider.ts +339 -0
  210. package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +157 -0
  211. package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +506 -0
  212. package/server/modules/providers/list/opencode/opencode-skills.provider.ts +78 -0
  213. package/server/modules/providers/list/opencode/opencode.provider.ts +27 -0
  214. package/server/modules/providers/provider.registry.ts +2 -0
  215. package/server/modules/providers/provider.routes.ts +97 -4
  216. package/server/modules/providers/services/mcp.service.ts +1 -12
  217. package/server/modules/providers/services/provider-models.service.ts +325 -0
  218. package/server/modules/providers/services/session-conversations-search.service.ts +162 -13
  219. package/server/modules/providers/services/session-synchronizer.service.ts +1 -0
  220. package/server/modules/providers/services/sessions-watcher.service.ts +14 -4
  221. package/server/modules/providers/services/sessions.service.ts +112 -9
  222. package/server/modules/providers/services/skills.service.ts +15 -0
  223. package/server/modules/providers/shared/base/abstract.provider.ts +4 -0
  224. package/server/modules/providers/shared/skills/skills.provider.ts +64 -0
  225. package/server/modules/providers/tests/mcp.test.ts +93 -6
  226. package/server/modules/providers/tests/opencode-models.test.ts +73 -0
  227. package/server/modules/providers/tests/opencode-sessions.test.ts +334 -0
  228. package/server/modules/providers/tests/provider-models.service.test.ts +318 -0
  229. package/server/modules/providers/tests/skills.test.ts +512 -0
  230. package/server/modules/websocket/services/chat-websocket.service.ts +15 -1
  231. package/server/modules/websocket/services/plugin-websocket-proxy.service.ts +4 -4
  232. package/server/modules/websocket/services/shell-websocket.service.ts +9 -0
  233. package/server/openai-codex.js +99 -30
  234. package/server/opencode-cli.js +336 -0
  235. package/server/opencode-cli.test.js +95 -0
  236. package/server/routes/agent.js +22 -8
  237. package/server/routes/commands.js +256 -233
  238. package/server/routes/cursor.js +2 -2
  239. package/server/routes/settings.js +1 -10
  240. package/server/routes/tests/commands.test.js +82 -0
  241. package/server/shared/claude-cli-path.test.ts +61 -0
  242. package/server/shared/claude-cli-path.ts +139 -0
  243. package/server/{utils/frontmatter.js → shared/frontmatter.ts} +3 -3
  244. package/server/shared/interfaces.ts +64 -0
  245. package/server/shared/types.ts +166 -1
  246. package/server/shared/utils.ts +478 -0
  247. package/server/utils/commandParser.js +5 -3
  248. package/dist/assets/index-6rYG_mRo.css +0 -32
  249. package/dist-server/server/utils/frontmatter.js.map +0 -1
  250. package/dist-server/shared/modelConstants.js +0 -98
  251. package/dist-server/shared/modelConstants.js.map +0 -1
  252. package/shared/modelConstants.js +0 -106
@@ -0,0 +1,287 @@
1
+ import { spawn } from 'child_process';
2
+ import fsSync from 'node:fs';
3
+ import crossSpawn from 'cross-spawn';
4
+ import Database from 'better-sqlite3';
5
+ import { sessionsService } from './modules/providers/services/sessions.service.js';
6
+ import { providerAuthService } from './modules/providers/services/provider-auth.service.js';
7
+ import { providerModelsService } from './modules/providers/services/provider-models.service.js';
8
+ import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
9
+ import { createNormalizedMessage, getOpenCodeDatabasePath } from './shared/utils.js';
10
+ const spawnFunction = process.platform === 'win32' ? crossSpawn : spawn;
11
+ const activeOpenCodeProcesses = new Map();
12
+ function readOpenCodeSessionId(event) {
13
+ if (!event || typeof event !== 'object') {
14
+ return null;
15
+ }
16
+ return event.sessionID || event.sessionId || null;
17
+ }
18
+ function readOpenCodeTokenUsage(sessionId) {
19
+ const dbPath = getOpenCodeDatabasePath();
20
+ if (!sessionId || !fsSync.existsSync(dbPath)) {
21
+ return null;
22
+ }
23
+ let db = null;
24
+ try {
25
+ db = new Database(dbPath, { readonly: true, fileMustExist: true });
26
+ const columns = db.prepare('PRAGMA table_info(session)').all();
27
+ const columnNames = new Set(columns.map((column) => column.name));
28
+ const requiredColumns = ['tokens_input', 'tokens_output', 'tokens_reasoning', 'tokens_cache_read', 'tokens_cache_write'];
29
+ if (!requiredColumns.every((column) => columnNames.has(column))) {
30
+ return null;
31
+ }
32
+ const row = db.prepare(`
33
+ SELECT
34
+ tokens_input AS inputTokens,
35
+ tokens_output AS outputTokens,
36
+ tokens_reasoning AS reasoningTokens,
37
+ tokens_cache_read AS cacheReadTokens,
38
+ tokens_cache_write AS cacheWriteTokens
39
+ FROM session
40
+ WHERE id = ?
41
+ `).get(sessionId);
42
+ if (!row) {
43
+ return null;
44
+ }
45
+ const inputTokens = Number(row.inputTokens || 0) + Number(row.cacheReadTokens || 0);
46
+ const outputTokens = Number(row.outputTokens || 0);
47
+ const used = Number(row.inputTokens || 0)
48
+ + outputTokens
49
+ + Number(row.reasoningTokens || 0)
50
+ + Number(row.cacheReadTokens || 0)
51
+ + Number(row.cacheWriteTokens || 0);
52
+ if (used <= 0) {
53
+ return null;
54
+ }
55
+ return {
56
+ used,
57
+ inputTokens,
58
+ outputTokens,
59
+ breakdown: {
60
+ input: inputTokens,
61
+ output: outputTokens,
62
+ },
63
+ };
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ finally {
69
+ if (db) {
70
+ db.close();
71
+ }
72
+ }
73
+ }
74
+ async function spawnOpenCode(command, options = {}, ws) {
75
+ return new Promise((resolve, reject) => {
76
+ const { sessionId, projectPath, cwd, model, sessionSummary } = options;
77
+ const workingDir = cwd || projectPath || process.cwd();
78
+ const processKey = sessionId || Date.now().toString();
79
+ let capturedSessionId = sessionId || null;
80
+ let sessionCreatedSent = false;
81
+ let stdoutLineBuffer = '';
82
+ let terminalNotificationSent = false;
83
+ let opencodeProcess = null;
84
+ const notifyTerminalState = ({ code = null, error = null } = {}) => {
85
+ if (terminalNotificationSent) {
86
+ return;
87
+ }
88
+ terminalNotificationSent = true;
89
+ const finalSessionId = capturedSessionId || sessionId || processKey;
90
+ if (code === 0 && !error) {
91
+ notifyRunStopped({
92
+ userId: ws?.userId || null,
93
+ provider: 'opencode',
94
+ sessionId: finalSessionId,
95
+ sessionName: sessionSummary,
96
+ stopReason: 'completed',
97
+ });
98
+ return;
99
+ }
100
+ notifyRunFailed({
101
+ userId: ws?.userId || null,
102
+ provider: 'opencode',
103
+ sessionId: finalSessionId,
104
+ sessionName: sessionSummary,
105
+ error: error || `OpenCode CLI exited with code ${code}`,
106
+ });
107
+ };
108
+ const registerSession = (nextSessionId) => {
109
+ if (!nextSessionId || capturedSessionId === nextSessionId) {
110
+ return;
111
+ }
112
+ capturedSessionId = nextSessionId;
113
+ if (processKey !== capturedSessionId && opencodeProcess) {
114
+ activeOpenCodeProcesses.delete(processKey);
115
+ activeOpenCodeProcesses.set(capturedSessionId, opencodeProcess);
116
+ }
117
+ if (opencodeProcess) {
118
+ opencodeProcess.sessionId = capturedSessionId;
119
+ }
120
+ if (ws.setSessionId && typeof ws.setSessionId === 'function') {
121
+ ws.setSessionId(capturedSessionId);
122
+ }
123
+ if (!sessionId && !sessionCreatedSent) {
124
+ sessionCreatedSent = true;
125
+ ws.send(createNormalizedMessage({
126
+ kind: 'session_created',
127
+ newSessionId: capturedSessionId,
128
+ sessionId: capturedSessionId,
129
+ provider: 'opencode',
130
+ }));
131
+ }
132
+ };
133
+ const processOpenCodeOutputLine = (line) => {
134
+ if (!line || !line.trim()) {
135
+ return;
136
+ }
137
+ let response;
138
+ try {
139
+ response = JSON.parse(line);
140
+ }
141
+ catch {
142
+ ws.send(createNormalizedMessage({
143
+ kind: 'stream_delta',
144
+ content: line,
145
+ sessionId: capturedSessionId || sessionId || null,
146
+ provider: 'opencode',
147
+ }));
148
+ return;
149
+ }
150
+ try {
151
+ registerSession(readOpenCodeSessionId(response));
152
+ const normalized = sessionsService.normalizeMessage('opencode', response, capturedSessionId || sessionId || null);
153
+ for (const msg of normalized) {
154
+ ws.send(msg);
155
+ }
156
+ }
157
+ catch (error) {
158
+ const errorContent = error instanceof Error ? error.message : String(error);
159
+ console.error('[OpenCode] Failed to process JSON output:', errorContent);
160
+ ws.send(createNormalizedMessage({
161
+ kind: 'error',
162
+ content: errorContent,
163
+ sessionId: capturedSessionId || sessionId || null,
164
+ provider: 'opencode',
165
+ }));
166
+ }
167
+ };
168
+ void providerModelsService.resolveResumeModel('opencode', sessionId, model).then((resolvedModel) => {
169
+ const args = ['run', '--format', 'json'];
170
+ if (sessionId) {
171
+ args.push('--session', sessionId);
172
+ }
173
+ if (resolvedModel) {
174
+ args.push('--model', resolvedModel);
175
+ }
176
+ if (command && command.trim()) {
177
+ args.push(command.trim());
178
+ }
179
+ opencodeProcess = spawnFunction('opencode', args, {
180
+ cwd: workingDir,
181
+ stdio: ['pipe', 'pipe', 'pipe'],
182
+ env: { ...process.env },
183
+ });
184
+ activeOpenCodeProcesses.set(processKey, opencodeProcess);
185
+ opencodeProcess.sessionId = processKey;
186
+ opencodeProcess.stdin.end();
187
+ opencodeProcess.stdout.on('data', (data) => {
188
+ stdoutLineBuffer += data.toString();
189
+ const completeLines = stdoutLineBuffer.split(/\r?\n/);
190
+ stdoutLineBuffer = completeLines.pop() || '';
191
+ completeLines.forEach((line) => {
192
+ processOpenCodeOutputLine(line.trim());
193
+ });
194
+ });
195
+ opencodeProcess.stderr.on('data', (data) => {
196
+ const stderrText = data.toString();
197
+ if (!stderrText.trim()) {
198
+ return;
199
+ }
200
+ ws.send(createNormalizedMessage({
201
+ kind: 'error',
202
+ content: stderrText,
203
+ sessionId: capturedSessionId || sessionId || null,
204
+ provider: 'opencode',
205
+ }));
206
+ });
207
+ opencodeProcess.on('close', async (code) => {
208
+ const finalSessionId = capturedSessionId || sessionId || processKey;
209
+ activeOpenCodeProcesses.delete(finalSessionId);
210
+ activeOpenCodeProcesses.delete(processKey);
211
+ if (stdoutLineBuffer.trim()) {
212
+ processOpenCodeOutputLine(stdoutLineBuffer.trim());
213
+ stdoutLineBuffer = '';
214
+ }
215
+ const tokenBudget = readOpenCodeTokenUsage(finalSessionId);
216
+ if (tokenBudget) {
217
+ ws.send(createNormalizedMessage({
218
+ kind: 'status',
219
+ text: 'token_budget',
220
+ tokenBudget,
221
+ sessionId: finalSessionId,
222
+ provider: 'opencode',
223
+ }));
224
+ }
225
+ ws.send(createNormalizedMessage({
226
+ kind: 'complete',
227
+ exitCode: code,
228
+ isNewSession: !sessionId && !!command,
229
+ sessionId: finalSessionId,
230
+ provider: 'opencode',
231
+ }));
232
+ if (code === 0) {
233
+ notifyTerminalState({ code });
234
+ resolve();
235
+ return;
236
+ }
237
+ if (code === 127 || code === null) {
238
+ const installed = await providerAuthService.isProviderInstalled('opencode');
239
+ if (!installed) {
240
+ ws.send(createNormalizedMessage({
241
+ kind: 'error',
242
+ content: 'OpenCode CLI is not installed. Install it from https://opencode.ai/docs/',
243
+ sessionId: finalSessionId,
244
+ provider: 'opencode',
245
+ }));
246
+ }
247
+ }
248
+ notifyTerminalState({ code });
249
+ reject(new Error(code === null ? 'OpenCode CLI process was terminated' : `OpenCode CLI exited with code ${code}`));
250
+ });
251
+ opencodeProcess.on('error', async (error) => {
252
+ const finalSessionId = capturedSessionId || sessionId || processKey;
253
+ activeOpenCodeProcesses.delete(finalSessionId);
254
+ activeOpenCodeProcesses.delete(processKey);
255
+ const installed = await providerAuthService.isProviderInstalled('opencode');
256
+ const errorContent = !installed
257
+ ? 'OpenCode CLI is not installed. Install it from https://opencode.ai/docs/'
258
+ : error.message;
259
+ ws.send(createNormalizedMessage({
260
+ kind: 'error',
261
+ content: errorContent,
262
+ sessionId: finalSessionId,
263
+ provider: 'opencode',
264
+ }));
265
+ notifyTerminalState({ error });
266
+ reject(error);
267
+ });
268
+ }).catch(reject);
269
+ });
270
+ }
271
+ function abortOpenCodeSession(sessionId) {
272
+ const process = activeOpenCodeProcesses.get(sessionId);
273
+ if (!process) {
274
+ return false;
275
+ }
276
+ process.kill('SIGTERM');
277
+ activeOpenCodeProcesses.delete(sessionId);
278
+ return true;
279
+ }
280
+ function isOpenCodeSessionActive(sessionId) {
281
+ return activeOpenCodeProcesses.has(sessionId);
282
+ }
283
+ function getActiveOpenCodeSessions() {
284
+ return Array.from(activeOpenCodeProcesses.keys());
285
+ }
286
+ export { spawnOpenCode, abortOpenCodeSession, isOpenCodeSessionActive, getActiveOpenCodeSessions, };
287
+ //# sourceMappingURL=opencode-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-cli.js","sourceRoot":"","sources":["../../server/opencode-cli.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import assert from 'node:assert/strict';
2
+ import { chmod, mkdtemp, rm, writeFile } from 'node:fs/promises';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import test from 'node:test';
6
+ import { spawnOpenCode } from './opencode-cli.js';
7
+ const findEnvKey = (name) => Object.keys(process.env).find((key) => key.toLowerCase() === name.toLowerCase()) || name;
8
+ async function createFakeOpenCodeExecutable(binDir) {
9
+ const scriptPath = path.join(binDir, 'opencode.js');
10
+ await writeFile(scriptPath, `
11
+ const events = [
12
+ { type: 'text', sessionID: 'open-live-1', text: 'assistant response' },
13
+ { type: 'step_finish', sessionID: 'open-live-1' },
14
+ ];
15
+
16
+ for (const event of events) {
17
+ console.log(JSON.stringify(event));
18
+ }
19
+ `, 'utf8');
20
+ if (process.platform === 'win32') {
21
+ const commandPath = path.join(binDir, 'opencode.cmd');
22
+ await writeFile(commandPath, '@echo off\r\nnode "%~dp0opencode.js" %*\r\n', 'utf8');
23
+ return;
24
+ }
25
+ const commandPath = path.join(binDir, 'opencode');
26
+ await writeFile(commandPath, '#!/bin/sh\nnode "$(dirname "$0")/opencode.js" "$@"\n', 'utf8');
27
+ await chmod(commandPath, 0o755);
28
+ }
29
+ test('spawnOpenCode emits session_created before normalized live messages for new sessions', async () => {
30
+ const tempRoot = await mkdtemp(path.join(os.tmpdir(), 'opencode-cli-live-'));
31
+ const pathKey = findEnvKey('PATH');
32
+ const pathExtKey = findEnvKey('PATHEXT');
33
+ const previousPath = process.env[pathKey];
34
+ const previousPathExt = process.env[pathExtKey];
35
+ const messages = [];
36
+ const writer = {
37
+ userId: null,
38
+ sessionId: null,
39
+ send(message) {
40
+ messages.push(message);
41
+ },
42
+ setSessionId(sessionId) {
43
+ this.sessionId = sessionId;
44
+ },
45
+ };
46
+ try {
47
+ await createFakeOpenCodeExecutable(tempRoot);
48
+ process.env[pathKey] = `${tempRoot}${path.delimiter}${previousPath || ''}`;
49
+ if (process.platform === 'win32') {
50
+ process.env[pathExtKey] = previousPathExt?.toUpperCase().includes('.CMD')
51
+ ? previousPathExt
52
+ : `.COM;.EXE;.BAT;.CMD${previousPathExt ? `;${previousPathExt}` : ''}`;
53
+ }
54
+ await spawnOpenCode('Hi', { cwd: tempRoot }, writer);
55
+ const sessionCreatedIndex = messages.findIndex((message) => message.kind === 'session_created');
56
+ const assistantDeltaIndex = messages.findIndex((message) => message.kind === 'stream_delta' && message.content === 'assistant response');
57
+ const streamEnd = messages.find((message) => message.kind === 'stream_end');
58
+ const complete = messages.find((message) => message.kind === 'complete');
59
+ assert.notEqual(sessionCreatedIndex, -1);
60
+ assert.notEqual(assistantDeltaIndex, -1);
61
+ assert.ok(sessionCreatedIndex < assistantDeltaIndex);
62
+ assert.equal(messages[sessionCreatedIndex].newSessionId, 'open-live-1');
63
+ assert.equal(writer.sessionId, 'open-live-1');
64
+ assert.equal(streamEnd?.sessionId, 'open-live-1');
65
+ assert.equal(complete?.sessionId, 'open-live-1');
66
+ assert.equal(messages.some((message) => message.kind === 'error'), false);
67
+ }
68
+ finally {
69
+ if (previousPath === undefined) {
70
+ delete process.env[pathKey];
71
+ }
72
+ else {
73
+ process.env[pathKey] = previousPath;
74
+ }
75
+ if (previousPathExt === undefined) {
76
+ delete process.env[pathExtKey];
77
+ }
78
+ else {
79
+ process.env[pathExtKey] = previousPathExt;
80
+ }
81
+ await rm(tempRoot, { recursive: true, force: true });
82
+ }
83
+ });
84
+ //# sourceMappingURL=opencode-cli.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-cli.test.js","sourceRoot":"","sources":["../../server/opencode-cli.test.js"],"names":[],"mappings":"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"}
@@ -9,8 +9,9 @@ import { queryClaudeSDK } from '../claude-sdk.js';
9
9
  import { spawnCursor } from '../cursor-cli.js';
10
10
  import { queryCodex } from '../openai-codex.js';
11
11
  import { spawnGemini } from '../gemini-cli.js';
12
+ import { spawnOpenCode } from '../opencode-cli.js';
12
13
  import { Octokit } from '@octokit/rest';
13
- import { CLAUDE_MODELS, CURSOR_MODELS, CODEX_MODELS } from '../../shared/modelConstants.js';
14
+ import { providerModelsService } from '../modules/providers/services/provider-models.service.js';
14
15
  import { IS_PLATFORM } from '../constants/config.js';
15
16
  import { normalizeProjectPath } from '../shared/utils.js';
16
17
  const router = express.Router();
@@ -542,7 +543,7 @@ class ResponseCollector {
542
543
  /**
543
544
  * POST /api/agent
544
545
  *
545
- * Trigger an AI agent (Claude or Cursor) to work on a project.
546
+ * Trigger an AI agent to work on a project.
546
547
  * Supports automatic GitHub branch and pull request creation after successful completion.
547
548
  *
548
549
  * ================================================================================================
@@ -567,7 +568,7 @@ class ResponseCollector {
567
568
  * - Source for auto-generated branch names (if createBranch=true and no branchName)
568
569
  * - Fallback for PR title if no commits are made
569
570
  *
570
- * @param {string} provider - (Optional) AI provider to use. Options: 'claude' | 'cursor' | 'codex' | 'gemini'
571
+ * @param {string} provider - (Optional) AI provider to use. Options: 'claude' | 'cursor' | 'codex' | 'gemini' | 'opencode'
571
572
  * Default: 'claude'
572
573
  *
573
574
  * @param {boolean} stream - (Optional) Enable Server-Sent Events (SSE) streaming for real-time updates.
@@ -685,7 +686,7 @@ class ResponseCollector {
685
686
  * Input Validations (400 Bad Request):
686
687
  * - Either githubUrl OR projectPath must be provided (not neither)
687
688
  * - message must be non-empty string
688
- * - provider must be 'claude', 'cursor', 'codex', or 'gemini'
689
+ * - provider must be 'claude', 'cursor', 'codex', 'gemini', or 'opencode'
689
690
  * - createBranch/createPR requires githubUrl OR projectPath (not neither)
690
691
  * - branchName must pass Git naming rules (if provided)
691
692
  *
@@ -788,8 +789,8 @@ router.post('/', validateExternalApiKey, async (req, res) => {
788
789
  if (!message || !message.trim()) {
789
790
  return res.status(400).json({ error: 'message is required' });
790
791
  }
791
- if (!['claude', 'cursor', 'codex', 'gemini'].includes(provider)) {
792
- return res.status(400).json({ error: 'provider must be "claude", "cursor", "codex", or "gemini"' });
792
+ if (!['claude', 'cursor', 'codex', 'gemini', 'opencode'].includes(provider)) {
793
+ return res.status(400).json({ error: 'provider must be "claude", "cursor", "codex", "gemini", or "opencode"' });
793
794
  }
794
795
  // Validate GitHub branch/PR creation requirements
795
796
  // Allow branch/PR creation with projectPath as long as it has a GitHub remote
@@ -859,6 +860,9 @@ router.post('/', validateExternalApiKey, async (req, res) => {
859
860
  projectPath: finalProjectPath
860
861
  });
861
862
  }
863
+ const codexModels = (await providerModelsService.getProviderModels('codex')).models;
864
+ const geminiModels = (await providerModelsService.getProviderModels('gemini')).models;
865
+ const opencodeModels = (await providerModelsService.getProviderModels('opencode')).models;
862
866
  // Start the appropriate session
863
867
  if (provider === 'claude') {
864
868
  console.log('🤖 Starting Claude SDK session');
@@ -886,7 +890,7 @@ router.post('/', validateExternalApiKey, async (req, res) => {
886
890
  projectPath: finalProjectPath,
887
891
  cwd: finalProjectPath,
888
892
  sessionId: sessionId || null,
889
- model: model || CODEX_MODELS.DEFAULT,
893
+ model: model || codexModels.DEFAULT,
890
894
  permissionMode: 'bypassPermissions'
891
895
  }, writer);
892
896
  }
@@ -896,10 +900,19 @@ router.post('/', validateExternalApiKey, async (req, res) => {
896
900
  projectPath: finalProjectPath,
897
901
  cwd: finalProjectPath,
898
902
  sessionId: sessionId || null,
899
- model: model,
903
+ model: model || geminiModels.DEFAULT,
900
904
  skipPermissions: true // CLI mode bypasses permissions
901
905
  }, writer);
902
906
  }
907
+ else if (provider === 'opencode') {
908
+ console.log('Starting OpenCode CLI session');
909
+ await spawnOpenCode(message.trim(), {
910
+ projectPath: finalProjectPath,
911
+ cwd: finalProjectPath,
912
+ sessionId: sessionId || null,
913
+ model: model || opencodeModels.DEFAULT
914
+ }, writer);
915
+ }
903
916
  // Handle GitHub branch and PR creation after successful agent completion
904
917
  let branchInfo = null;
905
918
  let prInfo = null;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../server/routes/agent.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../server/routes/agent.js"],"names":[],"mappings":"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"}