@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.
Files changed (84) hide show
  1. package/README.md +93 -14
  2. package/dist/ai/agent.d.ts +66 -0
  3. package/dist/ai/agent.js +232 -0
  4. package/dist/ai/agent.js.map +1 -0
  5. package/dist/ai/knowledge/composer.md +90 -0
  6. package/dist/ai/knowledge/config-safety.md +46 -0
  7. package/dist/ai/knowledge/ddev-operations.md +41 -0
  8. package/dist/ai/knowledge/drupal-internals.md +52 -0
  9. package/dist/ai/knowledge/drupal-updates.md +90 -0
  10. package/dist/ai/knowledge/knowledge/composer.md +90 -0
  11. package/dist/ai/knowledge/knowledge/config-safety.md +46 -0
  12. package/dist/ai/knowledge/knowledge/ddev-operations.md +41 -0
  13. package/dist/ai/knowledge/knowledge/drupal-debugging.md +89 -0
  14. package/dist/ai/knowledge/knowledge/drupal-internals.md +52 -0
  15. package/dist/ai/knowledge/knowledge/drupal-updates.md +90 -0
  16. package/dist/ai/prompts/analyze-ticket.d.ts +30 -0
  17. package/dist/ai/prompts/analyze-ticket.js +116 -0
  18. package/dist/ai/prompts/analyze-ticket.js.map +1 -0
  19. package/dist/ai/prompts/fix-ticket.d.ts +27 -0
  20. package/dist/ai/prompts/fix-ticket.js +129 -0
  21. package/dist/ai/prompts/fix-ticket.js.map +1 -0
  22. package/dist/ai/prompts/pr-description.d.ts +19 -0
  23. package/dist/ai/prompts/pr-description.js +56 -0
  24. package/dist/ai/prompts/pr-description.js.map +1 -0
  25. package/dist/ai/prompts/update-package.d.ts +25 -0
  26. package/dist/ai/prompts/update-package.js +87 -0
  27. package/dist/ai/prompts/update-package.js.map +1 -0
  28. package/dist/ai/prompts/update-plan.d.ts +20 -0
  29. package/dist/ai/prompts/update-plan.js +66 -0
  30. package/dist/ai/prompts/update-plan.js.map +1 -0
  31. package/dist/ai/schemas/analysis-result.d.ts +44 -0
  32. package/dist/ai/schemas/analysis-result.js +101 -0
  33. package/dist/ai/schemas/analysis-result.js.map +1 -0
  34. package/dist/ai/schemas/fix-result.d.ts +34 -0
  35. package/dist/ai/schemas/fix-result.js +55 -0
  36. package/dist/ai/schemas/fix-result.js.map +1 -0
  37. package/dist/ai/schemas/pr-body.d.ts +12 -0
  38. package/dist/ai/schemas/pr-body.js +18 -0
  39. package/dist/ai/schemas/pr-body.js.map +1 -0
  40. package/dist/ai/schemas/update-plan.d.ts +20 -0
  41. package/dist/ai/schemas/update-plan.js +33 -0
  42. package/dist/ai/schemas/update-plan.js.map +1 -0
  43. package/dist/ai/schemas/update-result.d.ts +22 -0
  44. package/dist/ai/schemas/update-result.js +30 -0
  45. package/dist/ai/schemas/update-result.js.map +1 -0
  46. package/dist/cli.js +63 -1
  47. package/dist/cli.js.map +1 -1
  48. package/dist/commands/analyze.d.ts +25 -0
  49. package/dist/commands/analyze.js +377 -0
  50. package/dist/commands/analyze.js.map +1 -0
  51. package/dist/commands/doctor.js +61 -13
  52. package/dist/commands/doctor.js.map +1 -1
  53. package/dist/commands/fix.d.ts +35 -0
  54. package/dist/commands/fix.js +480 -0
  55. package/dist/commands/fix.js.map +1 -0
  56. package/dist/commands/init.d.ts +3 -2
  57. package/dist/commands/init.js +117 -160
  58. package/dist/commands/init.js.map +1 -1
  59. package/dist/commands/pr.d.ts +4 -0
  60. package/dist/commands/pr.js +121 -3
  61. package/dist/commands/pr.js.map +1 -1
  62. package/dist/commands/refresh.js +10 -57
  63. package/dist/commands/refresh.js.map +1 -1
  64. package/dist/commands/update.d.ts +2 -0
  65. package/dist/commands/update.js +463 -64
  66. package/dist/commands/update.js.map +1 -1
  67. package/dist/config.d.ts +16 -0
  68. package/dist/config.js +57 -0
  69. package/dist/config.js.map +1 -1
  70. package/dist/runner.js +12 -0
  71. package/dist/runner.js.map +1 -1
  72. package/dist/safety.d.ts +63 -0
  73. package/dist/safety.js +192 -0
  74. package/dist/safety.js.map +1 -0
  75. package/dist/types.d.ts +2 -0
  76. package/package.json +2 -3
  77. package/modules/bolt_inspect/bolt_inspect.info.yml +0 -6
  78. package/modules/bolt_inspect/bolt_inspect.services.yml +0 -22
  79. package/modules/bolt_inspect/composer.json +0 -16
  80. package/modules/bolt_inspect/drush.services.yml +0 -10
  81. package/modules/bolt_inspect/src/Drush/Commands/BoltInspectCommands.php +0 -203
  82. package/modules/bolt_inspect/src/Service/ContentGenerator.php +0 -586
  83. package/modules/bolt_inspect/src/Service/SiteProfiler.php +0 -362
  84. 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 path repo and require', false)
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":"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"}
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>;