agent-oven 0.1.1 → 0.2.1

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 (66) hide show
  1. package/dist/cli/commands/add.d.ts.map +1 -1
  2. package/dist/cli/commands/add.js +29 -7
  3. package/dist/cli/commands/add.js.map +1 -1
  4. package/dist/cli/commands/daemon.d.ts.map +1 -1
  5. package/dist/cli/commands/daemon.js +12 -0
  6. package/dist/cli/commands/daemon.js.map +1 -1
  7. package/dist/cli/commands/status.js +1 -1
  8. package/dist/cli/commands/status.js.map +1 -1
  9. package/dist/cli/commands/up.d.ts.map +1 -1
  10. package/dist/cli/commands/up.js +2 -0
  11. package/dist/cli/commands/up.js.map +1 -1
  12. package/dist/cli/utils/daemon.d.ts +3 -0
  13. package/dist/cli/utils/daemon.d.ts.map +1 -0
  14. package/dist/cli/utils/daemon.js +29 -0
  15. package/dist/cli/utils/daemon.js.map +1 -0
  16. package/dist/core/auth.d.ts +4 -1
  17. package/dist/core/auth.d.ts.map +1 -1
  18. package/dist/core/auth.js +20 -2
  19. package/dist/core/auth.js.map +1 -1
  20. package/dist/core/docker.d.ts.map +1 -1
  21. package/dist/core/docker.js +133 -44
  22. package/dist/core/docker.js.map +1 -1
  23. package/dist/core/jobs.d.ts +1 -0
  24. package/dist/core/jobs.d.ts.map +1 -1
  25. package/dist/core/jobs.js +13 -1
  26. package/dist/core/jobs.js.map +1 -1
  27. package/dist/core/platform-darwin.d.ts +4 -0
  28. package/dist/core/platform-darwin.d.ts.map +1 -1
  29. package/dist/core/platform-darwin.js +84 -11
  30. package/dist/core/platform-darwin.js.map +1 -1
  31. package/dist/core/platform-linux.d.ts +3 -0
  32. package/dist/core/platform-linux.d.ts.map +1 -1
  33. package/dist/core/platform-linux.js +53 -0
  34. package/dist/core/platform-linux.js.map +1 -1
  35. package/dist/core/platform.d.ts +11 -0
  36. package/dist/core/platform.d.ts.map +1 -1
  37. package/dist/core/platform.js.map +1 -1
  38. package/dist/core/scheduler-runner.d.ts.map +1 -1
  39. package/dist/core/scheduler-runner.js +2 -1
  40. package/dist/core/scheduler-runner.js.map +1 -1
  41. package/dist/core/scheduler.d.ts +28 -2
  42. package/dist/core/scheduler.d.ts.map +1 -1
  43. package/dist/core/scheduler.js +151 -11
  44. package/dist/core/scheduler.js.map +1 -1
  45. package/dist/core/setup.d.ts +12 -0
  46. package/dist/core/setup.d.ts.map +1 -1
  47. package/dist/core/setup.js +35 -3
  48. package/dist/core/setup.js.map +1 -1
  49. package/dist/core/types.d.ts +12 -1
  50. package/dist/core/types.d.ts.map +1 -1
  51. package/dist/core/types.js.map +1 -1
  52. package/dist/tui/components/Dashboard.d.ts.map +1 -1
  53. package/dist/tui/components/Dashboard.js +1 -1
  54. package/dist/tui/components/Dashboard.js.map +1 -1
  55. package/dist/tui/components/JobDetail.d.ts.map +1 -1
  56. package/dist/tui/components/JobDetail.js +1 -1
  57. package/dist/tui/components/JobDetail.js.map +1 -1
  58. package/dist/tui/components/JobForm.d.ts.map +1 -1
  59. package/dist/tui/components/JobForm.js +40 -23
  60. package/dist/tui/components/JobForm.js.map +1 -1
  61. package/dist/tui/components/JobList.js +3 -1
  62. package/dist/tui/components/JobList.js.map +1 -1
  63. package/images/pipeline-runner/Dockerfile +5 -1
  64. package/images/pipeline-runner/entrypoint.sh +25 -2
  65. package/package.json +1 -1
  66. package/scheduler.sh +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+J/C"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsL/C"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { requireConfig, handleError } from '../utils/errors.js';
