Skip to content

Commit d117a75

Browse files
committed
feat(logging): enhance spinner display with model and reasoning info
- Add model and reasoning effort parameters to startSpinner function - Display model and reasoning information in spinner output - Update workflow execution to pass model/reasoning data to spinner - Change git-commit step to use cursor engine in workflow template
1 parent b021c11 commit d117a75

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

src/shared/logging/spinner-logger.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,13 @@ function formatElapsedTime(startTime: number): string {
5353
return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
5454
}
5555

56-
export function startSpinner(agentName: string, engine?: string, workflowStartTime?: number): SpinnerState {
56+
export function startSpinner(
57+
agentName: string,
58+
engine?: string,
59+
workflowStartTime?: number,
60+
model?: string,
61+
reasoningEffort?: 'low' | 'medium' | 'high' | string,
62+
): SpinnerState {
5763
const spinnerChars = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
5864
const now = Date.now();
5965
const spinnerState: SpinnerState = {
@@ -77,9 +83,11 @@ export function startSpinner(agentName: string, engine?: string, workflowStartTi
7783
const spinner = spinnerChars[spinnerState.index % spinnerChars.length];
7884
// Format engine name with proper capitalization
7985
const engineDisplay = engine ? ` - Engine: ${engine.charAt(0).toUpperCase() + engine.slice(1)}` : '';
86+
const modelDisplay = model ? ` | Model: ${model}` : '';
87+
const reasoningDisplay = reasoningEffort ? ` | Reasoning: ${reasoningEffort}` : '';
8088
const runtime = formatElapsedTime(spinnerState.workflowStartTime);
8189
// Special color for status indicator - dim yellow/orange
82-
const baseMessage = `${spinner} ${agentName} is running${engineDisplay}... | Workflow Runtime: ${runtime}`;
90+
const baseMessage = `${spinner} ${agentName} is running${engineDisplay}${modelDisplay}${reasoningDisplay}... | Workflow Runtime: ${runtime}`;
8391
const columns = typeof process.stdout.columns === 'number' && process.stdout.columns > 0 ? process.stdout.columns : 80;
8492
const ellipsis = '...';
8593
const needsTruncate = baseMessage.length > columns;

src/workflows/execution/workflow.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,12 @@ export async function runWorkflow(options: RunWorkflowOptions = {}): Promise<voi
157157
// Mutate current step to carry the chosen engine forward
158158
(step as any).engine = engineType;
159159

160-
const spinnerState = startSpinner(step.agentName, engineType, workflowStartTime);
160+
// Resolve model and reasoning effort for display
161+
const engineModule = registry.get(engineType);
162+
const model = step.model ?? engineModule?.metadata.defaultModel;
163+
const reasoning = step.modelReasoningEffort ?? engineModule?.metadata.defaultModelReasoningEffort;
164+
165+
const spinnerState = startSpinner(step.agentName, engineType, workflowStartTime, model, reasoning);
161166
const { stdoutLogger, stderrLogger } = createSpinnerLoggers(
162167
baseStdoutLogger,
163168
baseStderrLogger,

templates/workflows/codemachine.workflow.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
export default {
22
name: 'CodeMachine Workflow',
33
steps: [
4-
resolveStep('git-commit', { executeOnce: true, engine: 'claude' }), // Commit the initial project specification to git
5-
resolveStep('arch-agent', { executeOnce: true, engine: 'claude' }), // Define system architecture and technical design decisions
4+
resolveStep('git-commit', { executeOnce: true, engine: 'cursor' }), // Commit the initial project specification to git
5+
resolveStep('arch-agent', { executeOnce: true }), // Define system architecture and technical design decisions
66
resolveStep('plan-agent', { executeOnce: true }), // Generate comprehensive iterative development plan with architectural artifacts
77
resolveStep('task-breakdown', { executeOnce: true }), // Extract and structure tasks from project plan into JSON format
88
resolveStep('git-commit', { executeOnce: true }), // Commit the task breakdown to git

0 commit comments

Comments
 (0)