Files
automaker/libs/types
DhanushSantosh 7583598a05 fix: differentiate Codex CLI models from Cursor CLI models
- Fix isCursorModel to exclude Codex-specific models (gpt-5.1-codex-*, gpt-5.2-codex-*)
- These models should route to Codex provider, not Cursor provider
- Add CODEX_YOLO_FLAG constant for --dangerously-bypass-approvals-and-sandbox
- Always use YOLO flag in codex-provider for full permissions
- Simplify codex CLI args to minimal set with YOLO flag
- Update tests to reflect new behavior with YOLO flag

This fixes the bug where selecting a Codex model (e.g., gpt-5.1-codex-max)
was incorrectly spawning cursor-agent instead of codex exec.

The root cause was:
1. Cursor provider had higher priority (10) than Codex (5)
2. isCursorModel() returned true for Codex models in CURSOR_MODEL_MAP
3. Models like gpt-5.1-codex-max routed to Cursor instead of Codex

The fix:
1. isCursorModel now excludes Codex-specific model IDs
2. Codex always uses --dangerously-bypass-approvals-and-sandbox flag
2026-01-08 23:03:03 +05:30
..

@automaker/types

Shared TypeScript type definitions for AutoMaker.

Overview

This package contains all core type definitions used across AutoMaker's server and UI components. It has no dependencies and serves as the foundation for other packages.

Installation

npm install @automaker/types

Exports

Provider Types

Types for AI provider integration and Claude SDK.

import type {
  ProviderConfig,
  ConversationMessage,
  ExecuteOptions,
  ContentBlock,
  ProviderMessage,
  InstallationStatus,
  ValidationResult,
  ModelDefinition,
} from '@automaker/types';

Feature Types

Feature management and workflow types.

import type { Feature, FeatureStatus, PlanningMode, PlanSpec } from '@automaker/types';

Feature Interface:

  • id - Unique feature identifier
  • category - Feature category/type
  • description - Feature description
  • dependencies - Array of feature IDs this depends on
  • status - Current status (pending/running/completed/failed/verified)
  • planningMode - Planning approach (skip/lite/spec/full)
  • planSpec - Plan specification and approval status

Session Types

Agent session management.

import type {
  AgentSession,
  SessionListItem,
  CreateSessionParams,
  UpdateSessionParams,
} from '@automaker/types';

Error Types

Error classification and handling.

import type { ErrorType, ErrorInfo } from '@automaker/types';

Image Types

Image handling for prompts.

import type { ImageData, ImageContentBlock } from '@automaker/types';

Model Types

Claude model definitions and mappings.

import { CLAUDE_MODEL_MAP, DEFAULT_MODELS, type ModelAlias } from '@automaker/types';

Usage Example

import type { Feature, ExecuteOptions } from '@automaker/types';

const feature: Feature = {
  id: 'auth-feature',
  category: 'backend',
  description: 'Implement user authentication',
  dependencies: ['database-setup'],
  status: 'pending',
  planningMode: 'spec',
};

const options: ExecuteOptions = {
  model: 'claude-sonnet-4-20250514',
  temperature: 0.7,
};

Dependencies

None - this is a pure types package.

IMPORTANT: This package must NEVER depend on other @automaker/* packages to prevent circular dependencies. All other packages depend on this one, making it the foundation of the dependency tree.

Used By

  • @automaker/utils
  • @automaker/platform
  • @automaker/model-resolver
  • @automaker/dependency-resolver
  • @automaker/git-utils
  • @automaker/server
  • @automaker/ui

Circular Dependency Prevention

To maintain the package dependency hierarchy and prevent circular dependencies:

  1. Never add dependencies to other @automaker/* packages in package.json
  2. Keep result types here - For example, DependencyResolutionResult should stay in @automaker/dependency-resolver, not be moved here
  3. Import only base types - Other packages can import from here, but this package cannot import from them
  4. Document the rule - When adding new functionality, ensure it follows this constraint

This constraint ensures a clean one-way dependency flow:

@automaker/types (foundation - no dependencies)
    ↓
@automaker/utils, @automaker/platform, etc.
    ↓
@automaker/server, @automaker/ui