@jingyi0605/codingns 0.3.5 → 0.4.0
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/README.md +16 -0
- package/bin/codingns.mjs +1369 -10
- package/dist/public/assets/{TerminalPage-CgrfstRm.js → TerminalPage-6jHZV9Mh.js} +17 -17
- package/dist/public/assets/index-CSVhg7I8.js +123 -0
- package/dist/public/assets/index-Ce1VX19m.css +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/opencode-base-url-resolver.d.ts +7 -0
- package/dist/server/config/opencode-base-url-resolver.js +48 -11
- package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
- package/dist/server/config/opencode-system-probe-helper-client.d.ts +4 -0
- package/dist/server/config/opencode-system-probe-helper-client.js +29 -0
- package/dist/server/config/opencode-system-probe-helper-client.js.map +1 -1
- package/dist/server/config/opencode-system-probe-helper-process.d.ts +12 -0
- package/dist/server/config/opencode-system-probe-helper-process.js +34 -7
- package/dist/server/config/opencode-system-probe-helper-process.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +317 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js +549 -1
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +330 -2
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +958 -3
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/butler/assistant-automation-service.d.ts +110 -0
- package/dist/server/modules/butler/assistant-automation-service.js +786 -0
- package/dist/server/modules/butler/assistant-automation-service.js.map +1 -0
- package/dist/server/modules/butler/assistant-automation-trigger.d.ts +94 -0
- package/dist/server/modules/butler/assistant-automation-trigger.js +400 -0
- package/dist/server/modules/butler/assistant-automation-trigger.js.map +1 -0
- package/dist/server/modules/butler/assistant-sandbox-service.d.ts +55 -0
- package/dist/server/modules/butler/assistant-sandbox-service.js +266 -0
- package/dist/server/modules/butler/assistant-sandbox-service.js.map +1 -0
- package/dist/server/modules/butler/butler-action-context-service.d.ts +4 -1
- package/dist/server/modules/butler/butler-action-context-service.js +8 -2
- package/dist/server/modules/butler/butler-action-context-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +8 -1
- package/dist/server/modules/butler/butler-control-session-service.js +154 -40
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-timer-scheduler.d.ts +32 -0
- package/dist/server/modules/butler/butler-control-timer-scheduler.js +93 -0
- package/dist/server/modules/butler/butler-control-timer-scheduler.js.map +1 -0
- package/dist/server/modules/butler/butler-control-timer-service.d.ts +42 -0
- package/dist/server/modules/butler/butler-control-timer-service.js +132 -0
- package/dist/server/modules/butler/butler-control-timer-service.js.map +1 -0
- package/dist/server/modules/butler/butler-controller.d.ts +42 -2
- package/dist/server/modules/butler/butler-controller.js +79 -12
- package/dist/server/modules/butler/butler-controller.js.map +1 -1
- package/dist/server/modules/butler/butler-follow-up-service.d.ts +9 -1
- package/dist/server/modules/butler/butler-follow-up-service.js +273 -181
- package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
- package/dist/server/modules/butler/butler-inbox-analysis-service.d.ts +4 -1
- package/dist/server/modules/butler/butler-inbox-analysis-service.js +18 -4
- package/dist/server/modules/butler/butler-inbox-analysis-service.js.map +1 -1
- package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +7 -6
- package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -1
- package/dist/server/modules/butler/butler-profile-service.js +2 -5
- package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
- package/dist/server/modules/butler/butler-project-service.d.ts +3 -1
- package/dist/server/modules/butler/butler-project-service.js +7 -1
- package/dist/server/modules/butler/butler-project-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.d.ts +3 -1
- package/dist/server/modules/butler/butler-session-service.js +12 -1
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-summary-service.js +2 -1
- package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
- package/dist/server/modules/butler/butler-workspace-context.d.ts +3 -0
- package/dist/server/modules/butler/butler-workspace-context.js +182 -51
- package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
- package/dist/server/modules/butler/patrol-execution-service.js +2 -1
- package/dist/server/modules/butler/patrol-execution-service.js.map +1 -1
- package/dist/server/modules/butler/provider-adapter-registry.d.ts +3 -0
- package/dist/server/modules/butler/provider-adapter-registry.js +18 -1
- package/dist/server/modules/butler/provider-adapter-registry.js.map +1 -1
- package/dist/server/modules/butler/verification-run-service.d.ts +9 -2
- package/dist/server/modules/butler/verification-run-service.js +188 -34
- package/dist/server/modules/butler/verification-run-service.js.map +1 -1
- package/dist/server/modules/debug-target/debug-target-controller.d.ts +13 -0
- package/dist/server/modules/debug-target/debug-target-controller.js +77 -2
- package/dist/server/modules/debug-target/debug-target-controller.js.map +1 -1
- package/dist/server/modules/debug-target/debug-target-service.d.ts +17 -3
- package/dist/server/modules/debug-target/debug-target-service.js +696 -98
- package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
- package/dist/server/modules/git/git-command-helper-client.d.ts +3 -0
- package/dist/server/modules/git/git-command-helper-client.js +71 -29
- package/dist/server/modules/git/git-command-helper-client.js.map +1 -1
- package/dist/server/modules/git/git-command-helper-process.js +62 -9
- package/dist/server/modules/git/git-command-helper-process.js.map +1 -1
- package/dist/server/modules/git/git-command-runner.d.ts +1 -0
- package/dist/server/modules/git/git-command-runner.js +44 -1
- package/dist/server/modules/git/git-command-runner.js.map +1 -1
- package/dist/server/modules/git/git-controller.js +8 -7
- package/dist/server/modules/git/git-controller.js.map +1 -1
- package/dist/server/modules/git/git-read-service.d.ts +7 -7
- package/dist/server/modules/git/git-read-service.js +41 -24
- package/dist/server/modules/git/git-read-service.js.map +1 -1
- package/dist/server/modules/model-switch/cc-switch-adapter.js +6 -2
- package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
- package/dist/server/modules/preferences/profile-service.d.ts +3 -1
- package/dist/server/modules/preferences/profile-service.js +74 -3
- package/dist/server/modules/preferences/profile-service.js.map +1 -1
- package/dist/server/modules/provider/codex-model-options.js +2 -3
- package/dist/server/modules/provider/codex-model-options.js.map +1 -1
- package/dist/server/modules/provider/opencode-model-options.js +2 -3
- package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +14 -7
- package/dist/server/modules/provider/provider-discovery-helper-client.js +208 -46
- package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js +96 -47
- package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.d.ts +4 -0
- package/dist/server/modules/provider/provider-discovery-runtime.js +145 -0
- package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -0
- package/dist/server/modules/sessions/claude-runtime-helper-client.js +23 -1
- package/dist/server/modules/sessions/claude-runtime-helper-client.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +12 -3
- package/dist/server/modules/sessions/session-history-service.js +465 -67
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -0
- package/dist/server/modules/sessions/session-live-runtime-service.js +164 -34
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-message-origin-utils.d.ts +12 -0
- package/dist/server/modules/sessions/session-message-origin-utils.js +45 -0
- package/dist/server/modules/sessions/session-message-origin-utils.js.map +1 -0
- package/dist/server/modules/sessions/session-permission-request-service.js +167 -0
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/skills/builtin-skill-service.d.ts +12 -0
- package/dist/server/modules/skills/builtin-skill-service.js +49 -0
- package/dist/server/modules/skills/builtin-skill-service.js.map +1 -0
- package/dist/server/modules/skills/builtin-skills/codingns-assistant/SKILL.md +82 -0
- package/dist/server/modules/skills/builtin-skills/codingns-assistant/agents/openai.yaml +4 -0
- package/dist/server/modules/skills/builtin-skills/codingns-assistant/references/cli-workflow.md +136 -0
- package/dist/server/modules/skills/skill-manager-service.d.ts +7 -0
- package/dist/server/modules/skills/skill-manager-service.js +98 -0
- package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
- package/dist/server/modules/tailscale/tailscale-helper-client.d.ts +1 -0
- package/dist/server/modules/tailscale/tailscale-helper-client.js +12 -0
- package/dist/server/modules/tailscale/tailscale-helper-client.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-client.d.ts +10 -2
- package/dist/server/modules/tasks/task-helper-client.js +152 -27
- package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +10 -3
- package/dist/server/modules/tasks/task-helper-process-handlers.js +7 -5
- package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-process.js +104 -3
- package/dist/server/modules/tasks/task-helper-process.js.map +1 -1
- package/dist/server/modules/tasks/task-lane-executors.js +2 -2
- package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
- package/dist/server/modules/tasks/task-types.d.ts +4 -0
- package/dist/server/modules/tasks/task-types.js +5 -1
- package/dist/server/modules/tasks/task-types.js.map +1 -1
- package/dist/server/modules/terminal/command-template-service.d.ts +11 -2
- package/dist/server/modules/terminal/command-template-service.js +91 -9
- package/dist/server/modules/terminal/command-template-service.js.map +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js.map +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +160 -11
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -1
- package/dist/server/modules/terminal/template-port-runtime.d.ts +1 -1
- package/dist/server/modules/terminal/template-port-runtime.js +87 -37
- package/dist/server/modules/terminal/template-port-runtime.js.map +1 -1
- package/dist/server/modules/terminal/terminal-controller.d.ts +3 -0
- package/dist/server/modules/terminal/terminal-controller.js +41 -0
- package/dist/server/modules/terminal/terminal-controller.js.map +1 -1
- package/dist/server/modules/terminal/terminal-service.d.ts +4 -0
- package/dist/server/modules/terminal/terminal-service.js +35 -1
- package/dist/server/modules/terminal/terminal-service.js.map +1 -1
- package/dist/server/modules/workbench/workbench-service.d.ts +3 -0
- package/dist/server/modules/workbench/workbench-service.js +7 -6
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workbench/workspace-file-watcher.d.ts +14 -6
- package/dist/server/modules/workbench/workspace-file-watcher.js +267 -57
- package/dist/server/modules/workbench/workspace-file-watcher.js.map +1 -1
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +3 -0
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +149 -41
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
- package/dist/server/modules/workspace/workspace-code-composition.d.ts +1 -0
- package/dist/server/modules/workspace/workspace-code-composition.js +183 -1
- package/dist/server/modules/workspace/workspace-code-composition.js.map +1 -1
- package/dist/server/modules/workspace/workspace-service.js +54 -17
- package/dist/server/modules/workspace/workspace-service.js.map +1 -1
- package/dist/server/modules/worktree/worktree-cleanup-service.d.ts +1 -1
- package/dist/server/modules/worktree/worktree-cleanup-service.js +22 -17
- package/dist/server/modules/worktree/worktree-cleanup-service.js.map +1 -1
- package/dist/server/modules/worktree/worktree-controller.js +6 -5
- package/dist/server/modules/worktree/worktree-controller.js.map +1 -1
- package/dist/server/modules/worktree/worktree-manager.d.ts +10 -2
- package/dist/server/modules/worktree/worktree-manager.js +35 -20
- package/dist/server/modules/worktree/worktree-manager.js.map +1 -1
- package/dist/server/modules/worktree/worktree-merge-service.d.ts +2 -2
- package/dist/server/modules/worktree/worktree-merge-service.js +34 -27
- package/dist/server/modules/worktree/worktree-merge-service.js.map +1 -1
- package/dist/server/modules/worktree/worktree-sync-service.d.ts +1 -1
- package/dist/server/modules/worktree/worktree-sync-service.js +5 -3
- package/dist/server/modules/worktree/worktree-sync-service.js.map +1 -1
- package/dist/server/routes/assistant.js +43 -0
- package/dist/server/routes/assistant.js.map +1 -1
- package/dist/server/routes/butler.js +5 -0
- package/dist/server/routes/butler.js.map +1 -1
- package/dist/server/server/create-server.d.ts +8 -0
- package/dist/server/server/create-server.js +51 -13
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/shared/http/request-abort.d.ts +2 -0
- package/dist/server/shared/http/request-abort.js +38 -0
- package/dist/server/shared/http/request-abort.js.map +1 -0
- package/dist/server/storage/repositories/assistant-automation-run-repository.d.ts +12 -0
- package/dist/server/storage/repositories/assistant-automation-run-repository.js +139 -0
- package/dist/server/storage/repositories/assistant-automation-run-repository.js.map +1 -0
- package/dist/server/storage/repositories/assistant-automation-task-repository.d.ts +15 -0
- package/dist/server/storage/repositories/assistant-automation-task-repository.js +173 -0
- package/dist/server/storage/repositories/assistant-automation-task-repository.js.map +1 -0
- package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.d.ts +17 -0
- package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js +164 -0
- package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js.map +1 -0
- package/dist/server/storage/repositories/butler-control-session-repository.js +27 -3
- package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
- package/dist/server/storage/repositories/butler-control-timer-repository.d.ts +15 -0
- package/dist/server/storage/repositories/butler-control-timer-repository.js +157 -0
- package/dist/server/storage/repositories/butler-control-timer-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
- package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
- package/dist/server/storage/sqlite/client.js +239 -2
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +107 -1
- package/dist/server/types/domain.d.ts +89 -2
- package/dist/server/ws/workbench-ws-hub.d.ts +14 -7
- package/dist/server/ws/workbench-ws-hub.js +316 -158
- package/dist/server/ws/workbench-ws-hub.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +4 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +111 -3
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +6 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +306 -31
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +5 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +187 -26
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +4 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +98 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +2 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +71 -8
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +4 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +44 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +9 -3
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/services.js +17 -8
- package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/types.d.ts +4 -0
- package/package.json +1 -1
- package/scripts/postinstall.mjs +33 -0
- package/dist/public/assets/index-Cek6u0b9.css +0 -1
- package/dist/public/assets/index-THHY79si.js +0 -122
|
@@ -4,10 +4,17 @@ import path from "node:path";
|
|
|
4
4
|
import readline from "node:readline";
|
|
5
5
|
import Database from "better-sqlite3";
|
|
6
6
|
import { parseCliArgs, readRequiredCliArg } from "./conpty-runtime-shared.js";
|
|
7
|
+
const SQLITE_BUSY_TIMEOUT_MS = 250;
|
|
8
|
+
const SQLITE_BUSY_RETRY_DELAYS_MS = [100, 200, 400, 800, 1_200, 1_600];
|
|
9
|
+
const SQLITE_SLOW_OPERATION_THRESHOLD_MS = 200;
|
|
7
10
|
const cliArgs = parseCliArgs(process.argv.slice(2));
|
|
8
11
|
const databasePath = readRequiredCliArg(cliArgs, "database-path");
|
|
9
12
|
const logRootDir = path.resolve(readRequiredCliArg(cliArgs, "log-root-dir"));
|
|
10
13
|
const db = new Database(databasePath);
|
|
14
|
+
// writer 子进程自己负责短超时和显式重试,避免 SQLite 在单次写入里闷等 5 秒。
|
|
15
|
+
db.pragma("journal_mode = WAL");
|
|
16
|
+
db.pragma("foreign_keys = ON");
|
|
17
|
+
db.pragma(`busy_timeout = ${SQLITE_BUSY_TIMEOUT_MS}`);
|
|
11
18
|
const ensuredDirectories = new Set();
|
|
12
19
|
const findActiveFileStatement = db.prepare(`SELECT
|
|
13
20
|
id,
|
|
@@ -50,21 +57,27 @@ const deleteSegmentsStatement = db.prepare(`DELETE FROM terminal_log_segments
|
|
|
50
57
|
WHERE terminal_id = ?`);
|
|
51
58
|
const deleteFilesStatement = db.prepare(`DELETE FROM terminal_log_files
|
|
52
59
|
WHERE terminal_id = ?`);
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
let activeFile = findActiveFileStatement.get(input.terminalId);
|
|
60
|
+
const preparePersistBatchTransaction = db.transaction((terminalId, startSeq, timestamp) => {
|
|
61
|
+
let activeFile = findActiveFileStatement.get(terminalId);
|
|
56
62
|
if (!activeFile) {
|
|
57
63
|
activeFile = {
|
|
58
64
|
id: randomUUID(),
|
|
59
|
-
relative_path: buildActiveRelativePath(
|
|
65
|
+
relative_path: buildActiveRelativePath(terminalId),
|
|
60
66
|
status: "active",
|
|
61
67
|
size_bytes: 0
|
|
62
68
|
};
|
|
63
|
-
createFileStatement.run(activeFile.id,
|
|
69
|
+
createFileStatement.run(activeFile.id, terminalId, activeFile.relative_path, activeFile.status, startSeq, null, 0, timestamp, timestamp);
|
|
64
70
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
return {
|
|
72
|
+
id: activeFile.id,
|
|
73
|
+
relativePath: activeFile.relative_path,
|
|
74
|
+
status: activeFile.status,
|
|
75
|
+
sizeBytes: activeFile.size_bytes
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
const commitPersistBatchTransaction = db.transaction((input) => {
|
|
79
|
+
createSegmentStatement.run(randomUUID(), input.terminalId, input.fileId, input.startSeq, input.endSeq, input.appendResult.startOffset, input.appendResult.endOffset, input.appendResult.byteLength, input.timestamp);
|
|
80
|
+
updateFileStatement.run(input.fileStatus, input.endSeq, input.appendResult.endOffset, input.timestamp, input.fileId);
|
|
68
81
|
});
|
|
69
82
|
const deleteTerminalLogsTransaction = db.transaction((terminalId) => {
|
|
70
83
|
deleteSegmentsStatement.run(terminalId);
|
|
@@ -99,7 +112,7 @@ async function handleLine(line) {
|
|
|
99
112
|
try {
|
|
100
113
|
switch (payload.type) {
|
|
101
114
|
case "persist":
|
|
102
|
-
|
|
115
|
+
await handlePersistRequest(payload);
|
|
103
116
|
await writeResult({
|
|
104
117
|
type: "result",
|
|
105
118
|
id: payload.id,
|
|
@@ -107,8 +120,7 @@ async function handleLine(line) {
|
|
|
107
120
|
});
|
|
108
121
|
return;
|
|
109
122
|
case "delete":
|
|
110
|
-
|
|
111
|
-
deleteTerminalDirectory(payload.terminalId);
|
|
123
|
+
await handleDeleteRequest(payload);
|
|
112
124
|
await writeResult({
|
|
113
125
|
type: "result",
|
|
114
126
|
id: payload.id,
|
|
@@ -136,6 +148,116 @@ async function handleLine(line) {
|
|
|
136
148
|
});
|
|
137
149
|
}
|
|
138
150
|
}
|
|
151
|
+
async function handlePersistRequest(payload) {
|
|
152
|
+
const requestStartedAt = Date.now();
|
|
153
|
+
const timestamp = new Date().toISOString();
|
|
154
|
+
const prepareResult = await runSqliteBusyRetry(payload.id, payload.terminalId, "prepare", () => preparePersistBatchTransaction(payload.terminalId, payload.startSeq, timestamp));
|
|
155
|
+
const appendStartedAt = Date.now();
|
|
156
|
+
const appendResult = appendLogFile(prepareResult.value.relativePath, payload.content, prepareResult.value.sizeBytes);
|
|
157
|
+
const appendDurationMs = Date.now() - appendStartedAt;
|
|
158
|
+
const commitResult = await runSqliteBusyRetry(payload.id, payload.terminalId, "commit", () => commitPersistBatchTransaction({
|
|
159
|
+
terminalId: payload.terminalId,
|
|
160
|
+
fileId: prepareResult.value.id,
|
|
161
|
+
fileStatus: prepareResult.value.status,
|
|
162
|
+
startSeq: payload.startSeq,
|
|
163
|
+
endSeq: payload.endSeq,
|
|
164
|
+
appendResult,
|
|
165
|
+
timestamp
|
|
166
|
+
}));
|
|
167
|
+
const totalDurationMs = Date.now() - requestStartedAt;
|
|
168
|
+
if (prepareResult.busyRetryCount > 0
|
|
169
|
+
|| commitResult.busyRetryCount > 0
|
|
170
|
+
|| appendDurationMs >= SQLITE_SLOW_OPERATION_THRESHOLD_MS
|
|
171
|
+
|| totalDurationMs >= SQLITE_SLOW_OPERATION_THRESHOLD_MS) {
|
|
172
|
+
logWriterWarning("persist.completed", {
|
|
173
|
+
requestId: payload.id,
|
|
174
|
+
terminalId: payload.terminalId,
|
|
175
|
+
totalDurationMs,
|
|
176
|
+
appendDurationMs,
|
|
177
|
+
prepareAttempts: prepareResult.attempts,
|
|
178
|
+
prepareBusyRetries: prepareResult.busyRetryCount,
|
|
179
|
+
prepareBusyWaitMs: prepareResult.busyWaitMs,
|
|
180
|
+
prepareDurationMs: prepareResult.durationMs,
|
|
181
|
+
commitAttempts: commitResult.attempts,
|
|
182
|
+
commitBusyRetries: commitResult.busyRetryCount,
|
|
183
|
+
commitBusyWaitMs: commitResult.busyWaitMs,
|
|
184
|
+
commitDurationMs: commitResult.durationMs
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
async function handleDeleteRequest(payload) {
|
|
189
|
+
const requestStartedAt = Date.now();
|
|
190
|
+
const deleteResult = await runSqliteBusyRetry(payload.id, payload.terminalId, "delete", () => deleteTerminalLogsTransaction(payload.terminalId));
|
|
191
|
+
const deleteDirectoryStartedAt = Date.now();
|
|
192
|
+
deleteTerminalDirectory(payload.terminalId);
|
|
193
|
+
const deleteDirectoryDurationMs = Date.now() - deleteDirectoryStartedAt;
|
|
194
|
+
const totalDurationMs = Date.now() - requestStartedAt;
|
|
195
|
+
if (deleteResult.busyRetryCount > 0
|
|
196
|
+
|| deleteDirectoryDurationMs >= SQLITE_SLOW_OPERATION_THRESHOLD_MS
|
|
197
|
+
|| totalDurationMs >= SQLITE_SLOW_OPERATION_THRESHOLD_MS) {
|
|
198
|
+
logWriterWarning("delete.completed", {
|
|
199
|
+
requestId: payload.id,
|
|
200
|
+
terminalId: payload.terminalId,
|
|
201
|
+
totalDurationMs,
|
|
202
|
+
deleteDirectoryDurationMs,
|
|
203
|
+
deleteAttempts: deleteResult.attempts,
|
|
204
|
+
deleteBusyRetries: deleteResult.busyRetryCount,
|
|
205
|
+
deleteBusyWaitMs: deleteResult.busyWaitMs,
|
|
206
|
+
deleteDurationMs: deleteResult.durationMs
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
async function runSqliteBusyRetry(requestId, terminalId, phase, operation) {
|
|
211
|
+
const startedAt = Date.now();
|
|
212
|
+
let attempts = 0;
|
|
213
|
+
let busyRetryCount = 0;
|
|
214
|
+
let busyWaitMs = 0;
|
|
215
|
+
while (true) {
|
|
216
|
+
attempts += 1;
|
|
217
|
+
const attemptStartedAt = Date.now();
|
|
218
|
+
try {
|
|
219
|
+
const value = operation();
|
|
220
|
+
return {
|
|
221
|
+
value,
|
|
222
|
+
attempts,
|
|
223
|
+
busyRetryCount,
|
|
224
|
+
busyWaitMs,
|
|
225
|
+
durationMs: Date.now() - startedAt
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
if (!isSqliteBusyError(error)) {
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
const retryDelayMs = SQLITE_BUSY_RETRY_DELAYS_MS[busyRetryCount];
|
|
233
|
+
if (retryDelayMs === undefined) {
|
|
234
|
+
throw error;
|
|
235
|
+
}
|
|
236
|
+
busyRetryCount += 1;
|
|
237
|
+
busyWaitMs += retryDelayMs;
|
|
238
|
+
logWriterWarning("sqlite.busy.retry", {
|
|
239
|
+
requestId,
|
|
240
|
+
terminalId,
|
|
241
|
+
phase,
|
|
242
|
+
attempt: attempts,
|
|
243
|
+
busyRetryCount,
|
|
244
|
+
busyTimeoutMs: SQLITE_BUSY_TIMEOUT_MS,
|
|
245
|
+
attemptDurationMs: Date.now() - attemptStartedAt,
|
|
246
|
+
elapsedMs: Date.now() - startedAt,
|
|
247
|
+
nextDelayMs: retryDelayMs,
|
|
248
|
+
error: error instanceof Error ? error.message : String(error)
|
|
249
|
+
});
|
|
250
|
+
await delay(retryDelayMs);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function isSqliteBusyError(error) {
|
|
255
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
256
|
+
return message.includes("database is locked") || message.includes("SQLITE_BUSY");
|
|
257
|
+
}
|
|
258
|
+
async function delay(ms) {
|
|
259
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
260
|
+
}
|
|
139
261
|
function appendLogFile(relativePath, content, currentSizeBytes) {
|
|
140
262
|
const filePath = resolveLogPath(relativePath);
|
|
141
263
|
const directoryPath = path.dirname(filePath);
|
|
@@ -166,6 +288,33 @@ function resolveLogPath(relativePath) {
|
|
|
166
288
|
}
|
|
167
289
|
return resolvedPath;
|
|
168
290
|
}
|
|
291
|
+
function logWriterWarning(scope, detail) {
|
|
292
|
+
const suffix = Object.entries(detail)
|
|
293
|
+
.filter(([, value]) => value !== undefined)
|
|
294
|
+
.map(([key, value]) => `${key}=${formatWriterLogValue(value)}`)
|
|
295
|
+
.join(" ");
|
|
296
|
+
console.warn(`[terminal-log-writer] ${scope}${suffix ? ` ${suffix}` : ""}`);
|
|
297
|
+
}
|
|
298
|
+
function formatWriterLogValue(value) {
|
|
299
|
+
if (typeof value === "string") {
|
|
300
|
+
return JSON.stringify(value);
|
|
301
|
+
}
|
|
302
|
+
if (typeof value === "number") {
|
|
303
|
+
return Number.isFinite(value) ? String(Math.round(value)) : String(value);
|
|
304
|
+
}
|
|
305
|
+
if (typeof value === "boolean") {
|
|
306
|
+
return value ? "true" : "false";
|
|
307
|
+
}
|
|
308
|
+
if (value === null) {
|
|
309
|
+
return "null";
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
return JSON.stringify(value);
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
return String(value);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
169
318
|
async function writeResult(payload) {
|
|
170
319
|
await new Promise((resolve, reject) => {
|
|
171
320
|
process.stdout.write(`${JSON.stringify(payload)}\n`, (error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-log-writer-process.js","sourceRoot":"","sources":["../../../../../src/modules/terminal/runtime/terminal-log-writer-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-log-writer-process.js","sourceRoot":"","sources":["../../../../../src/modules/terminal/runtime/terminal-log-writer-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAqD9E,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAChF,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAE/C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7E,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEtC,iDAAiD;AACjD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC/B,EAAE,CAAC,MAAM,CAAC,kBAAkB,sBAAsB,EAAE,CAAC,CAAC;AAEtD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC7C,MAAM,uBAAuB,GAAG,EAAE,CAAC,OAAO,CACxC;;;;;;;;WAQS,CACV,CAAC;AACF,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CACpC;;;;;;;;;;wCAUsC,CACvC,CAAC;AACF,MAAM,sBAAsB,GAAG,EAAE,CAAC,OAAO,CACvC;;;;;;;;;;wCAUsC,CACvC,CAAC;AACF,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CACpC;;;;;gBAKc,CACf,CAAC;AACF,MAAM,uBAAuB,GAAG,EAAE,CAAC,OAAO,CACxC;yBACuB,CACxB,CAAC;AACF,MAAM,oBAAoB,GAAG,EAAE,CAAC,OAAO,CACrC;yBACuB,CACxB,CAAC;AACF,MAAM,8BAA8B,GAAG,EAAE,CAAC,WAAW,CAAC,CACpD,UAAkB,EAClB,QAAgB,EAChB,SAAiB,EACM,EAAE;IACzB,IAAI,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAO1C,CAAC;IAEd,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG;YACX,EAAE,EAAE,UAAU,EAAE;YAChB,aAAa,EAAE,uBAAuB,CAAC,UAAU,CAAC;YAClD,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,mBAAmB,CAAC,GAAG,CACrB,UAAU,CAAC,EAAE,EACb,UAAU,EACV,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,MAAM,EACjB,QAAQ,EACR,IAAI,EACJ,CAAC,EACD,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,YAAY,EAAE,UAAU,CAAC,aAAa;QACtC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,SAAS,EAAE,UAAU,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,MAAM,6BAA6B,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,KAA8B,EAAE,EAAE;IACtF,sBAAsB,CAAC,GAAG,CACxB,UAAU,EAAE,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,CAAC,WAAW,EAC9B,KAAK,CAAC,YAAY,CAAC,SAAS,EAC5B,KAAK,CAAC,YAAY,CAAC,UAAU,EAC7B,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,mBAAmB,CAAC,GAAG,CACrB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,CAAC,SAAS,EAC5B,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,MAAM,6BAA6B,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,UAAkB,EAAE,EAAE;IAC1E,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC;IAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAE9B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,QAAQ,EAAE,CAAC;AACb,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,QAAQ,EAAE,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,OAAsB,CAAC;IAE3B,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,SAAS;gBACZ,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,WAAW,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,QAAQ;gBACX,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACnC,MAAM,WAAW,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,UAAU;gBACb,MAAM,WAAW,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;gBACH,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT;gBACE,OAAO;QACX,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,CAAC;YAChB,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAuB;IACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAC5C,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,UAAU,EAClB,SAAS,EACT,GAAG,EAAE,CAAC,8BAA8B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtF,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,aAAa,CAChC,aAAa,CAAC,KAAK,CAAC,YAAY,EAChC,OAAO,CAAC,OAAO,EACf,aAAa,CAAC,KAAK,CAAC,SAAS,CAC9B,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IACtD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,UAAU,EAClB,QAAQ,EACR,GAAG,EAAE,CAAC,6BAA6B,CAAC;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE;QAC9B,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY;QACZ,SAAS;KACV,CAAC,CACH,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;IAEtD,IACE,aAAa,CAAC,cAAc,GAAG,CAAC;WAC7B,YAAY,CAAC,cAAc,GAAG,CAAC;WAC/B,gBAAgB,IAAI,kCAAkC;WACtD,eAAe,IAAI,kCAAkC,EACxD,CAAC;QACD,gBAAgB,CAAC,mBAAmB,EAAE;YACpC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,eAAe;YACf,gBAAgB;YAChB,eAAe,EAAE,aAAa,CAAC,QAAQ;YACvC,kBAAkB,EAAE,aAAa,CAAC,cAAc;YAChD,iBAAiB,EAAE,aAAa,CAAC,UAAU;YAC3C,iBAAiB,EAAE,aAAa,CAAC,UAAU;YAC3C,cAAc,EAAE,YAAY,CAAC,QAAQ;YACrC,iBAAiB,EAAE,YAAY,CAAC,cAAc;YAC9C,gBAAgB,EAAE,YAAY,CAAC,UAAU;YACzC,gBAAgB,EAAE,YAAY,CAAC,UAAU;SAC1C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OAAsB;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,UAAU,EAClB,QAAQ,EACR,GAAG,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,UAAU,CAAC,CACxD,CAAC;IACF,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE5C,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB,CAAC;IACxE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;IAEtD,IACE,YAAY,CAAC,cAAc,GAAG,CAAC;WAC5B,yBAAyB,IAAI,kCAAkC;WAC/D,eAAe,IAAI,kCAAkC,EACxD,CAAC;QACD,gBAAgB,CAAC,kBAAkB,EAAE;YACnC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,eAAe;YACf,yBAAyB;YACzB,cAAc,EAAE,YAAY,CAAC,QAAQ;YACrC,iBAAiB,EAAE,YAAY,CAAC,cAAc;YAC9C,gBAAgB,EAAE,YAAY,CAAC,UAAU;YACzC,gBAAgB,EAAE,YAAY,CAAC,UAAU;SAC1C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,SAAiB,EACjB,UAAkB,EAClB,KAAa,EACb,SAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,OAAO,IAAI,EAAE,CAAC;QACZ,QAAQ,IAAI,CAAC,CAAC;QACd,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;YAE1B,OAAO;gBACL,KAAK;gBACL,QAAQ;gBACR,cAAc;gBACd,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,YAAY,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;YAEjE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,cAAc,IAAI,CAAC,CAAC;YACpB,UAAU,IAAI,YAAY,CAAC;YAC3B,gBAAgB,CAAC,mBAAmB,EAAE;gBACpC,SAAS;gBACT,UAAU;gBACV,KAAK;gBACL,OAAO,EAAE,QAAQ;gBACjB,cAAc;gBACd,aAAa,EAAE,sBAAsB;gBACrC,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;gBAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACjC,WAAW,EAAE,YAAY;gBACzB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,EAAU;IAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CACpB,YAAoB,EACpB,OAAe,EACf,gBAAwB;IAMxB,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtD,OAAO;QACL,WAAW,EAAE,gBAAgB;QAC7B,SAAS,EAAE,gBAAgB,GAAG,UAAU;QACxC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC/C,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,YAAoB;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE5D,IAAI,YAAY,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,MAA+B;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CAAC,IAAI,CAAC,yBAAyB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAK1B;IACC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ;IACf,WAAW,CAAC,KAAK,EAAE,CAAC;IAEpB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -12,6 +12,6 @@ interface PortProcessInfo {
|
|
|
12
12
|
export declare function discoverTemplateRuntimeStatuses(items: Array<{
|
|
13
13
|
templateId: string;
|
|
14
14
|
port: number;
|
|
15
|
-
}
|
|
15
|
+
}>, signal?: AbortSignal): Promise<TerminalTemplateRuntimeStatus[]>;
|
|
16
16
|
export declare function terminateRuntimeProcess(processInfo: PortProcessInfo): Promise<void>;
|
|
17
17
|
export {};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
export async function discoverTemplateRuntimeStatuses(items) {
|
|
3
|
+
export async function discoverTemplateRuntimeStatuses(items, signal) {
|
|
4
|
+
throwIfAborted(signal);
|
|
4
5
|
const uniquePorts = [...new Set(items.map((item) => item.port))];
|
|
5
6
|
const processInfoByPort = new Map();
|
|
6
7
|
await Promise.all(uniquePorts.map(async (port) => {
|
|
7
|
-
processInfoByPort.set(port, await findPortProcess(port));
|
|
8
|
+
processInfoByPort.set(port, await findPortProcess(port, signal));
|
|
8
9
|
}));
|
|
10
|
+
throwIfAborted(signal);
|
|
9
11
|
return items.map((item) => {
|
|
10
12
|
const processInfo = processInfoByPort.get(item.port) ?? null;
|
|
11
13
|
return {
|
|
@@ -65,13 +67,14 @@ export async function terminateRuntimeProcess(processInfo) {
|
|
|
65
67
|
await waitForProcessExit(processInfo.processId, 1500);
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
|
-
async function findPortProcess(port) {
|
|
70
|
+
async function findPortProcess(port, signal) {
|
|
71
|
+
throwIfAborted(signal);
|
|
69
72
|
if (process.platform === "win32") {
|
|
70
|
-
return await findWindowsPortProcess(port);
|
|
73
|
+
return await findWindowsPortProcess(port, signal);
|
|
71
74
|
}
|
|
72
|
-
return await findPosixPortProcess(port);
|
|
75
|
+
return await findPosixPortProcess(port, signal);
|
|
73
76
|
}
|
|
74
|
-
async function findWindowsPortProcess(port) {
|
|
77
|
+
async function findWindowsPortProcess(port, signal) {
|
|
75
78
|
const shellPath = process.env.SYSTEMROOT
|
|
76
79
|
? path.join(process.env.SYSTEMROOT, "System32", "WindowsPowerShell", "v1.0", "powershell.exe")
|
|
77
80
|
: "powershell.exe";
|
|
@@ -90,7 +93,7 @@ async function findWindowsPortProcess(port) {
|
|
|
90
93
|
"Bypass",
|
|
91
94
|
"-Command",
|
|
92
95
|
script
|
|
93
|
-
]);
|
|
96
|
+
], signal);
|
|
94
97
|
if (!stdout?.trim()) {
|
|
95
98
|
return null;
|
|
96
99
|
}
|
|
@@ -99,7 +102,7 @@ async function findWindowsPortProcess(port) {
|
|
|
99
102
|
return null;
|
|
100
103
|
}
|
|
101
104
|
const parentProcessId = normalizeOptionalPositiveInteger(parsed.ParentProcessId);
|
|
102
|
-
const parentProcess = parentProcessId ? await lookupWindowsProcess(parentProcessId) : null;
|
|
105
|
+
const parentProcess = parentProcessId ? await lookupWindowsProcess(parentProcessId, signal) : null;
|
|
103
106
|
return {
|
|
104
107
|
processId: parsed.ProcessId,
|
|
105
108
|
parentProcessId,
|
|
@@ -111,17 +114,17 @@ async function findWindowsPortProcess(port) {
|
|
|
111
114
|
terminationScope: "process"
|
|
112
115
|
};
|
|
113
116
|
}
|
|
114
|
-
async function findPosixPortProcess(port) {
|
|
117
|
+
async function findPosixPortProcess(port, signal) {
|
|
115
118
|
if (process.platform === "linux") {
|
|
116
|
-
const ssInfo = await findLinuxPortProcessWithSs(port);
|
|
119
|
+
const ssInfo = await findLinuxPortProcessWithSs(port, signal);
|
|
117
120
|
if (ssInfo) {
|
|
118
121
|
return ssInfo;
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
|
-
return await findPosixPortProcessWithLsof(port);
|
|
124
|
+
return await findPosixPortProcessWithLsof(port, signal);
|
|
122
125
|
}
|
|
123
|
-
async function findLinuxPortProcessWithSs(port) {
|
|
124
|
-
const stdout = await tryRunProcess("ss", ["-ltnp"]);
|
|
126
|
+
async function findLinuxPortProcessWithSs(port, signal) {
|
|
127
|
+
const stdout = await tryRunProcess("ss", ["-ltnp"], signal);
|
|
125
128
|
if (!stdout) {
|
|
126
129
|
return null;
|
|
127
130
|
}
|
|
@@ -138,17 +141,17 @@ async function findLinuxPortProcessWithSs(port) {
|
|
|
138
141
|
if (!Number.isInteger(processId) || processId <= 0) {
|
|
139
142
|
continue;
|
|
140
143
|
}
|
|
141
|
-
return await enrichPosixProcess(processId, processName);
|
|
144
|
+
return await enrichPosixProcess(processId, processName, signal);
|
|
142
145
|
}
|
|
143
146
|
return null;
|
|
144
147
|
}
|
|
145
|
-
async function findPosixPortProcessWithLsof(port) {
|
|
148
|
+
async function findPosixPortProcessWithLsof(port, signal) {
|
|
146
149
|
const stdout = await tryRunProcess("lsof", [
|
|
147
150
|
"-nP",
|
|
148
151
|
`-iTCP:${port}`,
|
|
149
152
|
"-sTCP:LISTEN",
|
|
150
153
|
"-Fpct"
|
|
151
|
-
]);
|
|
154
|
+
], signal);
|
|
152
155
|
if (!stdout) {
|
|
153
156
|
return null;
|
|
154
157
|
}
|
|
@@ -164,18 +167,18 @@ async function findPosixPortProcessWithLsof(port) {
|
|
|
164
167
|
processName = line.slice(1).trim() || null;
|
|
165
168
|
}
|
|
166
169
|
if (processId) {
|
|
167
|
-
return await enrichPosixProcess(processId, processName);
|
|
170
|
+
return await enrichPosixProcess(processId, processName, signal);
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
return null;
|
|
171
174
|
}
|
|
172
|
-
async function enrichPosixProcess(processId, fallbackName) {
|
|
173
|
-
const currentProcess = await lookupPosixProcess(processId, fallbackName);
|
|
175
|
+
async function enrichPosixProcess(processId, fallbackName, signal) {
|
|
176
|
+
const currentProcess = await lookupPosixProcess(processId, fallbackName, signal);
|
|
174
177
|
if (!currentProcess) {
|
|
175
178
|
return null;
|
|
176
179
|
}
|
|
177
180
|
const parentProcess = currentProcess.parentProcessId !== null
|
|
178
|
-
? await lookupPosixProcess(currentProcess.parentProcessId, null)
|
|
181
|
+
? await lookupPosixProcess(currentProcess.parentProcessId, null, signal)
|
|
179
182
|
: null;
|
|
180
183
|
return {
|
|
181
184
|
processId: currentProcess.processId,
|
|
@@ -188,15 +191,18 @@ async function enrichPosixProcess(processId, fallbackName) {
|
|
|
188
191
|
terminationScope: currentProcess.processGroupId ? "process_group" : "process"
|
|
189
192
|
};
|
|
190
193
|
}
|
|
191
|
-
async function tryRunProcess(command, args) {
|
|
194
|
+
async function tryRunProcess(command, args, signal) {
|
|
192
195
|
try {
|
|
193
|
-
return await runProcess(command, args);
|
|
196
|
+
return await runProcess(command, args, signal);
|
|
194
197
|
}
|
|
195
|
-
catch {
|
|
198
|
+
catch (error) {
|
|
199
|
+
if (isAbortError(error)) {
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
196
202
|
return null;
|
|
197
203
|
}
|
|
198
204
|
}
|
|
199
|
-
async function runProcess(command, args) {
|
|
205
|
+
async function runProcess(command, args, signal) {
|
|
200
206
|
return await new Promise((resolve, reject) => {
|
|
201
207
|
const child = spawn(command, args, {
|
|
202
208
|
windowsHide: true,
|
|
@@ -204,31 +210,64 @@ async function runProcess(command, args) {
|
|
|
204
210
|
});
|
|
205
211
|
let stdout = "";
|
|
206
212
|
let stderr = "";
|
|
213
|
+
let settled = false;
|
|
214
|
+
let onAbort = null;
|
|
215
|
+
const finish = (callback) => {
|
|
216
|
+
if (settled) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
settled = true;
|
|
220
|
+
if (signal && onAbort) {
|
|
221
|
+
signal.removeEventListener("abort", onAbort);
|
|
222
|
+
}
|
|
223
|
+
callback();
|
|
224
|
+
};
|
|
225
|
+
if (signal) {
|
|
226
|
+
onAbort = () => {
|
|
227
|
+
if (!child.killed) {
|
|
228
|
+
child.kill("SIGTERM");
|
|
229
|
+
}
|
|
230
|
+
finish(() => {
|
|
231
|
+
reject(signal.reason ?? new Error("template runtime discovery aborted"));
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
if (signal.aborted) {
|
|
235
|
+
onAbort();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
239
|
+
}
|
|
207
240
|
child.stdout.on("data", (chunk) => {
|
|
208
241
|
stdout += String(chunk);
|
|
209
242
|
});
|
|
210
243
|
child.stderr.on("data", (chunk) => {
|
|
211
244
|
stderr += String(chunk);
|
|
212
245
|
});
|
|
213
|
-
child.on("error",
|
|
246
|
+
child.on("error", (error) => {
|
|
247
|
+
finish(() => {
|
|
248
|
+
reject(error);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
214
251
|
child.on("close", (exitCode) => {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
252
|
+
finish(() => {
|
|
253
|
+
if (exitCode !== 0) {
|
|
254
|
+
reject(new Error(stderr.trim() || `${command} exited with code ${exitCode ?? "unknown"}`));
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
resolve(stdout);
|
|
258
|
+
});
|
|
220
259
|
});
|
|
221
260
|
});
|
|
222
261
|
}
|
|
223
|
-
async function lookupPosixProcess(processId, fallbackName) {
|
|
262
|
+
async function lookupPosixProcess(processId, fallbackName, signal) {
|
|
224
263
|
if (!Number.isInteger(processId) || processId <= 0) {
|
|
225
264
|
return null;
|
|
226
265
|
}
|
|
227
266
|
const [parentProcessIdText, processGroupIdText, processNameText, processCommandLine] = await Promise.all([
|
|
228
|
-
tryRunProcess("ps", ["-p", String(processId), "-o", "ppid="]),
|
|
229
|
-
tryRunProcess("ps", ["-p", String(processId), "-o", "pgid="]),
|
|
230
|
-
tryRunProcess("ps", ["-p", String(processId), "-o", "comm="]),
|
|
231
|
-
tryRunProcess("ps", ["-p", String(processId), "-o", "args="])
|
|
267
|
+
tryRunProcess("ps", ["-p", String(processId), "-o", "ppid="], signal),
|
|
268
|
+
tryRunProcess("ps", ["-p", String(processId), "-o", "pgid="], signal),
|
|
269
|
+
tryRunProcess("ps", ["-p", String(processId), "-o", "comm="], signal),
|
|
270
|
+
tryRunProcess("ps", ["-p", String(processId), "-o", "args="], signal)
|
|
232
271
|
]);
|
|
233
272
|
const processName = processNameText?.trim() || fallbackName;
|
|
234
273
|
const commandLine = processCommandLine?.trim() || null;
|
|
@@ -296,7 +335,7 @@ async function waitForProcessGroupExit(processGroupId, timeoutMs) {
|
|
|
296
335
|
});
|
|
297
336
|
}
|
|
298
337
|
}
|
|
299
|
-
async function lookupWindowsProcess(processId) {
|
|
338
|
+
async function lookupWindowsProcess(processId, signal) {
|
|
300
339
|
const shellPath = process.env.SYSTEMROOT
|
|
301
340
|
? path.join(process.env.SYSTEMROOT, "System32", "WindowsPowerShell", "v1.0", "powershell.exe")
|
|
302
341
|
: "powershell.exe";
|
|
@@ -313,7 +352,7 @@ async function lookupWindowsProcess(processId) {
|
|
|
313
352
|
"Bypass",
|
|
314
353
|
"-Command",
|
|
315
354
|
script
|
|
316
|
-
]);
|
|
355
|
+
], signal);
|
|
317
356
|
if (!stdout?.trim()) {
|
|
318
357
|
return null;
|
|
319
358
|
}
|
|
@@ -368,4 +407,15 @@ function normalizeOptionalPositiveInteger(value) {
|
|
|
368
407
|
const parsed = Number(trimmed);
|
|
369
408
|
return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
|
|
370
409
|
}
|
|
410
|
+
function throwIfAborted(signal) {
|
|
411
|
+
if (signal?.aborted) {
|
|
412
|
+
throw signal.reason ?? new Error("template runtime discovery aborted");
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
function isAbortError(error) {
|
|
416
|
+
if (!(error instanceof Error)) {
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
return error.name === "AbortError" || error.message.includes("aborted");
|
|
420
|
+
}
|
|
371
421
|
//# sourceMappingURL=template-port-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-port-runtime.js","sourceRoot":"","sources":["../../../../src/modules/terminal/template-port-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template-port-runtime.js","sourceRoot":"","sources":["../../../../src/modules/terminal/template-port-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,9 @@ interface RunTemplateBody {
|
|
|
42
42
|
terminalId?: string;
|
|
43
43
|
shell?: string;
|
|
44
44
|
runtimeType?: string;
|
|
45
|
+
argsOverride?: string[];
|
|
46
|
+
envPatch?: Record<string, string>;
|
|
47
|
+
portOverride?: number | null;
|
|
45
48
|
}
|
|
46
49
|
export declare class TerminalController {
|
|
47
50
|
private readonly terminalService;
|
|
@@ -142,6 +142,9 @@ export class TerminalController {
|
|
|
142
142
|
terminalId: request.body.terminalId?.trim(),
|
|
143
143
|
shell: request.body.shell?.trim(),
|
|
144
144
|
runtimeType: normalizeRuntimeType(request.body.runtimeType),
|
|
145
|
+
argsOverride: normalizeOptionalArgs(request.body.argsOverride),
|
|
146
|
+
envPatch: normalizeOptionalEnv(request.body.envPatch),
|
|
147
|
+
portOverride: normalizeOptionalPort(request.body.portOverride),
|
|
145
148
|
userId: request.auth.user.userId
|
|
146
149
|
}));
|
|
147
150
|
};
|
|
@@ -163,6 +166,44 @@ function normalizeArgs(input) {
|
|
|
163
166
|
}
|
|
164
167
|
return input;
|
|
165
168
|
}
|
|
169
|
+
function normalizeOptionalArgs(input) {
|
|
170
|
+
if (input === undefined) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
return normalizeArgs(input);
|
|
174
|
+
}
|
|
175
|
+
function normalizeOptionalEnv(input) {
|
|
176
|
+
if (input === undefined) {
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
180
|
+
throw new AppError({
|
|
181
|
+
statusCode: 400,
|
|
182
|
+
errorCode: "INVALID_INPUT",
|
|
183
|
+
detail: "envPatch 必须是对象",
|
|
184
|
+
field: "envPatch"
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
const result = {};
|
|
188
|
+
for (const [key, value] of Object.entries(input)) {
|
|
189
|
+
if (typeof value !== "string") {
|
|
190
|
+
throw new AppError({
|
|
191
|
+
statusCode: 400,
|
|
192
|
+
errorCode: "INVALID_INPUT",
|
|
193
|
+
detail: "envPatch 的值必须是字符串",
|
|
194
|
+
field: `envPatch.${key}`
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
result[key] = value;
|
|
198
|
+
}
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
201
|
+
function normalizeOptionalPort(input) {
|
|
202
|
+
if (input === undefined) {
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
return normalizePort(input);
|
|
206
|
+
}
|
|
166
207
|
function normalizeRuntimeType(input) {
|
|
167
208
|
if (input === undefined) {
|
|
168
209
|
return undefined;
|