@cloudcli-ai/cloudcli 1.34.0 → 1.35.1

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 (247) hide show
  1. package/README.de.md +9 -1
  2. package/README.ja.md +8 -0
  3. package/README.ko.md +9 -1
  4. package/README.md +23 -5
  5. package/README.ru.md +9 -1
  6. package/README.tr.md +8 -1
  7. package/README.zh-CN.md +9 -1
  8. package/README.zh-TW.md +9 -1
  9. package/dist/api-docs.html +36 -18
  10. package/dist/assets/index-BvX30NW5.css +32 -0
  11. package/dist/assets/index-D1IdCTT6.js +1418 -0
  12. package/dist/index.html +12 -4
  13. package/dist-server/server/browser-use-mcp.js +350 -0
  14. package/dist-server/server/browser-use-mcp.js.map +1 -0
  15. package/dist-server/server/claude-sdk.js +25 -5
  16. package/dist-server/server/claude-sdk.js.map +1 -1
  17. package/dist-server/server/cli.js +14 -6
  18. package/dist-server/server/cli.js.map +1 -1
  19. package/dist-server/server/cursor-cli.js +27 -11
  20. package/dist-server/server/cursor-cli.js.map +1 -1
  21. package/dist-server/server/gemini-cli.js +17 -2
  22. package/dist-server/server/gemini-cli.js.map +1 -1
  23. package/dist-server/server/index.js +136 -40
  24. package/dist-server/server/index.js.map +1 -1
  25. package/dist-server/server/load-env.js +1 -1
  26. package/dist-server/server/load-env.js.map +1 -1
  27. package/dist-server/server/modules/browser-use/browser-use-mcp.routes.js +107 -0
  28. package/dist-server/server/modules/browser-use/browser-use-mcp.routes.js.map +1 -0
  29. package/dist-server/server/modules/browser-use/browser-use.routes.js +93 -0
  30. package/dist-server/server/modules/browser-use/browser-use.routes.js.map +1 -0
  31. package/dist-server/server/modules/browser-use/browser-use.service.js +688 -0
  32. package/dist-server/server/modules/browser-use/browser-use.service.js.map +1 -0
  33. package/dist-server/server/modules/browser-use/tests/browser-use.service.test.js +8 -0
  34. package/dist-server/server/modules/browser-use/tests/browser-use.service.test.js.map +1 -0
  35. package/dist-server/server/modules/database/index.js +1 -0
  36. package/dist-server/server/modules/database/index.js.map +1 -1
  37. package/dist-server/server/modules/database/migrations.js +23 -1
  38. package/dist-server/server/modules/database/migrations.js.map +1 -1
  39. package/dist-server/server/modules/database/repositories/notification-channel-endpoints.js +100 -0
  40. package/dist-server/server/modules/database/repositories/notification-channel-endpoints.js.map +1 -0
  41. package/dist-server/server/modules/database/repositories/notification-preferences.js +8 -0
  42. package/dist-server/server/modules/database/repositories/notification-preferences.js.map +1 -1
  43. package/dist-server/server/modules/database/repositories/sessions.db.js +173 -17
  44. package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -1
  45. package/dist-server/server/modules/database/schema.js +26 -0
  46. package/dist-server/server/modules/database/schema.js.map +1 -1
  47. package/dist-server/server/modules/database/tests/projects.db.integration.test.js.map +1 -0
  48. package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js +78 -0
  49. package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js.map +1 -0
  50. package/dist-server/server/modules/database/{repositories → tests}/sessions.db.integration.test.js +10 -0
  51. package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -0
  52. package/dist-server/server/modules/notifications/index.js +4 -0
  53. package/dist-server/server/modules/notifications/index.js.map +1 -0
  54. package/dist-server/server/modules/notifications/notifications.routes.js +115 -0
  55. package/dist-server/server/modules/notifications/notifications.routes.js.map +1 -0
  56. package/dist-server/server/modules/notifications/services/desktop-notification-clients.service.js +97 -0
  57. package/dist-server/server/modules/notifications/services/desktop-notification-clients.service.js.map +1 -0
  58. package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js +229 -0
  59. package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js.map +1 -0
  60. package/dist-server/server/modules/notifications/websocket/desktop-notifications-websocket.service.js +79 -0
  61. package/dist-server/server/modules/notifications/websocket/desktop-notifications-websocket.service.js.map +1 -0
  62. package/dist-server/server/modules/projects/services/project-management.service.js +0 -4
  63. package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -1
  64. package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +10 -38
  65. package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -1
  66. package/dist-server/server/modules/providers/index.js +1 -0
  67. package/dist-server/server/modules/providers/index.js.map +1 -1
  68. package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +24 -1
  69. package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -1
  70. package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +9 -12
  71. package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -1
  72. package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +7 -0
  73. package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js.map +1 -1
  74. package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +7 -3
  75. package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -1
  76. package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +3 -9
  77. package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -1
  78. package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js +7 -0
  79. package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js.map +1 -1
  80. package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js +13 -22
  81. package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js.map +1 -1
  82. package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js +7 -0
  83. package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js.map +1 -1
  84. package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js +5 -8
  85. package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js.map +1 -1
  86. package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js +6 -6
  87. package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js.map +1 -1
  88. package/dist-server/server/modules/providers/list/gemini/gemini-skills.provider.js +7 -0
  89. package/dist-server/server/modules/providers/list/gemini/gemini-skills.provider.js.map +1 -1
  90. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +17 -3
  91. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -1
  92. package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js +9 -10
  93. package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js.map +1 -1
  94. package/dist-server/server/modules/providers/provider.routes.js +123 -1
  95. package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
  96. package/dist-server/server/modules/providers/services/mcp.service.js +23 -0
  97. package/dist-server/server/modules/providers/services/mcp.service.js.map +1 -1
  98. package/dist-server/server/modules/providers/services/provider-capabilities.service.js +65 -0
  99. package/dist-server/server/modules/providers/services/provider-capabilities.service.js.map +1 -0
  100. package/dist-server/server/modules/providers/services/provider-models.service.js +1 -1
  101. package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -1
  102. package/dist-server/server/modules/providers/services/sessions-watcher.service.js +62 -23
  103. package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
  104. package/dist-server/server/modules/providers/services/sessions.service.js +62 -4
  105. package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -1
  106. package/dist-server/server/modules/providers/services/skills.service.js +11 -0
  107. package/dist-server/server/modules/providers/services/skills.service.js.map +1 -1
  108. package/dist-server/server/modules/providers/shared/skills/skills.provider.js +163 -1
  109. package/dist-server/server/modules/providers/shared/skills/skills.provider.js.map +1 -1
  110. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +45 -0
  111. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -1
  112. package/dist-server/server/modules/providers/tests/skills.test.js +160 -0
  113. package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -1
  114. package/dist-server/server/modules/websocket/index.js +1 -0
  115. package/dist-server/server/modules/websocket/index.js.map +1 -1
  116. package/dist-server/server/modules/websocket/services/chat-run-registry.service.js +252 -0
  117. package/dist-server/server/modules/websocket/services/chat-run-registry.service.js.map +1 -0
  118. package/dist-server/server/modules/websocket/services/chat-session-writer.service.js +105 -0
  119. package/dist-server/server/modules/websocket/services/chat-session-writer.service.js.map +1 -0
  120. package/dist-server/server/modules/websocket/services/chat-websocket.service.js +218 -156
  121. package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
  122. package/dist-server/server/modules/websocket/services/shell-websocket.service.js +83 -31
  123. package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
  124. package/dist-server/server/modules/websocket/services/websocket-server.service.js +5 -0
  125. package/dist-server/server/modules/websocket/services/websocket-server.service.js.map +1 -1
  126. package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js +216 -0
  127. package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js.map +1 -0
  128. package/dist-server/server/openai-codex.js +24 -14
  129. package/dist-server/server/openai-codex.js.map +1 -1
  130. package/dist-server/server/opencode-cli.js +21 -8
  131. package/dist-server/server/opencode-cli.js.map +1 -1
  132. package/dist-server/server/opencode-cli.test.js +19 -1
  133. package/dist-server/server/opencode-cli.test.js.map +1 -1
  134. package/dist-server/server/routes/settings.js +1 -1
  135. package/dist-server/server/routes/settings.js.map +1 -1
  136. package/dist-server/server/services/notification-orchestrator.js +1 -176
  137. package/dist-server/server/services/notification-orchestrator.js.map +1 -1
  138. package/dist-server/server/services/tests/notification-orchestrator.test.js +64 -0
  139. package/dist-server/server/services/tests/notification-orchestrator.test.js.map +1 -0
  140. package/dist-server/server/shared/{claude-cli-path.test.js → tests/claude-cli-path.test.js} +1 -1
  141. package/dist-server/server/shared/tests/claude-cli-path.test.js.map +1 -0
  142. package/dist-server/server/shared/tests/slice-tail-page.test.js +35 -0
  143. package/dist-server/server/shared/tests/slice-tail-page.test.js.map +1 -0
  144. package/dist-server/server/shared/utils.js +73 -1
  145. package/dist-server/server/shared/utils.js.map +1 -1
  146. package/dist-server/server/voice-proxy.js +226 -0
  147. package/dist-server/server/voice-proxy.js.map +1 -0
  148. package/electron/assets/logo-macos.icns +0 -0
  149. package/electron/assets/logo-macos.png +0 -0
  150. package/electron/assets/logo-windows.ico +0 -0
  151. package/electron/cloud.js +260 -0
  152. package/electron/desktopNotifications.js +378 -0
  153. package/electron/desktopWindow.js +766 -0
  154. package/electron/launcher/index.html +14 -0
  155. package/electron/launcher/launcher.css +801 -0
  156. package/electron/launcher/launcher.js +687 -0
  157. package/electron/localServer.js +550 -0
  158. package/electron/main.js +944 -0
  159. package/electron/preload.cjs +60 -0
  160. package/electron/scripts/generate-macos-icon.js +62 -0
  161. package/electron/serverInstaller.js +277 -0
  162. package/electron/tabs.js +87 -0
  163. package/electron/viewHost.js +331 -0
  164. package/package.json +79 -3
  165. package/public/api-docs.html +36 -18
  166. package/scripts/release/build-server-bundle.js +176 -0
  167. package/scripts/release/prepare-desktop-app.js +152 -0
  168. package/server/browser-use-mcp.ts +384 -0
  169. package/server/claude-sdk.js +27 -5
  170. package/server/cli.js +15 -6
  171. package/server/cursor-cli.js +27 -11
  172. package/server/gemini-cli.js +17 -2
  173. package/server/index.js +137 -47
  174. package/server/load-env.js +1 -1
  175. package/server/modules/browser-use/browser-use-mcp.routes.ts +120 -0
  176. package/server/modules/browser-use/browser-use.routes.ts +96 -0
  177. package/server/modules/browser-use/browser-use.service.ts +836 -0
  178. package/server/modules/browser-use/tests/browser-use.service.test.ts +10 -0
  179. package/server/modules/database/index.ts +1 -0
  180. package/server/modules/database/migrations.ts +25 -0
  181. package/server/modules/database/repositories/notification-channel-endpoints.ts +153 -0
  182. package/server/modules/database/repositories/notification-preferences.ts +12 -1
  183. package/server/modules/database/repositories/sessions.db.ts +227 -23
  184. package/server/modules/database/schema.ts +27 -0
  185. package/server/modules/database/tests/sessions-provider-mapping.test.ts +108 -0
  186. package/server/modules/database/{repositories → tests}/sessions.db.integration.test.ts +12 -0
  187. package/server/modules/notifications/index.ts +13 -0
  188. package/server/modules/notifications/notifications.routes.ts +127 -0
  189. package/server/modules/notifications/services/desktop-notification-clients.service.ts +124 -0
  190. package/server/modules/notifications/services/notification-orchestrator.service.js +288 -0
  191. package/server/modules/notifications/websocket/desktop-notifications-websocket.service.ts +109 -0
  192. package/server/modules/projects/services/project-management.service.ts +0 -8
  193. package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +12 -53
  194. package/server/modules/providers/README.md +1 -1
  195. package/server/modules/providers/index.ts +1 -0
  196. package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +26 -1
  197. package/server/modules/providers/list/claude/claude-sessions.provider.ts +9 -14
  198. package/server/modules/providers/list/claude/claude-skills.provider.ts +8 -0
  199. package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +7 -3
  200. package/server/modules/providers/list/codex/codex-sessions.provider.ts +3 -12
  201. package/server/modules/providers/list/codex/codex-skills.provider.ts +8 -0
  202. package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +13 -22
  203. package/server/modules/providers/list/cursor/cursor-skills.provider.ts +8 -0
  204. package/server/modules/providers/list/gemini/gemini-models.provider.ts +5 -8
  205. package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +6 -6
  206. package/server/modules/providers/list/gemini/gemini-skills.provider.ts +8 -0
  207. package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +18 -4
  208. package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +9 -12
  209. package/server/modules/providers/provider.routes.ts +167 -1
  210. package/server/modules/providers/services/mcp.service.ts +26 -0
  211. package/server/modules/providers/services/provider-capabilities.service.ts +91 -0
  212. package/server/modules/providers/services/provider-models.service.ts +1 -1
  213. package/server/modules/providers/services/sessions-watcher.service.ts +71 -25
  214. package/server/modules/providers/services/sessions.service.ts +79 -4
  215. package/server/modules/providers/services/skills.service.ts +25 -1
  216. package/server/modules/providers/shared/skills/skills.provider.ts +223 -0
  217. package/server/modules/providers/tests/opencode-sessions.test.ts +49 -0
  218. package/server/modules/providers/tests/skills.test.ts +212 -0
  219. package/server/modules/websocket/README.md +33 -27
  220. package/server/modules/websocket/index.ts +1 -0
  221. package/server/modules/websocket/services/chat-run-registry.service.ts +327 -0
  222. package/server/modules/websocket/services/chat-session-writer.service.ts +145 -0
  223. package/server/modules/websocket/services/chat-websocket.service.ts +292 -207
  224. package/server/modules/websocket/services/shell-websocket.service.ts +108 -32
  225. package/server/modules/websocket/services/websocket-server.service.ts +6 -0
  226. package/server/modules/websocket/tests/chat-run-registry.test.ts +244 -0
  227. package/server/openai-codex.js +24 -14
  228. package/server/opencode-cli.js +21 -8
  229. package/server/opencode-cli.test.js +20 -1
  230. package/server/routes/settings.js +6 -1
  231. package/server/services/notification-orchestrator.js +3 -224
  232. package/server/services/tests/notification-orchestrator.test.js +80 -0
  233. package/server/shared/interfaces.ts +15 -0
  234. package/server/shared/tests/slice-tail-page.test.ts +42 -0
  235. package/server/shared/types.ts +84 -1
  236. package/server/shared/utils.ts +95 -1
  237. package/server/voice-proxy.js +224 -0
  238. package/dist/assets/index-73Xw3i9v.css +0 -32
  239. package/dist/assets/index-BIHaviaA.js +0 -1361
  240. package/dist/modelConstants.js +0 -854
  241. package/dist-server/server/modules/database/repositories/projects.db.integration.test.js.map +0 -1
  242. package/dist-server/server/modules/database/repositories/sessions.db.integration.test.js.map +0 -1
  243. package/dist-server/server/shared/claude-cli-path.test.js.map +0 -1
  244. package/public/modelConstants.js +0 -854
  245. /package/dist-server/server/modules/database/{repositories → tests}/projects.db.integration.test.js +0 -0
  246. /package/server/modules/database/{repositories → tests}/projects.db.integration.test.ts +0 -0
  247. /package/server/shared/{claude-cli-path.test.ts → tests/claude-cli-path.test.ts} +0 -0
