@orchestrator-claude/cli 3.1.11 → 3.2.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 (99) hide show
  1. package/dist/api-client/OrchestratorAPIClient.d.ts +50 -1
  2. package/dist/api-client/OrchestratorAPIClient.d.ts.map +1 -1
  3. package/dist/api-client/OrchestratorAPIClient.js +73 -1
  4. package/dist/api-client/OrchestratorAPIClient.js.map +1 -1
  5. package/dist/api-client/types.d.ts +95 -2
  6. package/dist/api-client/types.d.ts.map +1 -1
  7. package/dist/commands/InitCommand.d.ts +22 -3
  8. package/dist/commands/InitCommand.d.ts.map +1 -1
  9. package/dist/commands/InitCommand.js +147 -13
  10. package/dist/commands/InitCommand.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/services/BootstrapService.d.ts +100 -0
  16. package/dist/services/BootstrapService.d.ts.map +1 -0
  17. package/dist/services/BootstrapService.js +231 -0
  18. package/dist/services/BootstrapService.js.map +1 -0
  19. package/dist/services/CleanupManager.d.ts +49 -0
  20. package/dist/services/CleanupManager.d.ts.map +1 -0
  21. package/dist/services/CleanupManager.js +87 -0
  22. package/dist/services/CleanupManager.js.map +1 -0
  23. package/dist/services/CredentialGenerator.d.ts +11 -0
  24. package/dist/services/CredentialGenerator.d.ts.map +1 -0
  25. package/dist/services/CredentialGenerator.js +25 -0
  26. package/dist/services/CredentialGenerator.js.map +1 -0
  27. package/dist/services/VerificationService.d.ts +103 -0
  28. package/dist/services/VerificationService.d.ts.map +1 -0
  29. package/dist/services/VerificationService.js +350 -0
  30. package/dist/services/VerificationService.js.map +1 -0
  31. package/dist/templates/base/claude/skills/release/SKILL.md +236 -0
  32. package/dist/templates/base/claude/skills/release/release.sh +460 -0
  33. package/dist/templates/base/docker-compose.yml.hbs +189 -8
  34. package/dist/templates/base/mcp.json.hbs +16 -9
  35. package/dist/templates/default/docker-compose.yml +190 -10
  36. package/package.json +1 -1
  37. package/templates/base/claude/skills/release/SKILL.md +236 -0
  38. package/templates/base/claude/skills/release/release.sh +460 -0
  39. package/templates/base/docker-compose.yml.hbs +189 -8
  40. package/templates/base/mcp.json.hbs +16 -9
  41. package/templates/default/docker-compose.yml +190 -10
  42. package/dist/templates/base/orchestrator-index.json.hbs +0 -37
  43. package/dist/templates/projects/api/files/index.ts.hbs +0 -30
  44. package/dist/templates/projects/api/files/server.ts.hbs +0 -63
  45. package/dist/templates/projects/api/files/tsconfig.json.hbs +0 -27
  46. package/dist/templates/projects/api/files/vitest.config.ts.hbs +0 -28
  47. package/dist/templates/projects/api/template.config.json +0 -238
  48. package/dist/templates/projects/api/template.config.ts +0 -149
  49. package/dist/templates/projects/cli/files/cli.ts.hbs +0 -50
  50. package/dist/templates/projects/cli/files/index.ts.hbs +0 -8
  51. package/dist/templates/projects/cli/files/tsconfig.json.hbs +0 -27
  52. package/dist/templates/projects/cli/files/vitest.config.ts.hbs +0 -28
  53. package/dist/templates/projects/cli/template.config.json +0 -213
  54. package/dist/templates/projects/cli/template.config.ts +0 -126
  55. package/dist/templates/projects/frontend/files/App.tsx.hbs +0 -31
  56. package/dist/templates/projects/frontend/files/index.html.hbs +0 -13
  57. package/dist/templates/projects/frontend/files/main.tsx.hbs +0 -22
  58. package/dist/templates/projects/frontend/files/tsconfig.json.hbs +0 -34
  59. package/dist/templates/projects/frontend/files/tsconfig.node.json.hbs +0 -10
  60. package/dist/templates/projects/frontend/files/vite.config.ts.hbs +0 -19
  61. package/dist/templates/projects/frontend/files/vitest.config.ts.hbs +0 -36
  62. package/dist/templates/projects/frontend/template.config.json +0 -241
  63. package/dist/templates/projects/frontend/template.config.ts +0 -153
  64. package/dist/templates/projects/minimal/files/claude-settings.json.hbs +0 -20
  65. package/dist/templates/projects/minimal/files/env.example.hbs +0 -17
  66. package/dist/templates/projects/minimal/files/gitignore.hbs +0 -41
  67. package/dist/templates/projects/minimal/files/index.ts.hbs +0 -13
  68. package/dist/templates/projects/minimal/files/tsconfig.json.hbs +0 -27
  69. package/dist/templates/projects/minimal/template.config.json +0 -185
  70. package/dist/templates/projects/minimal/template.config.ts +0 -88
  71. package/templates/base/orchestrator-index.json.hbs +0 -37
  72. package/templates/projects/api/files/index.ts.hbs +0 -30
  73. package/templates/projects/api/files/server.ts.hbs +0 -63
  74. package/templates/projects/api/files/tsconfig.json.hbs +0 -27
  75. package/templates/projects/api/files/vitest.config.ts.hbs +0 -28
  76. package/templates/projects/api/template.config.json +0 -238
  77. package/templates/projects/api/template.config.ts +0 -149
  78. package/templates/projects/cli/files/cli.ts.hbs +0 -50
  79. package/templates/projects/cli/files/index.ts.hbs +0 -8
  80. package/templates/projects/cli/files/tsconfig.json.hbs +0 -27
  81. package/templates/projects/cli/files/vitest.config.ts.hbs +0 -28
  82. package/templates/projects/cli/template.config.json +0 -213
  83. package/templates/projects/cli/template.config.ts +0 -126
  84. package/templates/projects/frontend/files/App.tsx.hbs +0 -31
  85. package/templates/projects/frontend/files/index.html.hbs +0 -13
  86. package/templates/projects/frontend/files/main.tsx.hbs +0 -22
  87. package/templates/projects/frontend/files/tsconfig.json.hbs +0 -34
  88. package/templates/projects/frontend/files/tsconfig.node.json.hbs +0 -10
  89. package/templates/projects/frontend/files/vite.config.ts.hbs +0 -19
  90. package/templates/projects/frontend/files/vitest.config.ts.hbs +0 -36
  91. package/templates/projects/frontend/template.config.json +0 -241
  92. package/templates/projects/frontend/template.config.ts +0 -153
  93. package/templates/projects/minimal/files/claude-settings.json.hbs +0 -20
  94. package/templates/projects/minimal/files/env.example.hbs +0 -17
  95. package/templates/projects/minimal/files/gitignore.hbs +0 -41
  96. package/templates/projects/minimal/files/index.ts.hbs +0 -13
  97. package/templates/projects/minimal/files/tsconfig.json.hbs +0 -27
  98. package/templates/projects/minimal/template.config.json +0 -185
  99. package/templates/projects/minimal/template.config.ts +0 -88
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module api-client
8
8
  */
