@agentteams/runner 0.0.85 → 0.0.86-dev.212

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 (123) hide show
  1. package/dist/api-client.d.ts +2 -2
  2. package/dist/api-client.js +66 -66
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/api-client.test.js +63 -54
  5. package/dist/api-client.test.js.map +1 -1
  6. package/dist/autostart.js +81 -81
  7. package/dist/autostart.js.map +1 -1
  8. package/dist/autostart.test.js +35 -35
  9. package/dist/autostart.test.js.map +1 -1
  10. package/dist/commands/cleanup.js +4 -4
  11. package/dist/commands/init.js +14 -14
  12. package/dist/commands/restart.js +3 -3
  13. package/dist/commands/start.js +10 -10
  14. package/dist/commands/start.js.map +1 -1
  15. package/dist/commands/status.js +7 -7
  16. package/dist/commands/stop.js +7 -7
  17. package/dist/commands/uninstall.js +6 -6
  18. package/dist/commands/update.d.ts +4 -4
  19. package/dist/commands/update.js +20 -22
  20. package/dist/commands/update.js.map +1 -1
  21. package/dist/commands/update.test.js +38 -42
  22. package/dist/commands/update.test.js.map +1 -1
  23. package/dist/config.d.ts +1 -1
  24. package/dist/config.js +12 -12
  25. package/dist/config.test.js +61 -61
  26. package/dist/config.test.js.map +1 -1
  27. package/dist/daemon-control.d.ts +5 -5
  28. package/dist/daemon-control.js +21 -22
  29. package/dist/daemon-control.js.map +1 -1
  30. package/dist/daemon-control.test.js +29 -29
  31. package/dist/executable.d.ts +3 -3
  32. package/dist/executable.js +46 -49
  33. package/dist/executable.js.map +1 -1
  34. package/dist/executable.test.js +62 -62
  35. package/dist/executable.test.js.map +1 -1
  36. package/dist/handlers/trigger-handler.d.ts +6 -6
  37. package/dist/handlers/trigger-handler.js +118 -124
  38. package/dist/handlers/trigger-handler.js.map +1 -1
  39. package/dist/handlers/trigger-handler.test.js +373 -365
  40. package/dist/handlers/trigger-handler.test.js.map +1 -1
  41. package/dist/index.js +25 -25
  42. package/dist/logger.js +1 -1
  43. package/dist/pid.js +6 -6
  44. package/dist/poller.d.ts +7 -7
  45. package/dist/poller.js +55 -54
  46. package/dist/poller.js.map +1 -1
  47. package/dist/poller.test.js +264 -180
  48. package/dist/poller.test.js.map +1 -1
  49. package/dist/runners/amp.d.ts +1 -1
  50. package/dist/runners/amp.js +74 -81
  51. package/dist/runners/amp.js.map +1 -1
  52. package/dist/runners/antigravity.d.ts +3 -3
  53. package/dist/runners/antigravity.js +116 -127
  54. package/dist/runners/antigravity.js.map +1 -1
  55. package/dist/runners/antigravity.replay.test.js +25 -25
  56. package/dist/runners/antigravity.replay.test.js.map +1 -1
  57. package/dist/runners/antigravity.test.js +98 -98
  58. package/dist/runners/antigravity.test.js.map +1 -1
  59. package/dist/runners/claude-code.d.ts +1 -1
  60. package/dist/runners/claude-code.js +85 -84
  61. package/dist/runners/claude-code.js.map +1 -1
  62. package/dist/runners/claude-code.test.js +37 -40
  63. package/dist/runners/claude-code.test.js.map +1 -1
  64. package/dist/runners/codex.d.ts +1 -1
  65. package/dist/runners/codex.js +87 -96
  66. package/dist/runners/codex.js.map +1 -1
  67. package/dist/runners/codex.test.js +68 -68
  68. package/dist/runners/codex.test.js.map +1 -1
  69. package/dist/runners/index.d.ts +1 -1
  70. package/dist/runners/index.js +10 -10
  71. package/dist/runners/index.test.js +16 -16
  72. package/dist/runners/log-reporter.d.ts +2 -2
  73. package/dist/runners/log-reporter.js +10 -10
  74. package/dist/runners/log-reporter.test.js +70 -70
  75. package/dist/runners/log-reporter.test.js.map +1 -1
  76. package/dist/runners/opencode.d.ts +1 -1
  77. package/dist/runners/opencode.js +68 -75
  78. package/dist/runners/opencode.js.map +1 -1
  79. package/dist/runners/process-control.d.ts +1 -1
  80. package/dist/runners/process-control.js +13 -11
  81. package/dist/runners/process-control.js.map +1 -1
  82. package/dist/runners/stream-json-parser.d.ts +1 -1
  83. package/dist/runners/stream-json-parser.js +70 -67
  84. package/dist/runners/stream-json-parser.js.map +1 -1
  85. package/dist/runners/stream-json-parser.replay.test.js +17 -17
  86. package/dist/runners/stream-json-parser.replay.test.js.map +1 -1
  87. package/dist/runners/stream-json-parser.test.js +76 -78
  88. package/dist/runners/stream-json-parser.test.js.map +1 -1
  89. package/dist/types.d.ts +4 -4
  90. package/dist/utils/auth-path-store.js +7 -7
  91. package/dist/utils/auth-path-store.test.js +24 -29
  92. package/dist/utils/auth-path-store.test.js.map +1 -1
  93. package/dist/utils/auto-update.d.ts +4 -4
  94. package/dist/utils/auto-update.js +30 -28
  95. package/dist/utils/auto-update.js.map +1 -1
  96. package/dist/utils/auto-update.test.js +30 -30
  97. package/dist/utils/convention-evaluator.d.ts +1 -1
  98. package/dist/utils/convention-evaluator.js +22 -21
  99. package/dist/utils/convention-evaluator.js.map +1 -1
  100. package/dist/utils/convention-evaluator.test.js +120 -110
  101. package/dist/utils/convention-evaluator.test.js.map +1 -1
  102. package/dist/utils/convention-sync.d.ts +3 -3
  103. package/dist/utils/convention-sync.js +86 -18
  104. package/dist/utils/convention-sync.js.map +1 -1
  105. package/dist/utils/convention-sync.test.js +122 -30
  106. package/dist/utils/convention-sync.test.js.map +1 -1
  107. package/dist/utils/git-worktree.js +20 -18
  108. package/dist/utils/git-worktree.js.map +1 -1
  109. package/dist/utils/git-worktree.test.js +98 -98
  110. package/dist/utils/git-worktree.test.js.map +1 -1
  111. package/dist/utils/origin-issue-safeguard.js +35 -30
  112. package/dist/utils/origin-issue-safeguard.js.map +1 -1
  113. package/dist/utils/power-save-blocker.d.ts +4 -4
  114. package/dist/utils/power-save-blocker.js +33 -33
  115. package/dist/utils/power-save-blocker.test.js +37 -37
  116. package/dist/utils/power-save-blocker.test.js.map +1 -1
  117. package/dist/utils/runner-cleanup.d.ts +3 -3
  118. package/dist/utils/runner-cleanup.js +13 -13
  119. package/dist/utils/runner-cleanup.test.js +35 -35
  120. package/dist/utils/runner-history.js +3 -3
  121. package/dist/utils/runner-history.test.js +17 -17
  122. package/package.json +4 -1
  123. package/readme.md +10 -10
