@electriccitizen/bolt 0.1.0 → 0.2.0
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 +93 -14
- package/dist/ai/agent.d.ts +66 -0
- package/dist/ai/agent.js +232 -0
- package/dist/ai/agent.js.map +1 -0
- package/dist/ai/knowledge/composer.md +90 -0
- package/dist/ai/knowledge/config-safety.md +46 -0
- package/dist/ai/knowledge/ddev-operations.md +41 -0
- package/dist/ai/knowledge/drupal-internals.md +52 -0
- package/dist/ai/knowledge/drupal-updates.md +90 -0
- package/dist/ai/knowledge/knowledge/composer.md +90 -0
- package/dist/ai/knowledge/knowledge/config-safety.md +46 -0
- package/dist/ai/knowledge/knowledge/ddev-operations.md +41 -0
- package/dist/ai/knowledge/knowledge/drupal-debugging.md +89 -0
- package/dist/ai/knowledge/knowledge/drupal-internals.md +52 -0
- package/dist/ai/knowledge/knowledge/drupal-updates.md +90 -0
- package/dist/ai/prompts/analyze-ticket.d.ts +30 -0
- package/dist/ai/prompts/analyze-ticket.js +116 -0
- package/dist/ai/prompts/analyze-ticket.js.map +1 -0
- package/dist/ai/prompts/fix-ticket.d.ts +27 -0
- package/dist/ai/prompts/fix-ticket.js +129 -0
- package/dist/ai/prompts/fix-ticket.js.map +1 -0
- package/dist/ai/prompts/pr-description.d.ts +19 -0
- package/dist/ai/prompts/pr-description.js +56 -0
- package/dist/ai/prompts/pr-description.js.map +1 -0
- package/dist/ai/prompts/update-package.d.ts +25 -0
- package/dist/ai/prompts/update-package.js +87 -0
- package/dist/ai/prompts/update-package.js.map +1 -0
- package/dist/ai/prompts/update-plan.d.ts +20 -0
- package/dist/ai/prompts/update-plan.js +66 -0
- package/dist/ai/prompts/update-plan.js.map +1 -0
- package/dist/ai/schemas/analysis-result.d.ts +44 -0
- package/dist/ai/schemas/analysis-result.js +101 -0
- package/dist/ai/schemas/analysis-result.js.map +1 -0
- package/dist/ai/schemas/fix-result.d.ts +34 -0
- package/dist/ai/schemas/fix-result.js +55 -0
- package/dist/ai/schemas/fix-result.js.map +1 -0
- package/dist/ai/schemas/pr-body.d.ts +12 -0
- package/dist/ai/schemas/pr-body.js +18 -0
- package/dist/ai/schemas/pr-body.js.map +1 -0
- package/dist/ai/schemas/update-plan.d.ts +20 -0
- package/dist/ai/schemas/update-plan.js +33 -0
- package/dist/ai/schemas/update-plan.js.map +1 -0
- package/dist/ai/schemas/update-result.d.ts +22 -0
- package/dist/ai/schemas/update-result.js +30 -0
- package/dist/ai/schemas/update-result.js.map +1 -0
- package/dist/cli.js +63 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +25 -0
- package/dist/commands/analyze.js +377 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/doctor.js +61 -13
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/fix.d.ts +35 -0
- package/dist/commands/fix.js +480 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/init.d.ts +3 -2
- package/dist/commands/init.js +117 -160
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pr.d.ts +4 -0
- package/dist/commands/pr.js +121 -3
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/refresh.js +10 -57
- package/dist/commands/refresh.js.map +1 -1
- package/dist/commands/update.d.ts +2 -0
- package/dist/commands/update.js +463 -64
- package/dist/commands/update.js.map +1 -1
- package/dist/config.d.ts +16 -0
- package/dist/config.js +57 -0
- package/dist/config.js.map +1 -1
- package/dist/runner.js +12 -0
- package/dist/runner.js.map +1 -1
- package/dist/safety.d.ts +63 -0
- package/dist/safety.js +192 -0
- package/dist/safety.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/package.json +2 -3
- package/modules/bolt_inspect/bolt_inspect.info.yml +0 -6
- package/modules/bolt_inspect/bolt_inspect.services.yml +0 -22
- package/modules/bolt_inspect/composer.json +0 -16
- package/modules/bolt_inspect/drush.services.yml +0 -10
- package/modules/bolt_inspect/src/Drush/Commands/BoltInspectCommands.php +0 -203
- package/modules/bolt_inspect/src/Service/ContentGenerator.php +0 -586
- package/modules/bolt_inspect/src/Service/SiteProfiler.php +0 -362
- package/modules/bolt_inspect/src/Service/TestEntityTracker.php +0 -98
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI-generated ticket analysis results.
|
|
3
|
+
*/
|
|
4
|
+
const VALID_PROBABILITIES = ['high', 'medium', 'low'];
|
|
5
|
+
const VALID_CATEGORIES = ['config', 'code', 'permissions', 'js', 'caching', 'data', 'module'];
|
|
6
|
+
/**
|
|
7
|
+
* Validate and coerce agent output into AnalysisResult.
|
|
8
|
+
* Returns null if the output is missing required fields.
|
|
9
|
+
*/
|
|
10
|
+
export function validateAnalysisResult(raw) {
|
|
11
|
+
// Required top-level fields.
|
|
12
|
+
if (typeof raw.problemSummary !== 'string' || !raw.problemSummary.trim())
|
|
13
|
+
return null;
|
|
14
|
+
if (!Array.isArray(raw.likelyCauses) || raw.likelyCauses.length === 0)
|
|
15
|
+
return null;
|
|
16
|
+
if (!Array.isArray(raw.investigationSteps) || raw.investigationSteps.length === 0)
|
|
17
|
+
return null;
|
|
18
|
+
// Validate ticket info.
|
|
19
|
+
const rawTicket = raw.ticket;
|
|
20
|
+
const ticket = {
|
|
21
|
+
key: typeof rawTicket?.key === 'string' ? rawTicket.key : 'UNKNOWN',
|
|
22
|
+
summary: typeof rawTicket?.summary === 'string' ? rawTicket.summary : '',
|
|
23
|
+
type: typeof rawTicket?.type === 'string' ? rawTicket.type : 'Bug',
|
|
24
|
+
priority: typeof rawTicket?.priority === 'string' ? rawTicket.priority : 'Medium',
|
|
25
|
+
};
|
|
26
|
+
// Validate likely causes.
|
|
27
|
+
const likelyCauses = [];
|
|
28
|
+
for (const cause of raw.likelyCauses) {
|
|
29
|
+
if (!cause || typeof cause !== 'object')
|
|
30
|
+
continue;
|
|
31
|
+
const c = cause;
|
|
32
|
+
if (typeof c.description !== 'string')
|
|
33
|
+
continue;
|
|
34
|
+
likelyCauses.push({
|
|
35
|
+
probability: VALID_PROBABILITIES.includes(c.probability)
|
|
36
|
+
? c.probability
|
|
37
|
+
: 'medium',
|
|
38
|
+
description: c.description,
|
|
39
|
+
category: VALID_CATEGORIES.includes(c.category)
|
|
40
|
+
? c.category
|
|
41
|
+
: 'code',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (likelyCauses.length === 0)
|
|
45
|
+
return null;
|
|
46
|
+
// Validate investigation steps.
|
|
47
|
+
const investigationSteps = [];
|
|
48
|
+
for (const step of raw.investigationSteps) {
|
|
49
|
+
if (!step || typeof step !== 'object')
|
|
50
|
+
continue;
|
|
51
|
+
const s = step;
|
|
52
|
+
if (typeof s.description !== 'string')
|
|
53
|
+
continue;
|
|
54
|
+
investigationSteps.push({
|
|
55
|
+
order: typeof s.order === 'number' ? s.order : investigationSteps.length + 1,
|
|
56
|
+
description: s.description,
|
|
57
|
+
command: typeof s.command === 'string' ? s.command : undefined,
|
|
58
|
+
file: typeof s.file === 'string' ? s.file : undefined,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (investigationSteps.length === 0)
|
|
62
|
+
return null;
|
|
63
|
+
// Validate suggested tests.
|
|
64
|
+
const rawTests = raw.suggestedTests;
|
|
65
|
+
const suggestedTests = {
|
|
66
|
+
plugins: Array.isArray(rawTests?.plugins)
|
|
67
|
+
? rawTests.plugins.filter((p) => typeof p === 'string')
|
|
68
|
+
: [],
|
|
69
|
+
contentTypes: Array.isArray(rawTests?.contentTypes)
|
|
70
|
+
? rawTests.contentTypes.filter((p) => typeof p === 'string')
|
|
71
|
+
: undefined,
|
|
72
|
+
flags: Array.isArray(rawTests?.flags)
|
|
73
|
+
? rawTests.flags.filter((p) => typeof p === 'string')
|
|
74
|
+
: undefined,
|
|
75
|
+
};
|
|
76
|
+
// Validate confidence (optional — for MVP-8).
|
|
77
|
+
let confidence;
|
|
78
|
+
const rawConf = raw.confidence;
|
|
79
|
+
if (rawConf && typeof rawConf.canFix === 'string' && typeof rawConf.reason === 'string') {
|
|
80
|
+
const validFix = ['autonomous', 'needs-info', 'needs-human'];
|
|
81
|
+
confidence = {
|
|
82
|
+
canFix: validFix.includes(rawConf.canFix)
|
|
83
|
+
? rawConf.canFix
|
|
84
|
+
: 'needs-human',
|
|
85
|
+
reason: rawConf.reason,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
ticket,
|
|
90
|
+
problemSummary: raw.problemSummary,
|
|
91
|
+
likelyCauses,
|
|
92
|
+
investigationSteps: investigationSteps.sort((a, b) => a.order - b.order),
|
|
93
|
+
suggestedTests,
|
|
94
|
+
riskAssessment: typeof raw.riskAssessment === 'string' ? raw.riskAssessment : '',
|
|
95
|
+
relatedModules: Array.isArray(raw.relatedModules)
|
|
96
|
+
? raw.relatedModules.filter((m) => typeof m === 'string')
|
|
97
|
+
: [],
|
|
98
|
+
confidence,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=analysis-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-result.js","sourceRoot":"","sources":["../../../src/ai/schemas/analysis-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI-generated fix results.
|
|
3
|
+
*/
|
|
4
|
+
export interface FileChange {
|
|
5
|
+
file: string;
|
|
6
|
+
description: string;
|
|
7
|
+
type: 'modified' | 'created' | 'deleted';
|
|
8
|
+
}
|
|
9
|
+
export interface FixTestResults {
|
|
10
|
+
passed: number;
|
|
11
|
+
failed: number;
|
|
12
|
+
suppressed: number;
|
|
13
|
+
regressions: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface FixResult {
|
|
16
|
+
ticket: {
|
|
17
|
+
key: string;
|
|
18
|
+
summary: string;
|
|
19
|
+
};
|
|
20
|
+
status: 'fixed' | 'partial' | 'failed' | 'needs-human';
|
|
21
|
+
changes: FileChange[];
|
|
22
|
+
explanation: string;
|
|
23
|
+
testResults?: FixTestResults;
|
|
24
|
+
pr?: {
|
|
25
|
+
url: string;
|
|
26
|
+
branch: string;
|
|
27
|
+
};
|
|
28
|
+
followUp?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validate and coerce agent output into a FixResult.
|
|
32
|
+
* Returns null if the output is missing required fields.
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateFixResult(raw: Record<string, unknown>): FixResult | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI-generated fix results.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate and coerce agent output into a FixResult.
|
|
6
|
+
* Returns null if the output is missing required fields.
|
|
7
|
+
*/
|
|
8
|
+
export function validateFixResult(raw) {
|
|
9
|
+
// Required fields.
|
|
10
|
+
if (typeof raw.status !== 'string')
|
|
11
|
+
return null;
|
|
12
|
+
if (typeof raw.explanation !== 'string' || !raw.explanation.trim())
|
|
13
|
+
return null;
|
|
14
|
+
const validStatuses = ['fixed', 'partial', 'failed', 'needs-human'];
|
|
15
|
+
const status = validStatuses.includes(raw.status)
|
|
16
|
+
? raw.status
|
|
17
|
+
: 'failed';
|
|
18
|
+
// Ticket info.
|
|
19
|
+
const rawTicket = raw.ticket;
|
|
20
|
+
const ticket = {
|
|
21
|
+
key: typeof rawTicket?.key === 'string' ? rawTicket.key : 'UNKNOWN',
|
|
22
|
+
summary: typeof rawTicket?.summary === 'string' ? rawTicket.summary : '',
|
|
23
|
+
};
|
|
24
|
+
// Changes.
|
|
25
|
+
const changes = [];
|
|
26
|
+
if (Array.isArray(raw.changes)) {
|
|
27
|
+
for (const change of raw.changes) {
|
|
28
|
+
if (!change || typeof change !== 'object')
|
|
29
|
+
continue;
|
|
30
|
+
const c = change;
|
|
31
|
+
if (typeof c.file !== 'string')
|
|
32
|
+
continue;
|
|
33
|
+
const validTypes = ['modified', 'created', 'deleted'];
|
|
34
|
+
changes.push({
|
|
35
|
+
file: c.file,
|
|
36
|
+
description: typeof c.description === 'string' ? c.description : '',
|
|
37
|
+
type: validTypes.includes(c.type)
|
|
38
|
+
? c.type
|
|
39
|
+
: 'modified',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Follow-up items.
|
|
44
|
+
const followUp = Array.isArray(raw.followUp)
|
|
45
|
+
? raw.followUp.filter((f) => typeof f === 'string')
|
|
46
|
+
: undefined;
|
|
47
|
+
return {
|
|
48
|
+
ticket,
|
|
49
|
+
status,
|
|
50
|
+
changes,
|
|
51
|
+
explanation: raw.explanation,
|
|
52
|
+
followUp: followUp && followUp.length > 0 ? followUp : undefined,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=fix-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-result.js","sourceRoot":"","sources":["../../../src/ai/schemas/fix-result.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+BH;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAA4B;IAE5B,mBAAmB;IACnB,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAEhF,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAE,GAAG,CAAC,MAA8B;QACrC,CAAC,CAAC,QAAQ,CAAC;IAEb,eAAe;IACf,MAAM,SAAS,GAAG,GAAG,CAAC,MAA6C,CAAC;IACpE,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,OAAO,SAAS,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACnE,OAAO,EAAE,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KACzE,CAAC;IAEF,WAAW;IACX,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACpD,MAAM,CAAC,GAAG,MAAiC,CAAC;YAC5C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACzC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBACnE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC;oBACzC,CAAC,CAAE,CAAC,CAAC,IAA2B;oBAChC,CAAC,CAAC,UAAU;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAE,GAAG,CAAC,QAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC/E,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW,EAAE,GAAG,CAAC,WAAqB;QACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI-generated PR descriptions.
|
|
3
|
+
*/
|
|
4
|
+
export interface AgentPrBody {
|
|
5
|
+
title: string;
|
|
6
|
+
body: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validate and coerce agent output into AgentPrBody.
|
|
10
|
+
* Returns null if the output is missing required fields.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validatePrBody(raw: Record<string, unknown>): AgentPrBody | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI-generated PR descriptions.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate and coerce agent output into AgentPrBody.
|
|
6
|
+
* Returns null if the output is missing required fields.
|
|
7
|
+
*/
|
|
8
|
+
export function validatePrBody(raw) {
|
|
9
|
+
if (typeof raw.title !== 'string' || !raw.title.trim())
|
|
10
|
+
return null;
|
|
11
|
+
if (typeof raw.body !== 'string' || !raw.body.trim())
|
|
12
|
+
return null;
|
|
13
|
+
return {
|
|
14
|
+
title: raw.title.trim().slice(0, 100), // Cap at reasonable length.
|
|
15
|
+
body: raw.body.trim(),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=pr-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-body.js","sourceRoot":"","sources":["../../../src/ai/schemas/pr-body.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,GAA4B;IAE5B,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAElE,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,4BAA4B;QACnE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI agent update plan results.
|
|
3
|
+
*/
|
|
4
|
+
export interface AgentPlanEntry {
|
|
5
|
+
package: string;
|
|
6
|
+
targetVersion: string;
|
|
7
|
+
strategy: string;
|
|
8
|
+
risk: 'low' | 'medium' | 'high';
|
|
9
|
+
reason: string;
|
|
10
|
+
skipReason: string | null;
|
|
11
|
+
}
|
|
12
|
+
export interface AgentUpdatePlan {
|
|
13
|
+
plan: AgentPlanEntry[];
|
|
14
|
+
notes: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validate and coerce agent output into AgentUpdatePlan.
|
|
18
|
+
* Returns null if the output is missing required fields.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateUpdatePlan(raw: Record<string, unknown>): AgentUpdatePlan | null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI agent update plan results.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate and coerce agent output into AgentUpdatePlan.
|
|
6
|
+
* Returns null if the output is missing required fields.
|
|
7
|
+
*/
|
|
8
|
+
export function validateUpdatePlan(raw) {
|
|
9
|
+
if (!Array.isArray(raw.plan))
|
|
10
|
+
return null;
|
|
11
|
+
const plan = [];
|
|
12
|
+
for (const entry of raw.plan) {
|
|
13
|
+
if (typeof entry !== 'object' || entry === null)
|
|
14
|
+
continue;
|
|
15
|
+
const e = entry;
|
|
16
|
+
if (typeof e.package !== 'string')
|
|
17
|
+
continue;
|
|
18
|
+
const risk = String(e.risk ?? 'medium');
|
|
19
|
+
plan.push({
|
|
20
|
+
package: String(e.package),
|
|
21
|
+
targetVersion: String(e.targetVersion ?? ''),
|
|
22
|
+
strategy: String(e.strategy ?? ''),
|
|
23
|
+
risk: (risk === 'low' || risk === 'medium' || risk === 'high') ? risk : 'medium',
|
|
24
|
+
reason: String(e.reason ?? ''),
|
|
25
|
+
skipReason: e.skipReason != null ? String(e.skipReason) : null,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
plan,
|
|
30
|
+
notes: String(raw.notes ?? ''),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=update-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-plan.js","sourceRoot":"","sources":["../../../src/ai/schemas/update-plan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAA4B;IAE5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,IAAI,GAAqB,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QAE5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1B,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;YAC5C,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;YAClC,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAChF,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;YAC9B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI agent update results.
|
|
3
|
+
*/
|
|
4
|
+
/** The shape returned by the update-package agent. */
|
|
5
|
+
export interface AgentUpdateOutput {
|
|
6
|
+
success: boolean;
|
|
7
|
+
package: string;
|
|
8
|
+
oldVersion: string;
|
|
9
|
+
newVersion: string;
|
|
10
|
+
strategy: string;
|
|
11
|
+
composerCommand: string | null;
|
|
12
|
+
dbUpdatesApplied: boolean;
|
|
13
|
+
dbUpdateOutput: string | null;
|
|
14
|
+
watchdogErrors: string[];
|
|
15
|
+
configChangesCount: number;
|
|
16
|
+
error: string | null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate and coerce agent output into AgentUpdateOutput.
|
|
20
|
+
* Returns null if the output is missing required fields.
|
|
21
|
+
*/
|
|
22
|
+
export declare function validateUpdateOutput(raw: Record<string, unknown>): AgentUpdateOutput | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for AI agent update results.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate and coerce agent output into AgentUpdateOutput.
|
|
6
|
+
* Returns null if the output is missing required fields.
|
|
7
|
+
*/
|
|
8
|
+
export function validateUpdateOutput(raw) {
|
|
9
|
+
// Required fields.
|
|
10
|
+
if (typeof raw.success !== 'boolean')
|
|
11
|
+
return null;
|
|
12
|
+
if (typeof raw.package !== 'string')
|
|
13
|
+
return null;
|
|
14
|
+
return {
|
|
15
|
+
success: raw.success,
|
|
16
|
+
package: String(raw.package ?? ''),
|
|
17
|
+
oldVersion: String(raw.oldVersion ?? ''),
|
|
18
|
+
newVersion: String(raw.newVersion ?? ''),
|
|
19
|
+
strategy: String(raw.strategy ?? ''),
|
|
20
|
+
composerCommand: raw.composerCommand != null ? String(raw.composerCommand) : null,
|
|
21
|
+
dbUpdatesApplied: Boolean(raw.dbUpdatesApplied ?? false),
|
|
22
|
+
dbUpdateOutput: raw.dbUpdateOutput != null ? String(raw.dbUpdateOutput) : null,
|
|
23
|
+
watchdogErrors: Array.isArray(raw.watchdogErrors)
|
|
24
|
+
? raw.watchdogErrors.map(String)
|
|
25
|
+
: [],
|
|
26
|
+
configChangesCount: Number(raw.configChangesCount ?? 0),
|
|
27
|
+
error: raw.error != null ? String(raw.error) : null,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=update-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-result.js","sourceRoot":"","sources":["../../../src/ai/schemas/update-result.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAA4B;IAE5B,mBAAmB;IACnB,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEjD,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpC,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;QACjF,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACxD,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9E,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC/C,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC;QACvD,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;KACpD,CAAC;AACJ,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -10,6 +10,8 @@ import { suppressCommand } from './commands/suppress.js';
|
|
|
10
10
|
import { refreshCommand } from './commands/refresh.js';
|
|
11
11
|
import { updateCommand } from './commands/update.js';
|
|
12
12
|
import { prCommand } from './commands/pr.js';
|
|
13
|
+
import { analyzeCommand } from './commands/analyze.js';
|
|
14
|
+
import { fixCommand } from './commands/fix.js';
|
|
13
15
|
import { loadConfig } from './config.js';
|
|
14
16
|
const __filename = fileURLToPath(import.meta.url);
|
|
15
17
|
const __dirname = dirname(__filename);
|
|
@@ -70,14 +72,16 @@ program
|
|
|
70
72
|
program
|
|
71
73
|
.command('init')
|
|
72
74
|
.description('Connect bolt to a client site (run from site root)')
|
|
73
|
-
.option('--skip-composer', 'Skip Composer
|
|
75
|
+
.option('--skip-composer', 'Skip Composer require', false)
|
|
74
76
|
.option('--skip-module', 'Skip enabling the bolt_inspect module', false)
|
|
75
77
|
.option('--upgrade', 'Update bolt_inspect module only (no config changes)', false)
|
|
78
|
+
.option('--yes', 'Skip confirmation prompts', false)
|
|
76
79
|
.action(async (opts) => {
|
|
77
80
|
await initCommand({
|
|
78
81
|
skipComposer: opts.skipComposer,
|
|
79
82
|
skipModule: opts.skipModule,
|
|
80
83
|
upgrade: opts.upgrade,
|
|
84
|
+
yes: opts.yes,
|
|
81
85
|
});
|
|
82
86
|
});
|
|
83
87
|
program
|
|
@@ -127,6 +131,7 @@ program
|
|
|
127
131
|
.option('--dry-run', 'Show what would be updated without doing it', false)
|
|
128
132
|
.option('--skip-refresh', 'Skip the pre-update refresh step', false)
|
|
129
133
|
.option('--skip-test', 'Skip the baseline test', false)
|
|
134
|
+
.option('--no-ai', 'Disable AI reasoning (use scripted fallback)')
|
|
130
135
|
.option('--yes', 'Skip confirmation prompts', false)
|
|
131
136
|
.action(async (opts) => {
|
|
132
137
|
if (!opts.module && !opts.all) {
|
|
@@ -142,6 +147,7 @@ program
|
|
|
142
147
|
dryRun: opts.dryRun,
|
|
143
148
|
skipRefresh: opts.skipRefresh,
|
|
144
149
|
skipTest: opts.skipTest,
|
|
150
|
+
noAi: opts.ai === false,
|
|
145
151
|
yes: opts.yes,
|
|
146
152
|
boltConfig: config,
|
|
147
153
|
});
|
|
@@ -153,6 +159,8 @@ program
|
|
|
153
159
|
.option('--reviewers <list>', 'Comma-separated GitHub usernames')
|
|
154
160
|
.option('--draft', 'Create as draft PR', false)
|
|
155
161
|
.option('--all', 'Create PRs for all update/* branches', false)
|
|
162
|
+
.option('--no-ai', 'Disable AI-generated PR descriptions')
|
|
163
|
+
.option('--yes', 'Skip confirmation prompts', false)
|
|
156
164
|
.action(async (opts) => {
|
|
157
165
|
const config = loadConfig();
|
|
158
166
|
await prCommand({
|
|
@@ -160,6 +168,60 @@ program
|
|
|
160
168
|
reviewers: opts.reviewers,
|
|
161
169
|
draft: opts.draft,
|
|
162
170
|
all: opts.all,
|
|
171
|
+
noAi: opts.ai === false,
|
|
172
|
+
yes: opts.yes,
|
|
173
|
+
boltConfig: config,
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
program
|
|
177
|
+
.command('analyze')
|
|
178
|
+
.description('AI-powered ticket analysis — investigation plan from Jira ticket or description')
|
|
179
|
+
.option('--ticket <key>', 'Jira ticket key (e.g. PROJ-123)')
|
|
180
|
+
.option('--description <text>', 'Bug description (manual, no Jira needed)')
|
|
181
|
+
.option('--url <url>', 'Site URL (auto-detected from DDEV if omitted)')
|
|
182
|
+
.option('--output <format>', 'Output format: text, json, markdown', 'text')
|
|
183
|
+
.option('--report <path>', 'Write analysis to file')
|
|
184
|
+
.option('--no-ai', 'Disable AI (this command requires AI)')
|
|
185
|
+
.action(async (opts) => {
|
|
186
|
+
const config = loadConfig();
|
|
187
|
+
await analyzeCommand({
|
|
188
|
+
ticket: opts.ticket,
|
|
189
|
+
description: opts.description,
|
|
190
|
+
url: opts.url,
|
|
191
|
+
output: opts.output,
|
|
192
|
+
report: opts.report,
|
|
193
|
+
noAi: opts.ai === false,
|
|
194
|
+
boltConfig: config,
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
program
|
|
198
|
+
.command('fix')
|
|
199
|
+
.description('Autonomous ticket resolution — analyze, fix, test, and PR')
|
|
200
|
+
.option('--ticket <key>', 'Jira ticket key (e.g. PROJ-123)')
|
|
201
|
+
.option('--description <text>', 'Bug description (manual, no Jira needed)')
|
|
202
|
+
.option('--analysis <path>', 'Path to saved bolt analyze report (JSON)')
|
|
203
|
+
.option('--context <text>', 'Additional context (answers to questions from analyze)')
|
|
204
|
+
.option('--dry-run', 'Show planned changes without modifying files', false)
|
|
205
|
+
.option('--skip-test', 'Skip post-fix test run', false)
|
|
206
|
+
.option('--skip-pr', 'Skip PR creation', false)
|
|
207
|
+
.option('--yes', 'Skip confirmation prompts', false)
|
|
208
|
+
.option('--branch <name>', 'Branch name (default: fix/<ticket-key>)')
|
|
209
|
+
.option('--interactive', 'Launch interactive Claude session instead of autonomous fix', false)
|
|
210
|
+
.option('--no-ai', 'Disable AI (this command requires AI)')
|
|
211
|
+
.action(async (opts) => {
|
|
212
|
+
const config = loadConfig();
|
|
213
|
+
await fixCommand({
|
|
214
|
+
ticket: opts.ticket,
|
|
215
|
+
description: opts.description,
|
|
216
|
+
analysis: opts.analysis,
|
|
217
|
+
context: opts.context,
|
|
218
|
+
dryRun: opts.dryRun,
|
|
219
|
+
skipTest: opts.skipTest,
|
|
220
|
+
skipPr: opts.skipPr,
|
|
221
|
+
yes: opts.yes,
|
|
222
|
+
branch: opts.branch,
|
|
223
|
+
interactive: opts.interactive,
|
|
224
|
+
noAi: opts.ai === false,
|
|
163
225
|
boltConfig: config,
|
|
164
226
|
});
|
|
165
227
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,+CAA+C,CAAC;KACtE,MAAM,CAAC,eAAe,EAAE,6CAA6C,EAAE,MAAM,CAAC;KAC9E,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;KACjD,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,sBAAsB,EAAE,mEAAmE,EAAE,OAAO,CAAC;KAC5G,MAAM,CAAC,UAAU,EAAE,+BAA+B,EAAE,KAAK,CAAC;KAC1D,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;KACrE,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,EAAE,UAAU,CAAC;KACtG,MAAM,CAAC,wBAAwB,EAAE,oFAAoF,CAAC;KACtH,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACnE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,IAAI,YAAoB,CAAC;IACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,YAAY,GAAG,MAAM,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAgB;QAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;QACnB,IAAI,EAAE,IAAI,CAAC,IAAqB;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACxF,MAAM,EAAE,YAA4C;QACpD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAkB;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KACxG,CAAC;IAEF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bolt analyze — AI-powered ticket analysis.
|
|
3
|
+
*
|
|
4
|
+
* Reads a Jira ticket (or manual description), examines the site profile,
|
|
5
|
+
* and produces a detailed investigation plan with likely causes, specific
|
|
6
|
+
* commands, and a confidence assessment for autonomous fixing.
|
|
7
|
+
*/
|
|
8
|
+
import type { BoltConfig } from '../config.js';
|
|
9
|
+
export interface AnalyzeOptions {
|
|
10
|
+
/** Jira ticket key (e.g. PROJ-123). */
|
|
11
|
+
ticket?: string;
|
|
12
|
+
/** Manual bug description. */
|
|
13
|
+
description?: string;
|
|
14
|
+
/** Site URL (auto-detected from DDEV if omitted). */
|
|
15
|
+
url?: string;
|
|
16
|
+
/** Output format. */
|
|
17
|
+
output: 'text' | 'json' | 'markdown';
|
|
18
|
+
/** Write report to file. */
|
|
19
|
+
report?: string;
|
|
20
|
+
/** Disable AI (this command requires AI). */
|
|
21
|
+
noAi?: boolean;
|
|
22
|
+
/** Resolved .bolt.yml config. */
|
|
23
|
+
boltConfig?: BoltConfig;
|
|
24
|
+
}
|
|
25
|
+
export declare function analyzeCommand(options: AnalyzeOptions): Promise<void>;
|