@qelos/aidev 0.1.14 → 0.1.16

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 (51) hide show
  1. package/.env.aidev.example +5 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +31 -0
  4. package/aidev.log +698 -0
  5. package/dist/__tests__/ai-runners.test.d.ts +2 -0
  6. package/dist/__tests__/ai-runners.test.d.ts.map +1 -0
  7. package/dist/__tests__/ai-runners.test.js +167 -0
  8. package/dist/__tests__/ai-runners.test.js.map +1 -0
  9. package/dist/__tests__/config.test.d.ts +2 -0
  10. package/dist/__tests__/config.test.d.ts.map +1 -0
  11. package/dist/__tests__/config.test.js +272 -0
  12. package/dist/__tests__/config.test.js.map +1 -0
  13. package/dist/__tests__/init.test.js +17 -0
  14. package/dist/__tests__/init.test.js.map +1 -1
  15. package/dist/__tests__/schedule.test.js +154 -0
  16. package/dist/__tests__/schedule.test.js.map +1 -1
  17. package/dist/ai/claude.d.ts.map +1 -1
  18. package/dist/ai/claude.js +5 -0
  19. package/dist/ai/claude.js.map +1 -1
  20. package/dist/ai/cursor.d.ts.map +1 -1
  21. package/dist/ai/cursor.js +4 -1
  22. package/dist/ai/cursor.js.map +1 -1
  23. package/dist/ai/windsurf.d.ts.map +1 -1
  24. package/dist/ai/windsurf.js +4 -1
  25. package/dist/ai/windsurf.js.map +1 -1
  26. package/dist/cli.js +6 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/commands/init.d.ts +1 -0
  29. package/dist/commands/init.d.ts.map +1 -1
  30. package/dist/commands/init.js +11 -0
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/commands/run.d.ts.map +1 -1
  33. package/dist/commands/run.js +10 -2
  34. package/dist/commands/run.js.map +1 -1
  35. package/dist/commands/schedule.d.ts +17 -0
  36. package/dist/commands/schedule.d.ts.map +1 -1
  37. package/dist/commands/schedule.js +339 -6
  38. package/dist/commands/schedule.js.map +1 -1
  39. package/dist/config.d.ts +19 -0
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +96 -3
  42. package/dist/config.js.map +1 -1
  43. package/dist/diagnostics.d.ts +14 -0
  44. package/dist/diagnostics.d.ts.map +1 -0
  45. package/dist/diagnostics.js +89 -0
  46. package/dist/diagnostics.js.map +1 -0
  47. package/dist/platform.d.ts +7 -0
  48. package/dist/platform.d.ts.map +1 -1
  49. package/dist/platform.js +36 -0
  50. package/dist/platform.js.map +1 -1
  51. package/package.json +4 -4
@@ -1,4 +1,18 @@
1
1
  export declare function buildUnixCronLine(cronExpr: string, cwd: string, nodeBin: string, aidevBin: string): string;
2
+ export type LaunchdSchedule = {
3
+ key: 'StartInterval';
4
+ seconds: number;
5
+ } | {
6
+ key: 'StartCalendarInterval';
7
+ hour: number;
8
+ minute: number;
9
+ };
10
+ /**
11
+ * Maps a cron expression to a launchd schedule.
12
+ * Supports the same subset as cronToSchtasksArgs.
13
+ */
14
+ export declare function cronToLaunchdSchedule(cron: string): LaunchdSchedule | null;
15
+ export declare function buildLaunchAgentPlist(label: string, nodeBin: string, aidevBin: string, cwd: string, schedule: LaunchdSchedule): string;
2
16
  /**
3
17
  * Converts a cron expression to schtasks /sc + /mo + /st arguments.
4
18
  * Supports the subset used by the preset list.
@@ -6,7 +20,10 @@ export declare function buildUnixCronLine(cronExpr: string, cwd: string, nodeBin
6
20
  export declare function cronToSchtasksArgs(cron: string): string[] | null;
7
21
  /** Stable task name derived from cwd + optional cron expr — safe for Task Scheduler. */
8
22
  export declare function windowsTaskName(cwd: string, cronExpr?: string): string;
23
+ /** Extracts the launchd schedule object from a plist XML string. */
24
+ export declare function extractLaunchdSchedule(xml: string): LaunchdSchedule | null;
9
25
  export declare function scheduleSetCommand(cronExpr?: string): Promise<void>;
10
26
  export declare function scheduleGetCommand(): Promise<void>;
11
27
  export declare function scheduleRemoveCommand(id?: number): Promise<void>;