@@ -205,6 +205,51 @@ test('OpenCode session synchronizer indexes sqlite sessions without deletable tr
205
205
  await rm(tempRoot, { recursive: true, force: true });
206
206
  }
207
207
  });
208
+ test('OpenCode session synchronizer returns the app session id once provider mapping exists', { concurrency: false }, async () => {
209
+ const tempRoot = await mkdtemp(path.join(os.tmpdir(), 'opencode-session-sync-mapped-'));
210
+ const workspacePath = path.join(tempRoot, 'workspace');
211
+ await mkdir(workspacePath, { recursive: true });
212
+ const restoreHomeDir = patchHomeDir(tempRoot);
213
+ try {
214
+ await createOpenCodeDatabase(tempRoot, workspacePath);
215
+ await withIsolatedDatabase(() => {
216
+ sessionsDb.createAppSession('app-session-1', 'opencode', workspacePath);
217
+ sessionsDb.assignProviderSessionId('app-session-1', 'open-session-1');
218
+ const synchronizer = new OpenCodeSessionSynchronizer();
219
+ return synchronizer.synchronizeFile(path.join(tempRoot, '.local', 'share', 'opencode', 'opencode.db')).then((sessionId) => {
220
+ assert.equal(sessionId, 'app-session-1');
221
+ assert.equal(sessionsDb.getAllSessions().length, 1);
222
+ assert.equal(sessionsDb.getSessionById('app-session-1')?.provider_session_id, 'open-session-1');
223
+ });
224
+ });
225
+ }
226
+ finally {
227
+ restoreHomeDir();
228
+ await rm(tempRoot, { recursive: true, force: true });
229
+ }
230
+ });
231
+ test('OpenCode session synchronizer adopts the pending app session before watcher sync creates a duplicate', { concurrency: false }, async () => {
232
+ const tempRoot = await mkdtemp(path.join(os.tmpdir(), 'opencode-session-sync-race-'));
233
+ const workspacePath = path.join(tempRoot, 'workspace');
234
+ await mkdir(workspacePath, { recursive: true });
235
+ const restoreHomeDir = patchHomeDir(tempRoot);
236
+ try {
237
+ await createOpenCodeDatabase(tempRoot, workspacePath);
238
+ await withIsolatedDatabase(() => {
239
+ sessionsDb.createAppSession('app-session-race', 'opencode', workspacePath);
240
+ const synchronizer = new OpenCodeSessionSynchronizer();
241
+ return synchronizer.synchronizeFile(path.join(tempRoot, '.local', 'share', 'opencode', 'opencode.db')).then((sessionId) => {
242
+ assert.equal(sessionId, 'app-session-race');
243
+ assert.equal(sessionsDb.getAllSessions().length, 1);
244
+ assert.equal(sessionsDb.getSessionById('app-session-race')?.provider_session_id, 'open-session-1');
245
+ });
246
+ });
247
+ }
248
+ finally {
249
+ restoreHomeDir();
250
+ await rm(tempRoot, { recursive: true, force: true });
251
+ }
252
+ });
208
253
  test('OpenCode sessions provider normalizes quoted live text and skips user echoes', () => {
209
254
  const provider = new OpenCodeSessionsProvider();
210
255
  const normalized = provider.normalizeMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sessions.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/opencode-sessions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-sessions.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/opencode-sessions.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,6EAA6E,CAAC;AAC1H,OAAO,EAAE,wBAAwB,EAAE,MAAM,iEAAiE,CAAC;AAE3G,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;IAC3B,EAAU,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;IACxC,OAAO,GAAG,EAAE;QACT,EAAU,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,UAAU,oBAAoB,CAAC,OAAmC;IACrE,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEzD,eAAe,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC;IACzC,MAAM,kBAAkB,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,eAAe,EAAE,CAAC;QAClB,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,oBAAoB,CAAC;QACnD,CAAC;QACD,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,sBAAsB,GAAG,KAAK,EAAE,OAAe,EAAE,aAAqB,EAAiB,EAAE;IAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuEP,CAAC,CAAC;QAEH,EAAE,CAAC,OAAO,CACR,kGAAkG,CACnG,CAAC,GAAG,CACH,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CACL,CAAC;QACF,EAAE,CAAC,OAAO,CAAC;;;;;;KAMV,CAAC,CAAC,GAAG,CACJ,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,EACJ,EAAE,EACF,EAAE,EACF,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE;SACtD,CAAC,CAAC;QACH,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE;YAClE,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,6BAA6B;YACtC,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;YAC7B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;aAC7B;SACF,CAAC,CAAC;QAEH,EAAE,CAAC,OAAO,CACR,+FAA+F,CAChG,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAC/F,EAAE,CAAC,OAAO,CACR,+FAA+F,CAChG,CAAC,GAAG,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;QAEzG,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAG7B,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,CACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC;SACxD,CAAC,CACH,CAAC;QACF,UAAU,CAAC,GAAG,CACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,0CAA0C;YAChD,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;SAC3B,CAAC,CACH,CAAC;QACF,UAAU,CAAC,GAAG,CACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CACH,CAAC;QACF,UAAU,CAAC,GAAG,CACZ,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE;gBACL,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;gBAC9B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;aAC3B;SACF,CAAC,CACH,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,CAAC,0FAA0F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAClI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,oBAAoB,CAAC,GAAG,EAAE;YAC9B,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAE7C,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uFAAuF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC/H,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,oBAAoB,CAAC,GAAG,EAAE;YAC9B,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YACxE,UAAU,CAAC,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAEtE,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;YACvD,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACxH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sGAAsG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC9I,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,oBAAoB,CAAC,GAAG,EAAE;YAC9B,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YAE3E,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;YACvD,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACxH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;YACrG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8EAA8E,EAAE,GAAG,EAAE;IACxF,MAAM,QAAQ,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC3C,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,mBAAmB;QAC9B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KAClC,EAAE,IAAI,CAAC,CAAC;IAET,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACzC,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,mBAAmB;QAC9B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,WAAW;KAClB,EAAE,IAAI,CAAC,CAAC;IAET,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACzG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACpF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE;YACnC,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;aACX;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;IACrE,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -256,4 +256,164 @@ test('providerSkillsService lists gemini and cursor skills from their configured
256
256
  await fs.rm(tempRoot, { recursive: true, force: true });
257
257
  }
258
258
  });
