@agentteams/runner 0.0.106 → 0.0.108

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 (37) hide show
  1. package/dist/autostart.d.ts +28 -1
  2. package/dist/autostart.js +206 -22
  3. package/dist/autostart.js.map +1 -1
  4. package/dist/autostart.test.js +262 -6
  5. package/dist/autostart.test.js.map +1 -1
  6. package/dist/commands/start.d.ts +19 -1
  7. package/dist/commands/start.js +16 -12
  8. package/dist/commands/start.js.map +1 -1
  9. package/dist/commands/start.test.d.ts +1 -0
  10. package/dist/commands/start.test.js +43 -0
  11. package/dist/commands/start.test.js.map +1 -0
  12. package/dist/commands/status.d.ts +13 -1
  13. package/dist/commands/status.js +15 -8
  14. package/dist/commands/status.js.map +1 -1
  15. package/dist/commands/status.test.d.ts +1 -0
  16. package/dist/commands/status.test.js +64 -0
  17. package/dist/commands/status.test.js.map +1 -0
  18. package/dist/daemon-control.d.ts +2 -1
  19. package/dist/daemon-control.js +33 -5
  20. package/dist/daemon-control.js.map +1 -1
  21. package/dist/daemon-control.test.js +88 -0
  22. package/dist/daemon-control.test.js.map +1 -1
  23. package/dist/utils/convention-evaluator.d.ts +7 -0
  24. package/dist/utils/convention-evaluator.js +6 -3
  25. package/dist/utils/convention-evaluator.js.map +1 -1
  26. package/dist/utils/convention-evaluator.test.js +13 -0
  27. package/dist/utils/convention-evaluator.test.js.map +1 -1
  28. package/dist/windows-launcher.d.ts +27 -0
  29. package/dist/windows-launcher.js +114 -0
  30. package/dist/windows-launcher.js.map +1 -0
  31. package/dist/windows-launcher.test.d.ts +1 -0
  32. package/dist/windows-launcher.test.js +150 -0
  33. package/dist/windows-launcher.test.js.map +1 -0
  34. package/native/bin/win32-x64/agentrunner-launcher.exe +0 -0
  35. package/native/bin/win32-x64/manifest.json +8 -0
  36. package/package.json +6 -2
  37. package/readme.md +21 -1
@@ -1,19 +1,27 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import test, { mock } from 'node:test';
3
- import { buildPlistContent, buildSystemdContent, buildWindowsPowerShellWrapper, buildWindowsTaskXmlContent, getAutostartStatus, launchWindowsHiddenDaemon, registerWindowsTask, restartWindowsTask, scheduleWindowsTaskRestart, unregisterWindowsTask, } from './autostart.js';
3
+ import { buildPlistContent, buildSystemdContent, buildWindowsPowerShellWrapper, buildWindowsTaskXmlContent, getAutostartStatus, launchWindowsHiddenDaemon, migrateWindowsAutostartOnBoot, registerWindowsTask, restartWindowsTask, scheduleWindowsTaskRestart, unregisterWindowsTask, windowsTaskNeedsNativeLauncherMigration, } from './autostart.js';
4
4
  const originalPath = process.env.PATH;
5
5
  test.afterEach(() => {
6
6
  mock.restoreAll();
7
7
  process.env.PATH = originalPath;
8
8
  });
