mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 14:22:02 +00:00
- Introduced a dedicated 5-minute timeout for Codex models during feature generation to accommodate slower response times when generating 50+ features. - Updated the CodexProvider to utilize this extended timeout based on the reasoning effort level. - Enhanced the feature generation logic in generate-features-from-spec.ts to detect Codex models and apply the appropriate timeout. - Modified the model resolver to include reasoning effort in the resolved phase model structure. This change improves the reliability of feature generation for Codex models, ensuring they have sufficient time to process requests effectively.
@automaker/model-resolver
Claude model resolution and mapping utilities.
Overview
This package handles Claude model resolution, converting user-friendly aliases to actual Claude model identifiers and providing default model configurations.
Installation
npm install @automaker/model-resolver
Exports
Model Resolution
Convert model aliases to full model identifiers.
import { resolveModelString, DEFAULT_MODELS } from '@automaker/model-resolver';
import { CLAUDE_MODEL_MAP } from '@automaker/types';
// Resolve model string
const model = resolveModelString('sonnet');
// Returns: 'claude-sonnet-4-20250514'
const model2 = resolveModelString('haiku');
// Returns: 'claude-haiku-4-5'
const model3 = resolveModelString('opus');
// Returns: 'claude-opus-4-5-20251101'
// Use with custom default
const model4 = resolveModelString(undefined, 'claude-sonnet-4-20250514');
// Returns: 'claude-sonnet-4-20250514' (default)
// Direct model ID passthrough
const model5 = resolveModelString('claude-opus-4-5-20251101');
// Returns: 'claude-opus-4-5-20251101' (unchanged)
Get Effective Model
Get the actual model that will be used.
import { getEffectiveModel } from '@automaker/model-resolver';
// Get effective model with fallback chain
const model = getEffectiveModel({
requestedModel: 'sonnet',
featureModel: undefined,
defaultModel: 'claude-sonnet-4-20250514',
});
Model Constants
Access model mappings and defaults.
import { DEFAULT_MODELS } from '@automaker/model-resolver';
import { CLAUDE_MODEL_MAP } from '@automaker/types';
// Default models for different contexts
console.log(DEFAULT_MODELS.claude); // 'claude-sonnet-4-20250514'
console.log(DEFAULT_MODELS.autoMode); // 'claude-sonnet-4-20250514'
console.log(DEFAULT_MODELS.chat); // 'claude-sonnet-4-20250514'
// Model alias mappings
console.log(CLAUDE_MODEL_MAP.haiku); // 'claude-haiku-4-5'
console.log(CLAUDE_MODEL_MAP.sonnet); // 'claude-sonnet-4-20250514'
console.log(CLAUDE_MODEL_MAP.opus); // 'claude-opus-4-5-20251101'
Usage Example
import { resolveModelString, DEFAULT_MODELS } from '@automaker/model-resolver';
import type { Feature } from '@automaker/types';
function prepareFeatureExecution(feature: Feature) {
// Resolve model from feature or use default
const model = resolveModelString(feature.model, DEFAULT_MODELS.autoMode);
console.log(`Executing feature with model: ${model}`);
return {
featureId: feature.id,
model,
// ... other options
};
}
// Example usage
const feature: Feature = {
id: 'auth-feature',
category: 'backend',
description: 'Add authentication',
model: 'opus', // User-friendly alias
};
prepareFeatureExecution(feature);
// Output: Executing feature with model: claude-opus-4-5-20251101
Supported Models
Current Model Aliases
haiku→claude-haiku-4-5sonnet→claude-sonnet-4-20250514opus→claude-opus-4-5-20251101
Model Selection Guide
- Haiku: Fast responses, simple tasks, lower cost
- Sonnet: Balanced performance, most tasks (recommended default)
- Opus: Maximum capability, complex reasoning, highest cost
Dependencies
@automaker/types- Model type definitions and constants
Used By
@automaker/server- Feature execution, agent chat, enhancement
Notes
- Model strings that don't match aliases are passed through unchanged
- This allows direct use of specific model versions like
claude-sonnet-4-20250514 - Always falls back to a sensible default if no model is specified