@sudocode-ai/cli 0.1.2 → 0.1.4

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/config.js ADDED
@@ -0,0 +1,41 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { VERSION } from "./version.js";
4
+ /**
5
+ * Read config file (version-controlled)
6
+ */
7
+ function readConfig(outputDir) {
8
+ const configPath = path.join(outputDir, "config.json");
9
+ if (!fs.existsSync(configPath)) {
10
+ // Create default config if not exists
11
+ const defaultConfig = {
12
+ version: VERSION,
13
+ };
14
+ writeConfig(outputDir, defaultConfig);
15
+ return defaultConfig;
16
+ }
17
+ const content = fs.readFileSync(configPath, "utf8");
18
+ return JSON.parse(content);
19
+ }
20
+ /**
21
+ * Write config file (version-controlled)
22
+ */
23
+ function writeConfig(outputDir, config) {
24
+ const configPath = path.join(outputDir, "config.json");
25
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2), "utf8");
26
+ }
27
+ /**
28
+ * Get current config
29
+ */
30
+ export function getConfig(outputDir) {
31
+ return readConfig(outputDir);
32
+ }
33
+ /**
34
+ * Update config (version-controlled)
35
+ */
36
+ export function updateConfig(outputDir, updates) {
37
+ const config = readConfig(outputDir);
38
+ Object.assign(config, updates);
39
+ writeConfig(outputDir, config);
40
+ }
41
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,SAAS,UAAU,CAAC,SAAiB;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,sCAAsC;QACtC,MAAM,aAAa,GAAW;YAC5B,OAAO,EAAE,OAAO;SACjB,CAAC;QACF,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAW,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,SAAiB,EAAE,MAAc;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,OAAwB;IAExB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -1,24 +1,56 @@
1
1
  /**
2
2
  * ID generation utilities
3
+ *
4
+ * Supports two ID formats:
5
+ * 1. Legacy: SPEC-001, ISSUE-001 (sequential numbers)
6
+ * 2. Hash-based: s-x7k9, i-a3f2 (UUID-derived base36 hashes)
7
+ *
8
+ * New entities use hash-based IDs for better distributed workflow support.
9
+ * Legacy IDs remain supported indefinitely.
3
10
  */
4
11
  import type Database from "better-sqlite3";
5
- import type { Config } from "@sudocode-ai/types";
6
12
  /**
7
- * Generate next spec ID based on database contents
13
+ * Calculate adaptive hash length based on entity count
14
+ * Uses birthday paradox probability to determine safe length
15
+ *
16
+ * Target: Keep collision probability under 25%
17
+ * Base36 namespace sizes:
18
+ * - 4 chars: ~1.7M namespace → ~980 items at 25% collision prob
19
+ * - 5 chars: ~60M namespace → ~5.9K items at 25% collision prob
20
+ * - 6 chars: ~2.2B namespace → ~35K items at 25% collision prob
21
+ * - 7 chars: ~78B namespace → ~212K items at 25% collision prob
22
+ * - 8 chars: ~2.8T namespace → ~1M+ items at 25% collision prob
8
23
  */
9
- export declare function generateSpecId(db: Database.Database, outputDir: string): string;
24
+ export declare function getAdaptiveHashLength(count: number): number;
10
25
  /**
11
- * Generate next issue ID based on database contents
26
+ * Convert UUID to base36 hash
27
+ * Takes first N hex digits of SHA256(UUID) and converts to base36
12
28
  */
13
- export declare function generateIssueId(db: Database.Database, outputDir: string): string;
29
+ export declare function hashUUIDToBase36(uuid: string, length: number): string;
14
30
  /**
15
- * Get current config
31
+ * Check if ID is legacy format (SPEC-001, ISSUE-001)
16
32
  */
17
- export declare function getConfig(outputDir: string): Config;
33
+ export declare function isLegacyID(id: string): boolean;
18
34
  /**
19
- * Update config (version-controlled)
35
+ * Check if ID is hash format (i-x7k9, s-a3f2)
20
36
  */
