@orchestrator-claude/cli 1.4.0

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 (176) hide show
  1. package/README.md +74 -0
  2. package/dist/api-client/OrchestratorAPIClient.d.ts +111 -0
  3. package/dist/api-client/OrchestratorAPIClient.d.ts.map +1 -0
  4. package/dist/api-client/OrchestratorAPIClient.js +176 -0
  5. package/dist/api-client/OrchestratorAPIClient.js.map +1 -0
  6. package/dist/api-client/index.d.ts +11 -0
  7. package/dist/api-client/index.d.ts.map +1 -0
  8. package/dist/api-client/index.js +10 -0
  9. package/dist/api-client/index.js.map +1 -0
  10. package/dist/api-client/retry.d.ts +29 -0
  11. package/dist/api-client/retry.d.ts.map +1 -0
  12. package/dist/api-client/retry.js +85 -0
  13. package/dist/api-client/retry.js.map +1 -0
  14. package/dist/api-client/types.d.ts +148 -0
  15. package/dist/api-client/types.d.ts.map +1 -0
  16. package/dist/api-client/types.js +10 -0
  17. package/dist/api-client/types.js.map +1 -0
  18. package/dist/commands/AgentsCommand.d.ts +74 -0
  19. package/dist/commands/AgentsCommand.d.ts.map +1 -0
  20. package/dist/commands/AgentsCommand.js +170 -0
  21. package/dist/commands/AgentsCommand.js.map +1 -0
  22. package/dist/commands/InitCommand.d.ts +63 -0
  23. package/dist/commands/InitCommand.d.ts.map +1 -0
  24. package/dist/commands/InitCommand.js +150 -0
  25. package/dist/commands/InitCommand.js.map +1 -0
  26. package/dist/commands/MigrateCommand.d.ts +93 -0
  27. package/dist/commands/MigrateCommand.d.ts.map +1 -0
  28. package/dist/commands/MigrateCommand.js +260 -0
  29. package/dist/commands/MigrateCommand.js.map +1 -0
  30. package/dist/commands/StatusCommand.d.ts +61 -0
  31. package/dist/commands/StatusCommand.d.ts.map +1 -0
  32. package/dist/commands/StatusCommand.js +142 -0
  33. package/dist/commands/StatusCommand.js.map +1 -0
  34. package/dist/commands/TemplatesCommand.d.ts +69 -0
  35. package/dist/commands/TemplatesCommand.d.ts.map +1 -0
  36. package/dist/commands/TemplatesCommand.js +147 -0
  37. package/dist/commands/TemplatesCommand.js.map +1 -0
  38. package/dist/commands/WorkflowCommand.d.ts +82 -0
  39. package/dist/commands/WorkflowCommand.d.ts.map +1 -0
  40. package/dist/commands/WorkflowCommand.js +203 -0
  41. package/dist/commands/WorkflowCommand.js.map +1 -0
  42. package/dist/config/CLIConfig.d.ts +66 -0
  43. package/dist/config/CLIConfig.d.ts.map +1 -0
  44. package/dist/config/CLIConfig.js +60 -0
  45. package/dist/config/CLIConfig.js.map +1 -0
  46. package/dist/formatters/OutputFormatter.d.ts +102 -0
  47. package/dist/formatters/OutputFormatter.d.ts.map +1 -0
  48. package/dist/formatters/OutputFormatter.js +182 -0
  49. package/dist/formatters/OutputFormatter.js.map +1 -0
  50. package/dist/index.d.ts +15 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +249 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/templates/.gitkeep +0 -0
  55. package/dist/templates/TemplateEngine.d.ts +90 -0
  56. package/dist/templates/TemplateEngine.d.ts.map +1 -0
  57. package/dist/templates/TemplateEngine.js +149 -0
  58. package/dist/templates/TemplateEngine.js.map +1 -0
  59. package/dist/templates/base/CLAUDE.md.hbs +362 -0
  60. package/dist/templates/base/claude/agents/implementer.md +446 -0
  61. package/dist/templates/base/claude/agents/orchestrator.md +155 -0
  62. package/dist/templates/base/claude/agents/planner.md +348 -0
  63. package/dist/templates/base/claude/agents/researcher.md +390 -0
  64. package/dist/templates/base/claude/agents/reviewer.md +444 -0
  65. package/dist/templates/base/claude/agents/specifier.md +331 -0
  66. package/dist/templates/base/claude/agents/task-generator.md +382 -0
  67. package/dist/templates/base/claude/hooks/post-artifact-generate.sh +39 -0
  68. package/dist/templates/base/claude/hooks/post-implement-validate.sh +139 -0
  69. package/dist/templates/base/claude/hooks/post-phase-checkpoint.sh +322 -0
  70. package/dist/templates/base/claude/hooks/pre-agent-invoke.sh +34 -0
  71. package/dist/templates/base/claude/hooks/pre-phase-advance.sh +40 -0
  72. package/dist/templates/base/claude/hooks/track-agent-invocation.sh +230 -0
  73. package/dist/templates/base/claude/orchestrator-config.json +141 -0
  74. package/dist/templates/base/claude/settings.json +80 -0
  75. package/dist/templates/base/claude/skills/artifact-validator/SKILL.md +226 -0
  76. package/dist/templates/base/claude/skills/docs-guardian/SKILL.md +230 -0
  77. package/dist/templates/base/claude/skills/kb-lookup/SKILL.md +257 -0
  78. package/dist/templates/base/claude/skills/phase-gate-evaluator/SKILL.md +274 -0
  79. package/dist/templates/base/claude/skills/workflow-status/SKILL.md +322 -0
  80. package/dist/templates/base/docker-compose.yml.hbs +20 -0
  81. package/dist/templates/base/mcp.json.hbs +37 -0
  82. package/dist/templates/base/orchestrator/.state/.gitkeep +0 -0
  83. package/dist/templates/base/orchestrator-index.json.hbs +37 -0
  84. package/dist/templates/base/package.json.hbs +40 -0
  85. package/dist/templates/default/.orchestrator/orchestrator-index.json +19 -0
  86. package/dist/templates/default/README.md +58 -0
  87. package/dist/templates/default/docker-compose.yml +24 -0
  88. package/dist/templates/default/template.json +10 -0
  89. package/dist/templates/projects/api/files/index.ts.hbs +30 -0
  90. package/dist/templates/projects/api/files/server.ts.hbs +63 -0
  91. package/dist/templates/projects/api/files/tsconfig.json.hbs +27 -0
  92. package/dist/templates/projects/api/files/vitest.config.ts.hbs +28 -0
  93. package/dist/templates/projects/api/template.config.json +238 -0
  94. package/dist/templates/projects/api/template.config.ts +149 -0
  95. package/dist/templates/projects/cli/files/cli.ts.hbs +50 -0
  96. package/dist/templates/projects/cli/files/index.ts.hbs +8 -0
  97. package/dist/templates/projects/cli/files/tsconfig.json.hbs +27 -0
  98. package/dist/templates/projects/cli/files/vitest.config.ts.hbs +28 -0
  99. package/dist/templates/projects/cli/template.config.json +213 -0
  100. package/dist/templates/projects/cli/template.config.ts +126 -0
  101. package/dist/templates/projects/frontend/files/App.tsx.hbs +31 -0
  102. package/dist/templates/projects/frontend/files/index.html.hbs +13 -0
  103. package/dist/templates/projects/frontend/files/main.tsx.hbs +22 -0
  104. package/dist/templates/projects/frontend/files/tsconfig.json.hbs +34 -0
  105. package/dist/templates/projects/frontend/files/tsconfig.node.json.hbs +10 -0
  106. package/dist/templates/projects/frontend/files/vite.config.ts.hbs +19 -0
  107. package/dist/templates/projects/frontend/files/vitest.config.ts.hbs +36 -0
  108. package/dist/templates/projects/frontend/template.config.json +241 -0
  109. package/dist/templates/projects/frontend/template.config.ts +153 -0
  110. package/dist/templates/projects/minimal/files/claude-settings.json.hbs +20 -0
  111. package/dist/templates/projects/minimal/files/env.example.hbs +17 -0
  112. package/dist/templates/projects/minimal/files/gitignore.hbs +41 -0
  113. package/dist/templates/projects/minimal/files/index.ts.hbs +13 -0
  114. package/dist/templates/projects/minimal/files/tsconfig.json.hbs +27 -0
  115. package/dist/templates/projects/minimal/template.config.json +185 -0
  116. package/dist/templates/projects/minimal/template.config.ts +88 -0
  117. package/package.json +37 -0
  118. package/templates/.gitkeep +0 -0
  119. package/templates/base/CLAUDE.md.hbs +362 -0
  120. package/templates/base/claude/agents/implementer.md +446 -0
  121. package/templates/base/claude/agents/orchestrator.md +155 -0
  122. package/templates/base/claude/agents/planner.md +348 -0
  123. package/templates/base/claude/agents/researcher.md +390 -0
  124. package/templates/base/claude/agents/reviewer.md +444 -0
  125. package/templates/base/claude/agents/specifier.md +331 -0
  126. package/templates/base/claude/agents/task-generator.md +382 -0
  127. package/templates/base/claude/hooks/post-artifact-generate.sh +39 -0
  128. package/templates/base/claude/hooks/post-implement-validate.sh +139 -0
  129. package/templates/base/claude/hooks/post-phase-checkpoint.sh +322 -0
  130. package/templates/base/claude/hooks/pre-agent-invoke.sh +34 -0
  131. package/templates/base/claude/hooks/pre-phase-advance.sh +40 -0
  132. package/templates/base/claude/hooks/track-agent-invocation.sh +230 -0
  133. package/templates/base/claude/orchestrator-config.json +141 -0
  134. package/templates/base/claude/settings.json +80 -0
  135. package/templates/base/claude/skills/artifact-validator/SKILL.md +226 -0
  136. package/templates/base/claude/skills/docs-guardian/SKILL.md +230 -0
  137. package/templates/base/claude/skills/kb-lookup/SKILL.md +257 -0
  138. package/templates/base/claude/skills/phase-gate-evaluator/SKILL.md +274 -0
  139. package/templates/base/claude/skills/workflow-status/SKILL.md +322 -0
  140. package/templates/base/docker-compose.yml.hbs +20 -0
  141. package/templates/base/mcp.json.hbs +37 -0
  142. package/templates/base/orchestrator/.state/.gitkeep +0 -0
  143. package/templates/base/orchestrator-index.json.hbs +37 -0
  144. package/templates/base/package.json.hbs +40 -0
  145. package/templates/default/.orchestrator/orchestrator-index.json +19 -0
  146. package/templates/default/README.md +58 -0
  147. package/templates/default/docker-compose.yml +24 -0
  148. package/templates/default/template.json +10 -0
  149. package/templates/projects/api/files/index.ts.hbs +30 -0
  150. package/templates/projects/api/files/server.ts.hbs +63 -0
  151. package/templates/projects/api/files/tsconfig.json.hbs +27 -0
  152. package/templates/projects/api/files/vitest.config.ts.hbs +28 -0
  153. package/templates/projects/api/template.config.json +238 -0
  154. package/templates/projects/api/template.config.ts +149 -0
  155. package/templates/projects/cli/files/cli.ts.hbs +50 -0
  156. package/templates/projects/cli/files/index.ts.hbs +8 -0
  157. package/templates/projects/cli/files/tsconfig.json.hbs +27 -0
  158. package/templates/projects/cli/files/vitest.config.ts.hbs +28 -0
  159. package/templates/projects/cli/template.config.json +213 -0
  160. package/templates/projects/cli/template.config.ts +126 -0
  161. package/templates/projects/frontend/files/App.tsx.hbs +31 -0
  162. package/templates/projects/frontend/files/index.html.hbs +13 -0
  163. package/templates/projects/frontend/files/main.tsx.hbs +22 -0
  164. package/templates/projects/frontend/files/tsconfig.json.hbs +34 -0
  165. package/templates/projects/frontend/files/tsconfig.node.json.hbs +10 -0
  166. package/templates/projects/frontend/files/vite.config.ts.hbs +19 -0
  167. package/templates/projects/frontend/files/vitest.config.ts.hbs +36 -0
  168. package/templates/projects/frontend/template.config.json +241 -0
  169. package/templates/projects/frontend/template.config.ts +153 -0
  170. package/templates/projects/minimal/files/claude-settings.json.hbs +20 -0
  171. package/templates/projects/minimal/files/env.example.hbs +17 -0
  172. package/templates/projects/minimal/files/gitignore.hbs +41 -0
  173. package/templates/projects/minimal/files/index.ts.hbs +13 -0
  174. package/templates/projects/minimal/files/tsconfig.json.hbs +27 -0
  175. package/templates/projects/minimal/template.config.json +185 -0
  176. package/templates/projects/minimal/template.config.ts +88 -0
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Migrate Command
3
+ *
4
+ * Migrate project from older versions to v1.3.0+.
5
+ * Works offline (no API required).
6
+ *
7
+ * @module commands
8
+ */
9
+ import { existsSync, readFileSync, writeFileSync } from 'fs';
10
+ import { join, resolve } from 'path';
11
+ /**
12
+ * Migrate Command
13
+ *
14
+ * Detects project version and applies migrations.
15
+ * All operations are offline (no API calls).
16
+ */
17
+ export class MigrateCommand {
18
+ templateEngine;
19
+ formatter;
20
+ /**
21
+ * Create migrate command
22
+ *
23
+ * @param templateEngine - Template engine instance
24
+ * @param formatter - Output formatter instance
25
+ */
26
+ constructor(templateEngine, formatter) {
27
+ this.templateEngine = templateEngine;
28
+ this.formatter = formatter;
29
+ }
30
+ /**
31
+ * Execute migrate command
32
+ *
33
+ * @param options - Migrate options
34
+ * @returns Migrate result
35
+ */
36
+ async execute(options) {
37
+ try {
38
+ const projectPath = options.projectPath ?? process.cwd();
39
+ // Check if project exists
40
+ const indexPath = join(projectPath, '.orchestrator', 'orchestrator-index.json');
41
+ if (!existsSync(indexPath)) {
42
+ return {
43
+ success: false,
44
+ message: 'Not an Orchestrator project',
45
+ error: `Orchestrator index not found at ${indexPath}. This does not appear to be an Orchestrator project.`,
46
+ };
47
+ }
48
+ // Read current version
49
+ const currentVersion = this.detectVersion(indexPath);
50
+ const targetVersion = options.orchestratorVersion ?? '1.4.0';
51
+ // Determine required migrations
52
+ const migrations = this.determineMigrations(currentVersion, targetVersion);
53
+ if (migrations.length === 0) {
54
+ return {
55
+ success: true,
56
+ message: 'Project is already up to date',
57
+ currentVersion,
58
+ targetVersion,
59
+ migrations: [],
60
+ };
61
+ }
62
+ // Dry run mode - only report what would be done
63
+ if (options.dryRun) {
64
+ return {
65
+ success: true,
66
+ message: `Would apply ${migrations.length} migration(s)`,
67
+ currentVersion,
68
+ targetVersion,
69
+ migrations,
70
+ };
71
+ }
72
+ // Apply migrations
73
+ const filesCreated = [];
74
+ const filesModified = [];
75
+ for (const migration of migrations) {
76
+ const result = await this.applyMigration(migration, projectPath, targetVersion);
77
+ filesCreated.push(...result.created);
78
+ filesModified.push(...result.modified);
79
+ }
80
+ // Update version in orchestrator-index.json
81
+ this.updateVersion(indexPath, targetVersion);
82
+ filesModified.push('.orchestrator/orchestrator-index.json');
83
+ return {
84
+ success: true,
85
+ message: `Project migrated to v${targetVersion}`,
86
+ currentVersion,
87
+ targetVersion,
88
+ migrations,
89
+ filesCreated,
90
+ filesModified,
91
+ };
92
+ }
93
+ catch (error) {
94
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
95
+ return {
96
+ success: false,
97
+ message: `Failed to migrate project: ${errorMessage}`,
98
+ error: errorMessage,
99
+ };
100
+ }
101
+ }
102
+ /**
103
+ * Detect project version
104
+ */
105
+ detectVersion(indexPath) {
106
+ try {
107
+ const content = readFileSync(indexPath, 'utf-8');
108
+ const index = JSON.parse(content);
109
+ return index.version || '1.0.0';
110
+ }
111
+ catch {
112
+ return '1.0.0';
113
+ }
114
+ }
115
+ /**
116
+ * Determine required migrations
117
+ */
118
+ determineMigrations(currentVersion, targetVersion) {
119
+ const migrations = [];
120
+ // Parse versions
121
+ const current = this.parseVersion(currentVersion);
122
+ const target = this.parseVersion(targetVersion);
123
+ // v1.0.0 -> v1.3.0: Add docker-compose.yml
124
+ if (this.versionLessThan(current, [1, 3, 0]) && this.versionGreaterOrEqual(target, [1, 3, 0])) {
125
+ migrations.push('add-docker-compose');
126
+ }
127
+ // v1.3.0 -> v1.4.0: Update orchestrator-index.json schema
128
+ if (this.versionLessThan(current, [1, 4, 0]) && this.versionGreaterOrEqual(target, [1, 4, 0])) {
129
+ migrations.push('update-index-schema');
130
+ }
131
+ return migrations;
132
+ }
133
+ /**
134
+ * Apply migration
135
+ */
136
+ async applyMigration(migration, projectPath, orchestratorVersion) {
137
+ const created = [];
138
+ const modified = [];
139
+ switch (migration) {
140
+ case 'add-docker-compose': {
141
+ const dockerComposePath = join(projectPath, 'docker-compose.yml');
142
+ // Only create if doesn't exist
143
+ if (!existsSync(dockerComposePath)) {
144
+ const context = {
145
+ projectName: this.getProjectName(projectPath),
146
+ orchestratorVersion,
147
+ };
148
+ const content = this.templateEngine.renderFile('default', 'docker-compose.yml', context);
149
+ writeFileSync(dockerComposePath, content, 'utf-8');
150
+ created.push('docker-compose.yml');
151
+ }
152
+ break;
153
+ }
154
+ case 'update-index-schema': {
155
+ const indexPath = join(projectPath, '.orchestrator', 'orchestrator-index.json');
156
+ const content = readFileSync(indexPath, 'utf-8');
157
+ const index = JSON.parse(content);
158
+ // Add new fields if missing
159
+ if (!index.hookExecutions) {
160
+ index.hookExecutions = [];
161
+ }
162
+ if (!index.defaultHooks) {
163
+ index.defaultHooks = {
164
+ postImplement: {
165
+ agent: 'docs-guardian',
166
+ mode: 'auto',
167
+ blocking: false,
168
+ enabled: true,
169
+ scope: 'all',
170
+ },
171
+ };
172
+ }
173
+ writeFileSync(indexPath, JSON.stringify(index, null, 2), 'utf-8');
174
+ modified.push('.orchestrator/orchestrator-index.json');
175
+ break;
176
+ }
177
+ default:
178
+ throw new Error(`Unknown migration: ${migration}`);
179
+ }
180
+ return { created, modified };
181
+ }
182
+ /**
183
+ * Update version in orchestrator-index.json
184
+ */
185
+ updateVersion(indexPath, version) {
186
+ const content = readFileSync(indexPath, 'utf-8');
187
+ const index = JSON.parse(content);
188
+ index.version = version;
189
+ writeFileSync(indexPath, JSON.stringify(index, null, 2), 'utf-8');
190
+ }
191
+ /**
192
+ * Get project name from path
193
+ */
194
+ getProjectName(projectPath) {
195
+ return resolve(projectPath).split('/').pop() ?? 'orchestrator-project';
196
+ }
197
+ /**
198
+ * Parse version string to array
199
+ */
200
+ parseVersion(version) {
201
+ return version.replace(/^v/, '').split('.').map(Number);
202
+ }
203
+ /**
204
+ * Check if version is less than target
205
+ */
206
+ versionLessThan(version, target) {
207
+ for (let i = 0; i < 3; i++) {
208
+ if (version[i] < target[i])
209
+ return true;
210
+ if (version[i] > target[i])
211
+ return false;
212
+ }
213
+ return false;
214
+ }
215
+ /**
216
+ * Check if version is greater or equal to target
217
+ */
218
+ versionGreaterOrEqual(version, target) {
219
+ return !this.versionLessThan(version, target);
220
+ }
221
+ /**
222
+ * Format result for output
223
+ */
224
+ formatResult(result) {
225
+ if (!result.success) {
226
+ return this.formatter.error(result.message);
227
+ }
228
+ if (result.migrations && result.migrations.length === 0) {
229
+ return this.formatter.info('Project is already up to date');
230
+ }
231
+ const lines = [this.formatter.success(result.message), ''];
232
+ if (result.currentVersion && result.targetVersion) {
233
+ lines.push(`Migrated from: v${result.currentVersion}`);
234
+ lines.push(`Migrated to: v${result.targetVersion}`);
235
+ lines.push('');
236
+ }
237
+ if (result.migrations && result.migrations.length > 0) {
238
+ lines.push('Migrations applied:');
239
+ for (const migration of result.migrations) {
240
+ lines.push(` - ${migration}`);
241
+ }
242
+ lines.push('');
243
+ }
244
+ if (result.filesCreated && result.filesCreated.length > 0) {
245
+ lines.push('Files created:');
246
+ for (const file of result.filesCreated) {
247
+ lines.push(` + ${file}`);
248
+ }
249
+ lines.push('');
250
+ }
251
+ if (result.filesModified && result.filesModified.length > 0) {
252
+ lines.push('Files modified:');
253
+ for (const file of result.filesModified) {
254
+ lines.push(` ~ ${file}`);
255
+ }
256
+ }
257
+ return lines.join('\n');
258
+ }
259
+ }
260
+ //# sourceMappingURL=MigrateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateCommand.js","sourceRoot":"","sources":["../../src/commands/MigrateCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Status Command
3
+ *
4
+ * Check active workflow status and API health.
5
+ * Requires API connection.
6
+ *
7
+ * @module commands
8
+ */
9
+ import { OrchestratorAPIClient } from '../api-client/OrchestratorAPIClient.js';
10
+ import type { HealthResponse, StatusResponse } from '../api-client/types.js';
11
+ import { OutputFormatter } from '../formatters/OutputFormatter.js';
12
+ /**
13
+ * Status command options
14
+ */
15
+ export interface StatusOptions {
16
+ jsonOutput?: boolean;
17
+ workflowId?: string;
18
+ }
19
+ /**
20
+ * Status command result
21
+ */
22
+ export interface StatusResult {
23
+ success: boolean;
24
+ message: string;
25
+ health?: HealthResponse;
26
+ workflow?: StatusResponse;
27
+ error?: string;
28
+ }
29
+ /**
30
+ * Status Command
31
+ *
32
+ * Checks API health and active workflow status.
33
+ * Always checks healthcheck before querying workflow status.
34
+ */
35
+ export declare class StatusCommand {
36
+ private readonly apiClient;
37
+ private readonly formatter;
38
+ /**
39
+ * Create status command
40
+ *
41
+ * @param apiClient - API client instance
42
+ * @param formatter - Output formatter instance
43
+ */
44
+ constructor(apiClient: OrchestratorAPIClient, formatter: OutputFormatter);
45
+ /**
46
+ * Execute status command
47
+ *
48
+ * @param options - Status options
49
+ * @returns Status result
50
+ */
51
+ execute(options: StatusOptions): Promise<StatusResult>;
52
+ /**
53
+ * Check API health
54
+ */
55
+ private checkHealth;
56
+ /**
57
+ * Format result for output
58
+ */
59
+ formatResult(result: StatusResult): string;
60
+ }
61
+ //# sourceMappingURL=StatusCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusCommand.d.ts","sourceRoot":"","sources":["../../src/commands/StatusCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAE5C;;;;;OAKG;gBACS,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe;IAKxE;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAkD5D;;OAEG;YACW,WAAW;IAYzB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;CA4C3C"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Status Command
3
+ *
4
+ * Check active workflow status and API health.
5
+ * Requires API connection.
6
+ *
7
+ * @module commands
8
+ */
9
+ /**
10
+ * Status Command
11
+ *
12
+ * Checks API health and active workflow status.
13
+ * Always checks healthcheck before querying workflow status.
14
+ */
15
+ export class StatusCommand {
16
+ apiClient;
17
+ formatter;
18
+ /**
19
+ * Create status command
20
+ *
21
+ * @param apiClient - API client instance
22
+ * @param formatter - Output formatter instance
23
+ */
24
+ constructor(apiClient, formatter) {
25
+ this.apiClient = apiClient;
26
+ this.formatter = formatter;
27
+ }
28
+ /**
29
+ * Execute status command
30
+ *
31
+ * @param options - Status options
32
+ * @returns Status result
33
+ */
34
+ async execute(options) {
35
+ try {
36
+ // Check health first
37
+ const health = await this.checkHealth();
38
+ if (health.status !== 'ok') {
39
+ return {
40
+ success: false,
41
+ message: 'API is not available',
42
+ health,
43
+ error: 'Orchestrator API is not responding. Make sure the API server is running.',
44
+ };
45
+ }
46
+ // Get workflow status
47
+ let workflow;
48
+ try {
49
+ if (options.workflowId) {
50
+ workflow = await this.apiClient.getWorkflowStatusById(options.workflowId);
51
+ }
52
+ else {
53
+ workflow = await this.apiClient.getWorkflowStatus();
54
+ }
55
+ }
56
+ catch (error) {
57
+ // Workflow not found is not an error for status command
58
+ if (error instanceof Error && error.message.includes('404')) {
59
+ return {
60
+ success: true,
61
+ message: 'No active workflow',
62
+ health,
63
+ };
64
+ }
65
+ throw error;
66
+ }
67
+ return {
68
+ success: true,
69
+ message: 'Status retrieved successfully',
70
+ health,
71
+ workflow,
72
+ };
73
+ }
74
+ catch (error) {
75
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
76
+ return {
77
+ success: false,
78
+ message: `Failed to get status: ${errorMessage}`,
79
+ error: errorMessage,
80
+ };
81
+ }
82
+ }
83
+ /**
84
+ * Check API health
85
+ */
86
+ async checkHealth() {
87
+ try {
88
+ return await this.apiClient.healthCheck();
89
+ }
90
+ catch (error) {
91
+ return {
92
+ status: 'error',
93
+ timestamp: new Date().toISOString(),
94
+ uptime: 0,
95
+ };
96
+ }
97
+ }
98
+ /**
99
+ * Format result for output
100
+ */
101
+ formatResult(result) {
102
+ if (!result.success) {
103
+ return this.formatter.error(result.message);
104
+ }
105
+ const lines = [];
106
+ // Health status
107
+ if (result.health) {
108
+ if (result.health.status === 'ok') {
109
+ lines.push(this.formatter.success('API is healthy'));
110
+ }
111
+ else {
112
+ lines.push(this.formatter.error('API is unhealthy'));
113
+ }
114
+ lines.push(` Uptime: ${result.health.uptime}s`);
115
+ lines.push(` Timestamp: ${result.health.timestamp}`);
116
+ lines.push('');
117
+ }
118
+ // Workflow status
119
+ if (result.workflow) {
120
+ lines.push(this.formatter.info('Active Workflow'));
121
+ lines.push(` ID: ${result.workflow.workflowId}`);
122
+ lines.push(` Status: ${result.workflow.status}`);
123
+ lines.push(` Phase: ${result.workflow.currentPhase}`);
124
+ lines.push(` Created: ${result.workflow.createdAt}`);
125
+ if (result.workflow.completedPhases.length > 0) {
126
+ lines.push(` Completed phases: ${result.workflow.completedPhases.join(', ')}`);
127
+ }
128
+ if (result.workflow.artifacts.length > 0) {
129
+ lines.push('');
130
+ lines.push(' Artifacts:');
131
+ for (const artifact of result.workflow.artifacts) {
132
+ lines.push(` - ${artifact.type}: ${artifact.path} (${artifact.status})`);
133
+ }
134
+ }
135
+ }
136
+ else {
137
+ lines.push(this.formatter.info('No active workflow'));
138
+ }
139
+ return lines.join('\n');
140
+ }
141
+ }
142
+ //# sourceMappingURL=StatusCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusCommand.js","sourceRoot":"","sources":["../../src/commands/StatusCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Templates Command
3
+ *
4
+ * List and show information about available templates.
5
+ * Works offline (no API required).
6
+ *
7
+ * @module commands
8
+ */
9
+ import { TemplateEngine, type TemplateMetadata } from '../templates/TemplateEngine.js';
10
+ import { OutputFormatter } from '../formatters/OutputFormatter.js';
11
+ /**
12
+ * Templates command action types
13
+ */
14
+ export type TemplatesAction = 'list' | 'info';
15
+ /**
16
+ * Templates command options
17
+ */
18
+ export interface TemplatesOptions {
19
+ action: TemplatesAction;
20
+ templateName?: string;
21
+ jsonOutput?: boolean;
22
+ }
23
+ /**
24
+ * Templates command result
25
+ */
26
+ export interface TemplatesResult {
27
+ success: boolean;
28
+ message: string;
29
+ templates?: TemplateMetadata[];
30
+ template?: TemplateMetadata;
31
+ error?: string;
32
+ }
33
+ /**
34
+ * Templates Command
35
+ *
36
+ * Lists available templates and shows template details.
37
+ * All operations are offline (no API calls).
38
+ */
39
+ export declare class TemplatesCommand {
40
+ private readonly templateEngine;
41
+ private readonly formatter;
42
+ /**
43
+ * Create templates command
44
+ *
45
+ * @param templateEngine - Template engine instance
46
+ * @param formatter - Output formatter instance
47
+ */
48
+ constructor(templateEngine: TemplateEngine, formatter: OutputFormatter);
49
+ /**
50
+ * Execute templates command
51
+ *
52
+ * @param options - Templates options
53
+ * @returns Templates result
54
+ */
55
+ execute(options: TemplatesOptions): Promise<TemplatesResult>;
56
+ /**
57
+ * List all available templates
58
+ */
59
+ private listTemplates;
60
+ /**
61
+ * Get template information
62
+ */
63
+ private getTemplateInfo;
64
+ /**
65
+ * Format result for output
66
+ */
67
+ formatResult(result: TemplatesResult): string;
68
+ }
69
+ //# sourceMappingURL=TemplatesCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplatesCommand.d.ts","sourceRoot":"","sources":["../../src/commands/TemplatesCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAE5C;;;;;OAKG;gBACS,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe;IAKtE;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBlE;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;CAkD9C"}