28
+ export declare function scheduleFixCommand(): void;
12
29
  //# sourceMappingURL=schedule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":"AAyDA,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG1G;AA6HD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAiBhE;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtE;AAqID,wBAAsB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,wBAAsB,qBAAqB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtE"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":"AA4DA,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG1G;AAoJD,MAAM,MAAM,eAAe,GACvB;IAAE,GAAG,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,GAAG,EAAE,uBAAuB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAiB1E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,eAAe,GACxB,MAAM,CAiDR;AAsKD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAiBhE;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtE;AAqID,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAc1E;AAkFD,wBAAsB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIxD;AAED,wBAAsB,qBAAqB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
@@ -37,12 +37,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.buildUnixCronLine = buildUnixCronLine;
40
+ exports.cronToLaunchdSchedule = cronToLaunchdSchedule;
41
+ exports.buildLaunchAgentPlist = buildLaunchAgentPlist;
40
42
  exports.cronToSchtasksArgs = cronToSchtasksArgs;
41
43
  exports.windowsTaskName = windowsTaskName;
44
+ exports.extractLaunchdSchedule = extractLaunchdSchedule;
42
45
  exports.scheduleSetCommand = scheduleSetCommand;
43
46
  exports.scheduleGetCommand = scheduleGetCommand;
44
47
  exports.scheduleRemoveCommand = scheduleRemoveCommand;
48
+ exports.scheduleFixCommand = scheduleFixCommand;
45
49
  const node_child_process_1 = require("node:child_process");
50
+ const fs = __importStar(require("node:fs"));
51
+ const os = __importStar(require("node:os"));
52
+ const path = __importStar(require("node:path"));
46
53
  const readline = __importStar(require("node:readline/promises"));
47
54
  const node_process_1 = require("node:process");
48
55
  const logger_1 = require("../logger");
@@ -200,6 +207,231 @@ async function scheduleRemoveUnix(id) {
200
207
  process.exit(1);
201
208
  }
202
209
  }