9
- import type { APIClientConfig, HealthResponse, CreateWorkflowRequest, WorkflowResponse, StatusResponse, ActionResponse, Agent, Artifact, DetectResponse, AdvancePhaseResponse, SeedProjectRequest, SeedProjectResponse, WorkflowSummary, WorkflowConfigsResponse } from './types.js';
9
+ import type { APIClientConfig, HealthResponse, CreateWorkflowRequest, WorkflowResponse, StatusResponse, ActionResponse, Agent, Artifact, DetectResponse, AdvancePhaseResponse, SeedProjectRequest, SeedProjectResponse, WorkflowSummary, WorkflowConfigsResponse, RegisterRequest, RegisterResponse, LoginRequest, LoginResponse, RegisterProjectRequest, RegisterProjectResponse } from './types.js';
10
10
  /**
11
11
  * Orchestrator API Client
12
12
  *
@@ -115,6 +115,55 @@ export declare class OrchestratorAPIClient {
115
115
  * @returns Seed result with files created
116
116
  */
117
117
  seedProject(request: SeedProjectRequest): Promise<SeedProjectResponse>;
118
+ /**
119
+ * Set Authorization Bearer token on the axios instance defaults.
120
+ *
121
+ * After calling this, all subsequent requests from this client instance
122
+ * will include the Authorization header automatically.
123
+ *
124
+ * @param token - JWT access token
125
+ */
126
+ setAuthToken(token: string): void;
127
+ /**
128
+ * Register a new user account.
129
+ *
130
+ * Does NOT use retry logic — auth endpoints should fail fast
131
+ * rather than retrying on credential errors.
132
+ *
133
+ * @param request - Registration request with email and password
134
+ * @returns Access and refresh tokens
135
+ */
136
+ register(request: RegisterRequest): Promise<RegisterResponse>;
137
+ /**
138
+ * Login with existing user credentials.
139
+ *
140
+ * Automatically calls setAuthToken with the returned accessToken
141
+ * so subsequent requests are authenticated without manual token setting.
142
+ *
143
+ * Does NOT use retry logic — auth endpoints should fail fast.
144
+ *
145
+ * @param request - Login request with email and password
146
+ * @returns Access and refresh tokens
147
+ */
148
+ login(request: LoginRequest): Promise<LoginResponse>;
149
+ /**
150
+ * Register a project with the Orchestrator API.
151
+ *
152
+ * Uses standard retry logic via the request wrapper.
153
+ *
154
+ * @param request - Project registration request with name and rootPath
155
+ * @returns Registered project details including assigned ID
156
+ */
157
+ registerProject(request: RegisterProjectRequest): Promise<RegisterProjectResponse>;
158
+ /**
159
+ * Get a project by ID.
160
+ *
161
+ * Used by VerificationService to confirm a registered project exists.
162
+ *
163
+ * @param id - Project ID
164
+ * @returns Project details
165
+ */
166
+ getProject(id: string): Promise<RegisterProjectResponse>;
118
167
  /**
119
168
  * Generic request wrapper with retry logic
120
169
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OrchestratorAPIClient.d.ts","sourceRoot":"","sources":["../../src/api-client/OrchestratorAPIClient.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,KAAK,EACL,QAAQ,EAER,cAAc,EAEd,oBAAoB,EAEpB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAYpB;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD;;;;OAIG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAY7C;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAI5C;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI/E;;;;;OAKG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKhE;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAI7D;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIlD;;;;;OAKG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxE;;;;;OAKG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMhE;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAIpC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI1C;;;;;OAKG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAK7D;;;;;;OAMG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAOhC;;;;;OAKG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvF;;;;;;;;OAQG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAM5E;;;;;;OAMG;YACW,OAAO;IAcrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAwBpB"}
1
+ {"version":3,"file":"OrchestratorAPIClient.d.ts","sourceRoot":"","sources":["../../src/api-client/OrchestratorAPIClient.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,KAAK,EACL,QAAQ,EAER,cAAc,EAEd,oBAAoB,EAEpB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAYpB;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD;;;;OAIG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAY7C;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAI5C;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI/E;;;;;OAKG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKhE;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAI7D;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIlD;;;;;OAKG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxE;;;;;OAKG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMhE;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAIpC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI1C;;;;;OAKG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAK7D;;;;;;OAMG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAOhC;;;;;OAKG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvF;;;;;;;;OAQG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAM5E;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;;;;OAQG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASnE;;;;;;;;;;OAUG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAU1D;;;;;;;OAOG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAMxF;;;;;;;OAOG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAM9D;;;;;;OAMG;YACW,OAAO;IAcrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAwBpB"}
@@ -160,6 +160,78 @@ export class OrchestratorAPIClient {
160
160
  async seedProject(request) {
161
161
  return this.request(() => this.client.post('/projects/seed', request));
162
162
  }
163
+ /**
164
+ * Set Authorization Bearer token on the axios instance defaults.
165
+ *
166
+ * After calling this, all subsequent requests from this client instance
167
+ * will include the Authorization header automatically.
168
+ *
169
+ * @param token - JWT access token
170
+ */
171
+ setAuthToken(token) {
172
+ this.client.defaults.headers.common['Authorization'] = `Bearer ${token}`;
173
+ }
174
+ /**
175
+ * Register a new user account.
176
+ *
177
+ * Does NOT use retry logic — auth endpoints should fail fast
178
+ * rather than retrying on credential errors.
179
+ *
180
+ * @param request - Registration request with email and password
181
+ * @returns Access and refresh tokens
182
+ */
183
+ async register(request) {
184
+ try {
185
+ const response = await this.client.post('/auth/register', request);
186
+ return response.data;
187
+ }
188
+ catch (error) {
189
+ throw this.handleError(error);
190
+ }
191
+ }
192
+ /**
193
+ * Login with existing user credentials.
194
+ *
195
+ * Automatically calls setAuthToken with the returned accessToken
196
+ * so subsequent requests are authenticated without manual token setting.
197
+ *
198
+ * Does NOT use retry logic — auth endpoints should fail fast.
199
+ *
200
+ * @param request - Login request with email and password
201
+ * @returns Access and refresh tokens
202
+ */
203
+ async login(request) {
204
+ try {
205
+ const response = await this.client.post('/auth/login', request);
206
+ this.setAuthToken(response.data.accessToken);
207
+ return response.data;
208
+ }
209
+ catch (error) {
210
+ throw this.handleError(error);
211
+ }
212
+ }
213
+ /**
214
+ * Register a project with the Orchestrator API.
215
+ *
216
+ * Uses standard retry logic via the request wrapper.
217
+ *
218
+ * @param request - Project registration request with name and rootPath
219
+ * @returns Registered project details including assigned ID
220
+ */
221
+ async registerProject(request) {
222
+ return this.request(() => this.client.post('/projects', request));
223
+ }
224
+ /**
225
+ * Get a project by ID.
226
+ *
227
+ * Used by VerificationService to confirm a registered project exists.
228
+ *
229
+ * @param id - Project ID
230
+ * @returns Project details
231
+ */
232
+ async getProject(id) {
233
+ return this.request(() => this.client.get(`/projects/${id}`));
234
+ }
163
235
  /**
164
236
  * Generic request wrapper with retry logic
165
237
  *
@@ -188,7 +260,7 @@ export class OrchestratorAPIClient {
188
260
  if (axiosError.response) {
189
261
  // Server responded with error status
190
262
  const { status, data } = axiosError.response;
191
- const message = data?.message || axiosError.message;
263
+ const message = data?.detail || data?.message || axiosError.message;
192
264
  return new Error(`API Error (${status}): ${message}`);
193
265
  }
194
266
  if (axiosError.request) {
@@ -1 +1 @@
1
- {"version":3,"file":"OrchestratorAPIClient.js","sourceRoot":"","sources":["../../src/api-client/OrchestratorAPIClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrchestratorAPIClient.js","sourceRoot":"","sources":["../../src/api-client/OrchestratorAPIClient.ts"],"names":[],"mappings":"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"}
@@ -135,11 +135,12 @@ export interface AdvancePhaseResponse {
135
135
  message: string;
136
136
  }
137
137
  /**
138
- * Error response
138
+ * Error response (supports both legacy and RFC 7807 formats)
139
139
  */