21
- export declare function updateConfig(outputDir: string, updates: Partial<Config>): void;
37
+ export declare function isHashID(id: string): boolean;
38
+ /**
39
+ * Generate spec ID and UUID
40
+ * Returns hash-based ID derived from UUID
41
+ */
42
+ export declare function generateSpecId(db: Database.Database, outputDir: string): {
43
+ id: string;
44
+ uuid: string;
45
+ };
46
+ /**
47
+ * Generate issue ID and UUID
48
+ * Returns hash-based ID derived from UUID
49
+ */
50
+ export declare function generateIssueId(db: Database.Database, outputDir: string): {
51
+ id: string;
52
+ uuid: string;
53
+ };
22
54
  /**
23
55
  * Generate a UUID v4
24
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AA6FD;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GACvB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA2BrE;AAoCD;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU9B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU9B;AA8DD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -1,25 +1,118 @@
1
1
  /**
2
2
  * ID generation utilities
3
+ *
4
+ * Supports two ID formats:
5
+ * 1. Legacy: SPEC-001, ISSUE-001 (sequential numbers)
6
+ * 2. Hash-based: s-x7k9, i-a3f2 (UUID-derived base36 hashes)
7
+ *
8
+ * New entities use hash-based IDs for better distributed workflow support.
9
+ * Legacy IDs remain supported indefinitely.
3
10
  */
4
- import * as fs from "fs";
5
- import * as path from "path";
6
11
  import * as crypto from "crypto";
7
- import { VERSION } from "./version.js";
8
12
  /**
9
- * Generate next spec ID based on database contents
13
+ * Calculate adaptive hash length based on entity count
14
+ * Uses birthday paradox probability to determine safe length
15
+ *
16
+ * Target: Keep collision probability under 25%
17
+ * Base36 namespace sizes:
18
+ * - 4 chars: ~1.7M namespace → ~980 items at 25% collision prob
19
+ * - 5 chars: ~60M namespace → ~5.9K items at 25% collision prob
20
+ * - 6 chars: ~2.2B namespace → ~35K items at 25% collision prob
21
+ * - 7 chars: ~78B namespace → ~212K items at 25% collision prob
22
+ * - 8 chars: ~2.8T namespace → ~1M+ items at 25% collision prob
23
+ */
24
+ export function getAdaptiveHashLength(count) {
25
+ if (count < 980)
26
+ return 4; // i-x7k9
27
+ if (count < 5900)
28
+ return 5; // i-x7k9p
29
+ if (count < 35000)
30
+ return 6; // i-x7k9p1
31
+ if (count < 212000)
32
+ return 7; // i-x7k9p1a
33
+ return 8; // i-x7k9p1a4
34
+ }
35
+ /**
36
+ * Convert UUID to base36 hash
37
+ * Takes first N hex digits of SHA256(UUID) and converts to base36
38
+ */
39
+ export function hashUUIDToBase36(uuid, length) {
40
+ // Remove hyphens from UUID
41
+ const cleanUUID = uuid.replace(/-/g, "");
42
+ // Hash the UUID with SHA256 for better distribution
43
+ const hash = crypto.createHash("sha256").update(cleanUUID).digest("hex");
44
+ // Take enough hex chars to generate desired base36 length
45
+ // Each base36 char needs ~1.29 hex chars (log(36)/log(16))
46
+ const hexCharsNeeded = Math.ceil(length * 1.29);
47
+ const hexSubstring = hash.substring(0, hexCharsNeeded);
48
+ // Convert hex to bigint, then to base36
49
+ const bigInt = BigInt("0x" + hexSubstring);
50
+ let result = bigInt.toString(36).toLowerCase();
51
+ // Pad with zeros if needed
52
+ if (result.length < length) {
53
+ result = result.padStart(length, "0");
54
+ }
55
+ // Truncate to exact length if needed
56
+ if (result.length > length) {
57
+ result = result.substring(0, length);
58
+ }
59
+ return result;
60
+ }
61
+ /**
62
+ * Generate hash-based ID from UUID with collision checking
63
+ */
64
+ function generateHashIDFromUUID(db, uuid, entityType, count) {
65
+ const prefix = entityType === "spec" ? "s" : "i";
66
+ const baseLength = getAdaptiveHashLength(count);
67
+ // Try progressively longer hashes on collision (very rare)
68
+ for (let length = baseLength; length <= 8; length++) {
69
+ const hash = hashUUIDToBase36(uuid, length);
70
+ const candidate = `${prefix}-${hash}`;
71
+ // Check if this ID already exists
72
+ const table = entityType === "spec" ? "specs" : "issues";
73
+ const existsStmt = db.prepare(`SELECT COUNT(*) as count FROM ${table} WHERE id = ?`);
74
+ const result = existsStmt.get(candidate);
75
+ if (result.count === 0) {
76
+ return candidate;
77
+ }
78
+ }
79
+ throw new Error(`Failed to generate unique hash ID for ${entityType} after trying lengths ${baseLength}-8`);
80
+ }
81
+ /**
82
+ * Check if ID is legacy format (SPEC-001, ISSUE-001)
83
+ */
84
+ export function isLegacyID(id) {
85
+ return /^(SPEC|ISSUE)-\d+$/.test(id);
86
+ }
87
+ /**
88
+ * Check if ID is hash format (i-x7k9, s-a3f2)
89
+ */
90
+ export function isHashID(id) {
91
+ return /^[is]-[0-9a-z]{4,8}$/.test(id);
92
+ }
93
+ /**
94
+ * Generate spec ID and UUID
95
+ * Returns hash-based ID derived from UUID
10
96
  */
