@agentteams/runner 0.0.84-dev.208 → 0.0.85

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 (122) 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 +54 -63
  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 +22 -20
  20. package/dist/commands/update.js.map +1 -1
  21. package/dist/commands/update.test.js +42 -38
  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 +22 -21
  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 +49 -46
  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 +124 -118
  38. package/dist/handlers/trigger-handler.js.map +1 -1
  39. package/dist/handlers/trigger-handler.test.js +365 -373
  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 +53 -54
  46. package/dist/poller.js.map +1 -1
  47. package/dist/poller.test.js +181 -209
  48. package/dist/poller.test.js.map +1 -1
  49. package/dist/runners/amp.d.ts +1 -1
  50. package/dist/runners/amp.js +81 -74
  51. package/dist/runners/amp.js.map +1 -1
  52. package/dist/runners/antigravity.d.ts +3 -3
  53. package/dist/runners/antigravity.js +127 -116
  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 +84 -85
  61. package/dist/runners/claude-code.js.map +1 -1
  62. package/dist/runners/claude-code.test.js +40 -37
  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 +96 -87
  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 +75 -68
  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 +11 -13
  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 +67 -70
  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 +78 -76
  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 +29 -24
  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 +28 -30
  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 +21 -22
  99. package/dist/utils/convention-evaluator.js.map +1 -1
  100. package/dist/utils/convention-evaluator.test.js +110 -120
  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 +10 -10
  104. package/dist/utils/convention-sync.test.js +25 -39
  105. package/dist/utils/convention-sync.test.js.map +1 -1
  106. package/dist/utils/git-worktree.js +18 -20
  107. package/dist/utils/git-worktree.js.map +1 -1
  108. package/dist/utils/git-worktree.test.js +98 -98
  109. package/dist/utils/git-worktree.test.js.map +1 -1
  110. package/dist/utils/origin-issue-safeguard.js +30 -35
  111. package/dist/utils/origin-issue-safeguard.js.map +1 -1
  112. package/dist/utils/power-save-blocker.d.ts +4 -4
  113. package/dist/utils/power-save-blocker.js +33 -33
  114. package/dist/utils/power-save-blocker.test.js +37 -37
  115. package/dist/utils/power-save-blocker.test.js.map +1 -1
  116. package/dist/utils/runner-cleanup.d.ts +3 -3
  117. package/dist/utils/runner-cleanup.js +13 -13
  118. package/dist/utils/runner-cleanup.test.js +35 -35
  119. package/dist/utils/runner-history.js +3 -3
  120. package/dist/utils/runner-history.test.js +17 -17
  121. package/package.json +1 -4
  122. 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,181 +17,171 @@ 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
- {
110
- id: 'conv-file',
111
- filePath: '.agentteams/rules/schema.md',
112
- trigger: 'file:api/prisma/**',
113
- 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
+ id: "conv-file",
110
+ filePath: ".agentteams/rules/schema.md",
111
+ trigger: "file:api/prisma/**",
112
+ title: "Schema Convention",
114
113
  description: null,
115
- },
116
- ], {
114
+ }], {
117
115
  authPath: dir,
118
116
  planType: null,
119
117
  });
120
- assert.deepEqual(result.map((item) => item.id), ['conv-file']);
118
+ assert.deepEqual(result.map((item) => item.id), ["conv-file"]);
121
119
  });
122
120
  });
123
- it('does not match file trigger when changed files fall outside the glob', async () => {
124
- const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
121
+ it("does not match file trigger when changed files fall outside the glob", async () => {
122
+ const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
125
123
  await withGitRepo(async (dir) => {
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',
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",
134
131
  description: null,
135
- },
136
- ], {
132
+ }], {
137
133
  authPath: dir,
138
134
  planType: null,
139
135
  });
140
136
  assert.equal(result.length, 0);
141
137
  });
142
138
  });
143
- it('matches when any file pattern in a multi-file trigger matches', async () => {
144
- const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
139
+ it("matches when any file pattern in a multi-file trigger matches", async () => {
140
+ const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
145
141
  await withGitRepo(async (dir) => {
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',
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",
154
149
  description: null,
155
- },
156
- ], {
150
+ }], {
157
151
  authPath: dir,
158
- planType: 'BUG_FIX',
152
+ planType: "BUG_FIX",
159
153
  });
160
- assert.deepEqual(result.map((item) => item.id), ['conv-multi-file']);
154
+ assert.deepEqual(result.map((item) => item.id), ["conv-multi-file"]);
161
155
  });
162
156
  });