140
140
  export interface ErrorResponse {
141
141
  error: string;
142
- message: string;
142
+ message?: string;
143
+ detail?: string;
143
144
  statusCode?: number;
144
145
  details?: unknown;
145
146
  }
@@ -215,4 +216,96 @@ export interface WorkflowConfigsResponse {
215
216
  workflows: WorkflowConfig[];
216
217
  count: number;
217
218
  }
219
+ /**
220
+ * User registration request
221
+ */
222
+ export interface RegisterRequest {
223
+ email: string;
224
+ password: string;
225
+ }
226
+ /**
227
+ * User registration response
228
+ */
229
+ export interface RegisterResponse {
230
+ accessToken: string;
231
+ refreshToken: string;
232
+ }
233
+ /**
234
+ * Login request
235
+ */
236
+ export interface LoginRequest {
237
+ email: string;
238
+ password: string;
239
+ }
240
+ /**
241
+ * Login response
242
+ */
243
+ export interface LoginResponse {
244
+ accessToken: string;
245
+ refreshToken: string;
246
+ }
247
+ /**
248
+ * Project registration request
249
+ */
250
+ export interface RegisterProjectRequest {
251
+ name: string;
252
+ rootPath: string;
253
+ type?: string;
254
+ gitUrl?: string;
255
+ }
256
+ /**
257
+ * Project registration response
258
+ */
259
+ export interface RegisterProjectResponse {
260
+ id: string;
261
+ name: string;
262
+ paths: {
263
+ host: string;
264
+ container: string;
265
+ relative: string;
266
+ };
267
+ registeredAt: string;
268
+ }
269
+ /**
270
+ * Generated credentials from CredentialGenerator
271
+ */
272
+ export interface GeneratedCredentials {
273
+ email: string;
274
+ password: string;
275
+ jwtSecret: string;
276
+ }
277
+ /**
278
+ * Bootstrap result after register + login + registerProject
279
+ */
280
+ export interface BootstrapResult {
281
+ projectId: string;
282
+ email: string;
283
+ password: string;
284
+ jwtSecret: string;
285
+ }
286
+ /**
287
+ * Bootstrap options
288
+ */
289
+ export interface BootstrapOptions {
290
+ projectName: string;
291
+ projectPath: string;
292
+ apiUrl?: string;
293
+ }
294
+ /**
295
+ * Individual verification check result (RFC-015 Phase 5)
296
+ */
297
+ export interface VerificationCheck {
298
+ name: string;
299
+ passed: boolean;
300
+ message: string;
301
+ details?: string;
302
+ }
303
+ /**
304
+ * Aggregated verification result from VerificationService.verify()
305
+ */
306
+ export interface VerificationResult {
307
+ allPassed: boolean;
308
+ checks: VerificationCheck[];
309
+ duration?: number;
310
+ }
218
311
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api-client/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAAG,aAAa,GAAG,iBAAiB,CAAC;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAAG,aAAa,GAAG,iBAAiB,CAAC;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api-client/types.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,20 @@
4
4
  * Initialize a new Orchestrator project using multi-step seed:
5
5
  * 1. OFFLINE: Create minimal structure (docker-compose.yml)
6
6
  * 2. AUTO: Start Docker containers
7
- * 3. ONLINE: Call API to seed full project files
8
- * 4. CLEANUP: Git init, npm install
7
+ * 3. ONLINE: Wait for API health
8
+ * 4. ONLINE: Bootstrap project (register + login + registerProject)
9
+ * 5. ONLINE: Call API to seed full project files
10
+ * 6. ONLINE: Inject credentials into seeded files
11
+ * 7. CLEANUP: Git init, npm install
9
12
  *
10
13
  * @module commands
11
14
  */
12
15
  import { OutputFormatter } from '../formatters/OutputFormatter.js';
13
16
  import { OrchestratorAPIClient } from '../api-client/OrchestratorAPIClient.js';
17
+ import { BootstrapService } from '../services/BootstrapService.js';
18
+ import { CleanupManager } from '../services/CleanupManager.js';
19
+ import { VerificationService } from '../services/VerificationService.js';
20
+ import type { BootstrapResult, VerificationResult } from '../api-client/types.js';
14
21
  /**
15
22
  * Init command options
16
23
  */
@@ -22,8 +29,12 @@ export interface InitOptions {
22
29
  outputPath?: string;
23
30
  jsonOutput?: boolean;
24
31
  skipDocker?: boolean;
32
+ skipBootstrap?: boolean;
25
33
  skipGit?: boolean;
26
34
  skipInstall?: boolean;
35
+ force?: boolean;
36
+ verify?: boolean;
37
+ skipVerify?: boolean;
27
38
  }
