@sudocode-ai/integration-speckit 0.1.14
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/id-generator.d.ts +149 -0
- package/dist/id-generator.d.ts.map +1 -0
- package/dist/id-generator.js +197 -0
- package/dist/id-generator.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1017 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/index.d.ts +11 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +16 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/markdown-utils.d.ts +138 -0
- package/dist/parser/markdown-utils.d.ts.map +1 -0
- package/dist/parser/markdown-utils.js +283 -0
- package/dist/parser/markdown-utils.js.map +1 -0
- package/dist/parser/plan-parser.d.ts +97 -0
- package/dist/parser/plan-parser.d.ts.map +1 -0
- package/dist/parser/plan-parser.js +286 -0
- package/dist/parser/plan-parser.js.map +1 -0
- package/dist/parser/spec-parser.d.ts +95 -0
- package/dist/parser/spec-parser.d.ts.map +1 -0
- package/dist/parser/spec-parser.js +250 -0
- package/dist/parser/spec-parser.js.map +1 -0
- package/dist/parser/supporting-docs.d.ts +119 -0
- package/dist/parser/supporting-docs.d.ts.map +1 -0
- package/dist/parser/supporting-docs.js +324 -0
- package/dist/parser/supporting-docs.js.map +1 -0
- package/dist/parser/tasks-parser.d.ts +171 -0
- package/dist/parser/tasks-parser.d.ts.map +1 -0
- package/dist/parser/tasks-parser.js +281 -0
- package/dist/parser/tasks-parser.js.map +1 -0
- package/dist/relationship-mapper.d.ts +165 -0
- package/dist/relationship-mapper.d.ts.map +1 -0
- package/dist/relationship-mapper.js +238 -0
- package/dist/relationship-mapper.js.map +1 -0
- package/dist/watcher.d.ts +137 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +599 -0
- package/dist/watcher.js.map +1 -0
- package/dist/writer/index.d.ts +8 -0
- package/dist/writer/index.d.ts.map +1 -0
- package/dist/writer/index.js +10 -0
- package/dist/writer/index.js.map +1 -0
- package/dist/writer/spec-writer.d.ts +70 -0
- package/dist/writer/spec-writer.d.ts.map +1 -0
- package/dist/writer/spec-writer.js +261 -0
- package/dist/writer/spec-writer.js.map +1 -0
- package/dist/writer/tasks-writer.d.ts +47 -0
- package/dist/writer/tasks-writer.d.ts.map +1 -0
- package/dist/writer/tasks-writer.js +161 -0
- package/dist/writer/tasks-writer.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec-Kit Parsers
|
|
3
|
+
*
|
|
4
|
+
* Exports all parsers for spec-kit markdown files.
|
|
5
|
+
*/
|
|
6
|
+
export { PATTERNS, extractMetadata, extractTitle, extractTitleWithPrefixRemoval, extractMetadataValue, extractCrossReferences, findContentStartIndex, extractSection, parseDate, escapeRegex, cleanTaskDescription, normalizeStatus, } from "./markdown-utils.js";
|
|
7
|
+
export { parseSpec, parseSpecContent, isSpecFile, getSpecFileTitle, getSpecFileStatus, type ParsedSpecKitSpec, type ParseSpecOptions, } from "./spec-parser.js";
|
|
8
|
+
export { parsePlan, parsePlanContent, isPlanFile, getPlanFileTitle, getPlanFileStatus, type ParsedSpecKitPlan, type ParsePlanOptions, } from "./plan-parser.js";
|
|
9
|
+
export { parseTasks, parseTasksContent, getAllTasks, getTaskById, getIncompleteTasks, getParallelizableTasks, getTasksByPhase, getTasksByUserStory, isTasksFile, getTaskStats, type ParsedTask, type ParsedTasksFile, type ParseTasksOptions, } from "./tasks-parser.js";
|
|
10
|
+
export { parseResearch, parseDataModel, parseSupportingDoc, parseContract, parseContractsDirectory, discoverSupportingDocs, detectDocType, type SupportingDocType, type ParsedSupportingDoc, type ParsedContract, type ParseSupportingDocOptions, } from "./supporting-docs.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec-Kit Parsers
|
|
3
|
+
*
|
|
4
|
+
* Exports all parsers for spec-kit markdown files.
|
|
5
|
+
*/
|
|
6
|
+
// Markdown utilities
|
|
7
|
+
export { PATTERNS, extractMetadata, extractTitle, extractTitleWithPrefixRemoval, extractMetadataValue, extractCrossReferences, findContentStartIndex, extractSection, parseDate, escapeRegex, cleanTaskDescription, normalizeStatus, } from "./markdown-utils.js";
|
|
8
|
+
// Spec parser
|
|
9
|
+
export { parseSpec, parseSpecContent, isSpecFile, getSpecFileTitle, getSpecFileStatus, } from "./spec-parser.js";
|
|
10
|
+
// Plan parser
|
|
11
|
+
export { parsePlan, parsePlanContent, isPlanFile, getPlanFileTitle, getPlanFileStatus, } from "./plan-parser.js";
|
|
12
|
+
// Tasks parser
|
|
13
|
+
export { parseTasks, parseTasksContent, getAllTasks, getTaskById, getIncompleteTasks, getParallelizableTasks, getTasksByPhase, getTasksByUserStory, isTasksFile, getTaskStats, } from "./tasks-parser.js";
|
|
14
|
+
// Supporting documents parser
|
|
15
|
+
export { parseResearch, parseDataModel, parseSupportingDoc, parseContract, parseContractsDirectory, discoverSupportingDocs, detectDocType, } from "./supporting-docs.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,cAAc;AACd,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,YAAY,GAIb,MAAM,mBAAmB,CAAC;AAE3B,8BAA8B;AAC9B,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,GAKd,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Markdown Utilities for Spec-Kit Parsing
|
|
3
|
+
*
|
|
4
|
+
* Common regex patterns and helper functions for extracting
|
|
5
|
+
* metadata from spec-kit markdown files.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Regex patterns for common markdown elements in spec-kit files
|
|
9
|
+
*/
|
|
10
|
+
export declare const PATTERNS: {
|
|
11
|
+
/** Match H1 title: # Title */
|
|
12
|
+
TITLE: RegExp;
|
|
13
|
+
/** Match title with prefix: # Feature Specification: Title */
|
|
14
|
+
TITLE_WITH_PREFIX: RegExp;
|
|
15
|
+
/** Match metadata line: **Key**: Value */
|
|
16
|
+
METADATA: RegExp;
|
|
17
|
+
/** Match status metadata: **Status**: Value */
|
|
18
|
+
STATUS: RegExp;
|
|
19
|
+
/** Match feature branch metadata: **Feature Branch**: Value */
|
|
20
|
+
FEATURE_BRANCH: RegExp;
|
|
21
|
+
/** Match branch metadata: **Branch**: Value */
|
|
22
|
+
BRANCH: RegExp;
|
|
23
|
+
/** Match created date metadata: **Created**: Value */
|
|
24
|
+
CREATED: RegExp;
|
|
25
|
+
/** Match spec link metadata: **Spec**: [[link]] or **Spec**: link */
|
|
26
|
+
SPEC_LINK: RegExp;
|
|
27
|
+
/** Match cross-reference: [[id]] or [[id|display]] */
|
|
28
|
+
CROSS_REFERENCE: RegExp;
|
|
29
|
+
/** Match task line: - [ ] T001 [P] [US1] Description or - [x] T001: Description */
|
|
30
|
+
TASK_LINE: RegExp;
|
|
31
|
+
/** Match parallelizable marker: [P] */
|
|
32
|
+
PARALLELIZABLE: RegExp;
|
|
33
|
+
/** Match user story marker: [US1], [US2], etc. */
|
|
34
|
+
USER_STORY: RegExp;
|
|
35
|
+
/** Match phase header: ## Phase N: Name or ### Phase N */
|
|
36
|
+
PHASE_HEADER: RegExp;
|
|
37
|
+
/** Match section header: ## Section Name */
|
|
38
|
+
SECTION_HEADER: RegExp;
|
|
39
|
+
/** Match date format: YYYY-MM-DD */
|
|
40
|
+
DATE: RegExp;
|
|
41
|
+
/** Match ISO date with time */
|
|
42
|
+
ISO_DATE: RegExp;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Extract all metadata from a markdown file's lines
|
|
46
|
+
*
|
|
47
|
+
* @param lines - Array of file lines
|
|
48
|
+
* @returns Map of metadata key-value pairs
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* const lines = [
|
|
52
|
+
* "# Title",
|
|
53
|
+
* "",
|
|
54
|
+
* "**Status**: Draft",
|
|
55
|
+
* "**Created**: 2024-01-01",
|
|
56
|
+
* ];
|
|
57
|
+
* extractMetadata(lines);
|
|
58
|
+
* // Map { "Status" => "Draft", "Created" => "2024-01-01" }
|
|
59
|
+
*/
|
|
60
|
+
export declare function extractMetadata(lines: string[]): Map<string, string>;
|
|
61
|
+
/**
|
|
62
|
+
* Extract the title from markdown content
|
|
63
|
+
*
|
|
64
|
+
* @param lines - Array of file lines
|
|
65
|
+
* @returns The title text or null if not found
|
|
66
|
+
*/
|
|
67
|
+
export declare function extractTitle(lines: string[]): string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Extract title with optional prefix removal
|
|
70
|
+
*
|
|
71
|
+
* @param lines - Array of file lines
|
|
72
|
+
* @param prefixes - Optional prefixes to remove (e.g., ["Feature Specification:", "Implementation Plan:"])
|
|
73
|
+
* @returns The clean title text or null
|
|
74
|
+
*/
|
|
75
|
+
export declare function extractTitleWithPrefixRemoval(lines: string[], prefixes?: string[]): string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Extract a specific metadata value by key (case-insensitive)
|
|
78
|
+
*
|
|
79
|
+
* @param lines - Array of file lines
|
|
80
|
+
* @param key - The metadata key to find
|
|
81
|
+
* @returns The value or null if not found
|
|
82
|
+
*/
|
|
83
|
+
export declare function extractMetadataValue(lines: string[], key: string): string | null;
|
|
84
|
+
/**
|
|
85
|
+
* Extract all cross-references from markdown content
|
|
86
|
+
*
|
|
87
|
+
* @param content - The full markdown content as a string
|
|
88
|
+
* @returns Array of cross-reference objects
|
|
89
|
+
*/
|
|
90
|
+
export declare function extractCrossReferences(content: string): Array<{
|
|
91
|
+
id: string;
|
|
92
|
+
displayText?: string;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Find the line index where the main content starts (after metadata)
|
|
96
|
+
*
|
|
97
|
+
* @param lines - Array of file lines
|
|
98
|
+
* @returns Index of the first content line
|
|
99
|
+
*/
|
|
100
|
+
export declare function findContentStartIndex(lines: string[]): number;
|
|
101
|
+
/**
|
|
102
|
+
* Extract section content by header
|
|
103
|
+
*
|
|
104
|
+
* @param lines - Array of file lines
|
|
105
|
+
* @param sectionName - Name of the section to extract
|
|
106
|
+
* @param headerLevel - Header level (2-6, default 2 for ##)
|
|
107
|
+
* @returns Section content as array of lines, or null if not found
|
|
108
|
+
*/
|
|
109
|
+
export declare function extractSection(lines: string[], sectionName: string, headerLevel?: number): string[] | null;
|
|
110
|
+
/**
|
|
111
|
+
* Parse a date string from various formats
|
|
112
|
+
*
|
|
113
|
+
* @param dateStr - Date string to parse
|
|
114
|
+
* @returns Date object or null if invalid
|
|
115
|
+
*/
|
|
116
|
+
export declare function parseDate(dateStr: string): Date | null;
|
|
117
|
+
/**
|
|
118
|
+
* Escape special regex characters in a string
|
|
119
|
+
*
|
|
120
|
+
* @param str - String to escape
|
|
121
|
+
* @returns Escaped string safe for use in regex
|
|
122
|
+
*/
|
|
123
|
+
export declare function escapeRegex(str: string): string;
|
|
124
|
+
/**
|
|
125
|
+
* Clean task description by removing markers
|
|
126
|
+
*
|
|
127
|
+
* @param description - Raw task description
|
|
128
|
+
* @returns Cleaned description
|
|
129
|
+
*/
|
|
130
|
+
export declare function cleanTaskDescription(description: string): string;
|
|
131
|
+
/**
|
|
132
|
+
* Normalize status string to a consistent format
|
|
133
|
+
*
|
|
134
|
+
* @param status - Raw status string
|
|
135
|
+
* @returns Normalized status
|
|
136
|
+
*/
|
|
137
|
+
export declare function normalizeStatus(status: string): string;
|
|
138
|
+
//# sourceMappingURL=markdown-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../src/parser/markdown-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,8BAA8B;;IAG9B,8DAA8D;;IAG9D,0CAA0C;;IAG1C,+CAA+C;;IAG/C,+DAA+D;;IAG/D,+CAA+C;;IAG/C,sDAAsD;;IAGtD,qEAAqE;;IAGrE,sDAAsD;;IAGtD,mFAAmF;;IAGnF,uCAAuC;;IAGvC,kDAAkD;;IAGlD,0DAA0D;;IAG1D,4CAA4C;;IAG5C,oCAAoC;;IAGpC,+BAA+B;;CAEhC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYpE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,GAAE,MAAM,EAAO,GACtB,MAAM,GAAG,IAAI,CAef;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAWf;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GACd,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAa7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAgC7D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAU,GACtB,MAAM,EAAE,GAAG,IAAI,CAiCjB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAoBtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmBtD"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Markdown Utilities for Spec-Kit Parsing
|
|
3
|
+
*
|
|
4
|
+
* Common regex patterns and helper functions for extracting
|
|
5
|
+
* metadata from spec-kit markdown files.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Regex patterns for common markdown elements in spec-kit files
|
|
9
|
+
*/
|
|
10
|
+
export const PATTERNS = {
|
|
11
|
+
/** Match H1 title: # Title */
|
|
12
|
+
TITLE: /^#\s+(.+)$/,
|
|
13
|
+
/** Match title with prefix: # Feature Specification: Title */
|
|
14
|
+
TITLE_WITH_PREFIX: /^#\s+(?:Feature Specification|Implementation Plan):\s*(.+)$/i,
|
|
15
|
+
/** Match metadata line: **Key**: Value */
|
|
16
|
+
METADATA: /^\*\*([^*]+)\*\*:\s*(.*)$/,
|
|
17
|
+
/** Match status metadata: **Status**: Value */
|
|
18
|
+
STATUS: /^\*\*Status\*\*:\s*(.*)$/i,
|
|
19
|
+
/** Match feature branch metadata: **Feature Branch**: Value */
|
|
20
|
+
FEATURE_BRANCH: /^\*\*Feature Branch\*\*:\s*(.*)$/i,
|
|
21
|
+
/** Match branch metadata: **Branch**: Value */
|
|
22
|
+
BRANCH: /^\*\*Branch\*\*:\s*(.*)$/i,
|
|
23
|
+
/** Match created date metadata: **Created**: Value */
|
|
24
|
+
CREATED: /^\*\*Created\*\*:\s*(.*)$/i,
|
|
25
|
+
/** Match spec link metadata: **Spec**: [[link]] or **Spec**: link */
|
|
26
|
+
SPEC_LINK: /^\*\*Spec\*\*:\s*(?:\[\[)?([^\]]+)(?:\]\])?$/i,
|
|
27
|
+
/** Match cross-reference: [[id]] or [[id|display]] */
|
|
28
|
+
CROSS_REFERENCE: /\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/g,
|
|
29
|
+
/** Match task line: - [ ] T001 [P] [US1] Description or - [x] T001: Description */
|
|
30
|
+
TASK_LINE: /^(\s*)-\s*\[([ xX])\]\s*(T\d+)(.*)$/,
|
|
31
|
+
/** Match parallelizable marker: [P] */
|
|
32
|
+
PARALLELIZABLE: /\[P\]/i,
|
|
33
|
+
/** Match user story marker: [US1], [US2], etc. */
|
|
34
|
+
USER_STORY: /\[US(\d+)\]/i,
|
|
35
|
+
/** Match phase header: ## Phase N: Name or ### Phase N */
|
|
36
|
+
PHASE_HEADER: /^#{2,3}\s+Phase\s+(\d+)(?::\s*(.+))?$/i,
|
|
37
|
+
/** Match section header: ## Section Name */
|
|
38
|
+
SECTION_HEADER: /^(#{2,6})\s+(.+)$/,
|
|
39
|
+
/** Match date format: YYYY-MM-DD */
|
|
40
|
+
DATE: /^\d{4}-\d{2}-\d{2}$/,
|
|
41
|
+
/** Match ISO date with time */
|
|
42
|
+
ISO_DATE: /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?/,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Extract all metadata from a markdown file's lines
|
|
46
|
+
*
|
|
47
|
+
* @param lines - Array of file lines
|
|
48
|
+
* @returns Map of metadata key-value pairs
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* const lines = [
|
|
52
|
+
* "# Title",
|
|
53
|
+
* "",
|
|
54
|
+
* "**Status**: Draft",
|
|
55
|
+
* "**Created**: 2024-01-01",
|
|
56
|
+
* ];
|
|
57
|
+
* extractMetadata(lines);
|
|
58
|
+
* // Map { "Status" => "Draft", "Created" => "2024-01-01" }
|
|
59
|
+
*/
|
|
60
|
+
export function extractMetadata(lines) {
|
|
61
|
+
const metadata = new Map();
|
|
62
|
+
for (const line of lines) {
|
|
63
|
+
const match = line.match(PATTERNS.METADATA);
|
|
64
|
+
if (match) {
|
|
65
|
+
const [, key, value] = match;
|
|
66
|
+
metadata.set(key.trim(), value.trim());
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return metadata;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Extract the title from markdown content
|
|
73
|
+
*
|
|
74
|
+
* @param lines - Array of file lines
|
|
75
|
+
* @returns The title text or null if not found
|
|
76
|
+
*/
|
|
77
|
+
export function extractTitle(lines) {
|
|
78
|
+
for (const line of lines) {
|
|
79
|
+
const match = line.match(PATTERNS.TITLE);
|
|
80
|
+
if (match) {
|
|
81
|
+
return match[1].trim();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extract title with optional prefix removal
|
|
88
|
+
*
|
|
89
|
+
* @param lines - Array of file lines
|
|
90
|
+
* @param prefixes - Optional prefixes to remove (e.g., ["Feature Specification:", "Implementation Plan:"])
|
|
91
|
+
* @returns The clean title text or null
|
|
92
|
+
*/
|
|
93
|
+
export function extractTitleWithPrefixRemoval(lines, prefixes = []) {
|
|
94
|
+
const rawTitle = extractTitle(lines);
|
|
95
|
+
if (!rawTitle)
|
|
96
|
+
return null;
|
|
97
|
+
// Try to match and remove known prefixes
|
|
98
|
+
for (const prefix of prefixes) {
|
|
99
|
+
const prefixLower = prefix.toLowerCase();
|
|
100
|
+
if (rawTitle.toLowerCase().startsWith(prefixLower)) {
|
|
101
|
+
const remainder = rawTitle.slice(prefix.length).trim();
|
|
102
|
+
// Remove leading colon if present
|
|
103
|
+
return remainder.startsWith(":") ? remainder.slice(1).trim() : remainder;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return rawTitle;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Extract a specific metadata value by key (case-insensitive)
|
|
110
|
+
*
|
|
111
|
+
* @param lines - Array of file lines
|
|
112
|
+
* @param key - The metadata key to find
|
|
113
|
+
* @returns The value or null if not found
|
|
114
|
+
*/
|
|
115
|
+
export function extractMetadataValue(lines, key) {
|
|
116
|
+
const keyLower = key.toLowerCase();
|
|
117
|
+
for (const line of lines) {
|
|
118
|
+
const match = line.match(PATTERNS.METADATA);
|
|
119
|
+
if (match && match[1].trim().toLowerCase() === keyLower) {
|
|
120
|
+
return match[2].trim();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Extract all cross-references from markdown content
|
|
127
|
+
*
|
|
128
|
+
* @param content - The full markdown content as a string
|
|
129
|
+
* @returns Array of cross-reference objects
|
|
130
|
+
*/
|
|
131
|
+
export function extractCrossReferences(content) {
|
|
132
|
+
const references = [];
|
|
133
|
+
const regex = new RegExp(PATTERNS.CROSS_REFERENCE.source, "g");
|
|
134
|
+
let match;
|
|
135
|
+
while ((match = regex.exec(content)) !== null) {
|
|
136
|
+
references.push({
|
|
137
|
+
id: match[1].trim(),
|
|
138
|
+
displayText: match[2]?.trim(),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return references;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Find the line index where the main content starts (after metadata)
|
|
145
|
+
*
|
|
146
|
+
* @param lines - Array of file lines
|
|
147
|
+
* @returns Index of the first content line
|
|
148
|
+
*/
|
|
149
|
+
export function findContentStartIndex(lines) {
|
|
150
|
+
let titleFound = false;
|
|
151
|
+
let lastMetadataIndex = -1;
|
|
152
|
+
for (let i = 0; i < lines.length; i++) {
|
|
153
|
+
const line = lines[i];
|
|
154
|
+
// Track title
|
|
155
|
+
if (!titleFound && PATTERNS.TITLE.test(line)) {
|
|
156
|
+
titleFound = true;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
// Track metadata lines
|
|
160
|
+
if (PATTERNS.METADATA.test(line)) {
|
|
161
|
+
lastMetadataIndex = i;
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
// Skip blank lines after metadata
|
|
165
|
+
if (line.trim() === "") {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
// If we're past the title and metadata, this is content start
|
|
169
|
+
if (titleFound && i > lastMetadataIndex) {
|
|
170
|
+
return i;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Return end of file if no content found
|
|
174
|
+
return lines.length;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Extract section content by header
|
|
178
|
+
*
|
|
179
|
+
* @param lines - Array of file lines
|
|
180
|
+
* @param sectionName - Name of the section to extract
|
|
181
|
+
* @param headerLevel - Header level (2-6, default 2 for ##)
|
|
182
|
+
* @returns Section content as array of lines, or null if not found
|
|
183
|
+
*/
|
|
184
|
+
export function extractSection(lines, sectionName, headerLevel = 2) {
|
|
185
|
+
const headerPrefix = "#".repeat(headerLevel);
|
|
186
|
+
const sectionRegex = new RegExp(`^${headerPrefix}\\s+${escapeRegex(sectionName)}\\s*$`, "i");
|
|
187
|
+
const nextHeaderRegex = new RegExp(`^#{1,${headerLevel}}\\s+`);
|
|
188
|
+
let sectionStart = -1;
|
|
189
|
+
let sectionEnd = lines.length;
|
|
190
|
+
for (let i = 0; i < lines.length; i++) {
|
|
191
|
+
const line = lines[i];
|
|
192
|
+
if (sectionStart === -1) {
|
|
193
|
+
// Looking for section start
|
|
194
|
+
if (sectionRegex.test(line)) {
|
|
195
|
+
sectionStart = i + 1; // Start after header
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
// Looking for section end (next header at same or higher level)
|
|
200
|
+
if (nextHeaderRegex.test(line)) {
|
|
201
|
+
sectionEnd = i;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (sectionStart === -1) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
return lines.slice(sectionStart, sectionEnd);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Parse a date string from various formats
|
|
213
|
+
*
|
|
214
|
+
* @param dateStr - Date string to parse
|
|
215
|
+
* @returns Date object or null if invalid
|
|
216
|
+
*/
|
|
217
|
+
export function parseDate(dateStr) {
|
|
218
|
+
if (!dateStr)
|
|
219
|
+
return null;
|
|
220
|
+
// Try ISO format first
|
|
221
|
+
if (PATTERNS.ISO_DATE.test(dateStr)) {
|
|
222
|
+
const date = new Date(dateStr);
|
|
223
|
+
if (!isNaN(date.getTime())) {
|
|
224
|
+
return date;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Try simple date format
|
|
228
|
+
if (PATTERNS.DATE.test(dateStr)) {
|
|
229
|
+
const date = new Date(dateStr + "T00:00:00");
|
|
230
|
+
if (!isNaN(date.getTime())) {
|
|
231
|
+
return date;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Escape special regex characters in a string
|
|
238
|
+
*
|
|
239
|
+
* @param str - String to escape
|
|
240
|
+
* @returns Escaped string safe for use in regex
|
|
241
|
+
*/
|
|
242
|
+
export function escapeRegex(str) {
|
|
243
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Clean task description by removing markers
|
|
247
|
+
*
|
|
248
|
+
* @param description - Raw task description
|
|
249
|
+
* @returns Cleaned description
|
|
250
|
+
*/
|
|
251
|
+
export function cleanTaskDescription(description) {
|
|
252
|
+
return description
|
|
253
|
+
.replace(PATTERNS.PARALLELIZABLE, "")
|
|
254
|
+
.replace(PATTERNS.USER_STORY, "")
|
|
255
|
+
.replace(/^\s*:\s*/, "") // Remove leading colon with surrounding whitespace
|
|
256
|
+
.replace(/\s+/g, " ") // Normalize whitespace
|
|
257
|
+
.trim();
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Normalize status string to a consistent format
|
|
261
|
+
*
|
|
262
|
+
* @param status - Raw status string
|
|
263
|
+
* @returns Normalized status
|
|
264
|
+
*/
|
|
265
|
+
export function normalizeStatus(status) {
|
|
266
|
+
const statusLower = status.toLowerCase().trim();
|
|
267
|
+
const statusMap = {
|
|
268
|
+
draft: "Draft",
|
|
269
|
+
"in progress": "In Progress",
|
|
270
|
+
"in-progress": "In Progress",
|
|
271
|
+
inprogress: "In Progress",
|
|
272
|
+
blocked: "Blocked",
|
|
273
|
+
complete: "Complete",
|
|
274
|
+
completed: "Complete",
|
|
275
|
+
done: "Complete",
|
|
276
|
+
review: "Review",
|
|
277
|
+
"needs review": "Needs Review",
|
|
278
|
+
"needs-review": "Needs Review",
|
|
279
|
+
approved: "Approved",
|
|
280
|
+
};
|
|
281
|
+
return statusMap[statusLower] || status;
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=markdown-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-utils.js","sourceRoot":"","sources":["../../src/parser/markdown-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan Parser for Spec-Kit Integration
|
|
3
|
+
*
|
|
4
|
+
* Parses plan.md files from spec-kit and extracts structured data.
|
|
5
|
+
*
|
|
6
|
+
* Expected format:
|
|
7
|
+
* ```markdown
|
|
8
|
+
* # Implementation Plan: [FEATURE]
|
|
9
|
+
*
|
|
10
|
+
* **Branch**: feature/xxx
|
|
11
|
+
* **Spec**: [[s-001-spec]] or spec.md link
|
|
12
|
+
* **Status**: Draft
|
|
13
|
+
*
|
|
14
|
+
* ## Overview
|
|
15
|
+
* ...
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Parsed result from a plan.md file
|
|
20
|
+
*/
|
|
21
|
+
export interface ParsedSpecKitPlan {
|
|
22
|
+
/** The feature/plan title (without "Implementation Plan:" prefix) */
|
|
23
|
+
title: string;
|
|
24
|
+
/** Full raw title as it appears in the file */
|
|
25
|
+
rawTitle: string;
|
|
26
|
+
/** Branch name if specified */
|
|
27
|
+
branch: string | null;
|
|
28
|
+
/** Reference to the parent spec (ID or path) */
|
|
29
|
+
specReference: string | null;
|
|
30
|
+
/** Status of the plan (e.g., "Draft", "In Progress", "Complete") */
|
|
31
|
+
status: string | null;
|
|
32
|
+
/** Creation date */
|
|
33
|
+
createdAt: Date | null;
|
|
34
|
+
/** All metadata key-value pairs */
|
|
35
|
+
metadata: Map<string, string>;
|
|
36
|
+
/** Main content (everything after metadata section) */
|
|
37
|
+
content: string;
|
|
38
|
+
/** Cross-references found in the content */
|
|
39
|
+
crossReferences: Array<{
|
|
40
|
+
id: string;
|
|
41
|
+
displayText?: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** Source file path */
|
|
44
|
+
filePath: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Options for parsing plan files
|
|
48
|
+
*/
|
|
49
|
+
export interface ParsePlanOptions {
|
|
50
|
+
/** Whether to include full content (default: true) */
|
|
51
|
+
includeContent?: boolean;
|
|
52
|
+
/** Whether to extract cross-references (default: true) */
|
|
53
|
+
extractReferences?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse a plan.md file and extract structured data
|
|
57
|
+
*
|
|
58
|
+
* @param filePath - Absolute path to the plan.md file
|
|
59
|
+
* @param options - Parsing options
|
|
60
|
+
* @returns Parsed plan data or null if file doesn't exist
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* const plan = parsePlan("/project/.specify/specs/001-auth/plan.md");
|
|
64
|
+
* console.log(plan?.title); // "Authentication"
|
|
65
|
+
* console.log(plan?.specReference); // "spec.md" or "s-001-spec"
|
|
66
|
+
*/
|
|
67
|
+
export declare function parsePlan(filePath: string, options?: ParsePlanOptions): ParsedSpecKitPlan | null;
|
|
68
|
+
/**
|
|
69
|
+
* Parse plan content from a string (for testing or in-memory parsing)
|
|
70
|
+
*
|
|
71
|
+
* @param content - Markdown content string
|
|
72
|
+
* @param filePath - Optional file path for reference
|
|
73
|
+
* @returns Parsed plan data or null
|
|
74
|
+
*/
|
|
75
|
+
export declare function parsePlanContent(content: string, filePath?: string): ParsedSpecKitPlan | null;
|
|
76
|
+
/**
|
|
77
|
+
* Check if a file appears to be a valid plan.md file
|
|
78
|
+
*
|
|
79
|
+
* @param filePath - Path to check
|
|
80
|
+
* @returns true if the file looks like a plan file
|
|
81
|
+
*/
|
|
82
|
+
export declare function isPlanFile(filePath: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Extract just the title from a plan file (fast extraction)
|
|
85
|
+
*
|
|
86
|
+
* @param filePath - Path to the plan file
|
|
87
|
+
* @returns The title or null
|
|
88
|
+
*/
|
|
89
|
+
export declare function getPlanFileTitle(filePath: string): string | null;
|
|
90
|
+
/**
|
|
91
|
+
* Extract just the status from a plan file (fast extraction)
|
|
92
|
+
*
|
|
93
|
+
* @param filePath - Path to the plan file
|
|
94
|
+
* @returns The status or null
|
|
95
|
+
*/
|
|
96
|
+
export declare function getPlanFileStatus(filePath: string): string | null;
|
|
97
|
+
//# sourceMappingURL=plan-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-parser.d.ts","sourceRoot":"","sources":["../../src/parser/plan-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oBAAoB;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,eAAe,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,gBAAqB,GAC7B,iBAAiB,GAAG,IAAI,CA6D1B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAmB,GAC5B,iBAAiB,GAAG,IAAI,CA2C1B;AAqGD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAuBpD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAajE"}
|