Commit Graph

2 Commits

  • Python: [BREAKING] Simplify API: ChatAgent -> Agent, ChatMessage -> Message (#3747)
    * [BREAKING] Rename ChatAgent -> Agent, ChatMessage -> Message, ChatClientProtocol -> SupportsChatGetResponse
    
    Simplify the public API by removing redundant 'Chat' prefix from core types:
    - ChatAgent -> Agent
    - RawChatAgent -> RawAgent
    - ChatMessage -> Message
    - ChatClientProtocol -> SupportsChatGetResponse
    
    Also renamed internal WorkflowMessage (was Message in _runner_context) to avoid collision.
    
    No backward compatibility aliases - this is a clean breaking change.
    
    * [BREAKING] Rename Agent chat_client parameter to client
    
    * Fix rebase issues: WorkflowMessage references and broken markdown links
    
    * Fix formatting and lint issues from code quality checks
    
    * Fix import ordering in workflow sample files
    
    * fixed rebase
    
    * Fix test failures: use WorkflowMessage and A2AMessage after ChatMessage→Message rename
    
    - Replace Message(data=..., source_id=...) with WorkflowMessage(...) in workflow tests
    - Fix isinstance check in A2A agent to use A2AMessage instead of Message
    - Fix import in test_workflow_observability.py (Message→WorkflowMessage)
    
    * Fix lint, fmt, and sample errors after ChatMessage→Message rename
    
    - Auto-fix 70+ ruff lint issues across samples (ChatMessage→Message refs)
    - Fix HostedVectorStoreContent→Content.from_hosted_vector_store in file search sample
    - Fix _normalize_messages→normalize_messages in custom agent sample
    - Fix context.terminate→raise MiddlewareTermination in middleware samples
    - Fix with_update_hook→with_transform_hook in override middleware sample
    - Add TOptions_co import back to custom_chat_client sample
    - Add noqa for FastAPI File() default in chatkit sample
    - Fix B023 loop variable capture in weather agent sample
    
    * fix: update Agent constructor calls from chat_client to client in declaration-only tool tests
    
    * fix: add register_cleanup to devui lazy-loading proxy and type stub
    
    * fixed tests and updated new pieces
    
    * fix agui typevar
    
    * fix merge errors
    
    * fix merge conflicts
    
    * fiux merge
    
    * Remove unused links
    
    ---------
    
    Co-authored-by: Evan Mattson <evan.mattson@microsoft.com>
  • Python: Add long-running agents and background responses support (#3808)
    * Python: Add long-running agents and background responses support
    
    - Add ContinuationToken TypedDict to core types
    - Add continuation_token field to ChatResponse, ChatResponseUpdate,
      AgentResponse, and AgentResponseUpdate
    - Add background and continuation_token options to OpenAIResponsesOptions
    - Implement polling via responses.retrieve() and streaming resumption
      in RawOpenAIResponsesClient
    - Propagate continuation tokens through agent run() and
      map_chat_to_agent_update
    - Fix streaming telemetry 'Failed to detach context' error in both
      ChatTelemetryLayer and AgentTelemetryLayer by avoiding
      trace.use_span() context attachment for async-managed spans
    - Add 14 unit tests for continuation token types and background flows
    - Add background_responses sample showing polling and stream resumption
    
    Fixes #2478
    
    * Python: Add A2A long-running task support via ContinuationToken
    
    - Make ContinuationToken provider-agnostic (total=False, optional task_id/context_id fields)
    - Add background param to A2AAgent.run() controlling token emission
    - Add poll_task() for single-request task state retrieval
    - Add resubscribe support via continuation_token param on run()
    - Extract _updates_from_task() and _map_a2a_stream() for cleaner code
    - Streamline run()/streaming by removing intermediate _stream_updates wrapper
    - Update A2A sample to show background=False (default) with link to background_responses sample
    - Remove stale BareAgent from __all__
    - Add 12 new A2A continuation token tests
    
    * fix logic for overriding continuation token when done
    
    * refactored ContinuationToken setup