clawconnect-agent 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.env.example +22 -2
  2. package/README.md +8 -0
  3. package/README.zh-CN.md +29 -0
  4. package/dist/commands/install.js +3 -19
  5. package/dist/commands/install.js.map +1 -1
  6. package/dist/commands/set-token.js +2 -1
  7. package/dist/commands/set-token.js.map +1 -1
  8. package/dist/commands/status.js +34 -6
  9. package/dist/commands/status.js.map +1 -1
  10. package/dist/config/config.d.ts +1 -1
  11. package/dist/config/config.js +38 -10
  12. package/dist/config/config.js.map +1 -1
  13. package/dist/config/env.d.ts +2 -1
  14. package/dist/config/env.js +32 -2
  15. package/dist/config/env.js.map +1 -1
  16. package/dist/core/relay/voice-input.js +13 -7
  17. package/dist/core/relay/voice-input.js.map +1 -1
  18. package/dist/hermes/relay/hermes-state-db-realtime.js +4 -21
  19. package/dist/hermes/relay/hermes-state-db-realtime.js.map +1 -1
  20. package/dist/hermes/runtime/hermes-runtime-api-client.js +5 -30
  21. package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -1
  22. package/dist/hermes/runtime/hermes-runtime-api-settings.d.ts +19 -0
  23. package/dist/hermes/runtime/hermes-runtime-api-settings.js +69 -0
  24. package/dist/hermes/runtime/hermes-runtime-api-settings.js.map +1 -0
  25. package/dist/hermes/runtime/hermes-runtime-backups.js +6 -4
  26. package/dist/hermes/runtime/hermes-runtime-backups.js.map +1 -1
  27. package/dist/hermes/runtime/hermes-runtime-chat.js +3 -2
  28. package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -1
  29. package/dist/hermes/runtime/hermes-runtime-lifecycle.js +3 -2
  30. package/dist/hermes/runtime/hermes-runtime-lifecycle.js.map +1 -1
  31. package/dist/hermes/runtime/hermes-runtime-paths.d.ts +9 -0
  32. package/dist/hermes/runtime/hermes-runtime-paths.js +67 -0
  33. package/dist/hermes/runtime/hermes-runtime-paths.js.map +1 -0
  34. package/dist/hermes/runtime/hermes-runtime-process.d.ts +2 -0
  35. package/dist/hermes/runtime/hermes-runtime-process.js +70 -30
  36. package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -1
  37. package/dist/hermes/runtime/hermes-runtime-skills.js +10 -5
  38. package/dist/hermes/runtime/hermes-runtime-skills.js.map +1 -1
  39. package/dist/hermes/runtime/hermes-runtime-state-db.js +3 -18
  40. package/dist/hermes/runtime/hermes-runtime-state-db.js.map +1 -1
  41. package/dist/i18n/index.js +2 -2
  42. package/dist/i18n/index.js.map +1 -1
  43. package/dist/index.js +2 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/openclaw/backups/backup-manager.js +10 -8
  46. package/dist/openclaw/backups/backup-manager.js.map +1 -1
  47. package/dist/openclaw/config/provider-config.js +19 -19
  48. package/dist/openclaw/config/provider-config.js.map +1 -1
  49. package/dist/openclaw/handlers/local-handlers.d.ts +1 -0
  50. package/dist/openclaw/handlers/local-handlers.js +29 -45
  51. package/dist/openclaw/handlers/local-handlers.js.map +1 -1
  52. package/dist/openclaw/relay/chat-send-attachments.js +2 -3
  53. package/dist/openclaw/relay/chat-send-attachments.js.map +1 -1
  54. package/dist/openclaw/relay/outgoing-media-relay.d.ts +1 -0
  55. package/dist/openclaw/relay/outgoing-media-relay.js +18 -7
  56. package/dist/openclaw/relay/outgoing-media-relay.js.map +1 -1
  57. package/dist/openclaw/relay/session-context.js +2 -3
  58. package/dist/openclaw/relay/session-context.js.map +1 -1
  59. package/dist/openclaw/runtime/local-runtime.d.ts +1 -0
  60. package/dist/openclaw/runtime/local-runtime.js +81 -50
  61. package/dist/openclaw/runtime/local-runtime.js.map +1 -1
  62. package/dist/openclaw/runtime/openclaw-paths.d.ts +15 -0
  63. package/dist/openclaw/runtime/openclaw-paths.js +52 -0
  64. package/dist/openclaw/runtime/openclaw-paths.js.map +1 -0
  65. package/dist/openclaw/session-store.js +3 -3
  66. package/dist/openclaw/session-store.js.map +1 -1
  67. package/dist/platform/process-invocation.d.ts +14 -0
  68. package/dist/platform/process-invocation.js +72 -0
  69. package/dist/platform/process-invocation.js.map +1 -0
  70. package/dist/platform/service-manager-windows.d.ts +14 -5
  71. package/dist/platform/service-manager-windows.js +90 -80
  72. package/dist/platform/service-manager-windows.js.map +1 -1
  73. package/dist/platform/service-manager.js +5 -5
  74. package/dist/platform/service-manager.js.map +1 -1
  75. package/dist/platform/text-file-decoder.d.ts +5 -0
  76. package/dist/platform/text-file-decoder.js +40 -0
  77. package/dist/platform/text-file-decoder.js.map +1 -0
  78. package/package.json +3 -2
