@agentteams/runner 0.0.84-dev.204 → 0.0.84-dev.208

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 +54 -53
  46. package/dist/poller.js.map +1 -1
  47. package/dist/poller.test.js +209 -181
  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 +12 -10
  74. package/dist/runners/log-reporter.js.map +1 -1
  75. package/dist/runners/log-reporter.test.js +70 -70
  76. package/dist/runners/log-reporter.test.js.map +1 -1
  77. package/dist/runners/opencode.d.ts +1 -1
  78. package/dist/runners/opencode.js +68 -75
  79. package/dist/runners/opencode.js.map +1 -1
  80. package/dist/runners/process-control.d.ts +1 -1
  81. package/dist/runners/process-control.js +13 -11
  82. package/dist/runners/process-control.js.map +1 -1
  83. package/dist/runners/stream-json-parser.d.ts +1 -1
  84. package/dist/runners/stream-json-parser.js +70 -67
  85. package/dist/runners/stream-json-parser.js.map +1 -1
  86. package/dist/runners/stream-json-parser.replay.test.js +17 -17
  87. package/dist/runners/stream-json-parser.replay.test.js.map +1 -1
  88. package/dist/runners/stream-json-parser.test.js +76 -78
  89. package/dist/runners/stream-json-parser.test.js.map +1 -1
  90. package/dist/types.d.ts +4 -4
  91. package/dist/utils/auth-path-store.js +7 -7
  92. package/dist/utils/auth-path-store.test.js +24 -29
  93. package/dist/utils/auth-path-store.test.js.map +1 -1
  94. package/dist/utils/auto-update.d.ts +4 -4
  95. package/dist/utils/auto-update.js +30 -28
  96. package/dist/utils/auto-update.js.map +1 -1
  97. package/dist/utils/auto-update.test.js +30 -30
  98. package/dist/utils/convention-evaluator.d.ts +1 -1
  99. package/dist/utils/convention-evaluator.js +22 -21
  100. package/dist/utils/convention-evaluator.js.map +1 -1
  101. package/dist/utils/convention-evaluator.test.js +120 -110
  102. package/dist/utils/convention-evaluator.test.js.map +1 -1
  103. package/dist/utils/convention-sync.d.ts +3 -3
  104. package/dist/utils/convention-sync.js +10 -10
  105. package/dist/utils/convention-sync.test.js +43 -25
  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 +9 -2
  123. package/readme.md +10 -10
@@ -1,15 +1,15 @@
1
- import assert from "node:assert/strict";
2
- import { execFileSync } from "node:child_process";
3
- import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
4
- import { tmpdir } from "node:os";
5
- import { join } from "node:path";
6
- import { describe, it } from "node:test";
1
+ import assert from 'node:assert/strict';
2
+ import { execFileSync } from 'node:child_process';
3
+ import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { describe, it } from 'node:test';
7
7
  const withGitRepo = async (run) => {
8
- const dir = await mkdtemp(join(tmpdir(), "conv-eval-"));
9
- execFileSync("git", ["init", dir], { stdio: "pipe" });
10
- execFileSync("git", ["-C", dir, "config", "user.email", "test@test.com"], { stdio: "pipe" });
11
- execFileSync("git", ["-C", dir, "config", "user.name", "Test"], { stdio: "pipe" });
12
- execFileSync("git", ["-C", dir, "commit", "--allow-empty", "-m", "initial"], { stdio: "pipe" });
8
+ const dir = await mkdtemp(join(tmpdir(), 'conv-eval-'));
9
+ execFileSync('git', ['init', dir], { stdio: 'pipe' });
10
+ execFileSync('git', ['-C', dir, 'config', 'user.email', 'test@test.com'], { stdio: 'pipe' });
11
+ execFileSync('git', ['-C', dir, 'config', 'user.name', 'Test'], { stdio: 'pipe' });
12
+ execFileSync('git', ['-C', dir, 'commit', '--allow-empty', '-m', 'initial'], { stdio: 'pipe' });
13
13
  try {
14
14
  await run(dir);
15
15
  }
@@ -17,171 +17,181 @@ const withGitRepo = async (run) => {
17
17
  await rm(dir, { recursive: true, force: true });
18
18
  }
19
19
  };