210
+ // ─── macOS (launchd) ─────────────────────────────────────────────────────────
211
+ //
212
+ // On macOS, LaunchAgents (unlike cron) run inside the user's GUI session and
213
+ // have access to the login Keychain. This lets claude / cursor / windsurf read
214
+ // their OAuth tokens, which they store in the Keychain via Electron safeStorage.
215
+ const DARWIN_LABEL_PREFIX = 'com.aidev.run.';
216
+ function launchdLabel(cwd) {
217
+ // djb2 hash — stable, unique label per project directory
218
+ let h = 5381;
219
+ for (let i = 0; i < cwd.length; i++) {
220
+ h = (((h << 5) + h) ^ cwd.charCodeAt(i)) >>> 0;
221
+ }
222
+ return `${DARWIN_LABEL_PREFIX}${h.toString(16)}`;
223
+ }
224
+ function getLaunchAgentsDir() {
225
+ return path.join(os.homedir(), 'Library', 'LaunchAgents');
226
+ }
227
+ function xmlEscape(s) {
228
+ return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
229
+ }
230
+ /**
231
+ * Maps a cron expression to a launchd schedule.
232
+ * Supports the same subset as cronToSchtasksArgs.
233
+ */
234
+ function cronToLaunchdSchedule(cron) {
235
+ // */N * * * * → every N minutes
236
+ const everyMin = cron.match(/^\*\/(\d+) \* \* \* \*$/);
237
+ if (everyMin)
238
+ return { key: 'StartInterval', seconds: parseInt(everyMin[1], 10) * 60 };
239
+ // 0 * * * * → every hour
240
+ if (cron === '0 * * * *')
241
+ return { key: 'StartInterval', seconds: 3600 };
242
+ // 0 */H * * * → every H hours
243
+ const everyHr = cron.match(/^0 \*\/(\d+) \* \* \*$/);
244
+ if (everyHr)
245
+ return { key: 'StartInterval', seconds: parseInt(everyHr[1], 10) * 3600 };
246
+ // 0 H * * * → daily at H:00
247
+ const daily = cron.match(/^0 (\d+) \* \* \*$/);
248
+ if (daily)
249
+ return { key: 'StartCalendarInterval', hour: parseInt(daily[1], 10), minute: 0 };
250
+ return null;
251
+ }
252
+ function buildLaunchAgentPlist(label, nodeBin, aidevBin, cwd, schedule) {
253
+ // Capture PATH at scheduling time (from the developer's live terminal session).
254
+ // This ensures the right node/claude/cursor/windsurf binaries are found when
255
+ // the agent fires later.
256
+ const envPath = process.env.PATH ?? '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin';
257
+ const home = process.env.HOME ?? os.homedir();
258
+ const scheduleXml = schedule.key === 'StartInterval'
259
+ ? `\t<key>StartInterval</key>\n\t<integer>${schedule.seconds}</integer>`
260
+ : [
261
+ '\t<key>StartCalendarInterval</key>',
262
+ '\t<dict>',
263
+ '\t\t<key>Hour</key>',
264
+ `\t\t<integer>${schedule.hour}</integer>`,
265
+ '\t\t<key>Minute</key>',
266
+ `\t\t<integer>${schedule.minute}</integer>`,
267
+ '\t</dict>',
268
+ ].join('\n');
269
+ return [
270
+ '<?xml version="1.0" encoding="UTF-8"?>',
271
+ '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">',
272
+ '<plist version="1.0">',
273
+ '<dict>',
274
+ '\t<key>Label</key>',
275
+ `\t<string>${xmlEscape(label)}</string>`,
276
+ '\t<key>ProgramArguments</key>',
277
+ '\t<array>',
278
+ `\t\t<string>${xmlEscape(nodeBin)}</string>`,
279
+ `\t\t<string>${xmlEscape(aidevBin)}</string>`,
280
+ '\t\t<string>run</string>',
281
+ '\t</array>',
282
+ '\t<key>WorkingDirectory</key>',
283
+ `\t<string>${xmlEscape(cwd)}</string>`,
284
+ scheduleXml,
285
+ '\t<key>EnvironmentVariables</key>',
286
+ '\t<dict>',
287
+ '\t\t<key>PATH</key>',
288
+ `\t\t<string>${xmlEscape(envPath)}</string>`,
289
+ '\t\t<key>HOME</key>',
290
+ `\t\t<string>${xmlEscape(home)}</string>`,
291
+ '\t</dict>',
292
+ '\t<key>RunAtLoad</key>',
293
+ '\t<false/>',
294
+ '</dict>',
295
+ '</plist>',
296
+ '',
297
+ ].join('\n');
298
+ }
299
+ function scheduleSetDarwin(cronExpr) {
300
+ const schedule = cronToLaunchdSchedule(cronExpr);
301
+ if (!schedule) {
302
+ logger_1.logger.error(`Cron expression "${cronExpr}" cannot be mapped to a launchd schedule.\n` +
303
+ ' Use "aidev schedule set" (no argument) to choose a supported preset.');
304
+ process.exit(1);
305
+ }
306
+ const cwd = process.cwd();
307
+ const label = launchdLabel(cwd);
308
+ const aidevBin = getAidevBin();
309
+ const nodeBin = (0, platform_1.findBin)('node') ?? 'node';
310
+ const launchAgentsDir = getLaunchAgentsDir();
311
+ const plistPath = path.join(launchAgentsDir, `${label}.plist`);
312
+ const plist = buildLaunchAgentPlist(label, nodeBin, aidevBin, cwd, schedule);
313
+ try {
314
+ fs.mkdirSync(launchAgentsDir, { recursive: true });
315
+ }
316
+ catch { /* already exists */ }
317
+ // Unload any existing version first (ignore errors — it may not be loaded)
318
+ if (fs.existsSync(plistPath)) {
319
+ (0, node_child_process_1.spawnSync)('launchctl', ['unload', '-w', plistPath], { encoding: 'utf8' });
320
+ }
321
+ fs.writeFileSync(plistPath, plist, 'utf8');
322
+ const loadResult = (0, node_child_process_1.spawnSync)('launchctl', ['load', '-w', plistPath], { encoding: 'utf8' });
323
+ if (loadResult.status !== 0) {
324
+ logger_1.logger.error(`Failed to load Launch Agent:\n${loadResult.stderr}`);
325
+ process.exit(1);
326
+ }
327
+ logger_1.logger.success(`Launch Agent scheduled: ${cronExpr}`);
328
+ logger_1.logger.info(`Plist: ${plistPath}`);
329
+ }
330
+ function parseDarwinEntries() {
331
+ const dir = getLaunchAgentsDir();
332
+ let files;
333
+ try {
334
+ files = fs
335
+ .readdirSync(dir)
336
+ .filter((f) => f.startsWith(DARWIN_LABEL_PREFIX) && f.endsWith('.plist'))
337
+ .map((f) => path.join(dir, f));
338
+ }
339
+ catch {
340
+ return [];
341
+ }
342
+ return files.map((plistPath) => {
343
+ const xml = fs.readFileSync(plistPath, 'utf8');
344
+ const cwdMatch = xml.match(/<key>WorkingDirectory<\/key>\s*<string>([^<]+)<\/string>/);
345
+ const cwd = cwdMatch ? cwdMatch[1] : '(unknown)';
346
+ const labelMatch = xml.match(/<key>Label<\/key>\s*<string>([^<]+)<\/string>/);
347
+ const label = labelMatch ? labelMatch[1] : path.basename(plistPath, '.plist');
348
+ const intervalMatch = xml.match(/<key>StartInterval<\/key>\s*<integer>(\d+)<\/integer>/);
349
+ let schedule = '(custom)';
350
+ if (intervalMatch) {
351
+ const secs = parseInt(intervalMatch[1], 10);
352
+ schedule = secs % 3600 === 0 ? `every ${secs / 3600}h` : `every ${secs / 60}m`;
353
+ }
354
+ else {
355
+ const hourMatch = xml.match(/<key>StartCalendarInterval<\/key>[\s\S]*?<key>Hour<\/key>\s*<integer>(\d+)<\/integer>/);
356
+ if (hourMatch) {
357
+ schedule = `daily at ${String(parseInt(hourMatch[1], 10)).padStart(2, '0')}:00`;
358
+ }
359
+ }
360
+ return { label, cwd, schedule, plistPath };
361
+ });
362
+ }
363
+ function printDarwinEntriesTable(entries) {
364
+ const cwdW = Math.max(9, ...entries.map((e) => e.cwd.length));
365
+ const schedW = Math.max(8, ...entries.map((e) => e.schedule.length));
366
+ const header = ` ${chalk_1.default.bold('ID')} ` +
367
+ `${chalk_1.default.bold('Directory'.padEnd(cwdW))} ` +
368
+ chalk_1.default.bold('Schedule'.padEnd(schedW));
369
+ const sep = ` ── ${'─'.repeat(cwdW)} ${'─'.repeat(schedW)}`;
370
+ console.log(header);
371
+ console.log(sep);
372
+ entries.forEach((e, i) => {
373
+ const id = chalk_1.default.cyan(String(i + 1).padStart(2));
374
+ const isCurrentDir = e.cwd === process.cwd();
375
+ const dir = isCurrentDir ? chalk_1.default.green(e.cwd.padEnd(cwdW)) : e.cwd.padEnd(cwdW);
376
+ console.log(` ${id} ${dir} ${e.schedule}`);
377
+ });
378
+ }
379
+ function scheduleGetDarwin() {
380
+ const entries = parseDarwinEntries();
381
+ if (entries.length === 0) {
382
+ logger_1.logger.warn('No aidev schedules found');
383
+ logger_1.logger.info('Use "aidev schedule set" to configure one.');
384
+ return;
385
+ }
386
+ logger_1.logger.info('Scheduled aidev jobs:');
387
+ console.log();
388
+ printDarwinEntriesTable(entries);
389
+ console.log();
390
+ }
391
+ async function scheduleRemoveDarwin(id) {
392
+ const entries = parseDarwinEntries();
393
+ if (entries.length === 0) {
394
+ logger_1.logger.warn('No aidev schedules found');
395
+ return;
396
+ }
397
+ let idx;
398
+ if (id !== undefined) {
399
+ idx = id - 1;
400
+ }
401
+ else {
402
+ logger_1.logger.info('Scheduled aidev jobs:');
403
+ console.log();
404
+ printDarwinEntriesTable(entries);
405
+ console.log();
406
+ const rl = readline.createInterface({ input: node_process_1.stdin, output: node_process_1.stdout });
407
+ try {
408
+ while (true) {
409
+ const raw = await rl.question(` Remove ID ${chalk_1.default.dim('[1]')}: `);
410
+ const val = raw.trim() || '1';
411
+ const n = parseInt(val, 10);
412
+ if (n >= 1 && n <= entries.length) {
413
+ idx = n - 1;
414
+ break;
415
+ }
416
+ console.log(chalk_1.default.yellow(` Enter a number between 1 and ${entries.length}.`));
417
+ }
418
+ }
419
+ finally {
420
+ rl.close();
421
+ }
422
+ }
423
+ if (idx < 0 || idx >= entries.length) {
424
+ logger_1.logger.error(`Invalid ID: ${id}. Valid range: 1–${entries.length}`);
425
+ process.exit(1);
426
+ }
427
+ const toRemove = entries[idx];
428
+ (0, node_child_process_1.spawnSync)('launchctl', ['unload', '-w', toRemove.plistPath], { encoding: 'utf8' });
429
+ try {
430
+ fs.unlinkSync(toRemove.plistPath);
431
+ }
432
+ catch { /* already removed */ }
433
+ logger_1.logger.success(`Removed schedule for ${toRemove.cwd}`);
434
+ }
203
435
  // ─── Windows (schtasks) ───────────────────────────────────────────────────────
