@electriccitizen/bolt 0.2.2 → 0.3.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.
package/README.md CHANGED
@@ -310,6 +310,48 @@ Other developers on the same project just run `composer install` — the module
310
310
 
311
311
  Idempotent — safe to re-run.
312
312
 
313
+ ### `bolt status`
314
+
315
+ AI-enhanced site status overview — git state, available updates with risk assessment, recommended update order.
316
+
317
+ ```bash
318
+ bolt status [options]
319
+ --no-ai Disable AI risk assessment
320
+ --output <format> text | json (default: text)
321
+ ```
322
+
323
+ Example output:
324
+
325
+ ```
326
+ Git:
327
+ ✓ Branch: main
328
+ ✓ Working tree clean
329
+
330
+ Site:
331
+ ✓ DDEV running: https://acme.ddev.site
332
+ ✓ Drupal 11.1.5, PHP 8.3
333
+ ✓ 6 content types, 25 paragraph bundles
334
+
335
+ Available updates:
336
+ ✗ 1 security update(s):
337
+ drupal/core: 11.1.3 → 11.1.5 [SECURITY]
338
+ ! 3 other update(s):
339
+ drupal/webform: 6.2-beta8 → 6.2-beta9 (patch)
340
+ drupal/token: 1.14.0 → 1.15.0 (minor/major)
341
+ drupal/paragraphs: 1.17.0 → 1.18.0 (minor/major)
342
+
343
+ AI assessment:
344
+ ! Risk: medium — Security fix plus minor version bumps
345
+ Recommended update order:
346
+ 1. drupal/core — Security fix, apply first
347
+ 2. drupal/paragraphs — Dependency of multiple content types
348
+ 3. drupal/webform — Patch update, low risk
349
+ 4. drupal/token — Leaf dependency, safe last
350
+ Next steps:
351
+ → Run bolt update --security-only first
352
+ → Run bolt test after core update before proceeding
353
+ ```
354
+
313
355
  ### `bolt doctor`
314
356
 
315
357
  Validate the environment.
@@ -318,7 +360,7 @@ Validate the environment.
318
360
  bolt doctor
