@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
package/README.md ADDED
@@ -0,0 +1,162 @@
1
+ # @prompd/cli
2
+
3
+ A TypeScript/Node.js implementation of the Prompd CLI, providing full compatibility with Python and Go versions. Can be used both as a **command-line tool** and as a **library** in TypeScript/React applications.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # As a CLI tool (global)
9
+ npm install -g @prompd/cli
10
+
11
+ # As a library in your project
12
+ npm install @prompd/cli
13
+
14
+ # From source
15
+ npm install
16
+ npm run build
17
+ ```
18
+
19
+ ## Features
20
+
21
+ ✅ **Dual-purpose package:**
22
+ - **CLI tool** with full feature parity with Python and Go CLIs
23
+ - **Library** for programmatic use in TypeScript/React/Node.js apps
24
+
25
+ ✅ **Core capabilities:**
26
+ - `.prmd` file parsing and validation
27
+ - Package management (create, validate, publish)
28
+ - Registry operations (login, search, install)
29
+ - Provider configuration and management
30
+ - Security scanning (secrets detection)
31
+ - Input validation and sanitization
32
+
33
+ ## Usage as a Library
34
+
35
+ ```typescript
36
+ import { PrompdParser, ConfigManager, validatePackageName } from '@prompd/cli';
37
+
38
+ // Parse a .prmd file
39
+ const parser = new PrompdParser();
40
+ const prompd = await parser.parseFile('./example.prmd');
41
+ console.log('Prompt ID:', prompd.metadata.id);
42
+
43
+ // Validate a file
44
+ const issues = await parser.validateFile('./example.prmd');
45
+ issues.forEach(issue => console.log(`[${issue.level}] ${issue.message}`));
46
+
47
+ // Work with configuration
48
+ const config = new ConfigManager();
49
+ const currentConfig = config.load();
50
+ console.log('Provider:', currentConfig.defaultProvider);
51
+
52
+ // Validate package names
53
+ const isValid = validatePackageName('@myorg/my-prompt');
54
+ ```
55
+
56
+ **See [examples/library-usage.ts](examples/library-usage.ts) and [examples/library-usage.js](examples/library-usage.js) for complete examples.**
57
+
58
+ ## CLI Commands
59
+
60
+ ```bash
61
+ # Validation & Display
62
+ prompd validate <file> # Validate .prmd file
63
+ prompd list [directory] # List all .prmd files
64
+ prompd show <file> # Show file details
65
+
66
+ # Package Management
67
+ prompd package create <dir> -o <output.pdpkg> # Create package
68
+ prompd package validate <package.pdpkg> # Validate package
69
+ prompd pack <dir> # Quick package create (alias)
70
+
71
+ # Registry Operations
72
+ prompd login # Interactive authentication
73
+ prompd logout # Clear credentials
74
+ prompd publish <package.pdpkg> # Publish to registry
75
+ prompd search <query> # Search packages
76
+ prompd install @namespace/package@version
77
+ prompd versions <package> # List versions
78
+ prompd registry info <package> # Package details
79
+
80
+ # Configuration
81
+ prompd config show # Show current config
82
+ prompd config provider list # List providers
83
+ prompd config provider show <name> # Show provider details
84
+ prompd config provider add <name> <url> <models...>
85
+ prompd config provider remove <name>
86
+ prompd config provider setkey <provider> <key>
87
+ prompd config registry list
88
+ prompd config registry add <name> <url>
89
+ prompd config registry remove <name>
90
+ ```
91
+
92
+ ## Configuration
93
+
94
+ Configuration is stored in `~/.prompd/config.yaml` or via environment variables:
95
+
96
+ ```yaml
97
+ apiKeys:
98
+ openai: your-api-key
99
+ anthropic: your-api-key
100
+ defaultProvider: openai
101
+ defaultModel: gpt-4
102
+ customProviders:
103
+ local:
104
+ baseUrl: http://localhost:8080
105
+ models: [model1, model2]
106
+ ```
107
+
108
+ Environment variables:
109
+ - `OPENAI_API_KEY`
110
+ - `ANTHROPIC_API_KEY`
111
+ - `PROMPD_DEFAULT_PROVIDER`
112
+ - `PROMPD_DEFAULT_MODEL`
113
+
114
+ ## Development
115
+
116
+ ```bash
117
+ # Install dependencies
118
+ npm install
119
+
120
+ # Build TypeScript to JavaScript
121
+ npm run build
122
+
123
+ # Run tests
124
+ npm test
125
+
126
+ # Development mode (uses ts-node)
127
+ npm run dev -- <command>
128
+
129
+ # Watch mode for tests
130
+ npm run test:watch
131
+ ```
132
+
133
+ ## Architecture
134
+
135
+ ```
136
+ cli/npm/
137
+ ├── bin/ # Executable wrapper
138
+ ├── src/
139
+ │ ├── commands/ # CLI command implementations
140
+ │ ├── lib/ # Core libraries (parser, executor, config)
141
+ │ └── types/ # TypeScript type definitions
142
+ ├── tests/ # Jest unit tests
143
+ └── dist/ # Compiled JavaScript output
144
+ ```
145
+
146
+ ## Testing
147
+
148
+ The implementation includes comprehensive unit tests using Jest:
149
+
150
+ - Parser validation tests
151
+ - Configuration management tests
152
+ - LLM executor tests (mocked)
153
+ - Version management tests
154
+ - Integration tests
155
+
156
+ Run tests with: `npm test`
157
+
158
+ ## Compatibility
159
+
160
+ - Node.js >= 16.0.0
161
+ - Works on Windows, macOS, and Linux
162
+ - Full compatibility with Python and Go CLI versions
package/bin/prompd.js ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ // Simple wrapper to handle both development and production environments
4
+ const path = require('path');
5
+ const fs = require('fs');
6
+
7
+ // Check if we're running from built dist or source
8
+ const distPath = path.join(__dirname, '..', 'dist', 'index.js');
9
+ const srcPath = path.join(__dirname, '..', 'src', 'index.ts');
10
+
11
+ if (fs.existsSync(distPath)) {
12
+ // Production: use built JavaScript
13
+ require(distPath);
14
+ } else if (fs.existsSync(srcPath)) {
15
+ // Development: use TypeScript with ts-node
16
+ require('ts-node').register({
17
+ project: path.join(__dirname, '..', 'tsconfig.json')
18
+ });
19
+ require(srcPath);
20
+ } else {
21
+ console.error('Error: Could not find prompd CLI files. Please run "npm run build" first.');
22
+ process.exit(1);
23
+ }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCacheCommand(): Command;
3
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,kBAAkB,IAAI,OAAO,CAkG5C"}
@@ -0,0 +1,199 @@
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.createCacheCommand = createCacheCommand;
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 os = __importStar(require("os"));
45
+ function createCacheCommand() {
46
+ const cacheCommand = new commander_1.Command('cache');
47
+ cacheCommand
48
+ .description('Package cache management');
49
+ // List cached packages
50
+ const listCommand = new commander_1.Command('list');
51
+ listCommand
52
+ .description('List cached packages')
53
+ .action(async () => {
54
+ try {
55
+ const cacheDir = getCacheDirectory();
56
+ const packages = await listCachedPackages(cacheDir);
57
+ if (packages.length === 0) {
58
+ console.log(chalk_1.default.yellow('No cached packages found.'));
59
+ return;
60
+ }
61
+ console.log(chalk_1.default.bold(`\nCached Packages (${packages.length} total):\n`));
62
+ packages.forEach((pkg, index) => {
63
+ console.log(`${chalk_1.default.cyan(`${index + 1}.`)} ${chalk_1.default.bold(pkg.name)}@${chalk_1.default.green(pkg.version)}`);
64
+ if (pkg.description) {
65
+ console.log(` ${chalk_1.default.dim(pkg.description)}`);
66
+ }
67
+ console.log(` ${chalk_1.default.dim(`Path: ${pkg.path}`)}`);
68
+ console.log();
69
+ });
70
+ }
71
+ catch (error) {
72
+ console.error(chalk_1.default.red(`Failed to list cache: ${error}`));
73
+ process.exit(1);
74
+ }
75
+ });
76
+ // Clear cache
77
+ const clearCommand = new commander_1.Command('clear');
78
+ clearCommand
79
+ .description('Clear the package cache')
80
+ .action(async () => {
81
+ try {
82
+ const cacheDir = getCacheDirectory();
83
+ if (!await fs.pathExists(cacheDir)) {
84
+ console.log(chalk_1.default.yellow('Cache is already empty.'));
85
+ return;
86
+ }
87
+ console.log(chalk_1.default.dim('Clearing package cache...'));
88
+ // Remove cache directory
89
+ await fs.remove(cacheDir);
90
+ // Recreate empty cache directory
91
+ await fs.ensureDir(cacheDir);
92
+ console.log(chalk_1.default.green('✓ Package cache cleared successfully.'));
93
+ }
94
+ catch (error) {
95
+ console.error(chalk_1.default.red(`Failed to clear cache: ${error}`));
96
+ process.exit(1);
97
+ }
98
+ });
99
+ // Cache info
100
+ const infoCommand = new commander_1.Command('info');
101
+ infoCommand
102
+ .description('Show cache information')
103
+ .action(async () => {
104
+ try {
105
+ const cacheDir = getCacheDirectory();
106
+ const packages = await listCachedPackages(cacheDir);
107
+ console.log(chalk_1.default.bold('\nPackage Cache Information\n'));
108
+ console.log(`${chalk_1.default.bold('Cache Directory:')} ${chalk_1.default.cyan(cacheDir)}`);
109
+ console.log(`${chalk_1.default.bold('Cached Packages:')} ${chalk_1.default.cyan(packages.length.toString())}`);
110
+ if (await fs.pathExists(cacheDir)) {
111
+ const stats = await getCacheStats(cacheDir);
112
+ console.log(`${chalk_1.default.bold('Cache Size:')} ${chalk_1.default.cyan(formatBytes(stats.totalSize))}`);
113
+ console.log(`${chalk_1.default.bold('Total Files:')} ${chalk_1.default.cyan(stats.fileCount.toString())}`);
114
+ }
115
+ console.log();
116
+ }
117
+ catch (error) {
118
+ console.error(chalk_1.default.red(`Failed to get cache info: ${error}`));
119
+ process.exit(1);
120
+ }
121
+ });
122
+ cacheCommand.addCommand(listCommand);
123
+ cacheCommand.addCommand(clearCommand);
124
+ cacheCommand.addCommand(infoCommand);
125
+ return cacheCommand;
126
+ }
127
+ // Helper functions
128
+ function getCacheDirectory() {
129
+ const homeDir = os.homedir();
130
+ return path.join(homeDir, '.prompd', 'cache', 'packages');
131
+ }
132
+ async function listCachedPackages(cacheDir) {
133
+ if (!await fs.pathExists(cacheDir)) {
134
+ return [];
135
+ }
136
+ const packages = [];
137
+ try {
138
+ const entries = await fs.readdir(cacheDir, { withFileTypes: true });
139
+ for (const entry of entries) {
140
+ if (entry.isDirectory()) {
141
+ const packagePath = path.join(cacheDir, entry.name);
142
+ const manifestPath = path.join(packagePath, 'prompd.json');
143
+ if (await fs.pathExists(manifestPath)) {
144
+ try {
145
+ const manifest = await fs.readJson(manifestPath);
146
+ packages.push({
147
+ name: manifest.name || 'unknown',
148
+ version: manifest.version || 'unknown',
149
+ description: manifest.description,
150
+ path: packagePath
151
+ });
152
+ }
153
+ catch (error) {
154
+ // Skip invalid manifest files
155
+ console.warn(chalk_1.default.yellow(`Warning: Invalid manifest in ${entry.name}`));
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ catch (error) {
162
+ throw new Error(`Failed to read cache directory: ${error}`);
163
+ }
164
+ return packages;
165
+ }
166
+ async function getCacheStats(cacheDir) {
167
+ let totalSize = 0;
168
+ let fileCount = 0;
169
+ async function calculateSize(dir) {
170
+ const entries = await fs.readdir(dir, { withFileTypes: true });
171
+ for (const entry of entries) {
172
+ const fullPath = path.join(dir, entry.name);
173
+ if (entry.isDirectory()) {
174
+ await calculateSize(fullPath);
175
+ }
176
+ else {
177
+ const stats = await fs.stat(fullPath);
178
+ totalSize += stats.size;
179
+ fileCount++;
180
+ }
181
+ }
182
+ }
183
+ try {
184
+ await calculateSize(cacheDir);
185
+ }
186
+ catch (error) {
187
+ // Ignore errors, return what we have
188
+ }
189
+ return { totalSize, fileCount };
190
+ }
191
+ function formatBytes(bytes) {
192
+ if (bytes === 0)
193
+ return '0 Bytes';
194
+ const k = 1024;
195
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
196
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
197
+ return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];
198
+ }
199
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Compile Command
3
+ *
4
+ * Compiles a .prmd file or package reference using the 6-stage compilation pipeline.
5
+ * Supports multiple output formats: markdown, OpenAI JSON, Anthropic JSON.
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare function createCompileCommand(): Command;
9
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,IAAI,OAAO,CA4E9C"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * Compile Command
4
+ *
5
+ * Compiles a .prmd file or package reference using the 6-stage compilation pipeline.
6
+ * Supports multiple output formats: markdown, OpenAI JSON, Anthropic JSON.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createCompileCommand = createCompileCommand;
10
+ const commander_1 = require("commander");
11
+ const fs_1 = require("fs");
12
+ const path_1 = require("path");
13
+ const compiler_1 = require("../lib/compiler");
14
+ function createCompileCommand() {
15
+ const cmd = new commander_1.Command('compile');
16
+ cmd
17
+ .description('Compile a .prmd file or package reference with full template processing')
18
+ .argument('<source>', '.prmd file path or package reference (@namespace/package@version)')
19
+ .option('--to <format>', 'Output format: markdown | provider-json:openai | provider-json:anthropic', 'markdown')
20
+ .option('--to-markdown', 'Shorthand for --to markdown')
21
+ .option('--to-provider-json <provider>', 'Shorthand for --to provider-json:<provider>')
22
+ .option('-p, --param <key=value>', 'Parameter in format key=value', collectParams, {})
23
+ .option('-f, --params-file <file>', 'JSON parameter file')
24
+ .option('-o, --output <file>', 'Output file path')
25
+ .option('-v, --verbose', 'Verbose output with compilation details', false)
26
+ .action(async (source, options) => {
27
+ try {
28
+ // Collect parameters from different sources
29
+ let parameters = {};
30
+ // Load from parameter file if provided
31
+ if (options.paramsFile) {
32
+ try {
33
+ const fileContent = (0, fs_1.readFileSync)((0, path_1.resolve)(options.paramsFile), 'utf8');
34
+ const fileParams = JSON.parse(fileContent);
35
+ parameters = { ...parameters, ...fileParams };
36
+ }
37
+ catch (error) {
38
+ console.error(`Error loading parameter file: ${error}`);
39
+ process.exit(1);
40
+ }
41
+ }
42
+ // Merge command line parameters (CLI takes precedence)
43
+ parameters = { ...parameters, ...options.param };
44
+ // Determine output format
45
+ let outputFormat = options.to;
46
+ if (options.toMarkdown) {
47
+ outputFormat = 'markdown';
48
+ }
49
+ else if (options.toProviderJson) {
50
+ outputFormat = `provider-json:${options.toProviderJson}`;
51
+ }
52
+ // Create compiler instance
53
+ const compiler = new compiler_1.PrompdCompiler();
54
+ if (options.verbose) {
55
+ console.log(`Compiling: ${source}`);
56
+ console.log(`Output format: ${outputFormat}`);
57
+ console.log(`Parameters: ${Object.keys(parameters).length} parameter(s)`);
58
+ console.log('');
59
+ }
60
+ // Compile with the 6-stage pipeline
61
+ const result = await compiler.compile(source, {
62
+ outputFormat,
63
+ parameters,
64
+ outputFile: options.output,
65
+ verbose: options.verbose
66
+ });
67
+ // Output result (if not written to file)
68
+ if (!options.output) {
69
+ console.log('Compiled Content:');
70
+ console.log('-'.repeat(70));
71
+ console.log(result);
72
+ console.log('-'.repeat(70));
73
+ }
74
+ else {
75
+ console.log(`✓ Compiled content written to ${options.output}`);
76
+ }
77
+ }
78
+ catch (error) {
79
+ console.error(`Compilation error: ${error instanceof Error ? error.message : String(error)}`);
80
+ process.exit(1);
81
+ }
82
+ });
83
+ return cmd;
84
+ }
85
+ /**
86
+ * Collect parameters from CLI arguments.
87
+ */
88
+ function collectParams(value, previous) {
89
+ const [key, val] = value.split('=', 2);
90
+ if (!val) {
91
+ throw new Error(`Invalid parameter format: ${value}. Use key=value format.`);
92
+ }
93
+ // Try to parse as JSON for complex values
94
+ let parsedValue = val;
95
+ try {
96
+ parsedValue = JSON.parse(val);
97
+ }
98
+ catch {
99
+ // Not JSON, use as string
100
+ parsedValue = val;
101
+ }
102
+ return { ...previous, [key]: parsedValue };
103
+ }
104
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Creates the unified config command structure
4
+ * Matches Python CLI organization: prompd config <subcommand>
5
+ */
6
+ export declare function createConfigCommand(): Command;
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAmB7C"}