204
436
  /**
205
437
  * Converts a cron expression to schtasks /sc + /mo + /st arguments.
@@ -343,21 +575,122 @@ async function scheduleRemoveWindows(id) {
343
575
  process.exit(1);
344
576
  }
345
577
  }
578
+ // ─── schedule fix ─────────────────────────────────────────────────────────────
579
+ /** Extracts the launchd schedule object from a plist XML string. */
580
+ function extractLaunchdSchedule(xml) {
581
+ const intervalMatch = xml.match(/<key>StartInterval<\/key>\s*<integer>(\d+)<\/integer>/);
582
+ if (intervalMatch)
583
+ return { key: 'StartInterval', seconds: parseInt(intervalMatch[1], 10) };
584
+ const hourMatch = xml.match(/<key>Hour<\/key>\s*<integer>(\d+)<\/integer>/);
585
+ const minMatch = xml.match(/<key>Minute<\/key>\s*<integer>(\d+)<\/integer>/);
586
+ if (hourMatch && minMatch) {
587
+ return {
588
+ key: 'StartCalendarInterval',
589
+ hour: parseInt(hourMatch[1], 10),
590
+ minute: parseInt(minMatch[1], 10),
591
+ };
592
+ }
593
+ return null;
594
+ }
595
+ function scheduleFixDarwin() {
596
+ const entries = parseDarwinEntries();
597
+ if (entries.length === 0) {
598
+ logger_1.logger.warn('No aidev schedules found');
599
+ return;
600
+ }
601
+ const aidevBin = getAidevBin();
602
+ const nodeBin = (0, platform_1.findBin)('node') ?? 'node';
603
+ let fixed = 0;
604
+ for (const entry of entries) {
605
+ const xml = fs.readFileSync(entry.plistPath, 'utf8');
606
+ const schedule = extractLaunchdSchedule(xml);
607
+ if (!schedule) {
608
+ logger_1.logger.warn(`${entry.cwd}: cannot parse schedule — skipping`);
609
+ continue;
610
+ }
611
+ const expected = buildLaunchAgentPlist(entry.label, nodeBin, aidevBin, entry.cwd, schedule);
612
+ if (expected === xml) {
613
+ logger_1.logger.info(`${entry.cwd}: already up to date`);
614
+ continue;
615
+ }
616
+ (0, node_child_process_1.spawnSync)('launchctl', ['unload', '-w', entry.plistPath], { encoding: 'utf8' });
617
+ fs.writeFileSync(entry.plistPath, expected, 'utf8');
618
+ const loadResult = (0, node_child_process_1.spawnSync)('launchctl', ['load', '-w', entry.plistPath], { encoding: 'utf8' });
619
+ if (loadResult.status !== 0) {
620
+ logger_1.logger.error(`Failed to reload ${entry.plistPath}:\n${loadResult.stderr}`);
621
+ continue;
622
+ }
623
+ logger_1.logger.success(`Fixed: ${entry.cwd}`);
624
+ fixed++;
625
+ }
626
+ logger_1.logger.info(`${fixed} fixed, ${entries.length - fixed} already up to date`);
627
+ }
628
+ function scheduleFixUnix() {
629
+ const crontab = getCrontab();
630
+ const entries = parseAidevEntries(crontab);
631
+ if (entries.length === 0) {
632
+ logger_1.logger.warn('No aidev schedules found');
633
+ return;
634
+ }
635
+ const aidevBin = getAidevBin();
636
+ const nodeBin = (0, platform_1.findBin)('node') ?? 'node';
637
+ let lines = crontab.split('\n');
638
+ let fixed = 0;
639
+ for (const entry of entries) {
640
+ const expected = buildUnixCronLine(entry.cron, entry.cwd, nodeBin, aidevBin);
641
+ if (entry.line === expected) {
642
+ logger_1.logger.info(`${entry.cwd}: already up to date`);
643
+ continue;
644
+ }
645
+ lines = lines.map((l) => (l === entry.line ? expected : l));
646
+ logger_1.logger.success(`Fixed: ${entry.cwd}`);
647
+ fixed++;
648
+ }
649
+ if (fixed > 0) {
650
+ const updated = lines.join('\n').replace(/\n+$/, '') + '\n';
651
+ if (!setCrontab(updated)) {
652
+ logger_1.logger.error('Failed to update crontab');
653
+ process.exit(1);
654
+ }
655
+ }
656
+ logger_1.logger.info(`${fixed} fixed, ${entries.length - fixed} already up to date`);
657
+ }
658
+ function scheduleFixWindows() {
659
+ logger_1.logger.warn('schedule fix is not supported on Windows — re-run "aidev schedule set" for each project.');
660
+ }
346
661
  // ─── Public API ───────────────────────────────────────────────────────────────