259
+ /**
260
+ * This test covers managed global skill creation for providers that own a
261
+ * writable user skill directory.
262
+ */
263
+ test('providerSkillsService adds global skills for claude, codex, gemini, and cursor', { concurrency: false }, async () => {
264
+ const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'llm-skills-create-'));
265
+ const restoreHomeDir = patchHomeDir(tempRoot);
266
+ try {
267
+ const createdClaudeSkills = await providerSkillsService.addProviderSkills('claude', {
268
+ entries: [
269
+ {
270
+ directoryName: 'claude-global-dir',
271
+ content: '---\nname: claude-global\ndescription: Claude global skill\n---\n\nClaude body.\n',
272
+ },
273
+ ],
274
+ });
275
+ const createdClaudeSkill = createdClaudeSkills[0];
276
+ assert.ok(createdClaudeSkill);
277
+ assert.equal(createdClaudeSkill.command, '/claude-global');
278
+ assert.equal(createdClaudeSkill.sourcePath.endsWith(path.join('.claude', 'skills', 'claude-global-dir', 'SKILL.md')), true);
279
+ assert.match(await fs.readFile(createdClaudeSkill.sourcePath, 'utf8'), /Claude body\./);
280
+ const createdCodexSkills = await providerSkillsService.addProviderSkills('codex', {
281
+ entries: [
282
+ {
283
+ directoryName: 'uploaded-codex-folder',
284
+ fileName: 'SKILL.md',
285
+ content: '---\nname: codex-global\ndescription: Codex global skill\n---\n\nCodex body.\n',
286
+ files: [
287
+ {
288
+ relativePath: 'scripts/run.js',
289
+ content: Buffer.from('console.log("codex skill");\n').toString('base64'),
290
+ encoding: 'base64',
291
+ },
292
+ ],
293
+ },
294
+ ],
295
+ });
296
+ const createdCodexSkill = createdCodexSkills[0];
297
+ assert.ok(createdCodexSkill);
298
+ assert.equal(createdCodexSkill.command, '$codex-global');
299
+ assert.equal(createdCodexSkill.sourcePath.endsWith(path.join('.agents', 'skills', 'uploaded-codex-folder', 'SKILL.md')), true);
300
+ assert.equal(await fs.readFile(path.join(path.dirname(createdCodexSkill.sourcePath), 'scripts', 'run.js'), 'utf8'), 'console.log("codex skill");\n');
301
+ const fallbackNamedSkills = await providerSkillsService.addProviderSkills('codex', {
302
+ entries: [
303
+ {
304
+ fileName: 'fallback / skill.md',
305
+ content: '---\ndescription: Normalized fallback skill\n---\n\nFallback body.\n',
306
+ },
307
+ ],
308
+ });
309
+ const fallbackNamedSkill = fallbackNamedSkills[0];
310
+ assert.ok(fallbackNamedSkill);
311
+ assert.equal(fallbackNamedSkill.name, 'fallback-skill');
312
+ assert.equal(fallbackNamedSkill.command, '$fallback-skill');
313
+ assert.equal(fallbackNamedSkill.sourcePath.endsWith(path.join('.agents', 'skills', 'fallback-skill', 'SKILL.md')), true);
314
+ const replacedCodexSkills = await providerSkillsService.addProviderSkills('codex', {
315
+ entries: [
316
+ {
317
+ directoryName: 'uploaded-codex-folder',
318
+ content: '---\nname: replacement\ndescription: Replacement skill\n---\n\nReplacement body.\n',
319
+ },
320
+ ],
321
+ });
322
+ assert.equal(replacedCodexSkills[0]?.command, '$replacement');
323
+ assert.match(await fs.readFile(createdCodexSkill.sourcePath, 'utf8'), /Replacement body\./);
324
+ await assert.rejects(fs.stat(path.join(path.dirname(createdCodexSkill.sourcePath), 'scripts', 'run.js')), { code: 'ENOENT' });
325
+ const pendingBatchSkillPath = path.join(tempRoot, '.agents', 'skills', 'pending-batch', 'SKILL.md');
326
+ await assert.rejects(providerSkillsService.addProviderSkills('codex', {
327
+ entries: [
328
+ {
329
+ directoryName: 'pending-batch',
330
+ content: '---\nname: pending-batch\n---\n\nPending body.\n',
331
+ },
332
+ {
333
+ directoryName: 'pending-batch',
334
+ content: '---\nname: duplicate-batch\n---\n\nDuplicate body.\n',
335
+ },
336
+ ],
337
+ }), /duplicate skill target/i);
338
+ await assert.rejects(fs.stat(pendingBatchSkillPath), { code: 'ENOENT' });
339
+ const createdGeminiSkills = await providerSkillsService.addProviderSkills('gemini', {
340
+ entries: [
341
+ {
342
+ directoryName: 'gemini-global-dir',
343
+ content: '---\nname: gemini-global\ndescription: Gemini global skill\n---\n\nGemini body.\n',
344
+ },
345
+ ],
346
+ });
347
+ const createdGeminiSkill = createdGeminiSkills[0];
348
+ assert.ok(createdGeminiSkill);
349
+ assert.equal(createdGeminiSkill.command, '/gemini-global');
350
+ assert.equal(createdGeminiSkill.sourcePath.endsWith(path.join('.gemini', 'skills', 'gemini-global-dir', 'SKILL.md')), true);
351
+ const createdCursorSkills = await providerSkillsService.addProviderSkills('cursor', {
352
+ entries: [
353
+ {
354
+ directoryName: 'cursor-global-dir',
355
+ content: '---\nname: cursor-global\ndescription: Cursor global skill\n---\n\nCursor body.\n',
356
+ },
357
+ ],
358
+ });
359
+ const createdCursorSkill = createdCursorSkills[0];
360
+ assert.ok(createdCursorSkill);
361
+ assert.equal(createdCursorSkill.command, '/cursor-global');
362
+ assert.equal(createdCursorSkill.sourcePath.endsWith(path.join('.cursor', 'skills', 'cursor-global-dir', 'SKILL.md')), true);
363
+ const listedClaudeSkills = await providerSkillsService.listProviderSkills('claude');
364
+ assert.equal(listedClaudeSkills.some((skill) => skill.name === 'claude-global'), true);
365
+ const listedCodexSkills = await providerSkillsService.listProviderSkills('codex');
366
+ assert.equal(listedCodexSkills.some((skill) => skill.name === 'replacement'), true);
367
+ const listedGeminiSkills = await providerSkillsService.listProviderSkills('gemini');
368
+ assert.equal(listedGeminiSkills.some((skill) => skill.name === 'gemini-global'), true);
369
+ const listedCursorSkills = await providerSkillsService.listProviderSkills('cursor');
370
+ assert.equal(listedCursorSkills.some((skill) => skill.name === 'cursor-global'), true);
371
+ const removedCodexSkill = await providerSkillsService.removeProviderSkill('codex', {
372
+ directoryName: 'uploaded-codex-folder',
373
+ });
374
+ assert.equal(removedCodexSkill.removed, true);
375
+ assert.equal(removedCodexSkill.provider, 'codex');
376
+ assert.equal(removedCodexSkill.directoryName, 'uploaded-codex-folder');
377
+ await assert.rejects(fs.stat(path.dirname(createdCodexSkill.sourcePath)), { code: 'ENOENT' });
378
+ const removedMissingSkill = await providerSkillsService.removeProviderSkill('codex', {
379
+ directoryName: 'uploaded-codex-folder',
380
+ });
381
+ assert.equal(removedMissingSkill.removed, false);
382
+ await assert.rejects(providerSkillsService.addProviderSkills('codex', {
383
+ entries: [
384
+ {
385
+ content: '---\nname: unsafe-skill\n---\n',
386
+ files: [
387
+ {
388
+ relativePath: '../outside.js',
389
+ content: '',
390
+ encoding: 'utf8',
391
+ },
392
+ ],
393
+ },
394
+ ],
395
+ }), /invalid supporting file path/i);
396
+ }
397
+ finally {
398
+ restoreHomeDir();
399
+ await fs.rm(tempRoot, { recursive: true, force: true });
400
+ }
401
+ });
402
+ /**
403
+ * OpenCode reuses other providers' skill folders, so it should not accept
404
+ * direct skill writes through the managed provider endpoint.
405
+ */
406
+ test('providerSkillsService rejects managed skill creation for opencode', { concurrency: false }, async () => {
407
+ await assert.rejects(providerSkillsService.addProviderSkills('opencode', {
408
+ entries: [
409
+ {
410
+ directoryName: 'opencode-global-dir',
411
+ content: '---\nname: opencode-global\ndescription: Unsupported skill\n---\n\nOpenCode body.\n',
412
+ },
413
+ ],
414
+ }), /does not support managed global skills/i);
415
+ await assert.rejects(providerSkillsService.removeProviderSkill('opencode', {
416
+ directoryName: 'opencode-global-dir',
417
+ }), /does not support managed global skills/i);
418
+ });
259
419
  //# sourceMappingURL=skills.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/skills.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/skills.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export { WS_OPEN_STATE, connectedClients } from './services/websocket-state.service.js';