11
97
  export function generateSpecId(db, outputDir) {
12
- const config = readConfig(outputDir);
13
- const nextNumber = getNextSpecNumber(db);
14
- return `${config.id_prefix.spec}-${String(nextNumber).padStart(3, "0")}`;
98
+ const uuid = crypto.randomUUID();
99
+ // Count existing specs for adaptive length
100
+ const countStmt = db.prepare(`SELECT COUNT(*) as count FROM specs`);
101
+ const result = countStmt.get();
102
+ const id = generateHashIDFromUUID(db, uuid, "spec", result.count);
103
+ return { id, uuid };
15
104
  }
16
105
  /**
17
- * Generate next issue ID based on database contents
106
+ * Generate issue ID and UUID
107
+ * Returns hash-based ID derived from UUID
18
108
  */
19
109
  export function generateIssueId(db, outputDir) {
20
- const config = readConfig(outputDir);
21
- const nextNumber = getNextIssueNumber(db);
22
- return `${config.id_prefix.issue}-${String(nextNumber).padStart(3, "0")}`;
110
+ const uuid = crypto.randomUUID();
111
+ // Count existing issues for adaptive length
112
+ const countStmt = db.prepare(`SELECT COUNT(*) as count FROM issues`);
113
+ const result = countStmt.get();
114
+ const id = generateHashIDFromUUID(db, uuid, "issue", result.count);
115
+ return { id, uuid };
23
116
  }
24
117
  /**
25
118
  * Get next spec number from database
@@ -73,47 +166,6 @@ function getNextIssueNumber(db) {
73
166
  const result = countStmt.get();
74
167
  return result.count + 1;
75
168
  }
76
- /**
77
- * Read config file (version-controlled)
78
- */
79
- function readConfig(outputDir) {
80
- const configPath = path.join(outputDir, "config.json");
81
- if (!fs.existsSync(configPath)) {
82
- // Create default config if not exists
83
- const defaultConfig = {
84
- version: VERSION,
85
- id_prefix: {
86
- spec: "SPEC",
87
- issue: "ISSUE",
88
- },
89
- };
90
- writeConfig(outputDir, defaultConfig);
91
- return defaultConfig;
92
- }
93
- const content = fs.readFileSync(configPath, "utf8");
94
- return JSON.parse(content);
95
- }
96
- /**
97
- * Write config file (version-controlled)
98
- */
99
- function writeConfig(outputDir, config) {
100
- const configPath = path.join(outputDir, "config.json");
101
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2), "utf8");
102
- }
103
- /**
104
- * Get current config
105
- */
106
- export function getConfig(outputDir) {
107
- return readConfig(outputDir);
108
- }
109
- /**
110
- * Update config (version-controlled)
111
- */
112
- export function updateConfig(outputDir, updates) {
113
- const config = readConfig(outputDir);
114
- Object.assign(config, updates);
115
- writeConfig(outputDir, config);
116
- }
117
169
  /**
118
170
  * Generate a UUID v4
119
171
  */
