@bradygaster/squad-cli 0.9.2-insider.5 → 0.9.3-insider.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 (110) hide show
  1. package/dist/cli/commands/doctor.d.ts +2 -0
  2. package/dist/cli/commands/doctor.d.ts.map +1 -1
  3. package/dist/cli/commands/doctor.js +27 -5
  4. package/dist/cli/commands/doctor.js.map +1 -1
  5. package/dist/cli/commands/loop.d.ts +51 -0
  6. package/dist/cli/commands/loop.d.ts.map +1 -0
  7. package/dist/cli/commands/loop.js +352 -0
  8. package/dist/cli/commands/loop.js.map +1 -0
  9. package/dist/cli/commands/watch/capabilities/budget-check.d.ts +29 -0
  10. package/dist/cli/commands/watch/capabilities/budget-check.d.ts.map +1 -0
  11. package/dist/cli/commands/watch/capabilities/budget-check.js +38 -0
  12. package/dist/cli/commands/watch/capabilities/budget-check.js.map +1 -0
  13. package/dist/cli/commands/watch/capabilities/circuit-breaker.d.ts +52 -0
  14. package/dist/cli/commands/watch/capabilities/circuit-breaker.d.ts.map +1 -0
  15. package/dist/cli/commands/watch/capabilities/circuit-breaker.js +152 -0
  16. package/dist/cli/commands/watch/capabilities/circuit-breaker.js.map +1 -0
  17. package/dist/cli/commands/watch/capabilities/cleanup.d.ts +18 -0
  18. package/dist/cli/commands/watch/capabilities/cleanup.d.ts.map +1 -0
  19. package/dist/cli/commands/watch/capabilities/cleanup.js +135 -0
  20. package/dist/cli/commands/watch/capabilities/cleanup.js.map +1 -0
  21. package/dist/cli/commands/watch/capabilities/execute.d.ts +15 -3
  22. package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -1
  23. package/dist/cli/commands/watch/capabilities/execute.js +108 -51
  24. package/dist/cli/commands/watch/capabilities/execute.js.map +1 -1
  25. package/dist/cli/commands/watch/capabilities/fleet-dispatch.d.ts +20 -0
  26. package/dist/cli/commands/watch/capabilities/fleet-dispatch.d.ts.map +1 -0
  27. package/dist/cli/commands/watch/capabilities/fleet-dispatch.js +144 -0
  28. package/dist/cli/commands/watch/capabilities/fleet-dispatch.js.map +1 -0
  29. package/dist/cli/commands/watch/capabilities/health-check.d.ts +29 -0
  30. package/dist/cli/commands/watch/capabilities/health-check.d.ts.map +1 -0
  31. package/dist/cli/commands/watch/capabilities/health-check.js +139 -0
  32. package/dist/cli/commands/watch/capabilities/health-check.js.map +1 -0
  33. package/dist/cli/commands/watch/capabilities/heartbeat.d.ts +48 -0
  34. package/dist/cli/commands/watch/capabilities/heartbeat.d.ts.map +1 -0
  35. package/dist/cli/commands/watch/capabilities/heartbeat.js +115 -0
  36. package/dist/cli/commands/watch/capabilities/heartbeat.js.map +1 -0
  37. package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -1
  38. package/dist/cli/commands/watch/capabilities/index.js +4 -0
  39. package/dist/cli/commands/watch/capabilities/index.js.map +1 -1
  40. package/dist/cli/commands/watch/capabilities/lockfile.d.ts +30 -0
  41. package/dist/cli/commands/watch/capabilities/lockfile.d.ts.map +1 -0
  42. package/dist/cli/commands/watch/capabilities/lockfile.js +100 -0
  43. package/dist/cli/commands/watch/capabilities/lockfile.js.map +1 -0
  44. package/dist/cli/commands/watch/capabilities/machine-capabilities.d.ts +30 -0
  45. package/dist/cli/commands/watch/capabilities/machine-capabilities.d.ts.map +1 -0
  46. package/dist/cli/commands/watch/capabilities/machine-capabilities.js +103 -0
  47. package/dist/cli/commands/watch/capabilities/machine-capabilities.js.map +1 -0
  48. package/dist/cli/commands/watch/capabilities/post-failure.d.ts +19 -0
  49. package/dist/cli/commands/watch/capabilities/post-failure.d.ts.map +1 -0
  50. package/dist/cli/commands/watch/capabilities/post-failure.js +58 -0
  51. package/dist/cli/commands/watch/capabilities/post-failure.js.map +1 -0
  52. package/dist/cli/commands/watch/capabilities/priority.d.ts +59 -0
  53. package/dist/cli/commands/watch/capabilities/priority.d.ts.map +1 -0
  54. package/dist/cli/commands/watch/capabilities/priority.js +101 -0
  55. package/dist/cli/commands/watch/capabilities/priority.js.map +1 -0
  56. package/dist/cli/commands/watch/capabilities/rate-pool.d.ts +67 -0
  57. package/dist/cli/commands/watch/capabilities/rate-pool.d.ts.map +1 -0
  58. package/dist/cli/commands/watch/capabilities/rate-pool.js +187 -0
  59. package/dist/cli/commands/watch/capabilities/rate-pool.js.map +1 -0
  60. package/dist/cli/commands/watch/capabilities/self-pull.d.ts +4 -1
  61. package/dist/cli/commands/watch/capabilities/self-pull.d.ts.map +1 -1
  62. package/dist/cli/commands/watch/capabilities/self-pull.js +53 -5
  63. package/dist/cli/commands/watch/capabilities/self-pull.js.map +1 -1
  64. package/dist/cli/commands/watch/capabilities/stale-reclaim.d.ts +23 -0
  65. package/dist/cli/commands/watch/capabilities/stale-reclaim.d.ts.map +1 -0
  66. package/dist/cli/commands/watch/capabilities/stale-reclaim.js +87 -0
  67. package/dist/cli/commands/watch/capabilities/stale-reclaim.js.map +1 -0
  68. package/dist/cli/commands/watch/capabilities/webhook-alerts.d.ts +29 -0
  69. package/dist/cli/commands/watch/capabilities/webhook-alerts.d.ts.map +1 -0
  70. package/dist/cli/commands/watch/capabilities/webhook-alerts.js +114 -0
  71. package/dist/cli/commands/watch/capabilities/webhook-alerts.js.map +1 -0
  72. package/dist/cli/commands/watch/config.d.ts +18 -0
  73. package/dist/cli/commands/watch/config.d.ts.map +1 -1
  74. package/dist/cli/commands/watch/config.js +20 -1
  75. package/dist/cli/commands/watch/config.js.map +1 -1
  76. package/dist/cli/commands/watch/health.d.ts +41 -0
  77. package/dist/cli/commands/watch/health.d.ts.map +1 -0
  78. package/dist/cli/commands/watch/health.js +141 -0
  79. package/dist/cli/commands/watch/health.js.map +1 -0
  80. package/dist/cli/commands/watch/index.d.ts +9 -2
  81. package/dist/cli/commands/watch/index.d.ts.map +1 -1
  82. package/dist/cli/commands/watch/index.js +115 -8
  83. package/dist/cli/commands/watch/index.js.map +1 -1
  84. package/dist/cli/commands/watch/types.d.ts +2 -0
  85. package/dist/cli/commands/watch/types.d.ts.map +1 -1
  86. package/dist/cli/commands/watch/verbose.d.ts +12 -0
  87. package/dist/cli/commands/watch/verbose.d.ts.map +1 -0
  88. package/dist/cli/commands/watch/verbose.js +28 -0
  89. package/dist/cli/commands/watch/verbose.js.map +1 -0
  90. package/dist/cli/core/detect-squad-dir.d.ts.map +1 -1
  91. package/dist/cli/core/detect-squad-dir.js +9 -12
  92. package/dist/cli/core/detect-squad-dir.js.map +1 -1
  93. package/dist/cli/core/nap.d.ts.map +1 -1
  94. package/dist/cli/core/nap.js +9 -4
  95. package/dist/cli/core/nap.js.map +1 -1
  96. package/dist/cli/core/upgrade.d.ts +18 -0
  97. package/dist/cli/core/upgrade.d.ts.map +1 -1
  98. package/dist/cli/core/upgrade.js +119 -0
  99. package/dist/cli/core/upgrade.js.map +1 -1
  100. package/dist/cli-entry.js +208 -12
  101. package/dist/cli-entry.js.map +1 -1
  102. package/package.json +5 -1
  103. package/templates/ceremonies.md +28 -0
  104. package/templates/issue-lifecycle.md +2 -1
  105. package/templates/loop.md +46 -0
  106. package/templates/ralph-triage.js +3 -1
  107. package/templates/scribe-charter.md +20 -1
  108. package/templates/squad.agent.md.template +9 -7
  109. package/templates/workflows/squad-triage.yml +4 -2
  110. package/templates/workflows/sync-squad-labels.yml +3 -1
