@jonit-dev/night-watch-cli 1.8.12-beta.0 → 1.8.12-beta.10

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 (154) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.js +3281 -651
  3. package/dist/cli.js.map +1 -0
  4. package/dist/commands/agent.d.ts +12 -0
  5. package/dist/commands/agent.d.ts.map +1 -0
  6. package/dist/commands/agent.js +307 -0
  7. package/dist/commands/agent.js.map +1 -0
  8. package/dist/commands/analytics.d.ts +14 -0
  9. package/dist/commands/analytics.d.ts.map +1 -1
  10. package/dist/commands/analytics.js +129 -0
  11. package/dist/commands/analytics.js.map +1 -0
  12. package/dist/commands/audit.d.ts +19 -0
  13. package/dist/commands/audit.d.ts.map +1 -1
  14. package/dist/commands/audit.js +189 -0
  15. package/dist/commands/audit.js.map +1 -0
  16. package/dist/commands/board.d.ts +9 -0
  17. package/dist/commands/board.js +702 -0
  18. package/dist/commands/board.js.map +1 -0
  19. package/dist/commands/cancel.d.ts +46 -0
  20. package/dist/commands/cancel.js +239 -0
  21. package/dist/commands/cancel.js.map +1 -0
  22. package/dist/commands/cron.d.ts +8 -0
  23. package/dist/commands/cron.js +134 -0
  24. package/dist/commands/cron.js.map +1 -0
  25. package/dist/commands/dashboard/tab-actions.d.ts +10 -0
  26. package/dist/commands/dashboard/tab-actions.js +247 -0
  27. package/dist/commands/dashboard/tab-actions.js.map +1 -0
  28. package/dist/commands/dashboard/tab-config.d.ts +21 -0
  29. package/dist/commands/dashboard/tab-config.js +874 -0
  30. package/dist/commands/dashboard/tab-config.js.map +1 -0
  31. package/dist/commands/dashboard/tab-logs.d.ts +10 -0
  32. package/dist/commands/dashboard/tab-logs.js +202 -0
  33. package/dist/commands/dashboard/tab-logs.js.map +1 -0
  34. package/dist/commands/dashboard/tab-schedules.d.ts +21 -0
  35. package/dist/commands/dashboard/tab-schedules.js +320 -0
  36. package/dist/commands/dashboard/tab-schedules.js.map +1 -0
  37. package/dist/commands/dashboard/tab-status.d.ts +32 -0
  38. package/dist/commands/dashboard/tab-status.js +424 -0
  39. package/dist/commands/dashboard/tab-status.js.map +1 -0
  40. package/dist/commands/dashboard/types.d.ts +42 -0
  41. package/dist/commands/dashboard/types.js +5 -0
  42. package/dist/commands/dashboard/types.js.map +1 -0
  43. package/dist/commands/dashboard.d.ts +11 -0
  44. package/dist/commands/dashboard.js +242 -0
  45. package/dist/commands/dashboard.js.map +1 -0
  46. package/dist/commands/doctor.d.ts +16 -0
  47. package/dist/commands/doctor.js +195 -0
  48. package/dist/commands/doctor.js.map +1 -0
  49. package/dist/commands/history.d.ts +7 -0
  50. package/dist/commands/history.js +49 -0
  51. package/dist/commands/history.js.map +1 -0
  52. package/dist/commands/init.d.ts +45 -0
  53. package/dist/commands/init.d.ts.map +1 -1
  54. package/dist/commands/init.js +13 -0
  55. package/dist/commands/init.js.map +1 -1
  56. package/dist/commands/install.d.ts +65 -0
  57. package/dist/commands/install.js +405 -0
  58. package/dist/commands/install.js.map +1 -0
  59. package/dist/commands/logs.d.ts +15 -0
  60. package/dist/commands/logs.js +155 -0
  61. package/dist/commands/logs.js.map +1 -0
  62. package/dist/commands/merge.d.ts +26 -0
  63. package/dist/commands/merge.d.ts.map +1 -1
  64. package/dist/commands/merge.js +186 -0
  65. package/dist/commands/merge.js.map +1 -0
  66. package/dist/commands/notify.d.ts +7 -0
  67. package/dist/commands/notify.js +43 -0
  68. package/dist/commands/notify.js.map +1 -0
  69. package/dist/commands/plan.d.ts +19 -0
  70. package/dist/commands/plan.d.ts.map +1 -1
  71. package/dist/commands/plan.js +133 -0
  72. package/dist/commands/plan.js.map +1 -0
  73. package/dist/commands/prd-state.d.ts +12 -0
  74. package/dist/commands/prd-state.js +47 -0
  75. package/dist/commands/prd-state.js.map +1 -0
  76. package/dist/commands/prd.d.ts +18 -0
  77. package/dist/commands/prd.js +363 -0
  78. package/dist/commands/prd.js.map +1 -0
  79. package/dist/commands/prds.d.ts +13 -0
  80. package/dist/commands/prds.js +194 -0
  81. package/dist/commands/prds.js.map +1 -0
  82. package/dist/commands/prs.d.ts +14 -0
  83. package/dist/commands/prs.js +104 -0
  84. package/dist/commands/prs.js.map +1 -0
  85. package/dist/commands/qa.d.ts +34 -0
  86. package/dist/commands/qa.d.ts.map +1 -1
  87. package/dist/commands/qa.js +238 -0
  88. package/dist/commands/qa.js.map +1 -0
  89. package/dist/commands/queue.d.ts +8 -0
  90. package/dist/commands/queue.d.ts.map +1 -1
  91. package/dist/commands/queue.js +398 -0
  92. package/dist/commands/queue.js.map +1 -0
  93. package/dist/commands/resolve.d.ts +26 -0
  94. package/dist/commands/resolve.d.ts.map +1 -1
  95. package/dist/commands/resolve.js +212 -0
  96. package/dist/commands/resolve.js.map +1 -0
  97. package/dist/commands/retry.d.ts +9 -0
  98. package/dist/commands/retry.js +71 -0
  99. package/dist/commands/retry.js.map +1 -0
  100. package/dist/commands/review.d.ts +79 -0
  101. package/dist/commands/review.d.ts.map +1 -1
  102. package/dist/commands/review.js +47 -75
  103. package/dist/commands/review.js.map +1 -1
  104. package/dist/commands/run.d.ts +88 -0
  105. package/dist/commands/run.d.ts.map +1 -1
  106. package/dist/commands/run.js +85 -1
  107. package/dist/commands/run.js.map +1 -1
  108. package/dist/commands/serve.d.ts +19 -0
  109. package/dist/commands/serve.js +142 -0
  110. package/dist/commands/serve.js.map +1 -0
  111. package/dist/commands/shared/env-builder.d.ts +49 -0
  112. package/dist/commands/shared/env-builder.d.ts.map +1 -1
  113. package/dist/commands/shared/env-builder.js +152 -0
  114. package/dist/commands/shared/env-builder.js.map +1 -0
  115. package/dist/commands/shared/feedback.d.ts +24 -0
  116. package/dist/commands/shared/feedback.d.ts.map +1 -0
  117. package/dist/commands/shared/feedback.js +38 -0
  118. package/dist/commands/shared/feedback.js.map +1 -0
  119. package/dist/commands/slice.d.ts +35 -0
  120. package/dist/commands/slice.d.ts.map +1 -1
  121. package/dist/commands/slice.js +363 -0
  122. package/dist/commands/slice.js.map +1 -0
  123. package/dist/commands/state.d.ts +8 -0
  124. package/dist/commands/state.js +54 -0
  125. package/dist/commands/state.js.map +1 -0
  126. package/dist/commands/status.d.ts +14 -0
  127. package/dist/commands/status.js +297 -0
  128. package/dist/commands/status.js.map +1 -0
  129. package/dist/commands/summary.d.ts +14 -0
  130. package/dist/commands/summary.js +193 -0
  131. package/dist/commands/summary.js.map +1 -0
  132. package/dist/commands/uninstall.d.ts +25 -0
  133. package/dist/commands/uninstall.js +134 -0
  134. package/dist/commands/uninstall.js.map +1 -0
  135. package/dist/commands/update.d.ts +22 -0
  136. package/dist/commands/update.js +90 -0
  137. package/dist/commands/update.js.map +1 -0
  138. package/dist/scripts/night-watch-audit-cron.sh +1 -0
  139. package/dist/scripts/night-watch-cron.sh +186 -23
  140. package/dist/scripts/night-watch-helpers.sh +65 -2
  141. package/dist/scripts/night-watch-merger-cron.sh +137 -36
  142. package/dist/scripts/night-watch-plan-cron.sh +2 -0
  143. package/dist/scripts/night-watch-pr-resolver-cron.sh +6 -0
  144. package/dist/scripts/night-watch-pr-reviewer-cron.sh +22 -5
  145. package/dist/scripts/night-watch-qa-cron.sh +8 -1
  146. package/dist/scripts/night-watch-slicer-cron.sh +3 -0
  147. package/dist/templates/night-watch.config.json +21 -20
  148. package/dist/templates/slicer.md +3 -0
  149. package/dist/web/assets/index-C-xpWpS8.css +1 -0
  150. package/dist/web/assets/index-CEYe-290.js +412 -0
  151. package/dist/web/assets/index-DpvzoXEv.js +442 -0
  152. package/dist/web/assets/index-DyME41HV.css +1 -0
  153. package/dist/web/index.html +2 -2
  154. package/package.json +3 -1
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Audit command - runs the AI provider to scan the codebase for code quality issues
3
+ */
4
+ import { CLAUDE_MODEL_IDS, PROVIDER_COMMANDS, createSpinner, createTable, dim, executeScriptWithOutput, getScriptPath, header, info, loadConfig, parseScriptResult, resolveJobProvider, syncAuditFindingsToBoard, } from '@night-watch/core';
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import { buildBaseEnvVars, getTelegramStatusWebhooks, maybeApplyCronSchedulingDelay, } from './shared/env-builder.js';
8
+ import { recordJobOutcome } from './shared/feedback.js';
9
+ /**
10
+ * Build environment variables map from config and CLI options for audit
11
+ */
12
+ export function buildEnvVars(config, options) {
13
+ // Start with base env vars shared by all job types
14
+ const env = buildBaseEnvVars(config, 'audit', options.dryRun);
15
+ // Audit-specific settings
16
+ env.NW_AUDIT_MAX_RUNTIME = String(config.audit.maxRuntime);
17
+ env.NW_CLAUDE_MODEL_ID =
18
+ CLAUDE_MODEL_IDS[config.primaryFallbackModel ?? config.claudeModel ?? 'sonnet'];
19
+ // Telegram status messages from bash scripts (start/progress/final status)
20
+ const telegramWebhooks = getTelegramStatusWebhooks(config);
21
+ if (telegramWebhooks.length > 0) {
22
+ env.NW_TELEGRAM_STATUS_WEBHOOKS = JSON.stringify(telegramWebhooks);
23
+ env.NW_TELEGRAM_BOT_TOKEN = telegramWebhooks[0].botToken;
24
+ env.NW_TELEGRAM_CHAT_ID = telegramWebhooks[0].chatId;
25
+ }
26
+ return env;
27
+ }
28
+ /**
29
+ * Register the audit command with the program
30
+ */
31
+ export function auditCommand(program) {
32
+ program
33
+ .command('audit')
34
+ .description('Run AI provider code audit now')
35
+ .option('--dry-run', 'Show what would be executed without running')
36
+ .option('--timeout <seconds>', 'Override max runtime in seconds')
37
+ .option('--provider <string>', 'AI provider to use (claude or codex)')
38
+ .action(async (options) => {
39
+ const projectDir = process.cwd();
40
+ let config = loadConfig(projectDir);
41
+ if (options.timeout) {
42
+ const timeout = parseInt(options.timeout, 10);
43
+ if (!isNaN(timeout)) {
44
+ config = { ...config, audit: { ...config.audit, maxRuntime: timeout } };
45
+ }
46
+ }
47
+ if (options.provider) {
48
+ // Use _cliProviderOverride to ensure CLI flag takes precedence over jobProviders
49
+ config = {
50
+ ...config,
51
+ _cliProviderOverride: options.provider,
52
+ };
53
+ }
54
+ if (!config.audit.enabled && !options.dryRun) {
55
+ info('Audit is disabled in config; skipping run.');
56
+ process.exit(0);
57
+ }
58
+ const envVars = buildEnvVars(config, options);
59
+ const scriptPath = getScriptPath('night-watch-audit-cron.sh');
60
+ if (options.dryRun) {
61
+ header('Dry Run: Code Auditor');
62
+ // Resolve audit-specific provider
63
+ const auditProvider = resolveJobProvider(config, 'audit');
64
+ header('Configuration');
65
+ const configTable = createTable({ head: ['Setting', 'Value'] });
66
+ configTable.push(['Provider', auditProvider]);
67
+ configTable.push(['Provider CLI', PROVIDER_COMMANDS[auditProvider]]);
68
+ configTable.push(['Max Runtime', `${config.audit.maxRuntime}s`]);
69
+ configTable.push(['Target Column', config.audit.targetColumn]);
70
+ configTable.push(['Report File', path.join(projectDir, 'logs', 'audit-report.md')]);
71
+ console.log(configTable.toString());
72
+ header('Provider Invocation');
73
+ const providerCmd = PROVIDER_COMMANDS[auditProvider];
74
+ if (auditProvider === 'claude') {
75
+ dim(` ${providerCmd} -p "<bundled night-watch-audit.md>" --dangerously-skip-permissions`);
76
+ }
77
+ else {
78
+ dim(` ${providerCmd} exec --yolo "<bundled night-watch-audit.md>"`);
79
+ }
80
+ header('Command');
81
+ dim(` bash ${scriptPath} ${projectDir}`);
82
+ console.log();
83
+ process.exit(0);
84
+ }
85
+ const spinner = createSpinner('Running code audit...');
86
+ spinner.start();
87
+ const startedAt = Date.now();
88
+ try {
89
+ await maybeApplyCronSchedulingDelay(config, 'audit', projectDir);
90
+ const { exitCode, stdout, stderr } = await executeScriptWithOutput(scriptPath, [projectDir], envVars);
91
+ const finishedAt = Date.now();
92
+ const scriptResult = parseScriptResult(`${stdout}\n${stderr}`);
93
+ if (!options.dryRun) {
94
+ try {
95
+ recordJobOutcome({
96
+ config,
97
+ exitCode,
98
+ finishedAt,
99
+ jobType: 'audit',
100
+ metadata: {
101
+ providerCommand: envVars.NW_PROVIDER_CMD,
102
+ providerLabel: envVars.NW_PROVIDER_LABEL,
103
+ },
104
+ projectDir,
105
+ providerKey: envVars.NW_PROVIDER_KEY ?? resolveJobProvider(config, 'audit'),
106
+ scriptResult,
107
+ startedAt,
108
+ stderr,
109
+ stdout,
110
+ });
111
+ }
112
+ catch {
113
+ // Outcome persistence must not change command exit behavior.
114
+ }
115
+ }
116
+ if (exitCode === 0) {
117
+ if (scriptResult?.status === 'queued') {
118
+ spinner.succeed('Code audit queued — another job is currently running');
119
+ }
120
+ else if (scriptResult?.status === 'skip_clean') {
121
+ spinner.succeed('Code audit complete — no actionable issues found');
122
+ }
123
+ else if (scriptResult?.status?.startsWith('skip_')) {
124
+ spinner.succeed('Code audit skipped');
125
+ }
126
+ else {
127
+ const reportPath = path.join(projectDir, 'logs', 'audit-report.md');
128
+ if (!fs.existsSync(reportPath)) {
129
+ spinner.fail('Code audit finished without a report file');
130
+ process.exit(1);
131
+ }
132
+ const syncResult = await syncAuditFindingsToBoard(config, projectDir);
133
+ const message = `Code audit complete — report written to ${reportPath}; ${syncResult.summary}`;
134
+ if (syncResult.status === 'failed' || syncResult.status === 'partial') {
135
+ spinner.warn(message);
136
+ }
137
+ else {
138
+ spinner.succeed(message);
139
+ }
140
+ }
141
+ }
142
+ else {
143
+ const statusSuffix = scriptResult?.status ? ` (${scriptResult.status})` : '';
144
+ const providerExit = scriptResult?.data?.provider_exit;
145
+ const exitDetail = providerExit && providerExit !== String(exitCode)
146
+ ? `, provider exit ${providerExit}`
147
+ : '';
148
+ spinner.fail(`Code audit exited with code ${exitCode}${statusSuffix}${exitDetail}`);
149
+ // Print last audit log lines so the parent process captures the actual failure reason
150
+ const logPath = path.join(projectDir, 'logs', 'audit.log');
151
+ if (fs.existsSync(logPath)) {
152
+ const logLines = fs
153
+ .readFileSync(logPath, 'utf-8')
154
+ .split('\n')
155
+ .filter((l) => l.trim())
156
+ .slice(-8);
157
+ if (logLines.length > 0) {
158
+ process.stderr.write(logLines.join('\n') + '\n');
159
+ }
160
+ }
161
+ process.exit(exitCode || 1);
162
+ }
163
+ }
164
+ catch (err) {
165
+ try {
166
+ recordJobOutcome({
167
+ config,
168
+ exitCode: 1,
169
+ finishedAt: Date.now(),
170
+ jobType: 'audit',
171
+ metadata: {
172
+ providerCommand: envVars.NW_PROVIDER_CMD,
173
+ providerLabel: envVars.NW_PROVIDER_LABEL,
174
+ },
175
+ projectDir,
176
+ providerKey: envVars.NW_PROVIDER_KEY ?? resolveJobProvider(config, 'audit'),
177
+ startedAt,
178
+ stderr: err instanceof Error ? err.message : String(err),
179
+ });
180
+ }
181
+ catch {
182
+ // Outcome persistence must not change command exit behavior.
183
+ }
184
+ spinner.fail(`Code audit failed: ${err instanceof Error ? err.message : String(err)}`);
185
+ process.exit(1);
186
+ }
187
+ });
188
+ }
189
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Board command group — manage the PRD tracking board
3
+ */
4
+ import { Command } from 'commander';
5
+ /**
6
+ * Register the board command group with the program.
7
+ */
8
+ export declare function boardCommand(program: Command): void;
9
+ //# sourceMappingURL=board.d.ts.map