@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.
- package/README.md +74 -0
- package/dist/api-client/OrchestratorAPIClient.d.ts +111 -0
- package/dist/api-client/OrchestratorAPIClient.d.ts.map +1 -0
- package/dist/api-client/OrchestratorAPIClient.js +176 -0
- package/dist/api-client/OrchestratorAPIClient.js.map +1 -0
- package/dist/api-client/index.d.ts +11 -0
- package/dist/api-client/index.d.ts.map +1 -0
- package/dist/api-client/index.js +10 -0
- package/dist/api-client/index.js.map +1 -0
- package/dist/api-client/retry.d.ts +29 -0
- package/dist/api-client/retry.d.ts.map +1 -0
- package/dist/api-client/retry.js +85 -0
- package/dist/api-client/retry.js.map +1 -0
- package/dist/api-client/types.d.ts +148 -0
- package/dist/api-client/types.d.ts.map +1 -0
- package/dist/api-client/types.js +10 -0
- package/dist/api-client/types.js.map +1 -0
- package/dist/commands/AgentsCommand.d.ts +74 -0
- package/dist/commands/AgentsCommand.d.ts.map +1 -0
- package/dist/commands/AgentsCommand.js +170 -0
- package/dist/commands/AgentsCommand.js.map +1 -0
- package/dist/commands/InitCommand.d.ts +63 -0
- package/dist/commands/InitCommand.d.ts.map +1 -0
- package/dist/commands/InitCommand.js +150 -0
- package/dist/commands/InitCommand.js.map +1 -0
- package/dist/commands/MigrateCommand.d.ts +93 -0
- package/dist/commands/MigrateCommand.d.ts.map +1 -0
- package/dist/commands/MigrateCommand.js +260 -0
- package/dist/commands/MigrateCommand.js.map +1 -0
- package/dist/commands/StatusCommand.d.ts +61 -0
- package/dist/commands/StatusCommand.d.ts.map +1 -0
- package/dist/commands/StatusCommand.js +142 -0
- package/dist/commands/StatusCommand.js.map +1 -0
- package/dist/commands/TemplatesCommand.d.ts +69 -0
- package/dist/commands/TemplatesCommand.d.ts.map +1 -0
- package/dist/commands/TemplatesCommand.js +147 -0
- package/dist/commands/TemplatesCommand.js.map +1 -0
- package/dist/commands/WorkflowCommand.d.ts +82 -0
- package/dist/commands/WorkflowCommand.d.ts.map +1 -0
- package/dist/commands/WorkflowCommand.js +203 -0
- package/dist/commands/WorkflowCommand.js.map +1 -0
- package/dist/config/CLIConfig.d.ts +66 -0
- package/dist/config/CLIConfig.d.ts.map +1 -0
- package/dist/config/CLIConfig.js +60 -0
- package/dist/config/CLIConfig.js.map +1 -0
- package/dist/formatters/OutputFormatter.d.ts +102 -0
- package/dist/formatters/OutputFormatter.d.ts.map +1 -0
- package/dist/formatters/OutputFormatter.js +182 -0
- package/dist/formatters/OutputFormatter.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +249 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/.gitkeep +0 -0
- package/dist/templates/TemplateEngine.d.ts +90 -0
- package/dist/templates/TemplateEngine.d.ts.map +1 -0
- package/dist/templates/TemplateEngine.js +149 -0
- package/dist/templates/TemplateEngine.js.map +1 -0
- package/dist/templates/base/CLAUDE.md.hbs +362 -0
- package/dist/templates/base/claude/agents/implementer.md +446 -0
- package/dist/templates/base/claude/agents/orchestrator.md +155 -0
- package/dist/templates/base/claude/agents/planner.md +348 -0
- package/dist/templates/base/claude/agents/researcher.md +390 -0
- package/dist/templates/base/claude/agents/reviewer.md +444 -0
- package/dist/templates/base/claude/agents/specifier.md +331 -0
- package/dist/templates/base/claude/agents/task-generator.md +382 -0
- package/dist/templates/base/claude/hooks/post-artifact-generate.sh +39 -0
- package/dist/templates/base/claude/hooks/post-implement-validate.sh +139 -0
- package/dist/templates/base/claude/hooks/post-phase-checkpoint.sh +322 -0
- package/dist/templates/base/claude/hooks/pre-agent-invoke.sh +34 -0
- package/dist/templates/base/claude/hooks/pre-phase-advance.sh +40 -0
- package/dist/templates/base/claude/hooks/track-agent-invocation.sh +230 -0
- package/dist/templates/base/claude/orchestrator-config.json +141 -0
- package/dist/templates/base/claude/settings.json +80 -0
- package/dist/templates/base/claude/skills/artifact-validator/SKILL.md +226 -0
- package/dist/templates/base/claude/skills/docs-guardian/SKILL.md +230 -0
- package/dist/templates/base/claude/skills/kb-lookup/SKILL.md +257 -0
- package/dist/templates/base/claude/skills/phase-gate-evaluator/SKILL.md +274 -0
- package/dist/templates/base/claude/skills/workflow-status/SKILL.md +322 -0
- package/dist/templates/base/docker-compose.yml.hbs +20 -0
- package/dist/templates/base/mcp.json.hbs +37 -0
- package/dist/templates/base/orchestrator/.state/.gitkeep +0 -0
- package/dist/templates/base/orchestrator-index.json.hbs +37 -0
- package/dist/templates/base/package.json.hbs +40 -0
- package/dist/templates/default/.orchestrator/orchestrator-index.json +19 -0
- package/dist/templates/default/README.md +58 -0
- package/dist/templates/default/docker-compose.yml +24 -0
- package/dist/templates/default/template.json +10 -0
- package/dist/templates/projects/api/files/index.ts.hbs +30 -0
- package/dist/templates/projects/api/files/server.ts.hbs +63 -0
- package/dist/templates/projects/api/files/tsconfig.json.hbs +27 -0
- package/dist/templates/projects/api/files/vitest.config.ts.hbs +28 -0
- package/dist/templates/projects/api/template.config.json +238 -0
- package/dist/templates/projects/api/template.config.ts +149 -0
- package/dist/templates/projects/cli/files/cli.ts.hbs +50 -0
- package/dist/templates/projects/cli/files/index.ts.hbs +8 -0
- package/dist/templates/projects/cli/files/tsconfig.json.hbs +27 -0
- package/dist/templates/projects/cli/files/vitest.config.ts.hbs +28 -0
- package/dist/templates/projects/cli/template.config.json +213 -0
- package/dist/templates/projects/cli/template.config.ts +126 -0
- package/dist/templates/projects/frontend/files/App.tsx.hbs +31 -0
- package/dist/templates/projects/frontend/files/index.html.hbs +13 -0
- package/dist/templates/projects/frontend/files/main.tsx.hbs +22 -0
- package/dist/templates/projects/frontend/files/tsconfig.json.hbs +34 -0
- package/dist/templates/projects/frontend/files/tsconfig.node.json.hbs +10 -0
- package/dist/templates/projects/frontend/files/vite.config.ts.hbs +19 -0
- package/dist/templates/projects/frontend/files/vitest.config.ts.hbs +36 -0
- package/dist/templates/projects/frontend/template.config.json +241 -0
- package/dist/templates/projects/frontend/template.config.ts +153 -0
- package/dist/templates/projects/minimal/files/claude-settings.json.hbs +20 -0
- package/dist/templates/projects/minimal/files/env.example.hbs +17 -0
- package/dist/templates/projects/minimal/files/gitignore.hbs +41 -0
- package/dist/templates/projects/minimal/files/index.ts.hbs +13 -0
- package/dist/templates/projects/minimal/files/tsconfig.json.hbs +27 -0
- package/dist/templates/projects/minimal/template.config.json +185 -0
- package/dist/templates/projects/minimal/template.config.ts +88 -0
- package/package.json +37 -0
- package/templates/.gitkeep +0 -0
- package/templates/base/CLAUDE.md.hbs +362 -0
- package/templates/base/claude/agents/implementer.md +446 -0
- package/templates/base/claude/agents/orchestrator.md +155 -0
- package/templates/base/claude/agents/planner.md +348 -0
- package/templates/base/claude/agents/researcher.md +390 -0
- package/templates/base/claude/agents/reviewer.md +444 -0
- package/templates/base/claude/agents/specifier.md +331 -0
- package/templates/base/claude/agents/task-generator.md +382 -0
- package/templates/base/claude/hooks/post-artifact-generate.sh +39 -0
- package/templates/base/claude/hooks/post-implement-validate.sh +139 -0
- package/templates/base/claude/hooks/post-phase-checkpoint.sh +322 -0
- package/templates/base/claude/hooks/pre-agent-invoke.sh +34 -0
- package/templates/base/claude/hooks/pre-phase-advance.sh +40 -0
- package/templates/base/claude/hooks/track-agent-invocation.sh +230 -0
- package/templates/base/claude/orchestrator-config.json +141 -0
- package/templates/base/claude/settings.json +80 -0
- package/templates/base/claude/skills/artifact-validator/SKILL.md +226 -0
- package/templates/base/claude/skills/docs-guardian/SKILL.md +230 -0
- package/templates/base/claude/skills/kb-lookup/SKILL.md +257 -0
- package/templates/base/claude/skills/phase-gate-evaluator/SKILL.md +274 -0
- package/templates/base/claude/skills/workflow-status/SKILL.md +322 -0
- package/templates/base/docker-compose.yml.hbs +20 -0
- package/templates/base/mcp.json.hbs +37 -0
- package/templates/base/orchestrator/.state/.gitkeep +0 -0
- package/templates/base/orchestrator-index.json.hbs +37 -0
- package/templates/base/package.json.hbs +40 -0
- package/templates/default/.orchestrator/orchestrator-index.json +19 -0
- package/templates/default/README.md +58 -0
- package/templates/default/docker-compose.yml +24 -0
- package/templates/default/template.json +10 -0
- package/templates/projects/api/files/index.ts.hbs +30 -0
- package/templates/projects/api/files/server.ts.hbs +63 -0
- package/templates/projects/api/files/tsconfig.json.hbs +27 -0
- package/templates/projects/api/files/vitest.config.ts.hbs +28 -0
- package/templates/projects/api/template.config.json +238 -0
- package/templates/projects/api/template.config.ts +149 -0
- package/templates/projects/cli/files/cli.ts.hbs +50 -0
- package/templates/projects/cli/files/index.ts.hbs +8 -0
- package/templates/projects/cli/files/tsconfig.json.hbs +27 -0
- package/templates/projects/cli/files/vitest.config.ts.hbs +28 -0
- package/templates/projects/cli/template.config.json +213 -0
- package/templates/projects/cli/template.config.ts +126 -0
- package/templates/projects/frontend/files/App.tsx.hbs +31 -0
- package/templates/projects/frontend/files/index.html.hbs +13 -0
- package/templates/projects/frontend/files/main.tsx.hbs +22 -0
- package/templates/projects/frontend/files/tsconfig.json.hbs +34 -0
- package/templates/projects/frontend/files/tsconfig.node.json.hbs +10 -0
- package/templates/projects/frontend/files/vite.config.ts.hbs +19 -0
- package/templates/projects/frontend/files/vitest.config.ts.hbs +36 -0
- package/templates/projects/frontend/template.config.json +241 -0
- package/templates/projects/frontend/template.config.ts +153 -0
- package/templates/projects/minimal/files/claude-settings.json.hbs +20 -0
- package/templates/projects/minimal/files/env.example.hbs +17 -0
- package/templates/projects/minimal/files/gitignore.hbs +41 -0
- package/templates/projects/minimal/files/index.ts.hbs +13 -0
- package/templates/projects/minimal/files/tsconfig.json.hbs +27 -0
- package/templates/projects/minimal/template.config.json +185 -0
- 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"}
|