@jonit-dev/night-watch-cli 1.1.3 → 1.1.5

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 (53) hide show
  1. package/README.md +48 -426
  2. package/dist/cli.js +6 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/doctor.d.ts +16 -0
  5. package/dist/commands/doctor.d.ts.map +1 -0
  6. package/dist/commands/doctor.js +155 -0
  7. package/dist/commands/doctor.js.map +1 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +15 -9
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/install.d.ts.map +1 -1
  12. package/dist/commands/install.js +10 -2
  13. package/dist/commands/install.js.map +1 -1
  14. package/dist/commands/prd.d.ts +24 -0
  15. package/dist/commands/prd.d.ts.map +1 -0
  16. package/dist/commands/prd.js +283 -0
  17. package/dist/commands/prd.js.map +1 -0
  18. package/dist/commands/review.d.ts.map +1 -1
  19. package/dist/commands/review.js +28 -0
  20. package/dist/commands/review.js.map +1 -1
  21. package/dist/commands/run.d.ts +19 -0
  22. package/dist/commands/run.d.ts.map +1 -1
  23. package/dist/commands/run.js +64 -6
  24. package/dist/commands/run.js.map +1 -1
  25. package/dist/commands/status.d.ts.map +1 -1
  26. package/dist/commands/status.js +27 -6
  27. package/dist/commands/status.js.map +1 -1
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +67 -1
  30. package/dist/config.js.map +1 -1
  31. package/dist/constants.d.ts +5 -1
  32. package/dist/constants.d.ts.map +1 -1
  33. package/dist/constants.js +6 -0
  34. package/dist/constants.js.map +1 -1
  35. package/dist/templates/prd-template.d.ts +11 -0
  36. package/dist/templates/prd-template.d.ts.map +1 -0
  37. package/dist/templates/prd-template.js +166 -0
  38. package/dist/templates/prd-template.js.map +1 -0
  39. package/dist/types.d.ts +18 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/utils/github.d.ts +30 -0
  42. package/dist/utils/github.d.ts.map +1 -0
  43. package/dist/utils/github.js +104 -0
  44. package/dist/utils/github.js.map +1 -0
  45. package/dist/utils/notify.d.ts +63 -0
  46. package/dist/utils/notify.d.ts.map +1 -0
  47. package/dist/utils/notify.js +237 -0
  48. package/dist/utils/notify.js.map +1 -0
  49. package/package.json +4 -4
  50. package/scripts/night-watch-cron.sh +13 -2
  51. package/scripts/night-watch-helpers.sh +51 -0
  52. package/scripts/test-helpers.bats +77 -0
  53. package/templates/prd.md +26 -0
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Doctor command for Night Watch CLI
3
+ * Validates webhook configuration and checks system health
4
+ */
5
+ import * as fs from "fs";
6
+ import * as path from "path";
7
+ import { execSync } from "child_process";
8
+ import { loadConfig } from "../config.js";
9
+ import { success, error as uiError, warn, info, header, step, } from "../utils/ui.js";
10
+ /**
11
+ * Validate a single webhook configuration and return a list of issues.
12
+ * Returns an empty array if the webhook is valid.
13
+ */
14
+ export function validateWebhook(webhook) {
15
+ const issues = [];
16
+ // Validate events
17
+ if (!webhook.events || webhook.events.length === 0) {
18
+ issues.push("No events configured");
19
+ }
20
+ else {
21
+ const validEvents = [
22
+ "run_succeeded",
23
+ "run_failed",
24
+ "run_timeout",
25
+ "review_completed",
26
+ ];
27
+ for (const event of webhook.events) {
28
+ if (!validEvents.includes(event)) {
29
+ issues.push(`Invalid event: ${event}`);
30
+ }
31
+ }
32
+ }
33
+ // Platform-specific validation
34
+ switch (webhook.type) {
35
+ case "slack":
36
+ if (!webhook.url) {
37
+ issues.push("Missing URL");
38
+ }
39
+ else if (!webhook.url.startsWith("https://hooks.slack.com/")) {
40
+ issues.push("URL should start with https://hooks.slack.com/");
41
+ }
42
+ break;
43
+ case "discord":
44
+ if (!webhook.url) {
45
+ issues.push("Missing URL");
46
+ }
47
+ else if (!webhook.url.startsWith("https://discord.com/api/webhooks/")) {
48
+ issues.push("URL should start with https://discord.com/api/webhooks/");
49
+ }
50
+ break;
51
+ case "telegram":
52
+ if (!webhook.botToken) {
53
+ issues.push("Missing botToken");
54
+ }
55
+ if (!webhook.chatId) {
56
+ issues.push("Missing chatId");
57
+ }
58
+ break;
59
+ default:
60
+ issues.push(`Unknown webhook type: ${webhook.type}`);
61
+ }
62
+ return issues;
63
+ }
64
+ /**
65
+ * Register the doctor command on the program
66
+ */
67
+ export function doctorCommand(program) {
68
+ program
69
+ .command("doctor")
70
+ .description("Check Night Watch configuration and system health")
71
+ .action(async () => {
72
+ const projectDir = process.cwd();
73
+ let hasErrors = false;
74
+ header("Night Watch Doctor");
75
+ // Check 1: Git repository
76
+ step(1, 5, "Checking git repository...");
77
+ try {
78
+ execSync("git rev-parse --is-inside-work-tree", {
79
+ cwd: projectDir,
80
+ stdio: "pipe",
81
+ });
82
+ success("Git repository detected");
83
+ }
84
+ catch {
85
+ uiError("Not a git repository");
86
+ hasErrors = true;
87
+ }
88
+ // Check 2: GitHub CLI
89
+ step(2, 5, "Checking GitHub CLI...");
90
+ try {
91
+ execSync("gh auth status", { stdio: "pipe" });
92
+ success("GitHub CLI authenticated");
93
+ }
94
+ catch {
95
+ warn("GitHub CLI not authenticated (run: gh auth login)");
96
+ }
97
+ // Check 3: Provider CLI
98
+ step(3, 5, "Checking provider CLI...");
99
+ const config = loadConfig(projectDir);
100
+ try {
101
+ execSync(`which ${config.provider}`, { stdio: "pipe" });
102
+ success(`Provider CLI found: ${config.provider}`);
103
+ }
104
+ catch {
105
+ uiError(`Provider CLI not found: ${config.provider}`);
106
+ hasErrors = true;
107
+ }
108
+ // Check 4: PRD directory
109
+ step(4, 5, "Checking PRD directory...");
110
+ const prdDir = path.join(projectDir, config.prdDir);
111
+ if (fs.existsSync(prdDir)) {
112
+ const prds = fs
113
+ .readdirSync(prdDir)
114
+ .filter((f) => f.endsWith(".md") && f !== "NIGHT-WATCH-SUMMARY.md");
115
+ success(`PRD directory found (${prds.length} PRDs)`);
116
+ }
117
+ else {
118
+ warn(`PRD directory not found: ${config.prdDir} (run: night-watch init)`);
119
+ }
120
+ // Check 5: Webhook configuration
121
+ step(5, 5, "Checking webhook configuration...");
122
+ if (!config.notifications ||
123
+ config.notifications.webhooks.length === 0) {
124
+ info("No webhooks configured (optional)");
125
+ }
126
+ else {
127
+ let webhookErrors = 0;
128
+ for (const webhook of config.notifications.webhooks) {
129
+ const issues = validateWebhook(webhook);
130
+ if (issues.length === 0) {
131
+ success(`${webhook.type} webhook: OK`);
132
+ }
133
+ else {
134
+ for (const issue of issues) {
135
+ warn(`${webhook.type} webhook: ${issue}`);
136
+ }
137
+ webhookErrors++;
138
+ }
139
+ }
140
+ if (webhookErrors === 0) {
141
+ success(`All ${config.notifications.webhooks.length} webhook(s) valid`);
142
+ }
143
+ }
144
+ // Summary
145
+ console.log();
146
+ if (hasErrors) {
147
+ uiError("Issues found — fix errors above before running Night Watch");
148
+ process.exit(1);
149
+ }
150
+ else {
151
+ success("All checks passed");
152
+ }
153
+ });
154
+ }
155
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiEpD;AAyLD;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqNlD;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiEpD;AAgMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqNlD;AAED,eAAe,WAAW,CAAC"}
@@ -195,25 +195,31 @@ function processTemplate(templateName, targetPath, replacements, force) {
195
195
  return true;
196
196
  }