28
39
  /**
29
40
  * Init command result
@@ -35,6 +46,8 @@ export interface InitResult {
35
46
  filesCreated?: string[];
36
47
  error?: string;
37
48
  steps?: StepResult[];
49
+ credentials?: BootstrapResult;
50
+ verification?: VerificationResult;
38
51
  }
39
52
  /**
40
53
  * Step result for detailed progress tracking
@@ -53,14 +66,20 @@ export interface StepResult {
53
66
  export declare class InitCommand {
54
67
  private readonly formatter;
55
68
  private readonly apiClient;
69
+ private readonly bootstrapService;
70
+ private readonly cleanupManager;
71
+ private readonly verificationService;
56
72
  private readonly templatesPath;
57
73
  /**
58
74
  * Create init command
59
75
  *
60
76
  * @param formatter - Output formatter instance
61
77
  * @param apiClient - API client instance (optional, creates default)
78
+ * @param bootstrapService - Bootstrap service instance (optional, creates default)
79
+ * @param cleanupManager - Cleanup manager instance (optional, creates default)
80
+ * @param verificationService - Verification service instance (optional, creates default)
62
81
  */
63
- constructor(formatter: OutputFormatter, apiClient?: OrchestratorAPIClient);
82
+ constructor(formatter: OutputFormatter, apiClient?: OrchestratorAPIClient, bootstrapService?: BootstrapService, cleanupManager?: CleanupManager, verificationService?: VerificationService);
64
83
  /**
65
84
  * Execute init command
66
85
  *
@@ -1 +1 @@
1
- {"version":3,"file":"InitCommand.d.ts","sourceRoot":"","sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;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;IACf,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;;;OAKG;gBACS,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,qBAAqB;IASzE;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAuIxD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmC9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;OAIG;YACW,WAAW;IA4CzB;;OAEG;YACW,kBAAkB;IA6BhC;;;;;OAKG;YACW,WAAW;IAwCzB;;OAEG;IACH,OAAO,CAAC,OAAO;IAqBf;;OAEG;YACW,mBAAmB;IAkCjC;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM;CAiD/D"}
1
+ {"version":3,"file":"InitCommand.d.ts","sourceRoot":"","sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,23 @@
4
4
  * Initialize a new Orchestrator project using multi-step seed:
5
5
  * 1. OFFLINE: Create minimal structure (docker-compose.yml)
6
6
  * 2. AUTO: Start Docker containers
7
- * 3. ONLINE: Call API to seed full project files
8
- * 4. CLEANUP: Git init, npm install
7
+ * 3. ONLINE: Wait for API health
8
+ * 4. ONLINE: Bootstrap project (register + login + registerProject)
9
+ * 5. ONLINE: Call API to seed full project files
10
+ * 6. ONLINE: Inject credentials into seeded files
11
+ * 7. CLEANUP: Git init, npm install
9
12
  *
10
13
  * @module commands
11
14
  */