@@ -0,0 +1,52 @@
1
+ import { homedir } from "node:os";
2
+ import { dirname, join, resolve } from "node:path";
3
+ /**
4
+ * OpenClaw 官方允许安装方式和运行用户独立于状态目录。
5
+ * 所有 ClawConnect 功能必须经过同一解析器,避免连接端口正确但日志、会话或备份仍误读 ~/.openclaw。
6
+ */
7
+ export function resolveOpenClawStateDir(options = {}) {
8
+ const env = options.env ?? process.env;
9
+ const systemHome = options.systemHome ?? homedir();
10
+ const explicitStateDir = firstNonEmpty(env.OPENCLAW_STATE_DIR, env.CLAWCONNECT_OPENCLAW_HOME);
11
+ if (explicitStateDir) {
12
+ return resolveConfiguredPath(explicitStateDir, systemHome);
13
+ }
14
+ const openClawHome = firstNonEmpty(env.OPENCLAW_HOME);
15
+ return openClawHome
16
+ ? join(resolveConfiguredPath(openClawHome, systemHome), ".openclaw")
17
+ : join(systemHome, ".openclaw");
18
+ }
19
+ export function resolveOpenClawConfigPath(options = {}) {
20
+ const env = options.env ?? process.env;
21
+ const systemHome = options.systemHome ?? homedir();
22
+ const explicitConfigPath = firstNonEmpty(env.OPENCLAW_CONFIG_PATH);
23
+ return explicitConfigPath
24
+ ? resolveConfiguredPath(explicitConfigPath, systemHome)
25
+ : join(resolveOpenClawStateDir({ env, systemHome }), "openclaw.json");
26
+ }
27
+ export function resolveOpenClawConfigDir(options = {}) {
28
+ return dirname(resolveOpenClawConfigPath(options));
29
+ }
30
+ export function resolveOpenClawAgentsDir(options = {}) {
31
+ return join(resolveOpenClawStateDir(options), "agents");
32
+ }
33
+ export function resolveConfiguredPath(value, systemHome = homedir()) {
34
+ const trimmed = value.trim();
35
+ if (trimmed === "~") {
36
+ return systemHome;
37
+ }
38
+ if (trimmed.startsWith("~/") || trimmed.startsWith("~\\")) {
39
+ return resolve(systemHome, trimmed.slice(2));
40
+ }
41
+ return resolve(trimmed);
42
+ }
43
+ function firstNonEmpty(...values) {
44
+ for (const value of values) {
45
+ const trimmed = value?.trim();
46
+ if (trimmed) {
47
+ return trimmed;
48
+ }
49
+ }
50
+ return undefined;
51
+ }
52
+ //# sourceMappingURL=openclaw-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-paths.js","sourceRoot":"","sources":["../../../src/openclaw/runtime/openclaw-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcnD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA+B,EAAE;IACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC;IACnD,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC9F,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,qBAAqB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,YAAY;QACjB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC;QACpE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAA+B,EAAE;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC;IACnD,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnE,OAAO,kBAAkB;QACvB,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,UAAU,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAA+B,EAAE;IACxE,OAAO,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAA+B,EAAE;IACxE,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,UAAU,GAAG,OAAO,EAAE;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,GAAG,MAAiC;IACzD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { readdir, readFile } from "fs/promises";
2
- import { homedir } from "os";
3
2
  import { basename, isAbsolute, join, resolve } from "path";
