@pixelbyte-software/pixcode 1.35.2 → 1.35.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 (228) hide show
  1. package/LICENSE +718 -718
  2. package/README.de.md +248 -248
  3. package/README.ja.md +240 -240
  4. package/README.ko.md +240 -240
  5. package/README.md +303 -303
  6. package/README.ru.md +248 -248
  7. package/README.tr.md +250 -250
  8. package/README.zh-CN.md +240 -240
  9. package/dist/api-docs.html +548 -548
  10. package/dist/assets/index-BwmhA_le.css +32 -0
  11. package/dist/assets/{index-D1-AIL_5.js → index-CyxRiNt0.js} +182 -182
  12. package/dist/clear-cache.html +85 -85
  13. package/dist/convert-icons.md +52 -52
  14. package/dist/favicon.svg +8 -8
  15. package/dist/generate-icons.js +48 -48
  16. package/dist/icons/codex-white.svg +3 -3
  17. package/dist/icons/codex.svg +3 -3
  18. package/dist/icons/cursor-white.svg +11 -11
  19. package/dist/icons/icon-128x128.svg +9 -9
  20. package/dist/icons/icon-144x144.svg +9 -9
  21. package/dist/icons/icon-152x152.svg +9 -9
  22. package/dist/icons/icon-192x192.svg +9 -9
  23. package/dist/icons/icon-384x384.svg +9 -9
  24. package/dist/icons/icon-512x512.svg +9 -9
  25. package/dist/icons/icon-72x72.svg +9 -9
  26. package/dist/icons/icon-96x96.svg +9 -9
  27. package/dist/icons/icon-template.svg +9 -9
  28. package/dist/icons/qwen-logo.svg +14 -14
  29. package/dist/index.html +59 -59
  30. package/dist/logo.svg +12 -12
  31. package/dist/manifest.json +60 -60
  32. package/dist/openapi.yaml +1693 -1693
  33. package/dist/sw.js +124 -124
  34. package/dist-server/server/cli.js +96 -96
  35. package/dist-server/server/cli.js.map +1 -1
  36. package/dist-server/server/cursor-cli.js.map +1 -1
  37. package/dist-server/server/daemon/manager.js +33 -33
  38. package/dist-server/server/daemon-manager.js +64 -64
  39. package/dist-server/server/gemini-cli.js +4 -4
  40. package/dist-server/server/gemini-cli.js.map +1 -1
  41. package/dist-server/server/index.js +11 -11
  42. package/dist-server/server/index.js.map +1 -1
  43. package/dist-server/server/load-env.js.map +1 -1
  44. package/dist-server/server/middleware/auth.js.map +1 -1
  45. package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js.map +1 -1
  46. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +1 -1
  47. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
  48. package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js +1 -1
  49. package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js.map +1 -1
  50. package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js +1 -1
  51. package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js.map +1 -1
  52. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +1 -1
  53. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -1
  54. package/dist-server/server/modules/providers/list/qwen/qwen-auth.provider.js +1 -1
  55. package/dist-server/server/modules/providers/list/qwen/qwen-auth.provider.js.map +1 -1
  56. package/dist-server/server/modules/providers/provider.routes.js +3 -6
  57. package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
  58. package/dist-server/server/opencode-cli.js +1 -1
  59. package/dist-server/server/opencode-cli.js.map +1 -1
  60. package/dist-server/server/projects.js +2 -3
  61. package/dist-server/server/projects.js.map +1 -1
  62. package/dist-server/server/qwen-code-cli.js +1 -1
  63. package/dist-server/server/qwen-code-cli.js.map +1 -1
  64. package/dist-server/server/routes/agent.js +3 -3
  65. package/dist-server/server/routes/agent.js.map +1 -1
  66. package/dist-server/server/routes/auth.js.map +1 -1
  67. package/dist-server/server/routes/codex.js.map +1 -1
  68. package/dist-server/server/routes/commands.js +26 -26
  69. package/dist-server/server/routes/commands.js.map +1 -1
  70. package/dist-server/server/routes/cursor.js +1 -1
  71. package/dist-server/server/routes/cursor.js.map +1 -1
  72. package/dist-server/server/routes/gemini.js.map +1 -1
  73. package/dist-server/server/routes/git.js +18 -18
  74. package/dist-server/server/routes/git.js.map +1 -1
  75. package/dist-server/server/routes/mcp-utils.js.map +1 -1
  76. package/dist-server/server/routes/messages.js.map +1 -1
  77. package/dist-server/server/routes/network.js +1 -1
  78. package/dist-server/server/routes/network.js.map +1 -1
  79. package/dist-server/server/routes/plugins.js +2 -2
  80. package/dist-server/server/routes/plugins.js.map +1 -1
  81. package/dist-server/server/routes/projects.js +1 -1
  82. package/dist-server/server/routes/projects.js.map +1 -1
  83. package/dist-server/server/routes/settings.js.map +1 -1
  84. package/dist-server/server/routes/taskmaster.js +423 -424
  85. package/dist-server/server/routes/taskmaster.js.map +1 -1
  86. package/dist-server/server/routes/user.js +1 -1
  87. package/dist-server/server/routes/user.js.map +1 -1
  88. package/dist-server/server/services/external-access.js +0 -1
  89. package/dist-server/server/services/external-access.js.map +1 -1
  90. package/dist-server/server/services/notification-orchestrator.js.map +1 -1
  91. package/dist-server/server/utils/commandParser.js.map +1 -1
  92. package/dist-server/server/utils/plugin-process-manager.js.map +1 -1
  93. package/dist-server/server/vite-daemon.js.map +1 -1
  94. package/package.json +180 -180
  95. package/scripts/fix-node-pty.js +67 -67
  96. package/scripts/smoke/a2a-roundtrip.mjs +167 -167
  97. package/scripts/smoke/orchestration-api.mjs +172 -172
  98. package/scripts/smoke/orchestration-live-run.mjs +176 -176
  99. package/server/claude-sdk.js +898 -898
  100. package/server/cli.js +936 -935
  101. package/server/constants/config.js +4 -4
  102. package/server/cursor-cli.js +344 -342
  103. package/server/daemon/manager.js +564 -564
  104. package/server/daemon-manager.js +959 -959
  105. package/server/database/db.js +794 -794
  106. package/server/database/json-store.js +197 -197
  107. package/server/gemini-cli.js +536 -535
  108. package/server/gemini-response-handler.js +79 -79
  109. package/server/index.js +3138 -3135
  110. package/server/load-env.js +35 -34
  111. package/server/middleware/auth.js +174 -173
  112. package/server/modules/orchestration/a2a/adapter-registry.ts +108 -108
  113. package/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.ts +55 -55
  114. package/server/modules/orchestration/a2a/adapters/claude-code.adapter.ts +284 -284
  115. package/server/modules/orchestration/a2a/adapters/codex.adapter.ts +244 -244
  116. package/server/modules/orchestration/a2a/adapters/cursor.adapter.ts +249 -249
  117. package/server/modules/orchestration/a2a/adapters/gemini.adapter.ts +248 -248
  118. package/server/modules/orchestration/a2a/adapters/opencode.adapter.ts +248 -248
  119. package/server/modules/orchestration/a2a/adapters/qwen.adapter.ts +248 -248
  120. package/server/modules/orchestration/a2a/routes.ts +577 -577
  121. package/server/modules/orchestration/a2a/task-store.ts +178 -178
  122. package/server/modules/orchestration/a2a/types.ts +125 -125
  123. package/server/modules/orchestration/a2a/validator.ts +113 -113
  124. package/server/modules/orchestration/index.ts +66 -66
  125. package/server/modules/orchestration/preview/port-watcher.ts +112 -112
  126. package/server/modules/orchestration/preview/preview-proxy.ts +60 -60
  127. package/server/modules/orchestration/preview/types.ts +19 -19
  128. package/server/modules/orchestration/tasks/orchestration-task-store.ts +45 -45
  129. package/server/modules/orchestration/tasks/orchestration-task.routes.ts +74 -73
  130. package/server/modules/orchestration/tasks/orchestration-task.service.ts +145 -145
  131. package/server/modules/orchestration/tasks/orchestration-task.types.ts +29 -29
  132. package/server/modules/orchestration/workflows/built-in-workflows.ts +127 -127
  133. package/server/modules/orchestration/workflows/workflow-runner.ts +1206 -1206
  134. package/server/modules/orchestration/workflows/workflow-store.ts +97 -97
  135. package/server/modules/orchestration/workflows/workflow.routes.ts +169 -169
  136. package/server/modules/orchestration/workflows/workflow.types.ts +70 -70
  137. package/server/modules/orchestration/workflows/workspace-target.ts +120 -120
  138. package/server/modules/orchestration/workspace/docker-workspace.ts +135 -135
  139. package/server/modules/orchestration/workspace/path-safety.ts +55 -55
  140. package/server/modules/orchestration/workspace/types.ts +52 -52
  141. package/server/modules/orchestration/workspace/workspace-manager.ts +97 -97
  142. package/server/modules/orchestration/workspace/worktree-workspace.ts +125 -125
  143. package/server/modules/providers/index.ts +2 -2
  144. package/server/modules/providers/list/claude/claude-auth.provider.ts +146 -145
  145. package/server/modules/providers/list/claude/claude-mcp.provider.ts +135 -135
  146. package/server/modules/providers/list/claude/claude-sessions.provider.ts +306 -306
  147. package/server/modules/providers/list/claude/claude.provider.ts +15 -15
  148. package/server/modules/providers/list/codex/codex-auth.provider.ts +116 -115
  149. package/server/modules/providers/list/codex/codex-mcp.provider.ts +135 -135
  150. package/server/modules/providers/list/codex/codex-sessions.provider.ts +319 -319
  151. package/server/modules/providers/list/codex/codex.provider.ts +15 -15
  152. package/server/modules/providers/list/cursor/cursor-auth.provider.ts +143 -143
  153. package/server/modules/providers/list/cursor/cursor-mcp.provider.ts +108 -108
  154. package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +421 -421
  155. package/server/modules/providers/list/cursor/cursor.provider.ts +15 -15
  156. package/server/modules/providers/list/gemini/gemini-auth.provider.ts +164 -163
  157. package/server/modules/providers/list/gemini/gemini-mcp.provider.ts +110 -110
  158. package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +227 -227
  159. package/server/modules/providers/list/gemini/gemini.provider.ts +15 -15
  160. package/server/modules/providers/list/opencode/opencode-auth.provider.ts +131 -130
  161. package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +126 -126
  162. package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +232 -232
  163. package/server/modules/providers/list/opencode/opencode.provider.ts +29 -29
  164. package/server/modules/providers/list/qwen/qwen-auth.provider.ts +146 -145
  165. package/server/modules/providers/list/qwen/qwen-mcp.provider.ts +114 -114
  166. package/server/modules/providers/list/qwen/qwen-sessions.provider.ts +265 -265
  167. package/server/modules/providers/list/qwen/qwen.provider.ts +21 -21
  168. package/server/modules/providers/provider.registry.ts +40 -40
  169. package/server/modules/providers/provider.routes.ts +822 -819
  170. package/server/modules/providers/services/mcp.service.ts +86 -86
  171. package/server/modules/providers/services/provider-auth.service.ts +26 -26
  172. package/server/modules/providers/services/sessions.service.ts +45 -45
  173. package/server/modules/providers/shared/base/abstract.provider.ts +20 -20
  174. package/server/modules/providers/shared/mcp/mcp.provider.ts +151 -151
  175. package/server/modules/providers/shared/provider-configs.ts +142 -142
  176. package/server/modules/providers/tests/mcp.test.ts +293 -293
  177. package/server/openai-codex.js +462 -462
  178. package/server/opencode-cli.js +460 -459
  179. package/server/opencode-response-handler.js +107 -107
  180. package/server/projects.js +3106 -3105
  181. package/server/qwen-code-cli.js +396 -395
  182. package/server/qwen-response-handler.js +73 -73
  183. package/server/routes/agent.js +1367 -1365
  184. package/server/routes/auth.js +139 -138
  185. package/server/routes/codex.js +20 -19
  186. package/server/routes/commands.js +556 -554
  187. package/server/routes/cursor.js +54 -52
  188. package/server/routes/gemini.js +25 -24
  189. package/server/routes/git.js +1490 -1488
  190. package/server/routes/mcp-utils.js +32 -31
  191. package/server/routes/messages.js +62 -61
  192. package/server/routes/network.js +121 -120
  193. package/server/routes/plugins.js +320 -318
  194. package/server/routes/projects.js +917 -915
  195. package/server/routes/qwen.js +27 -27
  196. package/server/routes/settings.js +287 -286
  197. package/server/routes/taskmaster.js +1498 -1496
  198. package/server/routes/telegram.js +125 -125
  199. package/server/routes/user.js +125 -123
  200. package/server/services/external-access.js +171 -171
  201. package/server/services/install-jobs.js +571 -571
  202. package/server/services/notification-orchestrator.js +244 -242
  203. package/server/services/provider-credentials.js +189 -189
  204. package/server/services/provider-models.js +381 -381
  205. package/server/services/telegram/bot.js +279 -279
  206. package/server/services/telegram/telegram-http-client.js +130 -130
  207. package/server/services/telegram/translations.js +170 -170
  208. package/server/services/vapid-keys.js +36 -36
  209. package/server/sessionManager.js +225 -225
  210. package/server/shared/interfaces.ts +54 -54
  211. package/server/shared/types.ts +172 -172
  212. package/server/shared/utils.ts +193 -193
  213. package/server/tsconfig.json +36 -36
  214. package/server/utils/colors.js +21 -21
  215. package/server/utils/commandParser.js +305 -303
  216. package/server/utils/frontmatter.js +18 -18
  217. package/server/utils/gitConfig.js +34 -34
  218. package/server/utils/mcp-detector.js +147 -147
  219. package/server/utils/plugin-loader.js +457 -457
  220. package/server/utils/plugin-process-manager.js +185 -184
  221. package/server/utils/port-access.js +209 -209
  222. package/server/utils/runtime-paths.js +37 -37
  223. package/server/utils/taskmaster-websocket.js +128 -128
  224. package/server/utils/url-detection.js +71 -71
  225. package/server/vite-daemon.js +79 -78
  226. package/shared/modelConstants.js +162 -162
  227. package/shared/networkHosts.js +22 -22
  228. package/dist/assets/index-B8w57E1r.css +0 -32
