@prompd/cli 0.3.3

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 (223) hide show
  1. package/README.md +162 -0
  2. package/bin/prompd.js +23 -0
  3. package/dist/commands/cache.d.ts +3 -0
  4. package/dist/commands/cache.d.ts.map +1 -0
  5. package/dist/commands/cache.js +199 -0
  6. package/dist/commands/cache.js.map +1 -0
  7. package/dist/commands/compile.d.ts +9 -0
  8. package/dist/commands/compile.d.ts.map +1 -0
  9. package/dist/commands/compile.js +104 -0
  10. package/dist/commands/compile.js.map +1 -0
  11. package/dist/commands/config.d.ts +7 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +212 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/create.d.ts +3 -0
  16. package/dist/commands/create.d.ts.map +1 -0
  17. package/dist/commands/create.js +183 -0
  18. package/dist/commands/create.js.map +1 -0
  19. package/dist/commands/deps.d.ts +3 -0
  20. package/dist/commands/deps.d.ts.map +1 -0
  21. package/dist/commands/deps.js +192 -0
  22. package/dist/commands/deps.js.map +1 -0
  23. package/dist/commands/explain.d.ts +3 -0
  24. package/dist/commands/explain.d.ts.map +1 -0
  25. package/dist/commands/explain.js +227 -0
  26. package/dist/commands/explain.js.map +1 -0
  27. package/dist/commands/git.d.ts +3 -0
  28. package/dist/commands/git.d.ts.map +1 -0
  29. package/dist/commands/git.js +306 -0
  30. package/dist/commands/git.js.map +1 -0
  31. package/dist/commands/init.d.ts +3 -0
  32. package/dist/commands/init.d.ts.map +1 -0
  33. package/dist/commands/init.js +177 -0
  34. package/dist/commands/init.js.map +1 -0
  35. package/dist/commands/list.d.ts +3 -0
  36. package/dist/commands/list.d.ts.map +1 -0
  37. package/dist/commands/list.js +126 -0
  38. package/dist/commands/list.js.map +1 -0
  39. package/dist/commands/mcp.d.ts +3 -0
  40. package/dist/commands/mcp.d.ts.map +1 -0
  41. package/dist/commands/mcp.js +326 -0
  42. package/dist/commands/mcp.js.map +1 -0
  43. package/dist/commands/namespace.d.ts +3 -0
  44. package/dist/commands/namespace.d.ts.map +1 -0
  45. package/dist/commands/namespace.js +113 -0
  46. package/dist/commands/namespace.js.map +1 -0
  47. package/dist/commands/package.d.ts +23 -0
  48. package/dist/commands/package.d.ts.map +1 -0
  49. package/dist/commands/package.js +746 -0
  50. package/dist/commands/package.js.map +1 -0
  51. package/dist/commands/provider.d.ts +3 -0
  52. package/dist/commands/provider.d.ts.map +1 -0
  53. package/dist/commands/provider.js +285 -0
  54. package/dist/commands/provider.js.map +1 -0
  55. package/dist/commands/registry.d.ts +9 -0
  56. package/dist/commands/registry.d.ts.map +1 -0
  57. package/dist/commands/registry.js +361 -0
  58. package/dist/commands/registry.js.map +1 -0
  59. package/dist/commands/run.d.ts +3 -0
  60. package/dist/commands/run.d.ts.map +1 -0
  61. package/dist/commands/run.js +157 -0
  62. package/dist/commands/run.js.map +1 -0
  63. package/dist/commands/show.d.ts +3 -0
  64. package/dist/commands/show.d.ts.map +1 -0
  65. package/dist/commands/show.js +90 -0
  66. package/dist/commands/show.js.map +1 -0
  67. package/dist/commands/uninstall.d.ts +3 -0
  68. package/dist/commands/uninstall.d.ts.map +1 -0
  69. package/dist/commands/uninstall.js +95 -0
  70. package/dist/commands/uninstall.js.map +1 -0
  71. package/dist/commands/validate.d.ts +3 -0
  72. package/dist/commands/validate.d.ts.map +1 -0
  73. package/dist/commands/validate.js +57 -0
  74. package/dist/commands/validate.js.map +1 -0
  75. package/dist/commands/version.d.ts +3 -0
  76. package/dist/commands/version.d.ts.map +1 -0
  77. package/dist/commands/version.js +166 -0
  78. package/dist/commands/version.js.map +1 -0
  79. package/dist/index.d.ts +5 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +388 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/lib/auth.d.ts +164 -0
  84. package/dist/lib/auth.d.ts.map +1 -0
  85. package/dist/lib/auth.js +388 -0
  86. package/dist/lib/auth.js.map +1 -0
  87. package/dist/lib/compiler/file-system.d.ts +178 -0
  88. package/dist/lib/compiler/file-system.d.ts.map +1 -0
  89. package/dist/lib/compiler/file-system.js +440 -0
  90. package/dist/lib/compiler/file-system.js.map +1 -0
  91. package/dist/lib/compiler/formatters/anthropic.d.ts +21 -0
  92. package/dist/lib/compiler/formatters/anthropic.d.ts.map +1 -0
  93. package/dist/lib/compiler/formatters/anthropic.js +95 -0
  94. package/dist/lib/compiler/formatters/anthropic.js.map +1 -0
  95. package/dist/lib/compiler/formatters/markdown.d.ts +17 -0
  96. package/dist/lib/compiler/formatters/markdown.d.ts.map +1 -0
  97. package/dist/lib/compiler/formatters/markdown.js +114 -0
  98. package/dist/lib/compiler/formatters/markdown.js.map +1 -0
  99. package/dist/lib/compiler/formatters/openai.d.ts +21 -0
  100. package/dist/lib/compiler/formatters/openai.d.ts.map +1 -0
  101. package/dist/lib/compiler/formatters/openai.js +98 -0
  102. package/dist/lib/compiler/formatters/openai.js.map +1 -0
  103. package/dist/lib/compiler/index.d.ts +56 -0
  104. package/dist/lib/compiler/index.d.ts.map +1 -0
  105. package/dist/lib/compiler/index.js +165 -0
  106. package/dist/lib/compiler/index.js.map +1 -0
  107. package/dist/lib/compiler/language-map.d.ts +31 -0
  108. package/dist/lib/compiler/language-map.d.ts.map +1 -0
  109. package/dist/lib/compiler/language-map.js +156 -0
  110. package/dist/lib/compiler/language-map.js.map +1 -0
  111. package/dist/lib/compiler/package-resolver.d.ts +68 -0
  112. package/dist/lib/compiler/package-resolver.d.ts.map +1 -0
  113. package/dist/lib/compiler/package-resolver.js +254 -0
  114. package/dist/lib/compiler/package-resolver.js.map +1 -0
  115. package/dist/lib/compiler/pipeline.d.ts +53 -0
  116. package/dist/lib/compiler/pipeline.d.ts.map +1 -0
  117. package/dist/lib/compiler/pipeline.js +209 -0
  118. package/dist/lib/compiler/pipeline.js.map +1 -0
  119. package/dist/lib/compiler/prompd-loader.d.ts +108 -0
  120. package/dist/lib/compiler/prompd-loader.d.ts.map +1 -0
  121. package/dist/lib/compiler/prompd-loader.js +270 -0
  122. package/dist/lib/compiler/prompd-loader.js.map +1 -0
  123. package/dist/lib/compiler/section-override.d.ts +40 -0
  124. package/dist/lib/compiler/section-override.d.ts.map +1 -0
  125. package/dist/lib/compiler/section-override.js +296 -0
  126. package/dist/lib/compiler/section-override.js.map +1 -0
  127. package/dist/lib/compiler/stages/assets.d.ts +71 -0
  128. package/dist/lib/compiler/stages/assets.d.ts.map +1 -0
  129. package/dist/lib/compiler/stages/assets.js +456 -0
  130. package/dist/lib/compiler/stages/assets.js.map +1 -0
  131. package/dist/lib/compiler/stages/codegen.d.ts +17 -0
  132. package/dist/lib/compiler/stages/codegen.d.ts.map +1 -0
  133. package/dist/lib/compiler/stages/codegen.js +64 -0
  134. package/dist/lib/compiler/stages/codegen.js.map +1 -0
  135. package/dist/lib/compiler/stages/dependency.d.ts +38 -0
  136. package/dist/lib/compiler/stages/dependency.d.ts.map +1 -0
  137. package/dist/lib/compiler/stages/dependency.js +307 -0
  138. package/dist/lib/compiler/stages/dependency.js.map +1 -0
  139. package/dist/lib/compiler/stages/lexical.d.ts +19 -0
  140. package/dist/lib/compiler/stages/lexical.d.ts.map +1 -0
  141. package/dist/lib/compiler/stages/lexical.js +92 -0
  142. package/dist/lib/compiler/stages/lexical.js.map +1 -0
  143. package/dist/lib/compiler/stages/semantic.d.ts +20 -0
  144. package/dist/lib/compiler/stages/semantic.d.ts.map +1 -0
  145. package/dist/lib/compiler/stages/semantic.js +166 -0
  146. package/dist/lib/compiler/stages/semantic.js.map +1 -0
  147. package/dist/lib/compiler/stages/template.d.ts +94 -0
  148. package/dist/lib/compiler/stages/template.d.ts.map +1 -0
  149. package/dist/lib/compiler/stages/template.js +1044 -0
  150. package/dist/lib/compiler/stages/template.js.map +1 -0
  151. package/dist/lib/compiler/types.d.ts +200 -0
  152. package/dist/lib/compiler/types.d.ts.map +1 -0
  153. package/dist/lib/compiler/types.js +137 -0
  154. package/dist/lib/compiler/types.js.map +1 -0
  155. package/dist/lib/config.d.ts +29 -0
  156. package/dist/lib/config.d.ts.map +1 -0
  157. package/dist/lib/config.js +375 -0
  158. package/dist/lib/config.js.map +1 -0
  159. package/dist/lib/errors.d.ts +19 -0
  160. package/dist/lib/errors.d.ts.map +1 -0
  161. package/dist/lib/errors.js +47 -0
  162. package/dist/lib/errors.js.map +1 -0
  163. package/dist/lib/executor.d.ts +18 -0
  164. package/dist/lib/executor.d.ts.map +1 -0
  165. package/dist/lib/executor.js +372 -0
  166. package/dist/lib/executor.js.map +1 -0
  167. package/dist/lib/git.d.ts +74 -0
  168. package/dist/lib/git.d.ts.map +1 -0
  169. package/dist/lib/git.js +254 -0
  170. package/dist/lib/git.js.map +1 -0
  171. package/dist/lib/index.d.ts +43 -0
  172. package/dist/lib/index.d.ts.map +1 -0
  173. package/dist/lib/index.js +108 -0
  174. package/dist/lib/index.js.map +1 -0
  175. package/dist/lib/mcp.d.ts +42 -0
  176. package/dist/lib/mcp.d.ts.map +1 -0
  177. package/dist/lib/mcp.js +477 -0
  178. package/dist/lib/mcp.js.map +1 -0
  179. package/dist/lib/model-updater.d.ts +51 -0
  180. package/dist/lib/model-updater.d.ts.map +1 -0
  181. package/dist/lib/model-updater.js +275 -0
  182. package/dist/lib/model-updater.js.map +1 -0
  183. package/dist/lib/parser.d.ts +9 -0
  184. package/dist/lib/parser.d.ts.map +1 -0
  185. package/dist/lib/parser.js +197 -0
  186. package/dist/lib/parser.js.map +1 -0
  187. package/dist/lib/registry.d.ts +183 -0
  188. package/dist/lib/registry.d.ts.map +1 -0
  189. package/dist/lib/registry.js +786 -0
  190. package/dist/lib/registry.js.map +1 -0
  191. package/dist/lib/rpc-server.d.ts +78 -0
  192. package/dist/lib/rpc-server.d.ts.map +1 -0
  193. package/dist/lib/rpc-server.js +404 -0
  194. package/dist/lib/rpc-server.js.map +1 -0
  195. package/dist/lib/security.d.ts +120 -0
  196. package/dist/lib/security.d.ts.map +1 -0
  197. package/dist/lib/security.js +478 -0
  198. package/dist/lib/security.js.map +1 -0
  199. package/dist/lib/validation.d.ts +106 -0
  200. package/dist/lib/validation.d.ts.map +1 -0
  201. package/dist/lib/validation.js +398 -0
  202. package/dist/lib/validation.js.map +1 -0
  203. package/dist/lib/version.d.ts +29 -0
  204. package/dist/lib/version.d.ts.map +1 -0
  205. package/dist/lib/version.js +202 -0
  206. package/dist/lib/version.js.map +1 -0
  207. package/dist/lib/workflow-engine.d.ts +161 -0
  208. package/dist/lib/workflow-engine.d.ts.map +1 -0
  209. package/dist/lib/workflow-engine.js +422 -0
  210. package/dist/lib/workflow-engine.js.map +1 -0
  211. package/dist/lib/workflow.d.ts +102 -0
  212. package/dist/lib/workflow.d.ts.map +1 -0
  213. package/dist/lib/workflow.js +228 -0
  214. package/dist/lib/workflow.js.map +1 -0
  215. package/dist/server.d.ts +8 -0
  216. package/dist/server.d.ts.map +1 -0
  217. package/dist/server.js +134 -0
  218. package/dist/server.js.map +1 -0
  219. package/dist/types/index.d.ts +116 -0
  220. package/dist/types/index.d.ts.map +1 -0
  221. package/dist/types/index.js +144 -0
  222. package/dist/types/index.js.map +1 -0
  223. package/package.json +104 -0
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ /**
3
+ * Section Override Processing
4
+ *
5
+ * Provides complete functionality for parsing, validating, and applying
6
+ * section-based content overrides in prompd template inheritance.
7
+ *
8
+ * This is a direct port of the Python CLI's SectionOverrideProcessor.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.SectionOverrideProcessor = void 0;
45
+ const path = __importStar(require("path"));
46
+ const fs = __importStar(require("fs-extra"));
47
+ const errors_1 = require("../errors");
48
+ class SectionOverrideProcessor {
49
+ constructor() {
50
+ // Pattern to match markdown headings (# through ######)
51
+ this.headingPattern = /^(#{1,6})\s+(.+)$/gm;
52
+ // Pattern to match section ID comments
53
+ this.sectionIdPattern = /<!--\s*section-id:\s*([a-z0-9-]+)\s*-->/i;
54
+ }
55
+ /**
56
+ * Extract all sections from markdown content.
57
+ */
58
+ extractSections(content) {
59
+ if (!content || !content.trim()) {
60
+ return new Map();
61
+ }
62
+ const sections = new Map();
63
+ const lines = content.split('\n');
64
+ const encounteredSectionIds = new Set();
65
+ // Track explicit section ID comments
66
+ const explicitSectionIds = new Map();
67
+ for (let i = 0; i < lines.length; i++) {
68
+ const match = this.sectionIdPattern.exec(lines[i]);
69
+ if (match) {
70
+ const sectionId = match[1];
71
+ this.validateSectionId(sectionId, i + 1);
72
+ explicitSectionIds.set(i, sectionId);
73
+ }
74
+ }
75
+ // Find all headings and create sections
76
+ const headingMatches = [];
77
+ let match;
78
+ // Reset regex state
79
+ this.headingPattern.lastIndex = 0;
80
+ while ((match = this.headingPattern.exec(content)) !== null) {
81
+ const headingLevel = match[1].length; // Number of # characters
82
+ const headingText = match[2].trim();
83
+ const headingLine = content.substring(0, match.index).split('\n').length - 1;
84
+ headingMatches.push({
85
+ level: headingLevel,
86
+ text: headingText,
87
+ line: headingLine,
88
+ index: match.index
89
+ });
90
+ }
91
+ // Process each heading to create sections
92
+ for (let i = 0; i < headingMatches.length; i++) {
93
+ const heading = headingMatches[i];
94
+ // Determine section ID
95
+ let sectionId = null;
96
+ // Check for explicit section ID comment before this heading (within 5 lines)
97
+ for (let lineNum = heading.line; lineNum >= Math.max(0, heading.line - 5); lineNum--) {
98
+ if (explicitSectionIds.has(lineNum)) {
99
+ sectionId = explicitSectionIds.get(lineNum);
100
+ break;
101
+ }
102
+ }
103
+ // If no explicit ID, generate from heading text
104
+ if (!sectionId) {
105
+ sectionId = this.generateSectionId(heading.text);
106
+ }
107
+ // Validate section ID
108
+ this.validateSectionId(sectionId, heading.line + 1);
109
+ // Check for duplicate section IDs
110
+ if (encounteredSectionIds.has(sectionId)) {
111
+ throw new errors_1.ParseError(`Duplicate section ID '${sectionId}' at line ${heading.line + 1}. ` +
112
+ `Section IDs must be unique.`);
113
+ }
114
+ encounteredSectionIds.add(sectionId);
115
+ // Determine section content boundaries
116
+ const sectionStart = heading.index;
117
+ const nextHeading = headingMatches[i + 1];
118
+ const sectionEnd = nextHeading ? nextHeading.index : content.length;
119
+ // Extract section content
120
+ const sectionContent = content.substring(sectionStart, sectionEnd).trim();
121
+ sections.set(sectionId, {
122
+ id: sectionId,
123
+ headingText: heading.text,
124
+ content: sectionContent,
125
+ startLine: heading.line,
126
+ endLine: content.substring(0, sectionEnd).split('\n').length - 1,
127
+ headingLevel: heading.level
128
+ });
129
+ }
130
+ return sections;
131
+ }
132
+ /**
133
+ * Apply overrides and merge parent/child sections.
134
+ */
135
+ async applyOverrides(parentSections, childSections, overrides, baseDir, verbose = false, fileSystem) {
136
+ // Start with parent sections as base
137
+ const mergedSections = new Map(parentSections);
138
+ // Apply overrides
139
+ for (const [sectionId, overridePath] of Object.entries(overrides)) {
140
+ if (!mergedSections.has(sectionId)) {
141
+ // Override references a section that doesn't exist in parent
142
+ if (verbose) {
143
+ const available = Array.from(mergedSections.keys()).sort().join(', ');
144
+ console.log(`Warning: Override section '${sectionId}' not found in parent. Available: ${available}`);
145
+ }
146
+ continue;
147
+ }
148
+ if (overridePath === null) {
149
+ // Remove section
150
+ mergedSections.delete(sectionId);
151
+ if (verbose) {
152
+ console.log(` - Removing section '${sectionId}'`);
153
+ }
154
+ }
155
+ else {
156
+ // Replace section with content from file
157
+ try {
158
+ const overrideContent = await this.loadOverrideContent(overridePath, baseDir, fileSystem);
159
+ const originalSection = mergedSections.get(sectionId);
160
+ mergedSections.set(sectionId, {
161
+ ...originalSection,
162
+ content: overrideContent
163
+ });
164
+ if (verbose) {
165
+ console.log(` - Replacing section '${sectionId}' with content from ${overridePath}`);
166
+ }
167
+ }
168
+ catch (error) {
169
+ throw new Error(`Failed to apply override for section '${sectionId}': ${error instanceof Error ? error.message : String(error)}`);
170
+ }
171
+ }
172
+ }
173
+ // Merge child sections (child overrides parent for matching IDs)
174
+ for (const [sectionId, childSection] of childSections.entries()) {
175
+ mergedSections.set(sectionId, childSection);
176
+ if (verbose && parentSections.has(sectionId)) {
177
+ console.log(` - Child overrides parent section '${sectionId}'`);
178
+ }
179
+ else if (verbose) {
180
+ console.log(` - Adding child section '${sectionId}'`);
181
+ }
182
+ }
183
+ // Reconstruct content from merged sections
184
+ const contentParts = [];
185
+ for (const section of mergedSections.values()) {
186
+ contentParts.push(section.content);
187
+ }
188
+ return contentParts.join('\n\n');
189
+ }
190
+ /**
191
+ * Load override content from a file.
192
+ */
193
+ async loadOverrideContent(overridePath, baseDir, fileSystem) {
194
+ // Security: Validate and resolve path
195
+ const resolvedPath = this.resolveOverridePath(overridePath, baseDir);
196
+ // If using custom file system, use it directly
197
+ if (fileSystem) {
198
+ if (!await fileSystem.exists(resolvedPath)) {
199
+ throw new Error(`Override file not found: ${resolvedPath}`);
200
+ }
201
+ try {
202
+ const content = await fileSystem.readFile(resolvedPath);
203
+ return content.trim();
204
+ }
205
+ catch (error) {
206
+ throw new Error(`Failed to read override file: ${error instanceof Error ? error.message : String(error)}`);
207
+ }
208
+ }
209
+ // Otherwise use Node.js fs (default behavior)
210
+ // Security: Check file exists
211
+ if (!await fs.pathExists(resolvedPath)) {
212
+ throw new Error(`Override file not found: ${resolvedPath}`);
213
+ }
214
+ // Security: Check it's a regular file
215
+ const stats = await fs.stat(resolvedPath);
216
+ if (!stats.isFile()) {
217
+ throw new errors_1.SecurityError(`Override path must be a regular file: ${resolvedPath}`);
218
+ }
219
+ // Security: Check file size (max 10MB)
220
+ const maxFileSize = 10 * 1024 * 1024;
221
+ if (stats.size > maxFileSize) {
222
+ throw new errors_1.SecurityError(`Override file too large: ${stats.size} bytes (max: ${maxFileSize})`);
223
+ }
224
+ // Load content
225
+ try {
226
+ const content = await fs.readFile(resolvedPath, 'utf-8');
227
+ return content.trim();
228
+ }
229
+ catch (error) {
230
+ throw new Error(`Failed to read override file: ${error instanceof Error ? error.message : String(error)}`);
231
+ }
232
+ }
233
+ /**
234
+ * Resolve override path with security checks.
235
+ */
236
+ resolveOverridePath(overridePath, baseDir) {
237
+ // Security: Path traversal protection
238
+ const normalized = path.normalize(overridePath);
239
+ // Security: Detect path traversal attempts
240
+ if (normalized.includes('..') && !overridePath.startsWith('./') && !overridePath.startsWith('../')) {
241
+ throw new errors_1.SecurityError(`Path traversal detected in override path: ${overridePath}`);
242
+ }
243
+ // Security: Reject absolute paths unless they're in safe locations
244
+ if (path.isAbsolute(normalized)) {
245
+ // Allow absolute paths only within the project or home directory
246
+ const projectRoot = process.cwd();
247
+ const homeDir = require('os').homedir();
248
+ if (!normalized.startsWith(projectRoot) && !normalized.startsWith(homeDir)) {
249
+ throw new errors_1.SecurityError(`Absolute paths outside project not allowed: ${overridePath}`);
250
+ }
251
+ return normalized;
252
+ }
253
+ // Resolve relative path from base directory
254
+ const resolved = path.resolve(baseDir, normalized);
255
+ // Security: Ensure resolved path doesn't escape base directory
256
+ if (!resolved.startsWith(baseDir) && !resolved.startsWith(process.cwd())) {
257
+ throw new errors_1.SecurityError(`Override path escapes base directory: ${overridePath}`);
258
+ }
259
+ return resolved;
260
+ }
261
+ /**
262
+ * Generate a section ID from heading text (kebab-case).
263
+ */
264
+ generateSectionId(headingText) {
265
+ return headingText
266
+ .toLowerCase()
267
+ .trim()
268
+ .replace(/[^a-z0-9\s-]/g, '') // Remove non-alphanumeric except spaces and hyphens
269
+ .replace(/\s+/g, '-') // Replace spaces with hyphens
270
+ .replace(/-+/g, '-') // Collapse multiple hyphens
271
+ .replace(/^-|-$/g, ''); // Remove leading/trailing hyphens
272
+ }
273
+ /**
274
+ * Validate section ID format.
275
+ */
276
+ validateSectionId(sectionId, lineNumber) {
277
+ // Section IDs must be kebab-case (lowercase letters, numbers, hyphens)
278
+ const validPattern = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
279
+ if (!validPattern.test(sectionId)) {
280
+ const location = lineNumber ? ` at line ${lineNumber}` : '';
281
+ throw new errors_1.ValidationError(`Invalid section ID '${sectionId}'${location}. ` +
282
+ `Section IDs must be kebab-case (lowercase letters, numbers, hyphens only).`);
283
+ }
284
+ // Security: Check for excessively long IDs (potential DoS)
285
+ if (sectionId.length > 100) {
286
+ throw new errors_1.ValidationError(`Section ID too long: ${sectionId.length} characters (max: 100)`);
287
+ }
288
+ // Security: Reject IDs that might be used for code injection
289
+ const dangerousPatterns = ['__proto__', 'constructor', 'prototype'];
290
+ if (dangerousPatterns.some(pattern => sectionId.includes(pattern))) {
291
+ throw new errors_1.SecurityError(`Section ID contains forbidden pattern: ${sectionId}`);
292
+ }
293
+ }
294
+ }
295
+ exports.SectionOverrideProcessor = SectionOverrideProcessor;
296
+ //# sourceMappingURL=section-override.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-override.js","sourceRoot":"","sources":["../../../src/lib/compiler/section-override.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Asset Extraction Stage
3
+ *
4
+ * Extracts content from binary files (Excel, Word, PDF, Images) with
5
+ * comprehensive security validation.
6
+ *
7
+ * Supported formats:
8
+ * - Excel: .xlsx, .xls
9
+ * - Word: .docx
10
+ * - PDF: .pdf
11
+ * - Images: .png, .jpg, .jpeg, .gif (metadata only)
12
+ * - Text: .txt, .md, .json, .yaml, .yml
13
+ */
14
+ import { CompilerStage, CompilationContext } from '../types';
15
+ export declare class AssetExtractionStage implements CompilerStage {
16
+ private maxFileSize;
17
+ private allowedExtensions;
18
+ constructor();
19
+ process(context: CompilationContext): Promise<void>;
20
+ /**
21
+ * Process context files from metadata.
22
+ * Extracts file content and adds to context.contexts array.
23
+ * This matches the Python CLI behavior where context is output at the top.
24
+ */
25
+ private processContextFiles;
26
+ /**
27
+ * Process YAML-defined section file references.
28
+ * Replaces placeholder content with extracted file content.
29
+ */
30
+ private processYamlSectionFiles;
31
+ /**
32
+ * Process inline file references in content.
33
+ * Replaces [file:./path] placeholders with extracted content.
34
+ */
35
+ private processInlineFileReferences;
36
+ /**
37
+ * Extract content from a file with security validation.
38
+ */
39
+ private extractFile;
40
+ /**
41
+ * Security: Validate file path for path traversal and other attacks.
42
+ */
43
+ private validateFilePath;
44
+ /**
45
+ * Security: Validate file properties.
46
+ */
47
+ private validateFile;
48
+ /**
49
+ * Extract content from Excel files.
50
+ */
51
+ private extractExcel;
52
+ /**
53
+ * Extract content from Word documents.
54
+ */
55
+ private extractWord;
56
+ /**
57
+ * Extract content from PDF files.
58
+ */
59
+ private extractPdf;
60
+ /**
61
+ * Extract metadata from images (OCR not implemented).
62
+ */
63
+ private extractImageMetadata;
64
+ /**
65
+ * Extract plain text content.
66
+ * For code files, wraps content in markdown code blocks with appropriate language identifier.
67
+ */
68
+ private extractText;
69
+ getName(): string;
70
+ }
71
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../src/lib/compiler/stages/assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AA2B7D,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,iBAAiB,CAAc;;IAgBjC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzD;;;;OAIG;YACW,mBAAmB;IA2CjC;;;OAGG;YACW,uBAAuB;IA0DrC;;;OAGG;YACW,2BAA2B;IAwCzC;;OAEG;YACW,WAAW;IAmDzB;;OAEG;YACW,gBAAgB;IAgB9B;;OAEG;YACW,YAAY;IAsB1B;;OAEG;YACW,YAAY;IAsB1B;;OAEG;YACW,WAAW;IAiBzB;;OAEG;YACW,UAAU;IAwBxB;;OAEG;YACW,oBAAoB;IAyBlC;;;OAGG;YACW,WAAW;IA+BzB,OAAO,IAAI,MAAM;CAGlB"}