@@ -14,6 +14,8 @@ export interface DoctorCheck {
14
14
  name: string;
15
15
  status: 'pass' | 'fail' | 'warn';
16
16
  message: string;
17
+ /** Optional severity hint for display; keeps the status union stable. */
18
+ severity?: 'info';
17
19
  }
18
20
  /** Detected squad layout mode. */
19
21
  export type DoctorMode = 'local' | 'remote' | 'hub';
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAoPpD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAalE;AAiID;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2CpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtD;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAc/E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAoPpD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAalE;AAuJD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2CpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtD;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAgB/E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/D"}
@@ -274,10 +274,20 @@ function checkVscodeJsonrpcExports(cwd) {
274
274
  message: 'missing exports field — run postinstall or reinstall (see #449)',
275
275
  };
276
276
  }
277
+ // Detect whether we're in a local dev context (node_modules exists) or global install
278
+ const hasNodeModules = isDirectory(path.join(cwd, 'node_modules'));
279
+ if (hasNodeModules) {
280
+ return {
281
+ name: 'vscode-jsonrpc exports field',
282
+ status: 'warn',
283
+ message: 'not found in node_modules — run npm install or check dependencies',
284
+ };
285
+ }
277
286
  return {
278
287
  name: 'vscode-jsonrpc exports field',
279
288
  status: 'warn',
280
- message: 'vscode-jsonrpc not found in node_modules — expected for global CLI installs. For local development, run: npm install',
289
+ severity: 'info',
290
+ message: 'not found in node_modules (expected for global installs)',
281
291
  };
