The mini_notool variant (MiniAnalystAgent with allow_inspection=False: a no-tools, one-shot ablation used only in evaluation) is removed. MiniAnalystAgent now always offers the single optional inspection before committing its answer; the per-turn inspection-budget logic in _decide/_mini_tools is unchanged. Tests updated to drop the no-tool-variant cases.
Introduce MiniAnalystAgent, a single-decision, low-cost variant of the analyst
agent that emits the same frontend streaming event contract (visualize / explain)
as the standard agent, so it is a drop-in replacement selectable from the UI.
- analyst/mini_agent.py: MiniAnalystAgent (subclass of AnalystAgent). One turn:
decide -> either "visualize" (data-transform code + chart spec, committed via the
shared core-skill dispatch so action/result events are identical to the standard
agent) or "explain" (free-form text surfaced via the frontend Pure-Q&A path).
Optional one-shot data inspection; JSON action contract for small/local models.
- routes/agents.py: agent_mode switch to swap AnalystAgent <-> MiniAnalystAgent.
- src/app/App.tsx, dfSlice.tsx, SimpleChartRecBox.tsx: frontend mini-mode toggle,
miniMode redux state, and agent_mode in the analyst streaming request body.
- agents/client_utils.py: open-model (Ollama) enablement -- replay buffered
responses as streaming chunks, salvage JSON tool calls emitted as plain content,
and retry without reasoning_effort for models that lack "think" support.
- analyst/agent.py: tolerate non-string chart encodings from weak models
(repairable "field not found" instead of an unhashable-type crash).
- analyst/__init__.py: export MiniAnalystAgent.
- tests: test_mini_agent.py (23) and test_client_utils.py additions; all green.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Added handling for IdP errors in the OIDC callback, including logging and session management.
- Updated frontend to redirect users with error messages.
- Enhanced internationalization with new error messages for access denial.
- Added tests to verify behavior for access denied and other IdP errors, ensuring proper session state management.