@pixelbyte-software/pixcode 1.35.3 → 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 (98) hide show
  1. package/dist/assets/index-BwmhA_le.css +32 -0
  2. package/dist/assets/{index-D8z78r_D.js → index-CyxRiNt0.js} +183 -183
  3. package/dist/index.html +2 -2
  4. package/dist-server/server/cli.js.map +1 -1
  5. package/dist-server/server/cursor-cli.js.map +1 -1
  6. package/dist-server/server/gemini-cli.js +4 -4
  7. package/dist-server/server/gemini-cli.js.map +1 -1
  8. package/dist-server/server/index.js +11 -11
  9. package/dist-server/server/index.js.map +1 -1
  10. package/dist-server/server/load-env.js.map +1 -1
  11. package/dist-server/server/middleware/auth.js.map +1 -1
  12. package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js.map +1 -1
  13. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +1 -1
  14. package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
  15. package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js +1 -1
  16. package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js.map +1 -1
  17. package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js +1 -1
  18. package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js.map +1 -1
  19. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +1 -1
  20. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -1
  21. package/dist-server/server/modules/providers/list/qwen/qwen-auth.provider.js +1 -1
  22. package/dist-server/server/modules/providers/list/qwen/qwen-auth.provider.js.map +1 -1
  23. package/dist-server/server/modules/providers/provider.routes.js +3 -6
  24. package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
  25. package/dist-server/server/opencode-cli.js +1 -1
  26. package/dist-server/server/opencode-cli.js.map +1 -1
  27. package/dist-server/server/projects.js +2 -3
  28. package/dist-server/server/projects.js.map +1 -1
  29. package/dist-server/server/qwen-code-cli.js +1 -1
  30. package/dist-server/server/qwen-code-cli.js.map +1 -1
  31. package/dist-server/server/routes/agent.js +3 -3
  32. package/dist-server/server/routes/agent.js.map +1 -1
  33. package/dist-server/server/routes/auth.js.map +1 -1
  34. package/dist-server/server/routes/codex.js.map +1 -1
  35. package/dist-server/server/routes/commands.js +1 -1
  36. package/dist-server/server/routes/commands.js.map +1 -1
  37. package/dist-server/server/routes/cursor.js +1 -1
  38. package/dist-server/server/routes/cursor.js.map +1 -1
  39. package/dist-server/server/routes/gemini.js.map +1 -1
  40. package/dist-server/server/routes/git.js +1 -1
  41. package/dist-server/server/routes/git.js.map +1 -1
  42. package/dist-server/server/routes/mcp-utils.js.map +1 -1
  43. package/dist-server/server/routes/messages.js.map +1 -1
  44. package/dist-server/server/routes/network.js +1 -1
  45. package/dist-server/server/routes/network.js.map +1 -1
  46. package/dist-server/server/routes/plugins.js +2 -2
  47. package/dist-server/server/routes/plugins.js.map +1 -1
  48. package/dist-server/server/routes/projects.js +1 -1
  49. package/dist-server/server/routes/projects.js.map +1 -1
  50. package/dist-server/server/routes/settings.js.map +1 -1
  51. package/dist-server/server/routes/taskmaster.js +4 -5
  52. package/dist-server/server/routes/taskmaster.js.map +1 -1
  53. package/dist-server/server/routes/user.js +1 -1
  54. package/dist-server/server/routes/user.js.map +1 -1
  55. package/dist-server/server/services/external-access.js +0 -1
  56. package/dist-server/server/services/external-access.js.map +1 -1
  57. package/dist-server/server/services/notification-orchestrator.js.map +1 -1
  58. package/dist-server/server/utils/commandParser.js.map +1 -1
  59. package/dist-server/server/utils/plugin-process-manager.js.map +1 -1
  60. package/dist-server/server/vite-daemon.js.map +1 -1
  61. package/package.json +1 -1
  62. package/server/cli.js +1 -0
  63. package/server/cursor-cli.js +2 -0
  64. package/server/gemini-cli.js +6 -5
  65. package/server/index.js +17 -14
  66. package/server/load-env.js +1 -0
  67. package/server/middleware/auth.js +1 -0
  68. package/server/modules/orchestration/tasks/orchestration-task.routes.ts +1 -0
  69. package/server/modules/providers/list/claude/claude-auth.provider.ts +2 -1
  70. package/server/modules/providers/list/codex/codex-auth.provider.ts +2 -1
  71. package/server/modules/providers/list/gemini/gemini-auth.provider.ts +2 -1
  72. package/server/modules/providers/list/opencode/opencode-auth.provider.ts +2 -1
  73. package/server/modules/providers/list/qwen/qwen-auth.provider.ts +2 -1
  74. package/server/modules/providers/provider.routes.ts +14 -11
  75. package/server/opencode-cli.js +2 -1
  76. package/server/projects.js +4 -3
  77. package/server/qwen-code-cli.js +2 -1
  78. package/server/routes/agent.js +5 -3
  79. package/server/routes/auth.js +1 -0
  80. package/server/routes/codex.js +1 -0
  81. package/server/routes/commands.js +3 -1
  82. package/server/routes/cursor.js +3 -1
  83. package/server/routes/gemini.js +1 -0
  84. package/server/routes/git.js +3 -1
  85. package/server/routes/mcp-utils.js +1 -0
  86. package/server/routes/messages.js +1 -0
  87. package/server/routes/network.js +2 -1
  88. package/server/routes/plugins.js +4 -2
  89. package/server/routes/projects.js +3 -1
  90. package/server/routes/settings.js +1 -0
  91. package/server/routes/taskmaster.js +7 -5
  92. package/server/routes/user.js +3 -1
  93. package/server/services/external-access.js +1 -1
  94. package/server/services/notification-orchestrator.js +2 -0
  95. package/server/utils/commandParser.js +2 -0
  96. package/server/utils/plugin-process-manager.js +1 -0
  97. package/server/vite-daemon.js +1 -0
  98. package/dist/assets/index-DmchzORZ.css +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"vite-daemon.js","sourceRoot":"","sources":["../../server/vite-daemon.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-daemon.js","sourceRoot":"","sources":["../../server/vite-daemon.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelbyte-software/pixcode",
3
- "version": "1.35.3",
3
+ "version": "1.35.4",
4
4
  "description": "Pixcode — a desktop and mobile web UI for Claude Code, Cursor CLI, Codex, Gemini CLI, Qwen Code, and OpenCode.",
5
5
  "type": "module",
6
6
  "main": "dist-server/server/index.js",
package/server/cli.js CHANGED
@@ -18,6 +18,7 @@ import fs from 'fs';
18
18
  import path from 'path';
19
19
  import os from 'os';
20
20
  import net from 'node:net';
21
+
21
22
  import { findAppRoot, getModuleDir } from './utils/runtime-paths.js';
22
23
  import { buildDaemonCliCommand, handleDaemonCommand, hasInstalledDaemonUnit } from './daemon-manager.js';
23
24
 
@@ -1,5 +1,7 @@
1
1
  import { spawn } from 'child_process';
2
+
2
3
  import crossSpawn from 'cross-spawn';
4
+
3
5
  import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
4
6
  import { sessionsService } from './modules/providers/services/sessions.service.js';
5
7
  import { providerAuthService } from './modules/providers/services/provider-auth.service.js';
@@ -1,11 +1,10 @@
1
1
  import { spawn } from 'child_process';
2
- import crossSpawn from 'cross-spawn';
3
-
4
- // Use cross-spawn on Windows for correct .cmd resolution (same pattern as cursor-cli.js)
5
- const spawnFunction = process.platform === 'win32' ? crossSpawn : spawn;
6
2
  import { promises as fs } from 'fs';
7
- import path from 'path';
8
3
  import os from 'os';
4
+ import path from 'path';
5
+
6
+ import crossSpawn from 'cross-spawn';
7
+
9
8
  import sessionManager from './sessionManager.js';
10
9
  import GeminiResponseHandler from './gemini-response-handler.js';
11
10
  import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
@@ -13,6 +12,8 @@ import { buildSpawnEnv } from './services/provider-credentials.js';
13
12
  import { providerAuthService } from './modules/providers/services/provider-auth.service.js';
14
13
  import { createNormalizedMessage } from './shared/utils.js';
15
14
 
15
+ // Use cross-spawn on Windows for correct .cmd resolution (same pattern as cursor-cli.js)
16
+ const spawnFunction = process.platform === 'win32' ? crossSpawn : spawn;
16
17
  let activeGeminiProcesses = new Map(); // Track active processes by session ID
17
18
 
18
19
  /**
package/server/index.js CHANGED
@@ -1,12 +1,23 @@
1
1
  #!/usr/bin/env node
2
+ /* eslint-disable import-x/order */
2
3
  // Load environment variables before other imports execute
3
4
  import './load-env.js';
4
- import fs from 'fs';
5
+ import fs, { promises as fsPromises } from 'fs';
5
6
  import path from 'path';
6
- import { findAppRoot, getModuleDir } from './utils/runtime-paths.js';
7
+ import os from 'os';
8
+ import http from 'http';
9
+ import net from 'node:net';
10
+ import { spawn } from 'child_process';
11
+
12
+ import express from 'express';
13
+ import { WebSocketServer, WebSocket } from 'ws';
14
+ import cors from 'cors';
7
15
 
8
16
  import { AppError, createNormalizedMessage } from '@/shared/utils.js';
9
17
 
18
+ import { findAppRoot, getModuleDir } from './utils/runtime-paths.js';
19
+
20
+
10
21
 
11
22
  const __dirname = getModuleDir(import.meta.url);
12
23
  // The server source runs from /server, while the compiled output runs from /dist-server/server.
@@ -31,14 +42,8 @@ import { c } from './utils/colors.js';
31
42
 
32
43
  console.log('SERVER_PORT from env:', process.env.SERVER_PORT);
33
44
 
34
- import express from 'express';
35
- import { WebSocketServer, WebSocket } from 'ws';
36
- import os from 'os';
37
- import http from 'http';
38
- import net from 'node:net';
39
- import cors from 'cors';
40
- import { promises as fsPromises } from 'fs';
41
- import { spawn } from 'child_process';
45
+
46
+
42
47
  import pty from 'node-pty';
43
48
  import mime from 'mime-types';
44
49
 
@@ -90,10 +95,6 @@ import { restoreBotFromConfig } from './services/telegram/bot.js';
90
95
  import { ensurePortOpen } from './utils/port-access.js';
91
96
  import {
92
97
  applyAllStoredCredentialsToEnv,
93
- applyProviderCredentialsToEnv,
94
- listProviderCredentialSummaries,
95
- PROVIDER_ENV_VARS,
96
- setProviderCredentials,
97
98
  } from './services/provider-credentials.js';
98
99
  import { primeCliBinPath } from './services/install-jobs.js';
99
100
  import { startEnabledPluginServers, stopAllPlugins, getPluginPort } from './utils/plugin-process-manager.js';
@@ -101,7 +102,9 @@ import { initializeDatabase, sessionNamesDb, applyCustomSessionNames } from './d
101
102
  import { configureWebPush } from './services/vapid-keys.js';
102
103
  import { validateApiKey, authenticateToken, authenticateWebSocket } from './middleware/auth.js';
103
104
  import { IS_PLATFORM } from './constants/config.js';
105
+
104
106
  import { getConnectableHost } from '../shared/networkHosts.js';
107
+
105
108
  import { buildDaemonCliCommand, handleDaemonCommand } from './daemon-manager.js';
106
109
 
107
110
  const VALID_PROVIDERS = ['claude', 'codex', 'cursor', 'gemini', 'qwen', 'opencode'];
@@ -2,6 +2,7 @@
2
2
  import fs from 'fs';
3
3
  import os from 'os';
4
4
  import path from 'path';
5
+
5
6
  import { findAppRoot, getModuleDir } from './utils/runtime-paths.js';
6
7
 
7
8
  const __dirname = getModuleDir(import.meta.url);
@@ -1,4 +1,5 @@
1
1
  import jwt from 'jsonwebtoken';
2
+
2
3
  import { userDb, appConfigDb, apiKeysDb } from '../database/db.js';
3
4
  import { IS_PLATFORM } from '../constants/config.js';
4
5
 
@@ -1,4 +1,5 @@
1
1
  import express, { type Router } from 'express';
2
+
2
3
  import { orchestrationTaskService } from '@/modules/orchestration/tasks/orchestration-task.service.js';
3
4
 
4
5
  export function createOrchestrationTaskRouter(): Router {
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import-x/order */
1
2
  import { readFile } from 'node:fs/promises';
2
3
  import os from 'node:os';
3
4
  import path from 'node:path';
@@ -7,7 +8,7 @@ import spawn from 'cross-spawn';
7
8
  import type { IProviderAuth } from '@/shared/interfaces.js';
8
9
  import type { ProviderAuthStatus } from '@/shared/types.js';
9
10
  import { readObjectRecord, readOptionalString } from '@/shared/utils.js';
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+
11
12
  // @ts-ignore — plain-JS module
12
13
  import { getProviderCredentials } from '@/services/provider-credentials.js';
13
14
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import-x/order */
1
2
  import { readFile } from 'node:fs/promises';
2
3
  import os from 'node:os';
3
4
  import path from 'node:path';
@@ -7,7 +8,7 @@ import spawn from 'cross-spawn';
7
8
  import type { IProviderAuth } from '@/shared/interfaces.js';
8
9
  import type { ProviderAuthStatus } from '@/shared/types.js';
9
10
  import { readObjectRecord, readOptionalString } from '@/shared/utils.js';
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+
11
12
  // @ts-ignore — plain-JS module
12
13
  import { getProviderCredentials } from '@/services/provider-credentials.js';
13
14
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import-x/order */
1
2
  import { readFile } from 'node:fs/promises';
2
3
  import os from 'node:os';
3
4
  import path from 'node:path';
@@ -7,7 +8,7 @@ import spawn from 'cross-spawn';
7
8
  import type { IProviderAuth } from '@/shared/interfaces.js';
8
9
  import type { ProviderAuthStatus } from '@/shared/types.js';
9
10
  import { readObjectRecord, readOptionalString } from '@/shared/utils.js';
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+
11
12
  // @ts-ignore — plain-JS module
12
13
  import { getProviderCredentials } from '@/services/provider-credentials.js';
13
14
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import-x/order */
1
2
  import { readFile } from 'node:fs/promises';
2
3
  import os from 'node:os';
3
4
  import path from 'node:path';
@@ -7,7 +8,7 @@ import spawn from 'cross-spawn';
7
8
  import type { IProviderAuth } from '@/shared/interfaces.js';
8
9
  import type { ProviderAuthStatus } from '@/shared/types.js';
9
10
  import { readObjectRecord, readOptionalString } from '@/shared/utils.js';
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+
11
12
  // @ts-ignore — plain-JS module, typed via inference
12
13
  import { getProviderCredentials } from '@/services/provider-credentials.js';
13
14
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import-x/order */
1
2
  import { readFile } from 'node:fs/promises';
2
3
  import os from 'node:os';
3
4
  import path from 'node:path';
@@ -7,7 +8,7 @@ import spawn from 'cross-spawn';
7
8
  import type { IProviderAuth } from '@/shared/interfaces.js';
8
9
  import type { ProviderAuthStatus } from '@/shared/types.js';
9
10
  import { readObjectRecord, readOptionalString } from '@/shared/utils.js';
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+
11
12
  // @ts-ignore — plain-JS module, typed via inference
12
13
  import { getProviderCredentials } from '@/services/provider-credentials.js';
13
14
 
@@ -1,8 +1,9 @@
1
+ /* eslint-disable import-x/order */
1
2
  import express, { type Request, type Response } from 'express';
2
3
 
3
4
  import { providerAuthService } from '@/modules/providers/services/provider-auth.service.js';
4
5
  import { providerMcpService } from '@/modules/providers/services/mcp.service.js';
5
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
+
6
7
  // @ts-ignore — plain-JS service, typed via inference
7
8
  import {
8
9
  applyProviderCredentialsToEnv,
@@ -10,10 +11,10 @@ import {
10
11
  setProviderCredentials,
11
12
  PROVIDER_ENV_VARS,
12
13
  } from '@/services/provider-credentials.js';
13
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
+
14
15
  // @ts-ignore — plain-JS service
15
16
  import { getProviderModels, clearProviderModelCache } from '@/services/provider-models.js';
16
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
+
17
18
  // @ts-ignore — plain-JS service
18
19
  import {
19
20
  createInstallJob,
@@ -21,8 +22,17 @@ import {
21
22
  cancelInstallJob,
22
23
  snapshotDonePayload,
23
24
  } from '@/services/install-jobs.js';
24
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
25
+
26
+
25
27
  // @ts-ignore — plain-JS shared module
28
+ import {
29
+ MAX_CONFIG_FILE_SIZE_BYTES,
30
+ PROVIDER_CONFIG_FILES,
31
+ type ProviderConfigFile,
32
+ } from '@/modules/providers/shared/provider-configs.js';
33
+ import { AppError, asyncHandler, createApiSuccessResponse } from '@/shared/utils.js';
34
+ import type { LLMProvider, McpScope, McpTransport, UpsertProviderMcpServerInput } from '@/shared/types.js';
35
+
26
36
  import {
27
37
  CLAUDE_MODELS,
28
38
  CODEX_MODELS,
@@ -40,18 +50,11 @@ const STATIC_MODELS_BY_PROVIDER: Record<LLMProvider, Array<{ value: string; labe
40
50
  qwen: QWEN_MODELS.OPTIONS,
41
51
  opencode: OPENCODE_MODELS.OPTIONS,
42
52
  };
43
- import type { LLMProvider, McpScope, McpTransport, UpsertProviderMcpServerInput } from '@/shared/types.js';
44
- import { AppError, asyncHandler, createApiSuccessResponse } from '@/shared/utils.js';
45
53
  import fs from 'node:fs/promises';
46
54
  import http from 'node:http';
47
55
  import os from 'node:os';
48
56
  import path from 'node:path';
49
57
 
50
- import {
51
- MAX_CONFIG_FILE_SIZE_BYTES,
52
- PROVIDER_CONFIG_FILES,
53
- type ProviderConfigFile,
54
- } from '@/modules/providers/shared/provider-configs.js';
55
58
 
56
59
  /**
57
60
  * npm-global install command per provider. Used by POST
@@ -20,11 +20,12 @@
20
20
  * server/index.js is uniform across all five spawn-based providers.
21
21
  */
22
22
  import { spawn } from 'child_process';
23
- import crossSpawn from 'cross-spawn';
24
23
  import { promises as fs } from 'fs';
25
24
  import path from 'path';
26
25
  import os from 'os';
27
26
 
27
+ import crossSpawn from 'cross-spawn';
28
+
28
29
  import sessionManager from './sessionManager.js';
29
30
  import OpencodeResponseHandler from './opencode-response-handler.js';
30
31
  import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
@@ -57,13 +57,14 @@
57
57
  * - Session data is fetched on-demand, not cached
58
58
  */
59
59
 
60
- import { promises as fs } from 'fs';
61
- import fsSync from 'fs';
60
+ import fsSync, { promises as fs } from 'fs';
62
61
  import path from 'path';
63
62
  import readline from 'readline';
64
63
  import crypto from 'crypto';
65
- import Database from 'better-sqlite3';
66
64
  import os from 'os';
65
+
66
+ import Database from 'better-sqlite3';
67
+
67
68
  import sessionManager from './sessionManager.js';
68
69
  import { applyCustomSessionNames } from './database/db.js';
69
70
 
@@ -9,11 +9,12 @@
9
9
  * model list) has a clean place to land without touching Gemini's code path.
10
10
  */
11
11
  import { spawn } from 'child_process';
12
- import crossSpawn from 'cross-spawn';
13
12
  import { promises as fs } from 'fs';
14
13
  import path from 'path';
15
14
  import os from 'os';
16
15
 
16
+ import crossSpawn from 'cross-spawn';
17
+
17
18
  import sessionManager from './sessionManager.js';
18
19
  import QwenResponseHandler from './qwen-response-handler.js';
19
20
  import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
@@ -1,9 +1,12 @@
1
- import express from 'express';
2
1
  import { spawn } from 'child_process';
3
2
  import path from 'path';
4
3
  import os from 'os';
5
4
  import { promises as fs } from 'fs';
6
5
  import crypto from 'crypto';
6
+
7
+ import express from 'express';
8
+ import { Octokit } from '@octokit/rest';
9
+
7
10
  import { userDb, apiKeysDb, githubTokensDb } from '../database/db.js';
8
11
  import { addProjectManually } from '../projects.js';
9
12
  import { queryClaudeSDK } from '../claude-sdk.js';
@@ -12,8 +15,7 @@ import { queryCodex } from '../openai-codex.js';
12
15
  import { spawnGemini } from '../gemini-cli.js';
13
16
  import { spawnQwen } from '../qwen-code-cli.js';
14
17
  import { spawnOpencode } from '../opencode-cli.js';
15
- import { Octokit } from '@octokit/rest';
16
- import { CLAUDE_MODELS, CURSOR_MODELS, CODEX_MODELS } from '../../shared/modelConstants.js';
18
+ import { CODEX_MODELS } from '../../shared/modelConstants.js';
17
19
  import { IS_PLATFORM } from '../constants/config.js';
18
20
 
19
21
  const router = express.Router();
@@ -4,6 +4,7 @@ import express from 'express';
4
4
  // the install path. Existing $2a$/$2b$ hashes in the DB remain valid;
5
5
  // bcryptjs recognizes both prefixes so logins work across the swap.
6
6
  import bcrypt from 'bcryptjs';
7
+
7
8
  import { userDb, db } from '../database/db.js';
8
9
  import { generateToken, authenticateToken } from '../middleware/auth.js';
9
10
 
@@ -1,4 +1,5 @@
1
1
  import express from 'express';
2
+
2
3
  import { deleteCodexSession } from '../projects.js';
3
4
  import { sessionNamesDb } from '../database/db.js';
4
5
 
@@ -1,7 +1,9 @@
1
- import express from 'express';
2
1
  import { promises as fs } from 'fs';
3
2
  import path from 'path';
4
3
  import os from 'os';
4
+
5
+ import express from 'express';
6
+
5
7
  import { CLAUDE_MODELS, CURSOR_MODELS, CODEX_MODELS } from '../../shared/modelConstants.js';
6
8
  import { parseFrontmatter } from '../utils/frontmatter.js';
7
9
  import { findAppRoot, getModuleDir } from '../utils/runtime-paths.js';
@@ -1,7 +1,9 @@
1
- import express from 'express';
2
1
  import { promises as fs } from 'fs';
3
2
  import path from 'path';
4
3
  import os from 'os';
4
+
5
+ import express from 'express';
6
+
5
7
  import { CURSOR_MODELS } from '../../shared/modelConstants.js';
6
8
 
7
9
  const router = express.Router();
@@ -1,4 +1,5 @@
1
1
  import express from 'express';
2
+
2
3
  import sessionManager from '../sessionManager.js';
3
4
  import { sessionNamesDb } from '../database/db.js';
4
5
 
@@ -1,7 +1,9 @@
1
- import express from 'express';
2
1
  import { spawn } from 'child_process';
3
2
  import path from 'path';
4
3
  import { promises as fs } from 'fs';
4
+
5
+ import express from 'express';
6
+
5
7
  import { extractProjectDirectory } from '../projects.js';
6
8
  import { queryClaudeSDK } from '../claude-sdk.js';
7
9
  import { spawnCursor } from '../cursor-cli.js';
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  import express from 'express';
10
+
10
11
  import { detectTaskMasterMCPServer } from '../utils/mcp-detector.js';
11
12
 
12
13
  const router = express.Router();
@@ -10,6 +10,7 @@
10
10
  */
11
11
 
12
12
  import express from 'express';
13
+
13
14
  import { sessionsService } from '../modules/providers/services/sessions.service.js';
14
15
 
15
16
  const router = express.Router();
@@ -1,6 +1,7 @@
1
- import express from 'express';
2
1
  import os from 'os';
3
2
 
3
+ import express from 'express';
4
+
4
5
  import {
5
6
  getTunnelState,
6
7
  getUpnpState,
@@ -1,8 +1,10 @@
1
- import express from 'express';
2
1
  import path from 'path';
3
2
  import http from 'http';
4
- import mime from 'mime-types';
5
3
  import fs from 'fs';
4
+
5
+ import mime from 'mime-types';
6
+ import express from 'express';
7
+
6
8
  import {
7
9
  scanPlugins,
8
10
  getPluginsConfig,
@@ -1,8 +1,10 @@
1
- import express from 'express';
2
1
  import { promises as fs } from 'fs';
3
2
  import path from 'path';
4
3
  import { spawn } from 'child_process';
5
4
  import os from 'os';
5
+
6
+ import express from 'express';
7
+
6
8
  import { addProjectManually, extractProjectDirectory } from '../projects.js';
7
9
 
8
10
  const router = express.Router();
@@ -1,4 +1,5 @@
1
1
  import express from 'express';
2
+
2
3
  import { apiKeysDb, credentialsDb, notificationPreferencesDb, pushSubscriptionsDb } from '../database/db.js';
3
4
  import { getPublicKey } from '../services/vapid-keys.js';
4
5
  import { createNotificationEvent, notifyUserIfEnabled } from '../services/notification-orchestrator.js';
@@ -8,15 +8,17 @@
8
8
  * - TaskMaster state and metadata management
9
9
  */
10
10
 
11
- import express from 'express';
12
- import fs from 'fs';
11
+ import fs, { promises as fsPromises } from 'fs';
13
12
  import path from 'path';
14
- import { promises as fsPromises } from 'fs';
15
13
  import { spawn } from 'child_process';
14
+
15
+ import express from 'express';
16
+
17
+ import { orchestrationTaskService } from '@/modules/orchestration/tasks/orchestration-task.service.js';
18
+
16
19
  import { extractProjectDirectory } from '../projects.js';
17
- import { detectTaskMasterMCPServer } from '../utils/mcp-detector.js';
18
20
  import { broadcastTaskMasterProjectUpdate, broadcastTaskMasterTasksUpdate } from '../utils/taskmaster-websocket.js';
19
- import { orchestrationTaskService } from '@/modules/orchestration/tasks/orchestration-task.service.js';
21
+ import { detectTaskMasterMCPServer } from '../utils/mcp-detector.js';
20
22
 
21
23
  const router = express.Router();
22
24
 
@@ -1,8 +1,10 @@
1
+ import { spawn } from 'child_process';
2
+
1
3
  import express from 'express';
4
+
2
5
  import { userDb } from '../database/db.js';
3
6
  import { authenticateToken } from '../middleware/auth.js';
4
7
  import { getSystemGitConfig } from '../utils/gitConfig.js';
5
- import { spawn } from 'child_process';
6
8
 
7
9
  const router = express.Router();
8
10
 
@@ -130,7 +130,7 @@ export const startTunnel = async ({ port }) => {
130
130
  while (Date.now() - start < 15000) {
131
131
  if (tunnelState.url) return tunnelState;
132
132
  if (!tunnelProc) break; // process died early
133
- // eslint-disable-next-line no-await-in-loop
133
+
134
134
  await new Promise((r) => setTimeout(r, 250));
135
135
  }
136
136
 
@@ -1,5 +1,7 @@
1
1
  import webPush from 'web-push';
2
+
2
3
  import { notificationPreferencesDb, pushSubscriptionsDb, sessionNamesDb } from '../database/db.js';
4
+
3
5
  import { notifyUser as notifyTelegramUser } from './telegram/bot.js';
4
6
 
5
7
  const KIND_TO_PREF_KEY = {
@@ -2,7 +2,9 @@ import { promises as fs } from 'fs';
2
2
  import path from 'path';
3
3
  import { execFile } from 'child_process';
4
4
  import { promisify } from 'util';
5
+
5
6
  import { parse as parseShellCommand } from 'shell-quote';
7
+
6
8
  import { parseFrontmatter } from './frontmatter.js';
7
9
 
8
10
  const execFileAsync = promisify(execFile);
@@ -1,5 +1,6 @@
1
1
  import { spawn } from 'child_process';
2
2
  import path from 'path';
3
+
3
4
  import { scanPlugins, getPluginsConfig, getPluginDir } from './plugin-loader.js';
4
5
 
5
6
  // Map<pluginName, { process, port }>
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import process from 'node:process';
4
+
4
5
  import { createServer } from 'vite';
5
6
 
6
7
  const DEFAULT_PORT = 5173;