282
292
  }
283
293
  /**
@@ -315,10 +325,20 @@ function checkCopilotSdkSessionPatch(cwd) {
315
325
  };
316
326
  }
317
327
  }
328
+ // Detect whether we're in a local dev context (node_modules exists) or global install
329
+ const hasNodeModules = isDirectory(path.join(cwd, 'node_modules'));
330
+ if (hasNodeModules) {
331
+ return {
332
+ name: 'copilot-sdk session.js ESM patch',
333
+ status: 'warn',
334
+ message: 'not found in node_modules — run npm install or check dependencies',
335
+ };
336
+ }
318
337
  return {
319
338
  name: 'copilot-sdk session.js ESM patch',
320
339
  status: 'warn',
321
- message: '@github/copilot-sdk not found in node_modules — expected for global CLI installs. For local development, run: npm install',
340
+ severity: 'info',
341
+ message: 'not found in node_modules (expected for global installs)',
322
342
  };
323
343
  }
324
344
  function checkSquadAgentMd(cwd) {
@@ -417,12 +437,14 @@ export function printDoctorReport(checks, mode) {
417
437
  console.log('═══════════════\n');
418
438
  console.log(`Mode: ${mode}\n`);
419
439
  for (const c of checks) {
420
- console.log(`${STATUS_ICON[c.status]} ${c.name} — ${c.message}`);
440
+ const icon = c.severity === 'info' ? 'ℹ️' : STATUS_ICON[c.status];
441
+ console.log(`${icon} ${c.name} — ${c.message}`);
421
442
  }
422
443
  const passed = checks.filter(c => c.status === 'pass').length;
423
444
  const failed = checks.filter(c => c.status === 'fail').length;
424
- const warned = checks.filter(c => c.status === 'warn').length;
425
- console.log(`\nSummary: ${passed} passed, ${failed} failed, ${warned} warnings\n`);
445
+ const warned = checks.filter(c => c.status === 'warn' && c.severity !== 'info').length;
446
+ const infos = checks.filter(c => c.severity === 'info').length;
447
+ console.log(`\nSummary: ${passed} passed, ${failed} failed, ${warned} warnings, ${infos} info\n`);
426
448
  }
427
449
  /**
428
450
  * CLI entry point — run doctor and print results.
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Loop command — prompt-driven continuous work loop.
3
+ *
4
+ * Reads a loop.md file (YAML frontmatter + prompt body) and runs it on a
5
+ * fixed interval without requiring GitHub issues. Think of it as Ralph in
6
+ * "free-run" mode: the prompt IS the work driver.
7
+ */
8
+ export interface LoopFrontmatter {
9
+ /** Safety gate — must be explicitly set to true. */
10
+ configured: boolean;
11
+ /** Minutes between cycles (default: 10). */
12
+ interval: number;
13
+ /** Max minutes per cycle (default: 30). */
14
+ timeout: number;
15
+ /** Human description shown in status output. */
16
+ description?: string;
17
+ }
18
+ export interface LoopConfig {
19
+ /** Path to loop file (default: loop.md in cwd). */
20
+ filePath?: string;
21
+ /** Override interval from frontmatter. */
22
+ interval?: number;
23
+ /** Override timeout from frontmatter. */
24
+ timeout?: number;
25
+ /** Extra flags passed to `gh copilot`. */
26
+ copilotFlags?: string;
27
+ /** Fully override the agent command (e.g., `gh copilot --yolo`). */
28
+ agentCmd?: string;
29
+ /** Capability overrides, keyed by capability name. */
30
+ capabilities: Record<string, boolean | Record<string, unknown>>;
31
+ }
32
+ /**
33
+ * Parse a loop.md string into validated frontmatter + prompt body.
34
+ *
35
+ * Frontmatter is the YAML block between the first two `---` delimiters.
36
+ * Only simple `key: value` pairs are supported — no yaml dependency needed.
37
+ */
38
+ export declare function parseLoopFile(content: string): {
39
+ frontmatter: LoopFrontmatter;
40
+ prompt: string;
41
+ };
42
+ /** Returns the content of a starter loop.md for --init. */
43
+ export declare function generateLoopFile(): string;
44
+ /**
45
+ * Run the loop command.
46
+ *
47
+ * @param dest - Working directory (typically process.cwd()).
48
+ * @param options - CLI-parsed config overrides.
49
+ */
50
+ export declare function runLoop(dest: string, options: LoopConfig): Promise<void>;
51
+ //# sourceMappingURL=loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/loop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjE;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoD/F;AAID,2DAA2D;AAC3D,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAkID;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgM9E"}
@@ -0,0 +1,352 @@
1
+ /**
2
+ * Loop command — prompt-driven continuous work loop.
3
+ *
4
+ * Reads a loop.md file (YAML frontmatter + prompt body) and runs it on a
5
+ * fixed interval without requiring GitHub issues. Think of it as Ralph in
6
+ * "free-run" mode: the prompt IS the work driver.
7
+ */
8
+ import path from 'node:path';
9
+ import { execFile } from 'node:child_process';
10
+ import { existsSync, readFileSync } from 'node:fs';
11
+ import { fileURLToPath } from 'node:url';
12
+ import { detectSquadDir } from '../core/detect-squad-dir.js';
13
+ import { fatal } from '../core/errors.js';
14
+ import { GREEN, RED, DIM, BOLD, RESET, YELLOW } from '../core/output.js';
15
+ import { createDefaultRegistry, } from './watch/index.js';
16
+ import { createPlatformAdapter } from '@bradygaster/squad-sdk/platform';
17
+ import { parseRoster } from '@bradygaster/squad-sdk/ralph/triage';
18
+ // ── Frontmatter Parser ───────────────────────────────────────────
19
+ /**
20
+ * Parse a loop.md string into validated frontmatter + prompt body.
21
+ *
22
+ * Frontmatter is the YAML block between the first two `---` delimiters.
23
+ * Only simple `key: value` pairs are supported — no yaml dependency needed.
24
+ */
25
+ export function parseLoopFile(content) {
26
+ const lines = content.split('\n');
27
+ let frontmatterLines = [];
28
+ let bodyStart = 0;
29
+ if (lines[0]?.trim() === '---') {
30
+ for (let i = 1; i < lines.length; i++) {
31
+ if (lines[i]?.trim() === '---') {
32
+ bodyStart = i + 1;
33
+ break;
34
+ }
35
+ frontmatterLines.push(lines[i] ?? '');
36
+ }
37
+ }
38
+ // Parse simple key: value pairs from frontmatter
39
+ const raw = {};
40
+ for (const line of frontmatterLines) {
41
+ const match = line.match(/^(\w[\w-]*):\s*(.*)$/);
42
+ if (match) {
43
+ raw[match[1]] = match[2].trim();
44
+ }
45
+ }
46
+ // Extract and validate configured field
47
+ const configuredRaw = raw['configured'];
48
+ const configured = configuredRaw === 'true';
49
+ // Parse numeric fields with defaults
50
+ const intervalRaw = raw['interval'];
51
+ const interval = intervalRaw ? parseInt(intervalRaw, 10) : 10;
52
+ const timeoutRaw = raw['timeout'];
53
+ const timeout = timeoutRaw ? parseInt(timeoutRaw, 10) : 30;
54
+ // Strip surrounding quotes from description
55
+ let description = raw['description'];
56
+ if (description) {
57
+ description = description.replace(/^["']|["']$/g, '');
58
+ }
59
+ const frontmatter = {
60
+ configured,
61
+ interval: isNaN(interval) ? 10 : interval,
62
+ timeout: isNaN(timeout) ? 30 : timeout,
63
+ description,
64
+ };
65
+ const prompt = lines.slice(bodyStart).join('\n').trim();
66
+ return { frontmatter, prompt };
67
+ }
68
+ // ── Boilerplate Generator ────────────────────────────────────────
69
+ /** Returns the content of a starter loop.md for --init. */
70
+ export function generateLoopFile() {
71
+ const here = path.dirname(fileURLToPath(import.meta.url));
72
+ // Walk up from src/cli/commands (or dist/cli/commands) to package root
73
+ const templatePath = path.resolve(here, '..', '..', '..', 'templates', 'loop.md');
74
+ return readFileSync(templatePath, 'utf-8');
75
+ }
76
+ // ── Agent Command Builder ────────────────────────────────────────
77
+ function buildLoopAgentCommand(prompt, options) {
78
+ if (options.agentCmd) {
79
+ const parts = options.agentCmd.trim().split(/\s+/);
80
+ return { cmd: parts[0], args: [...parts.slice(1), '--message', prompt] };
81
+ }
82
+ const args = ['copilot', '--message', prompt];
83
+ if (options.copilotFlags) {
84
+ args.push(...options.copilotFlags.trim().split(/\s+/));
85
+ }
86
+ return { cmd: 'gh', args };
87
+ }
88
+ // ── Capability Phase Runner ──────────────────────────────────────
89
+ async function runPhase(phase, enabled, context, config) {
90
+ const phaseCapabilities = enabled.filter(c => c.phase === phase);
91
+ const ts = new Date().toLocaleTimeString();
92
+ for (const cap of phaseCapabilities) {
93
+ try {
94
+ const capConfig = config.capabilities[cap.name];
95
+ const capContext = {
96
+ ...context,
97
+ config: typeof capConfig === 'object' && capConfig !== null
98
+ ? capConfig
99
+ : { enabled: !!capConfig },
100
+ };
101
+ const result = await cap.execute(capContext);
102
+ if (!result.success) {
103
+ console.log(`${YELLOW}⚠${RESET} [${ts}] ${cap.name}: ${result.summary}`);
104
+ }
105
+ }
106
+ catch (e) {
107
+ console.log(`${YELLOW}⚠${RESET} [${ts}] ${cap.name} crashed: ${e.message}`);
108
+ }
109
+ }
110
+ }
111
+ // ── Preflight Capabilities ───────────────────────────────────────
112
+ async function preflightLoopCapabilities(registry, config, context) {
113
+ const enabled = [];
114
+ const skipped = [];
115
+ // Loop only activates pre-scan and housekeeping phases
116
+ const allowedPhases = ['pre-scan', 'housekeeping'];
117
+ for (const cap of registry.all()) {
118
+ if (!allowedPhases.includes(cap.phase))
119
+ continue;
120
+ const capConfig = config.capabilities[cap.name];
121
+ if (!capConfig)
122
+ continue;
123
+ const capContext = {
124
+ ...context,
125
+ config: typeof capConfig === 'object' && capConfig !== null
126
+ ? capConfig
127
+ : {},
128
+ };
129
+ try {
130
+ const result = await cap.preflight(capContext);
131
+ if (result.ok) {
132
+ enabled.push(cap);
133
+ }
134
+ else {
135
+ skipped.push({ name: cap.name, reason: result.reason ?? 'preflight failed' });
136
+ }
137
+ }
138
+ catch (e) {
139
+ skipped.push({ name: cap.name, reason: e.message });
140
+ }
141
+ }
142
+ if (enabled.length > 0) {
143
+ console.log(`${GREEN}✅${RESET} Capabilities: ${enabled.map(c => c.name).join(', ')}`);
144
+ }
145
+ for (const s of skipped) {
146
+ console.log(`${YELLOW}⚠️${RESET} ${s.name} skipped: ${s.reason}`);
147
+ }
148
+ return enabled;
149
+ }
150
+ // ── Noop Platform Adapter ────────────────────────────────────────
151
+ /** Safe no-op adapter for when no git remote / platform config is available. */
152
+ function createNoopAdapter() {
153
+ const msg = 'No platform adapter available — loop running without git remote';
154
+ return {
155
+ type: 'github',
156
+ listWorkItems: async () => [],
157
+ getWorkItem: async () => { throw new Error(msg); },
158
+ createWorkItem: async () => { throw new Error(msg); },
159
+ addTag: async () => { },
160
+ removeTag: async () => { },
161
+ addComment: async () => { },
162
+ listPullRequests: async () => [],
163
+ createPullRequest: async () => { throw new Error(msg); },
164
+ mergePullRequest: async () => { },
165
+ createBranch: async () => { },
166
+ };
167
+ }
168
+ // ── gh Copilot Preflight ─────────────────────────────────────────
169
+ /** Verify `gh` CLI with copilot extension is available. */
170
+ async function checkGhCopilot() {
171
+ return new Promise((resolve, reject) => {
172
+ execFile('gh', ['copilot', '--version'], (err) => {
173
+ if (err)
174
+ reject(err);
175
+ else
176
+ resolve();
177
+ });
178
+ });
179
+ }
180
+ // ── Main Entry Point ─────────────────────────────────────────────
181
+ /**
182
+ * Run the loop command.
183
+ *
184
+ * @param dest - Working directory (typically process.cwd()).
185
+ * @param options - CLI-parsed config overrides.
186
+ */
187
+ export async function runLoop(dest, options) {
188
+ const workTreeRoot = path.resolve(dest);
189
+ // Detect squad directory (must exist)
190
+ const squadDirInfo = detectSquadDir(workTreeRoot);
191
+ const teamMd = path.join(squadDirInfo.path, 'team.md');
192
+ const teamRoot = path.dirname(squadDirInfo.path);
193
+ if (!existsSync(teamMd)) {
194
+ fatal('No squad found — run `squad init` first.');
195
+ }
196
+ // Locate loop.md relative to the same work tree used for execution
197
+ const loopFilePath = options.filePath
198
+ ? path.resolve(workTreeRoot, options.filePath)
199
+ : path.join(workTreeRoot, 'loop.md');
200
+ if (!existsSync(loopFilePath)) {
201
+ console.log(`\n💤 No loop.md found. Create one with: ${BOLD}squad loop --init${RESET}`);
202
+ return;
203
+ }
204
+ // Parse loop file
205
+ const content = readFileSync(loopFilePath, 'utf-8');
206
+ const { frontmatter, prompt } = parseLoopFile(content);
207
+ if (!frontmatter.configured) {
208
+ console.log(`\n⚠️ loop.md found but not configured. Set ${BOLD}configured: true${RESET} in the frontmatter to enable the loop.`);
209
+ return;
210
+ }
211
+ if (!prompt) {
212
+ fatal('loop.md has no prompt body. Add instructions after the frontmatter `---` block.');
213
+ }
214
+ // CLI overrides take precedence over frontmatter
215
+ const interval = options.interval ?? frontmatter.interval;
216
+ const timeoutMinutes = options.timeout ?? frontmatter.timeout;
217
+ const description = frontmatter.description ?? 'Squad Loop';
218
+ if (isNaN(interval) || interval < 1) {
219
+ fatal('interval must be a positive number of minutes');
220
+ }
221
+ if (isNaN(timeoutMinutes) || timeoutMinutes < 1) {
222
+ fatal('timeout must be a positive number of minutes');
223
+ }
224
+ // Preflight: verify gh copilot is available (skip if user overrides the agent command)
225
+ if (!options.agentCmd) {
226
+ try {
227
+ await checkGhCopilot();
228
+ }
229
+ catch {
230
+ fatal('gh CLI with copilot extension required. Install from https://cli.github.com/ and run `gh extension install github/gh-copilot`');
231
+ }
232
+ }
233
+ // Build WatchConfig for capability system
234
+ const watchConfig = {
235
+ interval,
236
+ execute: false,
237
+ maxConcurrent: 1,
238
+ timeout: timeoutMinutes,
239
+ copilotFlags: options.copilotFlags,
240
+ agentCmd: options.agentCmd,
241
+ capabilities: options.capabilities,
242
+ };
243
+ // Create platform adapter for capability context (best-effort — loop doesn't require it)
244
+ let adapter;
245
+ try {
246
+ adapter = createPlatformAdapter(teamRoot);
247
+ }
248
+ catch {
249
+ // If no platform config exists, use a safe no-op adapter so capabilities don't crash
250
+ adapter = createNoopAdapter();
251
+ }
252
+ // Parse roster for context
253
+ const teamContent = readFileSync(teamMd, 'utf-8');
254
+ const roster = parseRoster(teamContent);
255
+ const baseContext = {
256
+ teamRoot,
257
+ adapter,
258
+ round: 0,
259
+ roster: roster.map(r => ({ name: r.name, label: r.label, expertise: [] })),
260
+ config: {},
261
+ agentCmd: options.agentCmd,
262
+ copilotFlags: options.copilotFlags,
263
+ };
264
+ // Preflight capabilities (pre-scan + housekeeping only)
265
+ const registry = createDefaultRegistry();
266
+ const enabledCapabilities = await preflightLoopCapabilities(registry, watchConfig, baseContext);
267
+ // Startup banner
268
+ console.log(`\n${BOLD}🔄 Squad Loop${RESET} — ${description}`);
269
+ console.log(`${DIM}Running every ${interval} minute(s). Ctrl+C to stop.${RESET}`);
270
+ if (options.copilotFlags) {
271
+ console.log(`${DIM}Copilot flags: ${options.copilotFlags}${RESET}`);
272
+ }
273
+ console.log();
274
+ let round = 0;
275
+ let roundInProgress = false;
276
+ let currentChild = null;
277
+ async function executeRound() {
278
+ round++;
279
+ const ts = new Date().toLocaleTimeString();
280
+ const roundContext = { ...baseContext, round };
281
+ // Phase 1: pre-scan (self-pull)
282
+ await runPhase('pre-scan', enabledCapabilities, roundContext, watchConfig);
283
+ // Core: run the loop prompt
284
+ const timeoutMs = timeoutMinutes * 60_000;
285
+ const { cmd, args } = buildLoopAgentCommand(prompt, {
286
+ agentCmd: options.agentCmd,
287
+ copilotFlags: options.copilotFlags,
288
+ });
289
+ console.log(`${GREEN}▶${RESET} [${ts}] Round ${round} — running loop prompt`);
290
+ await new Promise((resolve) => {
291
+ currentChild = execFile(cmd, args, { cwd: teamRoot, timeout: timeoutMs, maxBuffer: 50 * 1024 * 1024 }, (err) => {
292
+ currentChild = null;
293
+ if (err) {
294
+ const execErr = err;
295
+ const msg = execErr.killed
296
+ ? `Timed out after ${timeoutMinutes}m`
297
+ : execErr.message;
298
+ console.error(`${RED}✗${RESET} [${new Date().toLocaleTimeString()}] Round ${round} failed: ${msg}`);
299
+ }
300
+ else {
301
+ console.log(`${GREEN}✓${RESET} [${new Date().toLocaleTimeString()}] Round ${round} complete`);
302
+ }
303
+ resolve();
304
+ });
305
+ currentChild.stdout?.on('data', (chunk) => {
306
+ process.stdout.write(chunk);
307
+ });
308
+ currentChild.stderr?.on('data', (chunk) => {
309
+ process.stderr.write(chunk);
310
+ });
311
+ });
312
+ // Phase 2: housekeeping (monitor-email, monitor-teams, retro, decision-hygiene)
313
+ await runPhase('housekeeping', enabledCapabilities, roundContext, watchConfig);
314
+ }
315
+ // Run immediately, then on interval
316
+ await executeRound();
317
+ return new Promise((resolve) => {
318
+ const intervalId = setInterval(async () => {
319
+ if (roundInProgress)
320
+ return;
321
+ roundInProgress = true;
322
+ try {
323
+ await executeRound();
324
+ }
325
+ catch (e) {
326
+ console.error(`${RED}✗${RESET} Round error: ${e.message}`);
327
+ }
328
+ finally {
329
+ roundInProgress = false;
330
+ }
331
+ }, interval * 60 * 1000);
332
+ // Graceful shutdown
333
+ let isShuttingDown = false;
334
+ const shutdown = () => {
335
+ if (isShuttingDown)
336
+ return;
337
+ isShuttingDown = true;
338
+ if (currentChild) {
339
+ currentChild.kill();
340
+ currentChild = null;
341
+ }
342
+ clearInterval(intervalId);
343
+ process.off('SIGINT', shutdown);
344
+ process.off('SIGTERM', shutdown);
345
+ console.log(`\n${DIM}🔄 Squad Loop — stopped${RESET}`);
346
+ resolve();
347
+ };
348
+ process.on('SIGINT', shutdown);
349
+ process.on('SIGTERM', shutdown);
350
+ });
351
+ }
352
+ //# sourceMappingURL=loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/cli/commands/loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Budget check utility — enforce configurable per-round limits.
3
+ *
4
+ * Ported from ralph-watch.ps1 rate-pool / budget tracking logic.
5
+ *
6
+ * Config (via squad.config.ts → watch.capabilities or CLI flags):
7
+ * maxIssuesPerRound – max issues to execute in a single round (default: 5)
8
+ * maxCostPerRound – cost cap (abstract units) per round (default: Infinity)
9
+ *
10
+ * This is a utility module — not a WatchCapability.
11
+ * Called by the execute capability before spawning agent sessions.
12
+ */
13
+ export interface BudgetConfig {
14
+ maxIssuesPerRound?: number;
15
+ maxCostPerRound?: number;
16
+ }
17
+ export interface BudgetResult {
18
+ allowed: number;
19
+ reason: string;
20
+ }
21
+ /**
22
+ * Determine how many issues can be executed this round given budget constraints.
23
+ *
24
+ * @param requested Number of issues the execute phase wants to process.
25
+ * @param config Budget limits from config or CLI.
26
+ * @returns How many are allowed + explanation.
27
+ */
28
+ export declare function checkBudget(requested: number, config?: BudgetConfig): BudgetResult;
29
+ //# sourceMappingURL=budget-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-check.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/budget-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,YAAY;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAmBlF"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Budget check utility — enforce configurable per-round limits.
3
+ *
4
+ * Ported from ralph-watch.ps1 rate-pool / budget tracking logic.
5
+ *
6
+ * Config (via squad.config.ts → watch.capabilities or CLI flags):
7
+ * maxIssuesPerRound – max issues to execute in a single round (default: 5)
8
+ * maxCostPerRound – cost cap (abstract units) per round (default: Infinity)
9
+ *
10
+ * This is a utility module — not a WatchCapability.
11
+ * Called by the execute capability before spawning agent sessions.
12
+ */
13
+ const DEFAULT_MAX_ISSUES = 5;
14
+ /**
15
+ * Determine how many issues can be executed this round given budget constraints.
16
+ *
17
+ * @param requested Number of issues the execute phase wants to process.
18
+ * @param config Budget limits from config or CLI.
19
+ * @returns How many are allowed + explanation.
20
+ */
21
+ export function checkBudget(requested, config) {
22
+ const maxIssues = config?.maxIssuesPerRound ?? DEFAULT_MAX_ISSUES;
23
+ const maxCost = config?.maxCostPerRound ?? Infinity;
24
+ // Simple issue-count gate
25
+ if (requested <= maxIssues && maxCost === Infinity) {
26
+ return { allowed: requested, reason: `within budget (${requested}/${maxIssues})` };
27
+ }
28
+ const allowed = Math.min(requested, maxIssues);
29
+ const reasons = [];
30
+ if (requested > maxIssues) {
31
+ reasons.push(`capped to ${maxIssues} issues/round`);
32
+ }
33
+ if (maxCost !== Infinity) {
34
+ reasons.push(`cost cap: ${maxCost}`);
35
+ }
36
+ return { allowed, reason: reasons.join('; ') };
37
+ }
38
+ //# sourceMappingURL=budget-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-check.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/budget-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAqB;IAClE,MAAM,SAAS,GAAG,MAAM,EAAE,iBAAiB,IAAI,kBAAkB,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,EAAE,eAAe,IAAI,QAAQ,CAAC;IAEpD,0BAA0B;IAC1B,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,SAAS,IAAI,SAAS,GAAG,EAAE,CAAC;IACrF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,aAAa,SAAS,eAAe,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACjD,CAAC"}