197
197
  /**
198
- * Add /logs/ to .gitignore if not already there
198
+ * Ensure Night Watch entries are in .gitignore
199
199
  */
200
200
  function addToGitignore(cwd) {
201
201
  const gitignorePath = path.join(cwd, '.gitignore');
202
+ const entries = [
203
+ { pattern: '/logs/', label: '/logs/', check: (c) => c.includes('/logs/') || /^logs\//m.test(c) },
204
+ { pattern: CONFIG_FILE_NAME, label: CONFIG_FILE_NAME, check: (c) => c.includes(CONFIG_FILE_NAME) },
205
+ { pattern: '*.claim', label: '*.claim', check: (c) => c.includes('*.claim') },
206
+ ];
202
207
  if (!fs.existsSync(gitignorePath)) {
203
- fs.writeFileSync(gitignorePath, '# Night Watch logs\n/logs/\n');
204
- console.log(` Created: ${gitignorePath} (with /logs/ entry)`);
208
+ const lines = ['# Night Watch', ...entries.map(e => e.pattern), ''];
209
+ fs.writeFileSync(gitignorePath, lines.join('\n'));
210
+ console.log(` Created: ${gitignorePath} (with Night Watch entries)`);
205
211
  return;
206
212
  }
207
213
  const content = fs.readFileSync(gitignorePath, 'utf-8');
208
- // Check if /logs/ or logs/ already exists
209
- if (content.includes('/logs/') || /^logs\//m.test(content)) {
210
- console.log(` Skipped (exists): /logs/ in .gitignore`);
214
+ const missing = entries.filter(e => !e.check(content));
215
+ if (missing.length === 0) {
216
+ console.log(` Skipped (exists): Night Watch entries in .gitignore`);
211
217
  return;
212
218
  }
213
- // Append /logs/ to .gitignore
214
- const newContent = content.trimEnd() + '\n\n# Night Watch logs\n/logs/\n';
219
+ const additions = missing.map(e => e.pattern).join('\n');
220
+ const newContent = content.trimEnd() + '\n\n# Night Watch\n' + additions + '\n';
215
221
  fs.writeFileSync(gitignorePath, newContent);
216
- console.log(` Updated: ${gitignorePath} (added /logs/ entry)`);
222
+ console.log(` Updated: ${gitignorePath} (added ${missing.map(e => e.label).join(', ')})`);
217
223
  }
218
224
  /**
219
225
  * Create NIGHT-WATCH-SUMMARY.md template if it doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAoED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8FrD"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAoED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuGrD"}
@@ -119,15 +119,23 @@ export function installCommand(program) {
119
119
  // Detect node bin directory for cron PATH
120
120
  const nodeBinDir = getNodeBinDir();
121
121
  const pathPrefix = nodeBinDir ? `export PATH="${nodeBinDir}:$PATH" && ` : "";
122
+ // Build providerEnv export prefix for cron entries
123
+ let providerEnvPrefix = "";
124
+ if (config.providerEnv && Object.keys(config.providerEnv).length > 0) {
125
+ const exports = Object.entries(config.providerEnv)
126
+ .map(([key, value]) => `export ${key}=${shellQuote(value)}`)
127
+ .join(" && ");
128
+ providerEnvPrefix = exports + " && ";
129
+ }
122
130
  // Executor entry
123
- const executorEntry = `${executorSchedule} ${pathPrefix}cd ${shellQuote(projectDir)} && ${shellQuote(nightWatchBin)} run >> ${shellQuote(executorLog)} 2>&1 ${marker}`;
131
+ const executorEntry = `${executorSchedule} ${pathPrefix}${providerEnvPrefix}cd ${shellQuote(projectDir)} && ${shellQuote(nightWatchBin)} run >> ${shellQuote(executorLog)} 2>&1 ${marker}`;
124
132
  entries.push(executorEntry);
125
133
  // Determine if reviewer should be installed
126
134
  // Priority: --no-reviewer flag > config.reviewerEnabled
127
135
  const installReviewer = options.noReviewer === true ? false : config.reviewerEnabled;
128
136
  // Reviewer entry (if enabled)
129
137
  if (installReviewer) {
130
- const reviewerEntry = `${reviewerSchedule} ${pathPrefix}cd ${shellQuote(projectDir)} && ${shellQuote(nightWatchBin)} review >> ${shellQuote(reviewerLog)} 2>&1 ${marker}`;
138
+ const reviewerEntry = `${reviewerSchedule} ${pathPrefix}${providerEnvPrefix}cd ${shellQuote(projectDir)} && ${shellQuote(nightWatchBin)} review >> ${shellQuote(reviewerLog)} 2>&1 ${marker}`;
131
139
  entries.push(reviewerEntry);
132
140
  }
133
141
  // Add all entries
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * PRD command group - manage PRD files
3
+ */
4
+ import { Command } from "commander";
5
+ export interface PrdCreateOptions {
6
+ interactive: boolean;
7
+ template?: string;
8
+ deps?: string;
9
+ phases?: string;
10
+ number: boolean;
11
+ }
12
+ /**
13
+ * Slugify a name into a filename-safe string
14
+ */
15
+ export declare function slugify(name: string): string;
16
+ /**
17
+ * Get the next PRD number based on existing files in the directory
18
+ */
19
+ export declare function getNextPrdNumber(prdDir: string): number;
20
+ /**
21
+ * Register the prd command group with the program
22
+ */
23
+ export declare function prdCommand(program: Command): void;
24
+ //# sourceMappingURL=prd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd.d.ts","sourceRoot":"","sources":["../../src/commands/prd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUvD;AA+CD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgPjD"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * PRD command group - manage PRD files
3
+ */
4
+ import * as fs from "fs";
5
+ import * as path from "path";
6
+ import * as readline from "readline";
7
+ import { loadConfig } from "../config.js";
8
+ import { CLAIM_FILE_EXTENSION } from "../constants.js";
9
+ import { renderPrdTemplate, } from "../templates/prd-template.js";
10
+ import { success, error as uiError, info, dim, header, createTable, } from "../utils/ui.js";
11
+ /**
12
+ * Slugify a name into a filename-safe string
13
+ */
14
+ export function slugify(name) {
15
+ return name
16
+ .toLowerCase()
17
+ .replace(/[^a-z0-9]+/g, "-")
18
+ .replace(/^-|-$/g, "");
19
+ }
20
+ /**
21
+ * Get the next PRD number based on existing files in the directory
22
+ */
23
+ export function getNextPrdNumber(prdDir) {
24
+ if (!fs.existsSync(prdDir))
25
+ return 1;
26
+ const files = fs
27
+ .readdirSync(prdDir)
28
+ .filter((f) => f.endsWith(".md") && f !== "NIGHT-WATCH-SUMMARY.md");
29
+ const numbers = files.map((f) => {
30
+ const match = f.match(/^(\d+)-/);
31
+ return match ? parseInt(match[1], 10) : 0;
32
+ });
33
+ return Math.max(0, ...numbers) + 1;
34
+ }
35
+ /**
36
+ * Prompt the user for a value using readline
37
+ */
38
+ function prompt(rl, question) {
39
+ return new Promise((resolve) => {
40
+ rl.question(question, (answer) => {
41
+ resolve(answer.trim());
42
+ });
43
+ });
44
+ }
45
+ /**
46
+ * Parse dependency references from PRD markdown content
47
+ */
48
+ function parseDependencies(content) {
49
+ const match = content.match(/\*\*Depends on:\*\*\s*(.+)/i) ||
50
+ content.match(/Depends on:\s*(.+)/i);
51
+ if (!match)
52
+ return [];
53
+ return match[1]
54
+ .split(",")
55
+ .map((d) => d.replace(/`/g, "").trim())
56
+ .filter(Boolean);
57
+ }
58
+ /**
59
+ * Check if a claim file is active (not stale)
60
+ */
61
+ function isClaimActive(claimPath, maxRuntime) {
62
+ try {
63
+ if (!fs.existsSync(claimPath)) {
64
+ return { active: false };
65
+ }
66
+ const content = fs.readFileSync(claimPath, "utf-8");
67
+ const claim = JSON.parse(content);
68
+ const age = Math.floor(Date.now() / 1000) - claim.timestamp;
69
+ if (age < maxRuntime) {
70
+ return { active: true, hostname: claim.hostname, pid: claim.pid };
71
+ }
72
+ return { active: false };
73
+ }
74
+ catch {
75
+ return { active: false };
76
+ }
77
+ }
78
+ /**
79
+ * Register the prd command group with the program
80
+ */
81
+ export function prdCommand(program) {
82
+ const prd = program
83
+ .command("prd")
84
+ .description("Manage PRD files");
85
+ prd
86
+ .command("create")
87
+ .description("Generate a new PRD markdown file from template")
88
+ .argument("<name>", "PRD name (used for title and filename)")
89
+ .option("-i, --interactive", "Prompt for complexity, dependencies, and phase count", false)
90
+ .option("-t, --template <path>", "Path to a custom template file")
91
+ .option("--deps <files>", "Comma-separated dependency filenames")
92
+ .option("--phases <count>", "Number of execution phases", "3")
93
+ .option("--no-number", "Skip auto-numbering prefix")
94
+ .action(async (name, options) => {
95
+ const projectDir = process.cwd();
96
+ // Load config to get prdDir
97
+ const config = loadConfig(projectDir);
98
+ const prdDir = path.join(projectDir, config.prdDir);
99
+ // Ensure the PRD directory exists
100
+ if (!fs.existsSync(prdDir)) {
101
+ fs.mkdirSync(prdDir, { recursive: true });
102
+ }
103
+ // Prepare template variables with defaults
104
+ let complexityScore = 5;
105
+ let complexityLevel = "MEDIUM";
106
+ let dependsOn = [];
107
+ let phaseCount = parseInt(options.phases ?? "3", 10);
108
+ if (isNaN(phaseCount) || phaseCount < 1) {
109
+ phaseCount = 3;
110
+ }
111
+ // Parse --deps flag
112
+ if (options.deps) {
113
+ dependsOn = options.deps
114
+ .split(",")
115
+ .map((d) => d.trim())
116
+ .filter((d) => d.length > 0);
117
+ }
118
+ // Interactive mode: prompt for values
119
+ if (options.interactive) {
120
+ const rl = readline.createInterface({
121
+ input: process.stdin,
122
+ output: process.stdout,
123
+ });
124
+ try {
125
+ // Prompt for complexity
126
+ const complexityInput = await prompt(rl, "Complexity score (1-10, default 5): ");
127
+ if (complexityInput) {
128
+ const parsed = parseInt(complexityInput, 10);
129
+ if (!isNaN(parsed) && parsed >= 1 && parsed <= 10) {
130
+ complexityScore = parsed;
131
+ }
132
+ }
133
+ // Prompt for dependencies
134
+ const depsInput = await prompt(rl, "Dependencies (comma-separated filenames, or empty): ");
135
+ if (depsInput) {
136
+ dependsOn = depsInput
137
+ .split(",")
138
+ .map((d) => d.trim())
139
+ .filter((d) => d.length > 0);
140
+ }
141
+ // Prompt for phases
142
+ const phasesInput = await prompt(rl, `Number of phases (default ${phaseCount}): `);
143
+ if (phasesInput) {
144
+ const parsed = parseInt(phasesInput, 10);
145
+ if (!isNaN(parsed) && parsed >= 1) {
146
+ phaseCount = parsed;
147
+ }
148
+ }
149
+ }
150
+ finally {
151
+ rl.close();
152
+ }
153
+ }
154
+ // Determine complexity level from score
155
+ if (complexityScore <= 3) {
156
+ complexityLevel = "LOW";
157
+ }
158
+ else if (complexityScore <= 7) {
159
+ complexityLevel = "MEDIUM";
160
+ }
161
+ else {
162
+ complexityLevel = "HIGH";
163
+ }
164
+ // Build filename
165
+ const slug = slugify(name);
166
+ let filename;
167
+ if (options.number) {
168
+ const nextNum = getNextPrdNumber(prdDir);
169
+ const padded = String(nextNum).padStart(2, "0");
170
+ filename = `${padded}-${slug}.md`;
171
+ }
172
+ else {
173
+ filename = `${slug}.md`;
174
+ }
175
+ const filePath = path.join(prdDir, filename);
176
+ // Refuse to overwrite existing files
177
+ if (fs.existsSync(filePath)) {
178
+ uiError(`File already exists: ${filePath}`);
179
+ dim("Use a different name or remove the existing file.");
180
+ process.exit(1);
181
+ }
182
+ // Load custom template if provided
183
+ let customTemplate;
184
+ if (options.template) {
185
+ const templatePath = path.resolve(options.template);
186
+ if (!fs.existsSync(templatePath)) {
187
+ uiError(`Template file not found: ${templatePath}`);
188
+ process.exit(1);
189
+ }
190
+ customTemplate = fs.readFileSync(templatePath, "utf-8");
191
+ }
192
+ // Render template
193
+ const vars = {
194
+ title: name,
195
+ dependsOn,
196
+ complexityScore,
197
+ complexityLevel,
198
+ complexityBreakdown: [],
199
+ phaseCount,
200
+ };
201
+ const content = renderPrdTemplate(vars, customTemplate);
202
+ // Write the file
203
+ fs.writeFileSync(filePath, content, "utf-8");
204
+ header("PRD Created");
205
+ success(`Created: ${filePath}`);
206
+ info(`Title: ${name}`);
207
+ dim(`Phases: ${phaseCount}`);
208
+ if (dependsOn.length > 0) {
209
+ dim(`Dependencies: ${dependsOn.join(", ")}`);
210
+ }
211
+ });
212
+ prd
213
+ .command("list")
214
+ .description("List all PRDs with status")
215
+ .option("--json", "Output as JSON")
216
+ .action(async (options) => {
217
+ const projectDir = process.cwd();
218
+ const config = loadConfig(projectDir);
219
+ const absolutePrdDir = path.join(projectDir, config.prdDir);
220
+ const doneDir = path.join(absolutePrdDir, "done");
221
+ // Scan pending PRDs
222
+ const pending = [];
223
+ if (fs.existsSync(absolutePrdDir)) {
224
+ const files = fs
225
+ .readdirSync(absolutePrdDir)
226
+ .filter((f) => f.endsWith(".md") && f !== "NIGHT-WATCH-SUMMARY.md");
227
+ for (const file of files) {
228
+ const content = fs.readFileSync(path.join(absolutePrdDir, file), "utf-8");
229
+ const deps = parseDependencies(content);
230
+ const claimPath = path.join(absolutePrdDir, file + CLAIM_FILE_EXTENSION);
231
+ const claimStatus = isClaimActive(claimPath, config.maxRuntime);
232
+ pending.push({ name: file, dependencies: deps, claimed: claimStatus.active, claimInfo: claimStatus.active ? { hostname: claimStatus.hostname, pid: claimStatus.pid } : undefined });
233
+ }
234
+ }
235
+ // Scan done PRDs
236
+ const done = [];
237
+ if (fs.existsSync(doneDir)) {
238
+ const files = fs
239
+ .readdirSync(doneDir)
240
+ .filter((f) => f.endsWith(".md"));
241
+ for (const file of files) {
242
+ const content = fs.readFileSync(path.join(doneDir, file), "utf-8");
243
+ const deps = parseDependencies(content);
244
+ done.push({ name: file, dependencies: deps });
245
+ }
246
+ }
247
+ if (options.json) {
248
+ console.log(JSON.stringify({ pending, done }, null, 2));
249
+ return;
250
+ }
251
+ header("PRD Status");
252
+ if (pending.length === 0 && done.length === 0) {
253
+ dim(" No PRDs found.");
254
+ return;
255
+ }
256
+ const table = createTable({
257
+ head: ["Name", "Status", "Dependencies"],
258
+ });
259
+ for (const prd of pending) {
260
+ const status = prd.claimed ? "claimed" : "pending";
261
+ const statusDisplay = prd.claimed && prd.claimInfo
262
+ ? `claimed (${prd.claimInfo.hostname}:${prd.claimInfo.pid})`
263
+ : status;
264
+ table.push([
265
+ prd.name,
266
+ statusDisplay,
267
+ prd.dependencies.join(", ") || "-",
268
+ ]);
269
+ }
270
+ for (const prd of done) {
271
+ table.push([
272
+ prd.name,
273
+ "done",
274
+ prd.dependencies.join(", ") || "-",
275
+ ]);
276
+ }
277
+ console.log(table.toString());
278
+ const claimedCount = pending.filter(p => p.claimed).length;
279
+ const pendingCount = pending.length - claimedCount;
280
+ info(`${pendingCount} pending, ${claimedCount} claimed, ${done.length} done`);
281
+ });
282
+ }
283
+ //# sourceMappingURL=prd.js.map