@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.
- package/dist/assets/index-BwmhA_le.css +32 -0
- package/dist/assets/{index-D8z78r_D.js → index-CyxRiNt0.js} +183 -183
- package/dist/index.html +2 -2
- package/dist-server/server/cli.js.map +1 -1
- package/dist-server/server/cursor-cli.js.map +1 -1
- package/dist-server/server/gemini-cli.js +4 -4
- package/dist-server/server/gemini-cli.js.map +1 -1
- package/dist-server/server/index.js +11 -11
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/load-env.js.map +1 -1
- package/dist-server/server/middleware/auth.js.map +1 -1
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js +1 -1
- package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/qwen/qwen-auth.provider.js +1 -1
- package/dist-server/server/modules/providers/list/qwen/qwen-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/provider.routes.js +3 -6
- package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
- package/dist-server/server/opencode-cli.js +1 -1
- package/dist-server/server/opencode-cli.js.map +1 -1
- package/dist-server/server/projects.js +2 -3
- package/dist-server/server/projects.js.map +1 -1
- package/dist-server/server/qwen-code-cli.js +1 -1
- package/dist-server/server/qwen-code-cli.js.map +1 -1
- package/dist-server/server/routes/agent.js +3 -3
- package/dist-server/server/routes/agent.js.map +1 -1
- package/dist-server/server/routes/auth.js.map +1 -1
- package/dist-server/server/routes/codex.js.map +1 -1
- package/dist-server/server/routes/commands.js +1 -1
- package/dist-server/server/routes/commands.js.map +1 -1
- package/dist-server/server/routes/cursor.js +1 -1
- package/dist-server/server/routes/cursor.js.map +1 -1
- package/dist-server/server/routes/gemini.js.map +1 -1
- package/dist-server/server/routes/git.js +1 -1
- package/dist-server/server/routes/git.js.map +1 -1
- package/dist-server/server/routes/mcp-utils.js.map +1 -1
- package/dist-server/server/routes/messages.js.map +1 -1
- package/dist-server/server/routes/network.js +1 -1
- package/dist-server/server/routes/network.js.map +1 -1
- package/dist-server/server/routes/plugins.js +2 -2
- package/dist-server/server/routes/plugins.js.map +1 -1
- package/dist-server/server/routes/projects.js +1 -1
- package/dist-server/server/routes/projects.js.map +1 -1
- package/dist-server/server/routes/settings.js.map +1 -1
- package/dist-server/server/routes/taskmaster.js +4 -5
- package/dist-server/server/routes/taskmaster.js.map +1 -1
- package/dist-server/server/routes/user.js +1 -1
- package/dist-server/server/routes/user.js.map +1 -1
- package/dist-server/server/services/external-access.js +0 -1
- package/dist-server/server/services/external-access.js.map +1 -1
- package/dist-server/server/services/notification-orchestrator.js.map +1 -1
- package/dist-server/server/utils/commandParser.js.map +1 -1
- package/dist-server/server/utils/plugin-process-manager.js.map +1 -1
- package/dist-server/server/vite-daemon.js.map +1 -1
- package/package.json +1 -1
- package/server/cli.js +1 -0
- package/server/cursor-cli.js +2 -0
- package/server/gemini-cli.js +6 -5
- package/server/index.js +17 -14
- package/server/load-env.js +1 -0
- package/server/middleware/auth.js +1 -0
- package/server/modules/orchestration/tasks/orchestration-task.routes.ts +1 -0
- package/server/modules/providers/list/claude/claude-auth.provider.ts +2 -1
- package/server/modules/providers/list/codex/codex-auth.provider.ts +2 -1
- package/server/modules/providers/list/gemini/gemini-auth.provider.ts +2 -1
- package/server/modules/providers/list/opencode/opencode-auth.provider.ts +2 -1
- package/server/modules/providers/list/qwen/qwen-auth.provider.ts +2 -1
- package/server/modules/providers/provider.routes.ts +14 -11
- package/server/opencode-cli.js +2 -1
- package/server/projects.js +4 -3
- package/server/qwen-code-cli.js +2 -1
- package/server/routes/agent.js +5 -3
- package/server/routes/auth.js +1 -0
- package/server/routes/codex.js +1 -0
- package/server/routes/commands.js +3 -1
- package/server/routes/cursor.js +3 -1
- package/server/routes/gemini.js +1 -0
- package/server/routes/git.js +3 -1
- package/server/routes/mcp-utils.js +1 -0
- package/server/routes/messages.js +1 -0
- package/server/routes/network.js +2 -1
- package/server/routes/plugins.js +4 -2
- package/server/routes/projects.js +3 -1
- package/server/routes/settings.js +1 -0
- package/server/routes/taskmaster.js +7 -5
- package/server/routes/user.js +3 -1
- package/server/services/external-access.js +1 -1
- package/server/services/notification-orchestrator.js +2 -0
- package/server/utils/commandParser.js +2 -0
- package/server/utils/plugin-process-manager.js +1 -0
- package/server/vite-daemon.js +1 -0
- 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":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;
|
|
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
|
+
"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
|
|
package/server/cursor-cli.js
CHANGED
|
@@ -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';
|
package/server/gemini-cli.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
35
|
-
|
|
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'];
|
package/server/load-env.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14
|
+
|
|
14
15
|
// @ts-ignore — plain-JS service
|
|
15
16
|
import { getProviderModels, clearProviderModelCache } from '@/services/provider-models.js';
|
|
16
|
-
|
|
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
|
-
|
|
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
|
package/server/opencode-cli.js
CHANGED
|
@@ -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';
|
package/server/projects.js
CHANGED
|
@@ -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
|
|
package/server/qwen-code-cli.js
CHANGED
|
@@ -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';
|
package/server/routes/agent.js
CHANGED
|
@@ -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 {
|
|
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();
|
package/server/routes/auth.js
CHANGED
|
@@ -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
|
|
package/server/routes/codex.js
CHANGED
|
@@ -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';
|
package/server/routes/cursor.js
CHANGED
package/server/routes/gemini.js
CHANGED
package/server/routes/git.js
CHANGED
|
@@ -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';
|
package/server/routes/network.js
CHANGED
package/server/routes/plugins.js
CHANGED
|
@@ -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
|
|
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 {
|
|
21
|
+
import { detectTaskMasterMCPServer } from '../utils/mcp-detector.js';
|
|
20
22
|
|
|
21
23
|
const router = express.Router();
|
|
22
24
|
|
package/server/routes/user.js
CHANGED
|
@@ -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
|
-
|
|
133
|
+
|
|
134
134
|
await new Promise((r) => setTimeout(r, 250));
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -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);
|