@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,361 @@
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.createRegistryCommand = createRegistryCommand;
40
+ exports.createPublishCommand = createPublishCommand;
41
+ exports.createSearchCommand = createSearchCommand;
42
+ exports.createInstallCommand = createInstallCommand;
43
+ exports.createLoginCommand = createLoginCommand;
44
+ exports.createLogoutCommand = createLogoutCommand;
45
+ exports.createVersionsCommand = createVersionsCommand;
46
+ const commander_1 = require("commander");
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ const path = __importStar(require("path"));
49
+ const registry_1 = require("../lib/registry");
50
+ const config_1 = require("../lib/config");
51
+ function createRegistryCommand() {
52
+ const command = new commander_1.Command('registry');
53
+ command.description('Manage package registries');
54
+ // Registry list command
55
+ const listCommand = new commander_1.Command('list');
56
+ listCommand
57
+ .description('List all configured registries')
58
+ .action(async () => {
59
+ try {
60
+ const configManager = config_1.ConfigManager.getInstance();
61
+ const config = await configManager.loadConfig();
62
+ const registries = config.registry.registries;
63
+ const defaultRegistry = config.registry.default;
64
+ if (Object.keys(registries).length === 0) {
65
+ console.log(chalk_1.default.yellow('No registries configured'));
66
+ console.log(chalk_1.default.dim("Use 'prompd registry add' to add a registry"));
67
+ return;
68
+ }
69
+ console.log(chalk_1.default.bold('Configured Registries:'));
70
+ for (const [name, registryConfig] of Object.entries(registries)) {
71
+ const defaultMark = name === defaultRegistry ? chalk_1.default.green(' (default)') : '';
72
+ const url = registryConfig.url || 'N/A';
73
+ const username = registryConfig.username || 'Not logged in';
74
+ console.log(` • ${chalk_1.default.cyan(name)}${defaultMark}`);
75
+ console.log(` URL: ${url}`);
76
+ console.log(` User: ${username}`);
77
+ }
78
+ }
79
+ catch (error) {
80
+ console.error(chalk_1.default.red(`Error listing registries: ${error}`));
81
+ process.exit(1);
82
+ }
83
+ });
84
+ // Registry add command
85
+ const addCommand = new commander_1.Command('add');
86
+ addCommand
87
+ .description('Add a new registry')
88
+ .argument('<name>', 'Registry name')
89
+ .argument('<url>', 'Registry URL')
90
+ .action(async (name, url) => {
91
+ try {
92
+ const configManager = config_1.ConfigManager.getInstance();
93
+ await configManager.addRegistry(name, url);
94
+ console.log(chalk_1.default.green(`Added registry '${chalk_1.default.cyan(name)}' at ${url}`));
95
+ }
96
+ catch (error) {
97
+ console.error(chalk_1.default.red(`Error adding registry: ${error}`));
98
+ process.exit(1);
99
+ }
100
+ });
101
+ // Registry remove command
102
+ const removeCommand = new commander_1.Command('remove');
103
+ removeCommand
104
+ .description('Remove a registry')
105
+ .argument('<name>', 'Registry name')
106
+ .option('--force', 'Force removal of default prompdhub registry')
107
+ .action(async (name, options) => {
108
+ try {
109
+ // Warn about removing prompdhub unless forced
110
+ if (name === 'prompdhub' && !options.force) {
111
+ console.log(chalk_1.default.yellow('Warning:') + ' Removing the main prompdhub registry');
112
+ console.log('Use --force to confirm, or consider setting a different default instead');
113
+ process.exit(1);
114
+ }
115
+ const configManager = config_1.ConfigManager.getInstance();
116
+ await configManager.removeRegistry(name);
117
+ console.log(chalk_1.default.green(`Removed registry '${chalk_1.default.cyan(name)}'`));
118
+ }
119
+ catch (error) {
120
+ console.error(chalk_1.default.red(`Error removing registry: ${error}`));
121
+ process.exit(1);
122
+ }
123
+ });
124
+ // Registry set-default command
125
+ const setDefaultCommand = new commander_1.Command('set-default');
126
+ setDefaultCommand
127
+ .description('Set the default registry')
128
+ .argument('<name>', 'Registry name')
129
+ .action(async (name) => {
130
+ try {
131
+ const configManager = config_1.ConfigManager.getInstance();
132
+ await configManager.setDefaultRegistry(name);
133
+ console.log(chalk_1.default.green(`Set '${chalk_1.default.cyan(name)}' as default registry`));
134
+ }
135
+ catch (error) {
136
+ console.error(chalk_1.default.red(`Error setting default registry: ${error}`));
137
+ process.exit(1);
138
+ }
139
+ });
140
+ // Add all registry management commands
141
+ command.addCommand(listCommand);
142
+ command.addCommand(addCommand);
143
+ command.addCommand(removeCommand);
144
+ command.addCommand(setDefaultCommand);
145
+ return command;
146
+ }
147
+ // Legacy publish command (to be integrated with main CLI)
148
+ function createPublishCommand() {
149
+ const publishCommand = new commander_1.Command('publish');
150
+ publishCommand
151
+ .description('Publish a package to the registry')
152
+ .argument('[directory]', 'Directory containing project.prmdproj file', '.')
153
+ .option('--access <access>', 'Package access level', 'public')
154
+ .option('--tag <tag>', 'Package tag', 'latest')
155
+ .option('--dry-run', 'Show what would be published without actually publishing')
156
+ .option('--force', 'Force publish even if version exists')
157
+ .option('--registry <registry>', 'Registry name to publish to')
158
+ .action(async (directory, options) => {
159
+ try {
160
+ console.log(chalk_1.default.cyan(`📦 Publishing package from ${directory}...`));
161
+ // Resolve registry
162
+ const registryName = options.registry;
163
+ const client = new registry_1.RegistryClient(registryName);
164
+ // Event listeners for progress
165
+ client.on('publishStart', ({ packageDir, options }) => {
166
+ console.log(chalk_1.default.blue(`🚀 Starting publish from ${packageDir}`));
167
+ });
168
+ client.on('publishComplete', ({ name, version, access }) => {
169
+ console.log(chalk_1.default.green(`✅ Successfully published ${name}@${version} (${access})`));
170
+ console.log(chalk_1.default.gray(` Registry: ${client.registryUrl}`));
171
+ console.log(chalk_1.default.gray(` Install: prompd install ${name}@${version}`));
172
+ });
173
+ client.on('publishError', ({ packageDir, error }) => {
174
+ console.error(chalk_1.default.red(`❌ Publish failed: ${error.message}`));
175
+ });
176
+ await client.publish(path.resolve(directory), {
177
+ access: options.access,
178
+ tag: options.tag,
179
+ dryRun: options.dryRun,
180
+ force: options.force
181
+ });
182
+ }
183
+ catch (error) {
184
+ console.error(chalk_1.default.red(`Publish failed: ${error}`));
185
+ process.exit(1);
186
+ }
187
+ });
188
+ return publishCommand;
189
+ }
190
+ // Legacy search command (to be integrated with main CLI)
191
+ function createSearchCommand() {
192
+ const searchCommand = new commander_1.Command('search');
193
+ searchCommand
194
+ .description('Search for packages in the registry')
195
+ .argument('<query>', 'Search query')
196
+ .option('-l, --limit <limit>', 'Maximum number of results', '20')
197
+ .option('-r, --registry <registry>', 'Search specific registry')
198
+ .action(async (query, options) => {
199
+ try {
200
+ const limit = parseInt(options.limit, 10);
201
+ const registryName = options.registry;
202
+ const client = new registry_1.RegistryClient(registryName);
203
+ const results = await client.search({ query, limit });
204
+ if (results.packages.length === 0) {
205
+ console.log(`No packages found for: ${chalk_1.default.cyan(query)}`);
206
+ if (registryName) {
207
+ console.log(chalk_1.default.dim(`Searched in registry: ${registryName}`));
208
+ }
209
+ return;
210
+ }
211
+ const registryDisplayName = registryName || 'default registry';
212
+ console.log(`Found ${results.packages.length} package(s) for ${chalk_1.default.cyan(query)} in ${chalk_1.default.yellow(registryDisplayName)}:`);
213
+ console.log();
214
+ for (const pkg of results.packages) {
215
+ console.log(`${chalk_1.default.bold.cyan(pkg.name)} - ${chalk_1.default.green(`v${pkg.version}`)}`);
216
+ console.log(` ${pkg.description || 'No description available'}`);
217
+ if (pkg.author) {
218
+ console.log(` Author: ${pkg.author}`);
219
+ }
220
+ console.log();
221
+ }
222
+ }
223
+ catch (error) {
224
+ console.error(chalk_1.default.red(`Search failed: ${error}`));
225
+ process.exit(1);
226
+ }
227
+ });
228
+ return searchCommand;
229
+ }
230
+ // Legacy install command (to be integrated with main CLI)
231
+ function createInstallCommand() {
232
+ const installCommand = new commander_1.Command('install');
233
+ installCommand
234
+ .description('Install a package from the registry')
235
+ .argument('<package>', 'Package name')
236
+ .option('--version <version>', 'Specific version to install')
237
+ .option('--global', 'Install globally')
238
+ .option('--registry <registry>', 'Install from specific registry (overrides scope resolution)')
239
+ .action(async (packageName, options) => {
240
+ try {
241
+ const configManager = config_1.ConfigManager.getInstance();
242
+ // Resolve which registry to use
243
+ let registryName;
244
+ if (options.registry) {
245
+ // Explicit registry override
246
+ registryName = options.registry;
247
+ }
248
+ else {
249
+ // Auto-resolve based on package scope
250
+ registryName = configManager.resolveRegistryForPackage(packageName);
251
+ }
252
+ const client = new registry_1.RegistryClient(registryName);
253
+ console.log(`Installing package: ${chalk_1.default.cyan(packageName)}`);
254
+ console.log(` Registry: ${chalk_1.default.yellow(registryName)}`);
255
+ if (options.version) {
256
+ console.log(` Version: ${chalk_1.default.green(options.version)}`);
257
+ }
258
+ await client.install(packageName, {
259
+ version: options.version,
260
+ global: options.global
261
+ });
262
+ console.log(chalk_1.default.green('Package installed successfully!'));
263
+ }
264
+ catch (error) {
265
+ console.error(chalk_1.default.red(`Installation failed: ${error}`));
266
+ process.exit(1);
267
+ }
268
+ });
269
+ return installCommand;
270
+ }
271
+ // Login command (to be integrated with main CLI)
272
+ function createLoginCommand() {
273
+ const loginCommand = new commander_1.Command('login');
274
+ loginCommand
275
+ .description('Authenticate with a Prompd registry')
276
+ .option('-t, --token <token>', 'Use API token instead of interactive login')
277
+ .option('-r, --registry <registry>', 'Login to specific registry')
278
+ .action(async (options) => {
279
+ try {
280
+ const registryName = options.registry;
281
+ const client = new registry_1.RegistryClient(registryName);
282
+ const actualRegistryName = registryName || 'default';
283
+ if (options.token) {
284
+ // Token-based login
285
+ console.log(chalk_1.default.dim(`Authenticating with ${actualRegistryName}...`));
286
+ const userData = await client.loginWithToken(options.token);
287
+ console.log(chalk_1.default.green(`Successfully authenticated as ${userData.username}`));
288
+ console.log(` Registry: ${actualRegistryName} (${client.registryUrl})`);
289
+ }
290
+ else {
291
+ // Interactive login not implemented yet
292
+ console.log(chalk_1.default.yellow('Interactive login not yet implemented. Use --token option.'));
293
+ process.exit(1);
294
+ }
295
+ }
296
+ catch (error) {
297
+ console.error(chalk_1.default.red(`Authentication failed: ${error}`));
298
+ process.exit(1);
299
+ }
300
+ });
301
+ return loginCommand;
302
+ }
303
+ // Logout command (to be integrated with main CLI)
304
+ function createLogoutCommand() {
305
+ const logoutCommand = new commander_1.Command('logout');
306
+ logoutCommand
307
+ .description('Clear registry authentication credentials')
308
+ .option('-r, --registry <registry>', 'Logout from specific registry')
309
+ .action(async (options) => {
310
+ try {
311
+ const registryName = options.registry;
312
+ const client = new registry_1.RegistryClient(registryName);
313
+ await client.logout();
314
+ const actualRegistryName = registryName || 'default';
315
+ console.log(chalk_1.default.green(`Successfully logged out from ${actualRegistryName}`));
316
+ }
317
+ catch (error) {
318
+ console.error(chalk_1.default.red(`Logout failed: ${error}`));
319
+ process.exit(1);
320
+ }
321
+ });
322
+ return logoutCommand;
323
+ }
324
+ // Versions command - list package versions
325
+ function createVersionsCommand() {
326
+ const versionsCommand = new commander_1.Command('versions');
327
+ versionsCommand
328
+ .description('List available versions of a package')
329
+ .argument('<package>', 'Package name (@namespace/name)')
330
+ .option('-r, --registry <registry>', 'Registry to query')
331
+ .action(async (packageName, options) => {
332
+ try {
333
+ const client = new registry_1.RegistryClient(options.registry);
334
+ // Call registry API to get versions
335
+ const versions = await client.getPackageVersions(packageName);
336
+ if (!versions || versions.length === 0) {
337
+ console.log(chalk_1.default.yellow(`No versions found for ${packageName}`));
338
+ return;
339
+ }
340
+ console.log(chalk_1.default.bold(`\nVersions for ${packageName}:`));
341
+ console.log();
342
+ // Sort versions in descending order (newest first)
343
+ const sortedVersions = versions.sort((a, b) => {
344
+ return b.localeCompare(a, undefined, { numeric: true, sensitivity: 'base' });
345
+ });
346
+ sortedVersions.forEach((version, index) => {
347
+ const isLatest = index === 0;
348
+ const marker = isLatest ? chalk_1.default.green('(latest)') : '';
349
+ console.log(` ${chalk_1.default.cyan(version)} ${marker}`);
350
+ });
351
+ console.log();
352
+ console.log(chalk_1.default.dim(`Total: ${sortedVersions.length} version(s)`));
353
+ }
354
+ catch (error) {
355
+ console.error(chalk_1.default.red(`Failed to fetch versions: ${error}`));
356
+ process.exit(1);
357
+ }
358
+ });
359
+ return versionsCommand;
360
+ }
361
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createRunCommand(): Command;
3
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,gBAAgB,IAAI,OAAO,CAqH1C"}
@@ -0,0 +1,157 @@
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.createRunCommand = createRunCommand;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const fs = __importStar(require("fs-extra"));
43
+ const path = __importStar(require("path"));
44
+ const executor_1 = require("../lib/executor");
45
+ const config_1 = require("../lib/config");
46
+ function createRunCommand() {
47
+ const command = new commander_1.Command('run');
48
+ command
49
+ .description('Run a .prmd file with an LLM provider')
50
+ .argument('<file>', 'Path to the .prmd file')
51
+ .option('--provider <provider>', 'LLM provider (openai, anthropic, ollama)')
52
+ .option('--model <model>', 'Model name')
53
+ .option('-p, --param <param>', 'Parameter in format key=value', (value, previous) => {
54
+ const params = previous || {};
55
+ const [key, val] = value.split('=', 2);
56
+ params[key] = val;
57
+ return params;
58
+ }, {})
59
+ .option('-f, --param-file <file>', 'JSON parameter file', (value, previous) => {
60
+ return (previous || []).concat([value]);
61
+ }, [])
62
+ .option('--api-key <key>', 'API key override')
63
+ .option('-o, --output <file>', 'Output file path')
64
+ .option('--format <format>', 'Output format (text, json)', 'text')
65
+ .option('--version <version>', 'Execute a specific version (e.g., "1.2.3", "HEAD", commit hash)')
66
+ .option('--meta-system <text>', 'Override system section (text or file path like ./file.txt)')
67
+ .option('--meta-context <text>', 'Override context section (text or file path like ./file.txt)')
68
+ .option('--meta-user <text>', 'Override user section (text or file path like ./file.txt)')
69
+ .option('-v, --verbose', 'Verbose output')
70
+ .option('--show-usage', 'Show token usage statistics')
71
+ .action(async (file, options) => {
72
+ try {
73
+ const executor = new executor_1.PrompdExecutor();
74
+ const configManager = config_1.ConfigManager.getInstance();
75
+ const config = await configManager.loadConfig();
76
+ // Use config defaults if not specified
77
+ const provider = options.provider || configManager.getDefaultProvider(config);
78
+ const model = options.model || configManager.getDefaultModel(provider, config);
79
+ // Validate format option
80
+ if (options.format && !['text', 'json'].includes(options.format)) {
81
+ console.error(chalk_1.default.red('Error: format must be "text" or "json"'));
82
+ process.exit(1);
83
+ }
84
+ // Support meta alias flags with colon syntax: --meta:system|context|user
85
+ const argv = process.argv;
86
+ const aliasMeta = {};
87
+ for (let i = 0; i < argv.length; i++) {
88
+ const a = argv[i];
89
+ if (a === '--meta:system' && i + 1 < argv.length)
90
+ aliasMeta.metaSystem = argv[i + 1];
91
+ if (a === '--meta:context' && i + 1 < argv.length)
92
+ aliasMeta.metaContext = argv[i + 1];
93
+ if (a === '--meta:user' && i + 1 < argv.length)
94
+ aliasMeta.metaUser = argv[i + 1];
95
+ }
96
+ const executeOptions = {
97
+ provider,
98
+ model,
99
+ apiKey: options.apiKey,
100
+ output: options.output,
101
+ format: options.format,
102
+ params: options.param,
103
+ paramFiles: options.paramFile,
104
+ version: options.version,
105
+ metaSystem: aliasMeta.metaSystem || options['metaSystem'],
106
+ metaContext: aliasMeta.metaContext || options['metaContext'],
107
+ metaUser: aliasMeta.metaUser || options['metaUser'],
108
+ verbose: options.verbose
109
+ };
110
+ const response = await executor.execute(file, executeOptions);
111
+ // Output result based on format
112
+ const responseText = response.response || response.content || 'No response received';
113
+ if (options.format === 'json') {
114
+ // JSON output format
115
+ const result = {
116
+ response: responseText,
117
+ provider,
118
+ model,
119
+ file: path.resolve(file)
120
+ };
121
+ if (response.usage) {
122
+ result.usage = response.usage;
123
+ }
124
+ const jsonOutput = JSON.stringify(result, null, 2);
125
+ if (options.output) {
126
+ await fs.writeFile(options.output, jsonOutput, 'utf-8');
127
+ console.log(chalk_1.default.green(`✓ JSON response written to ${options.output}`));
128
+ }
129
+ else {
130
+ console.log(jsonOutput);
131
+ }
132
+ }
133
+ else {
134
+ // Text output format (default)
135
+ if (options.output) {
136
+ await fs.writeFile(options.output, responseText, 'utf-8');
137
+ console.log(chalk_1.default.green(`✓ Response written to ${options.output}`));
138
+ }
139
+ else {
140
+ console.log('\n' + chalk_1.default.cyan('Response:'));
141
+ console.log('-'.repeat(50));
142
+ console.log(responseText);
143
+ console.log('-'.repeat(50));
144
+ }
145
+ if ((options.verbose || options.showUsage) && response.usage) {
146
+ console.log(chalk_1.default.gray(`\nUsage: ${response.usage.promptTokens} prompt + ${response.usage.completionTokens} completion = ${response.usage.totalTokens} total tokens`));
147
+ }
148
+ }
149
+ }
150
+ catch (error) {
151
+ console.error(chalk_1.default.red('Error executing file:'), error instanceof Error ? error.message : error);
152
+ process.exit(1);
153
+ }
154
+ });
155
+ return command;
156
+ }
157
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createShowCommand(): Command;
3
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,iBAAiB,IAAI,OAAO,CAsF3C"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createShowCommand = createShowCommand;
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const parser_1 = require("../lib/parser");
10
+ function createShowCommand() {
11
+ const command = new commander_1.Command('show');
12
+ command
13
+ .description('Show the structure and parameters of a .prmd file')
14
+ .argument('<file>', 'Path to the .prmd file')
15
+ .action(async (file) => {
16
+ try {
17
+ const parser = new parser_1.PrompdParser();
18
+ const prompd = await parser.parseFile(file);
19
+ const metadata = prompd.metadata;
20
+ console.log(chalk_1.default.cyan.bold(`=== ${metadata.name || 'Unnamed'} ===`));
21
+ if (metadata.version) {
22
+ console.log(chalk_1.default.gray(`Version: ${metadata.version}`));
23
+ }
24
+ if (metadata.description) {
25
+ console.log(`\n${chalk_1.default.bold('Description:')}\n ${metadata.description}\n`);
26
+ }
27
+ // Merge parameters and variables for backward compatibility
28
+ const allParams = [
29
+ ...(metadata.parameters || []),
30
+ ...(metadata.variables || [])
31
+ ];
32
+ if (allParams.length > 0) {
33
+ console.log(chalk_1.default.bold('Parameters:'));
34
+ for (const param of allParams) {
35
+ const required = param.required ? chalk_1.default.red(' (required)') : '';
36
+ const typeStr = chalk_1.default.green(`(${param.type})`);
37
+ console.log(` • ${chalk_1.default.cyan(param.name)} ${typeStr}${required}`);
38
+ if (param.description) {
39
+ console.log(chalk_1.default.gray(` ${param.description}`));
40
+ }
41
+ if (param.default !== undefined) {
42
+ const defaultStr = typeof param.default === 'object'
43
+ ? JSON.stringify(param.default)
44
+ : String(param.default);
45
+ console.log(chalk_1.default.gray(` Default: ${defaultStr}`));
46
+ }
47
+ if (param.pattern) {
48
+ console.log(chalk_1.default.gray(` Pattern: ${param.pattern}`));
49
+ }
50
+ if (param.minimum !== undefined || param.maximum !== undefined) {
51
+ const range = `${param.minimum ?? '∞'} - ${param.maximum ?? '∞'}`;
52
+ console.log(chalk_1.default.gray(` Range: ${range}`));
53
+ }
54
+ }
55
+ }
56
+ // Show content structure
57
+ const contentInfo = [];
58
+ if (metadata.system)
59
+ contentInfo.push(`System: ${metadata.system}`);
60
+ if (metadata.context)
61
+ contentInfo.push(`Context: ${metadata.context}`);
62
+ if (metadata.user)
63
+ contentInfo.push(`User: ${metadata.user}`);
64
+ if (metadata.response)
65
+ contentInfo.push(`Response: ${metadata.response}`);
66
+ if (contentInfo.length > 0) {
67
+ console.log(`\n${chalk_1.default.bold('Content Structure:')}`);
68
+ for (const info of contentInfo) {
69
+ console.log(` • ${info}`);
70
+ }
71
+ }
72
+ // Show sections found in file
73
+ if (Object.keys(prompd.sections).length > 0) {
74
+ console.log(`\n${chalk_1.default.bold('Available Sections:')}`);
75
+ for (const sectionName of Object.keys(prompd.sections)) {
76
+ console.log(` • #${sectionName}`);
77
+ }
78
+ }
79
+ if (metadata.requires && metadata.requires.length > 0) {
80
+ console.log(`\n${chalk_1.default.bold('Requirements:')} ${metadata.requires.join(', ')}`);
81
+ }
82
+ }
83
+ catch (error) {
84
+ console.error(chalk_1.default.red('Error reading file:'), error instanceof Error ? error.message : error);
85
+ process.exit(1);
86
+ }
87
+ });
88
+ return command;
89
+ }
90
+ //# sourceMappingURL=show.js.map