feat: replace Agent mode with independent Tools toggle

- Remove 'agent' from mode dropdown; Chat/Note/OTR remain
- Add  tools toggle button in input bar (persisted in localStorage)
  When on: routes to POST /orchestrate (Gemini tool loop); send btn → "Run"
  When off: routes to POST /chat (direct to active role); no change
- Role selector and tools toggle are now fully independent:
  active chat_role sent in orchestrate payload → used for final response
- orchestrator_engine.run() accepts response_role param; passes it to
  complete(role=...) instead of hardcoded model="claude"
- OrchestrateRequest gains chat_role field (default "chat")
- Migrate stored 'agent' mode/MRU entries to 'chat' on load

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-04-28 20:36:15 -04:00
parent 1cc7988953
commit 2b9dd53566
4 changed files with 55 additions and 23 deletions

View File

@@ -58,6 +58,7 @@ async def run(
respond_with_claude: bool = True,
gemini_api_key: str | None = None,
model_name: str | None = None,
response_role: str = "chat",
) -> OrchestratorResult:
"""
Run the full orchestration loop for a task.
@@ -176,7 +177,7 @@ async def run(
response_text, backend = await complete(
system_prompt=system_prompt,
messages=messages,
model="claude",
role=response_role,
)
else:
# Cron/background tasks: return Gemini's summary directly, no Claude call