163
- it('matches composite trigger via file condition when task type does not match', async () => {
164
- const { evaluateConventionTriggers } = await import('./convention-evaluator.js');
157
+ it("matches composite trigger via file condition when task type does not match", async () => {
158
+ const { evaluateConventionTriggers } = await import("./convention-evaluator.js");
165
159
  await withGitRepo(async (dir) => {
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',
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",
174
167
  description: null,
175
- },
176
- ], {
168
+ }], {
177
169
  authPath: dir,
178
- planType: 'BUG_FIX',
170
+ planType: "BUG_FIX",
179
171
  });
180
- assert.deepEqual(result.map((item) => item.id), ['conv-composite-file']);
172
+ assert.deepEqual(result.map((item) => item.id), ["conv-composite-file"]);
181
173
  });
182
174
  });
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',
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",
191
182
  description: null,
192
- },
193
- ], {
194
- authPath: '/tmp/does-not-exist-for-convention-evaluator',
183
+ }], {
184
+ authPath: "/tmp/does-not-exist-for-convention-evaluator",
195
185
  planType: null,
196
186
  });
197
187
  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,72 +19,58 @@ 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) => {
26
- logs.push({ level: 'info', message, meta });
27
- },
28
- warn: (message, meta) => {
29
- logs.push({ level: 'warn', message, meta });
30
- },
25
+ info: (message, meta) => { logs.push({ level: "info", message, meta }); },
26
+ warn: (message, meta) => { logs.push({ level: "warn", message, meta }); },
31
27
  };
32
- await runConventionSync('/fake/path', {
28
+ await runConventionSync("/fake/path", {
33
29
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
30
  spawn: createFakeSpawn(0),
35
31
  logger: fakeLogger,
36
32
  });
37
33
  assert.equal(logs.length, 1);
38
- assert.equal(logs[0].level, 'info');
34
+ assert.equal(logs[0].level, "info");
39
35
  assert.match(logs[0].message, /completed/i);
40
36
  });
41
- test('runConventionSync logs warn on non-zero exit code', async () => {
37
+ test("runConventionSync logs warn on non-zero exit code", async () => {
42
38
  const logs = [];
43
39
  const fakeLogger = {
44
- info: (message, meta) => {
45
- logs.push({ level: 'info', message, meta });
46
- },
47
- warn: (message, meta) => {
48
- logs.push({ level: 'warn', message, meta });
49
- },
40
+ info: (message, meta) => { logs.push({ level: "info", message, meta }); },
41
+ warn: (message, meta) => { logs.push({ level: "warn", message, meta }); },
50
42
  };
51
- await runConventionSync('/fake/path', {
43
+ await runConventionSync("/fake/path", {
52
44
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
45
  spawn: createFakeSpawn(1),
54
46
  logger: fakeLogger,
55
47
  });
56
48
  assert.equal(logs.length, 1);
57
- assert.equal(logs[0].level, 'warn');
49
+ assert.equal(logs[0].level, "warn");
58
50
  assert.match(logs[0].message, /non-zero/i);
59
51
  });
60
- test('runConventionSync logs warn on spawn error', async () => {
52
+ test("runConventionSync logs warn on spawn error", async () => {
61
53
  const logs = [];
62
54
  const fakeLogger = {
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
+ info: (message, meta) => { logs.push({ level: "info", message, meta }); },
56
+ warn: (message, meta) => { logs.push({ level: "warn", message, meta }); },
69
57
  };
70
- await runConventionSync('/fake/path', {
58
+ await runConventionSync("/fake/path", {
71
59
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
- spawn: createFakeSpawn(null, new Error('ENOENT')),
60
+ spawn: createFakeSpawn(null, new Error("ENOENT")),
73
61
  logger: fakeLogger,
74
62
  });
75
63
  assert.equal(logs.length, 1);
76
- assert.equal(logs[0].level, 'warn');
64
+ assert.equal(logs[0].level, "warn");
77
65
  assert.match(logs[0].message, /spawn error/i);
78
66
  });
79
- test('runConventionSync never throws', async () => {
67
+ test("runConventionSync never throws", async () => {
80
68
  const fakeLogger = {
81
69
  info: () => { },
82
70
  warn: () => { },
83
71
  };
84
- const throwingSpawn = () => {
85
- throw new Error('unexpected');
86
- };
87
- await assert.doesNotReject(runConventionSync('/fake/path', {
72
+ const throwingSpawn = () => { throw new Error("unexpected"); };
73
+ await assert.doesNotReject(runConventionSync("/fake/path", {
88
74
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
75
  spawn: throwingSpawn,
90
76
  logger: fakeLogger,
@@ -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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"}