@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,372 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.PrompdExecutor = void 0;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const fs = __importStar(require("fs-extra"));
42
+ const parser_1 = require("./parser");
43
+ const config_1 = require("./config");
44
+ class PrompdExecutor {
45
+ constructor() {
46
+ this.parser = new parser_1.PrompdParser();
47
+ this.configManager = config_1.ConfigManager.getInstance();
48
+ }
49
+ async execute(filePath, options) {
50
+ const prompd = await this.parser.parseFile(filePath);
51
+ const config = await this.configManager.loadConfig();
52
+ // Load parameters from files if specified
53
+ let params = options.params || {};
54
+ if (options.paramFiles) {
55
+ for (const paramFile of options.paramFiles) {
56
+ const fileParams = await this.loadParametersFromFile(paramFile);
57
+ params = { ...fileParams, ...params }; // CLI params take precedence
58
+ }
59
+ }
60
+ // Validate required parameters
61
+ const allParams = [
62
+ ...(prompd.metadata.parameters || []),
63
+ ...(prompd.metadata.variables || [])
64
+ ];
65
+ for (const param of allParams) {
66
+ if (param.required && !(param.name in params)) {
67
+ throw new Error(`Required parameter missing: ${param.name}`);
68
+ }
69
+ }
70
+ // Apply metadata overrides if provided
71
+ let contentToProcess = prompd.content;
72
+ if (options.metaSystem || options.metaContext || options.metaUser) {
73
+ contentToProcess = this.applyMetadataOverrides(contentToProcess, filePath, options.metaSystem, options.metaContext, options.metaUser, options.verbose);
74
+ }
75
+ // Apply template processing (variable substitution + basic conditionals)
76
+ const content = this.processTemplate(contentToProcess, params);
77
+ // Get API key
78
+ const apiKey = options.apiKey || this.configManager.getApiKey(options.provider, config);
79
+ if (!apiKey && options.provider !== 'ollama') {
80
+ throw new Error(`API key required for provider ${options.provider}`);
81
+ }
82
+ if (options.verbose) {
83
+ console.log(`Executing ${filePath} with ${options.provider}/${options.model}`);
84
+ console.log('Parameters:', params);
85
+ console.log('');
86
+ }
87
+ // Execute with LLM
88
+ return await this.callLLM(options.provider, options.model, content, apiKey);
89
+ }
90
+ async loadParametersFromFile(filename) {
91
+ const content = await fs.readFile(filename, 'utf-8');
92
+ return JSON.parse(content);
93
+ }
94
+ processTemplate(content, params) {
95
+ // First, handle simple variable substitution
96
+ for (const [key, value] of Object.entries(params)) {
97
+ const placeholder = `{${key}}`;
98
+ const valueStr = typeof value === 'string' ? value : JSON.stringify(value);
99
+ content = content.replace(new RegExp(placeholder.replace(/[{}]/g, '\\$&'), 'g'), valueStr);
100
+ }
101
+ // Handle basic conditionals: {%- if condition %}...{%- endif %}
102
+ const conditionalRegex = /\{%- if ([^}]+) %\}(.*?)\{%- endif %\}/gs;
103
+ content = content.replace(conditionalRegex, (match, condition, contentBlock) => {
104
+ condition = condition.trim();
105
+ if (this.evaluateCondition(condition, params)) {
106
+ return contentBlock;
107
+ }
108
+ return '';
109
+ });
110
+ // Handle if-else conditionals: {%- if condition %}...{%- else %}...{%- endif %}
111
+ const ifElseRegex = /\{%- if ([^}]+) %\}(.*?)\{%- else %\}(.*?)\{%- endif %\}/gs;
112
+ content = content.replace(ifElseRegex, (match, condition, trueBlock, falseBlock) => {
113
+ condition = condition.trim();
114
+ if (this.evaluateCondition(condition, params)) {
115
+ return trueBlock;
116
+ }
117
+ return falseBlock;
118
+ });
119
+ return content;
120
+ }
121
+ evaluateCondition(condition, params) {
122
+ condition = condition.trim();
123
+ // Handle equality comparisons: variable == "value"
124
+ if (condition.includes('==')) {
125
+ const parts = condition.split('==');
126
+ if (parts.length === 2) {
127
+ const left = parts[0].trim();
128
+ const right = parts[1].trim().replace(/['"]/g, ''); // Remove quotes
129
+ // Get value from params
130
+ if (left in params) {
131
+ const value = params[left];
132
+ const valueStr = typeof value === 'string' ? value : String(value);
133
+ return valueStr === right;
134
+ }
135
+ return false;
136
+ }
137
+ }
138
+ // Handle simple boolean evaluation: if variable (truthy check)
139
+ if (condition in params) {
140
+ const value = params[condition];
141
+ if (typeof value === 'boolean') {
142
+ return value;
143
+ }
144
+ if (typeof value === 'string') {
145
+ return value !== '';
146
+ }
147
+ if (typeof value === 'number') {
148
+ return value !== 0;
149
+ }
150
+ return value != null;
151
+ }
152
+ return false;
153
+ }
154
+ async callLLM(provider, model, content, apiKey) {
155
+ switch (provider) {
156
+ case 'openai':
157
+ return await this.callOpenAI(model, content, apiKey);
158
+ case 'anthropic':
159
+ return await this.callAnthropic(model, content, apiKey);
160
+ case 'ollama':
161
+ return await this.callOllama(model, content);
162
+ default:
163
+ throw new Error(`Unsupported provider: ${provider}`);
164
+ }
165
+ }
166
+ async callOpenAI(model, content, apiKey) {
167
+ const config = {
168
+ method: 'POST',
169
+ url: 'https://api.openai.com/v1/chat/completions',
170
+ headers: {
171
+ 'Authorization': `Bearer ${apiKey}`,
172
+ 'Content-Type': 'application/json'
173
+ },
174
+ data: {
175
+ model,
176
+ messages: [
177
+ { role: 'user', content }
178
+ ],
179
+ max_tokens: 1000,
180
+ temperature: 0.7
181
+ },
182
+ timeout: 30000
183
+ };
184
+ try {
185
+ const response = await (0, axios_1.default)(config);
186
+ const data = response.data;
187
+ if (!data.choices || data.choices.length === 0) {
188
+ throw new Error('No response choices returned');
189
+ }
190
+ return {
191
+ success: true,
192
+ response: data.choices[0].message.content,
193
+ content: data.choices[0].message.content,
194
+ usage: data.usage ? {
195
+ promptTokens: data.usage.prompt_tokens,
196
+ completionTokens: data.usage.completion_tokens,
197
+ totalTokens: data.usage.total_tokens
198
+ } : undefined
199
+ };
200
+ }
201
+ catch (error) {
202
+ if (axios_1.default.isAxiosError(error)) {
203
+ const message = error.response?.data?.error?.message || error.message;
204
+ throw new Error(`OpenAI API error: ${message}`);
205
+ }
206
+ throw error;
207
+ }
208
+ }
209
+ async callAnthropic(model, content, apiKey) {
210
+ const config = {
211
+ method: 'POST',
212
+ url: 'https://api.anthropic.com/v1/messages',
213
+ headers: {
214
+ 'x-api-key': apiKey,
215
+ 'Content-Type': 'application/json',
216
+ 'anthropic-version': '2023-06-01'
217
+ },
218
+ data: {
219
+ model,
220
+ max_tokens: 1000,
221
+ messages: [
222
+ { role: 'user', content }
223
+ ]
224
+ },
225
+ timeout: 30000
226
+ };
227
+ try {
228
+ const response = await (0, axios_1.default)(config);
229
+ const data = response.data;
230
+ if (!data.content || data.content.length === 0) {
231
+ throw new Error('No response content returned');
232
+ }
233
+ return {
234
+ success: true,
235
+ response: data.content[0].text,
236
+ content: data.content[0].text,
237
+ usage: data.usage ? {
238
+ promptTokens: data.usage.input_tokens,
239
+ completionTokens: data.usage.output_tokens,
240
+ totalTokens: data.usage.input_tokens + data.usage.output_tokens
241
+ } : undefined
242
+ };
243
+ }
244
+ catch (error) {
245
+ if (axios_1.default.isAxiosError(error)) {
246
+ const message = error.response?.data?.error?.message || error.message;
247
+ throw new Error(`Anthropic API error: ${message}`);
248
+ }
249
+ throw error;
250
+ }
251
+ }
252
+ async callOllama(model, content) {
253
+ const config = {
254
+ method: 'POST',
255
+ url: 'http://localhost:11434/api/generate',
256
+ headers: {
257
+ 'Content-Type': 'application/json'
258
+ },
259
+ data: {
260
+ model,
261
+ prompt: content,
262
+ stream: false
263
+ },
264
+ timeout: 60000
265
+ };
266
+ try {
267
+ const response = await (0, axios_1.default)(config);
268
+ const data = response.data;
269
+ if (!data.response) {
270
+ throw new Error('No response returned from Ollama');
271
+ }
272
+ return {
273
+ success: true,
274
+ response: data.response,
275
+ content: data.response
276
+ };
277
+ }
278
+ catch (error) {
279
+ if (axios_1.default.isAxiosError(error)) {
280
+ const message = error.response?.data?.error || error.message;
281
+ throw new Error(`Ollama API error: ${message}`);
282
+ }
283
+ throw error;
284
+ }
285
+ }
286
+ getAvailableProviders() {
287
+ return ['openai', 'anthropic', 'ollama', 'groq'];
288
+ }
289
+ getProviderModels(provider) {
290
+ const modelMap = {
291
+ 'openai': ['gpt-4o', 'gpt-4o-mini', 'gpt-3.5-turbo', 'gpt-4-turbo'],
292
+ 'anthropic': ['claude-3-5-sonnet-20241022', 'claude-3-haiku-20240307', 'claude-3-opus-20240229'],
293
+ 'groq': ['llama3-8b-8192', 'mixtral-8x7b-32768'],
294
+ 'ollama': ['llama2', 'codellama', '(dynamic - depends on local installation)']
295
+ };
296
+ return modelMap[provider] || [];
297
+ }
298
+ applyMetadataOverrides(originalContent, filePath, metaSystem, metaContext, metaUser, verbose) {
299
+ const lines = originalContent.split('\n');
300
+ const result = [];
301
+ let currentSection = '';
302
+ for (const line of lines) {
303
+ if (line.startsWith('## ')) {
304
+ const sectionName = line.substring(3).trim().toLowerCase();
305
+ currentSection = sectionName;
306
+ // Add the header
307
+ result.push(line);
308
+ // Add override content if available
309
+ let overrideContent = '';
310
+ switch (currentSection) {
311
+ case 'system':
312
+ if (metaSystem) {
313
+ overrideContent = this.resolveMetadataValue(metaSystem, filePath, verbose);
314
+ currentSection = 'skip'; // Skip original content
315
+ }
316
+ break;
317
+ case 'context':
318
+ if (metaContext) {
319
+ overrideContent = this.resolveMetadataValue(metaContext, filePath, verbose);
320
+ currentSection = 'skip'; // Skip original content
321
+ }
322
+ break;
323
+ case 'user':
324
+ if (metaUser) {
325
+ overrideContent = this.resolveMetadataValue(metaUser, filePath, verbose);
326
+ currentSection = 'skip'; // Skip original content
327
+ }
328
+ break;
329
+ }
330
+ if (overrideContent) {
331
+ result.push(...overrideContent.split('\n'));
332
+ }
333
+ }
334
+ else if (currentSection === 'skip' && line.startsWith('## ')) {
335
+ // New section found, stop skipping
336
+ currentSection = '';
337
+ result.push(line);
338
+ }
339
+ else if (currentSection !== 'skip') {
340
+ // Add original line if not skipping
341
+ result.push(line);
342
+ }
343
+ }
344
+ return result.join('\n');
345
+ }
346
+ resolveMetadataValue(value, filePath, verbose) {
347
+ // Check if it's a file path
348
+ if (value.startsWith('./') || value.startsWith('/') || (value.length > 1 && value[1] === ':')) {
349
+ let resolvedPath = value;
350
+ if (value.startsWith('./')) {
351
+ // Relative path - resolve relative to current file
352
+ const currentDir = require('path').dirname(filePath);
353
+ resolvedPath = require('path').join(currentDir, value.substring(2));
354
+ }
355
+ try {
356
+ const content = fs.readFileSync(resolvedPath, 'utf-8');
357
+ if (verbose) {
358
+ console.log(`Loaded content from ${resolvedPath}`);
359
+ }
360
+ return content;
361
+ }
362
+ catch (error) {
363
+ console.error(`Error reading file '${resolvedPath}': ${error instanceof Error ? error.message : error}`);
364
+ return value; // Return original value as fallback
365
+ }
366
+ }
367
+ // Direct text content
368
+ return value;
369
+ }
370
+ }
371
+ exports.PrompdExecutor = PrompdExecutor;
372
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/lib/executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,6CAA+B;AAE/B,qCAAwC;AACxC,qCAAyC;AAEzC,MAAa,cAAc;IAA3B;QACU,WAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;QAC5B,kBAAa,GAAG,sBAAa,CAAC,WAAW,EAAE,CAAC;IAsXtD,CAAC;IApXC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAuB;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAErD,0CAA0C;QAC1C,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAChE,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,6BAA6B;YACtE,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,SAAS,GAAG;YAChB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;SACrC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClE,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAC5C,gBAAgB,EAChB,QAAQ,EACR,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,CAChB,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAE/D,cAAc;QACd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QACnD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,MAA2B;QAClE,6CAA6C;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAED,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,0CAA0C,CAAC;QACpE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;YAC7E,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC9C,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,gFAAgF;QAChF,MAAM,WAAW,GAAG,4DAA4D,CAAC;QACjF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;YACjF,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC9C,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,SAAiB,EAAE,MAA2B;QACtE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7B,mDAAmD;QACnD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB;gBAEpE,wBAAwB;gBACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnE,OAAO,QAAQ,KAAK,KAAK,CAAC;gBAC5B,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,KAAK,IAAI,IAAI,CAAC;QACvB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,KAAa,EAAE,OAAe,EAAE,MAAe;QACrF,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAO,CAAC,CAAC;YACxD,KAAK,WAAW;gBACd,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAO,CAAC,CAAC;YAC3D,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/C;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,MAAc;QACrE,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,4CAA4C;YACjD,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;iBAC1B;gBACD,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB;YACD,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;gBACzC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;oBACtC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;oBAC9C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;iBACrC,CAAC,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,OAAe,EAAE,MAAc;QACxE,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,uCAAuC;YAC5C,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,cAAc,EAAE,kBAAkB;gBAClC,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;iBAC1B;aACF;YACD,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;oBACrC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;oBAC1C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;iBAChE,CAAC,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe;QACrD,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,qCAAqC;YAC1C,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAChC,MAAM,QAAQ,GAA6B;YACzC,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC;YACnE,WAAW,EAAE,CAAC,4BAA4B,EAAE,yBAAyB,EAAE,wBAAwB,CAAC;YAChG,MAAM,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;YAChD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,2CAA2C,CAAC;SAC/E,CAAC;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAEO,sBAAsB,CAC5B,eAAuB,EACvB,QAAgB,EAChB,UAAmB,EACnB,WAAoB,EACpB,QAAiB,EACjB,OAAiB;QAEjB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC3D,cAAc,GAAG,WAAW,CAAC;gBAE7B,iBAAiB;gBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElB,oCAAoC;gBACpC,IAAI,eAAe,GAAG,EAAE,CAAC;gBACzB,QAAQ,cAAc,EAAE,CAAC;oBACvB,KAAK,QAAQ;wBACX,IAAI,UAAU,EAAE,CAAC;4BACf,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;4BAC3E,cAAc,GAAG,MAAM,CAAC,CAAC,wBAAwB;wBACnD,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,WAAW,EAAE,CAAC;4BAChB,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;4BAC5E,cAAc,GAAG,MAAM,CAAC,CAAC,wBAAwB;wBACnD,CAAC;wBACD,MAAM;oBACR,KAAK,MAAM;wBACT,IAAI,QAAQ,EAAE,CAAC;4BACb,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACzE,cAAc,GAAG,MAAM,CAAC,CAAC,wBAAwB;wBACnD,CAAC;wBACD,MAAM;gBACV,CAAC;gBAED,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;iBAAM,IAAI,cAAc,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,mCAAmC;gBACnC,cAAc,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;gBACrC,oCAAoC;gBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,oBAAoB,CAAC,KAAa,EAAE,QAAgB,EAAE,OAAiB;QAC7E,4BAA4B;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC9F,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,mDAAmD;gBACnD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrD,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACvD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,YAAY,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzG,OAAO,KAAK,CAAC,CAAC,oCAAoC;YACpD,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAxXD,wCAwXC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Git utility functions for programmatic use
3
+ * These functions can be imported and used directly by the IDE or other tools
4
+ */
5
+ import { GitSecurityError } from './security';
6
+ export { GitSecurityError };
7
+ export interface GitCommandResult {
8
+ success: boolean;
9
+ output: string;
10
+ error?: string;
11
+ }
12
+ export interface GitFileStatus {
13
+ path: string;
14
+ status: 'modified' | 'added' | 'deleted' | 'untracked' | 'staged';
15
+ staged: boolean;
16
+ indexStatus: string;
17
+ workTreeStatus: string;
18
+ }
19
+ export interface GitCommitInfo {
20
+ hash: string;
21
+ message: string;
22
+ author: string;
23
+ date: string;
24
+ }
25
+ /**
26
+ * Execute a git command with security validation
27
+ * @param args Git command arguments
28
+ * @param cwd Working directory (optional)
29
+ * @returns Promise with command result
30
+ */
31
+ export declare function execGitCommand(args: string[], cwd?: string): Promise<GitCommandResult>;
32
+ /**
33
+ * Get current branch name
34
+ */
35
+ export declare function getBranch(cwd?: string): Promise<string | null>;
36
+ /**
37
+ * Check if directory is a git repository
38
+ */
39
+ export declare function isGitRepo(cwd?: string): Promise<boolean>;
40
+ /**
41
+ * Get git status for prompd files (.prmd, .pdflow)
42
+ * @param cwd Working directory
43
+ * @param filterPrompdOnly Only return .prmd and .pdflow files (default: true)
44
+ */
45
+ export declare function getStatus(cwd?: string, filterPrompdOnly?: boolean): Promise<GitFileStatus[]>;
46
+ /**
47
+ * Stage a file
48
+ */
49
+ export declare function stageFile(filePath: string, cwd?: string): Promise<GitCommandResult>;
50
+ /**
51
+ * Unstage a file
52
+ */
53
+ export declare function unstageFile(filePath: string, cwd?: string): Promise<GitCommandResult>;
54
+ /**
55
+ * Discard changes to a file
56
+ */
57
+ export declare function discardChanges(filePath: string, cwd?: string): Promise<GitCommandResult>;
58
+ /**
59
+ * Commit staged changes
60
+ */
61
+ export declare function commit(message: string, cwd?: string): Promise<GitCommandResult>;
62
+ /**
63
+ * Get recent commits
64
+ */
65
+ export declare function getRecentCommits(cwd?: string, limit?: number): Promise<GitCommitInfo[]>;
66
+ /**
67
+ * Initialize a git repository
68
+ */
69
+ export declare function initRepo(cwd?: string): Promise<GitCommandResult>;
70
+ /**
71
+ * Get file history
72
+ */
73
+ export declare function getFileHistory(filePath: string, cwd?: string, limit?: number): Promise<GitCommitInfo[]>;
74
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAIL,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAmD3B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMpE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,GAAG,CAAC,EAAE,MAAM,EACZ,gBAAgB,UAAO,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAuD1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,SAAK,GACT,OAAO,CAAC,aAAa,EAAE,CAAC,CAiB1B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,SAAK,GACT,OAAO,CAAC,aAAa,EAAE,CAAC,CAwB1B"}