12
- import { writeFileSync, mkdirSync, existsSync, readFileSync } from 'fs';
15
+ import { writeFileSync, mkdirSync, existsSync, readFileSync, copyFileSync } from 'fs';
13
16
  import { join, resolve, dirname } from 'path';
14
17
  import { execSync, spawn } from 'child_process';
15
18
  import { fileURLToPath } from 'url';
16
19
  import { OrchestratorAPIClient } from '../api-client/OrchestratorAPIClient.js';
20
+ import { BootstrapService } from '../services/BootstrapService.js';
21
+ import { CredentialGenerator } from '../services/CredentialGenerator.js';
22
+ import { CleanupManager } from '../services/CleanupManager.js';
23
+ import { VerificationService } from '../services/VerificationService.js';
17
24
  /**
18
25
  * Init Command
19
26
  *
@@ -22,16 +29,25 @@ import { OrchestratorAPIClient } from '../api-client/OrchestratorAPIClient.js';
22
29
  export class InitCommand {
23
30
  formatter;
24
31
  apiClient;
32
+ bootstrapService;
33
+ cleanupManager;
34
+ verificationService;
25
35
  templatesPath;
26
36
  /**
27
37
  * Create init command
28
38
  *
29
39
  * @param formatter - Output formatter instance
30
40
  * @param apiClient - API client instance (optional, creates default)
41
+ * @param bootstrapService - Bootstrap service instance (optional, creates default)
42
+ * @param cleanupManager - Cleanup manager instance (optional, creates default)
43
+ * @param verificationService - Verification service instance (optional, creates default)
31
44
  */