347
662
  async function scheduleSetCommand(cronExpr) {
348
663
  if (!cronExpr)
349
664
  cronExpr = await pickCron();
350
- platform_1.isWindows ? scheduleSetWindows(cronExpr) : scheduleSetUnix(cronExpr);
665
+ if (platform_1.isWindows)
666
+ scheduleSetWindows(cronExpr);
667
+ else if (process.platform === 'darwin')
668
+ scheduleSetDarwin(cronExpr);
669
+ else
670
+ scheduleSetUnix(cronExpr);
351
671
  }
352
672
  async function scheduleGetCommand() {
353
- platform_1.isWindows ? scheduleGetWindows() : scheduleGetUnix();
673
+ if (platform_1.isWindows)
674
+ scheduleGetWindows();
675
+ else if (process.platform === 'darwin')
676
+ scheduleGetDarwin();
677
+ else
678
+ scheduleGetUnix();
354
679
  }
355
680
  async function scheduleRemoveCommand(id) {
356
- if (platform_1.isWindows) {
681
+ if (platform_1.isWindows)
357
682
  await scheduleRemoveWindows(id);
358
- }
359
- else {
683
+ else if (process.platform === 'darwin')
684
+ await scheduleRemoveDarwin(id);
685
+ else
360
686
  await scheduleRemoveUnix(id);
361
- }
687
+ }
688
+ function scheduleFixCommand() {
689
+ if (platform_1.isWindows)
690
+ scheduleFixWindows();
691
+ else if (process.platform === 'darwin')
692
+ scheduleFixDarwin();
693
+ else
694
+ scheduleFixUnix();
362
695
  }
