@intentsolutions/blueprint 2.2.0 → 2.3.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/dist/cli.js +191 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/github/action.d.ts +27 -0
- package/dist/integrations/github/action.d.ts.map +1 -0
- package/dist/integrations/github/action.js +151 -0
- package/dist/integrations/github/action.js.map +1 -0
- package/dist/integrations/github/client.d.ts +78 -0
- package/dist/integrations/github/client.d.ts.map +1 -0
- package/dist/integrations/github/client.js +279 -0
- package/dist/integrations/github/client.js.map +1 -0
- package/dist/integrations/github/exporter.d.ts +53 -0
- package/dist/integrations/github/exporter.d.ts.map +1 -0
- package/dist/integrations/github/exporter.js +387 -0
- package/dist/integrations/github/exporter.js.map +1 -0
- package/dist/integrations/github/index.d.ts +10 -0
- package/dist/integrations/github/index.d.ts.map +1 -0
- package/dist/integrations/github/index.js +9 -0
- package/dist/integrations/github/index.js.map +1 -0
- package/dist/integrations/github/types.d.ts +70 -0
- package/dist/integrations/github/types.d.ts.map +1 -0
- package/dist/integrations/github/types.js +63 -0
- package/dist/integrations/github/types.js.map +1 -0
- package/dist/mcp/index.js +0 -0
- package/package.json +2 -1
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Exporter
|
|
3
|
+
* Converts Blueprint documents to GitHub artifacts (issues, milestones, templates)
|
|
4
|
+
*/
|
|
5
|
+
import { GitHubClient } from './client.js';
|
|
6
|
+
import { CATEGORY_LABELS, PRIORITY_LABELS, STANDARD_LABELS, } from './types.js';
|
|
7
|
+
export class GitHubExporter {
|
|
8
|
+
client;
|
|
9
|
+
options;
|
|
10
|
+
constructor(config, options = {}) {
|
|
11
|
+
this.client = new GitHubClient(config);
|
|
12
|
+
this.options = {
|
|
13
|
+
createLabels: true,
|
|
14
|
+
createMilestones: true,
|
|
15
|
+
createIssues: true,
|
|
16
|
+
createPRTemplates: true,
|
|
17
|
+
dryRun: false,
|
|
18
|
+
...options,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Export generated documents to GitHub
|
|
23
|
+
*/
|
|
24
|
+
async export(documents, context) {
|
|
25
|
+
const result = {
|
|
26
|
+
success: true,
|
|
27
|
+
created: { issues: 0, milestones: 0, labels: 0, prTemplates: 0 },
|
|
28
|
+
errors: [],
|
|
29
|
+
urls: [],
|
|
30
|
+
};
|
|
31
|
+
// Verify connection
|
|
32
|
+
const verification = await this.client.verify();
|
|
33
|
+
if (!verification.valid) {
|
|
34
|
+
result.success = false;
|
|
35
|
+
result.errors.push(`GitHub connection failed: ${verification.error}`);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
// Create labels
|
|
39
|
+
if (this.options.createLabels && !this.options.dryRun) {
|
|
40
|
+
try {
|
|
41
|
+
const allLabels = this.getAllLabels(context.projectName);
|
|
42
|
+
const { created } = await this.client.ensureLabels(allLabels);
|
|
43
|
+
result.created.labels = created;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
result.errors.push(`Failed to create labels: ${error}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Extract tasks from documents
|
|
50
|
+
const tasks = this.extractTasks(documents);
|
|
51
|
+
const phases = this.extractPhases(documents);
|
|
52
|
+
// Create milestones from release phases
|
|
53
|
+
let milestoneMap = new Map();
|
|
54
|
+
if (this.options.createMilestones && phases.length > 0 && !this.options.dryRun) {
|
|
55
|
+
try {
|
|
56
|
+
const milestones = await this.client.createMilestonesFromPhases(phases);
|
|
57
|
+
for (const m of milestones) {
|
|
58
|
+
milestoneMap.set(m.title, m.number);
|
|
59
|
+
}
|
|
60
|
+
result.created.milestones = milestones.length;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
result.errors.push(`Failed to create milestones: ${error}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Create issues from tasks
|
|
67
|
+
if (this.options.createIssues && tasks.length > 0 && !this.options.dryRun) {
|
|
68
|
+
try {
|
|
69
|
+
const issues = await this.client.createIssuesFromTasks(tasks, {
|
|
70
|
+
labelPrefix: this.options.labelPrefix,
|
|
71
|
+
});
|
|
72
|
+
result.created.issues = issues.length;
|
|
73
|
+
result.urls = issues.map((i) => i.url);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
result.errors.push(`Failed to create issues: ${error}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Create PR templates
|
|
80
|
+
if (this.options.createPRTemplates && !this.options.dryRun) {
|
|
81
|
+
try {
|
|
82
|
+
const templates = this.generatePRTemplates(context);
|
|
83
|
+
const created = await this.client.createPRTemplates(templates);
|
|
84
|
+
result.created.prTemplates = created;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
result.errors.push(`Failed to create PR templates: ${error}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
result.success = result.errors.length === 0;
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get all labels to create
|
|
95
|
+
*/
|
|
96
|
+
getAllLabels(projectName) {
|
|
97
|
+
const labels = [...STANDARD_LABELS];
|
|
98
|
+
// Add category labels
|
|
99
|
+
for (const label of Object.values(CATEGORY_LABELS)) {
|
|
100
|
+
labels.push(label);
|
|
101
|
+
}
|
|
102
|
+
// Add priority labels
|
|
103
|
+
for (const label of Object.values(PRIORITY_LABELS)) {
|
|
104
|
+
labels.push(label);
|
|
105
|
+
}
|
|
106
|
+
// Add project-specific label
|
|
107
|
+
if (this.options.labelPrefix) {
|
|
108
|
+
labels.push({
|
|
109
|
+
name: this.options.labelPrefix,
|
|
110
|
+
color: '7057FF',
|
|
111
|
+
description: `${projectName} project`,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return labels;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Extract tasks from generated documents
|
|
118
|
+
*/
|
|
119
|
+
extractTasks(documents) {
|
|
120
|
+
const tasks = [];
|
|
121
|
+
for (const doc of documents) {
|
|
122
|
+
// Look for task-related documents
|
|
123
|
+
if (doc.name.toLowerCase().includes('task') ||
|
|
124
|
+
doc.name.toLowerCase().includes('user stor')) {
|
|
125
|
+
const extracted = this.parseTasksFromMarkdown(doc.content, doc.category);
|
|
126
|
+
tasks.push(...extracted);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return tasks;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Parse tasks from markdown content
|
|
133
|
+
*/
|
|
134
|
+
parseTasksFromMarkdown(content, category) {
|
|
135
|
+
const tasks = [];
|
|
136
|
+
const lines = content.split('\n');
|
|
137
|
+
let currentTask = null;
|
|
138
|
+
let inAcceptanceCriteria = false;
|
|
139
|
+
for (const line of lines) {
|
|
140
|
+
// Detect task headers (## or ### followed by task-like content)
|
|
141
|
+
const headerMatch = line.match(/^#{2,3}\s+(.+)$/);
|
|
142
|
+
if (headerMatch) {
|
|
143
|
+
// Save previous task
|
|
144
|
+
if (currentTask && currentTask.title) {
|
|
145
|
+
tasks.push({
|
|
146
|
+
title: currentTask.title,
|
|
147
|
+
description: currentTask.description || '',
|
|
148
|
+
priority: currentTask.priority || 'medium',
|
|
149
|
+
category,
|
|
150
|
+
estimatedHours: currentTask.estimatedHours,
|
|
151
|
+
dependencies: currentTask.dependencies,
|
|
152
|
+
acceptanceCriteria: currentTask.acceptanceCriteria,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const title = headerMatch[1].trim();
|
|
156
|
+
// Skip generic headers
|
|
157
|
+
if (!title.match(/^(overview|introduction|summary|description|acceptance|criteria)/i)) {
|
|
158
|
+
currentTask = { title, description: '', acceptanceCriteria: [] };
|
|
159
|
+
inAcceptanceCriteria = false;
|
|
160
|
+
}
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
// Detect acceptance criteria section
|
|
164
|
+
if (line.match(/acceptance\s+criteria/i)) {
|
|
165
|
+
inAcceptanceCriteria = true;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
// Parse checkbox items as acceptance criteria or tasks
|
|
169
|
+
const checkboxMatch = line.match(/^[-*]\s+\[[ x]\]\s+(.+)$/i);
|
|
170
|
+
if (checkboxMatch && currentTask) {
|
|
171
|
+
if (inAcceptanceCriteria) {
|
|
172
|
+
currentTask.acceptanceCriteria = currentTask.acceptanceCriteria || [];
|
|
173
|
+
currentTask.acceptanceCriteria.push(checkboxMatch[1].trim());
|
|
174
|
+
}
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
// Parse priority from content
|
|
178
|
+
if (currentTask && line.match(/priority[:\s]+(critical|high|medium|low)/i)) {
|
|
179
|
+
const match = line.match(/priority[:\s]+(critical|high|medium|low)/i);
|
|
180
|
+
if (match) {
|
|
181
|
+
currentTask.priority = match[1].toLowerCase();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Parse estimate from content
|
|
185
|
+
if (currentTask && line.match(/estimate[d]?[:\s]+(\d+)/i)) {
|
|
186
|
+
const match = line.match(/estimate[d]?[:\s]+(\d+)/i);
|
|
187
|
+
if (match) {
|
|
188
|
+
currentTask.estimatedHours = parseInt(match[1], 10);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Add to description
|
|
192
|
+
if (currentTask && line.trim() && !line.startsWith('#')) {
|
|
193
|
+
currentTask.description = (currentTask.description || '') + line + '\n';
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Don't forget the last task
|
|
197
|
+
if (currentTask && currentTask.title) {
|
|
198
|
+
tasks.push({
|
|
199
|
+
title: currentTask.title,
|
|
200
|
+
description: currentTask.description || '',
|
|
201
|
+
priority: currentTask.priority || 'medium',
|
|
202
|
+
category,
|
|
203
|
+
estimatedHours: currentTask.estimatedHours,
|
|
204
|
+
dependencies: currentTask.dependencies,
|
|
205
|
+
acceptanceCriteria: currentTask.acceptanceCriteria,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return tasks;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Extract release phases from documents
|
|
212
|
+
*/
|
|
213
|
+
extractPhases(documents) {
|
|
214
|
+
const phases = [];
|
|
215
|
+
for (const doc of documents) {
|
|
216
|
+
if (doc.name.toLowerCase().includes('release')) {
|
|
217
|
+
const extracted = this.parsePhasesFromMarkdown(doc.content);
|
|
218
|
+
phases.push(...extracted);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return phases;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Parse release phases from markdown
|
|
225
|
+
*/
|
|
226
|
+
parsePhasesFromMarkdown(content) {
|
|
227
|
+
const phases = [];
|
|
228
|
+
const lines = content.split('\n');
|
|
229
|
+
let currentPhase = null;
|
|
230
|
+
for (const line of lines) {
|
|
231
|
+
// Detect phase headers
|
|
232
|
+
const phaseMatch = line.match(/^#{2,3}\s+(phase\s+\d+|sprint\s+\d+|milestone\s+\d+|v?\d+\.\d+)/i);
|
|
233
|
+
if (phaseMatch) {
|
|
234
|
+
if (currentPhase && currentPhase.name) {
|
|
235
|
+
phases.push({
|
|
236
|
+
name: currentPhase.name,
|
|
237
|
+
description: currentPhase.description || '',
|
|
238
|
+
startDate: currentPhase.startDate,
|
|
239
|
+
endDate: currentPhase.endDate,
|
|
240
|
+
tasks: currentPhase.tasks || [],
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
currentPhase = { name: phaseMatch[1].trim(), description: '', tasks: [] };
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
// Parse date ranges
|
|
247
|
+
if (currentPhase && line.match(/\d{4}-\d{2}-\d{2}/)) {
|
|
248
|
+
const dates = line.match(/(\d{4}-\d{2}-\d{2})/g);
|
|
249
|
+
if (dates && dates.length >= 1) {
|
|
250
|
+
currentPhase.startDate = dates[0];
|
|
251
|
+
if (dates.length >= 2) {
|
|
252
|
+
currentPhase.endDate = dates[1];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Add description
|
|
257
|
+
if (currentPhase && line.trim() && !line.startsWith('#')) {
|
|
258
|
+
currentPhase.description = (currentPhase.description || '') + line + '\n';
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (currentPhase && currentPhase.name) {
|
|
262
|
+
phases.push({
|
|
263
|
+
name: currentPhase.name,
|
|
264
|
+
description: currentPhase.description || '',
|
|
265
|
+
startDate: currentPhase.startDate,
|
|
266
|
+
endDate: currentPhase.endDate,
|
|
267
|
+
tasks: currentPhase.tasks || [],
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
return phases;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Generate PR templates based on project context
|
|
274
|
+
*/
|
|
275
|
+
generatePRTemplates(context) {
|
|
276
|
+
const templates = [];
|
|
277
|
+
// Default PR template
|
|
278
|
+
templates.push({
|
|
279
|
+
name: 'default',
|
|
280
|
+
content: `## Summary
|
|
281
|
+
<!-- Describe your changes in detail -->
|
|
282
|
+
|
|
283
|
+
## Related Issue
|
|
284
|
+
<!-- Link to the issue this PR addresses -->
|
|
285
|
+
Closes #
|
|
286
|
+
|
|
287
|
+
## Type of Change
|
|
288
|
+
- [ ] Bug fix (non-breaking change that fixes an issue)
|
|
289
|
+
- [ ] New feature (non-breaking change that adds functionality)
|
|
290
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
|
291
|
+
- [ ] Documentation update
|
|
292
|
+
|
|
293
|
+
## Testing
|
|
294
|
+
<!-- Describe how you tested your changes -->
|
|
295
|
+
- [ ] Tests pass locally
|
|
296
|
+
- [ ] New tests added for new functionality
|
|
297
|
+
|
|
298
|
+
## Checklist
|
|
299
|
+
- [ ] My code follows the project's style guidelines
|
|
300
|
+
- [ ] I have performed a self-review of my code
|
|
301
|
+
- [ ] I have commented my code where necessary
|
|
302
|
+
- [ ] I have updated the documentation if needed
|
|
303
|
+
- [ ] My changes generate no new warnings
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
*Generated by [Intent Blueprint](https://github.com/intent-solutions-io/intent-blueprint-docs) for ${context.projectName}*
|
|
307
|
+
`,
|
|
308
|
+
});
|
|
309
|
+
// Feature PR template
|
|
310
|
+
templates.push({
|
|
311
|
+
name: 'feature',
|
|
312
|
+
content: `## Feature: [Feature Name]
|
|
313
|
+
|
|
314
|
+
### Summary
|
|
315
|
+
<!-- Brief description of the feature -->
|
|
316
|
+
|
|
317
|
+
### User Story
|
|
318
|
+
As a [type of user], I want [goal] so that [benefit].
|
|
319
|
+
|
|
320
|
+
### Implementation Details
|
|
321
|
+
<!-- Technical approach taken -->
|
|
322
|
+
|
|
323
|
+
### Screenshots/Recordings
|
|
324
|
+
<!-- If applicable, add screenshots or recordings -->
|
|
325
|
+
|
|
326
|
+
### Testing
|
|
327
|
+
- [ ] Unit tests added
|
|
328
|
+
- [ ] Integration tests added
|
|
329
|
+
- [ ] Manual testing completed
|
|
330
|
+
|
|
331
|
+
### Documentation
|
|
332
|
+
- [ ] README updated (if needed)
|
|
333
|
+
- [ ] API docs updated (if applicable)
|
|
334
|
+
- [ ] User guide updated (if applicable)
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
*Generated by Intent Blueprint*
|
|
338
|
+
`,
|
|
339
|
+
});
|
|
340
|
+
// Bug fix PR template
|
|
341
|
+
templates.push({
|
|
342
|
+
name: 'bugfix',
|
|
343
|
+
content: `## Bug Fix: [Brief Description]
|
|
344
|
+
|
|
345
|
+
### Issue
|
|
346
|
+
Fixes #[issue number]
|
|
347
|
+
|
|
348
|
+
### Root Cause
|
|
349
|
+
<!-- What caused the bug? -->
|
|
350
|
+
|
|
351
|
+
### Solution
|
|
352
|
+
<!-- How did you fix it? -->
|
|
353
|
+
|
|
354
|
+
### Testing
|
|
355
|
+
- [ ] Regression tests added
|
|
356
|
+
- [ ] Edge cases tested
|
|
357
|
+
- [ ] Original issue no longer reproducible
|
|
358
|
+
|
|
359
|
+
### Impact
|
|
360
|
+
<!-- What areas might be affected by this change? -->
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
*Generated by Intent Blueprint*
|
|
364
|
+
`,
|
|
365
|
+
});
|
|
366
|
+
return templates;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Preview what would be exported (dry run)
|
|
370
|
+
*/
|
|
371
|
+
async preview(documents, context) {
|
|
372
|
+
return {
|
|
373
|
+
labels: this.getAllLabels(context.projectName),
|
|
374
|
+
tasks: this.extractTasks(documents),
|
|
375
|
+
phases: this.extractPhases(documents),
|
|
376
|
+
prTemplates: this.generatePRTemplates(context).map((t) => t.name),
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Quick export function
|
|
382
|
+
*/
|
|
383
|
+
export async function exportToGitHub(config, documents, context, options) {
|
|
384
|
+
const exporter = new GitHubExporter(config, options);
|
|
385
|
+
return exporter.export(documents, context);
|
|
386
|
+
}
|
|
387
|
+
//# sourceMappingURL=exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../../src/integrations/github/exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Integration
|
|
3
|
+
* Export Blueprint documents to GitHub (issues, milestones, PR templates)
|
|
4
|
+
*/
|
|
5
|
+
export { GitHubClient } from './client.js';
|
|
6
|
+
export { GitHubExporter, exportToGitHub } from './exporter.js';
|
|
7
|
+
export { generateDocGenAction, generatePRSyncAction, generateAllActions, type ActionConfig, } from './action.js';
|
|
8
|
+
export type { GitHubConfig, GitHubLabel, GitHubMilestone, GitHubIssue, GitHubPRTemplate, TaskBreakdown, ReleasePhase, ExportResult, ExportOptions, } from './types.js';
|
|
9
|
+
export { CATEGORY_LABELS, PRIORITY_LABELS, STANDARD_LABELS, } from './types.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/github/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Integration
|
|
3
|
+
* Export Blueprint documents to GitHub (issues, milestones, PR templates)
|
|
4
|
+
*/
|
|
5
|
+
export { GitHubClient } from './client.js';
|
|
6
|
+
export { GitHubExporter, exportToGitHub } from './exporter.js';
|
|
7
|
+
export { generateDocGenAction, generatePRSyncAction, generateAllActions, } from './action.js';
|
|
8
|
+
export { CATEGORY_LABELS, PRIORITY_LABELS, STANDARD_LABELS, } from './types.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/github/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AAYrB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Integration Types
|
|
3
|
+
*/
|
|
4
|
+
export interface GitHubConfig {
|
|
5
|
+
token: string;
|
|
6
|
+
owner: string;
|
|
7
|
+
repo: string;
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface GitHubLabel {
|
|
11
|
+
name: string;
|
|
12
|
+
color: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface GitHubMilestone {
|
|
16
|
+
title: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
dueOn?: string;
|
|
19
|
+
state?: 'open' | 'closed';
|
|
20
|
+
}
|
|
21
|
+
export interface GitHubIssue {
|
|
22
|
+
title: string;
|
|
23
|
+
body: string;
|
|
24
|
+
labels?: string[];
|
|
25
|
+
milestone?: number;
|
|
26
|
+
assignees?: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface GitHubPRTemplate {
|
|
29
|
+
name: string;
|
|
30
|
+
content: string;
|
|
31
|
+
}
|
|
32
|
+
export interface TaskBreakdown {
|
|
33
|
+
title: string;
|
|
34
|
+
description: string;
|
|
35
|
+
priority: 'critical' | 'high' | 'medium' | 'low';
|
|
36
|
+
category: string;
|
|
37
|
+
estimatedHours?: number;
|
|
38
|
+
dependencies?: string[];
|
|
39
|
+
acceptanceCriteria?: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface ReleasePhase {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
startDate?: string;
|
|
45
|
+
endDate?: string;
|
|
46
|
+
tasks: string[];
|
|
47
|
+
}
|
|
48
|
+
export interface ExportResult {
|
|
49
|
+
success: boolean;
|
|
50
|
+
created: {
|
|
51
|
+
issues: number;
|
|
52
|
+
milestones: number;
|
|
53
|
+
labels: number;
|
|
54
|
+
prTemplates: number;
|
|
55
|
+
};
|
|
56
|
+
errors: string[];
|
|
57
|
+
urls: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface ExportOptions {
|
|
60
|
+
createLabels?: boolean;
|
|
61
|
+
createMilestones?: boolean;
|
|
62
|
+
createIssues?: boolean;
|
|
63
|
+
createPRTemplates?: boolean;
|
|
64
|
+
dryRun?: boolean;
|
|
65
|
+
labelPrefix?: string;
|
|
66
|
+
}
|
|
67
|
+
export declare const CATEGORY_LABELS: Record<string, GitHubLabel>;
|
|
68
|
+
export declare const PRIORITY_LABELS: Record<string, GitHubLabel>;
|
|
69
|
+
export declare const STANDARD_LABELS: GitHubLabel[];
|
|
70
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/github/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA0BvD,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAqBvD,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,WAAW,EAMxC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Integration Types
|
|
3
|
+
*/
|
|
4
|
+
// Document category to label mapping
|
|
5
|
+
export const CATEGORY_LABELS = {
|
|
6
|
+
'Product & Strategy': {
|
|
7
|
+
name: 'docs:product',
|
|
8
|
+
color: '0052CC',
|
|
9
|
+
description: 'Product and strategy documentation',
|
|
10
|
+
},
|
|
11
|
+
'Technical Architecture': {
|
|
12
|
+
name: 'docs:architecture',
|
|
13
|
+
color: '5319E7',
|
|
14
|
+
description: 'Technical architecture documentation',
|
|
15
|
+
},
|
|
16
|
+
'User Experience': {
|
|
17
|
+
name: 'docs:ux',
|
|
18
|
+
color: 'D93F0B',
|
|
19
|
+
description: 'User experience documentation',
|
|
20
|
+
},
|
|
21
|
+
'Development Workflow': {
|
|
22
|
+
name: 'docs:dev',
|
|
23
|
+
color: '0E8A16',
|
|
24
|
+
description: 'Development workflow documentation',
|
|
25
|
+
},
|
|
26
|
+
'Quality Assurance': {
|
|
27
|
+
name: 'docs:qa',
|
|
28
|
+
color: 'FBCA04',
|
|
29
|
+
description: 'Quality assurance documentation',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
// Priority to label mapping
|
|
33
|
+
export const PRIORITY_LABELS = {
|
|
34
|
+
critical: {
|
|
35
|
+
name: 'priority:critical',
|
|
36
|
+
color: 'B60205',
|
|
37
|
+
description: 'Critical priority - must be done immediately',
|
|
38
|
+
},
|
|
39
|
+
high: {
|
|
40
|
+
name: 'priority:high',
|
|
41
|
+
color: 'D93F0B',
|
|
42
|
+
description: 'High priority - should be done soon',
|
|
43
|
+
},
|
|
44
|
+
medium: {
|
|
45
|
+
name: 'priority:medium',
|
|
46
|
+
color: 'FBCA04',
|
|
47
|
+
description: 'Medium priority - normal importance',
|
|
48
|
+
},
|
|
49
|
+
low: {
|
|
50
|
+
name: 'priority:low',
|
|
51
|
+
color: 'C2E0C6',
|
|
52
|
+
description: 'Low priority - can wait',
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
// Standard labels for Blueprint
|
|
56
|
+
export const STANDARD_LABELS = [
|
|
57
|
+
{ name: 'blueprint', color: '7057FF', description: 'Generated by Intent Blueprint' },
|
|
58
|
+
{ name: 'documentation', color: '0075CA', description: 'Documentation related' },
|
|
59
|
+
{ name: 'task', color: '1D76DB', description: 'Implementation task' },
|
|
60
|
+
{ name: 'epic', color: '3E4B9E', description: 'Epic / large feature' },
|
|
61
|
+
{ name: 'spike', color: 'D4C5F9', description: 'Research / investigation' },
|
|
62
|
+
];
|
|
63
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/github/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0EH,qCAAqC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,oBAAoB,EAAE;QACpB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,oCAAoC;KAClD;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,sCAAsC;KACpD;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,+BAA+B;KAC7C;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,oCAAoC;KAClD;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,iCAAiC;KAC/C;CACF,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,QAAQ,EAAE;QACR,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,8CAA8C;KAC5D;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,qCAAqC;KACnD;IACD,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,qCAAqC;KACnD;IACD,GAAG,EAAE;QACH,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,yBAAyB;KACvC;CACF,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;IACpF,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAChF,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACtE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;CAC5E,CAAC"}
|
package/dist/mcp/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentsolutions/blueprint",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Enterprise AI documentation generator - CLI, MCP Server, and programmatic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@modelcontextprotocol/sdk": "^0.5.0",
|
|
53
|
+
"@octokit/rest": "^20.0.0",
|
|
53
54
|
"chalk": "^5.3.0",
|
|
54
55
|
"commander": "^12.0.0",
|
|
55
56
|
"handlebars": "^4.7.8",
|