conductor(plan): surface Task 1.7 scope gap (4 inline-loop vendors need per-vendor conversion)
Task 1.7 (apply run_with_tool_loop to anthropic + gemini + gemini_cli
+ deepseek) cannot proceed as a single task. The 4 vendors use their
own vendored call paths, not send_openai_compatible:
- _send_deepseek: requests.post with custom payload + custom streaming
parser + custom comms logging + budget enforcement
- _send_gemini: google-genai SDK streaming + custom types.Tool handling
- _send_gemini_cli: subprocess JSONL parsing via GeminiCliAdapter
- _send_anthropic: anthropic SDK + custom cache control + history
trimming
run_with_tool_loop is hard-coded to send_openai_compatible. Each
vendor needs to be refactored to produce OpenAICompatibleRequest
first (analogous to how parent Phase 3 converted Grok/Llama). That's
a multi-day refactor per vendor.
Per the per-task decision protocol in conductor/workflow.md
('plan approach doesn't fit'): STOP and report. Recommendation
in the deferred_work section: split Task 1.7 into 4 per-vendor
tasks under a new 'Phase 1.5 vendor-conversion-to-OpenAICompatibleRequest'
phase. The current Phase 1 milestone ('helper exists + 3 vendors
applied') is still meaningful and worth checkpointing as-is.
This commit is contained in:
@@ -27,7 +27,7 @@ t1_2 = { status = "completed", commit_sha = "1c836647", description = "Design ru
|
||||
t1_3 = { status = "completed", commit_sha = "1c836647", description = "Red: 5 tests for run_with_tool_loop in tests/test_tool_loop.py" }
|
||||
t1_4 = { status = "completed", commit_sha = "19a4d43e", description = "Green: implement run_with_tool_loop in src/ai_client.py" }
|
||||
t1_5 = { status = "completed", commit_sha = "19a4d43e", description = "Apply to _send_minimax (replace inline loop)" }
|
||||
t1_6 = { status = "in_progress", commit_sha = "", description = "Apply to _send_qwen + _send_grok + _send_llama (add missing loop)" }
|
||||
t1_6 = { status = "completed", commit_sha = "4069d677", description = "Apply to _send_grok + _send_llama (Qwen deferred: uses _dashscope_call, not send_openai_compatible)" }
|
||||
t1_7 = { status = "pending", commit_sha = "", description = "Apply to _send_anthropic + _send_gemini + _send_gemini_cli + _send_deepseek (consolidate inline)" }
|
||||
t1_8 = { status = "pending", commit_sha = "", description = "Add scripts/audit_no_inline_tool_loops.py" }
|
||||
t1_9 = { status = "pending", commit_sha = "", description = "Phase 1 checkpoint + git note" }
|
||||
@@ -77,6 +77,26 @@ no_providers_in_models_py = false
|
||||
# Phase 4
|
||||
where_should_providers_live = "src/ai_client.py (existing file) or new src/ai_client_providers.py (new file)?"
|
||||
|
||||
[deferred_work]
|
||||
# Task 1.7 surface: the 4 inline-loop vendors (anthropic, gemini, gemini_cli,
|
||||
# deepseek) cannot share run_with_tool_loop as-is. They use their own
|
||||
# vendored call paths (deepseek uses requests.post; gemini uses
|
||||
# google-genai streaming; gemini_cli uses subprocess JSONL; anthropic uses
|
||||
# the anthropic SDK). run_with_tool_loop is hard-coded to send_openai_compatible.
|
||||
#
|
||||
# To apply run_with_tool_loop to these 4 vendors, each must first be
|
||||
# refactored to produce OpenAICompatibleRequest + use send_openai_compatible
|
||||
# (analogous to the parent track's Grok+Llama+Qwen work). That conversion
|
||||
# is its own multi-day refactor; the plan treated it as a one-task line item
|
||||
# but the gap is significantly larger.
|
||||
#
|
||||
# Per the per-task decision protocol in conductor/workflow.md ("Plan
|
||||
# approach doesn't fit"), Task 1.7 needs a scope re-plan before continuing.
|
||||
# Recommendation: split into 4 separate tasks (one per vendor) under a new
|
||||
# Phase 1.5 'vendor-conversion-to-OpenAICompatibleRequest', each with its
|
||||
# own spike + test + commit. The Phase 1 checkpoint (t1.9) should not
|
||||
# include the 4 inline-loop vendors; the current state is 'helper exists
|
||||
# + 3 vendors applied' which is a meaningful milestone on its own.
|
||||
[local_first_priority]
|
||||
# Per user feedback 2026-06-11: emphasize local models as first-class
|
||||
# vs cloud/online vendors. Add UI badge, distinct cost state, native Ollama.
|
||||
|
||||
Reference in New Issue
Block a user