@@ -1,139 +1,140 @@
1
- import express from 'express';
2
- // bcryptjs is a pure-JS drop-in (same hash/compare API, same output format)
3
- // — switching from native `bcrypt` here eliminated one C++ compile from
4
- // the install path. Existing $2a$/$2b$ hashes in the DB remain valid;
5
- // bcryptjs recognizes both prefixes so logins work across the swap.
6
- import bcrypt from 'bcryptjs';
7
- import { userDb, db } from '../database/db.js';
8
- import { generateToken, authenticateToken } from '../middleware/auth.js';
9
-
10
- const router = express.Router();
11
-
12
- // Check auth status and setup requirements
13
- router.get('/status', async (req, res) => {
14
- try {
15
- const hasUsers = await userDb.hasUsers();
16
- res.json({
17
- needsSetup: !hasUsers,
18
- isAuthenticated: false // Will be overridden by frontend if token exists
19
- });
20
- } catch (error) {
21
- console.error('Auth status error:', error);
22
- res.status(500).json({ error: 'Internal server error' });
23
- }
24
- });
25
-
26
- // User registration (setup) - only allowed if no users exist
27
- router.post('/register', async (req, res) => {
28
- try {
29
- const { username, password } = req.body;
30
-
31
- // Validate input
32
- if (!username || !password) {
33
- return res.status(400).json({ error: 'Username and password are required' });
34
- }
35
-
36
- if (username.length < 3 || password.length < 6) {
37
- return res.status(400).json({ error: 'Username must be at least 3 characters, password at least 6 characters' });
38
- }
39
-
40
- // Use a transaction to prevent race conditions
41
- db.prepare('BEGIN').run();
42
- try {
43
- // Check if users already exist (only allow one user)
44
- const hasUsers = userDb.hasUsers();
45
- if (hasUsers) {
46
- db.prepare('ROLLBACK').run();
47
- return res.status(403).json({ error: 'User already exists. This is a single-user system.' });
48
- }
49
-
50
- // Hash password
51
- const saltRounds = 12;
52
- const passwordHash = await bcrypt.hash(password, saltRounds);
53
-
54
- // Create user
55
- const user = userDb.createUser(username, passwordHash);
56
-
57
- // Generate token
58
- const token = generateToken(user);
59
-
60
- db.prepare('COMMIT').run();
61
-
62
- // Update last login (non-fatal, outside transaction)
63
- userDb.updateLastLogin(user.id);
64
-
65
- res.json({
66
- success: true,
67
- user: { id: user.id, username: user.username },
68
- token
69
- });
70
- } catch (error) {
71
- db.prepare('ROLLBACK').run();
72
- throw error;
73
- }
74
-
75
- } catch (error) {
76
- console.error('Registration error:', error);
77
- if (error.code === 'SQLITE_CONSTRAINT_UNIQUE') {
78
- res.status(409).json({ error: 'Username already exists' });
79
- } else {
80
- res.status(500).json({ error: 'Internal server error' });
81
- }
82
- }
83
- });
84
-
85
- // User login
86
- router.post('/login', async (req, res) => {
87
- try {
88
- const { username, password } = req.body;
89
-
90
- // Validate input
91
- if (!username || !password) {
92
- return res.status(400).json({ error: 'Username and password are required' });
93
- }
94
-
95
- // Get user from database
96
- const user = userDb.getUserByUsername(username);
97
- if (!user) {
98
- return res.status(401).json({ error: 'Invalid username or password' });
99
- }
100
-
101
- // Verify password
102
- const isValidPassword = await bcrypt.compare(password, user.password_hash);
103
- if (!isValidPassword) {
104
- return res.status(401).json({ error: 'Invalid username or password' });
105
- }
106
-
107
- // Generate token
108
- const token = generateToken(user);
109
-
110
- // Update last login
111
- userDb.updateLastLogin(user.id);
112
-
113
- res.json({
114
- success: true,
115
- user: { id: user.id, username: user.username },
116
- token
117
- });
118
-
119
- } catch (error) {
120
- console.error('Login error:', error);
121
- res.status(500).json({ error: 'Internal server error' });
122
- }
123
- });
124
-
125
- // Get current user (protected route)
126
- router.get('/user', authenticateToken, (req, res) => {
127
- res.json({
128
- user: req.user
129
- });
130
- });
131
-
132
- // Logout (client-side token removal, but this endpoint can be used for logging)
133
- router.post('/logout', authenticateToken, (req, res) => {
134
- // In a simple JWT system, logout is mainly client-side
135
- // This endpoint exists for consistency and potential future logging
136
- res.json({ success: true, message: 'Logged out successfully' });
137
- });
138
-
1
+ import express from 'express';
2
+ // bcryptjs is a pure-JS drop-in (same hash/compare API, same output format)
3
+ // — switching from native `bcrypt` here eliminated one C++ compile from
4
+ // the install path. Existing $2a$/$2b$ hashes in the DB remain valid;
5
+ // bcryptjs recognizes both prefixes so logins work across the swap.
6
+ import bcrypt from 'bcryptjs';
7
+
8
+ import { userDb, db } from '../database/db.js';
9
+ import { generateToken, authenticateToken } from '../middleware/auth.js';
10
+
11
+ const router = express.Router();
12
+
13
+ // Check auth status and setup requirements
14
+ router.get('/status', async (req, res) => {
15
+ try {
16
+ const hasUsers = await userDb.hasUsers();
17
+ res.json({
18
+ needsSetup: !hasUsers,
19
+ isAuthenticated: false // Will be overridden by frontend if token exists
20
+ });
21
+ } catch (error) {
22
+ console.error('Auth status error:', error);
23
+ res.status(500).json({ error: 'Internal server error' });
24
+ }
25
+ });
26
+
27
+ // User registration (setup) - only allowed if no users exist
28
+ router.post('/register', async (req, res) => {
29
+ try {
30
+ const { username, password } = req.body;
31
+
32
+ // Validate input
33
+ if (!username || !password) {
34
+ return res.status(400).json({ error: 'Username and password are required' });
35
+ }
36
+
37
+ if (username.length < 3 || password.length < 6) {
38
+ return res.status(400).json({ error: 'Username must be at least 3 characters, password at least 6 characters' });
39
+ }
40
+
41
+ // Use a transaction to prevent race conditions
42
+ db.prepare('BEGIN').run();
43
+ try {
44
+ // Check if users already exist (only allow one user)
45
+ const hasUsers = userDb.hasUsers();
46
+ if (hasUsers) {
47
+ db.prepare('ROLLBACK').run();
48
+ return res.status(403).json({ error: 'User already exists. This is a single-user system.' });
49
+ }
50
+
51
+ // Hash password
52
+ const saltRounds = 12;
53
+ const passwordHash = await bcrypt.hash(password, saltRounds);
54
+
55
+ // Create user
56
+ const user = userDb.createUser(username, passwordHash);
57
+
58
+ // Generate token
59
+ const token = generateToken(user);
60
+
61
+ db.prepare('COMMIT').run();
62
+
63
+ // Update last login (non-fatal, outside transaction)
64
+ userDb.updateLastLogin(user.id);
65
+
66
+ res.json({
67
+ success: true,
68
+ user: { id: user.id, username: user.username },
69
+ token
70
+ });
71
+ } catch (error) {
72
+ db.prepare('ROLLBACK').run();
73
+ throw error;
74
+ }
75
+
76
+ } catch (error) {
77
+ console.error('Registration error:', error);
78
+ if (error.code === 'SQLITE_CONSTRAINT_UNIQUE') {
79
+ res.status(409).json({ error: 'Username already exists' });
80
+ } else {
81
+ res.status(500).json({ error: 'Internal server error' });
82
+ }
83
+ }
84
+ });
85
+
86
+ // User login
87
+ router.post('/login', async (req, res) => {
88
+ try {
89
+ const { username, password } = req.body;
90
+
91
+ // Validate input
92
+ if (!username || !password) {
93
+ return res.status(400).json({ error: 'Username and password are required' });
94
+ }
95
+
96
+ // Get user from database
97
+ const user = userDb.getUserByUsername(username);
98
+ if (!user) {
99
+ return res.status(401).json({ error: 'Invalid username or password' });
100
+ }
101
+
102
+ // Verify password
103
+ const isValidPassword = await bcrypt.compare(password, user.password_hash);
104
+ if (!isValidPassword) {
105
+ return res.status(401).json({ error: 'Invalid username or password' });
106
+ }
107
+
108
+ // Generate token
109
+ const token = generateToken(user);
110
+
111
+ // Update last login
112
+ userDb.updateLastLogin(user.id);
113
+
114
+ res.json({
115
+ success: true,
116
+ user: { id: user.id, username: user.username },
117
+ token
118
+ });
119
+
120
+ } catch (error) {
121
+ console.error('Login error:', error);
122
+ res.status(500).json({ error: 'Internal server error' });
123
+ }
124
+ });
125
+
126
+ // Get current user (protected route)
127
+ router.get('/user', authenticateToken, (req, res) => {
128
+ res.json({
129
+ user: req.user
130
+ });
131
+ });
132
+
133
+ // Logout (client-side token removal, but this endpoint can be used for logging)
134
+ router.post('/logout', authenticateToken, (req, res) => {
135
+ // In a simple JWT system, logout is mainly client-side
136
+ // This endpoint exists for consistency and potential future logging
137
+ res.json({ success: true, message: 'Logged out successfully' });
138
+ });
139
+
139
140
  export default router;
