@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,10 @@
1
+ /**
2
+ * API Client Types
3
+ *
4
+ * Local type definitions for Orchestrator API Client.
5
+ * IMPORTANT: Zero imports from domain/application/infrastructure layers.
6
+ *
7
+ * @module api-client/types
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api-client/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Agents Command
3
+ *
4
+ * List available agents and show agent details.
5
+ * Requires API connection.
6
+ *
7
+ * @module commands
8
+ */
9
+ import { OrchestratorAPIClient } from '../api-client/OrchestratorAPIClient.js';
10
+ import type { Agent } from '../api-client/types.js';
11
+ import { OutputFormatter } from '../formatters/OutputFormatter.js';
12
+ /**
13
+ * Agents command action types
14
+ */
15
+ export type AgentsAction = 'list' | 'info';
16
+ /**
17
+ * Agents command options
18
+ */
19
+ export interface AgentsOptions {
20
+ action: AgentsAction;
21
+ agentName?: string;
22
+ jsonOutput?: boolean;
23
+ }
24
+ /**
25
+ * Agents command result
26
+ */
27
+ export interface AgentsResult {
28
+ success: boolean;
29
+ message: string;
30
+ agents?: Agent[];
31
+ agent?: Agent;
32
+ error?: string;
33
+ }
34
+ /**
35
+ * Agents Command
36
+ *
37
+ * Lists available agents and shows agent details.
38
+ * Always checks healthcheck before operations.
39
+ */
40
+ export declare class AgentsCommand {
41
+ private readonly apiClient;
42
+ private readonly formatter;
43
+ /**
44
+ * Create agents command
45
+ *
46
+ * @param apiClient - API client instance
47
+ * @param formatter - Output formatter instance
48
+ */
49
+ constructor(apiClient: OrchestratorAPIClient, formatter: OutputFormatter);
50
+ /**
51
+ * Execute agents command
52
+ *
53
+ * @param options - Agents options
54
+ * @returns Agents result
55
+ */
56
+ execute(options: AgentsOptions): Promise<AgentsResult>;
57
+ /**
58
+ * List all available agents
59
+ */
60
+ private listAgents;
61
+ /**
62
+ * Get agent information
63
+ */
64
+ private getAgentInfo;
65
+ /**
66
+ * Check API health
67
+ */
68
+ private checkHealth;
69
+ /**
70
+ * Format result for output
71
+ */
72
+ formatResult(result: AgentsResult): string;
73
+ }
74
+ //# sourceMappingURL=AgentsCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentsCommand.d.ts","sourceRoot":"","sources":["../../src/commands/AgentsCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,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;IAmC5D;;OAEG;YACW,UAAU;IAkBxB;;OAEG;YACW,YAAY;IA2B1B;;OAEG;YACW,WAAW;IAYzB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;CA8C3C"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Agents Command
3
+ *
4
+ * List available agents and show agent details.
5
+ * Requires API connection.
6
+ *
7
+ * @module commands
8
+ */
9
+ /**
10
+ * Agents Command
11
+ *
12
+ * Lists available agents and shows agent details.
13
+ * Always checks healthcheck before operations.
14
+ */
15
+ export class AgentsCommand {
16
+ apiClient;
17
+ formatter;
18
+ /**
19
+ * Create agents 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 agents command
30
+ *
31
+ * @param options - Agents options
32
+ * @returns Agents 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
+ error: 'Orchestrator API is not responding. Make sure the API server is running.',
43
+ };
44
+ }
45
+ // Execute action
46
+ switch (options.action) {
47
+ case 'list':
48
+ return await this.listAgents();
49
+ case 'info':
50
+ return await this.getAgentInfo(options.agentName);
51
+ default:
52
+ return {
53
+ success: false,
54
+ message: `Unknown action: ${options.action}`,
55
+ error: `Action "${options.action}" is not supported. Use "list" or "info".`,
56
+ };
57
+ }
58
+ }
59
+ catch (error) {
60
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
61
+ return {
62
+ success: false,
63
+ message: `Failed to execute agents command: ${errorMessage}`,
64
+ error: errorMessage,
65
+ };
66
+ }
67
+ }
68
+ /**
69
+ * List all available agents
70
+ */
71
+ async listAgents() {
72
+ const agents = await this.apiClient.listAgents();
73
+ if (agents.length === 0) {
74
+ return {
75
+ success: true,
76
+ message: 'No agents available',
77
+ agents: [],
78
+ };
79
+ }
80
+ return {
81
+ success: true,
82
+ message: `Found ${agents.length} agent(s)`,
83
+ agents,
84
+ };
85
+ }
86
+ /**
87
+ * Get agent information
88
+ */
89
+ async getAgentInfo(agentName) {
90
+ if (!agentName) {
91
+ return {
92
+ success: false,
93
+ message: 'Agent name is required',
94
+ error: 'Please specify an agent name. Example: orchestrator agents info specifier',
95
+ };
96
+ }
97
+ const agents = await this.apiClient.listAgents();
98
+ const agent = agents.find((a) => a.name === agentName);
99
+ if (!agent) {
100
+ return {
101
+ success: false,
102
+ message: `Agent not found: ${agentName}`,
103
+ error: `Agent "${agentName}" does not exist. Use "orchestrator agents list" to see available agents.`,
104
+ };
105
+ }
106
+ return {
107
+ success: true,
108
+ message: `Agent information: ${agentName}`,
109
+ agent,
110
+ };
111
+ }
112
+ /**
113
+ * Check API health
114
+ */
115
+ async checkHealth() {
116
+ try {
117
+ return await this.apiClient.healthCheck();
118
+ }
119
+ catch (error) {
120
+ return {
121
+ status: 'error',
122
+ timestamp: new Date().toISOString(),
123
+ uptime: 0,
124
+ };
125
+ }
126
+ }
127
+ /**
128
+ * Format result for output
129
+ */
130
+ formatResult(result) {
131
+ if (!result.success) {
132
+ return this.formatter.error(result.message);
133
+ }
134
+ // List action
135
+ if (result.agents) {
136
+ if (result.agents.length === 0) {
137
+ return this.formatter.info('No agents available');
138
+ }
139
+ const tableData = result.agents.map((agent) => ({
140
+ name: agent.name,
141
+ purpose: agent.purpose,
142
+ description: agent.description.substring(0, 60) + (agent.description.length > 60 ? '...' : ''),
143
+ }));
144
+ return this.formatter.table(tableData, [
145
+ { header: 'Name', key: 'name' },
146
+ { header: 'Purpose', key: 'purpose' },
147
+ { header: 'Description', key: 'description' },
148
+ ]);
149
+ }
150
+ // Info action
151
+ if (result.agent) {
152
+ const lines = [
153
+ this.formatter.info(`Agent: ${result.agent.name}`),
154
+ '',
155
+ `Purpose: ${result.agent.purpose}`,
156
+ `Description: ${result.agent.description}`,
157
+ ];
158
+ if (result.agent.capabilities && result.agent.capabilities.length > 0) {
159
+ lines.push('');
160
+ lines.push('Capabilities:');
161
+ for (const capability of result.agent.capabilities) {
162
+ lines.push(` - ${capability}`);
163
+ }
164
+ }
165
+ return lines.join('\n');
166
+ }
167
+ return this.formatter.success(result.message);
168
+ }
169
+ }
170
+ //# sourceMappingURL=AgentsCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentsCommand.js","sourceRoot":"","sources":["../../src/commands/AgentsCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Init Command
3
+ *
4
+ * Initialize a new Orchestrator project from bundled templates.
5
+ * Works offline (no API required).
6
+ *
7
+ * @module commands
8
+ */
9
+ import { TemplateEngine } from '../templates/TemplateEngine.js';
10
+ import { OutputFormatter } from '../formatters/OutputFormatter.js';
11
+ /**
12
+ * Init command options
13
+ */
14
+ export interface InitOptions {
15
+ template?: string;
16
+ projectName?: string;
17
+ orchestratorVersion?: string;
18
+ outputPath?: string;
19
+ jsonOutput?: boolean;
20
+ }
21
+ /**
22
+ * Init command result
23
+ */
24
+ export interface InitResult {
25
+ success: boolean;
26
+ message: string;
27
+ projectPath?: string;
28
+ filesCreated?: string[];
29
+ error?: string;
30
+ }
31
+ /**
32
+ * Init Command
33
+ *
34
+ * Creates a new Orchestrator project from a template.
35
+ * All operations are offline (no API calls).
36
+ */
37
+ export declare class InitCommand {
38
+ private readonly templateEngine;
39
+ private readonly formatter;
40
+ /**
41
+ * Create init command
42
+ *
43
+ * @param templateEngine - Template engine instance
44
+ * @param formatter - Output formatter instance
45
+ */
46
+ constructor(templateEngine: TemplateEngine, formatter: OutputFormatter);
47
+ /**
48
+ * Execute init command
49
+ *
50
+ * @param options - Init options
51
+ * @returns Init result
52
+ */
53
+ execute(options: InitOptions): Promise<InitResult>;
54
+ /**
55
+ * Validate init options
56
+ */
57
+ private validateOptions;
58
+ /**
59
+ * Format result for output
60
+ */
61
+ formatResult(result: InitResult): string;
62
+ }
63
+ //# sourceMappingURL=InitCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitCommand.d.ts","sourceRoot":"","sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,cAAc,EAAwB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,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,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAgFxD;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAyBzC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Init Command
3
+ *
4
+ * Initialize a new Orchestrator project from bundled templates.
5
+ * Works offline (no API required).
6
+ *
7
+ * @module commands
8
+ */
9
+ import { writeFileSync, mkdirSync, existsSync } from 'fs';
10
+ import { join, resolve } from 'path';
11
+ /**
12
+ * Init Command
13
+ *
14
+ * Creates a new Orchestrator project from a template.
15
+ * All operations are offline (no API calls).
16
+ */
17
+ export class InitCommand {
18
+ templateEngine;
19
+ formatter;
20
+ /**
21
+ * Create init 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 init command
32
+ *
33
+ * @param options - Init options
34
+ * @returns Init result
35
+ */
36
+ async execute(options) {
37
+ try {
38
+ // Validate options
39
+ const validation = this.validateOptions(options);
40
+ if (!validation.valid) {
41
+ return {
42
+ success: false,
43
+ message: validation.error,
44
+ error: validation.error,
45
+ };
46
+ }
47
+ // Get template
48
+ const templateName = options.template ?? 'default';
49
+ const template = this.templateEngine.getTemplate(templateName);
50
+ if (!template) {
51
+ return {
52
+ success: false,
53
+ message: `Template not found: ${templateName}`,
54
+ error: `Template "${templateName}" does not exist. Use "orchestrator templates list" to see available templates.`,
55
+ };
56
+ }
57
+ // Prepare context
58
+ const context = {
59
+ projectName: options.projectName ?? 'my-orchestrator-project',
60
+ orchestratorVersion: options.orchestratorVersion ?? 'latest',
61
+ };
62
+ // Determine output path
63
+ const outputPath = options.outputPath ?? process.cwd();
64
+ const projectPath = join(outputPath, context.projectName);
65
+ // Check if project directory already exists
66
+ if (existsSync(projectPath)) {
67
+ return {
68
+ success: false,
69
+ message: `Project directory already exists: ${projectPath}`,
70
+ error: `Directory "${projectPath}" already exists. Choose a different project name or remove the existing directory.`,
71
+ };
72
+ }
73
+ // Create project directory
74
+ mkdirSync(projectPath, { recursive: true });
75
+ // Render and write files
76
+ const filesCreated = [];
77
+ for (const fileName of template.files) {
78
+ const rendered = this.templateEngine.renderFile(templateName, fileName, context);
79
+ const filePath = join(projectPath, fileName);
80
+ // Create parent directories if needed
81
+ const parentDir = resolve(filePath, '..');
82
+ if (!existsSync(parentDir)) {
83
+ mkdirSync(parentDir, { recursive: true });
84
+ }
85
+ // Write file
86
+ writeFileSync(filePath, rendered, 'utf-8');
87
+ filesCreated.push(fileName);
88
+ }
89
+ return {
90
+ success: true,
91
+ message: `Project "${context.projectName}" initialized successfully`,
92
+ projectPath,
93
+ filesCreated,
94
+ };
95
+ }
96
+ catch (error) {
97
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
98
+ return {
99
+ success: false,
100
+ message: `Failed to initialize project: ${errorMessage}`,
101
+ error: errorMessage,
102
+ };
103
+ }
104
+ }
105
+ /**
106
+ * Validate init options
107
+ */
108
+ validateOptions(options) {
109
+ if (options.projectName && !/^[a-z0-9-]+$/.test(options.projectName)) {
110
+ return {
111
+ valid: false,
112
+ error: 'Invalid project name. Use only lowercase letters, numbers, and hyphens.',
113
+ };
114
+ }
115
+ if (options.outputPath && !existsSync(options.outputPath)) {
116
+ return {
117
+ valid: false,
118
+ error: `Output path does not exist: ${options.outputPath}`,
119
+ };
120
+ }
121
+ return { valid: true };
122
+ }
123
+ /**
124
+ * Format result for output
125
+ */
126
+ formatResult(result) {
127
+ if (result.success) {
128
+ const lines = [
129
+ this.formatter.success(result.message),
130
+ '',
131
+ this.formatter.info(`Project path: ${result.projectPath}`),
132
+ '',
133
+ 'Files created:',
134
+ ];
135
+ for (const file of result.filesCreated ?? []) {
136
+ lines.push(` - ${file}`);
137
+ }
138
+ lines.push('');
139
+ lines.push('Next steps:');
140
+ lines.push(` cd ${result.projectPath?.split('/').pop() ?? 'project'}`);
141
+ lines.push(' docker-compose up -d');
142
+ lines.push(' orchestrator status');
143
+ return lines.join('\n');
144
+ }
145
+ else {
146
+ return this.formatter.error(result.message);
147
+ }
148
+ }
149
+ }
150
+ //# sourceMappingURL=InitCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitCommand.js","sourceRoot":"","sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
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 { TemplateEngine } from '../templates/TemplateEngine.js';
10
+ import { OutputFormatter } from '../formatters/OutputFormatter.js';
11
+ /**
12
+ * Migrate command options
13
+ */
14
+ export interface MigrateOptions {
15
+ projectPath?: string;
16
+ orchestratorVersion?: string;
17
+ dryRun?: boolean;
18
+ jsonOutput?: boolean;
19
+ }
20
+ /**
21
+ * Migrate command result
22
+ */
23
+ export interface MigrateResult {
24
+ success: boolean;
25
+ message: string;
26
+ currentVersion?: string;
27
+ targetVersion?: string;
28
+ migrations?: string[];
29
+ filesCreated?: string[];
30
+ filesModified?: string[];
31
+ error?: string;
32
+ }
33
+ /**
34
+ * Migrate Command
35
+ *
36
+ * Detects project version and applies migrations.
37
+ * All operations are offline (no API calls).
38
+ */
39
+ export declare class MigrateCommand {
40
+ private readonly templateEngine;
41
+ private readonly formatter;
42
+ /**
43
+ * Create migrate command
44
+ *
45
+ * @param templateEngine - Template engine instance
46
+ * @param formatter - Output formatter instance
47
+ */
48
+ constructor(templateEngine: TemplateEngine, formatter: OutputFormatter);
49
+ /**
50
+ * Execute migrate command
51
+ *
52
+ * @param options - Migrate options
53
+ * @returns Migrate result
54
+ */
55
+ execute(options: MigrateOptions): Promise<MigrateResult>;
56
+ /**
57
+ * Detect project version
58
+ */
59
+ private detectVersion;
60
+ /**
61
+ * Determine required migrations
62
+ */
63
+ private determineMigrations;
64
+ /**
65
+ * Apply migration
66
+ */
67
+ private applyMigration;
68
+ /**
69
+ * Update version in orchestrator-index.json
70
+ */
71
+ private updateVersion;
72
+ /**
73
+ * Get project name from path
74
+ */
75
+ private getProjectName;
76
+ /**
77
+ * Parse version string to array
78
+ */
79
+ private parseVersion;
80
+ /**
81
+ * Check if version is less than target
82
+ */
83
+ private versionLessThan;
84
+ /**
85
+ * Check if version is greater or equal to target
86
+ */
87
+ private versionGreaterOrEqual;
88
+ /**
89
+ * Format result for output
90
+ */
91
+ formatResult(result: MigrateResult): string;
92
+ }
93
+ //# sourceMappingURL=MigrateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateCommand.d.ts","sourceRoot":"","sources":["../../src/commands/MigrateCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,cAAc,EAAwB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAUnE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,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,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA+E9D;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;YACW,cAAc;IAgE5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;CA0C5C"}