@pixelbyte-software/pixcode 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.
- package/LICENSE +718 -718
- package/README.de.md +248 -248
- package/README.ja.md +240 -240
- package/README.ko.md +240 -240
- package/README.md +303 -303
- package/README.ru.md +248 -248
- package/README.tr.md +250 -250
- package/README.zh-CN.md +240 -240
- package/dist/api-docs.html +548 -395
- package/dist/assets/index-B8w57E1r.css +32 -0
- package/dist/assets/index-CBdsvGSR.js +854 -0
- package/dist/clear-cache.html +85 -85
- package/dist/convert-icons.md +52 -52
- package/dist/favicon.svg +8 -8
- package/dist/generate-icons.js +48 -48
- package/dist/icons/codex-white.svg +3 -3
- package/dist/icons/codex.svg +3 -3
- package/dist/icons/cursor-white.svg +11 -11
- package/dist/icons/icon-128x128.svg +9 -9
- package/dist/icons/icon-144x144.svg +9 -9
- package/dist/icons/icon-152x152.svg +9 -9
- package/dist/icons/icon-192x192.svg +9 -9
- package/dist/icons/icon-384x384.svg +9 -9
- package/dist/icons/icon-512x512.svg +9 -9
- package/dist/icons/icon-72x72.svg +9 -9
- package/dist/icons/icon-96x96.svg +9 -9
- package/dist/icons/icon-template.svg +9 -9
- package/dist/icons/qwen-logo.svg +14 -14
- package/dist/index.html +59 -59
- package/dist/logo.svg +12 -12
- package/dist/manifest.json +60 -60
- package/dist/openapi.yaml +1693 -1311
- package/dist/sw.js +124 -124
- package/dist-server/server/claude-sdk.js +38 -7
- package/dist-server/server/claude-sdk.js.map +1 -1
- package/dist-server/server/cli.js +107 -112
- package/dist-server/server/cli.js.map +1 -1
- package/dist-server/server/daemon/manager.js +33 -33
- package/dist-server/server/daemon-manager.js +159 -112
- package/dist-server/server/daemon-manager.js.map +1 -1
- package/dist-server/server/database/json-store.js +8 -5
- package/dist-server/server/database/json-store.js.map +1 -1
- package/dist-server/server/index.js +31 -10
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/modules/orchestration/a2a/adapter-registry.js +45 -19
- package/dist-server/server/modules/orchestration/a2a/adapter-registry.js.map +1 -1
- package/dist-server/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.js.map +1 -1
- package/dist-server/server/modules/orchestration/a2a/adapters/claude-code.adapter.js +1 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/claude-code.adapter.js.map +1 -1
- package/dist-server/server/modules/orchestration/a2a/adapters/codex.adapter.js +202 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/codex.adapter.js.map +1 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/cursor.adapter.js +205 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/cursor.adapter.js.map +1 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/gemini.adapter.js +205 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/gemini.adapter.js.map +1 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/opencode.adapter.js +205 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/opencode.adapter.js.map +1 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/qwen.adapter.js +205 -0
- package/dist-server/server/modules/orchestration/a2a/adapters/qwen.adapter.js.map +1 -0
- package/dist-server/server/modules/orchestration/a2a/routes.js +298 -34
- package/dist-server/server/modules/orchestration/a2a/routes.js.map +1 -1
- package/dist-server/server/modules/orchestration/a2a/task-store.js +144 -0
- package/dist-server/server/modules/orchestration/a2a/task-store.js.map +1 -0
- package/dist-server/server/modules/orchestration/a2a/validator.js +16 -0
- package/dist-server/server/modules/orchestration/a2a/validator.js.map +1 -1
- package/dist-server/server/modules/orchestration/index.js +14 -0
- package/dist-server/server/modules/orchestration/index.js.map +1 -1
- package/dist-server/server/modules/orchestration/preview/port-watcher.js +90 -0
- package/dist-server/server/modules/orchestration/preview/port-watcher.js.map +1 -0
- package/dist-server/server/modules/orchestration/preview/preview-proxy.js +58 -0
- package/dist-server/server/modules/orchestration/preview/preview-proxy.js.map +1 -0
- package/dist-server/server/modules/orchestration/preview/types.js +2 -0
- package/dist-server/server/modules/orchestration/preview/types.js.map +1 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task-store.js +37 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task-store.js.map +1 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js +68 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js.map +1 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.service.js +128 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.service.js.map +1 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.types.js +2 -0
- package/dist-server/server/modules/orchestration/tasks/orchestration-task.types.js.map +1 -0
- package/dist-server/server/modules/orchestration/workflows/built-in-workflows.js +126 -0
- package/dist-server/server/modules/orchestration/workflows/built-in-workflows.js.map +1 -0
- package/dist-server/server/modules/orchestration/workflows/workflow-runner.js +1047 -0
- package/dist-server/server/modules/orchestration/workflows/workflow-runner.js.map +1 -0
- package/dist-server/server/modules/orchestration/workflows/workflow-store.js +76 -0
- package/dist-server/server/modules/orchestration/workflows/workflow-store.js.map +1 -0
- package/dist-server/server/modules/orchestration/workflows/workflow.routes.js +151 -0
- package/dist-server/server/modules/orchestration/workflows/workflow.routes.js.map +1 -0
- package/dist-server/server/modules/orchestration/workflows/workflow.types.js +2 -0
- package/dist-server/server/modules/orchestration/workflows/workflow.types.js.map +1 -0
- package/dist-server/server/modules/orchestration/workflows/workspace-target.js +98 -0
- package/dist-server/server/modules/orchestration/workflows/workspace-target.js.map +1 -0
- package/dist-server/server/modules/orchestration/workspace/docker-workspace.js +122 -0
- package/dist-server/server/modules/orchestration/workspace/docker-workspace.js.map +1 -0
- package/dist-server/server/modules/orchestration/workspace/path-safety.js +48 -0
- package/dist-server/server/modules/orchestration/workspace/path-safety.js.map +1 -0
- package/dist-server/server/modules/orchestration/workspace/types.js +11 -0
- package/dist-server/server/modules/orchestration/workspace/types.js.map +1 -0
- package/dist-server/server/modules/orchestration/workspace/workspace-manager.js +80 -0
- package/dist-server/server/modules/orchestration/workspace/workspace-manager.js.map +1 -0
- package/dist-server/server/modules/orchestration/workspace/worktree-workspace.js +96 -0
- package/dist-server/server/modules/orchestration/workspace/worktree-workspace.js.map +1 -0
- package/dist-server/server/modules/providers/index.js +3 -0
- package/dist-server/server/modules/providers/index.js.map +1 -0
- package/dist-server/server/openai-codex.js +35 -4
- package/dist-server/server/openai-codex.js.map +1 -1
- package/dist-server/server/routes/commands.js +25 -25
- package/dist-server/server/routes/git.js +17 -17
- package/dist-server/server/routes/taskmaster.js +525 -508
- package/dist-server/server/routes/taskmaster.js.map +1 -1
- package/package.json +180 -178
- package/scripts/fix-node-pty.js +67 -67
- package/scripts/smoke/a2a-roundtrip.mjs +86 -17
- package/scripts/smoke/orchestration-api.mjs +172 -0
- package/scripts/smoke/orchestration-live-run.mjs +176 -0
- package/server/claude-sdk.js +898 -857
- package/server/cli.js +935 -940
- package/server/constants/config.js +4 -4
- package/server/cursor-cli.js +342 -342
- package/server/daemon/manager.js +564 -564
- package/server/daemon-manager.js +959 -920
- package/server/database/db.js +794 -794
- package/server/database/json-store.js +197 -194
- package/server/gemini-cli.js +535 -535
- package/server/gemini-response-handler.js +79 -79
- package/server/index.js +3135 -3104
- package/server/load-env.js +34 -34
- package/server/middleware/auth.js +173 -173
- package/server/modules/orchestration/a2a/adapter-registry.ts +72 -22
- package/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.ts +9 -3
- package/server/modules/orchestration/a2a/adapters/claude-code.adapter.ts +1 -0
- package/server/modules/orchestration/a2a/adapters/codex.adapter.ts +244 -0
- package/server/modules/orchestration/a2a/adapters/cursor.adapter.ts +249 -0
- package/server/modules/orchestration/a2a/adapters/gemini.adapter.ts +248 -0
- package/server/modules/orchestration/a2a/adapters/opencode.adapter.ts +248 -0
- package/server/modules/orchestration/a2a/adapters/qwen.adapter.ts +248 -0
- package/server/modules/orchestration/a2a/routes.ts +349 -36
- package/server/modules/orchestration/a2a/task-store.ts +178 -0
- package/server/modules/orchestration/a2a/types.ts +14 -0
- package/server/modules/orchestration/a2a/validator.ts +25 -2
- package/server/modules/orchestration/index.ts +40 -0
- package/server/modules/orchestration/preview/port-watcher.ts +112 -0
- package/server/modules/orchestration/preview/preview-proxy.ts +60 -0
- package/server/modules/orchestration/preview/types.ts +19 -0
- package/server/modules/orchestration/tasks/orchestration-task-store.ts +45 -0
- package/server/modules/orchestration/tasks/orchestration-task.routes.ts +73 -0
- package/server/modules/orchestration/tasks/orchestration-task.service.ts +145 -0
- package/server/modules/orchestration/tasks/orchestration-task.types.ts +29 -0
- package/server/modules/orchestration/workflows/built-in-workflows.ts +127 -0
- package/server/modules/orchestration/workflows/workflow-runner.ts +1206 -0
- package/server/modules/orchestration/workflows/workflow-store.ts +97 -0
- package/server/modules/orchestration/workflows/workflow.routes.ts +169 -0
- package/server/modules/orchestration/workflows/workflow.types.ts +70 -0
- package/server/modules/orchestration/workflows/workspace-target.ts +120 -0
- package/server/modules/orchestration/workspace/docker-workspace.ts +135 -0
- package/server/modules/orchestration/workspace/path-safety.ts +55 -0
- package/server/modules/orchestration/workspace/types.ts +52 -0
- package/server/modules/orchestration/workspace/workspace-manager.ts +97 -0
- package/server/modules/orchestration/workspace/worktree-workspace.ts +125 -0
- package/server/modules/providers/index.ts +2 -0
- package/server/modules/providers/list/claude/claude-auth.provider.ts +145 -145
- package/server/modules/providers/list/claude/claude-mcp.provider.ts +135 -135
- package/server/modules/providers/list/claude/claude-sessions.provider.ts +306 -306
- package/server/modules/providers/list/claude/claude.provider.ts +15 -15
- package/server/modules/providers/list/codex/codex-auth.provider.ts +115 -115
- package/server/modules/providers/list/codex/codex-mcp.provider.ts +135 -135
- package/server/modules/providers/list/codex/codex-sessions.provider.ts +319 -319
- package/server/modules/providers/list/codex/codex.provider.ts +15 -15
- package/server/modules/providers/list/cursor/cursor-auth.provider.ts +143 -143
- package/server/modules/providers/list/cursor/cursor-mcp.provider.ts +108 -108
- package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +421 -421
- package/server/modules/providers/list/cursor/cursor.provider.ts +15 -15
- package/server/modules/providers/list/gemini/gemini-auth.provider.ts +163 -163
- package/server/modules/providers/list/gemini/gemini-mcp.provider.ts +110 -110
- package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +227 -227
- package/server/modules/providers/list/gemini/gemini.provider.ts +15 -15
- package/server/modules/providers/list/opencode/opencode-auth.provider.ts +130 -130
- package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +126 -126
- package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +232 -232
- package/server/modules/providers/list/opencode/opencode.provider.ts +29 -29
- package/server/modules/providers/list/qwen/qwen-auth.provider.ts +145 -145
- package/server/modules/providers/list/qwen/qwen-mcp.provider.ts +114 -114
- package/server/modules/providers/list/qwen/qwen-sessions.provider.ts +265 -265
- package/server/modules/providers/list/qwen/qwen.provider.ts +21 -21
- package/server/modules/providers/provider.registry.ts +40 -40
- package/server/modules/providers/provider.routes.ts +819 -819
- package/server/modules/providers/services/mcp.service.ts +86 -86
- package/server/modules/providers/services/provider-auth.service.ts +26 -26
- package/server/modules/providers/services/sessions.service.ts +45 -45
- package/server/modules/providers/shared/base/abstract.provider.ts +20 -20
- package/server/modules/providers/shared/mcp/mcp.provider.ts +151 -151
- package/server/modules/providers/shared/provider-configs.ts +142 -142
- package/server/modules/providers/tests/mcp.test.ts +293 -293
- package/server/openai-codex.js +462 -426
- package/server/opencode-cli.js +459 -459
- package/server/opencode-response-handler.js +107 -107
- package/server/projects.js +3105 -3105
- package/server/qwen-code-cli.js +395 -395
- package/server/qwen-response-handler.js +73 -73
- package/server/routes/agent.js +1365 -1365
- package/server/routes/auth.js +138 -138
- package/server/routes/codex.js +19 -19
- package/server/routes/commands.js +554 -554
- package/server/routes/cursor.js +52 -52
- package/server/routes/gemini.js +24 -24
- package/server/routes/git.js +1488 -1488
- package/server/routes/mcp-utils.js +31 -31
- package/server/routes/messages.js +61 -61
- package/server/routes/network.js +120 -120
- package/server/routes/plugins.js +318 -318
- package/server/routes/projects.js +915 -915
- package/server/routes/qwen.js +27 -27
- package/server/routes/settings.js +286 -286
- package/server/routes/taskmaster.js +1496 -1471
- package/server/routes/telegram.js +125 -125
- package/server/routes/user.js +123 -123
- package/server/services/external-access.js +171 -171
- package/server/services/install-jobs.js +571 -571
- package/server/services/notification-orchestrator.js +242 -242
- package/server/services/provider-credentials.js +189 -189
- package/server/services/provider-models.js +381 -381
- package/server/services/telegram/bot.js +279 -279
- package/server/services/telegram/telegram-http-client.js +130 -130
- package/server/services/telegram/translations.js +170 -170
- package/server/services/vapid-keys.js +36 -36
- package/server/sessionManager.js +225 -225
- package/server/shared/interfaces.ts +54 -54
- package/server/shared/types.ts +172 -172
- package/server/shared/utils.ts +193 -193
- package/server/tsconfig.json +36 -36
- package/server/utils/colors.js +21 -21
- package/server/utils/commandParser.js +303 -303
- package/server/utils/frontmatter.js +18 -18
- package/server/utils/gitConfig.js +34 -34
- package/server/utils/mcp-detector.js +147 -147
- package/server/utils/plugin-loader.js +457 -457
- package/server/utils/plugin-process-manager.js +184 -184
- package/server/utils/port-access.js +209 -209
- package/server/utils/runtime-paths.js +37 -37
- package/server/utils/taskmaster-websocket.js +128 -128
- package/server/utils/url-detection.js +71 -71
- package/server/vite-daemon.js +78 -78
- package/shared/modelConstants.js +162 -162
- package/shared/networkHosts.js +22 -22
- package/dist/assets/index-B1ghfb4w.css +0 -32
- package/dist/assets/index-BvClqlMf.js +0 -852
|
@@ -26,7 +26,7 @@ import path from 'node:path';
|
|
|
26
26
|
*/
|
|
27
27
|
const CURRENT_VERSION = 1;
|
|
28
28
|
// Tables the store manages — empty arrays on a fresh file.
|
|
29
|
-
const EMPTY_STORE = () => ({
|
|
29
|
+
const EMPTY_STORE = (extraTables = {}) => ({
|
|
30
30
|
_version: CURRENT_VERSION,
|
|
31
31
|
_sequences: {
|
|
32
32
|
users: 0,
|
|
@@ -34,6 +34,7 @@ const EMPTY_STORE = () => ({
|
|
|
34
34
|
user_credentials: 0,
|
|
35
35
|
vapid_keys: 0,
|
|
36
36
|
push_subscriptions: 0,
|
|
37
|
+
...Object.fromEntries(Object.keys(extraTables).map((k) => [k, 0])),
|
|
37
38
|
},
|
|
38
39
|
users: [],
|
|
39
40
|
api_keys: [],
|
|
@@ -45,11 +46,13 @@ const EMPTY_STORE = () => ({
|
|
|
45
46
|
app_config: [], // each row: { key, value, created_at }
|
|
46
47
|
telegram_config: [], // 0 or 1 row: { id=1, bot_token, bot_username, updated_at }
|
|
47
48
|
telegram_links: [], // each row: { user_id, chat_id, ... }
|
|
49
|
+
...Object.fromEntries(Object.entries(extraTables).map(([k, v]) => [k, v ?? []])),
|
|
48
50
|
});
|
|
49
51
|
export class JsonStore {
|
|
50
|
-
constructor(filePath) {
|
|
52
|
+
constructor(filePath, extraTables = {}) {
|
|
51
53
|
this.filePath = filePath;
|
|
52
54
|
this.tmpPath = `${filePath}.tmp`;
|
|
55
|
+
this.extraTables = extraTables;
|
|
53
56
|
this.data = null;
|
|
54
57
|
this._ensureLoaded();
|
|
55
58
|
}
|
|
@@ -63,7 +66,7 @@ export class JsonStore {
|
|
|
63
66
|
fs.mkdirSync(dir, { recursive: true });
|
|
64
67
|
}
|
|
65
68
|
if (!fs.existsSync(this.filePath)) {
|
|
66
|
-
this.data = EMPTY_STORE();
|
|
69
|
+
this.data = EMPTY_STORE(this.extraTables);
|
|
67
70
|
this._flush();
|
|
68
71
|
return;
|
|
69
72
|
}
|
|
@@ -72,7 +75,7 @@ export class JsonStore {
|
|
|
72
75
|
const parsed = JSON.parse(raw);
|
|
73
76
|
// Fill missing keys from EMPTY_STORE so adding a new "table" in a
|
|
74
77
|
// later schema doesn't crash a fresh deploy reading an old file.
|
|
75
|
-
this.data = { ...EMPTY_STORE(), ...parsed };
|
|
78
|
+
this.data = { ...EMPTY_STORE(this.extraTables), ...parsed };
|
|
76
79
|
// Ensure each well-known array key is actually an array — defends
|
|
77
80
|
// against a hand-edited file that set one to null or an object.
|
|
78
81
|
const empty = EMPTY_STORE();
|
|
@@ -94,7 +97,7 @@ export class JsonStore {
|
|
|
94
97
|
fs.renameSync(this.filePath, backup);
|
|
95
98
|
}
|
|
96
99
|
catch { /* noop */ }
|
|
97
|
-
this.data = EMPTY_STORE();
|
|
100
|
+
this.data = EMPTY_STORE(this.extraTables);
|
|
98
101
|
this._flush();
|
|
99
102
|
}
|
|
100
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-store.js","sourceRoot":"","sources":["../../../server/database/json-store.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,2DAA2D;AAC3D,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"json-store.js","sourceRoot":"","sources":["../../../server/database/json-store.js"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ import qwenRoutes from './routes/qwen.js';
|
|
|
60
60
|
import pluginsRoutes from './routes/plugins.js';
|
|
61
61
|
import messagesRoutes from './routes/messages.js';
|
|
62
62
|
import providerRoutes from './modules/providers/provider.routes.js';
|
|
63
|
-
import { createA2ARouter, adapterRegistry, ClaudeCodeA2AAdapter, } from './modules/orchestration/index.js';
|
|
63
|
+
import { createA2ARouter, adapterRegistry, ClaudeCodeA2AAdapter, CodexA2AAdapter, CursorA2AAdapter, GeminiA2AAdapter, OpenCodeA2AAdapter, QwenA2AAdapter, createPreviewProxyRouter, createOrchestrationTaskRouter, createWorkflowRouter, } from './modules/orchestration/index.js';
|
|
64
64
|
import networkRoutes from './routes/network.js';
|
|
65
65
|
import telegramRoutes from './routes/telegram.js';
|
|
66
66
|
import { restoreBotFromConfig } from './services/telegram/bot.js';
|
|
@@ -317,7 +317,15 @@ app.use('/api/sessions', authenticateToken, messagesRoutes);
|
|
|
317
317
|
app.use('/api/providers', authenticateToken, providerRoutes);
|
|
318
318
|
// A2A protocol router — has its own auth middleware, do NOT wrap with authenticateToken
|
|
319
319
|
adapterRegistry.register(new ClaudeCodeA2AAdapter());
|
|
320
|
+
adapterRegistry.register(new CodexA2AAdapter());
|
|
321
|
+
adapterRegistry.register(new CursorA2AAdapter());
|
|
322
|
+
adapterRegistry.register(new GeminiA2AAdapter());
|
|
323
|
+
adapterRegistry.register(new QwenA2AAdapter());
|
|
324
|
+
adapterRegistry.register(new OpenCodeA2AAdapter());
|
|
320
325
|
app.use('/a2a', createA2ARouter());
|
|
326
|
+
app.use('/preview', authenticateToken, createPreviewProxyRouter());
|
|
327
|
+
app.use('/api/orchestration', authenticateToken, createOrchestrationTaskRouter());
|
|
328
|
+
app.use('/api/orchestration', authenticateToken, createWorkflowRouter());
|
|
321
329
|
// Network discovery / QR endpoints (protected)
|
|
322
330
|
app.use('/api/network', authenticateToken, networkRoutes);
|
|
323
331
|
// Telegram integration (protected)
|
|
@@ -2637,6 +2645,7 @@ const SERVER_PORT = process.env.SERVER_PORT || 3001;
|
|
|
2637
2645
|
const HOST = process.env.HOST || '0.0.0.0';
|
|
2638
2646
|
const DISPLAY_HOST = getConnectableHost(HOST);
|
|
2639
2647
|
const VITE_PORT = process.env.VITE_PORT || 5173;
|
|
2648
|
+
const SEPARATE_FRONTEND = process.env.PIXCODE_SEPARATE_FRONTEND === '1';
|
|
2640
2649
|
async function isPortOpen(port, timeoutMs = 800) {
|
|
2641
2650
|
return await new Promise((resolve) => {
|
|
2642
2651
|
const socket = net.createConnection({ host: '127.0.0.1', port: Number(port) });
|
|
@@ -2675,15 +2684,25 @@ function printSystemDaemonActiveNotice(port) {
|
|
|
2675
2684
|
console.log(`${c.info('[INFO]')} Stop: ${c.bright(stopCommand)}`);
|
|
2676
2685
|
console.log(`${c.info('[INFO]')} Logs: ${c.bright(logsCommand)}`);
|
|
2677
2686
|
}
|
|
2678
|
-
function
|
|
2687
|
+
function daemonFrontendArgs() {
|
|
2688
|
+
return SEPARATE_FRONTEND
|
|
2689
|
+
? ['--frontend-port', String(VITE_PORT)]
|
|
2690
|
+
: ['--single-port'];
|
|
2691
|
+
}
|
|
2692
|
+
function daemonInstallArgs(mode) {
|
|
2693
|
+
return ['install', '--mode', mode, '--port', String(SERVER_PORT), ...daemonFrontendArgs()];
|
|
2694
|
+
}
|
|
2695
|
+
function printUserDaemonActiveNotice(port, frontendPort, frontendEnabled = SEPARATE_FRONTEND) {
|
|
2679
2696
|
const effectivePort = Number(port) || 3001;
|
|
2680
2697
|
const effectiveFrontendPort = Number(frontendPort) || 5173;
|
|
2681
2698
|
const statusCommand = buildDaemonCliCommand({ subcommand: 'status', mode: 'user' }, DAEMON_COMMAND_CONTEXT);
|
|
2682
2699
|
const stopCommand = buildDaemonCliCommand({ subcommand: 'stop', mode: 'user' }, DAEMON_COMMAND_CONTEXT);
|
|
2683
2700
|
const logsCommand = buildDaemonCliCommand({ subcommand: 'logs', mode: 'user' }, DAEMON_COMMAND_CONTEXT);
|
|
2684
2701
|
console.log(`${c.ok('[OK]')} User daemon is active for this account.`);
|
|
2685
|
-
console.log(`${c.info('[INFO]')}
|
|
2686
|
-
|
|
2702
|
+
console.log(`${c.info('[INFO]')} App URL: ${c.bright(`http://localhost:${effectivePort}`)}`);
|
|
2703
|
+
if (frontendEnabled) {
|
|
2704
|
+
console.log(`${c.info('[INFO]')} Frontend: ${c.bright(`http://localhost:${effectiveFrontendPort}`)}`);
|
|
2705
|
+
}
|
|
2687
2706
|
console.log(`${c.info('[INFO]')} Status: ${c.bright(statusCommand)}`);
|
|
2688
2707
|
console.log(`${c.info('[INFO]')} Stop: ${c.bright(stopCommand)}`);
|
|
2689
2708
|
console.log(`${c.info('[INFO]')} Logs: ${c.bright(logsCommand)}`);
|
|
@@ -2703,8 +2722,8 @@ async function maybeAutoDaemonBootstrapFromIndex() {
|
|
|
2703
2722
|
if (process.env.PIXCODE_DAEMON_ATTEMPTED === '1')
|
|
2704
2723
|
return false;
|
|
2705
2724
|
process.env.PIXCODE_DAEMON_ATTEMPTED = '1';
|
|
2706
|
-
const systemArgs =
|
|
2707
|
-
const userArgs =
|
|
2725
|
+
const systemArgs = daemonInstallArgs('system');
|
|
2726
|
+
const userArgs = daemonInstallArgs('user');
|
|
2708
2727
|
try {
|
|
2709
2728
|
console.log(`${c.info('[INFO]')} Linux detected. Enforcing system daemon mode for Pixcode...`);
|
|
2710
2729
|
await handleDaemonCommand(systemArgs, {
|
|
@@ -2726,7 +2745,7 @@ async function maybeAutoDaemonBootstrapFromIndex() {
|
|
|
2726
2745
|
const installSystemCommand = buildDaemonCliCommand({
|
|
2727
2746
|
subcommand: 'install',
|
|
2728
2747
|
mode: 'system',
|
|
2729
|
-
extraArgs: ['--port', String(SERVER_PORT),
|
|
2748
|
+
extraArgs: ['--port', String(SERVER_PORT), ...daemonFrontendArgs()],
|
|
2730
2749
|
}, DAEMON_COMMAND_CONTEXT);
|
|
2731
2750
|
throw new Error(`System daemon bootstrap failed.\n` +
|
|
2732
2751
|
`${systemError.message}\n` +
|
|
@@ -2754,12 +2773,12 @@ async function maybeAutoDaemonBootstrapFromIndex() {
|
|
|
2754
2773
|
const installSystemCommand = buildDaemonCliCommand({
|
|
2755
2774
|
subcommand: 'install',
|
|
2756
2775
|
mode: 'system',
|
|
2757
|
-
extraArgs: ['--port', String(SERVER_PORT),
|
|
2776
|
+
extraArgs: ['--port', String(SERVER_PORT), ...daemonFrontendArgs()],
|
|
2758
2777
|
}, DAEMON_COMMAND_CONTEXT);
|
|
2759
2778
|
const installUserCommand = buildDaemonCliCommand({
|
|
2760
2779
|
subcommand: 'install',
|
|
2761
2780
|
mode: 'user',
|
|
2762
|
-
extraArgs: ['--port', String(SERVER_PORT),
|
|
2781
|
+
extraArgs: ['--port', String(SERVER_PORT), ...daemonFrontendArgs()],
|
|
2763
2782
|
}, DAEMON_COMMAND_CONTEXT);
|
|
2764
2783
|
throw new Error(`System daemon bootstrap failed.\n` +
|
|
2765
2784
|
`${systemError.message}\n\n` +
|
|
@@ -2815,7 +2834,9 @@ async function startServer() {
|
|
|
2815
2834
|
if (isProduction) {
|
|
2816
2835
|
console.log(`${c.info('[INFO]')} To run in production mode, go to http://${DISPLAY_HOST}:${SERVER_PORT}`);
|
|
2817
2836
|
}
|
|
2818
|
-
|
|
2837
|
+
if (SEPARATE_FRONTEND) {
|
|
2838
|
+
console.log(`${c.info('[INFO]')} To run in development mode with hot-module replacement, go to http://${DISPLAY_HOST}:${VITE_PORT}`);
|
|
2839
|
+
}
|
|
2819
2840
|
server.listen(SERVER_PORT, HOST, async () => {
|
|
2820
2841
|
const appInstallPath = APP_ROOT;
|
|
2821
2842
|
console.log('');
|