9
9
  test('buildWindowsTaskXmlContent configures supervised hidden logon startup', () => {
10
- const content = buildWindowsTaskXmlContent('DOMAIN\\runner', 'C:\\Users\\runner\\.agentteams\\agentrunner-start.ps1');
10
+ const content = buildWindowsTaskXmlContent('DOMAIN\\runner', 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe', 'C:\\Users\\runner\\.agentteams\\agentrunner-start.ps1', 'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe');
11
11
  assert.match(content, /<LogonTrigger>/u);
12
12
  assert.match(content, /<UserId>DOMAIN\\runner<\/UserId>/u);
13
13
  assert.match(content, /<Hidden>true<\/Hidden>/u);
14
14
  assert.match(content, /<MultipleInstancesPolicy>IgnoreNew<\/MultipleInstancesPolicy>/u);
15
15
  assert.match(content, /<RestartOnFailure>\s*<Interval>PT1M<\/Interval>\s*<Count>3<\/Count>/u);
16
- assert.match(content, /<Command>powershell\.exe<\/Command>/u);
16
+ assert.match(content, /<Command>.*agentrunner-launcher-0\.0\.107-a1b2c3d4e5f6\.exe<\/Command>/u);
17
+ assert.doesNotMatch(content, /<Command>powershell\.exe<\/Command>/u);
18
+ // The launcher's own argv[0] is separated with an explicit delimiter so a
19
+ // profile path containing a space cannot truncate the child command line.
20
+ assert.match(content, /<Arguments>--exec /u);
21
+ // The first child of the integrity-verified launcher must be an absolute path,
22
+ // not a name resolved through the executable search order.
23
+ assert.match(content, /--exec &quot;C:\\Windows\\System32\\WindowsPowerShell\\v1\.0\\powershell\.exe&quot; /u);
24
+ assert.match(content, /<WorkingDirectory>C:\\Windows\\System32\\WindowsPowerShell\\v1\.0<\/WorkingDirectory>/u);
17
25
  assert.match(content, /-WindowStyle Hidden/u);
18
26
  });
19
27
  test('buildWindowsPowerShellWrapper passes environment and rotates the bounded daemon log', () => {
@@ -48,6 +56,7 @@ test('registerWindowsTask writes scheduler assets, removes legacy files, and cre
48
56
  const result = await registerWindowsTask({ token: 'token', apiUrl: 'https://api.example' }, {
49
57
  userId: 'DOMAIN\\runner',
50
58
  daemonPath: 'C:\\Tools\\agentrunner.cmd',
59
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
51
60
  mkdir: async () => undefined,
52
61
  writeFile: async (path, data, encoding) => {
53
62
  writes.push({ path, data, encoding });
@@ -68,15 +77,41 @@ test('registerWindowsTask writes scheduler assets, removes legacy files, and cre
68
77
  assert.ok(writes.some((write) => write.path.endsWith('agentrunner-task.xml') && write.encoding === 'utf16le' && write.data.startsWith('\uFEFF')));
69
78
  assert.ok(removed.some((path) => path.endsWith('agentrunner-start.vbs')));
70
79
  assert.ok(removed.some((path) => path.endsWith('agentrunner-restart.vbs')));
71
- assert.match(commands[0], /schtasks \/Delete/u);
72
- assert.match(commands[1], /schtasks \/Create .* \/XML .* \/F/u);
73
- assert.match(commands[2], /schtasks \/Run/u);
80
+ assert.ok(!commands.some((command) => command.startsWith('schtasks /Delete')));
81
+ assert.ok(commands.some((command) => /schtasks \/Create .* \/XML .* \/F/u.test(command)));
82
+ assert.ok(commands.some((command) => /schtasks \/Run/u.test(command)));
83
+ // chmod cannot restrict a Windows ACL, so the plaintext-token wrapper is locked
84
+ // down with icacls instead.
85
+ assert.ok(commands.some((command) => /^icacls ".*agentrunner-start\.ps1" \/inheritance:r/u.test(command) &&
86
+ command.includes('/grant:r "DOMAIN\\runner:(F)"')));
87
+ // The successful path leaves no rollback backup behind.
88
+ assert.ok(removed.some((path) => path.endsWith('agentrunner-task-backup.xml')));
89
+ });
90
+ test('registerWindowsTask verifies the live task by ASCII file name so non-ASCII profiles still register', async () => {
91
+ // `schtasks /Query /XML` emits console-code-page bytes. Simulate a CP949 host
92
+ // whose profile directory is `C:\Users\홍길동`: String(Buffer) mangles the path
93
+ // into U+FFFD, but the ASCII launcher file name survives.
94
+ const launcherPath = 'C:\\Users\\홍길동\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe';
95
+ const liveXml = Buffer.from(`<?xml version="1.0" encoding="UTF-16"?><Task><Actions><Exec><Command>C:\\Users\\\xC8\xAB\xB1\xE6\xB5\xBF\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe</Command></Exec></Actions></Task>`, 'binary');
96
+ const result = await registerWindowsTask({ token: 'token', apiUrl: 'https://api.example' }, {
97
+ userId: 'DOMAIN\\홍길동',
98
+ daemonPath: 'C:\\Tools\\agentrunner.cmd',
99
+ launcherPath,
100
+ startImmediately: false,
101
+ mkdir: async () => undefined,
102
+ writeFile: async () => undefined,
103
+ unlink: async () => undefined,
104
+ chmodSync: () => undefined,
105
+ execSync: (command) => (command.includes('/Query') && command.includes('/XML') ? liveXml : Buffer.from('')),
106
+ });
107
+ assert.equal(result.registered, true);
74
108
  });
75
109
  test('registerWindowsTask can repair registration without starting a duplicate runner', async () => {
76
110
  const commands = [];
77
111
  await registerWindowsTask({ token: 'token', apiUrl: 'https://api.example' }, {
78
112
  userId: 'DOMAIN\\runner',
79
113
  daemonPath: 'C:\\Tools\\agentrunner.cmd',
114
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
80
115
  startImmediately: false,
81
116
  mkdir: async () => undefined,
82
117
  writeFile: async () => undefined,
@@ -90,10 +125,204 @@ test('registerWindowsTask can repair registration without starting a duplicate r
90
125
  assert.ok(commands.some((command) => command.startsWith('schtasks /Create')));
91
126
  assert.ok(!commands.some((command) => command.startsWith('schtasks /Run')));
92
127
  });
128
+ test('registerWindowsTask restores the previous task from an unmangled backup file when creation fails', async () => {
129
+ const commands = [];
130
+ const createCommands = [];
131
+ await assert.rejects(registerWindowsTask({ token: 'token', apiUrl: 'https://api.example' }, {
132
+ userId: 'DOMAIN\\runner',
133
+ daemonPath: 'C:\\Tools\\agentrunner.cmd',
134
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
135
+ startImmediately: false,
136
+ mkdir: async () => undefined,
137
+ writeFile: async () => undefined,
138
+ unlink: async () => undefined,
139
+ chmodSync: () => undefined,
140
+ execSync: (command) => {
141
+ commands.push(command);
142
+ if (command.startsWith('schtasks /Create')) {
143
+ createCommands.push(command);
144
+ if (createCommands.length === 1) {
145
+ throw new Error('candidate create failed');
146
+ }
147
+ }
148
+ return Buffer.from('');
149
+ },
150
+ }), /candidate create failed/u);
151
+ // The backup is exported by the ScheduledTasks module straight to a UTF-16LE
152
+ // file, so the rollback never round-trips XML through a JS string.
153
+ const backupCommand = commands.find((command) => command.includes('-EncodedCommand'));
154
+ assert.ok(backupCommand, 'the previous task is exported before the candidate /Create');
155
+ const backupScript = Buffer.from(backupCommand.match(/-EncodedCommand ([A-Za-z0-9+/=]+)/u)?.[1] ?? '', 'base64').toString('utf16le');
156
+ assert.match(backupScript, /try \{ \$xml = Export-ScheduledTask -TaskName 'AgentRunner' \} catch \{ exit 1 \}/u);
157
+ assert.match(backupScript, /\[Text\.UnicodeEncoding\]::new\(\$false, \$true\)/u);
158
+ assert.match(backupScript, /agentrunner-task-backup\.xml/u);
159
+ // A fresh install has no prior task; its expected failure must not print a
160
+ // CLIXML error blob into the console.
161
+ assert.match(backupScript, /\$ProgressPreference = 'SilentlyContinue'/u);
162
+ assert.match(backupCommand, /-EncodedCommand [A-Za-z0-9+/=]+ 2>nul$/u);
163
+ assert.equal(createCommands.length, 2, 'the second /Create restores the previous XML');
164
+ assert.match(createCommands[1], /schtasks \/Create \/TN "AgentRunner" \/XML ".*agentrunner-task-backup\.xml" \/F/u);
165
+ assert.ok(!commands.some((command) => command.startsWith('schtasks /Delete')));
166
+ });
167
+ test('registerWindowsTask preserves legacy task executables when candidate creation fails', async () => {
168
+ const createCommands = [];
169
+ const removed = [];
170
+ await assert.rejects(registerWindowsTask({ token: 'token', apiUrl: 'https://api.example' }, {
171
+ userId: 'DOMAIN\\runner',
172
+ daemonPath: 'C:\\Tools\\agentrunner.cmd',
173
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
174
+ startImmediately: false,
175
+ mkdir: async () => undefined,
176
+ writeFile: async () => undefined,
177
+ unlink: async (path) => {
178
+ removed.push(path);
179
+ },
180
+ chmodSync: () => undefined,
181
+ execSync: (command) => {
182
+ if (command.startsWith('schtasks /Create')) {
183
+ createCommands.push(command);
184
+ if (createCommands.length === 1) {
185
+ throw new Error('candidate create failed');
186
+ }
187
+ }
188
+ return Buffer.from('');
189
+ },
190
+ }), /candidate create failed/u);
191
+ assert.equal(createCommands.length, 2, 'the previous task definition is restored');
192
+ assert.ok(!removed.some((path) => /agentrunner-(?:start|restart)\.(?:vbs|bat)$/u.test(path)), 'rollback keeps every legacy executable referenced by the restored task');
193
+ });
194
+ test('windowsTaskNeedsNativeLauncherMigration detects a legacy action and stays quiet when unreadable', () => {
195
+ assert.equal(windowsTaskNeedsNativeLauncherMigration({
196
+ execSync: () => Buffer.from('<Task><Actions><Exec><Command>powershell.exe</Command></Exec></Actions></Task>'),
197
+ }), true);
198
+ assert.equal(windowsTaskNeedsNativeLauncherMigration({
199
+ execSync: () => Buffer.from('<Task><Actions><Exec><Command>C:\\x\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe</Command></Exec></Actions></Task>'),
200
+ }), false);
201
+ assert.equal(windowsTaskNeedsNativeLauncherMigration({
202
+ execSync: () => {
203
+ throw new Error('task not found');
204
+ },
205
+ }), false);
206
+ });
207
+ test('migrateWindowsAutostartOnBoot skips non-Windows platforms before probing registration', async () => {
208
+ let statusChecks = 0;
209
+ let migrationChecks = 0;
210
+ await migrateWindowsAutostartOnBoot({
211
+ platform: () => 'linux',
212
+ getAutostartStatus: () => {
213
+ statusChecks += 1;
214
+ return { registered: true, platform: 'task-scheduler' };
215
+ },
216
+ windowsTaskNeedsNativeLauncherMigration: () => {
217
+ migrationChecks += 1;
218
+ return true;
219
+ },
220
+ });
221
+ assert.equal(statusChecks, 0);
222
+ assert.equal(migrationChecks, 0);
223
+ });
224
+ test('migrateWindowsAutostartOnBoot skips unregistered and already-native tasks', async () => {
225
+ let migrationChecks = 0;
226
+ let registrations = 0;
227
+ const registerWindowsTask = async () => {
228
+ registrations += 1;
229
+ return { registered: true, servicePath: 'task', platform: 'task-scheduler' };
230
+ };
231
+ await migrateWindowsAutostartOnBoot({
232
+ platform: () => 'win32',
233
+ getAutostartStatus: () => ({ registered: false, platform: 'task-scheduler' }),
234
+ windowsTaskNeedsNativeLauncherMigration: () => {
235
+ migrationChecks += 1;
236
+ return true;
237
+ },
238
+ registerWindowsTask,
239
+ });
240
+ await migrateWindowsAutostartOnBoot({
241
+ platform: () => 'win32',
242
+ getAutostartStatus: () => ({ registered: true, platform: 'task-scheduler' }),
243
+ windowsTaskNeedsNativeLauncherMigration: () => {
244
+ migrationChecks += 1;
245
+ return false;
246
+ },
247
+ registerWindowsTask,
248
+ });
249
+ assert.equal(migrationChecks, 1);
250
+ assert.equal(registrations, 0);
251
+ });
252
+ test('migrateWindowsAutostartOnBoot repairs a legacy action without starting a duplicate runner', async () => {
253
+ const registrations = [];
254
+ await migrateWindowsAutostartOnBoot({
255
+ platform: () => 'win32',
256
+ getAutostartStatus: () => ({ registered: true, platform: 'task-scheduler' }),
257
+ windowsTaskNeedsNativeLauncherMigration: () => true,
258
+ getAutostartConfigFromEnv: () => ({ token: 'env-token', apiUrl: 'https://api.example' }),
259
+ registerWindowsTask: async (config, options) => {
260
+ registrations.push({ ...config, startImmediately: options?.startImmediately });
261
+ return { registered: true, servicePath: 'task', platform: 'task-scheduler' };
262
+ },
263
+ logger: { info: () => undefined, warn: () => undefined },
264
+ });
265
+ assert.deepEqual(registrations, [{ token: 'env-token', apiUrl: 'https://api.example', startImmediately: false }]);
266
+ });
267
+ test('migrateWindowsAutostartOnBoot uses file config and remains idempotent after migration', async () => {
268
+ let migrationChecks = 0;
269
+ let registrations = 0;
270
+ const deps = {
271
+ platform: () => 'win32',
272
+ getAutostartStatus: () => ({ registered: true, platform: 'task-scheduler' }),
273
+ windowsTaskNeedsNativeLauncherMigration: () => {
274
+ migrationChecks += 1;
275
+ return migrationChecks === 1;
276
+ },
277
+ getAutostartConfigFromEnv: () => null,
278
+ readDaemonConfigFile: async () => ({ daemonToken: 'file-token', apiUrl: 'https://file.example' }),
279
+ registerWindowsTask: async () => {
280
+ registrations += 1;
281
+ return { registered: true, servicePath: 'task', platform: 'task-scheduler' };
282
+ },
283
+ logger: { info: () => undefined, warn: () => undefined },
284
+ };
285
+ await migrateWindowsAutostartOnBoot(deps);
286
+ await migrateWindowsAutostartOnBoot(deps);
287
+ assert.equal(registrations, 1);
288
+ });
289
+ test('migrateWindowsAutostartOnBoot warns instead of registering when config is unavailable', async () => {
290
+ const warnings = [];
291
+ let registrations = 0;
292
+ await migrateWindowsAutostartOnBoot({
293
+ platform: () => 'win32',
294
+ getAutostartStatus: () => ({ registered: true, platform: 'task-scheduler' }),
295
+ windowsTaskNeedsNativeLauncherMigration: () => true,
296
+ getAutostartConfigFromEnv: () => null,
297
+ readDaemonConfigFile: async () => null,
298
+ registerWindowsTask: async () => {
299
+ registrations += 1;
300
+ return { registered: true, servicePath: 'task', platform: 'task-scheduler' };
301
+ },
302
+ logger: { info: () => undefined, warn: (message) => warnings.push(message) },
303
+ });
304
+ assert.equal(registrations, 0);
305
+ assert.equal(warnings.length, 1);
306
+ });
307
+ test('migrateWindowsAutostartOnBoot isolates registration failures', async () => {
308
+ const warnings = [];
309
+ await assert.doesNotReject(migrateWindowsAutostartOnBoot({
310
+ platform: () => 'win32',
311
+ getAutostartStatus: () => ({ registered: true, platform: 'task-scheduler' }),
312
+ windowsTaskNeedsNativeLauncherMigration: () => true,
313
+ getAutostartConfigFromEnv: () => ({ token: 'env-token', apiUrl: 'https://api.example' }),
314
+ registerWindowsTask: async () => {
315
+ throw new Error('registration failed');
316
+ },
317
+ logger: { info: () => undefined, warn: (message) => warnings.push(message) },
318
+ }));
319
+ assert.equal(warnings.length, 1);
320
+ });
93
321
  test('unregisterWindowsTask deletes the task and all generated or legacy artifacts idempotently', async () => {
94
322
  const commands = [];
95
323
  const removed = [];
96
324
  await unregisterWindowsTask({
325
+ cleanupLaunchers: async () => undefined,
97
326
  execSync: (command, options) => {
98
327
  commands.push(command);
99
328
  assert.equal(options.windowsHide, true);
@@ -197,6 +426,7 @@ test('scheduleWindowsTaskRestart creates the out-of-job restart helper and verif
197
426
  handoffId: 'active-handoff',
198
427
  parentPid: 4321,
199
428
  daemonPath: 'C:\\Tools\\agentrunner.cmd',
429
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
200
430
  execFileSync: ((command, args, options) => {
201
431
  calls.push({ command, args, options });
202
432
  return Buffer.from('');
@@ -213,6 +443,11 @@ test('scheduleWindowsTaskRestart creates the out-of-job restart helper and verif
213
443
  assert.match(command, /Invoke-CimMethod/u);
214
444
  assert.match(command, /Win32_Process/u);
215
445
  assert.match(command, /MethodName Create/u);
446
+ assert.match(command, /agentrunner-launcher-/u);
447
+ // Same launcher contract as the scheduled task: explicit `--exec` delimiter and
448
+ // an absolute powershell.exe so the verified chain does not depend on PATH.
449
+ assert.match(command, /agentrunner-launcher-[^ ]+\.exe" --exec "[A-Za-z]:\\/u);
450
+ assert.match(command, /WindowsPowerShell\\v1\.0\\powershell\.exe" -NoProfile/u);
216
451
  const encodedCommand = command.match(/-EncodedCommand ([A-Za-z0-9+/=]+)/u)?.[1];
217
452
  assert.ok(encodedCommand);
218
453
  const restartScript = Buffer.from(encodedCommand, 'base64').toString('utf16le');
@@ -246,6 +481,7 @@ test('scheduleWindowsTaskRestart creates the out-of-job restart helper and verif
246
481
  test('scheduleWindowsTaskRestart returns a retryable failure when the helper cannot be created', async () => {
247
482
  const scheduled = await scheduleWindowsTaskRestart({
248
483
  handoffId: 'create-failure',
484
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
249
485
  execFileSync: (() => {
250
486
  throw new Error('Win32_Process.Create failed');
251
487
  }),
@@ -255,10 +491,30 @@ test('scheduleWindowsTaskRestart returns a retryable failure when the helper can
255
491
  assert.equal(scheduled.handoffId, 'create-failure');
256
492
  assert.equal(scheduled.reason, 'helper-preparation-failed');
257
493
  });
494
+ test('scheduleWindowsTaskRestart returns a retryable failure when the launcher cannot be installed', async () => {
495
+ let created = false;
496
+ const scheduled = await scheduleWindowsTaskRestart({
497
+ handoffId: 'launcher-failure',
498
+ installLauncher: async () => {
499
+ throw new Error('The packaged Windows launcher failed SHA-256 verification.');
500
+ },
501
+ execFileSync: (() => {
502
+ created = true;
503
+ return Buffer.from('');
504
+ }),
505
+ unlink: async () => undefined,
506
+ });
507
+ assert.equal(scheduled.status, 'retryable-failure');
508
+ assert.equal(scheduled.handoffId, 'launcher-failure');
509
+ assert.equal(scheduled.reason, 'helper-preparation-failed');
510
+ assert.match(scheduled.error ?? '', /SHA-256/u);
511
+ assert.equal(created, false, 'no helper is created when the launcher itself is unusable');
512
+ });
258
513
  test('scheduleWindowsTaskRestart rejects a stale ready marker and times out safely', async () => {
259
514
  let clock = 0;
260
515
  const scheduled = await scheduleWindowsTaskRestart({
261
516
  handoffId: 'current-handoff',
517
+ launcherPath: 'C:\\Users\\runner\\.agentteams\\bin\\agentrunner-launcher-0.0.107-a1b2c3d4e5f6.exe',
262
518
  execFileSync: (() => Buffer.from('')),
263
519
  readFile: async () => JSON.stringify({ handoffId: 'stale-handoff', replacementPid: 9876, state: 'prepared' }),
264
520
  unlink: async () => undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"autostart.test.js","sourceRoot":"","sources":["../src/autostart.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autostart.test.js","sourceRoot":"","sources":["../src/autostart.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1,19 @@
1
- export declare const runStartCommand: () => Promise<void>;
1
+ import { resolveRuntimeConfig } from '../config.js';
2
+ import { startPolling } from '../poller.js';
3
+ import { writePidFile, removePidFile } from '../pid.js';
4
+ import { logger } from '../logger.js';
5
+ import { activatePreparedRestartHandoff } from '../restart-handoff.js';
6
+ type StartCommandDeps = {
7
+ refreshExecutablePath?: () => void;
8
+ ensureCodexSandboxDefault?: () => void;
9
+ activatePreparedRestartHandoff?: typeof activatePreparedRestartHandoff;
10
+ writePidFile?: typeof writePidFile;
11
+ removePidFile?: typeof removePidFile;
12
+ migrateWindowsAutostartOnBoot?: () => Promise<void>;
13
+ processOn?: (event: 'SIGINT' | 'SIGTERM' | 'exit', listener: () => void) => void;
14
+ resolveRuntimeConfig?: typeof resolveRuntimeConfig;
15
+ startPolling?: typeof startPolling;
16
+ logger?: Pick<typeof logger, 'info'>;
17
+ };
18
+ export declare const runStartCommand: (deps?: StartCommandDeps) => Promise<void>;
19
+ export {};
@@ -6,6 +6,7 @@ import { writePidFile, removePidFile } from '../pid.js';
6
6
  import { logger } from '../logger.js';
7
7
  import { refreshWindowsPathFromRegistry } from '../windows-path.js';
8
8
  import { activatePreparedRestartHandoff } from '../restart-handoff.js';
9
+ import { migrateWindowsAutostartOnBoot } from '../autostart.js';
9
10
  /**
10
11
  * The Windows Task Scheduler wrapper injects a PATH snapshot
11
12
  * frozen at registration time, so runner CLIs installed afterwards become
@@ -32,24 +33,27 @@ const ensureCodexSandboxDefault = () => {
32
33
  logger.info("CODEX_SANDBOX_LEVEL not set; defaulting to 'off' to match auto-start behavior");
33
34
  }
34
35
  };
35
- export const runStartCommand = async () => {
36
- refreshExecutablePath();
37
- ensureCodexSandboxDefault();
38
- const activatedHandoff = await activatePreparedRestartHandoff();
36
+ export const runStartCommand = async (deps = {}) => {
37
+ const resolvedLogger = deps.logger ?? logger;
38
+ (deps.refreshExecutablePath ?? refreshExecutablePath)();
39
+ (deps.ensureCodexSandboxDefault ?? ensureCodexSandboxDefault)();
40
+ const activatedHandoff = await (deps.activatePreparedRestartHandoff ?? activatePreparedRestartHandoff)();
39
41
  if (activatedHandoff) {
40
- logger.info('Replacement runner activated after restart handoff');
42
+ resolvedLogger.info('Replacement runner activated after restart handoff');
41
43
  }
42
- await writePidFile();
44
+ await (deps.writePidFile ?? writePidFile)();
45
+ await (deps.migrateWindowsAutostartOnBoot ?? migrateWindowsAutostartOnBoot)();
43
46
  const cleanup = async () => {
44
- await removePidFile();
47
+ await (deps.removePidFile ?? removePidFile)();
45
48
  };
46
- process.on('SIGINT', () => void cleanup());
47
- process.on('SIGTERM', () => void cleanup());
48
- process.on('exit', () => {
49
+ const processOn = deps.processOn ?? ((event, listener) => process.on(event, listener));
50
+ processOn('SIGINT', () => void cleanup());
51
+ processOn('SIGTERM', () => void cleanup());
52
+ processOn('exit', () => {
49
53
  // Synchronous best-effort — PID file may already be removed by signal handler.
50
54
  });
51
- const config = await resolveRuntimeConfig();
55
+ const config = await (deps.resolveRuntimeConfig ?? resolveRuntimeConfig)();
52
56
  const client = new DaemonApiClient(config.apiUrl, config.daemonToken);
53
- await startPolling(config, (onAuthPathDiscovered) => createTriggerHandler({ config, client, onAuthPathDiscovered }));
57
+ await (deps.startPolling ?? startPolling)(config, (onAuthPathDiscovered) => createTriggerHandler({ config, client, onAuthPathDiscovered }));
54
58
  };
55
59
  //# sourceMappingURL=start.js.map
@@ -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;AACtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,GAAS,EAAE;IACvC,MAAM,YAAY,GAAG,8BAA8B,EAAE,CAAC;IACtD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,uEAAuE,EAAE;YACnF,YAAY;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF;;;;;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,qBAAqB,EAAE,CAAC;IACxB,yBAAyB,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAG,MAAM,8BAA8B,EAAE,CAAC;IAChE,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IACD,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
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { runStartCommand } from './start.js';
4
+ const runtimeConfig = {
5
+ daemonToken: 'daemon-token',
6
+ apiUrl: 'https://api.example',
7
+ pollingIntervalMs: 30_000,
8
+ maxPollingIntervalMs: 120_000,
9
+ timeoutMs: 86_400_000,
10
+ idleTimeoutMs: 600_000,
11
+ runnerCmd: 'codex',
12
+ preventSleepWhileBusy: true,
13
+ };
14
+ const runObservedStart = async () => {
15
+ let migrations = 0;
16
+ let pollingStarts = 0;
17
+ await runStartCommand({
18
+ refreshExecutablePath: () => undefined,
19
+ ensureCodexSandboxDefault: () => undefined,
20
+ activatePreparedRestartHandoff: async () => false,
21
+ writePidFile: async () => undefined,
22
+ removePidFile: async () => undefined,
23
+ migrateWindowsAutostartOnBoot: async () => {
24
+ migrations += 1;
25
+ },
26
+ processOn: () => undefined,
27
+ resolveRuntimeConfig: async () => runtimeConfig,
28
+ startPolling: async () => {
29
+ pollingStarts += 1;
30
+ },
31
+ logger: { info: () => undefined },
32
+ });
33
+ return { migrations, pollingStarts };
34
+ };
35
+ test('runStartCommand preserves polling startup while checking the Windows autostart action', async () => {
36
+ const observed = await runObservedStart();
37
+ assert.deepEqual(observed, { migrations: 1, pollingStarts: 1 });
38
+ });
39
+ test('runStartCommand migrates a legacy Windows autostart action before polling', async () => {
40
+ const observed = await runObservedStart();
41
+ assert.deepEqual(observed, { migrations: 1, pollingStarts: 1 });
42
+ });
43
+ //# sourceMappingURL=start.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.test.js","sourceRoot":"","sources":["../../src/commands/start.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,aAAa,GAAkB;IACnC,WAAW,EAAE,cAAc;IAC3B,MAAM,EAAE,qBAAqB;IAC7B,iBAAiB,EAAE,MAAM;IACzB,oBAAoB,EAAE,OAAO;IAC7B,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,OAAO;IACtB,SAAS,EAAE,OAAO;IAClB,qBAAqB,EAAE,IAAI;CAC5B,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,IAA4D,EAAE;IAC1F,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,eAAe,CAAC;QACpB,qBAAqB,EAAE,GAAG,EAAE,CAAC,SAAS;QACtC,yBAAyB,EAAE,GAAG,EAAE,CAAC,SAAS;QAC1C,8BAA8B,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK;QACjD,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QACnC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QACpC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YACxC,UAAU,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;QAC1B,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;QAC/C,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,aAAa,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;KAClC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,IAAI,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;IACvG,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;IAC3F,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
@@ -1 +1,13 @@
1
- export declare const runStatusCommand: () => Promise<void>;
1
+ import { platform } from 'node:os';
2
+ import { logger } from '../logger.js';
3
+ import { getDaemonStatus } from '../pid.js';
4
+ import { getAutostartStatus, windowsTaskNeedsNativeLauncherMigration } from '../autostart.js';
5
+ type StatusCommandDeps = {
6
+ platform?: typeof platform;
7
+ getDaemonStatus?: typeof getDaemonStatus;
8
+ getAutostartStatus?: typeof getAutostartStatus;
9
+ windowsTaskNeedsNativeLauncherMigration?: typeof windowsTaskNeedsNativeLauncherMigration;
10
+ logger?: Pick<typeof logger, 'info' | 'warn'>;
11
+ };
12
+ export declare const runStatusCommand: (deps?: StatusCommandDeps) => Promise<void>;
13
+ export {};
@@ -1,20 +1,27 @@
1
+ import { platform } from 'node:os';
1
2
  import { logger } from '../logger.js';
2
3
  import { getDaemonStatus } from '../pid.js';
3
- import { getAutostartStatus } from '../autostart.js';
4
- export const runStatusCommand = async () => {
5
- const daemonStatus = await getDaemonStatus();
6
- const autostartStatus = getAutostartStatus();
4
+ import { getAutostartStatus, windowsTaskNeedsNativeLauncherMigration } from '../autostart.js';
5
+ export const runStatusCommand = async (deps = {}) => {
6
+ const resolvedLogger = deps.logger ?? logger;
7
+ const daemonStatus = await (deps.getDaemonStatus ?? getDaemonStatus)();
8
+ const autostartStatus = (deps.getAutostartStatus ?? getAutostartStatus)();
7
9
  if (daemonStatus.running) {
8
- logger.info('Daemon is running', { pid: daemonStatus.pid });
10
+ resolvedLogger.info('Daemon is running', { pid: daemonStatus.pid });
9
11
  }
10
12
  else {
11
- logger.info('Daemon is not running');
13
+ resolvedLogger.info('Daemon is not running');
12
14
  }
13
15
  if (autostartStatus.registered) {
14
- logger.info('Autostart is enabled', { platform: autostartStatus.platform });
16
+ resolvedLogger.info('Autostart is enabled', { platform: autostartStatus.platform });
15
17
  }
16
18
  else {
17
- logger.info('Autostart is not registered', { platform: autostartStatus.platform });
19
+ resolvedLogger.info('Autostart is not registered', { platform: autostartStatus.platform });
20
+ }
21
+ if ((deps.platform ?? platform)() === 'win32' &&
22
+ autostartStatus.registered &&
23
+ (deps.windowsTaskNeedsNativeLauncherMigration ?? windowsTaskNeedsNativeLauncherMigration)()) {
24
+ resolvedLogger.warn("Windows autostart still uses a console-bound action. It will migrate on the next runner start; run 'agentrunner restart' to apply it immediately.");
18
25
  }
19
26
  };
20
27
  //# sourceMappingURL=status.js.map