@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
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type OsType = "MACOS" | "LINUX" | "WINDOWS";
1
+ export type OsType = 'MACOS' | 'LINUX' | 'WINDOWS';
2
2
  export type RuntimeConfig = {
3
3
  daemonToken: string;
4
4
  apiUrl: string;
@@ -57,7 +57,7 @@ export type PendingResponse = {
57
57
  data: DaemonTrigger | null;
58
58
  meta?: PendingMeta;
59
59
  };
60
- export type TriggerFinalStatus = "DONE" | "CANCELLED" | "FAILED" | "REJECTED" | "NEEDS_REVIEW";
60
+ export type TriggerFinalStatus = 'DONE' | 'CANCELLED' | 'FAILED' | 'REJECTED' | 'NEEDS_REVIEW';
61
61
  export type ClaimResult = {
62
62
  ok: boolean;
63
63
  conflict: boolean;
@@ -69,7 +69,7 @@ export type ConventionMeta = {
69
69
  title: string;
70
70
  description: string | null;
71
71
  };
72
- export type DaemonTriggerConventionSource = "AUTO_MATCH" | "PROMPT_REFERENCE" | "USER_CUSTOM";
72
+ export type DaemonTriggerConventionSource = 'AUTO_MATCH' | 'PROMPT_REFERENCE' | 'USER_CUSTOM';
73
73
  export type InjectedConventionRecord = {
74
74
  conventionId: string;
75
75
  source: DaemonTriggerConventionSource;
@@ -99,7 +99,7 @@ export type TriggerRuntimeAttachment = {
99
99
  downloadUrl: string;
100
100
  expiresInSeconds: number;
101
101
  };
102
- export type TriggerLogLevel = "INFO" | "WARN" | "ERROR";
102
+ export type TriggerLogLevel = 'INFO' | 'WARN' | 'ERROR';
103
103
  export type TriggerLogInput = {
104
104
  level: TriggerLogLevel;
105
105
  message: string;
@@ -1,21 +1,21 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { dirname, join } from "node:path";
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
4
  const normalizeAuthPaths = (value) => {
5
5
  if (!Array.isArray(value)) {
6
6
  return [];
7
7
  }
8
- return [...new Set(value.filter((entry) => typeof entry === "string" && entry.length > 0))];
8
+ return [...new Set(value.filter((entry) => typeof entry === 'string' && entry.length > 0))];
9
9
  };
10
10
  export const getAuthPathStorePath = () => {
11
- return join(homedir(), ".agentteams", "auth-paths.json");
11
+ return join(homedir(), '.agentteams', 'auth-paths.json');
12
12
  };
13
13
  export const loadAuthPaths = (filePath = getAuthPathStorePath()) => {
14
14
  if (!existsSync(filePath)) {
15
15
  return [];
16
16
  }
17
17
  try {
18
- const parsed = JSON.parse(readFileSync(filePath, "utf8"));
18
+ const parsed = JSON.parse(readFileSync(filePath, 'utf8'));
19
19
  if (Array.isArray(parsed)) {
20
20
  return normalizeAuthPaths(parsed);
21
21
  }
@@ -31,7 +31,7 @@ export const saveAuthPath = (authPath, filePath = getAuthPathStorePath()) => {
31
31
  return filePath;
32
32
  }
33
33
  mkdirSync(dirname(filePath), { recursive: true });
34
- writeFileSync(filePath, JSON.stringify({ authPaths: [...authPaths, authPath] }, null, 2), "utf8");
34
+ writeFileSync(filePath, JSON.stringify({ authPaths: [...authPaths, authPath] }, null, 2), 'utf8');
35
35
  return filePath;
36
36
  };
37
37
  //# sourceMappingURL=auth-path-store.js.map
@@ -1,26 +1,21 @@
1
- import assert from "node:assert/strict";
2
- import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import test from "node:test";
6
- import { getAuthPathStorePath, loadAuthPaths, saveAuthPath } from "./auth-path-store.js";
7
- const envKeys = [
8
- "HOME",
9
- "USERPROFILE",
10
- "HOMEDRIVE",
11
- "HOMEPATH",
12
- ];
1
+ import assert from 'node:assert/strict';
2
+ import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import test from 'node:test';
6
+ import { getAuthPathStorePath, loadAuthPaths, saveAuthPath } from './auth-path-store.js';
7
+ const envKeys = ['HOME', 'USERPROFILE', 'HOMEDRIVE', 'HOMEPATH'];
13
8
  const withTempHome = async (run) => {
14
9
  const previousEnv = new Map();
15
10
  for (const key of envKeys) {
16
11
  previousEnv.set(key, process.env[key]);
17
12
  delete process.env[key];
18
13
  }
19
- const homeDir = await mkdtemp(join(tmpdir(), "auth-path-store-test-"));
14
+ const homeDir = await mkdtemp(join(tmpdir(), 'auth-path-store-test-'));
20
15
  process.env.HOME = homeDir;
21
16
  process.env.USERPROFILE = homeDir;
22
- process.env.HOMEDRIVE = "";
23
- process.env.HOMEPATH = "";
17
+ process.env.HOMEDRIVE = '';
18
+ process.env.HOMEPATH = '';
24
19
  try {
25
20
  await run(homeDir);
26
21
  }
@@ -37,34 +32,34 @@ const withTempHome = async (run) => {
37
32
  }
38
33
  }
39
34
  };
40
- test("loadAuthPaths returns an empty array when the store does not exist", async () => {
35
+ test('loadAuthPaths returns an empty array when the store does not exist', async () => {
41
36
  await withTempHome(async () => {
42
37
  assert.deepEqual(loadAuthPaths(), []);
43
38
  });
44
39
  });
45
- test("saveAuthPath persists unique auth paths in the daemon home directory", async () => {
40
+ test('saveAuthPath persists unique auth paths in the daemon home directory', async () => {
46
41
  await withTempHome(async (homeDir) => {
47
- const expectedPath = join(homeDir, ".agentteams", "auth-paths.json");
48
- const savedPath = saveAuthPath("/repo/one");
49
- saveAuthPath("/repo/one");
50
- saveAuthPath("/repo/two");
42
+ const expectedPath = join(homeDir, '.agentteams', 'auth-paths.json');
43
+ const savedPath = saveAuthPath('/repo/one');
44
+ saveAuthPath('/repo/one');
45
+ saveAuthPath('/repo/two');
51
46
  assert.equal(savedPath, expectedPath);
52
47
  assert.equal(getAuthPathStorePath(), expectedPath);
53
- assert.deepEqual(loadAuthPaths(), ["/repo/one", "/repo/two"]);
54
- const content = JSON.parse(await readFile(expectedPath, "utf8"));
48
+ assert.deepEqual(loadAuthPaths(), ['/repo/one', '/repo/two']);
49
+ const content = JSON.parse(await readFile(expectedPath, 'utf8'));
55
50
  assert.deepEqual(content, {
56
- authPaths: ["/repo/one", "/repo/two"]
51
+ authPaths: ['/repo/one', '/repo/two'],
57
52
  });
58
53
  });
59
54
  });
60
- test("loadAuthPaths tolerates invalid or legacy store formats", async () => {
55
+ test('loadAuthPaths tolerates invalid or legacy store formats', async () => {
61
56
  await withTempHome(async () => {
62
57
  const filePath = getAuthPathStorePath();
63
- await mkdir(join(filePath, ".."), { recursive: true });
64
- await writeFile(filePath, "{invalid", "utf8");
58
+ await mkdir(join(filePath, '..'), { recursive: true });
59
+ await writeFile(filePath, '{invalid', 'utf8');
65
60
  assert.deepEqual(loadAuthPaths(), []);
66
- await writeFile(filePath, JSON.stringify(["/repo/one", "/repo/one", 123]), "utf8");
67
- assert.deepEqual(loadAuthPaths(), ["/repo/one"]);
61
+ await writeFile(filePath, JSON.stringify(['/repo/one', '/repo/one', 123]), 'utf8');
62
+ assert.deepEqual(loadAuthPaths(), ['/repo/one']);
68
63
  });
69
64
  });
70
65
  //# sourceMappingURL=auth-path-store.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-path-store.test.js","sourceRoot":"","sources":["../../src/utils/auth-path-store.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-path-store.test.js","sourceRoot":"","sources":["../../src/utils/auth-path-store.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { runExecutableSync } from "../executable.js";
2
- import { logger } from "../logger.js";
3
- import type { PendingMeta } from "../types.js";
1
+ import { runExecutableSync } from '../executable.js';
2
+ import { logger } from '../logger.js';
3
+ import type { PendingMeta } from '../types.js';
4
4
  type AutoUpdateDeps = {
5
5
  runExecutableSync?: typeof runExecutableSync;
6
- logger?: Pick<typeof logger, "info" | "warn" | "error">;
6
+ logger?: Pick<typeof logger, 'info' | 'warn' | 'error'>;
7
7
  now?: () => number;
8
8
  onRunnerUpdated?: (version: string) => Promise<void>;
9
9
  };
@@ -1,19 +1,19 @@
1
- import { createRequire } from "node:module";
2
- import { runExecutableSync } from "../executable.js";
3
- import { logger } from "../logger.js";
1
+ import { createRequire } from 'node:module';
2
+ import { runExecutableSync } from '../executable.js';
3
+ import { logger } from '../logger.js';
4
4
  const require = createRequire(import.meta.url);
5
- const packageJson = require("../../package.json");
6
- const CLI_PACKAGE = "@agentteams/cli";
7
- const RUNNER_PACKAGE = "@agentteams/runner";
5
+ const packageJson = require('../../package.json');
6
+ const CLI_PACKAGE = '@agentteams/cli';
7
+ const RUNNER_PACKAGE = '@agentteams/runner';
8
8
  const COOLDOWN_MS = 60 * 60 * 1000; // 1시간
9
9
  let lastCliUpdateAttempt = 0;
10
10
  let lastRunnerUpdateAttempt = 0;
11
11
  let lastSuccessfulRunnerVersion = null;
12
12
  let lastNotifiedRunnerVersion = null;
13
- const getCurrentRunnerVersion = () => packageJson.version ?? "0.0.0";
13
+ const getCurrentRunnerVersion = () => packageJson.version ?? '0.0.0';
14
14
  const getInstalledCliVersion = (deps) => {
15
15
  try {
16
- const version = deps.runExecutableSync("npm", ["list", "-g", CLI_PACKAGE, "--depth=0", "--json"]);
16
+ const version = deps.runExecutableSync('npm', ['list', '-g', CLI_PACKAGE, '--depth=0', '--json']);
17
17
  const parsed = JSON.parse(version);
18
18
  return parsed.dependencies?.[CLI_PACKAGE]?.version ?? null;
19
19
  }
@@ -27,7 +27,7 @@ const needsUpdate = (currentVersion, latestVersion) => {
27
27
  return currentVersion !== latestVersion;
28
28
  };
29
29
  const installPackage = (packageName, version, deps) => {
30
- deps.runExecutableSync("npm", ["install", "-g", `${packageName}@${version}`]);
30
+ deps.runExecutableSync('npm', ['install', '-g', `${packageName}@${version}`]);
31
31
  };
32
32
  export const maybeAutoUpdate = async (meta, deps = {}) => {
33
33
  if (!meta)
@@ -42,25 +42,25 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
42
42
  lastCliUpdateAttempt = now;
43
43
  const currentCliVersion = getInstalledCliVersion({
44
44
  runExecutableSync: resolvedRunExecutableSync,
45
- logger: resolvedLogger
45
+ logger: resolvedLogger,
46
46
  });
47
47
  if (needsUpdate(currentCliVersion, meta.cliLatestVersion)) {
48
48
  try {
49
- resolvedLogger.info("Auto-updating CLI", {
49
+ resolvedLogger.info('Auto-updating CLI', {
50
50
  currentVersion: currentCliVersion,
51
- targetVersion: meta.cliLatestVersion
51
+ targetVersion: meta.cliLatestVersion,
52
52
  });
53
53
  installPackage(CLI_PACKAGE, meta.cliLatestVersion, {
54
- runExecutableSync: resolvedRunExecutableSync
54
+ runExecutableSync: resolvedRunExecutableSync,
55
55
  });
56
56
  cliUpdated = true;
57
- resolvedLogger.info("CLI auto-update completed", {
58
- version: meta.cliLatestVersion
57
+ resolvedLogger.info('CLI auto-update completed', {
58
+ version: meta.cliLatestVersion,
59
59
  });
60
60
  }
61
61
  catch (error) {
62
- resolvedLogger.error("CLI auto-update failed", {
63
- error: error instanceof Error ? error.message : String(error)
62
+ resolvedLogger.error('CLI auto-update failed', {
63
+ error: error instanceof Error ? error.message : String(error),
64
64
  });
65
65
  }
66
66
  }
@@ -72,36 +72,38 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
72
72
  const isAlreadyInstalled = lastSuccessfulRunnerVersion === meta.runnerLatestVersion;
73
73
  if (!isAlreadyInstalled && needsUpdate(currentRunnerVersion, meta.runnerLatestVersion)) {
74
74
  try {
75
- resolvedLogger.info("Auto-updating Runner", {
75
+ resolvedLogger.info('Auto-updating Runner', {
76
76
  currentVersion: currentRunnerVersion,
77
- targetVersion: meta.runnerLatestVersion
77
+ targetVersion: meta.runnerLatestVersion,
78
78
  });
79
79
  installPackage(RUNNER_PACKAGE, meta.runnerLatestVersion, {
80
- runExecutableSync: resolvedRunExecutableSync
80
+ runExecutableSync: resolvedRunExecutableSync,
81
81
  });
82
82
  runnerUpdated = true;
83
83
  lastSuccessfulRunnerVersion = meta.runnerLatestVersion;
84
- resolvedLogger.info("Runner auto-update completed — restart required", {
85
- version: meta.runnerLatestVersion
84
+ resolvedLogger.info('Runner auto-update completed — restart required', {
85
+ version: meta.runnerLatestVersion,
86
86
  });
87
87
  }
88
88
  catch (error) {
89
- resolvedLogger.error("Runner auto-update failed", {
90
- error: error instanceof Error ? error.message : String(error)
89
+ resolvedLogger.error('Runner auto-update failed', {
90
+ error: error instanceof Error ? error.message : String(error),
91
91
  });
92
92
  }
93
93
  }
94
94
  }
95
95
  // Runner 알림: 설치 성공 후 알림 미완료 시 매 폴링마다 재시도
96
- if (meta.runnerLatestVersion && lastSuccessfulRunnerVersion === meta.runnerLatestVersion
97
- && lastNotifiedRunnerVersion !== meta.runnerLatestVersion && deps.onRunnerUpdated) {
96
+ if (meta.runnerLatestVersion &&
97
+ lastSuccessfulRunnerVersion === meta.runnerLatestVersion &&
98
+ lastNotifiedRunnerVersion !== meta.runnerLatestVersion &&
99
+ deps.onRunnerUpdated) {
98
100
  try {
99
101
  await deps.onRunnerUpdated(meta.runnerLatestVersion);
100
102
  lastNotifiedRunnerVersion = meta.runnerLatestVersion;
101
103
  }
102
104
  catch (notifyError) {
103
- resolvedLogger.error("Failed to notify runner update", {
104
- error: notifyError instanceof Error ? notifyError.message : String(notifyError)
105
+ resolvedLogger.error('Failed to notify runner update', {
106
+ error: notifyError instanceof Error ? notifyError.message : String(notifyError),
105
107
  });
106
108
  }
107
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/utils/auto-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/utils/auto-update.ts"],"names":[],"mappings":"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"}
@@ -1,57 +1,57 @@
1
- import { test } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { maybeAutoUpdate, resetAutoUpdateState } from "./auto-update.js";
4
- test("maybeAutoUpdate calls onRunnerUpdated after successful install", async () => {
1
+ import { test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { maybeAutoUpdate, resetAutoUpdateState } from './auto-update.js';
4
+ test('maybeAutoUpdate calls onRunnerUpdated after successful install', async () => {
5
5
  resetAutoUpdateState();
6
6
  let installCalled = false;
7
7
  let notifiedVersion = null;
8
8
  const deps = {
9
9
  runExecutableSync: (name, args) => {
10
- if (name === "npm" && args[0] === "install") {
10
+ if (name === 'npm' && args[0] === 'install') {
11
11
  installCalled = true;
12
12
  }
13
- return "";
13
+ return '';
14
14
  },
15
15
  logger: {
16
16
  info: () => { },
17
17
  warn: () => { },
18
- error: () => { }
18
+ error: () => { },
19
19
  },
20
20
  now: () => Date.now(),
21
21
  onRunnerUpdated: async (version) => {
22
22
  notifiedVersion = version;
23
- }
23
+ },
24
24
  };
25
25
  const meta = {
26
26
  cliLatestVersion: null,
27
- runnerLatestVersion: "99.9.9",
27
+ runnerLatestVersion: '99.9.9',
28
28
  };
29
29
  await maybeAutoUpdate(meta, deps);
30
- assert.ok(installCalled, "installPackage should be called");
31
- assert.equal(notifiedVersion, "99.9.9", "onRunnerUpdated should be called with new version");
30
+ assert.ok(installCalled, 'installPackage should be called');
31
+ assert.equal(notifiedVersion, '99.9.9', 'onRunnerUpdated should be called with new version');
32
32
  });
33
- test("maybeAutoUpdate does not call onRunnerUpdated again if it already succeeded for that version", async () => {
33
+ test('maybeAutoUpdate does not call onRunnerUpdated again if it already succeeded for that version', async () => {
34
34
  resetAutoUpdateState();
35
35
  let installCount = 0;
36
36
  let notifyCount = 0;
37
37
  const deps = {
38
38
  runExecutableSync: () => {
39
39
  installCount++;
40
- return "";
40
+ return '';
41
41
  },
42
42
  logger: {
43
43
  info: () => { },
44
44
  warn: () => { },
45
- error: () => { }
45
+ error: () => { },
46
46
  },
47
47
  now: () => Date.now(),
48
48
  onRunnerUpdated: async () => {
49
49
  notifyCount++;
50
- }
50
+ },
51
51
  };
52
52
  const meta = {
53
53
  cliLatestVersion: null,
54
- runnerLatestVersion: "99.9.9",
54
+ runnerLatestVersion: '99.9.9',
55
55
  };
56
56
  // First call
57
57
  await maybeAutoUpdate(meta, deps);
@@ -59,42 +59,42 @@ test("maybeAutoUpdate does not call onRunnerUpdated again if it already succeede
59
59
  assert.equal(notifyCount, 1);
60
60
  // Second call with same version
61
61
  await maybeAutoUpdate(meta, { ...deps, now: () => Date.now() + 60 * 60 * 1000 + 1 });
62
- assert.equal(installCount, 1, "should not install again");
63
- assert.equal(notifyCount, 1, "should not notify again");
62
+ assert.equal(installCount, 1, 'should not install again');
63
+ assert.equal(notifyCount, 1, 'should not notify again');
64
64
  });
65
- test("maybeAutoUpdate RETRIES notification if it failed before", async () => {
65
+ test('maybeAutoUpdate RETRIES notification if it failed before', async () => {
66
66
  resetAutoUpdateState();
67
67
  let notifyCount = 0;
68
68
  let shouldFailNotify = true;
69
69
  const deps = {
70
- runExecutableSync: () => "",
70
+ runExecutableSync: () => '',
71
71
  logger: {
72
72
  info: () => { },
73
73
  warn: () => { },
74
- error: () => { }
74
+ error: () => { },
75
75
  },
76
76
  now: () => 10000000,
77
77
  onRunnerUpdated: async () => {
78
78
  if (shouldFailNotify) {
79
79
  shouldFailNotify = false;
80
- throw new Error("Network error");
80
+ throw new Error('Network error');
81
81
  }
82
82
  notifyCount++;
83
- }
83
+ },
84
84
  };
85
85
  const meta = {
86
86
  cliLatestVersion: null,
87
- runnerLatestVersion: "99.9.9",
87
+ runnerLatestVersion: '99.9.9',
88
88
  };
89
89
  // First call: install succeeds, notification fails
90
- console.log("First call starting...");
90
+ console.log('First call starting...');
91
91
  await maybeAutoUpdate(meta, deps);
92
- console.log("First call done. notifyCount:", notifyCount);
93
- assert.equal(notifyCount, 0, "Notification should have failed");
92
+ console.log('First call done. notifyCount:', notifyCount);
93
+ assert.equal(notifyCount, 0, 'Notification should have failed');
94
94
  // Second call: after cooldown
95
- console.log("Second call starting...");
95
+ console.log('Second call starting...');
96
96
  await maybeAutoUpdate(meta, { ...deps, now: () => 10000000 + 60 * 60 * 1000 + 1 });
97
- console.log("Second call done. notifyCount:", notifyCount);
98
- assert.equal(notifyCount, 1, "Should retry notification successfully");
97
+ console.log('Second call done. notifyCount:', notifyCount);
98
+ assert.equal(notifyCount, 1, 'Should retry notification successfully');
99
99
  });
100
100
  //# sourceMappingURL=auto-update.test.js.map
@@ -1,4 +1,4 @@
1
- import type { ConventionMeta } from "../types.js";
1
+ import type { ConventionMeta } from '../types.js';
2
2
  type EvaluationContext = {
3
3
  authPath: string;
4
4
  planType: string | null;
@@ -1,50 +1,51 @@
1
- import { execFileSync } from "node:child_process";
2
- import { matchesGlob } from "node:path";
3
- import { logger } from "../logger.js";
1
+ import { execFileSync } from 'node:child_process';
2
+ import { matchesGlob } from 'node:path';
3
+ import { logger } from '../logger.js';
4
4
  const parseConditionalTrigger = (trigger) => {
5
- const parts = trigger.split("|").map((p) => p.trim()).filter(Boolean);
5
+ const parts = trigger
6
+ .split('|')
7
+ .map((p) => p.trim())
8
+ .filter(Boolean);
6
9
  const filePatterns = [];
7
10
  const taskTypes = [];
8
11
  for (const part of parts) {
9
- if (part.startsWith("file:")) {
12
+ if (part.startsWith('file:')) {
10
13
  const pattern = part.slice(5).trim();
11
14
  if (pattern.length > 0)
12
15
  filePatterns.push(pattern);
13
16
  }
14
- else if (part.startsWith("task:")) {
17
+ else if (part.startsWith('task:')) {
15
18
  const taskType = part.slice(5).trim().toUpperCase();
16
19
  if (taskType.length > 0)
17
20
  taskTypes.push(taskType);
18
21
  }
19
22
  }
20
23
  if (filePatterns.length > 0 && taskTypes.length > 0) {
21
- return { type: "composite", filePatterns, taskTypes };
24
+ return { type: 'composite', filePatterns, taskTypes };
22
25
  }
23
26
  if (filePatterns.length > 0)
24
- return { type: "file", patterns: filePatterns };
27
+ return { type: 'file', patterns: filePatterns };
25
28
  if (taskTypes.length > 0)
26
- return { type: "task", taskTypes };
29
+ return { type: 'task', taskTypes };
27
30
  return null;
28
31
  };
29
32
  const getChangedFiles = (authPath) => {
30
33
  try {
31
- const output = execFileSync("git", ["diff", "--name-only", "HEAD"], {
34
+ const output = execFileSync('git', ['diff', '--name-only', 'HEAD'], {
32
35
  cwd: authPath,
33
- encoding: "utf8",
36
+ encoding: 'utf8',
34
37
  timeout: 10_000,
35
38
  });
36
- const statusOutput = execFileSync("git", ["ls-files", "--others", "--exclude-standard"], {
39
+ const statusOutput = execFileSync('git', ['ls-files', '--others', '--exclude-standard'], {
37
40
  cwd: authPath,
38
- encoding: "utf8",
41
+ encoding: 'utf8',
39
42
  timeout: 10_000,
40
43
  });
41
- const files = [...output.split("\n"), ...statusOutput.split("\n")]
42
- .map((f) => f.trim())
43
- .filter(Boolean);
44
+ const files = [...output.split('\n'), ...statusOutput.split('\n')].map((f) => f.trim()).filter(Boolean);
44
45
  return Array.from(new Set(files));
45
46
  }
46
47
  catch (error) {
47
- logger.warn("Failed to get changed files for convention evaluation", {
48
+ logger.warn('Failed to get changed files for convention evaluation', {
48
49
  authPath,
49
50
  error: error instanceof Error ? error.message : String(error),
50
51
  });
@@ -78,7 +79,7 @@ export const evaluateConventionTriggers = (conventions, context) => {
78
79
  if (!condition)
79
80
  continue;
80
81
  switch (condition.type) {
81
- case "file": {
82
+ case 'file': {
82
83
  if (changedFiles === null)
83
84
  changedFiles = getChangedFiles(context.authPath);
84
85
  if (matchesFilePatterns(changedFiles, condition.patterns)) {
@@ -86,13 +87,13 @@ export const evaluateConventionTriggers = (conventions, context) => {
86
87
  }
87
88
  break;
88
89
  }
89
- case "task": {
90
+ case 'task': {
90
91
  if (matchesTaskType(context.planType, condition.taskTypes)) {
91
92
  matched.push(convention);
92
93
  }
93
94
  break;
94
95
  }
95
- case "composite": {
96
+ case 'composite': {
96
97
  if (changedFiles === null)
97
98
  changedFiles = getChangedFiles(context.authPath);
98
99
  if (matchesFilePatterns(changedFiles, condition.filePatterns) ||
@@ -104,7 +105,7 @@ export const evaluateConventionTriggers = (conventions, context) => {
104
105
  }
105
106
  }
106
107
  if (matched.length > 0) {
107
- logger.info("Convention triggers matched", {
108
+ logger.info('Convention triggers matched', {
108
109
  matched: matched.map((c) => c.title),
109
110
  });
110
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convention-evaluator.js","sourceRoot":"","sources":["../../src/utils/convention-evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convention-evaluator.js","sourceRoot":"","sources":["../../src/utils/convention-evaluator.ts"],"names":[],"mappings":"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"}