@@ -1 +1 @@
1
- {"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,4 +10,6 @@ export * from "./export.js";
10
10
  export * from "./import.js";
11
11
  export * from "./markdown.js";
12
12
  export * from "./sync.js";
13
+ export * from "./id-generator.js";
14
+ export * from "./config.js";
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -10,4 +10,6 @@ export * from "./export.js";
10
10
  export * from "./import.js";
11
11
  export * from "./markdown.js";
12
12
  export * from "./sync.js";
13
+ export * from "./id-generator.js";
14
+ export * from "./config.js";
13
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Markdown parser with frontmatter support
3
3
  */
4
4
  import type Database from "better-sqlite3";
5
- import type { LocationAnchor, Config } from "@sudocode-ai/types";
5
+ import type { LocationAnchor } from "@sudocode-ai/types";
6
6
  export interface ParsedMarkdown<T extends object = Record<string, any>> {
7
7
  /**
8
8
  * Parsed frontmatter data
@@ -69,19 +69,19 @@ export declare function parseMarkdownFile<T extends object = Record<string, any>
69
69
  /**
70
70
  * Extract cross-references from markdown content
71
71
  * Supports formats:
72
- * - [[entity-001]] - entity reference (type determined by database lookup)
73
- * - [[@entity-042]] - entity reference with @ prefix (for clarity)
74
- * - [[entity-001|Display Text]] - with custom display text
75
- * - [[entity-001]]{ blocks } - with relationship type (shorthand)
76
- * - [[entity-001]]{ type: blocks } - with relationship type (explicit)
77
- * - [[entity-001|Display]]{ blocks } - combination of display text and type
72
+ * - [[i-x7k9]] or [[s-14sh]] - hash-based entity reference
73
+ * - [[@i-x7k9]] - entity reference with @ prefix (for clarity)
74
+ * - [[i-x7k9|Display Text]] - with custom display text
75
+ * - [[i-x7k9]]{ blocks } - with relationship type (shorthand)
76
+ * - [[i-x7k9]]{ type: blocks } - with relationship type (explicit)
77
+ * - [[i-x7k9|Display]]{ blocks } - combination of display text and type
78
78
  *
79
79
  * If db is provided, validates references against the database and determines entity type.
80
80
  * Only returns references to entities that actually exist.
81
81
  *
82
- * If metadata is provided (but no db), uses configured ID prefixes for type detection.
82
+ * If db is not provided, determines entity type from hash-based ID prefix (i- or s-).
83
83
  */
84
- export declare function extractCrossReferences(content: string, db?: Database.Database, config?: Config): CrossReference[];
84
+ export declare function extractCrossReferences(content: string, db?: Database.Database): CrossReference[];
85
85
  /**
86
86
  * Stringify frontmatter and content back to markdown
87
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
package/dist/markdown.js CHANGED
@@ -5,7 +5,6 @@ import matter from "gray-matter";
5
5
  import * as fs from "fs";
6
6
  import { getSpec } from "./operations/specs.js";
7
7
  import { getIssue } from "./operations/issues.js";
8
- import { getConfig } from "./id-generator.js";
9
8
  import { createFeedbackAnchor } from "./operations/feedback-anchors.js";
10
9
  /**
11
10
  * Parse markdown file with YAML frontmatter
@@ -15,18 +14,8 @@ import { createFeedbackAnchor } from "./operations/feedback-anchors.js";
15
14
  */
16
15
  export function parseMarkdown(content, db, outputDir) {
17
16
  const parsed = matter(content);
18
- // Load metadata if outputDir is provided
19
- let config;
20
- if (outputDir && db) {
21
- try {
22
- config = getConfig(outputDir);
23
- }
24
- catch (error) {
25
- // Ignore - will fall back to default heuristics
26
- }
27
- }
28
17
  // Extract cross-references from content
29
- const references = extractCrossReferences(parsed.content, db, config);
18
+ const references = extractCrossReferences(parsed.content, db);
30
19
  return {
31
20
  data: parsed.data,
32
21
  content: parsed.content,
@@ -69,28 +58,27 @@ function feedbackAnchorToLocationAnchor(feedbackAnchor) {
69
58
  /**
70
59
  * Extract cross-references from markdown content
71
60
  * Supports formats:
72
- * - [[entity-001]] - entity reference (type determined by database lookup)
73
- * - [[@entity-042]] - entity reference with @ prefix (for clarity)
74
- * - [[entity-001|Display Text]] - with custom display text
75
- * - [[entity-001]]{ blocks } - with relationship type (shorthand)
76
- * - [[entity-001]]{ type: blocks } - with relationship type (explicit)
77
- * - [[entity-001|Display]]{ blocks } - combination of display text and type
61
+ * - [[i-x7k9]] or [[s-14sh]] - hash-based entity reference
62
+ * - [[@i-x7k9]] - entity reference with @ prefix (for clarity)
63
+ * - [[i-x7k9|Display Text]] - with custom display text
64
+ * - [[i-x7k9]]{ blocks } - with relationship type (shorthand)
65
+ * - [[i-x7k9]]{ type: blocks } - with relationship type (explicit)
66
+ * - [[i-x7k9|Display]]{ blocks } - combination of display text and type
78
67
  *
79
68
  * If db is provided, validates references against the database and determines entity type.
80
69
  * Only returns references to entities that actually exist.
81
70
  *
82
- * If metadata is provided (but no db), uses configured ID prefixes for type detection.
71
+ * If db is not provided, determines entity type from hash-based ID prefix (i- or s-).
83
72
  */
84
- export function extractCrossReferences(content, db, config) {
73
+ export function extractCrossReferences(content, db) {
85
74
  const references = [];
86
75
  // Pattern: [[optional-@][entity-id][|display-text]]optional-metadata
87
- // Matches:
88
- // - [[entity-001]]
89
- // - [[entity-001|Display Text]]
90
- // - [[entity-001]]{ blocks }
91
- // - [[entity-001]]{ type: depends-on }
92
- // - [[entity-001|Auth Flow]]{ implements }
93
- const refPattern = /\[\[(@)?([a-z]+-\d+)(?:\|([^\]]+))?\]\](?:\{\s*(?:type:\s*)?([a-z-]+)\s*\})?/gi;
76
+ // Supports hash-based IDs only:
77
+ // - [[i-x7k9]] or [[s-14sh]]
78
+ // - [[i-x7k9|Display Text]]
79
+ // - [[i-x7k9]]{ blocks }
80
+ // - [[i-x7k9]]{ type: depends-on }
81
+ const refPattern = /\[\[(@)?([is]-[0-9a-z]{4,8})(?:\|([^\]]+))?\]\](?:\{\s*(?:type:\s*)?([a-z-]+)\s*\})?/gi;
94
82
  let match;
95
83
  while ((match = refPattern.exec(content)) !== null) {
96
84
  const hasAt = match[1] === "@";
@@ -139,25 +127,9 @@ export function extractCrossReferences(content, db, config) {
139
127
  }
140
128
  }
141
129
  else {
142
- let type;
143
- if (config) {
144
- const specPrefix = config.id_prefix.spec.toLowerCase();
145
- const issuePrefix = config.id_prefix.issue.toLowerCase();
146
- if (hasAt || id.toLowerCase().startsWith(issuePrefix + "-")) {
147
- type = "issue";
148
- }
149
- else if (id.toLowerCase().startsWith(specPrefix + "-")) {
150
- type = "spec";
151
- }
152
- else {
153
- // TODO: Check the actual entity ID.
154
- // TODO: No issue resolved - skip the reference.
155
- type = "spec";
156
- }
157
- }
158
- else {
159
- type = hasAt || id.startsWith("issue-") ? "issue" : "spec";
160
- }
130
+ // Determine type from hash-based ID prefix
131
+ // Hash IDs always use i- for issues, s- for specs
132
+ const type = id.startsWith("i-") ? "issue" : "spec";
161
133
  references.push({
162
134
  match: match[0],
163
135
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAsDxE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,EAAsB,EACtB,SAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/B,yCAAyC;IACzC,IAAI,MAA0B,CAAC;IAC/B,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gDAAgD;QAClD,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAEtE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAS;QACtB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,OAAO;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,EAAsB,EACtB,SAAkB;IAElB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,aAAa,CAAI,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,SAAiB;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CACrC,cAAuD;IAEvD,OAAO;QACL,eAAe,EAAE,cAAc,CAAC,eAAe;QAC/C,aAAa,EAAE,cAAc,CAAC,aAAa;QAC3C,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,YAAY,EAAE,cAAc,CAAC,YAAY;QACzC,cAAc,EAAE,cAAc,CAAC,cAAc;QAC7C,aAAa,EAAE,cAAc,CAAC,aAAa;QAC3C,YAAY,EAAE,cAAc,CAAC,YAAY;KAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,EAAsB,EACtB,MAAe;IAEf,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,qEAAqE;IACrE,WAAW;IACX,mBAAmB;IACnB,gCAAgC;IAChC,6BAA6B;IAC7B,uCAAuC;IACvC,2CAA2C;IAC3C,MAAM,UAAU,GACd,gFAAgF,CAAC;IAEnF,IAAI,KAA6B,CAAC;IAElC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAE1C,4CAA4C;QAC5C,IAAI,MAAkC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,cAAc,GAAG,oBAAoB,CACzC,OAAO,EACP,UAAU,EACV,KAAK,CAAC,KAAK,CACZ,CAAC;YACF,MAAM,GAAG,8BAA8B,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gDAAgD;YAChD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,UAAU,GAA4B,IAAI,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,IAAI,EAAE,CAAC;oBACT,UAAU,GAAG,MAAM,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;YAElB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACV,UAAU,GAAG,OAAO,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;YACpB,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACf,EAAE;oBACF,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,WAAW;oBACX,gBAAgB;oBAChB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAsB,CAAC;YAC3B,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACzD,IAAI,KAAK,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;oBAC5D,IAAI,GAAG,OAAO,CAAC;gBACjB,CAAC;qBAAM,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;oBACzD,IAAI,GAAG,MAAM,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,oCAAoC;oBACpC,gDAAgD;oBAChD,IAAI,GAAG,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7D,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,EAAE;gBACF,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW;gBACX,gBAAgB;gBAChB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAO,EACP,OAAe;IAEf,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,eAAuB,EACvB,OAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAEvC,0CAA0C;IAC1C,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,IAAI;QACd,GAAG,OAAO;KACX,CAAC;IAEF,wEAAwE;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CACnE,CAAC;IAEF,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,OAAmB;IAEnB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAO,EACP,OAAe;IAEf,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,IAAO,EACP,OAAe;IAEf,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,IAAS,CAAC;AAC1B,CAAC;AAsBD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,+CAA+C;IAC/C,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC9E,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GACd,oBAAoB,CAAC,KAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/D,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QAC3C,CAAC,CAAC,gBAAgB,CAAC;IAErB,yDAAyD;IACzD,MAAM,eAAe,GACnB,yJAAyJ,CAAC;IAE5J,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QAE5E,oFAAoF;QACpF,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CACrC,oCAAoC,CACrC,CAAC;QAEF,MAAM,YAAY,GAAyB;YACzC,EAAE;YACF,MAAM;YACN,SAAS,EAAE,SAAS,IAAI,SAAS;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;gBACnC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACjE,MAAM,EACJ,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;oBACxB,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;wBAC1B,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,OAAO;aAChB;YACD,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE,EAAE,EAAE,kDAAkD;SAClE,CAAC;QAEF,uBAAuB;QACvB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClE,IAAI,eAAe,EAAE,CAAC;YACpB,YAAY,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgC;IAEhC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,GAAG,iCAAiC,CAAC;IAE/C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,6BAA6B;QAC7B,MAAM,eAAe,GACnB,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO;YAC5B,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW;gBAClC,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,GAAG,CAAC;QAEZ,kBAAkB;QAClB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5C,WAAW,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC;QACtF,CAAC;aAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5B,WAAW,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,WAAW,eAAe,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3D,MAAM,IAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,IAAI,CAAC;QACtD,MAAM,IAAI,aAAa,EAAE,CAAC,IAAI,MAAM,CAAC;QACrC,MAAM,IAAI,iBAAiB,WAAW,MAAM,CAAC;QAC7C,MAAM,IAAI,eAAe,EAAE,CAAC,MAAM,MAAM,CAAC;QACzC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC;QAE5B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,qBAAqB,EAAE,CAAC,UAAU,IAAI,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAoB,EACpB,QAAgC;IAEhC,8CAA8C;IAC9C,MAAM,oBAAoB,GAAG,YAAY,CAAC,KAAK,CAC7C,iCAAiC,CAClC,CAAC;IAEF,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAM,CAAC;QAE/C,mEAAmE;QACnE,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAM,GAAG,CAAC,EAAE,CAAC;YACpC,yCAAyC;YACzC,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,KAAM,CAAC;YAC9C,YAAY;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,gBAAgB,EAAE,CAAC;QACrB,qDAAqD;QACrD,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,gBAAgB,CAAC;IAClE,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAsB3C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAkED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAoKrB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CA0DrB"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAsB3C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAoED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAoKrB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CA0DrB"}
package/dist/sync.js CHANGED
@@ -26,12 +26,13 @@ function cleanFrontmatterForMarkdown(data) {
26
26
  function initializeFrontmatter(db, data, entityType, mdPath, outputDir, user) {
27
27
  const now = new Date().toISOString();
28
28
  const initialized = { ...data };
29
- // Generate ID if missing
29
+ // Generate ID and UUID if missing
30
30
  if (!initialized.id) {
31
- initialized.id =
32
- entityType === "spec"
33
- ? generateSpecId(db, outputDir)
34
- : generateIssueId(db, outputDir);
31
+ const generated = entityType === "spec"
32
+ ? generateSpecId(db, outputDir)
33
+ : generateIssueId(db, outputDir);
34
+ initialized.id = generated.id;
35
+ initialized.uuid = generated.uuid;
35
36
  }
36
37
  // Extract title from content if missing
37
38
  if (!initialized.title) {