32
- constructor(formatter, apiClient) {
45
+ constructor(formatter, apiClient, bootstrapService, cleanupManager, verificationService) {
33
46
  this.formatter = formatter;
34
47
  this.apiClient = apiClient ?? new OrchestratorAPIClient();
48
+ this.bootstrapService = bootstrapService ?? new BootstrapService(this.apiClient, new CredentialGenerator());
49
+ this.cleanupManager = cleanupManager ?? new CleanupManager();
50
+ this.verificationService = verificationService ?? new VerificationService(this.apiClient);
35
51
  // Resolve templates path relative to this file
36
52
  const __dirname = dirname(fileURLToPath(import.meta.url));
37
53
  this.templatesPath = resolve(__dirname, '../../templates/base');
@@ -45,6 +61,9 @@ export class InitCommand {
45
61
  async execute(options) {
46
62
  const steps = [];
47
63
  const startTime = Date.now();
64
+ let bootstrapResult;
65
+ // Register SIGINT handler early so Ctrl-C triggers cleanup
66
+ this.cleanupManager.registerSignalHandler();
48
67
  try {
49
68
  // Validate options
50
69
  const validation = this.validateOptions(options);
@@ -58,14 +77,48 @@ export class InitCommand {
58
77
  const projectName = options.projectName ?? 'my-orchestrator-project';
59
78
  const outputPath = options.outputPath ?? process.cwd();
60
79
  const projectPath = join(outputPath, projectName);
61
- // Check if project directory already exists
62
- if (existsSync(projectPath)) {
80
+ // --verify: early return run verification only, no re-init
81
+ if (options.verify) {
82
+ if (!existsSync(projectPath)) {
83
+ return {
84
+ success: false,
85
+ message: `Directory "${projectPath}" does not exist. Cannot verify.`,
86
+ error: 'Directory not found',
87
+ };
88
+ }
89
+ const verification = await this.verificationService.verify({
90
+ projectPath,
91
+ email: undefined,
92
+ password: undefined,
93
+ });
63
94
  return {
64
- success: false,
65
- message: `Project directory already exists: ${projectPath}`,
66
- error: `Directory "${projectPath}" already exists. Choose a different project name or remove the existing directory.`,
95
+ success: verification.allPassed,
96
+ message: verification.allPassed ? 'All checks passed' : 'Some checks failed',
97
+ projectPath,
98
+ verification,
67
99
  };
68
100
  }
101
+ // Check if project directory already exists
102
+ if (existsSync(projectPath)) {
103
+ if (options.force) {
104
+ // Backup existing files before overwriting
105
+ const envPath = join(projectPath, '.env');
106
+ if (existsSync(envPath)) {
107
+ copyFileSync(envPath, join(projectPath, '.env.backup'));
108
+ }
109
+ const mcpPath = join(projectPath, '.mcp.json');
110
+ if (existsSync(mcpPath)) {
111
+ copyFileSync(mcpPath, join(projectPath, '.mcp.json.backup'));
112
+ }
113
+ }
114
+ else {
115
+ return {
116
+ success: false,
117
+ message: `Project directory already exists: ${projectPath}`,
118
+ error: `Directory "${projectPath}" already exists. Use --force to overwrite or choose a different project name.`,
119
+ };
120
+ }
121
+ }
69
122
  // Step 1: Create minimal structure (OFFLINE)
70
123
  const step1Start = Date.now();
71
124
  const minimalResult = this.createMinimalStructure(projectPath, {
@@ -81,6 +134,8 @@ export class InitCommand {
81
134
  if (!minimalResult.success) {
82
135
  return { success: false, message: minimalResult.message, error: minimalResult.error, steps };
83
136
  }
137
+ // Mark directory as created so SIGINT cleanup can remove it
138
+ this.cleanupManager.mark('createdDirectory', { path: projectPath });
84
139
  // Step 2: Start Docker (AUTO) - skip if requested
85
140
  if (!options.skipDocker) {
86
141
  const step2Start = Date.now();
@@ -94,6 +149,8 @@ export class InitCommand {
94
149
  if (!dockerResult.success) {
95
150
  return { success: false, message: dockerResult.message, error: dockerResult.error, steps };
96
151
  }
152
+ // Mark Docker as started so SIGINT cleanup can stop containers
153
+ this.cleanupManager.mark('dockerStarted', { path: projectPath });
97
154
  // Step 3: Wait for health check
98
155
  const step3Start = Date.now();
99
156
  const healthResult = await this.waitForHealthcheck();
@@ -106,8 +163,34 @@ export class InitCommand {
106
163
  if (!healthResult.success) {
107
164
  return { success: false, message: healthResult.message, error: healthResult.error, steps };
108
165
  }
109
- // Step 4: Seed project via API (ONLINE)
110
- const step4Start = Date.now();
166
+ // Step 4: Bootstrap project (register + login + registerProject)
167
+ if (!options.skipBootstrap) {
168
+ const step4Start = Date.now();
169
+ try {
170
+ bootstrapResult = await this.bootstrapService.bootstrap({
171
+ projectName,
172
+ projectPath,
173
+ });
174
+ steps.push({
175
+ step: 'Bootstrap project',
176
+ success: true,
177
+ message: 'Credentials generated, user registered, project registered',
178
+ duration: Date.now() - step4Start,
179
+ });
180
+ }
181
+ catch (error) {
182
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
183
+ steps.push({
184
+ step: 'Bootstrap project',
185
+ success: false,
186
+ message: `Bootstrap failed: ${errorMessage}`,
187
+ duration: Date.now() - step4Start,
188
+ });
189
+ return { success: false, message: `Bootstrap failed: ${errorMessage}`, error: errorMessage, steps };
190
+ }
191
+ }
192
+ // Step 5: Seed project via API (ONLINE)
193
+ const step5Start = Date.now();
111
194
  const seedResult = await this.seedProject(projectPath, {
112
195
  template: options.template ?? 'minimal',
113
196
  preset: options.preset ?? 'moderate',
@@ -116,11 +199,37 @@ export class InitCommand {
116
199
  step: 'Seed project via API',
117
200
  success: seedResult.success,
118
201
  message: seedResult.message,
119
- duration: Date.now() - step4Start,
202
+ duration: Date.now() - step5Start,
120
203
  });
121
204
  if (!seedResult.success) {
122
205
  return { success: false, message: seedResult.message, error: seedResult.error, steps };
123
206
  }
207
+ // Step 6: Inject credentials (AFTER seed, because seed overwrites files)
208
+ if (bootstrapResult) {
209
+ const step6Start = Date.now();
210
+ try {
211
+ await this.bootstrapService.injectCredentials({
212
+ files: [join(projectPath, '.mcp.json'), join(projectPath, '.env')],
213
+ credentials: bootstrapResult,
214
+ });
215
+ steps.push({
216
+ step: 'Inject credentials',
217
+ success: true,
218
+ message: 'Credentials injected into .mcp.json and .env',
219
+ duration: Date.now() - step6Start,
220
+ });
221
+ }
222
+ catch (error) {
223
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
224
+ steps.push({
225
+ step: 'Inject credentials',
226
+ success: false,
227
+ message: `Failed to inject credentials: ${errorMessage}`,
228
+ duration: Date.now() - step6Start,
229
+ });
230
+ // Non-fatal: continue even if injection fails
231
+ }
232
+ }
124
233
  }
125
234
  // Step 5: Git init (CLEANUP)
126
235
  if (!options.skipGit) {
@@ -148,13 +257,30 @@ export class InitCommand {
148
257
  }
149
258
  // Collect all created files
150
259
  const filesCreated = minimalResult.filesCreated ?? [];
151
- return {
260
+ const result = {
152
261
  success: true,
153
262
  message: `Project "${projectName}" initialized successfully`,
154
263
  projectPath,
155
264
  filesCreated,
156
265
  steps,
266
+ credentials: bootstrapResult,
157
267
  };
268
+ // Auto-verify after successful init (non-fatal)
269
+ if (!options.skipVerify) {
270
+ try {
271
+ const verification = await this.verificationService.verify({
272
+ projectPath,
273
+ email: bootstrapResult?.email,
274
+ password: bootstrapResult?.password,
275
+ projectId: bootstrapResult?.projectId,
276
+ });
277
+ result.verification = verification;
278
+ }
279
+ catch {
280
+ // Non-fatal: verification failure never fails the overall init
281
+ }
282
+ }
283
+ return result;
158
284
  }
159
285
  catch (error) {
160
286
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
@@ -489,6 +615,14 @@ export class InitCommand {
489
615
  }
490
616
  lines.push('');
491
617
  }
618
+ if (result.credentials) {
619
+ lines.push('Credentials (saved in .env - shown only once):');
620
+ lines.push(` Admin email: ${result.credentials.email}`);
621
+ lines.push(` Admin password: ${result.credentials.password}`);
622
+ lines.push(` Project ID: ${result.credentials.projectId}`);
623
+ lines.push(` JWT Secret: <stored in .env, not shown>`);
624
+ lines.push('');
625
+ }
492
626
  lines.push('Next steps:');
493
627
  lines.push(` cd ${result.projectPath?.split('/').pop() ?? 'project'}`);
494
628
  lines.push(' orchestrator status');