2
2
  export { createWebSocketServer } from './services/websocket-server.service.js';
3
+ export { chatRunRegistry } from './services/chat-run-registry.service.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/modules/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/modules/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1,252 @@
1
+ import path from 'node:path';
2
+ import { projectsDb, sessionsDb } from '../../../modules/database/index.js';
3
+ import { generateDisplayName } from '../../../modules/projects/index.js';
4
+ import { ChatSessionWriter } from '../../../modules/websocket/services/chat-session-writer.service.js';
5
+ import { connectedClients, WS_OPEN_STATE } from '../../../modules/websocket/services/websocket-state.service.js';
6
+ /**
7
+ * How long a completed run stays available for replay. Covers the window
8
+ * between a run finishing and the client refreshing history over REST (for
9
+ * example when the browser tab was asleep while the run completed).
10
+ */
11
+ const COMPLETED_RUN_RETENTION_MS = 5 * 60 * 1000;
12
+ /**
13
+ * Upper bound on buffered events per run so a very long tool-heavy run cannot
14
+ * grow memory unbounded. When exceeded, the oldest events are dropped —
15
+ * a reconnecting client whose `lastSeq` predates the buffer falls back to a
16
+ * REST history refresh, which is always the authoritative source.
17
+ */
18
+ const MAX_BUFFERED_EVENTS_PER_RUN = 5000;
19
+ /**
20
+ * Active and recently-completed runs keyed by app session id.
21
+ *
22
+ * This map is the single in-memory source of truth for "is something running
23
+ * for this session" — the chat websocket handler, abort path, and subscribe
24
+ * path all consult it instead of asking each provider runtime individually.
25
+ */
26
+ const runs = new Map();
27
+ async function broadcastCanonicalSessionUpsert(appSessionId) {
28
+ const row = sessionsDb.getSessionById(appSessionId);
29
+ if (!row || row.isArchived) {
30
+ return;
31
+ }
32
+ const projectPath = row.project_path;
33
+ const project = projectPath ? projectsDb.getProjectPath(projectPath) : null;
34
+ const displayName = project?.custom_project_name?.trim()
35
+ ? project.custom_project_name
36
+ : await generateDisplayName(path.basename(projectPath ?? '') || (projectPath ?? ''), projectPath);
37
+ const payload = JSON.stringify({
38
+ kind: 'session_upserted',
39
+ sessionId: row.session_id,
40
+ providerSessionId: row.provider_session_id,
41
+ provider: row.provider,
42
+ session: {
43
+ id: row.session_id,
44
+ summary: row.custom_name || '',
45
+ messageCount: 0,
46
+ lastActivity: row.updated_at ?? row.created_at ?? new Date().toISOString(),
47
+ },
48
+ project: project
49
+ ? {
50
+ projectId: project.project_id,
51
+ path: project.project_path,
52
+ fullPath: project.project_path,
53
+ displayName,
54
+ isStarred: Boolean(project.isStarred),
55
+ }
56
+ : null,
57
+ timestamp: new Date().toISOString(),
58
+ });
59
+ connectedClients.forEach((client) => {
60
+ if (client.readyState === WS_OPEN_STATE) {
61
+ client.send(payload);
62
+ }
63
+ });
64
+ }
65
+ function evictRunLater(appSessionId) {
66
+ const timer = setTimeout(() => {
67
+ const run = runs.get(appSessionId);
68
+ if (run && run.status === 'completed') {
69
+ runs.delete(appSessionId);
70
+ }
71
+ }, COMPLETED_RUN_RETENTION_MS);
72
+ // Never keep the process alive just to evict a buffered run.
73
+ timer.unref?.();
74
+ }
75
+ /**
76
+ * Decorates one outbound live event for a run and records it in the event log.
77
+ *
78
+ * Responsibilities:
79
+ * 1. Remap `sessionId` (and `actualSessionId` on `complete`) to the stable
80
+ * app session id — provider-native ids never leave the backend.
81
+ * 2. Assign the next `seq` so clients can detect/replay gaps.
82
+ * 3. Buffer the event for `chat.subscribe` replay.
83
+ * 4. Flip the run to `completed` when the terminal `complete` event passes by.
84
+ */
85
+ function decorateAndRecordEvent(run, message) {
86
+ // Exactly-one-complete contract: when a run is aborted the chat handler
87
+ // emits the terminal `complete` immediately, but the killed runtime may
88
+ // still emit its own `complete` from its exit handler moments later.
89
+ // Whichever arrives first wins; the duplicate is dropped here.
90
+ if (message.kind === 'complete' && run.status === 'completed') {
91
+ return null;
92
+ }
93
+ run.lastSeq += 1;
94
+ const outbound = {
95
+ ...message,
96
+ sessionId: run.appSessionId,
97
+ seq: run.lastSeq,
98
+ };
99
+ if (message.kind === 'complete') {
100
+ // The provider may report its own id here; the frontend only ever knows
101
+ // the app id, so the "actual" id is by definition the app id as well.
102
+ outbound.actualSessionId = run.appSessionId;
103
+ run.status = 'completed';
104
+ run.completedAt = Date.now();
105
+ evictRunLater(run.appSessionId);
106
+ }
107
+ run.events.push(outbound);
108
+ if (run.events.length > MAX_BUFFERED_EVENTS_PER_RUN) {
109
+ run.events.splice(0, run.events.length - MAX_BUFFERED_EVENTS_PER_RUN);
110
+ }
111
+ return outbound;
112
+ }
113
+ /**
114
+ * Records the provider-native session id for a run and persists the
115
+ * app-id-to-provider-id mapping so history fetches and future resumes can
116
+ * address the provider transcript.
117
+ *
118
+ * Called from the gateway writer when the runtime either calls
119
+ * `setSessionId(...)` or emits its `session_created` event — whichever
120
+ * happens first wins; later calls with the same id are no-ops.
121
+ */
122
+ function recordProviderSessionId(run, providerSessionId) {
123
+ if (!providerSessionId || run.providerSessionId === providerSessionId) {
124
+ return;
125
+ }
126
+ run.providerSessionId = providerSessionId;
127
+ try {
128
+ sessionsDb.assignProviderSessionId(run.appSessionId, providerSessionId);
129
+ void broadcastCanonicalSessionUpsert(run.appSessionId).catch((error) => {
130
+ const message = error instanceof Error ? error.message : String(error);
131
+ console.error('[ChatRunRegistry] Failed to broadcast canonical session mapping', {
132
+ appSessionId: run.appSessionId,
133
+ providerSessionId,
134
+ error: message,
135
+ });
136
+ });
137
+ }
138
+ catch (error) {
139
+ const message = error instanceof Error ? error.message : String(error);
140
+ console.error('[ChatRunRegistry] Failed to persist provider session id mapping', {
141
+ appSessionId: run.appSessionId,
142
+ providerSessionId,
143
+ error: message,
144
+ });
145
+ }
146
+ }
147
+ /**
148
+ * Registry of live provider runs keyed by the stable app session id.
149
+ *
150
+ * The registry is what makes the websocket protocol provider-independent:
151
+ * every run gets a `ChatSessionWriter` that remaps provider-native session
152
+ * ids to the app id, assigns `seq` numbers, and buffers events for replay —
153
+ * regardless of which provider runtime produced them.
154
+ */
155
+ export const chatRunRegistry = {
156
+ /**
157
+ * Starts tracking a run and returns it, or `null` when a run is already in
158
+ * progress for the session (callers must reject the duplicate send).
159
+ */
160
+ startRun(input) {
161
+ const existing = runs.get(input.appSessionId);
162
+ if (existing && existing.status === 'running') {
163
+ return null;
164
+ }
165
+ const run = {
166
+ appSessionId: input.appSessionId,
167
+ provider: input.provider,
168
+ providerSessionId: input.providerSessionId,
169
+ status: 'running',
170
+ lastSeq: 0,
171
+ events: [],
172
+ writer: null,
173
+ startedAt: Date.now(),
174
+ completedAt: null,
175
+ };
176
+ run.writer = new ChatSessionWriter({
177
+ connection: input.connection,
178
+ userId: input.userId,
179
+ provider: input.provider,
180
+ providerSessionId: input.providerSessionId,
181
+ onProviderSessionId: (providerSessionId) => {
182
+ recordProviderSessionId(run, providerSessionId);
183
+ },
184
+ decorateOutboundEvent: (message) => decorateAndRecordEvent(run, message),
185
+ });
186
+ runs.set(input.appSessionId, run);
187
+ return run;
188
+ },
189
+ getRun(appSessionId) {
190
+ return runs.get(appSessionId);
191
+ },
192
+ isProcessing(appSessionId) {
193
+ return runs.get(appSessionId)?.status === 'running';
194
+ },
195
+ listRunningRuns() {
196
+ return Array.from(runs.values())
197
+ .filter((run) => run.status === 'running')
198
+ .map((run) => ({
199
+ sessionId: run.appSessionId,
200
+ provider: run.provider,
201
+ startedAt: run.startedAt,
202
+ lastSeq: run.lastSeq,
203
+ }));
204
+ },
205
+ /**
206
+ * Re-attaches a run's outbound stream to a (new) websocket connection.
207
+ *
208
+ * This is the generic replacement for the Claude-only writer reconnect:
209
+ * after a page refresh the new socket subscribes and immediately starts
210
+ * receiving the still-running stream, for every provider.
211
+ */
212
+ attachConnection(appSessionId, connection) {
213
+ const run = runs.get(appSessionId);
214
+ if (!run) {
215
+ return false;
216
+ }
217
+ run.writer.updateWebSocket(connection);
218
+ return true;
219
+ },
220
+ /**
221
+ * Returns buffered events with `seq` greater than `afterSeq` for replay.
222
+ *
223
+ * An empty array with `run.lastSeq > afterSeq` not covered by the buffer
224
+ * means the buffer was truncated; the client should refresh over REST.
225
+ */
226
+ replayEvents(appSessionId, afterSeq) {
227
+ const run = runs.get(appSessionId);
228
+ if (!run) {
229
+ return [];
230
+ }
231
+ return run.events.filter((event) => typeof event.seq === 'number' && event.seq > afterSeq);
232
+ },
233
+ /**
234
+ * Emits a synthetic terminal `complete` if (and only if) the run is still
235
+ * marked running. Used when a provider runtime throws or resolves without
236
+ * having produced its own terminal event, and by the abort path.
237
+ */
238
+ completeRun(appSessionId, opts) {
239
+ const run = runs.get(appSessionId);
240
+ if (!run || run.status !== 'running') {
241
+ return;
242
+ }
243
+ run.writer.sendComplete(opts);
244
+ },
245
+ /**
246
+ * Test-only escape hatch: clears every tracked run.
247
+ */
248
+ clearAll() {
249
+ runs.clear();
250
+ },
251
+ };
252
+ //# sourceMappingURL=chat-run-registry.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-run-registry.service.js","sourceRoot":"","sources":["../../../../../server/modules/websocket/services/chat-run-registry.service.ts"],"names":[],"mappings":"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"}