363
696
  //# sourceMappingURL=schedule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,8CAGC;AAiID,gDAiBC;AAGD,0CAKC;AAqID,gDAGC;AAED,gDAEC;AAED,sDAMC;AA1WD,2DAA+C;AAC/C,iEAAmD;AACnD,+CAAgE;AAChE,sCAAmC;AACnC,0CAAiD;AACjD,kDAA0B;AAE1B,gFAAgF;AAEhF,MAAM,OAAO,GAA2C;IACtD,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE;IACnD,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE;IACnD,EAAE,KAAK,EAAE,YAAY,EAAQ,IAAI,EAAE,WAAW,EAAK;IACnD,EAAE,KAAK,EAAE,eAAe,EAAK,IAAI,EAAE,aAAa,EAAG;IACnD,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAK;CACpD,CAAC;AAEF,KAAK,UAAU,QAAQ;IACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACvB,OAAO,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAClF,CAAC;IAEF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,WAAW;IAClB,OAAO,IAAA,kBAAO,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC;AACrC,CAAC;AAED,iFAAiF;AAEjF,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,GAAW,EAAE,OAAe,EAAE,QAAgB;IAChG,MAAM,MAAM,GAAG,GAAG,kBAAkB,GAAG,GAAG,EAAE,CAAC;IAC7C,OAAO,GAAG,QAAQ,qBAAqB,GAAG,OAAO,OAAO,IAAI,QAAQ,SAAS,MAAM,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,kBAAO,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IAC1C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAE5D,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,eAAM,CAAC,OAAO,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QACjD,eAAM,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAQD,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,OAAO;SACX,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;SAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAoB;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GACV,KAAK,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACzB,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;QAC3C,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,MAAM,GAAG,GACP,QAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,EAAE,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,eAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAAW;IAC3C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IACf,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;gBAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,GAAI,GAAG,CAAC,IAAI,GAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,eAAe,EAAE,oBAAoB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAE9B,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,eAAM,CAAC,OAAO,CAAC,wBAAwB,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,kCAAkC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACvD,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAE/D,gCAAgC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvD,IAAI,SAAS;QAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,8BAA8B;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC/C,IAAI,KAAK;QAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAE7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,SAAgB,eAAe,CAAC,GAAW,EAAE,QAAiB;IAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,SAAS,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtF,OAAO,UAAU,SAAS,KAAK,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CACV,oBAAoB,QAAQ,iDAAiD;YAC7E,wEAAwE,CACzE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,qDAAqD;IACrD,MAAM,OAAO,GAAG,iBAAiB,GAAG,SAAS,QAAQ,OAAO,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAA,8BAAS,EACtB,UAAU,EACV,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,EACnE,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,eAAM,CAAC,OAAO,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;QAC5D,eAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAQD,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,SAAS,qBAAqB;IAC5B,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM;SACjB,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,mBAAmB,EAAE,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA2B;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GACV,KAAK,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACzB,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;QACvC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,EAAE,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,eAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,EAAW;IAC9C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IACf,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;gBAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,GAAI,GAAG,CAAC,IAAI,GAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,eAAe,EAAE,oBAAoB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,UAAU,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAChF,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,eAAM,CAAC,OAAO,CAAC,iCAAiC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iFAAiF;AAE1E,KAAK,UAAU,kBAAkB,CAAC,QAAiB;IACxD,IAAI,CAAC,QAAQ;QAAE,QAAQ,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC3C,oBAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAEM,KAAK,UAAU,kBAAkB;IACtC,oBAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AACvD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,EAAW;IACrD,IAAI,oBAAS,EAAE,CAAC;QACd,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,3 +1,22 @@
