@intentsolutions/blueprint 2.2.0 → 2.4.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 (44) hide show
  1. package/dist/cli.js +360 -6
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +4 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/integrations/github/action.d.ts +27 -0
  8. package/dist/integrations/github/action.d.ts.map +1 -0
  9. package/dist/integrations/github/action.js +151 -0
  10. package/dist/integrations/github/action.js.map +1 -0
  11. package/dist/integrations/github/client.d.ts +78 -0
  12. package/dist/integrations/github/client.d.ts.map +1 -0
  13. package/dist/integrations/github/client.js +279 -0
  14. package/dist/integrations/github/client.js.map +1 -0
  15. package/dist/integrations/github/exporter.d.ts +53 -0
  16. package/dist/integrations/github/exporter.d.ts.map +1 -0
  17. package/dist/integrations/github/exporter.js +387 -0
  18. package/dist/integrations/github/exporter.js.map +1 -0
  19. package/dist/integrations/github/index.d.ts +10 -0
  20. package/dist/integrations/github/index.d.ts.map +1 -0
  21. package/dist/integrations/github/index.js +9 -0
  22. package/dist/integrations/github/index.js.map +1 -0
  23. package/dist/integrations/github/types.d.ts +70 -0
  24. package/dist/integrations/github/types.d.ts.map +1 -0
  25. package/dist/integrations/github/types.js +63 -0
  26. package/dist/integrations/github/types.js.map +1 -0
  27. package/dist/integrations/linear/client.d.ts +94 -0
  28. package/dist/integrations/linear/client.d.ts.map +1 -0
  29. package/dist/integrations/linear/client.js +398 -0
  30. package/dist/integrations/linear/client.js.map +1 -0
  31. package/dist/integrations/linear/exporter.d.ts +80 -0
  32. package/dist/integrations/linear/exporter.d.ts.map +1 -0
  33. package/dist/integrations/linear/exporter.js +438 -0
  34. package/dist/integrations/linear/exporter.js.map +1 -0
  35. package/dist/integrations/linear/index.d.ts +9 -0
  36. package/dist/integrations/linear/index.d.ts.map +1 -0
  37. package/dist/integrations/linear/index.js +8 -0
  38. package/dist/integrations/linear/index.js.map +1 -0
  39. package/dist/integrations/linear/types.d.ts +137 -0
  40. package/dist/integrations/linear/types.d.ts.map +1 -0
  41. package/dist/integrations/linear/types.js +40 -0
  42. package/dist/integrations/linear/types.js.map +1 -0
  43. package/dist/mcp/index.js +0 -0
  44. 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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Linear API Client
3
+ * GraphQL client for Linear API
4
+ */
5
+ import type { LinearConfig, LinearTeam, LinearProject, LinearCycle, LinearLabel, LinearIssue, LinearWorkflowState, CreateIssueInput, CreateProjectInput, CreateCycleInput } from './types.js';
6
+ export declare class LinearClient {
7
+ private apiKey;
8
+ private teamId;
9
+ constructor(config: LinearConfig);
10
+ /**
11
+ * Execute a GraphQL query
12
+ */
13
+ private query;
14
+ /**
15
+ * Verify API key and get user info
16
+ */
17
+ verify(): Promise<{
18
+ id: string;
19
+ name: string;
20
+ email: string;
21
+ }>;
22
+ /**
23
+ * Get team by ID
24
+ */
25
+ getTeam(teamId?: string): Promise<LinearTeam>;
26
+ /**
27
+ * List all teams
28
+ */
29
+ listTeams(): Promise<LinearTeam[]>;
30
+ /**
31
+ * Get workflow states for a team
32
+ */
33
+ getWorkflowStates(teamId?: string): Promise<LinearWorkflowState[]>;
34
+ /**
35
+ * Get backlog state for a team
36
+ */
37
+ getBacklogState(teamId?: string): Promise<LinearWorkflowState | undefined>;
38
+ /**
39
+ * Get labels for a team
40
+ */
41
+ getLabels(teamId?: string): Promise<LinearLabel[]>;
42
+ /**
43
+ * Create a label
44
+ */
45
+ createLabel(name: string, color: string, teamId?: string): Promise<LinearLabel>;
46
+ /**
47
+ * Ensure labels exist, create if missing
48
+ */
49
+ ensureLabels(labels: Array<{
50
+ name: string;
51
+ color: string;
52
+ }>, teamId?: string): Promise<LinearLabel[]>;
53
+ /**
54
+ * Create a project
55
+ */
56
+ createProject(input: CreateProjectInput): Promise<LinearProject>;
57
+ /**
58
+ * List projects for a team
59
+ */
60
+ listProjects(teamId?: string): Promise<LinearProject[]>;
61
+ /**
62
+ * Create a cycle
63
+ */
64
+ createCycle(input: CreateCycleInput): Promise<LinearCycle>;
65
+ /**
66
+ * List cycles for a team
67
+ */
68
+ listCycles(teamId?: string): Promise<LinearCycle[]>;
69
+ /**
70
+ * Create an issue
71
+ */
72
+ createIssue(input: CreateIssueInput): Promise<LinearIssue>;
73
+ /**
74
+ * Create multiple issues from a task breakdown
75
+ */
76
+ createIssuesFromTasks(tasks: Array<{
77
+ title: string;
78
+ description?: string;
79
+ priority?: number;
80
+ estimate?: number;
81
+ labels?: string[];
82
+ subtasks?: Array<{
83
+ title: string;
84
+ description?: string;
85
+ priority?: number;
86
+ estimate?: number;
87
+ }>;
88
+ }>, options?: {
89
+ projectId?: string;
90
+ cycleId?: string;
91
+ labelIds?: string[];
92
+ }): Promise<LinearIssue[]>;
93
+ }
94
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/integrations/linear/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAIpB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,YAAY;IAKhC;;OAEG;YACW,KAAK;IAuBnB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAapE;;OAEG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAcnD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAexC;;OAEG;IACG,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAkBxE;;OAEG;IACG,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAKhF;;OAEG;IACG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkBxD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBrF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiB3G;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IA8BtE;;OAEG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmB7D;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAgChE;;OAEG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoBzD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkFhE;;OAEG;IACG,qBAAqB,CACzB,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjG,CAAC,EACF,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,GACL,OAAO,CAAC,WAAW,EAAE,CAAC;CA0C1B"}