4
- export async function inferLatestOpenClawSessionKey(sessionStoreRoot = join(homedir(), ".openclaw")) {
3
+ import { resolveOpenClawStateDir } from "./runtime/openclaw-paths.js";
4
+ export async function inferLatestOpenClawSessionKey(sessionStoreRoot = resolveOpenClawStateDir()) {
5
5
  const agentsDir = join(sessionStoreRoot, "agents");
6
6
  let agentEntries;
7
7
  try {
@@ -107,7 +107,7 @@ function userTurnRunId(message, parsed) {
107
107
  function assistantToolRunId(message, parsed) {
108
108
  return normalizeRunId(firstString(message.sourceRunId, message.source_run_id, message.runId, message.run_id, message.turnId, message.turn_id, message.messageId, message.message_id, message.id, parsed.id));
109
109
  }
110
- async function resolveOpenClawSessionLogPath(sessionKey, sessionStoreRoot = join(homedir(), ".openclaw")) {
110
+ async function resolveOpenClawSessionLogPath(sessionKey, sessionStoreRoot = resolveOpenClawStateDir()) {
111
111
  const trimmedSessionKey = sessionKey.trim();
112
112
  if (!trimmedSessionKey) {
113
113
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/openclaw/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/openclaw/session-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface ProcessInvocation {
2
+ command: string;
3
+ args: string[];
4
+ }
5
+ /** Windows 不能由 CreateProcess 直接执行 .cmd/.bat;统一经 cmd.exe,JS 入口统一经当前 Node。 */
6
+ export declare function buildExecutableInvocation(executable: string, args: string[], options?: {
7
+ platform?: NodeJS.Platform;
8
+ nodePath?: string;
9
+ commandShell?: string;
10
+ powershellPath?: string;
11
+ }): ProcessInvocation;
12
+ export declare function buildWindowsCommandLine(args: string[]): string;
13
+ export declare function buildShellCommandInvocation(command: string, platform?: NodeJS.Platform): ProcessInvocation;
14
+ export declare function quoteShellArgument(value: string, platform?: NodeJS.Platform): string;
@@ -0,0 +1,72 @@
1
+ import { extname } from "node:path";
2
+ /** Windows 不能由 CreateProcess 直接执行 .cmd/.bat;统一经 cmd.exe,JS 入口统一经当前 Node。 */
3
+ export function buildExecutableInvocation(executable, args, options = {}) {
4
+ const platform = options.platform ?? process.platform;
5
+ if (platform !== "win32") {
6
+ return { command: executable, args };
7
+ }
8
+ const extension = extname(executable).toLowerCase();
9
+ if ([".js", ".mjs", ".cjs"].includes(extension)) {
10
+ return { command: options.nodePath ?? process.execPath, args: [executable, ...args] };
11
+ }
12
+ if (extension === ".cmd" || extension === ".bat") {
13
+ return {
14
+ command: options.commandShell ?? process.env.ComSpec ?? "cmd.exe",
15
+ args: ["/d", "/s", "/c", buildWindowsCommandLine([executable, ...args])],
16
+ };
17
+ }
18
+ if (extension === ".ps1") {
19
+ return {
20
+ command: options.powershellPath ?? "powershell.exe",
21
+ args: ["-NoProfile", "-NonInteractive", "-File", executable, ...args],
22
+ };
23
+ }
24
+ return { command: executable, args };
25
+ }
26
+ export function buildWindowsCommandLine(args) {
27
+ return args.map(quoteWindowsArgument).join(" ");
28
+ }
29
+ export function buildShellCommandInvocation(command, platform = process.platform) {
30
+ if (platform !== "win32") {
31
+ return { command: "sh", args: ["-lc", command] };
32
+ }
33
+ const utf8Bootstrap = [
34
+ "$utf8NoBom = [System.Text.UTF8Encoding]::new($false)",
35
+ "[Console]::InputEncoding = $utf8NoBom",
36
+ "[Console]::OutputEncoding = $utf8NoBom",
37
+ "$OutputEncoding = $utf8NoBom",
38
+ command,
39
+ ].join("; ");
40
+ return {
41
+ command: "powershell.exe",
42
+ args: ["-NoProfile", "-NonInteractive", "-Command", utf8Bootstrap],
43
+ };
44
+ }
45
+ export function quoteShellArgument(value, platform = process.platform) {
46
+ if (platform === "win32") {
47
+ return `'${value.replace(/'/g, "''")}'`;
48
+ }
49
+ return `'${value.replaceAll("'", "'\\''")}'`;
50
+ }
51
+ function quoteWindowsArgument(arg) {
52
+ if (!/[\s"]/.test(arg)) {
53
+ return arg;
54
+ }
55
+ let result = '"';
56
+ let backslashes = 0;
57
+ for (const char of arg) {
58
+ if (char === "\\") {
59
+ backslashes += 1;
60
+ continue;
61
+ }
62
+ if (char === '"') {
63
+ result += "\\".repeat(backslashes * 2 + 1) + '"';
64
+ backslashes = 0;
65
+ continue;
66
+ }
67
+ result += "\\".repeat(backslashes) + char;
68
+ backslashes = 0;
69
+ }
70
+ return result + "\\".repeat(backslashes * 2) + '"';
71
+ }
72
+ //# sourceMappingURL=process-invocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-invocation.js","sourceRoot":"","sources":["../../src/platform/process-invocation.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,17 @@
1
1
  import type { ServiceStatus } from "./service-manager-common.js";
2
2
  export declare const TASK_NAME = "ClawConnectAgent";
3
+ export declare function windowsTaskName(profile?: string): string;
3
4
  export declare function buildWindowsPowerShellBootstrap(command: string): string;
4
- export declare function installWindowsService(): boolean;
5
- export declare function uninstallWindowsService(): boolean;
6
- export declare function restartWindowsService(): boolean;
7
- export declare function stopWindowsService(): boolean;
8
- export declare function getWindowsServiceStatus(): ServiceStatus;
5
+ export declare function normalizeWindowsServiceLogEncoding(path: string): void;
6
+ export declare function buildWindowsServiceProcessCommand(args: string[], logPath: string, errorLogPath: string): string;
7
+ /**
8
+ * Kill any running node processes that are executing this specific script.
9
+ * Uses execFileSync to bypass cmd.exe, avoiding CMD quote-mangling.
10
+ * Returns true if any processes were killed.
11
+ */
12
+ export declare function buildWindowsProcessQueryScript(profile?: string): string;
13
+ export declare function installWindowsService(profile?: string): boolean;
14
+ export declare function uninstallWindowsService(profile?: string): boolean;
15
+ export declare function restartWindowsService(profile?: string): boolean;
16
+ export declare function stopWindowsService(profile?: string): boolean;
17
+ export declare function getWindowsServiceStatus(profile?: string): ServiceStatus;
@@ -1,6 +1,13 @@
1
1
  import { execFileSync } from "child_process";
2
- import { ensureLogDir, ERROR_LOG_PATH, getProgramArgs, LOG_PATH, } from "./service-manager-common.js";
2
+ import { existsSync, readFileSync, writeFileSync } from "fs";
3
+ import { ensureLogDir, getProfileErrorLogPath, getProfileLogPath, getProgramArgs, resolveServiceEntryPath, } from "./service-manager-common.js";
4
+ import { getActiveProfile, normalizeProfileName } from "../config/profile.js";
5
+ import { decodeTextBuffer } from "./text-file-decoder.js";
3
6
  export const TASK_NAME = "ClawConnectAgent";
7
+ export function windowsTaskName(profile) {
8
+ const normalized = normalizeProfileName(profile);
9
+ return normalized ? `${TASK_NAME}-${normalized}` : TASK_NAME;
10
+ }
4
11
  function qps(value) {
5
12
  return `'${value.replace(/'/g, "''")}'`;
6
13
  }
@@ -16,64 +23,49 @@ export function buildWindowsPowerShellBootstrap(command) {
16
23
  command,
17
24
  ].join("; ");
18
25
  }
19
- /**
20
- * Build a command-line string suitable for Windows CommandLineToArgvW
21
- * (used by CreateProcess when schtasks later runs the task).
22
- *
23
- * - Args containing spaces or tabs are double-quoted.
24
- * - A literal `"` inside an arg is escaped as `\"` per Windows convention.
25
- * - Backslashes before a `"` are doubled to prevent them from being
26
- * interpreted as escaping the quote character.
27
- */
28
- function buildWindowsCommandLine(args) {
29
- return args
30
- .map((arg) => {
31
- if (/[ \t"]/.test(arg)) {
32
- // Proper CommandLineToArgvW quoting:
33
- // 1. backslashes before a " must be doubled
34
- // 2. each " becomes \"
35
- // 3. wrap the result in quotes
36
- let result = "";
37
- for (let i = 0; i < arg.length; i++) {
38
- let backslashCount = 0;
39
- while (i < arg.length && arg[i] === "\\") {
40
- backslashCount++;
41
- i++;
42
- }
43
- if (i >= arg.length) {
44
- // All backslashes at end: double them before the closing quote
45
- result += "\\".repeat(backslashCount * 2);
46
- }
47
- else if (arg[i] === '"') {
48
- // Backslashes before a quote: double + add escape quote
49
- result += "\\".repeat(backslashCount * 2 + 1);
50
- result += '"';
51
- }
52
- else {
53
- // Normal character: backslashes are literal
54
- result += "\\".repeat(backslashCount);
55
- result += arg[i];
56
- }
57
- }
58
- return `"${result}"`;
59
- }
60
- return arg;
61
- })
62
- .join(" ");
26
+ export function normalizeWindowsServiceLogEncoding(path) {
27
+ if (!existsSync(path)) {
28
+ return;
29
+ }
30
+ const decoded = decodeTextBuffer(readFileSync(path));
31
+ if (decoded.encoding !== "utf8") {
32
+ writeFileSync(path, decoded.text, "utf8");
33
+ }
34
+ }
35
+ export function buildWindowsServiceProcessCommand(args, logPath, errorLogPath) {
36
+ const [execPath, ...execArgs] = args;
37
+ if (!execPath) {
38
+ throw new Error("Windows service executable is required");
39
+ }
40
+ return buildWindowsPowerShellBootstrap(`& ${qps(execPath)} ${execArgs.map((arg) => qps(arg)).join(" ")} >> ${qps(logPath)} 2>> ${qps(errorLogPath)}`);
63
41
  }
64
42
  /**
65
43
  * Kill any running node processes that are executing this specific script.
66
44
  * Uses execFileSync to bypass cmd.exe, avoiding CMD quote-mangling.
67
45
  * Returns true if any processes were killed.
68
46
  */
69
- function killWindowsProcess() {
47
+ export function buildWindowsProcessQueryScript(profile) {
48
+ const profileFilter = normalizeProfileName(profile)
49
+ ? `($_.CommandLine -match ('(?:^|\\s)--profile(?:\\s+|=)' + [regex]::Escape($env:CLAW_PROFILE_NAME) + '(?:\\s|$)'))`
50
+ : `($_.CommandLine -notmatch '(?:^|\\s)--profile(?:\\s|=)')`;
51
+ return `Get-CimInstance Win32_Process -Filter "Name = 'node.exe'" | Where-Object { $_.CommandLine -match [regex]::Escape($env:CLAW_SCRIPT_PATH) -and ${profileFilter} } | Select-Object -ExpandProperty ProcessId`;
52
+ }
53
+ function windowsProcessQueryEnv(profile) {
54
+ const scriptPath = process.argv[1];
55
+ return {
56
+ ...process.env,
57
+ CLAW_SCRIPT_PATH: scriptPath ? resolveServiceEntryPath(scriptPath) : "",
58
+ CLAW_PROFILE_NAME: normalizeProfileName(profile) ?? "",
59
+ };
60
+ }
61
+ function killWindowsProcess(profile) {
70
62
  const scriptPath = process.argv[1];
71
63
  if (!scriptPath)
72
64
  return false;
73
65
  const currentPid = process.pid;
74
66
  try {
75
- const psScript = `Get-CimInstance Win32_Process -Filter "Name = 'node.exe'" | Where-Object { $_.CommandLine -match [regex]::Escape($env:CLAW_SCRIPT_PATH) } | Select-Object -ExpandProperty ProcessId`;
76
- const output = execFileSync("powershell", ["-NoProfile", "-Command", psScript], { stdio: "pipe", env: { ...process.env, CLAW_SCRIPT_PATH: scriptPath } })
67
+ const psScript = buildWindowsProcessQueryScript(profile);
68
+ const output = execFileSync("powershell", ["-NoProfile", "-Command", psScript], { stdio: "pipe", env: windowsProcessQueryEnv(profile) })
77
69
  .toString()
78
70
  .trim();
79
71
  const pids = output
@@ -115,21 +107,33 @@ function killWindowsProcess() {
115
107
  return false;
116
108
  }
117
109
  }
118
- export function installWindowsService() {
119
- const args = getProgramArgs();
110
+ export function installWindowsService(profile) {
111
+ const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
112
+ const taskName = windowsTaskName(resolvedProfile);
113
+ const logPath = getProfileLogPath(resolvedProfile);
114
+ const errorLogPath = getProfileErrorLogPath(resolvedProfile);
115
+ const args = getProgramArgs(resolvedProfile);
120
116
  try {
121
- ensureLogDir();
117
+ ensureLogDir(resolvedProfile);
118
+ try {
119
+ execFileSync("schtasks", ["/end", "/tn", taskName], { stdio: "pipe" });
120
+ }
121
+ catch {
122
+ // First install or already stopped.
123
+ }
124
+ killWindowsProcess(resolvedProfile);
125
+ // 旧版 PowerShell 可能创建 UTF-16LE 日志;转换后再以 UTF-8 追加,避免一个文件混合两种编码。
126
+ normalizeWindowsServiceLogEncoding(logPath);
127
+ normalizeWindowsServiceLogEncoding(errorLogPath);
122
128
  // ── Attempt 1: PowerShell ScheduledTasks module ──────────────────────
123
129
  // Supports RestartOnFailure (crash recovery) and full settings control.
124
130
  // Available on Windows 10 / Server 2016+.
125
131
  try {
126
- const execPath = args[0];
127
- const execArgs = args.slice(1);
128
132
  // We use 'powershell -WindowStyle Hidden' to launch node without a visible console window.
129
133
  // This is the most reliable native way to run a background console app on login.
130
134
  // Stdout/stderr are redirected to log files, matching the behavior of the
131
135
  // Linux (systemd/nohup) and macOS (launchd) service managers.
132
- const innerCmd = buildWindowsPowerShellBootstrap(`& ${qps(execPath)} ${execArgs.map((a) => qps(a)).join(" ")} >> ${qps(LOG_PATH)} 2>> ${qps(ERROR_LOG_PATH)}`);
136
+ const innerCmd = buildWindowsServiceProcessCommand(args, logPath, errorLogPath);
133
137
  // The -Argument value uses a PowerShell double-quote string ("" → literal ")
134
138
  // so that single quotes from qps() inside it are preserved literally.
135
139
  // Escape any `$` or `` ` `` in the paths to prevent PowerShell variable expansion.
@@ -140,28 +144,25 @@ export function installWindowsService() {
140
144
  `$trigger = New-ScheduledTaskTrigger -AtLogon`,
141
145
  `$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest`,
142
146
  `$settings = New-ScheduledTaskSettingsSet -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1) -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries`,
143
- `Register-ScheduledTask -TaskName ${qps(TASK_NAME)} -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force | Out-Null`,
147
+ `Register-ScheduledTask -TaskName ${qps(taskName)} -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force | Out-Null`,
144
148
  ].join("\n");
145
149
  execFileSync("powershell", ["-NoProfile", "-Command", psScript], { stdio: "pipe" });
146
- execFileSync("schtasks", ["/run", "/tn", TASK_NAME], { stdio: "pipe" });
150
+ execFileSync("schtasks", ["/run", "/tn", taskName], { stdio: "pipe" });
147
151
  return true;
148
152
  }
149
153
  catch (err) {
150
154
  // Fall through to basic schtasks below
151
155
  }
152
156
  // ── Attempt 2: Basic schtasks (no crash recovery) ────────────────────
153
- const cmdLine = buildWindowsCommandLine(args);
154
157
  // Wrap in powershell -WindowStyle Hidden so no console window pops up at login.
155
158
  // schtasks stores /tr as-is; CreateProcess parses it with CommandLineToArgvW.
156
159
  // The inner command is passed as a single argument to -Command via double quotes
157
160
  // escaped as \" per CommandLineToArgvW convention.
158
161
  // Stdout/stderr are redirected to log files via PowerShell >> / 2>> operators.
159
- const escLogPath = LOG_PATH.replace(/'/g, "''");
160
- const escErrPath = ERROR_LOG_PATH.replace(/'/g, "''");
161
- const fallbackInner = buildWindowsPowerShellBootstrap(`${cmdLine} >> '${escLogPath}' 2>> '${escErrPath}'`);
162
+ const fallbackInner = buildWindowsServiceProcessCommand(args, logPath, errorLogPath);
162
163
  const fallbackTr = `powershell.exe -WindowStyle Hidden -Command "${fallbackInner.replace(/"/g, '\\"')}"`;
163
- execFileSync("schtasks", ["/create", "/tn", TASK_NAME, "/tr", fallbackTr, "/sc", "onlogon", "/f"], { stdio: "pipe" });
164
- execFileSync("schtasks", ["/run", "/tn", TASK_NAME], { stdio: "pipe" });
164
+ execFileSync("schtasks", ["/create", "/tn", taskName, "/tr", fallbackTr, "/sc", "onlogon", "/f"], { stdio: "pipe" });
165
+ execFileSync("schtasks", ["/run", "/tn", taskName], { stdio: "pipe" });
165
166
  return true;
166
167
  }
167
168
  catch (err) {
@@ -169,17 +170,19 @@ export function installWindowsService() {
169
170
  return false;
170
171
  }
171
172
  }
172
- export function uninstallWindowsService() {
173
+ export function uninstallWindowsService(profile) {
174
+ const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
175
+ const taskName = windowsTaskName(resolvedProfile);
173
176
  try {
174
177
  let changed = false;
175
178
  try {
176
- execFileSync("schtasks", ["/delete", "/tn", TASK_NAME, "/f"], { stdio: "pipe" });
179
+ execFileSync("schtasks", ["/delete", "/tn", taskName, "/f"], { stdio: "pipe" });
177
180
  changed = true;
178
181
  }
179
182
  catch {
180
183
  // task might not exist
181
184
  }
182
- if (killWindowsProcess()) {
185
+ if (killWindowsProcess(resolvedProfile)) {
183
186
  changed = true;
184
187
  }
185
188
  return changed;
@@ -189,37 +192,44 @@ export function uninstallWindowsService() {
189
192
  return false;
190
193
  }
191
194
  }
192
- export function restartWindowsService() {
195
+ export function restartWindowsService(profile) {
196
+ const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
197
+ const taskName = windowsTaskName(resolvedProfile);
193
198
  // Try to stop the task first
194
199
  try {
195
- execFileSync("schtasks", ["/end", "/tn", TASK_NAME], { stdio: "pipe" });
200
+ execFileSync("schtasks", ["/end", "/tn", taskName], { stdio: "pipe" });
196
201
  }
197
202
  catch {
198
203
  // ignore if not running
199
204
  }
200
- killWindowsProcess();
205
+ killWindowsProcess(resolvedProfile);
201
206
  try {
202
- execFileSync("schtasks", ["/run", "/tn", TASK_NAME], { stdio: "pipe" });
207
+ execFileSync("schtasks", ["/run", "/tn", taskName], { stdio: "pipe" });
203
208
  return true;
204
209
  }
205
210
  catch {
206
211
  // If the task doesn't exist, install it
207
- return installWindowsService();
212
+ return installWindowsService(resolvedProfile);
208
213
  }
209
214
  }
210
- export function stopWindowsService() {
215
+ export function stopWindowsService(profile) {
216
+ const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
217
+ const taskName = windowsTaskName(resolvedProfile);
211
218
  try {
212
- execFileSync("schtasks", ["/end", "/tn", TASK_NAME], { stdio: "pipe" });
219
+ execFileSync("schtasks", ["/end", "/tn", taskName], { stdio: "pipe" });
213
220
  }
214
221
  catch {
215
222
  // ignore if not running
216
223
  }
217
- return killWindowsProcess();
224
+ return killWindowsProcess(resolvedProfile);
218
225
  }
219
- export function getWindowsServiceStatus() {
226
+ export function getWindowsServiceStatus(profile) {
227
+ const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
228
+ const taskName = windowsTaskName(resolvedProfile);
229
+ const logPath = getProfileLogPath(resolvedProfile);
220
230
  let installed = false;
221
231
  try {
222
- execFileSync("schtasks", ["/query", "/tn", TASK_NAME], { stdio: "pipe" });
232
+ execFileSync("schtasks", ["/query", "/tn", taskName], { stdio: "pipe" });
223
233
  installed = true;
224
234
  }
225
235
  catch {
@@ -230,8 +240,8 @@ export function getWindowsServiceStatus() {
230
240
  try {
231
241
  const scriptPath = process.argv[1];
232
242
  if (scriptPath) {
233
- const psScript = `Get-CimInstance Win32_Process -Filter "Name = 'node.exe'" | Where-Object { $_.CommandLine -match [regex]::Escape($env:CLAW_SCRIPT_PATH) } | Select-Object -ExpandProperty ProcessId`;
234
- const output = execFileSync("powershell", ["-NoProfile", "-Command", psScript], { stdio: "pipe", env: { ...process.env, CLAW_SCRIPT_PATH: scriptPath } })
243
+ const psScript = buildWindowsProcessQueryScript(resolvedProfile);
244
+ const output = execFileSync("powershell", ["-NoProfile", "-Command", psScript], { stdio: "pipe", env: windowsProcessQueryEnv(resolvedProfile) })
235
245
  .toString()
236
246
  .trim();
237
247
  running = /\d+/.test(output);
@@ -245,10 +255,10 @@ export function getWindowsServiceStatus() {
245
255
  platform: "windows",
246
256
  installed,
247
257
  running,
248
- serviceName: TASK_NAME,
258
+ serviceName: taskName,
249
259
  manager: "Windows Task Scheduler",
250
- logPath: LOG_PATH,
251
- startHint: `schtasks /run /tn "${TASK_NAME}"`,
260
+ logPath,
261
+ startHint: `schtasks /run /tn "${taskName}"`,
252
262
  };
253
263
  }
254
264
  //# sourceMappingURL=service-manager-windows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-manager-windows.js","sourceRoot":"","sources":["../../src/platform/service-manager-windows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-manager-windows.js","sourceRoot":"","sources":["../../src/platform/service-manager-windows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAe;IAC7D,OAAO;QACL,0EAA0E;QAC1E,uEAAuE;QACvE,sDAAsD;QACtD,uCAAuC;QACvC,wCAAwC;QACxC,8BAA8B;QAC9B,yDAAyD;QACzD,OAAO;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAAY;IAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAChC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,IAAc,EACd,OAAe,EACf,YAAoB;IAEpB,MAAM,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,+BAA+B,CACpC,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,EAAE,CAC9G,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC;QACjD,CAAC,CAAC,kHAAkH;QACpH,CAAC,CAAC,0DAA0D,CAAC;IAC/D,OAAO,gJAAgJ,aAAa,8CAA8C,CAAC;AACrN,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgB;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO;QACL,GAAG,OAAO,CAAC,GAAG;QACd,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;QACvE,iBAAiB,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,YAAY,CACzB,YAAY,EACZ,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,EACpC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CACxD;aACE,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QAEV,MAAM,IAAI,GAAG,MAAM;aAChB,KAAK,CAAC,OAAO,CAAC;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEpC,kEAAkE;QAClE,qEAAqE;QACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;YACxC,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC;YACH,YAAY,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtG,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,YAAY,CAAC,eAAe,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QACD,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACpC,8DAA8D;QAC9D,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAC5C,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAEjD,wEAAwE;QACxE,wEAAwE;QACxE,0CAA0C;QAC1C,IAAI,CAAC;YACH,2FAA2F;YAC3F,iFAAiF;YACjF,0EAA0E;YAC1E,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEhF,6EAA6E;YAC7E,sEAAsE;YACtE,mFAAmF;YACnF,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,mCAAmC,YAAY,KAAK,CAAC;YAEvE,MAAM,QAAQ,GAAG;gBACf,2EAA2E,SAAS,EAAE;gBACtF,+CAA+C;gBAC/C,wGAAwG;gBACxG,0JAA0J;gBAC1J,oCAAoC,GAAG,CAAC,QAAQ,CAAC,gGAAgG;aAClJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,YAAY,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACpF,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uCAAuC;QACzC,CAAC;QAED,wEAAwE;QACxE,gFAAgF;QAChF,8EAA8E;QAC9E,iFAAiF;QACjF,mDAAmD;QACnD,+EAA+E;QAC/E,MAAM,aAAa,GAAG,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,gDAAgD,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QAEzG,YAAY,CACV,UAAU,EACV,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EACvE,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;QACF,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAChF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAClD,6BAA6B;IAC7B,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,OAAO,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,8BAA8B,CAAC,eAAe,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,YAAY,CACzB,YAAY,EACZ,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,EACpC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAChE;qBACE,QAAQ,EAAE;qBACV,IAAI,EAAE,CAAC;gBACV,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,SAAS;QACT,OAAO;QACP,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,wBAAwB;QACjC,OAAO;QACP,SAAS,EAAE,sBAAsB,QAAQ,GAAG;KAC7C,CAAC;AACJ,CAAC"}
@@ -116,7 +116,7 @@ export function installService(profile) {
116
116
  case "linux":
117
117
  return installLinuxService();
118
118
  case "windows":
119
- return installWindowsService();
119
+ return installWindowsService(profile);
120
120
  default:
121
121
  return false;
122
122
  }
@@ -128,7 +128,7 @@ export function restartService(profile) {
128
128
  case "linux":
129
129
  return restartLinuxService();
130
130
  case "windows":
131
- return restartWindowsService();
131
+ return restartWindowsService(profile);
132
132
  default:
133
133
  return false;
134
134
  }
@@ -140,7 +140,7 @@ export function stopService(profile) {
140
140
  case "linux":
141
141
  return stopLinuxService();
142
142
  case "windows":
143
- return stopWindowsService();
143
+ return stopWindowsService(profile);
144
144
  default:
145
145
  return false;
146
146
  }
@@ -152,7 +152,7 @@ export function uninstallService(profile) {
152
152
  case "linux":
153
153
  return uninstallLinuxService();
154
154
  case "windows":
155
- return uninstallWindowsService();
155
+ return uninstallWindowsService(profile);
156
156
  default:
157
157
  return false;
158
158
  }
@@ -186,7 +186,7 @@ export function getServiceStatus(profile) {
186
186
  return getLinuxServiceStatus();
187
187
  }
188
188
  if (platform === "windows") {
189
- return getWindowsServiceStatus();
189
+ return getWindowsServiceStatus(resolvedProfile);
190
190
  }
191
191
  return {
192
192
  platform,