1
1
  import { Config } from './types';
2
+ export declare function mergeNullDelimited(stdout: string): void;
3
+ export declare function sourceShellProfile(profiles?: string[]): void;
4
+ /**
5
+ * Merges env vars from a global extend file and a local project file into
6
+ * process.env. Priority order (highest → lowest):
7
+ * 1. process.env (already-set shell variables — never overwritten)
8
+ * 2. local .env.aidev values
9
+ * 3. AIDEV_ENV_EXTEND file values (global base)
10
+ *
11
+ * `envExtend` can be supplied explicitly (e.g. from process.env.AIDEV_ENV_EXTEND
12
+ * set by sourceShellProfile) OR discovered inside the local file itself.
13
+ */
14
+ /**
15
+ * Resolves a path that may be absolute, `~/…`, or relative.
16
+ * Relative paths are resolved against `relativeBase` (the directory of the
17
+ * local env file, or CWD when the path comes from the shell environment).
18
+ */
19
+ export declare function resolveEnvPath(rawPath: string, relativeBase: string): string;
20
+ export declare function applyEnvFiles(localPath: string | undefined, envExtend?: string): void;
2
21
  export declare function loadConfig(customEnvPath?: string): Config;
3
22
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAa,MAAM,SAAS,CAAC;AAG5C,wBAAgB,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAqEzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAa,MAAM,SAAS,CAAC;AAG5C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUvD;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAgC5D;AAED;;;;;;;;;GASG;AACH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAyBrF;AAED,wBAAgB,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAyEzD"}
package/dist/config.js CHANGED
@@ -33,21 +33,114 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.mergeNullDelimited = mergeNullDelimited;
37
+ exports.sourceShellProfile = sourceShellProfile;
38
+ exports.resolveEnvPath = resolveEnvPath;
39
+ exports.applyEnvFiles = applyEnvFiles;
36
40
  exports.loadConfig = loadConfig;
37
41
  const dotenv = __importStar(require("dotenv"));
38
42
  const path = __importStar(require("node:path"));
39
43
  const fs = __importStar(require("node:fs"));
44
+ const os = __importStar(require("node:os"));
45
+ const node_child_process_1 = require("node:child_process");
40
46
  const git_1 = require("./git");