319
361
  ```
320
362
 
321
- Checks: bolt version, Node.js, Playwright, DDEV, module status, CLI/module version compatibility, `.bolt.yml` validity.
363
+ Checks: bolt version, Node.js, Playwright, DDEV, module status, CLI/module version compatibility, `.bolt.yml` validity, full test coverage report (content types, fields, paragraph bundles, plugins).
322
364
 
323
365
  ## Test Plugins
324
366
 
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Prompt builder for bolt status AI assessment.
3
+ *
4
+ * Claude analyzes available updates and provides:
5
+ * - Risk level for the update batch
6
+ * - Recommended update order
7
+ * - Warnings about known compatibility issues
8
+ * - Suggested next steps
9
+ */
10
+ import type { AgentTask } from '../agent.js';
11
+ export interface StatusContext {
12
+ outdatedPackages: Array<{
13
+ name: string;
14
+ currentVersion: string;
15
+ latestVersion: string;
16
+ updateType: string;
17
+ description?: string;
18
+ isSecurityUpdate: boolean;
19
+ }>;
20
+ drupalVersion: string;
21
+ phpVersion: string;
22
+ enabledModules: string[];
23
+ securityAdvisories: string[];
24
+ }
25
+ export declare function buildStatusAssessmentTask(context: StatusContext): AgentTask;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Prompt builder for bolt status AI assessment.
3
+ *
4
+ * Claude analyzes available updates and provides:
5
+ * - Risk level for the update batch
6
+ * - Recommended update order
7
+ * - Warnings about known compatibility issues
8
+ * - Suggested next steps
9
+ */
10
+ export function buildStatusAssessmentTask(context) {
11
+ const securityCount = context.outdatedPackages.filter((p) => p.isSecurityUpdate).length;
12
+ return {
13
+ goal: `Assess the risk and recommend an update strategy for ${context.outdatedPackages.length} outdated packages (${securityCount} security) on a Drupal ${context.drupalVersion} site running PHP ${context.phpVersion}.`,
14
+ context: {
15
+ outdatedPackages: context.outdatedPackages,
16
+ drupalVersion: context.drupalVersion,
17
+ phpVersion: context.phpVersion,
18
+ enabledModules: context.enabledModules,
19
+ securityAdvisoryPackages: context.securityAdvisories,
20
+ },
21
+ knowledge: ['drupal-updates', 'composer'],
22
+ outputFormat: `Return a JSON object with this exact structure:
23
+ {
24
+ "riskLevel": "low" | "medium" | "high",
25
+ "riskSummary": "One sentence explaining the overall risk level",
26
+ "recommendedOrder": [
27
+ { "package": "drupal/core", "reason": "Security fix, apply first" }
28
+ ],
29
+ "warnings": [
30
+ "drupal/webform major version jump — check migration guide"
31
+ ],
32
+ "nextSteps": [
33
+ "Run bolt update --security-only first",
34
+ "Back up database before drupal/core update"
35
+ ]
36
+ }
37
+
38
+ Guidelines:
39
+ - riskLevel: "low" = all patch/security updates; "medium" = minor version bumps or many packages; "high" = major version jumps, core updates, or known breaking changes
40
+ - recommendedOrder: list packages in the order they should be updated (security first, then dependencies, then leaf packages)
41
+ - warnings: flag known compatibility issues, major version jumps, deprecated packages, or packages that commonly break things
42
+ - nextSteps: concrete commands the developer should run next
43
+ - Be concise — this is a status report, not a full analysis`,
44
+ maxTurns: 1,
45
+ timeout: 30_000,
46
+ allowedTools: [],
47
+ };
48
+ }
49
+ //# sourceMappingURL=status-assessment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-assessment.js","sourceRoot":"","sources":["../../../src/ai/prompts/status-assessment.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,MAAM,UAAU,yBAAyB,CAAC,OAAsB;IAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;IAExF,OAAO;QACL,IAAI,EAAE,wDAAwD,OAAO,CAAC,gBAAgB,CAAC,MAAM,uBAAuB,aAAa,0BAA0B,OAAO,CAAC,aAAa,qBAAqB,OAAO,CAAC,UAAU,GAAG;QAE1N,OAAO,EAAE;YACP,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,wBAAwB,EAAE,OAAO,CAAC,kBAAkB;SACrD;QAED,SAAS,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAsB;QAE9D,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;4DAqB0C;QAExD,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Schema validation for bolt status AI assessment output.
3
+ */
4
+ export interface StatusAssessment {
5
+ riskLevel: 'low' | 'medium' | 'high';
6
+ riskSummary: string;
7
+ recommendedOrder: Array<{
8
+ package: string;
9
+ reason: string;
10
+ }>;
11
+ warnings: string[];
12
+ nextSteps: string[];
13
+ }
14
+ /**
15
+ * Validate and extract a StatusAssessment from raw agent output.
16
+ * Returns null if the output doesn't match the expected schema.
17
+ */
18
+ export declare function validateStatusOutput(raw: Record<string, unknown>): StatusAssessment | null;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Schema validation for bolt status AI assessment output.
3
+ */
4
+ /**
5
+ * Validate and extract a StatusAssessment from raw agent output.
6
+ * Returns null if the output doesn't match the expected schema.
7
+ */
8
+ export function validateStatusOutput(raw) {
9
+ const riskLevel = raw.riskLevel;
10
+ if (riskLevel !== 'low' && riskLevel !== 'medium' && riskLevel !== 'high') {
11
+ return null;
12
+ }
13
+ const riskSummary = raw.riskSummary;
14
+ if (typeof riskSummary !== 'string' || riskSummary.length === 0) {
15
+ return null;
16
+ }
17
+ const recommendedOrder = raw.recommendedOrder;
18
+ if (!Array.isArray(recommendedOrder)) {
19
+ return null;
20
+ }
21
+ const validOrder = recommendedOrder
22
+ .filter((item) => typeof item === 'object' &&
23
+ item !== null &&
24
+ typeof item.package === 'string' &&
25
+ typeof item.reason === 'string')
26
+ .map((item) => ({
27
+ package: item.package,
28
+ reason: item.reason,
29
+ }));
30
+ const warnings = Array.isArray(raw.warnings)
31
+ ? raw.warnings.filter((w) => typeof w === 'string')
32
+ : [];
33
+ const nextSteps = Array.isArray(raw.nextSteps)
34
+ ? raw.nextSteps.filter((s) => typeof s === 'string')
35
+ : [];
36
+ return {
37
+ riskLevel,
38
+ riskSummary,
39
+ recommendedOrder: validOrder,
40
+ warnings,
41
+ nextSteps,
42
+ };
43
+ }
44
+ //# sourceMappingURL=status-assessment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-assessment.js","sourceRoot":"","sources":["../../../src/ai/schemas/status-assessment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAA4B;IAE5B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB;SAChC,MAAM,CACL,CAAC,IAAI,EAA+C,EAAE,CACpD,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAQ,IAAgC,CAAC,OAAO,KAAK,QAAQ;QAC7D,OAAQ,IAAgC,CAAC,MAAM,KAAK,QAAQ,CAC/D;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC,CAAC;IAEN,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAChE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,SAAS;QACT,WAAW;QACX,gBAAgB,EAAE,UAAU;QAC5B,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC"}
package/dist/cli.js CHANGED
@@ -12,6 +12,7 @@ import { updateCommand } from './commands/update.js';
12
12
  import { prCommand } from './commands/pr.js';
13
13
  import { analyzeCommand } from './commands/analyze.js';
14
14
  import { fixCommand } from './commands/fix.js';
15
+ import { statusCommand } from './commands/status.js';
15
16
  import { loadConfig } from './config.js';
16
17
  const __filename = fileURLToPath(import.meta.url);
17
18
  const __dirname = dirname(__filename);
@@ -225,5 +226,18 @@ program
225
226
  boltConfig: config,
226
227
  });
227
228
  });
229
+ program
230
+ .command('status')
231
+ .description('AI-enhanced site status — git state, available updates, risk assessment')
232
+ .option('--no-ai', 'Disable AI risk assessment')
233
+ .option('--output <format>', 'Output format: text, json', 'text')
234
+ .action(async (opts) => {
235
+ const config = loadConfig();
236
+ await statusCommand({
237
+ noAi: opts.ai === false,
238
+ output: opts.output,
239
+ boltConfig: config,
240
+ });
241
+ });
228
242
  program.parse();
229
243
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * bolt status — AI-enhanced site status overview.
3
+ *
4
+ * Shows: git state, site health, available updates (with AI risk assessment),
5
+ * and pending Jira tickets. The "what do I need to know?" command.
6
+ */
7
+ import type { BoltConfig } from '../config.js';
8
+ export interface StatusOptions {
9
+ /** Disable AI reasoning. */
10
+ noAi: boolean;
11
+ /** Output format. */
12
+ output: 'text' | 'json';
13
+ /** Bolt config. */
14
+ boltConfig: BoltConfig;
15
+ }
16
+ export declare function statusCommand(options: StatusOptions): Promise<void>;
@@ -0,0 +1,363 @@
1
+ /**
2
+ * bolt status — AI-enhanced site status overview.
3
+ *
4
+ * Shows: git state, site health, available updates (with AI risk assessment),
5
+ * and pending Jira tickets. The "what do I need to know?" command.
6
+ */
7
+ import { execFile } from 'child_process';
8
+ import { promisify } from 'util';
9
+ import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
10
+ import { join } from 'path';
11
+ import { checkGitState } from '../safety.js';
12
+ import { isClaudeAvailable, runAgent } from '../ai/agent.js';
13
+ import { buildStatusAssessmentTask } from '../ai/prompts/status-assessment.js';
14
+ import { validateStatusOutput } from '../ai/schemas/status-assessment.js';
15
+ const execFileAsync = promisify(execFile);
16
+ // --- Logging helpers (stderr) ---
17
+ function log(msg) {
18
+ process.stderr.write(` ${msg}\n`);
19
+ }
20
+ function logOk(msg) {
21
+ process.stderr.write(` ✓ ${msg}\n`);
22
+ }
23
+ function logWarn(msg) {
24
+ process.stderr.write(` ! ${msg}\n`);
25
+ }
26
+ function logFail(msg) {
27
+ process.stderr.write(` ✗ ${msg}\n`);
28
+ }
29
+ function logSection(title) {
30
+ process.stderr.write(`\n${title}:\n`);
31
+ }
32
+ /** Run a command, return stdout/stderr/exitCode. */
33
+ async function exec(command, args, timeout = 30_000) {
34
+ try {
35
+ const { stdout, stderr } = await execFileAsync(command, args, {
36
+ maxBuffer: 10 * 1024 * 1024,
37
+ timeout,
38
+ });
39
+ return { stdout, stderr, exitCode: 0 };
40
+ }
41
+ catch (err) {
42
+ if (err instanceof Error) {
43
+ const execErr = err;
44
+ return {
45
+ stdout: execErr.stdout ?? '',
46
+ stderr: execErr.stderr ?? err.message,
47
+ exitCode: typeof execErr.code === 'number' ? execErr.code : 1,
48
+ };
49
+ }
50
+ return { stdout: '', stderr: String(err), exitCode: 1 };
51
+ }
52
+ }
53
+ // --- Data gathering ---
54
+ async function getDdevStatus() {
55
+ const result = await exec('ddev', ['describe', '-j']);
56
+ if (result.exitCode !== 0) {
57
+ return { running: false, url: '' };
58
+ }
59
+ try {
60
+ const data = JSON.parse(result.stdout);
61
+ const raw = data.raw ?? data;
62
+ const url = raw.httpurl ?? raw.primary_url ?? '';
63
+ return { running: true, url: url.replace(/^http:/, 'https:') };
64
+ }
65
+ catch {
66
+ return { running: true, url: '' };
67
+ }
68
+ }
69
+ async function getDrupalVersion() {
70
+ const result = await exec('ddev', ['drush', 'status', '--format=json'], 15_000);
71
+ try {
72
+ const data = JSON.parse(result.stdout);
73
+ return data['drupal-version'] ?? 'unknown';
74
+ }
75
+ catch {
76
+ return 'unknown';
77
+ }
78
+ }
79
+ async function getPhpVersion() {
80
+ const result = await exec('ddev', ['drush', 'status', '--format=json'], 15_000);
81
+ try {
82
+ const data = JSON.parse(result.stdout);
83
+ return data['php-version'] ?? 'unknown';
84
+ }
85
+ catch {
86
+ return 'unknown';
87
+ }
88
+ }
89
+ async function getOutdatedPackages() {
90
+ const securityPackages = await getSecurityPackages();
91
+ const result = await exec('ddev', ['composer', 'outdated', '--format=json', '--direct'], 60_000);
92
+ let data;
93
+ try {
94
+ data = JSON.parse(result.stdout);
95
+ }
96
+ catch {
97
+ return [];
98
+ }
99
+ const installed = (data.installed ?? data);
100
+ if (!Array.isArray(installed))
101
+ return [];
102
+ return installed
103
+ .filter((pkg) => pkg.name && pkg.version && pkg.latest)
104
+ .map((pkg) => ({
105
+ name: pkg.name,
106
+ currentVersion: pkg.version,
107
+ latestVersion: pkg.latest,
108
+ updateType: pkg['latest-status'] ?? 'unknown',
109
+ description: pkg.description,
110
+ isSecurityUpdate: securityPackages.has(pkg.name),
111
+ }));
112
+ }
113
+ async function getSecurityPackages() {
114
+ const result = await exec('ddev', ['composer', 'audit', '--format=json'], 60_000);
115
+ const packages = new Set();
116
+ try {
117
+ const data = JSON.parse(result.stdout);
118
+ const advisories = data.advisories;
119
+ if (advisories) {
120
+ for (const name of Object.keys(advisories)) {
121
+ packages.add(name);
122
+ }
123
+ }
124
+ }
125
+ catch {
126
+ // No advisories or parse error.
127
+ }
128
+ return packages;
129
+ }
130
+ async function getSiteProfile() {
131
+ const result = await exec('ddev', ['drush', 'bolt-inspect:profile'], 30_000);
132
+ if (result.exitCode !== 0)
133
+ return null;
134
+ try {
135
+ return JSON.parse(result.stdout);
136
+ }
137
+ catch {
138
+ return null;
139
+ }
140
+ }
141
+ function getLastTestResults(cwd) {
142
+ // Check for most recent test report in .bolt/logs/
143
+ const logDir = join(cwd, '.bolt', 'logs');
144
+ if (!existsSync(logDir))
145
+ return null;
146
+ try {
147
+ const files = readdirSync(logDir)
148
+ .filter((f) => f.endsWith('.json'))
149
+ .map((f) => ({
150
+ name: f,
151
+ mtime: statSync(join(logDir, f)).mtime.getTime(),
152
+ }))
153
+ .sort((a, b) => b.mtime - a.mtime);
154
+ if (files.length > 0) {
155
+ return readFileSync(join(logDir, files[0].name), 'utf-8');
156
+ }
157
+ }
158
+ catch {
159
+ // No logs available.
160
+ }
161
+ return null;
162
+ }
163
+ // --- Output formatting ---
164
+ function formatGitSection(git) {
165
+ logSection('Git');
166
+ if (!git.isGitRepo) {
167
+ logWarn('Not a git repository');
168
+ return;
169
+ }
170
+ logOk(`Branch: ${git.currentBranch}`);
171
+ if (git.isDirty) {
172
+ logWarn(`${git.dirtyFileCount} uncommitted change(s)`);
173
+ for (const f of git.dirtyFiles) {
174
+ log(` ${f}`);
175
+ }
176
+ }
177
+ else {
178
+ logOk('Working tree clean');
179
+ }
180
+ if (git.hasUnpushedCommits) {
181
+ logWarn(`${git.unpushedCommits.length} unpushed commit(s)`);
182
+ }
183
+ }
184
+ function formatSiteSection(status) {
185
+ logSection('Site');
186
+ if (!status.ddevRunning) {
187
+ logFail('DDEV not running');
188
+ log('Run: ddev start');
189
+ return;
190
+ }
191
+ logOk(`DDEV running: ${status.siteUrl}`);
192
+ if (status.drupalVersion !== 'unknown') {
193
+ logOk(`Drupal ${status.drupalVersion}, PHP ${status.phpVersion}`);
194
+ }
195
+ if (status.siteProfile) {
196
+ const ctCount = status.siteProfile.contentTypes?.length ?? 0;
197
+ const pgCount = status.siteProfile.paragraphBundles?.length ?? 0;
198
+ const parts = [`${ctCount} content types`];
199
+ if (pgCount > 0)
200
+ parts.push(`${pgCount} paragraph bundles`);
201
+ logOk(parts.join(', '));
202
+ }
203
+ }
204
+ function formatUpdatesSection(packages) {
205
+ logSection('Available updates');
206
+ if (packages.length === 0) {
207
+ logOk('All packages are up to date');
208
+ return;
209
+ }
210
+ const security = packages.filter((p) => p.isSecurityUpdate);
211
+ const regular = packages.filter((p) => !p.isSecurityUpdate);
212
+ if (security.length > 0) {
213
+ logFail(`${security.length} security update(s):`);
214
+ for (const pkg of security) {
215
+ log(` ${pkg.name}: ${pkg.currentVersion} → ${pkg.latestVersion} [SECURITY]`);
216
+ }
217
+ }
218
+ if (regular.length > 0) {
219
+ logWarn(`${regular.length} other update(s):`);
220
+ for (const pkg of regular) {
221
+ const type = pkg.updateType === 'semver-safe-update' ? 'patch'
222
+ : pkg.updateType === 'update-possible' ? 'minor/major'
223
+ : pkg.updateType;
224
+ log(` ${pkg.name}: ${pkg.currentVersion} → ${pkg.latestVersion} (${type})`);
225
+ }
226
+ }
227
+ }
228
+ function formatAiAssessment(assessment) {
229
+ logSection('AI assessment');
230
+ // Risk summary
231
+ if (assessment.riskLevel === 'low') {
232
+ logOk(`Risk: ${assessment.riskLevel} — ${assessment.riskSummary}`);
233
+ }
234
+ else if (assessment.riskLevel === 'medium') {
235
+ logWarn(`Risk: ${assessment.riskLevel} — ${assessment.riskSummary}`);
236
+ }
237
+ else {
238
+ logFail(`Risk: ${assessment.riskLevel} — ${assessment.riskSummary}`);
239
+ }
240
+ // Recommended update order
241
+ if (assessment.recommendedOrder.length > 0) {
242
+ log('');
243
+ log(' Recommended update order:');
244
+ for (let i = 0; i < assessment.recommendedOrder.length; i++) {
245
+ const item = assessment.recommendedOrder[i];
246
+ log(` ${i + 1}. ${item.package} — ${item.reason}`);
247
+ }
248
+ }
249
+ // Warnings
250
+ if (assessment.warnings.length > 0) {
251
+ log('');
252
+ for (const warning of assessment.warnings) {
253
+ logWarn(warning);
254
+ }
255
+ }
256
+ // Suggested next steps
257
+ if (assessment.nextSteps.length > 0) {
258
+ log('');
259
+ log(' Next steps:');
260
+ for (const step of assessment.nextSteps) {
261
+ log(` → ${step}`);
262
+ }
263
+ }
264
+ }
265
+ // --- Main command ---
266
+ export async function statusCommand(options) {
267
+ const cwd = process.cwd();
268
+ process.stderr.write('\nbolt status\n');
269
+ process.stderr.write('━'.repeat(50) + '\n');
270
+ // --- Gather data in parallel where possible ---
271
+ const gitState = await checkGitState();
272
+ formatGitSection(gitState);
273
+ const ddevStatus = await getDdevStatus();
274
+ if (!ddevStatus.running) {
275
+ logSection('Site');
276
+ logFail('DDEV not running — start DDEV to see full status');
277
+ log('Run: ddev start\n');
278
+ process.exit(0);
279
+ }
280
+ // Gather site data in parallel.
281
+ const [drupalVersion, phpVersion, outdatedPackages, siteProfile] = await Promise.all([
282
+ getDrupalVersion(),
283
+ getPhpVersion(),
284
+ getOutdatedPackages(),
285
+ getSiteProfile(),
286
+ ]);
287
+ const status = {
288
+ git: gitState,
289
+ ddevRunning: ddevStatus.running,
290
+ siteUrl: ddevStatus.url,
291
+ drupalVersion,
292
+ phpVersion,
293
+ outdatedPackages,
294
+ securityAdvisories: outdatedPackages.filter((p) => p.isSecurityUpdate).map((p) => p.name),
295
+ siteProfile,
296
+ lastTestResults: getLastTestResults(cwd),
297
+ };
298
+ formatSiteSection(status);
299
+ formatUpdatesSection(status.outdatedPackages);
300
+ // --- AI assessment (if enabled and updates are available) ---
301
+ const useAi = !options.noAi && status.outdatedPackages.length > 0;
302
+ if (useAi) {
303
+ const claudeAvailable = await isClaudeAvailable();
304
+ if (claudeAvailable) {
305
+ log('');
306
+ log(' Analyzing updates...');
307
+ const task = buildStatusAssessmentTask({
308
+ outdatedPackages: status.outdatedPackages,
309
+ drupalVersion: status.drupalVersion,
310
+ phpVersion: status.phpVersion,
311
+ enabledModules: status.siteProfile?.enabledModules ?? [],
312
+ securityAdvisories: status.securityAdvisories,
313
+ });
314
+ const result = await runAgent(task);
315
+ if (result.success) {
316
+ const assessment = validateStatusOutput(result.output);
317
+ if (assessment) {
318
+ formatAiAssessment(assessment);
319
+ }
320
+ else {
321
+ logWarn('AI returned unexpected format — showing raw assessment');
322
+ if (result.rawResponse) {
323
+ log(` ${result.rawResponse.slice(0, 500)}`);
324
+ }
325
+ }
326
+ }
327
+ else {
328
+ logWarn('AI assessment failed');
329
+ if (result.rawResponse) {
330
+ log(` ${result.rawResponse.slice(0, 200)}`);
331
+ }
332
+ }
333
+ }
334
+ else if (!options.noAi) {
335
+ logWarn('Claude Code not available — skipping AI assessment');
336
+ log('Install Claude Code for risk analysis: https://claude.ai/code');
337
+ }
338
+ }
339
+ // --- JSON output ---
340
+ if (options.output === 'json') {
341
+ const jsonOutput = {
342
+ git: {
343
+ branch: gitState.currentBranch,
344
+ dirty: gitState.isDirty,
345
+ dirtyFileCount: gitState.dirtyFileCount,
346
+ unpushedCommits: gitState.unpushedCommits.length,
347
+ },
348
+ site: {
349
+ url: status.siteUrl,
350
+ drupalVersion: status.drupalVersion,
351
+ phpVersion: status.phpVersion,
352
+ },
353
+ updates: {
354
+ total: status.outdatedPackages.length,
355
+ security: status.securityAdvisories.length,
356
+ packages: status.outdatedPackages,
357
+ },
358
+ };
359
+ process.stdout.write(JSON.stringify(jsonOutput, null, 2) + '\n');
360
+ }
361
+ process.stderr.write('\n');
362
+ }
363
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electriccitizen/bolt",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "CLI tool for Drupal 11+ site testing and operations",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",