codeflash-internal/tiles/codeflash-internal-docs/docs/optimization-pipeline.md
Kevin Turcios dfc56f19a0 feat: add Tessl tiles for codeflash-internal (rules, docs, skills)
Three private tiles published to the codeflash workspace:
- codeflash-internal-rules: 6 eager rules (code-style, architecture,
  optimization-patterns, git-conventions, testing-rules, multi-language-handlers)
- codeflash-internal-docs: 8 lazy doc pages (domain-types, optimization-pipeline,
  test-generation-pipeline, context-extraction, aiservice/cf-api endpoints,
  configuration-thresholds, llm-provider-abstraction)
- codeflash-internal-skills: 4 on-demand skills (debug-optimization-failure,
  add-language-support, add-api-endpoint, debug-test-generation)
2026-02-14 22:16:33 -05:00

3.1 KiB

Optimization Pipeline

End-to-end flow from optimization request to response.

1. Request Entry (core/shared/optimizer_router.py)

The optimize_api NinjaAPI router receives a POST request with OptimizeSchema. It dispatches by data.language:

  • "javascript" / "typescript"core.languages.js_ts.optimizer.optimize_javascript
  • "java"core.languages.java.optimizer.optimize_java
  • Default → core.languages.python.optimizer.optimizer.optimize_python

All imports are lazy (inside the function body) to avoid circular dependencies.

2. Python Optimization (core/languages/python/optimizer/optimizer.py)

optimize_python(request, data) → (status, response)

Entry point for Python optimization. Extracts user ID from request, builds context, and calls optimize_python_code().

optimize_python_code_single()

Single LLM optimization call:

  1. Builds system + user prompts from BaseOptimizerContext
  2. Calls call_llm() with the optimize model
  3. Parses response via ctx.extract_code_and_explanation_from_llm_res()
  4. Validates via ctx.parse_and_generate_candidate_schema()
  5. Returns (OptimizeResponseItemSchema, llm_cost, model_name) or (None, cost, model)

optimize_python_code()

Parallel optimization with multiple models:

  1. Gets model distribution via get_model_distribution(n_candidates, MAX_OPTIMIZER_CALLS)
  2. Runs parallel calls using asyncio.TaskGroup
  3. Each call gets a call_sequence number for tracking
  4. Collects results, costs, and model info from all parallel calls

3. Context Extraction (optimizer_context.py)

  • BaseOptimizerContext.get_dynamic_context() — factory dispatching to SingleOptimizerContext or MultiOptimizerContext
  • Handles prompt construction with get_system_prompt() / get_user_prompt()
  • extract_code_and_explanation_from_llm_res() — parses markdown code blocks from LLM output
  • parse_and_generate_candidate_schema() — converts extracted code to response schema

4. Postprocessing (postprocess.py)

  • deduplicate_optimizations() — AST-based dedup using ast.parse() + ast.dump()
  • equality_check() — filters out candidates identical to original code
  • Uses libcst for all code transformations

5. Model Distribution (optimizer_config.py)

  • MAX_OPTIMIZER_CALLS = 6, MAX_OPTIMIZER_LP_CALLS = 7
  • get_model_distribution() splits between OpenAI and Anthropic
  • Formula: claude_calls = (total - 1) // 2, gpt_calls = total - claude_calls
  • Returns [(OPENAI_MODEL, gpt_calls), (ANTHROPIC_MODEL, claude_calls)]

6. Response

Returns (200, OptimizeResponseSchema) with list of OptimizeResponseItemSchema candidates, or (400/500, OptimizeErrorResponseSchema) on failure.

Key Files

File Role
core/shared/optimizer_router.py Language dispatch
core/languages/python/optimizer/optimizer.py Python optimization flow
core/languages/python/optimizer/context_utils/optimizer_context.py Context & prompt management
core/languages/python/optimizer/postprocess.py Dedup & validation
core/shared/optimizer_config.py Model distribution
core/shared/optimizer_models.py Request/response schemas