47
+ function mergeNullDelimited(stdout) {
48
+ for (const entry of stdout.split('\0')) {
49
+ const eq = entry.indexOf('=');
50
+ if (eq === -1)
51
+ continue;
52
+ const key = entry.slice(0, eq);
53
+ const val = entry.slice(eq + 1);
54
+ if (key && !(key in process.env)) {
55
+ process.env[key] = val;
56
+ }
57
+ }
58
+ }
59
+ // profiles: list of rc file paths to source (injectable for tests; defaults to platform standard files)
60
+ function sourceShellProfile(profiles) {
61
+ const platform = process.platform;
62
+ if (platform === 'darwin' || platform === 'linux') {
63
+ const shell = platform === 'darwin' ? 'zsh' : (process.env.SHELL || 'bash');
64
+ const defaultProfiles = platform === 'darwin'
65
+ ? ['~/.zprofile', '~/.zshrc']
66
+ : ['~/.profile', '~/.bash_profile', '~/.bashrc'];
67
+ const paths = profiles ?? defaultProfiles;
68
+ // Pass paths as positional args — no shell interpolation of path strings
69
+ const script = 'for f in "$@"; do source "$f" 2>/dev/null; done; env -0';
70
+ const result = (0, node_child_process_1.spawnSync)(shell, ['-c', script, '--', ...paths], {
71
+ encoding: 'utf8',
72
+ env: process.env,
73
+ });
74
+ if (result.status === 0 && result.stdout)
75
+ mergeNullDelimited(result.stdout);
76
+ return;
77
+ }
78
+ if (platform === 'win32') {
79
+ // Read user-level env vars from the registry via PowerShell
80
+ const ps = '[System.Environment]::GetEnvironmentVariables("User").GetEnumerator() | ' +
81
+ 'ForEach-Object { [System.Text.Encoding]::UTF8.GetBytes($_.Key + "=" + $_.Value + [char]0) | ' +
82
+ '[System.Console]::OpenStandardOutput().Write($_, 0, $_.Length) }';
83
+ const result = (0, node_child_process_1.spawnSync)('powershell', ['-NoProfile', '-Command', ps], {
84
+ encoding: 'buffer',
85
+ env: process.env,
86
+ });
87
+ if (result.status === 0 && result.stdout)
88
+ mergeNullDelimited(result.stdout.toString('utf8'));
89
+ }
90
+ }
91
+ /**
92
+ * Merges env vars from a global extend file and a local project file into
93
+ * process.env. Priority order (highest → lowest):
94
+ * 1. process.env (already-set shell variables — never overwritten)
95
+ * 2. local .env.aidev values
96
+ * 3. AIDEV_ENV_EXTEND file values (global base)
97
+ *
98
+ * `envExtend` can be supplied explicitly (e.g. from process.env.AIDEV_ENV_EXTEND
99
+ * set by sourceShellProfile) OR discovered inside the local file itself.
100
+ */
101
+ /**
102
+ * Resolves a path that may be absolute, `~/…`, or relative.
103
+ * Relative paths are resolved against `relativeBase` (the directory of the
104
+ * local env file, or CWD when the path comes from the shell environment).
105
+ */
106
+ function resolveEnvPath(rawPath, relativeBase) {
107
+ if (rawPath.startsWith('~/') || rawPath === '~') {
108
+ return path.join(os.homedir(), rawPath.slice(2));
109
+ }
110
+ if (path.isAbsolute(rawPath))
111
+ return rawPath;
112
+ return path.resolve(relativeBase, rawPath);
113
+ }
114
+ function applyEnvFiles(localPath, envExtend) {
115
+ const localVars = localPath && fs.existsSync(localPath)
116
+ ? dotenv.parse(fs.readFileSync(localPath, 'utf8'))
117
+ : {};
118
+ // Extend path: caller-supplied wins, then local file's own AIDEV_ENV_EXTEND entry
119
+ const rawExtend = envExtend || localVars['AIDEV_ENV_EXTEND'] || '';
120
+ // Relative paths in local file resolve against the local file's directory;
121
+ // paths from shell env resolve against CWD.
122
+ const extendBase = localPath ? path.dirname(localPath) : process.cwd();
123
+ const extendPath = rawExtend ? resolveEnvPath(rawExtend, extendBase) : '';
124
+ const extendVars = extendPath && fs.existsSync(extendPath)
125
+ ? dotenv.parse(fs.readFileSync(extendPath, 'utf8'))
126
+ : {};
127
+ // local overrides extend; neither overrides already-set process.env values
128
+ const merged = { ...extendVars, ...localVars };
129
+ for (const [key, val] of Object.entries(merged)) {
130
+ if (!(key in process.env)) {
131
+ process.env[key] = val;
132
+ }
133
+ }
134
+ }
41
135
  function loadConfig(customEnvPath) {
136
+ sourceShellProfile();
42
137
  const envPath = customEnvPath
43
138
  ? path.resolve(customEnvPath)
44
139
  : path.join(process.cwd(), '.env.aidev');
45
140
  if (customEnvPath && !fs.existsSync(envPath)) {
46
141
  throw new Error(`Env file not found: ${envPath}`);
47
142
  }
48
- if (fs.existsSync(envPath)) {
49
- dotenv.config({ path: envPath });
50
- }
143
+ applyEnvFiles(fs.existsSync(envPath) ? envPath : undefined, process.env.AIDEV_ENV_EXTEND);
51
144
  const provider = (process.env.PROVIDER || 'clickup').toLowerCase();
52
145
  const required = provider === 'jira'
53
146
  ? ['JIRA_BASE_URL', 'JIRA_EMAIL', 'JIRA_API_TOKEN', 'JIRA_PROJECT']