@hstm-labs/forge-cli 0.1.11

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 (74) hide show
  1. package/README.md +56 -0
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +14 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/deliver.d.ts +14 -0
  7. package/dist/commands/deliver.d.ts.map +1 -0
  8. package/dist/commands/deliver.js +92 -0
  9. package/dist/commands/deliver.js.map +1 -0
  10. package/dist/commands/generate.d.ts +14 -0
  11. package/dist/commands/generate.d.ts.map +1 -0
  12. package/dist/commands/generate.js +168 -0
  13. package/dist/commands/generate.js.map +1 -0
  14. package/dist/commands/init.d.ts +15 -0
  15. package/dist/commands/init.d.ts.map +1 -0
  16. package/dist/commands/init.js +83 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/commands/profile.d.ts +11 -0
  19. package/dist/commands/profile.d.ts.map +1 -0
  20. package/dist/commands/profile.js +35 -0
  21. package/dist/commands/profile.js.map +1 -0
  22. package/dist/commands/status.d.ts +14 -0
  23. package/dist/commands/status.d.ts.map +1 -0
  24. package/dist/commands/status.js +104 -0
  25. package/dist/commands/status.js.map +1 -0
  26. package/dist/commands/template.d.ts +11 -0
  27. package/dist/commands/template.d.ts.map +1 -0
  28. package/dist/commands/template.js +25 -0
  29. package/dist/commands/template.js.map +1 -0
  30. package/dist/commands/verify.d.ts +15 -0
  31. package/dist/commands/verify.d.ts.map +1 -0
  32. package/dist/commands/verify.js +167 -0
  33. package/dist/commands/verify.js.map +1 -0
  34. package/dist/error-handler.d.ts +16 -0
  35. package/dist/error-handler.d.ts.map +1 -0
  36. package/dist/error-handler.js +43 -0
  37. package/dist/error-handler.js.map +1 -0
  38. package/dist/formatters/agent-mode-formatter.d.ts +167 -0
  39. package/dist/formatters/agent-mode-formatter.d.ts.map +1 -0
  40. package/dist/formatters/agent-mode-formatter.js +271 -0
  41. package/dist/formatters/agent-mode-formatter.js.map +1 -0
  42. package/dist/formatters/run-status-formatter.d.ts +53 -0
  43. package/dist/formatters/run-status-formatter.d.ts.map +1 -0
  44. package/dist/formatters/run-status-formatter.js +267 -0
  45. package/dist/formatters/run-status-formatter.js.map +1 -0
  46. package/dist/index.d.ts +5 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +5 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/output.d.ts +60 -0
  51. package/dist/output.d.ts.map +1 -0
  52. package/dist/output.js +78 -0
  53. package/dist/output.js.map +1 -0
  54. package/dist/program.d.ts +14 -0
  55. package/dist/program.d.ts.map +1 -0
  56. package/dist/program.js +64 -0
  57. package/dist/program.js.map +1 -0
  58. package/dist/progress-bar.d.ts +18 -0
  59. package/dist/progress-bar.d.ts.map +1 -0
  60. package/dist/progress-bar.js +28 -0
  61. package/dist/progress-bar.js.map +1 -0
  62. package/dist/progress-reporter.d.ts +35 -0
  63. package/dist/progress-reporter.d.ts.map +1 -0
  64. package/dist/progress-reporter.js +236 -0
  65. package/dist/progress-reporter.js.map +1 -0
  66. package/dist/prompts/init-prompts.d.ts +22 -0
  67. package/dist/prompts/init-prompts.d.ts.map +1 -0
  68. package/dist/prompts/init-prompts.js +78 -0
  69. package/dist/prompts/init-prompts.js.map +1 -0
  70. package/dist/prompts/layout-prompts.d.ts +15 -0
  71. package/dist/prompts/layout-prompts.d.ts.map +1 -0
  72. package/dist/prompts/layout-prompts.js +26 -0
  73. package/dist/prompts/layout-prompts.js.map +1 -0
  74. package/package.json +46 -0
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Agent mode formatting helpers for the Forge CLI.
3
+ *
4
+ * Provides box-style and line-style formatters for agent mode workflow steps:
5
+ * prompt export, continue success, continue failure, and status detail.
6
+ * Each formatter has a human-readable and a JSON-serializable variant.
7
+ */
8
+ import chalk from 'chalk';
9
+ // ---------------------------------------------------------------------------
10
+ // Helpers
11
+ // ---------------------------------------------------------------------------
12
+ /**
13
+ * Format milliseconds to a human-readable duration string.
14
+ *
15
+ * @param ms - Duration in milliseconds
16
+ * @returns Formatted duration (e.g., "1.2s", "345ms")
17
+ */
18
+ function formatDuration(ms) {
19
+ if (ms === undefined)
20
+ return '-';
21
+ if (ms < 1000)
22
+ return `${String(ms)}ms`;
23
+ return `${(ms / 1000).toFixed(1)}s`;
24
+ }
25
+ /**
26
+ * Build a box with top/bottom borders and padded content lines.
27
+ *
28
+ * @param lines - Lines of content (no border characters)
29
+ * @param width - Inner width of the box
30
+ * @returns Array of bordered lines
31
+ */
32
+ function buildBox(lines, width) {
33
+ const top = `┌${'─'.repeat(width + 2)}┐`;
34
+ const bottom = `└${'─'.repeat(width + 2)}┘`;
35
+ const sep = `├${'─'.repeat(width + 2)}┤`;
36
+ const result = [top];
37
+ for (const line of lines) {
38
+ if (line === '---') {
39
+ result.push(sep);
40
+ }
41
+ else {
42
+ // Pad the line to the box width
43
+ const stripped = stripAnsi(line);
44
+ const pad = Math.max(0, width - stripped.length);
45
+ result.push(`│ ${line}${' '.repeat(pad)} │`);
46
+ }
47
+ }
48
+ result.push(bottom);
49
+ return result;
50
+ }
51
+ /**
52
+ * Strip ANSI escape codes from a string for length calculation.
53
+ *
54
+ * @param str - Input string possibly containing ANSI codes
55
+ * @returns String with ANSI codes removed
56
+ */
57
+ function stripAnsi(str) {
58
+ // eslint-disable-next-line no-control-regex
59
+ return str.replace(/\x1B\[[0-9;]*m/g, '');
60
+ }
61
+ // ---------------------------------------------------------------------------
62
+ // Formatters — Human-Readable
63
+ // ---------------------------------------------------------------------------
64
+ /**
65
+ * Format the agent prompt export box shown after initial prompt export.
66
+ *
67
+ * @param options - Export details
68
+ * @returns Formatted box string
69
+ */
70
+ export function formatAgentPromptExport(options) {
71
+ const width = 49;
72
+ const lines = [
73
+ chalk.bold('Forge Agent Mode — Prompt Exported'),
74
+ '---',
75
+ `Stage: ${options.stageName}`,
76
+ `Run: ${options.runId}`,
77
+ `Prompt: ${options.promptPath}`,
78
+ '',
79
+ chalk.bold('Next Steps:'),
80
+ '1. Open the prompt file above',
81
+ '2. Submit it to your IDE agent',
82
+ ' (Cursor, Claude Code, Windsurf, etc.)',
83
+ '3. Wait for the agent to complete',
84
+ `4. Run: ${chalk.bold('forge generate --continue')}`,
85
+ ];
86
+ return buildBox(lines, width).join('\n');
87
+ }
88
+ /**
89
+ * Format the successful continue validation message.
90
+ *
91
+ * @param options - Continue success details
92
+ * @returns Formatted string
93
+ */
94
+ export function formatAgentContinueSuccess(options) {
95
+ const lines = [];
96
+ const artifactLabel = options.artifactCount === 1 ? 'artifact' : 'artifacts';
97
+ lines.push(chalk.green(`✓ Agent output validated for stage '${options.stageName}'`));
98
+ lines.push(` Files: ${String(options.artifactCount)} ${artifactLabel} found`);
99
+ if (options.nextStageName !== undefined) {
100
+ lines.push(` Next: Proceeding to stage '${options.nextStageName}'...`);
101
+ }
102
+ else {
103
+ lines.push('');
104
+ lines.push(` Pipeline completed! Run: ${chalk.bold(`forge status ${options.runId}`)}`);
105
+ }
106
+ return lines.join('\n');
107
+ }
108
+ /**
109
+ * Format the failed continue validation message.
110
+ *
111
+ * @param options - Continue failure details
112
+ * @returns Formatted string
113
+ */
114
+ export function formatAgentContinueFailure(options) {
115
+ const lines = [];
116
+ lines.push(chalk.red(`✗ Agent output validation failed for stage '${options.stageName}'`));
117
+ if (options.errors.length > 0) {
118
+ lines.push('');
119
+ lines.push(' Errors:');
120
+ for (const error of options.errors) {
121
+ lines.push(` - ${error}`);
122
+ }
123
+ }
124
+ if (options.followUpPromptPath !== undefined) {
125
+ lines.push('');
126
+ lines.push(` Follow-up prompt: ${options.followUpPromptPath}`);
127
+ }
128
+ lines.push('');
129
+ lines.push(chalk.bold(' Next Steps:'));
130
+ lines.push(' 1. Review the validation errors above');
131
+ if (options.followUpPromptPath !== undefined) {
132
+ lines.push(' 2. Open the follow-up prompt file');
133
+ lines.push(' 3. Submit it to your IDE agent to fix the issues');
134
+ lines.push(` 4. Run: ${chalk.bold('forge generate --continue')}`);
135
+ }
136
+ else {
137
+ lines.push(' 2. Fix the issues in the output directory');
138
+ lines.push(` 3. Run: ${chalk.bold('forge generate --continue')}`);
139
+ }
140
+ return lines.join('\n');
141
+ }
142
+ /**
143
+ * Format the AWAITING_AGENT status detail for `forge status`.
144
+ *
145
+ * @param options - Status detail options
146
+ * @returns Formatted string
147
+ */
148
+ export function formatAgentStatusDetail(options) {
149
+ const lines = [];
150
+ lines.push(`Run ${options.runId} — ${chalk.cyan('AWAITING_AGENT')}`);
151
+ lines.push(` Awaiting: ${options.awaitingStageName} (stage ${String(options.stageIndex)}/${String(options.totalStages)})`);
152
+ lines.push(` Prompt: ${options.promptPath}`);
153
+ lines.push(` Started: ${options.startedAt}`);
154
+ if (options.completedStages.length > 0) {
155
+ lines.push('');
156
+ lines.push(' Completed stages:');
157
+ for (const stage of options.completedStages) {
158
+ const duration = stage.durationMs !== undefined
159
+ ? ` (${formatDuration(stage.durationMs)})`
160
+ : '';
161
+ lines.push(` ${chalk.green('✓')} ${stage.name}${duration}`);
162
+ }
163
+ }
164
+ lines.push('');
165
+ lines.push(` To continue: ${chalk.bold('forge generate --continue')}`);
166
+ return lines.join('\n');
167
+ }
168
+ /**
169
+ * Build a JSON-serializable object for the agent prompt export.
170
+ *
171
+ * @param options - Export details
172
+ * @returns JSON-serializable object
173
+ */
174
+ export function agentPromptExportToJson(options) {
175
+ return {
176
+ type: 'agent-prompt-export',
177
+ stageName: options.stageName,
178
+ runId: options.runId,
179
+ promptPath: options.promptPath,
180
+ };
181
+ }
182
+ /**
183
+ * Build a JSON-serializable object for agent continue success.
184
+ *
185
+ * @param options - Continue success details
186
+ * @returns JSON-serializable object
187
+ */
188
+ export function agentContinueSuccessToJson(options) {
189
+ return {
190
+ type: 'agent-continue-success',
191
+ stageName: options.stageName,
192
+ runId: options.runId,
193
+ artifactCount: options.artifactCount,
194
+ nextStageName: options.nextStageName,
195
+ pipelineComplete: options.nextStageName === undefined,
196
+ };
197
+ }
198
+ /**
199
+ * Build a JSON-serializable object for agent continue failure.
200
+ *
201
+ * @param options - Continue failure details
202
+ * @returns JSON-serializable object
203
+ */
204
+ export function agentContinueFailureToJson(options) {
205
+ return {
206
+ type: 'agent-continue-failure',
207
+ stageName: options.stageName,
208
+ runId: options.runId,
209
+ errors: options.errors,
210
+ followUpPromptPath: options.followUpPromptPath,
211
+ };
212
+ }
213
+ /**
214
+ * Build a JSON-serializable object for agent status detail.
215
+ *
216
+ * @param options - Status detail options
217
+ * @returns JSON-serializable object
218
+ */
219
+ export function agentStatusDetailToJson(options) {
220
+ return {
221
+ type: 'agent-status-detail',
222
+ runId: options.runId,
223
+ status: 'AWAITING_AGENT',
224
+ awaitingStageName: options.awaitingStageName,
225
+ stageIndex: options.stageIndex,
226
+ totalStages: options.totalStages,
227
+ promptPath: options.promptPath,
228
+ startedAt: options.startedAt,
229
+ completedStages: options.completedStages,
230
+ };
231
+ }
232
+ // ---------------------------------------------------------------------------
233
+ // Helpers for building options from store data
234
+ // ---------------------------------------------------------------------------
235
+ /**
236
+ * Build {@link AgentStatusDetailOptions} from run store data.
237
+ *
238
+ * @param runId - Run identifier
239
+ * @param awaitingStage - The stage record that is AWAITING_AGENT
240
+ * @param allStages - All stage records for the run
241
+ * @param totalPipelineStages - Total stages in the pipeline
242
+ * @param startedAt - Run start time
243
+ * @param forgeDir - Path to .forge directory (for prompt path construction)
244
+ * @returns Options for formatAgentStatusDetail
245
+ */
246
+ export function buildAgentStatusOptions(runId, awaitingStage, allStages, totalPipelineStages, startedAt, forgeDir) {
247
+ const completedStages = allStages
248
+ .filter((s) => s.status === 'COMPLETED')
249
+ .map((s) => ({
250
+ name: s.stageName,
251
+ durationMs: s.durationMs,
252
+ }));
253
+ // Determine 1-based stage index from default order
254
+ const stageOrder = [
255
+ 'validate', 'architect', 'services-generate', 'apps-generate',
256
+ 'infra-generate', 'security-generate', 'seed-data', 'review',
257
+ 'test-generate', 'verify', 'deliver', 'run-verify',
258
+ ];
259
+ const orderIndex = stageOrder.indexOf(awaitingStage.stageName);
260
+ const stageIndex = orderIndex >= 0 ? orderIndex + 1 : 1;
261
+ return {
262
+ runId,
263
+ awaitingStageName: awaitingStage.stageName,
264
+ stageIndex,
265
+ totalStages: totalPipelineStages,
266
+ promptPath: `${forgeDir}/prompts/${runId}/${awaitingStage.stageName}.md`,
267
+ startedAt,
268
+ completedStages,
269
+ };
270
+ }
271
+ //# sourceMappingURL=agent-mode-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-mode-formatter.js","sourceRoot":"","sources":["../../src/formatters/agent-mode-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Formatting helpers for run status display in the Forge CLI.
3
+ *
4
+ * Provides table and detail formatters for runs, stages, and benchmark data.
5
+ * Uses chalk for terminal styling with status-aware coloring.
6
+ */
7
+ import type { RunStatus, StageStatus, RunSummary, GenerationRun, PipelineStageRecord, Artifact } from '@hstm-labs/forge-common';
8
+ import type { BenchmarkReport, BenchmarkRunSummary } from '@hstm-labs/forge-common';
9
+ /**
10
+ * Apply color to a run status string based on its value.
11
+ *
12
+ * @param status - The run status to colorize
13
+ * @returns Chalk-styled status string
14
+ */
15
+ export declare function colorizeRunStatus(status: RunStatus): string;
16
+ /**
17
+ * Apply color to a stage status string based on its value.
18
+ *
19
+ * @param status - The stage status to colorize
20
+ * @returns Chalk-styled status string
21
+ */
22
+ export declare function colorizeStageStatus(status: StageStatus): string;
23
+ /**
24
+ * Format a list of run summaries as a table.
25
+ *
26
+ * @param runs - Array of run summaries to display
27
+ * @returns Formatted table string
28
+ */
29
+ export declare function formatRunSummaryTable(runs: RunSummary[]): string;
30
+ /**
31
+ * Format detailed run information including stages and artifacts.
32
+ *
33
+ * @param run - The generation run
34
+ * @param stages - Pipeline stage records for the run
35
+ * @param artifacts - Artifacts produced by the run
36
+ * @returns Formatted detail string
37
+ */
38
+ export declare function formatRunDetail(run: GenerationRun, stages: PipelineStageRecord[], artifacts: Artifact[]): string;
39
+ /**
40
+ * Format a list of benchmark run summaries.
41
+ *
42
+ * @param runs - Array of benchmark run summaries
43
+ * @returns Formatted benchmark summary string
44
+ */
45
+ export declare function formatBenchmarkSummary(runs: BenchmarkRunSummary[]): string;
46
+ /**
47
+ * Format a full benchmark report for a single run.
48
+ *
49
+ * @param report - The benchmark report
50
+ * @returns Formatted benchmark detail string
51
+ */
52
+ export declare function formatBenchmarkDetail(report: BenchmarkReport): string;
53
+ //# sourceMappingURL=run-status-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-status-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/run-status-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAMjC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAqB3D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAgB/D;AA6CD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAoBhE;AAMD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,mBAAmB,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,GACpB,MAAM,CAkFR;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,EAAE,GAC1B,MAAM,CAsBR;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAsDrE"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Formatting helpers for run status display in the Forge CLI.
3
+ *
4
+ * Provides table and detail formatters for runs, stages, and benchmark data.
5
+ * Uses chalk for terminal styling with status-aware coloring.
6
+ */
7
+ import chalk from 'chalk';
8
+ // ---------------------------------------------------------------------------
9
+ // Status Coloring
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Apply color to a run status string based on its value.
13
+ *
14
+ * @param status - The run status to colorize
15
+ * @returns Chalk-styled status string
16
+ */
17
+ export function colorizeRunStatus(status) {
18
+ switch (status) {
19
+ case 'DELIVERED':
20
+ case 'VERIFIED':
21
+ case 'GENERATED':
22
+ case 'VALIDATED':
23
+ return chalk.green(status);
24
+ case 'FAILED':
25
+ return chalk.red(status);
26
+ case 'VALIDATING':
27
+ case 'GENERATING':
28
+ case 'VERIFYING':
29
+ case 'DELIVERING':
30
+ return chalk.yellow(status);
31
+ case 'AWAITING_AGENT':
32
+ return chalk.cyan(status);
33
+ case 'INITIALIZED':
34
+ return chalk.dim(status);
35
+ default:
36
+ return status;
37
+ }
38
+ }
39
+ /**
40
+ * Apply color to a stage status string based on its value.
41
+ *
42
+ * @param status - The stage status to colorize
43
+ * @returns Chalk-styled status string
44
+ */
45
+ export function colorizeStageStatus(status) {
46
+ switch (status) {
47
+ case 'COMPLETED':
48
+ return chalk.green(status);
49
+ case 'FAILED':
50
+ return chalk.red(status);
51
+ case 'RUNNING':
52
+ return chalk.yellow(status);
53
+ case 'AWAITING_AGENT':
54
+ return chalk.cyan(status);
55
+ case 'PENDING':
56
+ case 'SKIPPED':
57
+ return chalk.dim(status);
58
+ default:
59
+ return status;
60
+ }
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // Helpers
64
+ // ---------------------------------------------------------------------------
65
+ /**
66
+ * Truncate a string to the specified length with ellipsis.
67
+ *
68
+ * @param str - String to truncate
69
+ * @param maxLen - Maximum length
70
+ * @returns Truncated string
71
+ */
72
+ function truncate(str, maxLen) {
73
+ if (str.length <= maxLen)
74
+ return str;
75
+ return str.slice(0, maxLen) + '…';
76
+ }
77
+ /**
78
+ * Format a duration in milliseconds to a human-readable string.
79
+ *
80
+ * @param ms - Duration in milliseconds
81
+ * @returns Formatted duration string (e.g., "1.2s", "345ms")
82
+ */
83
+ function formatDuration(ms) {
84
+ if (ms === undefined)
85
+ return '-';
86
+ if (ms < 1000)
87
+ return `${String(ms)}ms`;
88
+ return `${(ms / 1000).toFixed(1)}s`;
89
+ }
90
+ /**
91
+ * Pad a string to the right to the given width.
92
+ *
93
+ * @param str - String to pad
94
+ * @param width - Target width
95
+ * @returns Padded string
96
+ */
97
+ function padRight(str, width) {
98
+ return str + ' '.repeat(Math.max(0, width - str.length));
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // Run Summary Table
102
+ // ---------------------------------------------------------------------------
103
+ /**
104
+ * Format a list of run summaries as a table.
105
+ *
106
+ * @param runs - Array of run summaries to display
107
+ * @returns Formatted table string
108
+ */
109
+ export function formatRunSummaryTable(runs) {
110
+ if (runs.length === 0) {
111
+ return chalk.dim('No runs found.');
112
+ }
113
+ const header = `${padRight('RUN ID', 10)} ${padRight('STATUS', 16)} ${padRight('SPEC', 20)} ${padRight('PROFILE', 22)} ${padRight('STARTED', 20)} COMPLETED`;
114
+ const separator = chalk.dim('─'.repeat(header.length));
115
+ const rows = runs.map((run) => {
116
+ const id = truncate(run.id, 8);
117
+ const status = colorizeRunStatus(run.status);
118
+ const spec = truncate(run.specPath, 18);
119
+ const profile = truncate(run.profileName, 20);
120
+ const started = run.startedAt.slice(0, 19);
121
+ const completed = run.completedAt?.slice(0, 19) ?? '-';
122
+ return `${padRight(id, 10)} ${padRight(status, 27)} ${padRight(spec, 20)} ${padRight(profile, 22)} ${padRight(started, 20)} ${completed}`;
123
+ });
124
+ return [chalk.bold(header), separator, ...rows].join('\n');
125
+ }
126
+ // ---------------------------------------------------------------------------
127
+ // Run Detail
128
+ // ---------------------------------------------------------------------------
129
+ /**
130
+ * Format detailed run information including stages and artifacts.
131
+ *
132
+ * @param run - The generation run
133
+ * @param stages - Pipeline stage records for the run
134
+ * @param artifacts - Artifacts produced by the run
135
+ * @returns Formatted detail string
136
+ */
137
+ export function formatRunDetail(run, stages, artifacts) {
138
+ const lines = [];
139
+ // Run header
140
+ lines.push(chalk.bold('Run Details'));
141
+ lines.push(chalk.dim('─'.repeat(60)));
142
+ lines.push(` Run ID: ${run.id}`);
143
+ lines.push(` Status: ${colorizeRunStatus(run.status)}`);
144
+ lines.push(` Spec: ${run.specPath}`);
145
+ lines.push(` Profile: ${run.profileName}`);
146
+ lines.push(` Started: ${run.startedAt}`);
147
+ lines.push(` Completed: ${run.completedAt ?? chalk.dim('in progress')}`);
148
+ if (run.benchmark) {
149
+ lines.push(` Benchmark: ${chalk.cyan('enabled')}`);
150
+ }
151
+ // Failed run info
152
+ if (run.status === 'FAILED') {
153
+ lines.push('');
154
+ lines.push(chalk.red.bold(' Failure Information'));
155
+ lines.push(` Failed Stage: ${chalk.red(run.failedStage ?? 'unknown')}`);
156
+ lines.push(` Error: ${chalk.red(run.errorMessage ?? 'unknown')}`);
157
+ }
158
+ // AWAITING_AGENT info
159
+ if (run.status === 'AWAITING_AGENT') {
160
+ const awaitingStage = stages.find((s) => s.status === 'AWAITING_AGENT');
161
+ lines.push('');
162
+ lines.push(chalk.cyan.bold(' Awaiting Agent'));
163
+ lines.push(` Stage: ${chalk.cyan(awaitingStage?.stageName ?? 'unknown')}`);
164
+ lines.push(chalk.dim(' Run: forge generate --continue'));
165
+ }
166
+ // Stages
167
+ if (stages.length > 0) {
168
+ lines.push('');
169
+ lines.push(chalk.bold(' Stages'));
170
+ lines.push(chalk.dim(` ${padRight('NAME', 18)} ${padRight('STATUS', 16)} ${padRight('DURATION', 10)} ARTIFACTS`));
171
+ for (const stage of stages) {
172
+ const name = padRight(stage.stageName, 18);
173
+ const status = colorizeStageStatus(stage.status);
174
+ const duration = padRight(formatDuration(stage.durationMs), 10);
175
+ const artCount = String(stage.artifactCount);
176
+ lines.push(` ${name} ${padRight(status, 27)} ${duration} ${artCount}`);
177
+ }
178
+ }
179
+ // Artifacts summary
180
+ if (artifacts.length > 0) {
181
+ lines.push('');
182
+ lines.push(chalk.bold(` Artifacts (${String(artifacts.length)})`));
183
+ for (const artifact of artifacts) {
184
+ const size = artifact.sizeBytes < 1024
185
+ ? `${String(artifact.sizeBytes)}B`
186
+ : `${(artifact.sizeBytes / 1024).toFixed(1)}KB`;
187
+ lines.push(chalk.dim(` ${artifact.stageName}/`) + `${artifact.filePath} ${chalk.dim(`(${size})`)}`);
188
+ }
189
+ }
190
+ return lines.join('\n');
191
+ }
192
+ // ---------------------------------------------------------------------------
193
+ // Benchmark Summary
194
+ // ---------------------------------------------------------------------------
195
+ /**
196
+ * Format a list of benchmark run summaries.
197
+ *
198
+ * @param runs - Array of benchmark run summaries
199
+ * @returns Formatted benchmark summary string
200
+ */
201
+ export function formatBenchmarkSummary(runs) {
202
+ if (runs.length === 0) {
203
+ return chalk.dim('No benchmark runs found.');
204
+ }
205
+ const header = `${padRight('RUN ID', 10)} ${padRight('STARTED', 20)} ${padRight('DURATION', 10)} ${padRight('PROVIDER', 12)} ${padRight('MODEL', 18)} ${padRight('LLM CALLS', 10)} ${padRight('TOKENS', 10)} RETRIES`;
206
+ const separator = chalk.dim('─'.repeat(header.length));
207
+ const rows = runs.map((run) => {
208
+ const id = truncate(run.runId, 8);
209
+ const started = run.startedAt.slice(0, 19);
210
+ const duration = formatDuration(run.totalDurationMs);
211
+ const provider = truncate(run.provider || '-', 10);
212
+ const model = truncate(run.model || '-', 16);
213
+ const llmCalls = String(run.totalLlmCalls);
214
+ const tokens = String(run.totalTokens);
215
+ const retries = String(run.totalRetries);
216
+ return `${padRight(id, 10)} ${padRight(started, 20)} ${padRight(duration, 10)} ${padRight(provider, 12)} ${padRight(model, 18)} ${padRight(llmCalls, 10)} ${padRight(tokens, 10)} ${retries}`;
217
+ });
218
+ return [chalk.bold(header), separator, ...rows].join('\n');
219
+ }
220
+ // ---------------------------------------------------------------------------
221
+ // Benchmark Detail
222
+ // ---------------------------------------------------------------------------
223
+ /**
224
+ * Format a full benchmark report for a single run.
225
+ *
226
+ * @param report - The benchmark report
227
+ * @returns Formatted benchmark detail string
228
+ */
229
+ export function formatBenchmarkDetail(report) {
230
+ const lines = [];
231
+ lines.push(chalk.bold('Benchmark Report'));
232
+ lines.push(chalk.dim('─'.repeat(60)));
233
+ lines.push(` Run ID: ${report.runId}`);
234
+ lines.push(` Provider: ${report.provider || '-'}`);
235
+ lines.push(` Model: ${report.model || '-'}`);
236
+ lines.push(` Spec: ${report.specPath}`);
237
+ lines.push(` Profile: ${report.profileName}`);
238
+ lines.push(` Duration: ${formatDuration(report.totalDurationMs)}`);
239
+ lines.push(` Started: ${report.startedAt}`);
240
+ lines.push(` Completed: ${report.completedAt}`);
241
+ // Totals
242
+ lines.push('');
243
+ lines.push(chalk.bold(' Totals'));
244
+ lines.push(` LLM Calls: ${String(report.totals.llmCalls)}`);
245
+ lines.push(` LLM Latency: ${formatDuration(report.totals.llmLatencyMs)}`);
246
+ lines.push(` Prompt Tokens: ${String(report.totals.promptTokens)}`);
247
+ lines.push(` Completion Tokens: ${String(report.totals.completionTokens)}`);
248
+ lines.push(` Retries: ${String(report.totals.retries)}`);
249
+ lines.push(` Artifacts: ${String(report.totals.artifacts)}`);
250
+ // Stage breakdown
251
+ if (report.stages.length > 0) {
252
+ lines.push('');
253
+ lines.push(chalk.bold(' Stage Breakdown'));
254
+ lines.push(chalk.dim(` ${padRight('STAGE', 18)} ${padRight('DURATION', 10)} ${padRight('LLM CALLS', 10)} ${padRight('TOKENS', 10)} ${padRight('RETRIES', 8)} ARTIFACTS`));
255
+ for (const stage of report.stages) {
256
+ const name = padRight(stage.stageName, 18);
257
+ const duration = padRight(formatDuration(stage.durationMs), 10);
258
+ const llmCalls = padRight(String(stage.llmCalls), 10);
259
+ const tokens = padRight(String(stage.promptTokens + stage.completionTokens), 10);
260
+ const retries = padRight(String(stage.retryCount), 8);
261
+ const artifacts = String(stage.artifactCount);
262
+ lines.push(` ${name} ${duration} ${llmCalls} ${tokens} ${retries} ${artifacts}`);
263
+ }
264
+ }
265
+ return lines.join('\n');
266
+ }
267
+ //# sourceMappingURL=run-status-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-status-formatter.js","sourceRoot":"","sources":["../../src/formatters/run-status-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { createProgram } from './program.js';
2
+ export { formatSuccess, formatError, formatWarning, formatInfo, printJson, globalOptions, applyColorSettings, } from './output.js';
3
+ export type { GlobalOptions } from './output.js';
4
+ export { handleError } from './error-handler.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // @hstm-labs/forge-cli public API
2
+ export { createProgram } from './program.js';
3
+ export { formatSuccess, formatError, formatWarning, formatInfo, printJson, globalOptions, applyColorSettings, } from './output.js';
4
+ export { handleError } from './error-handler.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}