20
- describe("evaluateConventionTriggers", () => {
21
- it("returns empty array for empty conventions", async () => {
22
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
23
- const result = evaluateConventionTriggers([], { authPath: "/tmp", planType: null });
20
+ describe('evaluateConventionTriggers', () => {
21
+ it('returns empty array for empty conventions', async () => {
22
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
23
+ const result = evaluateConventionTriggers([], { authPath: '/tmp', planType: null });
24
24
  assert.deepEqual(result, []);
25
25
  });
26
- it("matches task trigger when planType matches", async () => {
27
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
26
+ it('matches task trigger when planType matches', async () => {
27
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
28
28
  const taskConvention = {
29
- id: "conv-task",
30
- filePath: ".agentteams/rules/testing.md",
31
- trigger: "task:BUG_FIX",
32
- title: "Bug Fix Convention",
33
- description: "Rules for bug fixes",
29
+ id: 'conv-task',
30
+ filePath: '.agentteams/rules/testing.md',
31
+ trigger: 'task:BUG_FIX',
32
+ title: 'Bug Fix Convention',
33
+ description: 'Rules for bug fixes',
34
34
  };
35
35
  const result = evaluateConventionTriggers([taskConvention], {
36
- authPath: "/tmp/nonexistent",
37
- planType: "BUG_FIX",
36
+ authPath: '/tmp/nonexistent',
37
+ planType: 'BUG_FIX',
38
38
  });
39
39
  assert.equal(result.length, 1);
40
- assert.equal(result[0].id, "conv-task");
40
+ assert.equal(result[0].id, 'conv-task');
41
41
  });
42
- it("does not match task trigger when planType differs", async () => {
43
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
42
+ it('does not match task trigger when planType differs', async () => {
43
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
44
44
  const taskConvention = {
45
- id: "conv-task",
46
- filePath: ".agentteams/rules/testing.md",
47
- trigger: "task:BUG_FIX",
48
- title: "Bug Fix Convention",
45
+ id: 'conv-task',
46
+ filePath: '.agentteams/rules/testing.md',
47
+ trigger: 'task:BUG_FIX',
48
+ title: 'Bug Fix Convention',
49
49
  description: null,
50
50
  };
51
51
  const result = evaluateConventionTriggers([taskConvention], {
52
- authPath: "/tmp/nonexistent",
53
- planType: "FEATURE",
52
+ authPath: '/tmp/nonexistent',
53
+ planType: 'FEATURE',
54
54
  });
55
55
  assert.equal(result.length, 0);
56
56
  });
57
- it("does not match task trigger when planType is null", async () => {
58
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
57
+ it('does not match task trigger when planType is null', async () => {
58
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
59
59
  const taskConvention = {
60
- id: "conv-task",
61
- filePath: ".agentteams/rules/testing.md",
62
- trigger: "task:FEATURE",
63
- title: "Feature Convention",
60
+ id: 'conv-task',
61
+ filePath: '.agentteams/rules/testing.md',
62
+ trigger: 'task:FEATURE',
63
+ title: 'Feature Convention',
64
64
  description: null,
65
65
  };
66
66
  const result = evaluateConventionTriggers([taskConvention], {
67
- authPath: "/tmp/nonexistent",
67
+ authPath: '/tmp/nonexistent',
68
68
  planType: null,
69
69
  });
70
70
  assert.equal(result.length, 0);
71
71
  });
72
- it("skips conventions with null trigger", async () => {
73
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
72
+ it('skips conventions with null trigger', async () => {
73
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
74
74
  const nullTriggerConvention = {
75
- id: "conv-null",
76
- filePath: ".agentteams/rules/misc.md",
75
+ id: 'conv-null',
76
+ filePath: '.agentteams/rules/misc.md',
77
77
  trigger: null,
78
- title: "Misc Convention",
78
+ title: 'Misc Convention',
79
79
  description: null,
80
80
  };
81
81
  const result = evaluateConventionTriggers([nullTriggerConvention], {
82
- authPath: "/tmp/nonexistent",
83
- planType: "BUG_FIX",
82
+ authPath: '/tmp/nonexistent',
83
+ planType: 'BUG_FIX',
84
84
  });
85
85
  assert.equal(result.length, 0);
86
86
  });
87
- it("matches composite trigger via task type", async () => {
88
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
87
+ it('matches composite trigger via task type', async () => {
88
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
89
89
  const compositeConvention = {
90
- id: "conv-composite",
91
- filePath: ".agentteams/rules/frontend.md",
92
- trigger: "file:web/src/**|task:FEATURE",
93
- title: "Frontend Convention",
90
+ id: 'conv-composite',
91
+ filePath: '.agentteams/rules/frontend.md',
92
+ trigger: 'file:web/src/**|task:FEATURE',
93
+ title: 'Frontend Convention',
94
94
  description: null,
95
95
  };
96
96
  const result = evaluateConventionTriggers([compositeConvention], {
97
- authPath: "/tmp/nonexistent",
98
- planType: "FEATURE",
97
+ authPath: '/tmp/nonexistent',
98
+ planType: 'FEATURE',
99
99
  });
100
100
  assert.equal(result.length, 1);
101
- assert.equal(result[0].id, "conv-composite");
101
+ assert.equal(result[0].id, 'conv-composite');
102
102
  });
103
- it("matches file trigger when a changed file matches the glob", async () => {
104
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
103
+ it('matches file trigger when a changed file matches the glob', async () => {
104
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
105
105
  await withGitRepo(async (dir) => {
106
- await mkdir(join(dir, "api/prisma"), { recursive: true });
107
- await writeFile(join(dir, "api/prisma/schema.prisma"), "model Test {}\n");
108
- const result = evaluateConventionTriggers([{
109
- id: "conv-file",
110
- filePath: ".agentteams/rules/schema.md",
111
- trigger: "file:api/prisma/**",
112
- title: "Schema Convention",
106
+ await mkdir(join(dir, 'api/prisma'), { recursive: true });
107
+ await writeFile(join(dir, 'api/prisma/schema.prisma'), 'model Test {}\n');
108
+ const result = evaluateConventionTriggers([
109
+ {
110
+ id: 'conv-file',
111
+ filePath: '.agentteams/rules/schema.md',
112
+ trigger: 'file:api/prisma/**',
113
+ title: 'Schema Convention',
113
114
  description: null,
114
- }], {
115
+ },
116
+ ], {
115
117
  authPath: dir,
116
118
  planType: null,
117
119
  });
118
- assert.deepEqual(result.map((item) => item.id), ["conv-file"]);
120
+ assert.deepEqual(result.map((item) => item.id), ['conv-file']);
119
121
  });
120
122
  });
121
- it("does not match file trigger when changed files fall outside the glob", async () => {
122
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
123
+ it('does not match file trigger when changed files fall outside the glob', async () => {
124
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
123
125
  await withGitRepo(async (dir) => {
124
- await mkdir(join(dir, "web/src"), { recursive: true });
125
- await writeFile(join(dir, "web/src/app.tsx"), "export default function App() { return null; }\n");
126
- const result = evaluateConventionTriggers([{
127
- id: "conv-file",
128
- filePath: ".agentteams/rules/schema.md",
129
- trigger: "file:api/prisma/**",
130
- title: "Schema Convention",
126
+ await mkdir(join(dir, 'web/src'), { recursive: true });
127
+ await writeFile(join(dir, 'web/src/app.tsx'), 'export default function App() { return null; }\n');
128
+ const result = evaluateConventionTriggers([
129
+ {
130
+ id: 'conv-file',
131
+ filePath: '.agentteams/rules/schema.md',
132
+ trigger: 'file:api/prisma/**',
133
+ title: 'Schema Convention',
131
134
  description: null,
132
- }], {
135
+ },
136
+ ], {
133
137
  authPath: dir,
134
138
  planType: null,
135
139
  });
136
140
  assert.equal(result.length, 0);
137
141
  });
138
142
  });
139
- it("matches when any file pattern in a multi-file trigger matches", async () => {
140
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
143
+ it('matches when any file pattern in a multi-file trigger matches', async () => {
144
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
141
145
  await withGitRepo(async (dir) => {
142
- await mkdir(join(dir, "web/src"), { recursive: true });
143
- await writeFile(join(dir, "web/src/page.tsx"), "export default function Page() { return null; }\n");
144
- const result = evaluateConventionTriggers([{
145
- id: "conv-multi-file",
146
- filePath: ".agentteams/rules/frontend.md",
147
- trigger: "file:api/**|file:web/**",
148
- title: "Frontend Convention",
146
+ await mkdir(join(dir, 'web/src'), { recursive: true });
147
+ await writeFile(join(dir, 'web/src/page.tsx'), 'export default function Page() { return null; }\n');
148
+ const result = evaluateConventionTriggers([
149
+ {
150
+ id: 'conv-multi-file',
151
+ filePath: '.agentteams/rules/frontend.md',
152
+ trigger: 'file:api/**|file:web/**',
153
+ title: 'Frontend Convention',
149
154
  description: null,
150
- }], {
155
+ },
156
+ ], {
151
157
  authPath: dir,
152
- planType: "BUG_FIX",
158
+ planType: 'BUG_FIX',
153
159
  });
154
- assert.deepEqual(result.map((item) => item.id), ["conv-multi-file"]);
160
+ assert.deepEqual(result.map((item) => item.id), ['conv-multi-file']);
155
161
  });
156
162
  });
157
- it("matches composite trigger via file condition when task type does not match", async () => {
158
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
163
+ it('matches composite trigger via file condition when task type does not match', async () => {
164
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
159
165
  await withGitRepo(async (dir) => {
160
- await mkdir(join(dir, "api/src"), { recursive: true });
161
- await writeFile(join(dir, "api/src/server.ts"), "export const server = true;\n");
162
- const result = evaluateConventionTriggers([{
163
- id: "conv-composite-file",
164
- filePath: ".agentteams/rules/routes.md",
165
- trigger: "file:api/**|task:FEATURE",
166
- title: "Route Convention",
166
+ await mkdir(join(dir, 'api/src'), { recursive: true });
167
+ await writeFile(join(dir, 'api/src/server.ts'), 'export const server = true;\n');
168
+ const result = evaluateConventionTriggers([
169
+ {
170
+ id: 'conv-composite-file',
171
+ filePath: '.agentteams/rules/routes.md',
172
+ trigger: 'file:api/**|task:FEATURE',
173
+ title: 'Route Convention',
167
174
  description: null,
168
- }], {
175
+ },
176
+ ], {
169
177
  authPath: dir,
170
- planType: "BUG_FIX",
178
+ planType: 'BUG_FIX',
171
179
  });
172
- assert.deepEqual(result.map((item) => item.id), ["conv-composite-file"]);
180
+ assert.deepEqual(result.map((item) => item.id), ['conv-composite-file']);
173
181
  });
174
182
  });
175
- it("returns no matches when git diff lookup fails", async () => {
176
- const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
177
- const result = evaluateConventionTriggers([{
178
- id: "conv-file",
179
- filePath: ".agentteams/rules/schema.md",
180
- trigger: "file:api/**",
181
- title: "Schema Convention",
183
+ it('returns no matches when git diff lookup fails', async () => {
184
+ const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
185
+ const result = evaluateConventionTriggers([
186
+ {
187
+ id: 'conv-file',
188
+ filePath: '.agentteams/rules/schema.md',
189
+ trigger: 'file:api/**',
190
+ title: 'Schema Convention',
182
191
  description: null,
183
- }], {
184
- authPath: "/tmp/does-not-exist-for-convention-evaluator",
192
+ },
193
+ ], {
194
+ authPath: '/tmp/does-not-exist-for-convention-evaluator',
185
195
  planType: null,
186
196
  });
187
197
  assert.equal(result.length, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"convention-evaluator.test.js","sourceRoot":"","sources":["../../src/utils/convention-evaluator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convention-evaluator.test.js","sourceRoot":"","sources":["../../src/utils/convention-evaluator.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { spawn } from "node:child_process";
2
- import { logger } from "../logger.js";
1
+ import { spawn } from 'node:child_process';
2
+ import { logger } from '../logger.js';
3
3
  type ConventionSyncDeps = {
4
4
  spawn?: typeof spawn;
5
- logger?: Pick<typeof logger, "info" | "warn">;
5
+ logger?: Pick<typeof logger, 'info' | 'warn'>;
6
6
  };
7
7
  export declare const runConventionSync: (authPath: string, deps?: ConventionSyncDeps) => Promise<void>;
8
8
  export {};
@@ -1,38 +1,38 @@
1
- import { spawn } from "node:child_process";
2
- import { logger } from "../logger.js";
1
+ import { spawn } from 'node:child_process';
2
+ import { logger } from '../logger.js';
3
3
  export const runConventionSync = async (authPath, deps = {}) => {
4
4
  const log = deps.logger ?? logger;
5
5
  const spawnFn = deps.spawn ?? spawn;
6
6
  try {
7
7
  const exitCode = await new Promise((resolve) => {
8
- const child = spawnFn("agentteams", ["convention", "download"], {
8
+ const child = spawnFn('agentteams', ['convention', 'download'], {
9
9
  cwd: authPath,
10
- stdio: "ignore",
10
+ stdio: 'ignore',
11
11
  windowsHide: true,
12
12
  });
13
- child.on("error", (err) => {
14
- log.warn("Convention sync spawn error", {
13
+ child.on('error', (err) => {
14
+ log.warn('Convention sync spawn error', {
15
15
  authPath,
16
16
  error: err.message,
17
17
  });
18
18
  resolve(null);
19
19
  });
20
- child.on("close", (code) => {
20
+ child.on('close', (code) => {
21
21
  resolve(code);
22
22
  });
23
23
  });
24
24
  if (exitCode === 0) {
25
- log.info("Convention sync completed", { authPath });
25
+ log.info('Convention sync completed', { authPath });
26
26
  }
27
27
  else if (exitCode !== null) {
28
- log.warn("Convention sync exited with non-zero code", {
28
+ log.warn('Convention sync exited with non-zero code', {
29
29
  authPath,
30
30
  exitCode,
31
31
  });
32
32
  }
33
33
  }
34
34
  catch (error) {
35
- log.warn("Convention sync failed", {
35
+ log.warn('Convention sync failed', {
36
36
  authPath,
37
37
  error: error instanceof Error ? error.message : String(error),
38
38
  });
@@ -1,16 +1,16 @@
1
- import assert from "node:assert/strict";
2
- import test, { mock } from "node:test";
3
- import { EventEmitter } from "node:events";
4
- import { runConventionSync } from "./convention-sync.js";
1
+ import assert from 'node:assert/strict';
2
+ import test, { mock } from 'node:test';
3
+ import { EventEmitter } from 'node:events';
4
+ import { runConventionSync } from './convention-sync.js';
5
5
  const createFakeSpawn = (exitCode, error) => {
6
6
  return (_cmd, _args, _opts) => {
7
7
  const child = new EventEmitter();
8
8
  process.nextTick(() => {
9
9
  if (error) {
10
- child.emit("error", error);
10
+ child.emit('error', error);
11
11
  }
12
12
  else {
13
- child.emit("close", exitCode);
13
+ child.emit('close', exitCode);
14
14
  }
15
15
  });
16
16
  return child;
@@ -19,55 +19,73 @@ const createFakeSpawn = (exitCode, error) => {
19
19
  test.afterEach(() => {
20
20
  mock.restoreAll();
21
21
  });
22
- test("runConventionSync logs info on exit code 0", async () => {
22
+ test('runConventionSync logs info on exit code 0', async () => {
23
23
  const logs = [];
24
24
  const fakeLogger = {
25
- info: (message, meta) => { logs.push({ level: "info", message, meta }); },
26
- warn: (message, meta) => { logs.push({ level: "warn", message, meta }); },
25
+ info: (message, meta) => {
26
+ logs.push({ level: 'info', message, meta });
27
+ },
28
+ warn: (message, meta) => {
29
+ logs.push({ level: 'warn', message, meta });
30
+ },
27
31
  };
28
- await runConventionSync("/fake/path", {
32
+ await runConventionSync('/fake/path', {
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
34
  spawn: createFakeSpawn(0),
30
35
  logger: fakeLogger,
31
36
  });
32
37
  assert.equal(logs.length, 1);
33
- assert.equal(logs[0].level, "info");
38
+ assert.equal(logs[0].level, 'info');
34
39
  assert.match(logs[0].message, /completed/i);
35
40
  });
36
- test("runConventionSync logs warn on non-zero exit code", async () => {
41
+ test('runConventionSync logs warn on non-zero exit code', async () => {
37
42
  const logs = [];
38
43
  const fakeLogger = {
39
- info: (message, meta) => { logs.push({ level: "info", message, meta }); },
40
- warn: (message, meta) => { logs.push({ level: "warn", message, meta }); },
44
+ info: (message, meta) => {
45
+ logs.push({ level: 'info', message, meta });
46
+ },
47
+ warn: (message, meta) => {
48
+ logs.push({ level: 'warn', message, meta });
49
+ },
41
50
  };
42
- await runConventionSync("/fake/path", {
51
+ await runConventionSync('/fake/path', {
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
53
  spawn: createFakeSpawn(1),
44
54
  logger: fakeLogger,
45
55
  });
46
56
  assert.equal(logs.length, 1);
47
- assert.equal(logs[0].level, "warn");
57
+ assert.equal(logs[0].level, 'warn');
48
58
  assert.match(logs[0].message, /non-zero/i);
49
59
  });
50
- test("runConventionSync logs warn on spawn error", async () => {
60
+ test('runConventionSync logs warn on spawn error', async () => {
51
61
  const logs = [];
52
62
  const fakeLogger = {
53
- info: (message, meta) => { logs.push({ level: "info", message, meta }); },
54
- warn: (message, meta) => { logs.push({ level: "warn", message, meta }); },
63
+ info: (message, meta) => {
64
+ logs.push({ level: 'info', message, meta });
65
+ },
66
+ warn: (message, meta) => {
67
+ logs.push({ level: 'warn', message, meta });
68
+ },
55
69
  };
56
- await runConventionSync("/fake/path", {
57
- spawn: createFakeSpawn(null, new Error("ENOENT")),
70
+ await runConventionSync('/fake/path', {
71
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
+ spawn: createFakeSpawn(null, new Error('ENOENT')),
58
73
  logger: fakeLogger,
59
74
  });
60
75
  assert.equal(logs.length, 1);
61
- assert.equal(logs[0].level, "warn");
76
+ assert.equal(logs[0].level, 'warn');
62
77
  assert.match(logs[0].message, /spawn error/i);
63
78
  });
64
- test("runConventionSync never throws", async () => {
79
+ test('runConventionSync never throws', async () => {
65
80
  const fakeLogger = {
66
81
  info: () => { },
67
82
  warn: () => { },
68
83
  };
69
- const throwingSpawn = () => { throw new Error("unexpected"); };
70
- await assert.doesNotReject(runConventionSync("/fake/path", {
84
+ const throwingSpawn = () => {
85
+ throw new Error('unexpected');
86
+ };
87
+ await assert.doesNotReject(runConventionSync('/fake/path', {
88
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
89
  spawn: throwingSpawn,
72
90
  logger: fakeLogger,
73
91
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"convention-sync.test.js","sourceRoot":"","sources":["../../src/utils/convention-sync.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convention-sync.test.js","sourceRoot":"","sources":["../../src/utils/convention-sync.test.ts"],"names":[],"mappings":"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"}