@@ -1,19 +1,20 @@
1
- import express from 'express';
2
- import { deleteCodexSession } from '../projects.js';
3
- import { sessionNamesDb } from '../database/db.js';
4
-
5
- const router = express.Router();
6
-
7
- router.delete('/sessions/:sessionId', async (req, res) => {
8
- try {
9
- const { sessionId } = req.params;
10
- await deleteCodexSession(sessionId);
11
- sessionNamesDb.deleteName(sessionId, 'codex');
12
- res.json({ success: true });
13
- } catch (error) {
14
- console.error(`Error deleting Codex session ${req.params.sessionId}:`, error);
15
- res.status(500).json({ success: false, error: error.message });
16
- }
17
- });
18
-
19
- export default router;
1
+ import express from 'express';
2
+
3
+ import { deleteCodexSession } from '../projects.js';
4
+ import { sessionNamesDb } from '../database/db.js';
5
+
6
+ const router = express.Router();
7
+
8
+ router.delete('/sessions/:sessionId', async (req, res) => {
9
+ try {
10
+ const { sessionId } = req.params;
11
+ await deleteCodexSession(sessionId);
12
+ sessionNamesDb.deleteName(sessionId, 'codex');
13
+ res.json({ success: true });
14
+ } catch (error) {
15
+ console.error(`Error deleting Codex session ${req.params.sessionId}:`, error);
16
+ res.status(500).json({ success: false, error: error.message });
17
+ }
18
+ });
19
+
20
+ export default router;