Add multi-provider routing, streaming, and agentic workflows to
portfolio_manager, aligning APIs and manifests with portfolio_core/index 0.2.x.
Breaking changes
* Replace Agent.Session.new/0 with new/1 and normalize session message schema
* Replace Agent.run/2 with session-based process/3 and process_with_tools/4
* Replace Router.complete/2 with execute/2 and execute_with_retry/2
* Require Agent.Tool behaviour modules for tool definitions and validation
* Update Registry.get and Registry.register call shapes across modules and tests
Routing and streaming
* Introduce PortfolioManager.Router GenServer with configurable strategies:
fallback, round_robin, specialist, cost_optimized
* Add provider health checks, failure tracking, explicit fallback helpers, and
keyword-based task detection
* Add Router.stream/3 and RAG.stream_query/3 plus RAG.stream_search/3
* Extend mix portfolio.ask with --stream output mode
Agent framework
* Add PortfolioManager.Agent session-based API and tool loop execution
* Add Session fields for context, metadata, tool results, and updated_at
* Improve tool call parsing to support nested JSON and alternate key formats
* Add Tool helpers: to_spec, validate_args, format_for_llm, context builders
Pipeline orchestration and evaluation
* Add PortfolioManager.Pipeline DAG execution with caching, timeouts, telemetry,
parallel steps, and on_error policies (halt, continue, retry)
* Add PortfolioManager.Generation to track end-to-end RAG lifecycle state
* Add PortfolioManager.Evaluation with RAG triad scoring and hallucination
detection with evidence output and telemetry events
Docs, examples, and configuration
* Update manifests (dev/prod/test) with router and agent settings
* Start Router under the application supervisor (configurable via start_router)
* Add guides and examples for router, streaming, agent, and pipeline workflows
* Expand architecture and gap analysis documentation
and update CHANGELOG and README