5
5
  import { addJob, validateJob } from '../../core/jobs.js';
6
- import { validateCron } from '../../core/scheduler.js';
6
+ import { validateCron, validateRandomWindow } from '../../core/scheduler.js';
7
7
  import { success, error } from '../utils/output.js';
8
8
  function collectRepeatable(value, previous) {
9
9
  return [...previous, value];
@@ -19,8 +19,10 @@ export function register(program) {
19
19
  .option('--repo <url>', 'Git repo URL (required for pipeline type)')
20
20
  .option('--pipeline <name>', 'Pipeline name (required for pipeline type)')
21
21
  .option('--branch <branch>', 'Git branch (default: main)')
22
- .option('--schedule <cron>', 'Cron expression (mutually exclusive with --once)')
22
+ .option('--schedule <cron>', 'Cron expression (mutually exclusive with --once, --random-window)')
23
23
  .option('--once <datetime>', 'ISO 8601 datetime for one-time run')
24
+ .option('--random-window <start-end>', 'Random window in HH:MM-HH:MM format (e.g. 09:30-10:00)')
25
+ .option('--random-window-days <days>', 'Days for random-window (cron weekday syntax, default: *)')
24
26
  .option('-v, --volume <vol>', 'Volume mount (repeatable)', collectRepeatable, [])
25
27
  .option('-e, --env <kv>', 'Environment variable KEY=VALUE (repeatable)', collectRepeatable, [])
26
28
  .option('--timeout <seconds>', 'Timeout in seconds', parseInt)
@@ -30,13 +32,14 @@ export function register(program) {
30
32
  .action(async (id, opts) => {
31
33
  try {
32
34
  const config = requireConfig();
33
- // Build schedule
34
- if (!opts.schedule && !opts.once) {
35
- error('Either --schedule or --once is required');
35
+ // Build schedule — exactly one of --schedule, --once, --random-window required
36
+ const schedCount = [opts.schedule, opts.once, opts.randomWindow].filter(Boolean).length;
37
+ if (schedCount === 0) {
38
+ error('One of --schedule, --once, or --random-window is required');
36
39
  process.exit(1);
37
40
  }
38
- if (opts.schedule && opts.once) {
39
- error('--schedule and --once are mutually exclusive');
41
+ if (schedCount > 1) {
42
+ error('--schedule, --once, and --random-window are mutually exclusive');
40
43
  process.exit(1);
41
44
  }
42
45
  let schedule;
@@ -48,6 +51,25 @@ export function register(program) {
48
51
  }
49
52
  schedule = { type: 'cron', cron: opts.schedule };
50
53
  }
54
+ else if (opts.randomWindow) {
55
+ const rwMatch = opts.randomWindow.match(/^(\d{2}:\d{2})-(\d{2}:\d{2})$/);
56
+ if (!rwMatch) {
57
+ error('Invalid --random-window format (expected HH:MM-HH:MM)');
58
+ process.exit(1);
59
+ }
60
+ const rwSchedule = {
61
+ type: 'random-window',
62
+ start: rwMatch[1],
63
+ end: rwMatch[2],
64
+ ...(opts.randomWindowDays ? { days: opts.randomWindowDays } : {}),
65
+ };
66
+ const rwErr = validateRandomWindow(rwSchedule);
67
+ if (rwErr) {
68
+ error(`Invalid random-window: ${rwErr}`);
69
+ process.exit(1);
70
+ }
71
+ schedule = rwSchedule;
72
+ }
51
73
  else {
52
74
  const d = new Date(opts.once);
53
75
  if (isNaN(d.getTime())) {
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0F/C"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuG/C"}
@@ -4,6 +4,7 @@
4
4
  import { handleError } from '../utils/errors.js';
5
5
  import { platform } from '../../core/platform.js';
6
6
  import { success, error, info, statusIcon } from '../utils/output.js';
7
+ import { repairStaleDaemonConfig, warnIfDaemonConfigStale } from '../utils/daemon.js';
7
8
  export function register(program) {
8
9
  const cmd = program
9
10
  .command('daemon')
@@ -22,6 +23,15 @@ export function register(program) {
22
23
  if (status.lastExitStatus !== undefined) {
23
24
  console.log(` Last exit: ${status.lastExitStatus}`);
24
25
  }
26
+ if (warnIfDaemonConfigStale()) {
27
+ console.log();
28
+ if (platform.getDaemonProjectDir()) {
29
+ info('Run `agent-oven daemon restart` to regenerate the config.');
30
+ }
31
+ else {
32
+ info('Run `agent-oven init` from the intended project directory to regenerate the config.');
33
+ }
34
+ }
25
35
  console.log();
26
36
  }
27
37
  catch (err) {
@@ -37,6 +47,7 @@ export function register(program) {
37
47
  error(`Daemon config not found at ${platform.getDaemonConfigPath()}. Run \`agent-oven init\` first.`);
38
48
  process.exit(1);
39
49
  }
50
+ await repairStaleDaemonConfig();
40
51
  const status = await platform.getSchedulerStatus();
41
52
  if (status.loaded) {
42
53
  info('Daemon is already loaded');
@@ -75,6 +86,7 @@ export function register(program) {
75
86
  error(`Daemon config not found at ${platform.getDaemonConfigPath()}. Run \`agent-oven init\` first.`);
76
87
  process.exit(1);
77
88
  }
89
+ await repairStaleDaemonConfig();
78
90
  const status = await platform.getSchedulerStatus();
79
91
  if (status.loaded) {
80
92
  await platform.stopDaemon();
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ export function register(program) {
44
44
  }
45
45
  // Jobs
46
46
  const j = status.jobs;
47
- console.log(` Jobs: ${j.total} total, ${j.enabled} enabled, ${j.cron} cron, ${j.oncePending} pending`);
47
+ console.log(` Jobs: ${j.total} total, ${j.enabled} enabled, ${j.cron} cron, ${j.randomWindow} random-window, ${j.oncePending} pending`);
48
48
  // Running containers
49
49
  if (status.runningContainers.length > 0) {
50
50
  console.log(` Running: ${status.runningContainers.length} container${status.runningContainers.length > 1 ? 's' : ''}`);
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;YAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAEnC,UAAU;YACV,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG;oBACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI;oBACzC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI;oBACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI;iBAC/C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3E,CAAC;YAED,YAAY;YACZ,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;YAED,OAAO;YACP,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,WAAW,UAAU,CAAC,CAAC;YAEhH,qBAAqB;YACrB,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,MAAM,aAAa,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7H,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/up.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwC/C"}
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/up.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C/C"}
@@ -4,6 +4,7 @@
4
4
  import { requireConfig, handleError } from '../utils/errors.js';
5
5
  import { platform } from '../../core/platform.js';
6
6
  import { success, info } from '../utils/output.js';
7
+ import { repairStaleDaemonConfig } from '../utils/daemon.js';
7
8
  export function register(program) {
8
9
  program
9
10
  .command('up')
@@ -30,6 +31,7 @@ export function register(program) {
30
31
  info('Scheduler config not found — skipping daemon. Run `agent-oven init` to set up.');
31
32
  return;
32
33
  }
34
+ await repairStaleDaemonConfig();
33
35
  const sched = await platform.getSchedulerStatus();
34
36
  if (sched.loaded) {
35
37
  info('Scheduler daemon is already loaded');
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../../src/cli/commands/up.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;YAE/B,kBAAkB;YAClB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;YACrF,CAAC;iBAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC3B,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAED,iBAAiB;YACjB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBACnC,IAAI,CAAC,gFAAgF,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC7B,OAAO,CAAC,0BAA0B,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../../src/cli/commands/up.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;YAE/B,kBAAkB;YAClB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;YACrF,CAAC;iBAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC3B,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAED,iBAAiB;YACjB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBACnC,IAAI,CAAC,gFAAgF,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,MAAM,uBAAuB,EAAE,CAAC;YAEhC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC7B,OAAO,CAAC,0BAA0B,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function warnIfDaemonConfigStale(): boolean;
2
+ export declare function repairStaleDaemonConfig(): Promise<boolean>;
3
+ //# sourceMappingURL=daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/daemon.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,IAAI,OAAO,CAQjD;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAuBhE"}
@@ -0,0 +1,29 @@
1
+ import { platform } from '../../core/platform.js';
2
+ import { success, warn } from './output.js';
3
+ export function warnIfDaemonConfigStale() {
4
+ const diagnostic = platform.validateDaemonConfig();
5
+ if (!diagnostic) {
6
+ return false;
7
+ }
8
+ warn(diagnostic);
9
+ return true;
10
+ }
11
+ export async function repairStaleDaemonConfig() {
12
+ const diagnostic = platform.validateDaemonConfig();
13
+ if (!diagnostic) {
14
+ return false;
15
+ }
16
+ warn(diagnostic);
17
+ const projectDir = platform.getDaemonProjectDir();
18
+ if (!projectDir) {
19
+ throw new Error(`Unable to determine the project directory from daemon config at ${platform.getDaemonConfigPath()}. ` +
20
+ 'Run `agent-oven init` from the intended project directory to regenerate it.');
21
+ }
22
+ const result = await platform.installDaemon(projectDir);
23
+ if (!result.success) {
24
+ throw new Error(`Failed to regenerate daemon config: ${result.error}`);
25
+ }
26
+ success(`Daemon config regenerated with current Node path for ${projectDir}.`);
27
+ return true;
28
+ }
29
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/cli/utils/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,uBAAuB;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjB,MAAM,UAAU,GAAG,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,mEAAmE,QAAQ,CAAC,mBAAmB,EAAE,IAAI;YACrG,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,wDAAwD,UAAU,GAAG,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -10,10 +10,12 @@ export interface AuthHealthStatus {
10
10
  claude: {
11
11
  available: boolean;
12
12
  error?: string;
13
+ warning?: string;
13
14
  };
14
15
  github: {
15
16
  available: boolean;
16
17
  error?: string;
18
+ warning?: string;
17
19
  };
18
20
  }
19
21
  /**
@@ -35,6 +37,7 @@ export declare function checkAuthHealth(authConfig: AuthConfig): AuthHealthStatu
35
37
  /**
36
38
  * Validate that auth requirements are met for a pipeline job.
37
39
  * Throws if credentials are missing for the resolved auth mode.
40
+ * Returns an array of non-fatal warnings (e.g. missing ~/.claude.json).
38
41
  */
39
- export declare function validateAuthForJob(job: PipelineJob, authConfig: AuthConfig): void;
42
+ export declare function validateAuthForJob(job: PipelineJob, authConfig: AuthConfig): string[];
40
43
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE,iCAAiC;AACjC,eAAO,MAAM,mBAAmB,EAAE,UAIjC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,QAAQ,CAElF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA6BxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAQxE;AA2BD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAiCjF"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE,iCAAiC;AACjC,eAAO,MAAM,mBAAmB,EAAE,UAIjC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,QAAQ,CAElF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAoCxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAcxE;AA2BD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAsCrF"}
package/dist/core/auth.js CHANGED
@@ -25,11 +25,18 @@ export function generateAuthArgs(authMode, authConfig, jobEnv) {
25
25
  const volumes = [];
26
26
  const envVars = {};
27
27
  if (authMode === 'host-login') {
28
- // Mount credential directories as read-only
28
+ // Mount credential directories
29
+ // .claude and .claude.json need read-write: Claude Code writes debug logs,
30
+ // task tracking, and uses atomic-rename on .claude.json
31
+ // .config/gh is read-only: gh CLI only reads credentials
29
32
  const claudePath = authConfig.claudeCredPath;
33
+ const claudeJsonPath = `${claudePath}.json`; // ~/.claude.json (sibling config file)
30
34
  const ghPath = authConfig.ghCredPath;
31
35
  if (fs.existsSync(claudePath)) {
32
- volumes.push(`${claudePath}:/root/.claude:ro`);
36
+ volumes.push(`${claudePath}:/root/.claude`);
37
+ }
38
+ if (fs.existsSync(claudeJsonPath)) {
39
+ volumes.push(`${claudeJsonPath}:/root/.claude.json`);
33
40
  }
34
41
  if (fs.existsSync(ghPath)) {
35
42
  volumes.push(`${ghPath}:/root/.config/gh:ro`);
@@ -53,9 +60,14 @@ export function generateAuthArgs(authMode, authConfig, jobEnv) {
53
60
  */
54
61
  export function checkAuthHealth(authConfig) {
55
62
  const claudePath = authConfig.claudeCredPath;
63
+ const claudeJsonPath = `${claudePath}.json`;
56
64
  const ghPath = authConfig.ghCredPath;
57
65
  const claude = checkCredentialPath(claudePath, 'Claude');
58
66
  const github = checkCredentialPath(ghPath, 'GitHub CLI');
67
+ // Warn if ~/.claude dir is healthy but ~/.claude.json is missing
68
+ if (claude.available && !fs.existsSync(claudeJsonPath)) {
69
+ claude.warning = `Claude config file not found: ${claudeJsonPath} (required by newer Claude Code versions)`;
70
+ }
59
71
  return { claude, github };
60
72
  }
61
73
  function checkCredentialPath(credPath, label) {
@@ -80,15 +92,20 @@ function checkCredentialPath(credPath, label) {
80
92
  /**
81
93
  * Validate that auth requirements are met for a pipeline job.
82
94
  * Throws if credentials are missing for the resolved auth mode.
95
+ * Returns an array of non-fatal warnings (e.g. missing ~/.claude.json).
83
96
  */
84
97
  export function validateAuthForJob(job, authConfig) {
85
98
  const mode = resolveAuthMode(job, authConfig);
99
+ const warnings = [];
86
100
  if (mode === 'host-login') {
87
101
  const health = checkAuthHealth(authConfig);
88
102
  const errors = [];
89
103
  if (!health.claude.available) {
90
104
  errors.push(health.claude.error ?? 'Claude credentials not available');
91
105
  }
106
+ else if (health.claude.warning) {
107
+ warnings.push(health.claude.warning);
108
+ }
92
109
  if (!health.github.available) {
93
110
  errors.push(health.github.error ?? 'GitHub credentials not available');
94
111
  }
@@ -110,5 +127,6 @@ export function validateAuthForJob(job, authConfig) {
110
127
  throw new Error(`Auth validation failed for job "${job.id}":\n ${errors.join('\n ')}`);
111
128
  }
112
129
  }
130
+ return warnings;
113
131
  }
114
132
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/core/docker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,MAAM,EACN,GAAG,EAGH,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAgBpB;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwBxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,WAAW,EAAE,CAuD5E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiB3E;AAwBD;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,YAAY,CAAC,CAMvB;AAkSD;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAYtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAUnE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/core/docker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,MAAM,EACN,GAAG,EAGH,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAgBpB;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwBxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,WAAW,EAAE,CAuD5E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiB3E;AAwBD;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,YAAY,CAAC,CAMvB;AA0YD;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAYtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAUnE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D"}
@@ -3,6 +3,7 @@
3
3
  * Handles container operations via Colima
4
4
  */
5
5
  import { execa } from 'execa';
6
+ import { spawn } from 'node:child_process';
6
7
  import * as fs from 'node:fs';
7
8
  import * as path from 'node:path';
8
9
  import { isPipelineJob } from './types.js';
@@ -138,6 +139,124 @@ export async function runJob(config, job, options = {}) {
138
139
  // Default: Docker job (also handles any legacy jobs)
139
140
  return runDockerJob(config, job, options);
140
141
  }
142
+ /**
143
+ * Escape a string for safe use as a POSIX shell argument.
144
+ */
145
+ function shellEscape(arg) {
146
+ return "'" + arg.replace(/'/g, "'\\''") + "'";
147
+ }
148
+ /** Give detached jobs a brief grace period to surface immediate startup failures. */
149
+ const DETACHED_STARTUP_GRACE_MS = 750;
150
+ function closeLogFd(fd) {
151
+ try {
152
+ fs.closeSync(fd);
153
+ }
154
+ catch {
155
+ // Ignore close errors
156
+ }
157
+ }
158
+ function readLogTail(logFile, maxChars = 4096) {
159
+ try {
160
+ const content = fs.readFileSync(logFile, 'utf-8');
161
+ if (content.length <= maxChars) {
162
+ return content.trim();
163
+ }
164
+ return content.slice(-maxChars).trim();
165
+ }
166
+ catch {
167
+ return '';
168
+ }
169
+ }
170
+ /**
171
+ * Spawn a detached Docker process that streams output to a log file.
172
+ * The parent process can exit immediately; the Docker container
173
+ * continues running with stdout/stderr flowing to the log.
174
+ * When the container exits, finish markers and exit code are appended.
175
+ */
176
+ async function spawnDetachedDockerRun(args, logFile) {
177
+ const logFd = fs.openSync(logFile, 'a');
178
+ const dockerCmd = ['docker', ...args].map(shellEscape).join(' ');
179
+ // Run docker in foreground inside a detached shell.
180
+ // After docker exits, append finish markers with the exit code.
181
+ const script = [
182
+ dockerCmd,
183
+ 'EC=$?',
184
+ `printf '\\n=== Finished: %s ===\\n=== Exit Code: %d ===\\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$EC"`,
185
+ ].join('\n');
186
+ let child;
187
+ try {
188
+ child = spawn('sh', ['-c', script], {
189
+ detached: true,
190
+ stdio: ['ignore', logFd, logFd],
191
+ });
192
+ }
193
+ catch (err) {
194
+ closeLogFd(logFd);
195
+ const msg = err instanceof Error ? err.message : String(err);
196
+ return {
197
+ success: false,
198
+ exitCode: 1,
199
+ logFile,
200
+ output: `Failed to start detached job: ${msg}`,
201
+ };
202
+ }
203
+ return await new Promise((resolve) => {
204
+ let settled = false;
205
+ let startupTimer = null;
206
+ const settle = (result) => {
207
+ if (settled)
208
+ return;
209
+ settled = true;
210
+ if (startupTimer) {
211
+ clearTimeout(startupTimer);
212
+ startupTimer = null;
213
+ }
214
+ child.removeListener('error', onError);
215
+ child.removeListener('exit', onExit);
216
+ closeLogFd(logFd);
217
+ resolve(result);
218
+ };
219
+ const onError = (err) => {
220
+ settle({
221
+ success: false,
222
+ exitCode: 1,
223
+ logFile,
224
+ output: `Failed to start detached job: ${err.message}`,
225
+ });
226
+ };
227
+ const onExit = (exitCode, signal) => {
228
+ const code = exitCode ?? 1;
229
+ if (code === 0 && !signal) {
230
+ settle({
231
+ success: true,
232
+ exitCode: 0,
233
+ logFile,
234
+ output: 'Job completed before detaching',
235
+ });
236
+ return;
237
+ }
238
+ const logTail = readLogTail(logFile);
239
+ settle({
240
+ success: false,
241
+ exitCode: code,
242
+ logFile,
243
+ output: logTail || `Detached job exited before startup completed${signal ? ` (signal: ${signal})` : ''}`,
244
+ });
245
+ };
246
+ child.once('error', onError);
247
+ child.once('exit', onExit);
248
+ startupTimer = setTimeout(() => {
249
+ child.unref();
250
+ settle({
251
+ success: true,
252
+ exitCode: 0,
253
+ logFile,
254
+ output: 'Job started in background',
255
+ });
256
+ }, DETACHED_STARTUP_GRACE_MS);
257
+ startupTimer.unref?.();
258
+ });
259
+ }
141
260
  /**
142
261
  * Run a Docker container job.
143
262
  */
@@ -183,27 +302,7 @@ async function runDockerJob(config, job, options = {}) {
183
302
  ].join('\n');
184
303
  fs.writeFileSync(logFile, logHeader);
185
304
  if (options.detach) {
186
- const dockerArgs = [...args];
187
- dockerArgs.splice(1, 0, '-d');
188
- try {
189
- await execa('docker', dockerArgs);
190
- return {
191
- success: true,
192
- exitCode: 0,
193
- logFile,
194
- output: 'Job started in detached mode',
195
- };
196
- }
197
- catch (err) {
198
- const error = err;
199
- const errOutput = typeof error.stderr === 'string' ? error.stderr : error.message;
200
- return {
201
- success: false,
202
- exitCode: error.exitCode ?? 1,
203
- logFile,
204
- output: errOutput,
205
- };
206
- }
305
+ return spawnDetachedDockerRun(args, logFile);
207
306
  }
208
307
  // Run in foreground with timeout
209
308
  try {
@@ -256,8 +355,9 @@ async function runPipelineJob(config, job, options = {}) {
256
355
  const logFile = prepareLogFile(config, job.id);
257
356
  const authConfig = config.auth ?? DEFAULT_AUTH_CONFIG;
258
357
  // Validate auth requirements
358
+ let authWarnings = [];
259
359
  try {
260
- validateAuthForJob(job, authConfig);
360
+ authWarnings = validateAuthForJob(job, authConfig);
261
361
  }
262
362
  catch (err) {
263
363
  const errMsg = err instanceof Error ? err.message : String(err);
@@ -304,10 +404,18 @@ async function runPipelineJob(config, job, options = {}) {
304
404
  args.push('-e', `${key}=${value}`);
305
405
  }
306
406
  }
407
+ // Handle local repo paths: mount the host repo into the container
408
+ // so the entrypoint can `git clone` from it inside the container.
409
+ let repoArg = job.source.repo;
410
+ if (repoArg === '.' || repoArg.startsWith('./') || repoArg.startsWith('/')) {
411
+ const absRepo = path.resolve(config.projectDir, repoArg);
412
+ args.push('-v', `${absRepo}:/workspace/source:ro`);
413
+ repoArg = '/workspace/source';
414
+ }
307
415
  // Add image
308
416
  args.push('agent-oven/pipeline-runner');
309
417
  // Add entrypoint args: repo, branch, pipeline
310
- args.push(job.source.repo);
418
+ args.push(repoArg);
311
419
  args.push(job.source.branch ?? 'main');
312
420
  args.push(job.pipeline);
313
421
  // Timeout: default 30 minutes for pipeline jobs
@@ -319,33 +427,14 @@ async function runPipelineJob(config, job, options = {}) {
319
427
  `=== Pipeline: ${job.pipeline} ===`,
320
428
  `=== Repo: ${job.source.repo} (${job.source.branch ?? 'main'}) ===`,
321
429
  `=== Auth: ${authMode} ===`,
430
+ ...authWarnings.map((w) => `=== WARNING: ${w} ===`),
322
431
  `=== Started: ${new Date().toISOString()} ===`,
323
432
  `=== Command: docker ${args.join(' ')} ===`,
324
433
  '',
325
434
  ].join('\n');
326
435
  fs.writeFileSync(logFile, logHeader);
327
436
  if (options.detach) {
328
- const dockerArgs = [...args];
329
- dockerArgs.splice(1, 0, '-d');
330
- try {
331
- await execa('docker', dockerArgs);
332
- return {
333
- success: true,
334
- exitCode: 0,
335
- logFile,
336
- output: 'Pipeline job started in detached mode',
337
- };
338
- }
339
- catch (err) {
340
- const error = err;
341
- const errOutput = typeof error.stderr === 'string' ? error.stderr : error.message;
342
- return {
343
- success: false,
344
- exitCode: error.exitCode ?? 1,
345
- logFile,
346
- output: errOutput,
347
- };
348
- }
437
+ return spawnDetachedDockerRun(args, logFile);
349
438
  }
350
439
  // Run in foreground with timeout
351
440
  try {