@@ -1,22 +1,22 @@
1
- import { DaemonApiClient } from "../api-client.js";
2
- import { logger } from "../logger.js";
3
- import { resolveApiUrlForInit, writeDaemonConfigFile } from "../config.js";
4
- import { registerAutostart } from "../autostart.js";
1
+ import { DaemonApiClient } from '../api-client.js';
2
+ import { logger } from '../logger.js';
3
+ import { resolveApiUrlForInit, writeDaemonConfigFile } from '../config.js';
4
+ import { registerAutostart } from '../autostart.js';
5
5
  const parseInitArgs = (argv) => {
6
6
  const options = { noAutostart: false };
7
7
  for (let i = 0; i < argv.length; i += 1) {
8
8
  const arg = argv[i];
9
- if (arg === "--token") {
9
+ if (arg === '--token') {
10
10
  options.token = argv[i + 1];
11
11
  i += 1;
12
12
  continue;
13
13
  }
14
- if (arg === "--api-url") {
14
+ if (arg === '--api-url') {
15
15
  options.apiUrl = argv[i + 1];
16
16
  i += 1;
17
17
  continue;
18
18
  }
19
- if (arg === "--no-autostart") {
19
+ if (arg === '--no-autostart') {
20
20
  options.noAutostart = true;
21
21
  }
22
22
  }
@@ -25,7 +25,7 @@ const parseInitArgs = (argv) => {
25
25
  export const runInitCommand = async (argv) => {
26
26
  const options = parseInitArgs(argv);
27
27
  if (!options.token || options.token.trim().length === 0) {
28
- throw new Error("Missing token. Usage: agentrunner init --token <token> [--api-url <url>] [--no-autostart]");
28
+ throw new Error('Missing token. Usage: agentrunner init --token <token> [--api-url <url>] [--no-autostart]');
29
29
  }
30
30
  const apiUrl = await resolveApiUrlForInit(options.apiUrl);
31
31
  const daemonToken = options.token.trim();
@@ -33,25 +33,25 @@ export const runInitCommand = async (argv) => {
33
33
  const daemon = await client.validateDaemonToken();
34
34
  const configPath = await writeDaemonConfigFile({
35
35
  daemonToken,
36
- apiUrl
36
+ apiUrl,
37
37
  });
38
- logger.info("Daemon init completed", {
38
+ logger.info('Daemon init completed', {
39
39
  daemonId: daemon.id,
40
40
  memberId: daemon.memberId,
41
41
  osType: daemon.osType,
42
- configPath
42
+ configPath,
43
43
  });
44
44
  if (!options.noAutostart) {
45
45
  const result = await registerAutostart({ token: daemonToken, apiUrl });
46
46
  if (result.registered) {
47
- logger.info("Autostart registered", {
47
+ logger.info('Autostart registered', {
48
48
  platform: result.platform,
49
- servicePath: result.servicePath
49
+ servicePath: result.servicePath,
50
50
  });
51
51
  }
52
52
  }
53
53
  else {
54
- logger.info("Autostart skipped (--no-autostart)");
54
+ logger.info('Autostart skipped (--no-autostart)');
55
55
  }
56
56
  };
57
57
  //# sourceMappingURL=init.js.map
@@ -1,7 +1,7 @@
1
- import { restartDaemon } from "../daemon-control.js";
2
- import { logger } from "../logger.js";
1
+ import { restartDaemon } from '../daemon-control.js';
2
+ import { logger } from '../logger.js';
3
3
  export const runRestartCommand = async () => {
4
4
  await restartDaemon();
5
- logger.info("AgentRunner restart completed");
5
+ logger.info('AgentRunner restart completed');
6
6
  };
7
7
  //# sourceMappingURL=restart.js.map
@@ -1,9 +1,9 @@
1
- import { resolveRuntimeConfig } from "../config.js";
2
- import { startPolling } from "../poller.js";
3
- import { DaemonApiClient } from "../api-client.js";
4
- import { createTriggerHandler } from "../handlers/trigger-handler.js";
5
- import { writePidFile, removePidFile } from "../pid.js";
6
- import { logger } from "../logger.js";
1
+ import { resolveRuntimeConfig } from '../config.js';
2
+ import { startPolling } from '../poller.js';
3
+ import { DaemonApiClient } from '../api-client.js';
4
+ import { createTriggerHandler } from '../handlers/trigger-handler.js';
5
+ import { writePidFile, removePidFile } from '../pid.js';
6
+ import { logger } from '../logger.js';
7
7
  /**
8
8
  * Default CODEX_SANDBOX_LEVEL to "off" when not explicitly set.
9
9
  * Auto-start services (launchd/systemd/Startup) inject CODEX_SANDBOX_LEVEL=off
@@ -12,7 +12,7 @@ import { logger } from "../logger.js";
12
12
  */
13
13
  const ensureCodexSandboxDefault = () => {
14
14
  if (!process.env.CODEX_SANDBOX_LEVEL) {
15
- process.env.CODEX_SANDBOX_LEVEL = "off";
15
+ process.env.CODEX_SANDBOX_LEVEL = 'off';
16
16
  logger.info("CODEX_SANDBOX_LEVEL not set; defaulting to 'off' to match auto-start behavior");
17
17
  }
18
18
  };
@@ -22,9 +22,9 @@ export const runStartCommand = async () => {
22
22
  const cleanup = async () => {
23
23
  await removePidFile();
24
24
  };
25
- process.on("SIGINT", () => void cleanup());
26
- process.on("SIGTERM", () => void cleanup());
27
- process.on("exit", () => {
25
+ process.on('SIGINT', () => void cleanup());
26
+ process.on('SIGTERM', () => void cleanup());
27
+ process.on('exit', () => {
28
28
  // Synchronous best-effort — PID file may already be removed by signal handler.
29
29
  });
30
30
  const config = await resolveRuntimeConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,GAAS,EAAE;IAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,yBAAyB,EAAE,CAAC;IAC5B,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,+EAA+E;IACjF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtE,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAClD,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAC/D,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,GAAS,EAAE;IAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,yBAAyB,EAAE,CAAC;IAC5B,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,+EAA+E;IACjF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtE,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;AACvH,CAAC,CAAC"}
@@ -1,20 +1,20 @@
1
- import { logger } from "../logger.js";
2
- import { getDaemonStatus } from "../pid.js";
3
- import { getAutostartStatus } from "../autostart.js";
1
+ import { logger } from '../logger.js';
2
+ import { getDaemonStatus } from '../pid.js';
3
+ import { getAutostartStatus } from '../autostart.js';
4
4
  export const runStatusCommand = async () => {
5
5
  const daemonStatus = await getDaemonStatus();
6
6
  const autostartStatus = getAutostartStatus();
7
7
  if (daemonStatus.running) {
8
- logger.info("Daemon is running", { pid: daemonStatus.pid });
8
+ logger.info('Daemon is running', { pid: daemonStatus.pid });
9
9
  }
10
10
  else {
11
- logger.info("Daemon is not running");
11
+ logger.info('Daemon is not running');
12
12
  }
13
13
  if (autostartStatus.registered) {
14
- logger.info("Autostart is enabled", { platform: autostartStatus.platform });
14
+ logger.info('Autostart is enabled', { platform: autostartStatus.platform });
15
15
  }
16
16
  else {
17
- logger.info("Autostart is not registered", { platform: autostartStatus.platform });
17
+ logger.info('Autostart is not registered', { platform: autostartStatus.platform });
18
18
  }
19
19
  };
20
20
  //# sourceMappingURL=status.js.map
@@ -1,19 +1,19 @@
1
- import { logger } from "../logger.js";
2
- import { getDaemonStatus, removePidFile } from "../pid.js";
1
+ import { logger } from '../logger.js';
2
+ import { getDaemonStatus, removePidFile } from '../pid.js';
3
3
  export const runStopCommand = async () => {
4
4
  const { running, pid } = await getDaemonStatus();
5
5
  if (!running || pid === null) {
6
- logger.info("Daemon is not running");
6
+ logger.info('Daemon is not running');
7
7
  return;
8
8
  }
9
9
  try {
10
- process.kill(pid, "SIGTERM");
11
- logger.info("Sent SIGTERM to daemon", { pid });
10
+ process.kill(pid, 'SIGTERM');
11
+ logger.info('Sent SIGTERM to daemon', { pid });
12
12
  }
13
13
  catch (error) {
14
- logger.error("Failed to stop daemon", {
14
+ logger.error('Failed to stop daemon', {
15
15
  pid,
16
- error: error instanceof Error ? error.message : String(error)
16
+ error: error instanceof Error ? error.message : String(error),
17
17
  });
18
18
  }
19
19
  await removePidFile();
@@ -1,13 +1,13 @@
1
- import { logger } from "../logger.js";
2
- import { getDaemonStatus, removePidFile } from "../pid.js";
3
- import { unregisterAutostart } from "../autostart.js";
1
+ import { logger } from '../logger.js';
2
+ import { getDaemonStatus, removePidFile } from '../pid.js';
3
+ import { unregisterAutostart } from '../autostart.js';
4
4
  export const runUninstallCommand = async () => {
5
5
  // 1. Stop running daemon if any.
6
6
  const { running, pid } = await getDaemonStatus();
7
7
  if (running && pid !== null) {
8
8
  try {
9
- process.kill(pid, "SIGTERM");
10
- logger.info("Stopped running daemon", { pid });
9
+ process.kill(pid, 'SIGTERM');
10
+ logger.info('Stopped running daemon', { pid });
11
11
  }
12
12
  catch {
13
13
  // Process may have exited between check and kill.
@@ -16,6 +16,6 @@ export const runUninstallCommand = async () => {
16
16
  }
17
17
  // 2. Unregister autostart service.
18
18
  await unregisterAutostart();
19
- logger.info("Uninstall completed. Daemon service removed and autostart unregistered.");
19
+ logger.info('Uninstall completed. Daemon service removed and autostart unregistered.');
20
20
  };
21
21
  //# sourceMappingURL=uninstall.js.map
@@ -1,10 +1,10 @@
1
- import { restartDaemon } from "../daemon-control.js";
2
- import { runExecutableSync } from "../executable.js";
3
- import { logger } from "../logger.js";
1
+ import { restartDaemon } from '../daemon-control.js';
2
+ import { runExecutableSync } from '../executable.js';
3
+ import { logger } from '../logger.js';
4
4
  type UpdateDeps = {
5
5
  runExecutableSync?: typeof runExecutableSync;
6
6
  restartDaemon?: typeof restartDaemon;
7
- logger?: Pick<typeof logger, "info" | "warn">;
7
+ logger?: Pick<typeof logger, 'info' | 'warn'>;
8
8
  };
9
9
  export declare const runUpdateCommand: (deps?: UpdateDeps) => Promise<void>;
10
10
  export {};
@@ -1,29 +1,27 @@
1
- import { createRequire } from "node:module";
2
- import { restartDaemon } from "../daemon-control.js";
3
- import { runExecutableSync } from "../executable.js";
4
- import { logger } from "../logger.js";
1
+ import { createRequire } from 'node:module';
2
+ import { restartDaemon } from '../daemon-control.js';
3
+ import { runExecutableSync } from '../executable.js';
4
+ import { logger } from '../logger.js';
5
5
  const require = createRequire(import.meta.url);
6
- const packageJson = require("../../package.json");
7
- const packageName = "@agentteams/runner";
8
- const getCurrentVersion = () => packageJson.version ?? "0.0.0";
6
+ const packageJson = require('../../package.json');
7
+ const packageName = '@agentteams/runner';
8
+ const getCurrentVersion = () => packageJson.version ?? '0.0.0';
9
9
  const readLatestVersion = (deps) => {
10
10
  try {
11
- const latestVersion = deps.runExecutableSync("npm", ["view", packageName, "version"]).trim();
11
+ const latestVersion = deps.runExecutableSync('npm', ['view', packageName, 'version']).trim();
12
12
  return latestVersion.length > 0 ? latestVersion : null;
13
13
  }
14
14
  catch (error) {
15
- deps.logger.warn("Failed to resolve latest AgentRunner version before update", {
16
- error: error instanceof Error ? error.message : String(error)
15
+ deps.logger.warn('Failed to resolve latest AgentRunner version before update', {
16
+ error: error instanceof Error ? error.message : String(error),
17
17
  });
18
18
  return null;
19
19
  }
20
20
  };
21
21
  const normalizeInstallError = (error) => {
22
22
  const message = error instanceof Error ? error.message : String(error);
23
- if (message.includes("EACCES")
24
- || message.includes("EPERM")
25
- || message.toLowerCase().includes("permission denied")) {
26
- return new Error("Global npm install requires elevated permissions. Configure a user-level npm prefix or rerun the update with appropriate permissions.");
23
+ if (message.includes('EACCES') || message.includes('EPERM') || message.toLowerCase().includes('permission denied')) {
24
+ return new Error('Global npm install requires elevated permissions. Configure a user-level npm prefix or rerun the update with appropriate permissions.');
27
25
  }
28
26
  return new Error(`Failed to install the latest AgentRunner package: ${message}`);
29
27
  };
@@ -34,25 +32,25 @@ export const runUpdateCommand = async (deps = {}) => {
34
32
  const currentVersion = getCurrentVersion();
35
33
  const latestVersion = readLatestVersion({
36
34
  runExecutableSync: resolvedRunExecutableSync,
37
- logger: resolvedLogger
35
+ logger: resolvedLogger,
38
36
  });
39
- resolvedLogger.info("Updating AgentRunner package", {
37
+ resolvedLogger.info('Updating AgentRunner package', {
40
38
  currentVersion,
41
- targetVersion: latestVersion ?? "latest"
39
+ targetVersion: latestVersion ?? 'latest',
42
40
  });
43
41
  try {
44
- resolvedRunExecutableSync("npm", ["install", "-g", `${packageName}@latest`]);
42
+ resolvedRunExecutableSync('npm', ['install', '-g', `${packageName}@latest`]);
45
43
  }
46
44
  catch (error) {
47
45
  throw normalizeInstallError(error);
48
46
  }
49
- resolvedLogger.info("Package update completed", {
50
- version: latestVersion ?? "latest"
47
+ resolvedLogger.info('Package update completed', {
48
+ version: latestVersion ?? 'latest',
51
49
  });
52
50
  await resolvedRestartDaemon();
53
- resolvedLogger.info("AgentRunner update completed", {
51
+ resolvedLogger.info('AgentRunner update completed', {
54
52
  currentVersion,
55
- targetVersion: latestVersion ?? "latest"
53
+ targetVersion: latestVersion ?? 'latest',
56
54
  });
57
55
  };
58
56
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import assert from "node:assert/strict";
2
- import test from "node:test";
3
- import { runUpdateCommand } from "./update.js";
4
- test("runUpdateCommand installs latest package and restarts daemon", async () => {
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { runUpdateCommand } from './update.js';
4
+ test('runUpdateCommand installs latest package and restarts daemon', async () => {
5
5
  const commandCalls = [];
6
6
  const logs = [];
7
7
  let restarted = false;
8
8
  await runUpdateCommand({
9
9
  runExecutableSync: (name, args) => {
10
10
  commandCalls.push({ name, args });
11
- if (args[0] === "view") {
12
- return "0.0.13\n";
11
+ if (args[0] === 'view') {
12
+ return '0.0.13\n';
13
13
  }
14
- return "";
14
+ return '';
15
15
  },
16
16
  restartDaemon: async () => {
17
17
  restarted = true;
@@ -20,85 +20,81 @@ test("runUpdateCommand installs latest package and restarts daemon", async () =>
20
20
  info: (message) => {
21
21
  logs.push(message);
22
22
  },
23
- warn: () => undefined
24
- }
23
+ warn: () => undefined,
24
+ },
25
25
  });
26
26
  assert.deepEqual(commandCalls, [
27
27
  {
28
- name: "npm",
29
- args: ["view", "@agentteams/runner", "version"]
28
+ name: 'npm',
29
+ args: ['view', '@agentteams/runner', 'version'],
30
30
  },
31
31
  {
32
- name: "npm",
33
- args: ["install", "-g", "@agentteams/runner@latest"]
34
- }
32
+ name: 'npm',
33
+ args: ['install', '-g', '@agentteams/runner@latest'],
34
+ },
35
35
  ]);
36
36
  assert.equal(restarted, true);
37
- assert.deepEqual(logs, [
38
- "Updating AgentRunner package",
39
- "Package update completed",
40
- "AgentRunner update completed"
41
- ]);
37
+ assert.deepEqual(logs, ['Updating AgentRunner package', 'Package update completed', 'AgentRunner update completed']);
42
38
  });
43
- test("runUpdateCommand continues update when latest version lookup fails", async () => {
39
+ test('runUpdateCommand continues update when latest version lookup fails', async () => {
44
40
  const commandCalls = [];
45
41
  const warnings = [];
46
42
  await runUpdateCommand({
47
43
  runExecutableSync: (name, args) => {
48
44
  commandCalls.push({ name, args });
49
- if (args[0] === "view") {
50
- throw new Error("network unavailable");
45
+ if (args[0] === 'view') {
46
+ throw new Error('network unavailable');
51
47
  }
52
- return "";
48
+ return '';
53
49
  },
54
50
  restartDaemon: async () => undefined,
55
51
  logger: {
56
52
  info: () => undefined,
57
53
  warn: (message) => {
58
54
  warnings.push(message);
59
- }
60
- }
55
+ },
56
+ },
61
57
  });
62
58
  assert.equal(warnings.length, 1);
63
59
  assert.deepEqual(commandCalls, [
64
60
  {
65
- name: "npm",
66
- args: ["view", "@agentteams/runner", "version"]
61
+ name: 'npm',
62
+ args: ['view', '@agentteams/runner', 'version'],
67
63
  },
68
64
  {
69
- name: "npm",
70
- args: ["install", "-g", "@agentteams/runner@latest"]
71
- }
65
+ name: 'npm',
66
+ args: ['install', '-g', '@agentteams/runner@latest'],
67
+ },
72
68
  ]);
73
69
  });
74
- test("runUpdateCommand surfaces a friendly message when global npm install needs permissions", async () => {
70
+ test('runUpdateCommand surfaces a friendly message when global npm install needs permissions', async () => {
75
71
  await assert.rejects(() => runUpdateCommand({
76
72
  runExecutableSync: (_name, args) => {
77
- if (args[0] === "view") {
78
- return "0.0.13\n";
73
+ if (args[0] === 'view') {
74
+ return '0.0.13\n';
79
75
  }
80
- throw new Error("npm ERR! code EACCES");
76
+ throw new Error('npm ERR! code EACCES');
81
77
  },
82
78
  restartDaemon: async () => undefined,
83
79
  logger: {
84
80
  info: () => undefined,
85
- warn: () => undefined
86
- }
81
+ warn: () => undefined,
82
+ },
87
83
  }), /Global npm install requires elevated permissions/u);
88
84
  });
89
- test("runUpdateCommand surfaces install failures with command context", async () => {
85
+ test('runUpdateCommand surfaces install failures with command context', async () => {
90
86
  await assert.rejects(() => runUpdateCommand({
91
87
  runExecutableSync: (_name, args) => {
92
- if (args[0] === "view") {
93
- return "0.0.13\n";
88
+ if (args[0] === 'view') {
89
+ return '0.0.13\n';
94
90
  }
95
- throw new Error("registry unavailable");
91
+ throw new Error('registry unavailable');
96
92
  },
97
93
  restartDaemon: async () => undefined,
98
94
  logger: {
99
95
  info: () => undefined,
100
- warn: () => undefined
101
- }
96
+ warn: () => undefined,
97
+ },
102
98
  }), /Failed to install the latest AgentRunner package: registry unavailable/u);
103
99
  });
104
100
  //# sourceMappingURL=update.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../src/commands/update.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../src/commands/update.test.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { DaemonConfigFile, RuntimeConfig } from "./types.js";
1
+ import type { DaemonConfigFile, RuntimeConfig } from './types.js';
2
2
  export declare const getDaemonConfigPath: () => string;
3
3
  export declare const readDaemonConfigFile: () => Promise<DaemonConfigFile | null>;
4
4
  export declare const writeDaemonConfigFile: (config: DaemonConfigFile) => Promise<string>;
package/dist/config.js CHANGED
@@ -1,26 +1,26 @@
1
- import { chmodSync, promises as fs } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { dirname, join } from "node:path";
1
+ import { chmodSync, promises as fs } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
4
  const DEFAULT_POLLING_INTERVAL_MS = 30_000;
5
5
  const DEFAULT_TIMEOUT_MS = 24 * 60 * 60 * 1000;
6
6
  const DEFAULT_IDLE_TIMEOUT_MS = 600_000;
7
- const DEFAULT_RUNNER_CMD = "opencode";
8
- const DEFAULT_API_URL = "https://api.agentteams.run";
7
+ const DEFAULT_RUNNER_CMD = 'opencode';
8
+ const DEFAULT_API_URL = 'https://api.agentteams.run';
9
9
  const parseBoolean = (rawValue, fallback) => {
10
10
  if (rawValue === undefined) {
11
11
  return fallback;
12
12
  }
13
13
  const normalized = rawValue.trim().toLowerCase();
14
- if (["false", "0", "no", "off"].includes(normalized)) {
14
+ if (['false', '0', 'no', 'off'].includes(normalized)) {
15
15
  return false;
16
16
  }
17
- if (["true", "1", "yes", "on"].includes(normalized)) {
17
+ if (['true', '1', 'yes', 'on'].includes(normalized)) {
18
18
  return true;
19
19
  }
20
20
  return fallback;
21
21
  };
22
22
  export const getDaemonConfigPath = () => {
23
- return join(homedir(), ".agentteams", "daemon.json");
23
+ return join(homedir(), '.agentteams', 'daemon.json');
24
24
  };
25
25
  const parsePositiveInteger = (rawValue, fallback) => {
26
26
  if (!rawValue) {
@@ -35,14 +35,14 @@ const parsePositiveInteger = (rawValue, fallback) => {
35
35
  export const readDaemonConfigFile = async () => {
36
36
  const path = getDaemonConfigPath();
37
37
  try {
38
- const content = await fs.readFile(path, "utf8");
38
+ const content = await fs.readFile(path, 'utf8');
39
39
  const parsed = JSON.parse(content);
40
40
  if (!parsed.daemonToken || !parsed.apiUrl) {
41
41
  return null;
42
42
  }
43
43
  return {
44
44
  daemonToken: parsed.daemonToken,
45
- apiUrl: parsed.apiUrl
45
+ apiUrl: parsed.apiUrl,
46
46
  };
47
47
  }
48
48
  catch {
@@ -52,7 +52,7 @@ export const readDaemonConfigFile = async () => {
52
52
  export const writeDaemonConfigFile = async (config) => {
53
53
  const path = getDaemonConfigPath();
54
54
  await fs.mkdir(dirname(path), { recursive: true });
55
- await fs.writeFile(path, JSON.stringify(config, null, 2), "utf8");
55
+ await fs.writeFile(path, JSON.stringify(config, null, 2), 'utf8');
56
56
  chmodSync(path, 0o600);
57
57
  return path;
58
58
  };
@@ -71,7 +71,7 @@ export const resolveRuntimeConfig = async () => {
71
71
  idleTimeoutMs: parsePositiveInteger(process.env.IDLE_TIMEOUT_MS, DEFAULT_IDLE_TIMEOUT_MS),
72
72
  runnerCmd: process.env.RUNNER_CMD?.trim() || DEFAULT_RUNNER_CMD,
73
73
  // macOS에서는 기본 활성. 비 macOS는 유틸 레벨에서 no-op으로 처리된다.
74
- preventSleepWhileBusy: parseBoolean(process.env.DAEMON_PREVENT_SLEEP, true)
74
+ preventSleepWhileBusy: parseBoolean(process.env.DAEMON_PREVENT_SLEEP, true),
75
75
  };
76
76
  };
77
77
  export const resolveApiUrlForInit = async (apiUrlArg) => {