@intentsolutions/blueprint 2.5.0 โ†’ 2.6.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.
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Notion Exporter
3
+ * High-level export operations for Blueprint documents to Notion
4
+ */
5
+ import { NotionClient } from './client.js';
6
+ import { CATEGORY_ICONS, CATEGORY_OPTIONS, STATUS_OPTIONS } from './types.js';
7
+ export class NotionExporter {
8
+ client;
9
+ parentPageId;
10
+ databaseId;
11
+ constructor(config) {
12
+ this.client = new NotionClient(config);
13
+ this.parentPageId = config.parentPageId;
14
+ this.databaseId = config.databaseId;
15
+ }
16
+ /**
17
+ * Export Blueprint documents to Notion
18
+ */
19
+ async export(documents, options = {}) {
20
+ const result = {
21
+ pages: [],
22
+ errors: [],
23
+ };
24
+ // Dry run - just preview
25
+ if (options.dryRun) {
26
+ return this.preview(documents, options);
27
+ }
28
+ try {
29
+ // Verify connection
30
+ await this.client.verify();
31
+ let targetDatabaseId = this.databaseId;
32
+ // Create database if requested
33
+ if (options.createDatabase && options.parentPageId) {
34
+ const database = await this.createDocumentsDatabase(options.parentPageId, options.databaseTitle || 'Blueprint Documents', {
35
+ addCategory: options.addCategory !== false,
36
+ addStatus: options.addStatus !== false,
37
+ });
38
+ result.database = database;
39
+ targetDatabaseId = database.id;
40
+ }
41
+ // Create pages for each document
42
+ for (const doc of documents) {
43
+ try {
44
+ const page = await this.createDocumentPage(doc, {
45
+ databaseId: targetDatabaseId,
46
+ parentPageId: options.parentPageId,
47
+ convertContent: options.convertContent !== false,
48
+ addCategory: options.addCategory !== false,
49
+ });
50
+ result.pages.push(page);
51
+ }
52
+ catch (error) {
53
+ result.errors.push(`Failed to create page "${doc.name}": ${error}`);
54
+ }
55
+ }
56
+ }
57
+ catch (error) {
58
+ result.errors.push(error instanceof Error ? error.message : String(error));
59
+ }
60
+ return result;
61
+ }
62
+ /**
63
+ * Preview what would be created (dry run)
64
+ */
65
+ async preview(documents, options = {}) {
66
+ const result = {
67
+ pages: [],
68
+ errors: [],
69
+ };
70
+ // Preview database
71
+ if (options.createDatabase) {
72
+ result.database = {
73
+ id: 'preview-database',
74
+ object: 'database',
75
+ created_time: new Date().toISOString(),
76
+ last_edited_time: new Date().toISOString(),
77
+ title: [{ type: 'text', text: { content: options.databaseTitle || 'Blueprint Documents' } }],
78
+ properties: {
79
+ Name: { id: 'title', name: 'Name', type: 'title' },
80
+ Category: { id: 'category', name: 'Category', type: 'select' },
81
+ Status: { id: 'status', name: 'Status', type: 'status' },
82
+ },
83
+ parent: { type: 'page_id', page_id: options.parentPageId || 'preview-parent' },
84
+ url: '#',
85
+ archived: false,
86
+ };
87
+ }
88
+ // Preview pages
89
+ for (let i = 0; i < documents.length; i++) {
90
+ const doc = documents[i];
91
+ const category = this.detectCategory(doc.name, doc.content);
92
+ const icon = CATEGORY_ICONS[category] || CATEGORY_ICONS.default;
93
+ result.pages.push({
94
+ id: `preview-page-${i}`,
95
+ object: 'page',
96
+ created_time: new Date().toISOString(),
97
+ last_edited_time: new Date().toISOString(),
98
+ parent: options.createDatabase
99
+ ? { type: 'database_id', database_id: 'preview-database' }
100
+ : { type: 'page_id', page_id: options.parentPageId || 'preview-parent' },
101
+ properties: {
102
+ Name: { type: 'title', title: [{ type: 'text', text: { content: doc.name } }] },
103
+ Category: { type: 'select', select: { name: this.formatCategory(category) } },
104
+ Status: { type: 'status', status: { name: 'Draft' } },
105
+ },
106
+ url: '#',
107
+ archived: false,
108
+ });
109
+ }
110
+ return result;
111
+ }
112
+ /**
113
+ * Create a database for documents
114
+ */
115
+ async createDocumentsDatabase(parentPageId, title, options) {
116
+ const properties = {
117
+ Name: { name: 'Name', type: 'title' },
118
+ };
119
+ if (options.addCategory) {
120
+ properties.Category = {
121
+ name: 'Category',
122
+ type: 'select',
123
+ select: {
124
+ options: CATEGORY_OPTIONS,
125
+ },
126
+ };
127
+ }
128
+ if (options.addStatus) {
129
+ properties.Status = {
130
+ name: 'Status',
131
+ type: 'status',
132
+ status: {
133
+ options: STATUS_OPTIONS,
134
+ },
135
+ };
136
+ }
137
+ // Add description property
138
+ properties.Description = {
139
+ name: 'Description',
140
+ type: 'rich_text',
141
+ };
142
+ // Add created date
143
+ properties['Created'] = {
144
+ name: 'Created',
145
+ type: 'created_time',
146
+ };
147
+ // Add last edited date
148
+ properties['Last Edited'] = {
149
+ name: 'Last Edited',
150
+ type: 'last_edited_time',
151
+ };
152
+ return this.client.createDatabase({
153
+ parentPageId,
154
+ title,
155
+ properties,
156
+ icon: { type: 'emoji', emoji: '๐Ÿ“š' },
157
+ });
158
+ }
159
+ /**
160
+ * Create a page for a document
161
+ */
162
+ async createDocumentPage(doc, options) {
163
+ const category = doc.category || this.detectCategory(doc.name, doc.content);
164
+ const icon = CATEGORY_ICONS[category] || CATEGORY_ICONS.default;
165
+ const description = this.extractDescription(doc.content);
166
+ // Build properties based on whether we're adding to a database or page
167
+ let properties;
168
+ if (options.databaseId) {
169
+ properties = {
170
+ Name: { title: [this.client.createRichText(doc.name)] },
171
+ };
172
+ if (options.addCategory) {
173
+ properties.Category = {
174
+ select: { name: this.formatCategory(category) },
175
+ };
176
+ }
177
+ // Add description
178
+ if (description) {
179
+ properties.Description = {
180
+ rich_text: [this.client.createRichText(description)],
181
+ };
182
+ }
183
+ }
184
+ else {
185
+ properties = {
186
+ title: { title: [this.client.createRichText(doc.name)] },
187
+ };
188
+ }
189
+ // Convert content to blocks
190
+ let content = [];
191
+ if (options.convertContent !== false) {
192
+ // Add table of contents at the start
193
+ content.push(this.client.createTableOfContents());
194
+ content.push(this.client.createDivider());
195
+ // Convert markdown content
196
+ const contentBlocks = this.client.markdownToBlocks(doc.content);
197
+ content = content.concat(contentBlocks);
198
+ }
199
+ return this.client.createPage({
200
+ databaseId: options.databaseId,
201
+ parentPageId: options.parentPageId,
202
+ title: doc.name,
203
+ properties: properties,
204
+ content: content.length > 0 ? content : undefined,
205
+ icon: { type: 'emoji', emoji: icon },
206
+ });
207
+ }
208
+ /**
209
+ * Detect category from document name and content
210
+ */
211
+ detectCategory(name, content) {
212
+ const lower = (name + ' ' + content.slice(0, 500)).toLowerCase();
213
+ if (lower.includes('prd') || lower.includes('product requirement'))
214
+ return 'prd';
215
+ if (lower.includes('architecture') || lower.includes('system design'))
216
+ return 'architecture';
217
+ if (lower.includes('technical spec') || lower.includes('tech spec'))
218
+ return 'technical-spec';
219
+ if (lower.includes('api') || lower.includes('endpoint'))
220
+ return 'api-design';
221
+ if (lower.includes('security') || lower.includes('authentication'))
222
+ return 'security';
223
+ if (lower.includes('infrastructure') || lower.includes('deployment'))
224
+ return 'infrastructure';
225
+ if (lower.includes('test') || lower.includes('qa'))
226
+ return 'testing';
227
+ if (lower.includes('research') || lower.includes('analysis'))
228
+ return 'research';
229
+ if (lower.includes('design') || lower.includes('ui') || lower.includes('ux'))
230
+ return 'design';
231
+ return 'documentation';
232
+ }
233
+ /**
234
+ * Format category for display
235
+ */
236
+ formatCategory(category) {
237
+ const mapping = {
238
+ 'prd': 'PRD',
239
+ 'architecture': 'Architecture',
240
+ 'technical-spec': 'Technical Spec',
241
+ 'api-design': 'API Design',
242
+ 'security': 'Security',
243
+ 'infrastructure': 'Infrastructure',
244
+ 'testing': 'Testing',
245
+ 'documentation': 'Documentation',
246
+ 'research': 'Research',
247
+ 'design': 'Design',
248
+ };
249
+ return mapping[category] || 'Documentation';
250
+ }
251
+ /**
252
+ * Extract description from content
253
+ */
254
+ extractDescription(content) {
255
+ const lines = content.split('\n');
256
+ // Skip title lines and find first substantial paragraph
257
+ for (const line of lines) {
258
+ const trimmed = line.trim();
259
+ if (trimmed.startsWith('#'))
260
+ continue;
261
+ if (!trimmed)
262
+ continue;
263
+ if (trimmed.length < 20)
264
+ continue;
265
+ // Return first 200 characters of the paragraph
266
+ return trimmed.slice(0, 200) + (trimmed.length > 200 ? '...' : '');
267
+ }
268
+ return '';
269
+ }
270
+ }
271
+ /**
272
+ * Export documents to Notion (convenience function)
273
+ */
274
+ export async function exportToNotion(config, documents, options = {}) {
275
+ const exporter = new NotionExporter(config);
276
+ return exporter.export(documents, options);
277
+ }
278
+ //# sourceMappingURL=exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../../src/integrations/notion/exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Notion Integration
3
+ * Export Blueprint documents to Notion (pages, databases, blocks)
4
+ */
5
+ export { NotionClient } from './client.js';
6
+ export { NotionExporter, exportToNotion } from './exporter.js';
7
+ export type { NotionConfig, NotionUser, NotionPage, NotionDatabase, NotionParent, NotionRichText, NotionProperty, NotionPropertySchema, NotionBlock, NotionParagraphBlock, NotionHeadingBlock, NotionBulletedListBlock, NotionNumberedListBlock, NotionToDoBlock, NotionToggleBlock, NotionCodeBlock, NotionQuoteBlock, NotionCalloutBlock, NotionDividerBlock, NotionTableOfContentsBlock, CreatePageInput, CreateDatabaseInput, NotionDocumentPage, NotionExportResult, NotionExportOptions, } from './types.js';
8
+ export { CATEGORY_ICONS, STATUS_OPTIONS, CATEGORY_OPTIONS, } from './types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/notion/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,YAAY,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Notion Integration
3
+ * Export Blueprint documents to Notion (pages, databases, blocks)
4
+ */
5
+ export { NotionClient } from './client.js';
6
+ export { NotionExporter, exportToNotion } from './exporter.js';
7
+ export { CATEGORY_ICONS, STATUS_OPTIONS, CATEGORY_OPTIONS, } from './types.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/notion/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA4B/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Notion Integration Types
3
+ * Types for Notion API integration
4
+ */
5
+ export interface NotionConfig {
6
+ /** Notion integration token (from https://www.notion.so/my-integrations) */
7
+ apiKey: string;
8
+ /** Parent page ID to create content under */
9
+ parentPageId?: string;
10
+ /** Database ID to add pages to */
11
+ databaseId?: string;
12
+ }
13
+ export interface NotionUser {
14
+ id: string;
15
+ type: 'person' | 'bot';
16
+ name?: string;
17
+ avatar_url?: string;
18
+ }
19
+ export interface NotionPage {
20
+ id: string;
21
+ object: 'page';
22
+ created_time: string;
23
+ last_edited_time: string;
24
+ parent: NotionParent;
25
+ properties: Record<string, NotionProperty>;
26
+ url: string;
27
+ archived: boolean;
28
+ }
29
+ export interface NotionDatabase {
30
+ id: string;
31
+ object: 'database';
32
+ created_time: string;
33
+ last_edited_time: string;
34
+ title: NotionRichText[];
35
+ properties: Record<string, NotionPropertySchema>;
36
+ parent: NotionParent;
37
+ url: string;
38
+ archived: boolean;
39
+ }
40
+ export type NotionParent = {
41
+ type: 'page_id';
42
+ page_id: string;
43
+ } | {
44
+ type: 'database_id';
45
+ database_id: string;
46
+ } | {
47
+ type: 'workspace';
48
+ workspace: true;
49
+ };
50
+ export interface NotionRichText {
51
+ type: 'text';
52
+ text: {
53
+ content: string;
54
+ link?: {
55
+ url: string;
56
+ } | null;
57
+ };
58
+ annotations?: {
59
+ bold?: boolean;
60
+ italic?: boolean;
61
+ strikethrough?: boolean;
62
+ underline?: boolean;
63
+ code?: boolean;
64
+ color?: string;
65
+ };
66
+ plain_text?: string;
67
+ }
68
+ export type NotionProperty = {
69
+ type: 'title';
70
+ title: NotionRichText[];
71
+ } | {
72
+ type: 'rich_text';
73
+ rich_text: NotionRichText[];
74
+ } | {
75
+ type: 'select';
76
+ select: {
77
+ name: string;
78
+ color?: string;
79
+ } | null;
80
+ } | {
81
+ type: 'multi_select';
82
+ multi_select: Array<{
83
+ name: string;
84
+ color?: string;
85
+ }>;
86
+ } | {
87
+ type: 'status';
88
+ status: {
89
+ name: string;
90
+ color?: string;
91
+ } | null;
92
+ } | {
93
+ type: 'date';
94
+ date: {
95
+ start: string;
96
+ end?: string;
97
+ } | null;
98
+ } | {
99
+ type: 'checkbox';
100
+ checkbox: boolean;
101
+ } | {
102
+ type: 'url';
103
+ url: string | null;
104
+ } | {
105
+ type: 'number';
106
+ number: number | null;
107
+ } | {
108
+ type: 'relation';
109
+ relation: Array<{
110
+ id: string;
111
+ }>;
112
+ };
113
+ export interface NotionPropertySchema {
114
+ id: string;
115
+ name: string;
116
+ type: string;
117
+ [key: string]: unknown;
118
+ }
119
+ export type NotionBlock = NotionParagraphBlock | NotionHeadingBlock | NotionBulletedListBlock | NotionNumberedListBlock | NotionToDoBlock | NotionToggleBlock | NotionCodeBlock | NotionQuoteBlock | NotionCalloutBlock | NotionDividerBlock | NotionTableOfContentsBlock;
120
+ export interface NotionParagraphBlock {
121
+ object: 'block';
122
+ type: 'paragraph';
123
+ paragraph: {
124
+ rich_text: NotionRichText[];
125
+ };
126
+ }
127
+ export interface NotionHeadingBlock {
128
+ object: 'block';
129
+ type: 'heading_1' | 'heading_2' | 'heading_3';
130
+ heading_1?: {
131
+ rich_text: NotionRichText[];
132
+ };
133
+ heading_2?: {
134
+ rich_text: NotionRichText[];
135
+ };
136
+ heading_3?: {
137
+ rich_text: NotionRichText[];
138
+ };
139
+ }
140
+ export interface NotionBulletedListBlock {
141
+ object: 'block';
142
+ type: 'bulleted_list_item';
143
+ bulleted_list_item: {
144
+ rich_text: NotionRichText[];
145
+ };
146
+ }
147
+ export interface NotionNumberedListBlock {
148
+ object: 'block';
149
+ type: 'numbered_list_item';
150
+ numbered_list_item: {
151
+ rich_text: NotionRichText[];
152
+ };
153
+ }
154
+ export interface NotionToDoBlock {
155
+ object: 'block';
156
+ type: 'to_do';
157
+ to_do: {
158
+ rich_text: NotionRichText[];
159
+ checked: boolean;
160
+ };
161
+ }
162
+ export interface NotionToggleBlock {
163
+ object: 'block';
164
+ type: 'toggle';
165
+ toggle: {
166
+ rich_text: NotionRichText[];
167
+ };
168
+ }
169
+ export interface NotionCodeBlock {
170
+ object: 'block';
171
+ type: 'code';
172
+ code: {
173
+ rich_text: NotionRichText[];
174
+ language: string;
175
+ };
176
+ }
177
+ export interface NotionQuoteBlock {
178
+ object: 'block';
179
+ type: 'quote';
180
+ quote: {
181
+ rich_text: NotionRichText[];
182
+ };
183
+ }
184
+ export interface NotionCalloutBlock {
185
+ object: 'block';
186
+ type: 'callout';
187
+ callout: {
188
+ rich_text: NotionRichText[];
189
+ icon?: {
190
+ type: 'emoji';
191
+ emoji: string;
192
+ };
193
+ };
194
+ }
195
+ export interface NotionDividerBlock {
196
+ object: 'block';
197
+ type: 'divider';
198
+ divider: Record<string, never>;
199
+ }
200
+ export interface NotionTableOfContentsBlock {
201
+ object: 'block';
202
+ type: 'table_of_contents';
203
+ table_of_contents: Record<string, never>;
204
+ }
205
+ export interface CreatePageInput {
206
+ parentPageId?: string;
207
+ databaseId?: string;
208
+ title: string;
209
+ properties?: Record<string, NotionProperty>;
210
+ content?: NotionBlock[];
211
+ icon?: {
212
+ type: 'emoji';
213
+ emoji: string;
214
+ };
215
+ cover?: {
216
+ type: 'external';
217
+ external: {
218
+ url: string;
219
+ };
220
+ };
221
+ }
222
+ export interface CreateDatabaseInput {
223
+ parentPageId: string;
224
+ title: string;
225
+ properties: Record<string, Omit<NotionPropertySchema, 'id'>>;
226
+ icon?: {
227
+ type: 'emoji';
228
+ emoji: string;
229
+ };
230
+ }
231
+ export interface NotionDocumentPage {
232
+ title: string;
233
+ category: string;
234
+ content: string;
235
+ properties?: Record<string, unknown>;
236
+ }
237
+ export interface NotionExportResult {
238
+ database?: NotionDatabase;
239
+ pages: NotionPage[];
240
+ errors: string[];
241
+ }
242
+ export interface NotionExportOptions {
243
+ /** Create a database for documents */
244
+ createDatabase?: boolean;
245
+ /** Database title */
246
+ databaseTitle?: string;
247
+ /** Create pages under a parent page instead of database */
248
+ parentPageId?: string;
249
+ /** Add category property to pages */
250
+ addCategory?: boolean;
251
+ /** Add status property to pages */
252
+ addStatus?: boolean;
253
+ /** Convert markdown content to Notion blocks */
254
+ convertContent?: boolean;
255
+ /** Dry run - preview without creating */
256
+ dryRun?: boolean;
257
+ }
258
+ /**
259
+ * Category to emoji mapping
260
+ */
261
+ export declare const CATEGORY_ICONS: Record<string, string>;
262
+ /**
263
+ * Status options for documents
264
+ */
265
+ export declare const STATUS_OPTIONS: {
266
+ name: string;
267
+ color: string;
268
+ }[];
269
+ /**
270
+ * Category options for documents
271
+ */
272
+ export declare const CATEGORY_OPTIONS: {
273
+ name: string;
274
+ color: string;
275
+ }[];
276
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/notion/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Notion Integration Types
3
+ * Types for Notion API integration
4
+ */
5
+ /**
6
+ * Category to emoji mapping
7
+ */
8
+ export const CATEGORY_ICONS = {
9
+ prd: '๐Ÿ“‹',
10
+ architecture: '๐Ÿ—๏ธ',
11
+ 'technical-spec': 'โš™๏ธ',
12
+ 'api-design': '๐Ÿ”Œ',
13
+ security: '๐Ÿ”’',
14
+ infrastructure: 'โ˜๏ธ',
15
+ testing: '๐Ÿงช',
16
+ documentation: '๐Ÿ“š',
17
+ research: '๐Ÿ”ฌ',
18
+ design: '๐ŸŽจ',
19
+ default: '๐Ÿ“„',
20
+ };
21
+ /**
22
+ * Status options for documents
23
+ */
24
+ export const STATUS_OPTIONS = [
25
+ { name: 'Draft', color: 'gray' },
26
+ { name: 'In Review', color: 'yellow' },
27
+ { name: 'Approved', color: 'green' },
28
+ { name: 'Archived', color: 'red' },
29
+ ];
30
+ /**
31
+ * Category options for documents
32
+ */
33
+ export const CATEGORY_OPTIONS = [
34
+ { name: 'PRD', color: 'purple' },
35
+ { name: 'Architecture', color: 'blue' },
36
+ { name: 'Technical Spec', color: 'green' },
37
+ { name: 'API Design', color: 'orange' },
38
+ { name: 'Security', color: 'red' },
39
+ { name: 'Infrastructure', color: 'gray' },
40
+ { name: 'Testing', color: 'yellow' },
41
+ { name: 'Documentation', color: 'pink' },
42
+ { name: 'Research', color: 'brown' },
43
+ { name: 'Design', color: 'default' },
44
+ ];
45
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/notion/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqOH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;IACpC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;IAChC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;IACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;IACvC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IAClC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE;IACzC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE;IACxC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;IACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;CACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentsolutions/blueprint",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "description": "Enterprise AI documentation generator - CLI, MCP Server, and programmatic API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",