Commit Graph

45 Commits

  • .NET: Python: Add AGENTS.md files and update coding standards (#3644)
    * Add AGENTS.md files and update coding standards for Python
    
    - Add root python/AGENTS.md with project structure and package links
    - Add AGENTS.md for each package describing purpose and main classes
    - Update .github/copilot-instructions.md with improved structure
    - Update python/CODING_STANDARD.md with API review guidance:
      - Future annotations convention (#3578)
      - TypeVar naming convention (#3594)
      - Mapping vs MutableMapping (#3577)
      - Avoid shadowing built-ins (#3583)
      - Explicit exports (#3605)
      - Exception documentation guidelines (#3410)
    - Simplify python/.github/instructions/python.instructions.md to reference AGENTS.md
    - Remove AGENTS.md from .gitignore
    
    * Fix purview import path in AGENTS.md
    
    * Address PR review comments and restructure instructions
    
    - Slim down .github/copilot-instructions.md to reference language-specific docs
    - Add ADR section explaining templates and purpose
    - Create dotnet/AGENTS.md with .NET-specific build commands, conventions, and sample guidance
    - Update Python build/test instructions for core vs isolated changes
    - Fix Microsoft.Extensions.AI package references
    - Update kwargs guidance per issue #3642
    - Fix Python sample helper placement (top, not bottom)
    - Document new 'typing' poe task in DEV_SETUP.md
    
    * Add 'typing' poe task to run both pyright and mypy
    
    * Add kwargs guidelines from issue #3642 to CODING_STANDARD.md
    
    * Clarify that connector packages pull in core as dependency
  • Python: [BREAKING] Types API Review improvements (#3647)
    * Replace Role and FinishReason classes with NewType + Literal
    
    - Remove EnumLike metaclass from _types.py
    - Replace Role class with NewType('Role', str) + RoleLiteral
    - Replace FinishReason class with NewType('FinishReason', str) + FinishReasonLiteral
    - Update all usages across codebase to use string literals
    - Remove .value access patterns (direct string comparison now works)
    - Add backward compatibility for legacy dict serialization format
    - Update tests to reflect new string-based types
    
    Addresses #3591, #3615
    
    * Simplify ChatResponse and AgentResponse type hints (#3592)
    
    - Remove overloads from ChatResponse.__init__
    - Remove text parameter from ChatResponse.__init__
    - Remove | dict[str, Any] from finish_reason and usage_details params
    - Remove **kwargs from AgentResponse.__init__
    - Both now accept ChatMessage | Sequence[ChatMessage] | None for messages
    - Update docstrings and examples to reflect changes
    - Fix tests that were using removed kwargs
    - Fix Role type hint usage in ag-ui utils
    
    * Remove text parameter from ChatResponseUpdate and AgentResponseUpdate (#3597)
    
    - Remove text parameter from ChatResponseUpdate.__init__
    - Remove text parameter from AgentResponseUpdate.__init__
    - Remove **kwargs from both update classes
    - Simplify contents parameter type to Sequence[Content] | None
    - Update all usages to use contents=[Content.from_text(...)] pattern
    - Fix imports in test files
    - Update docstrings and examples
    
    * Rename from_chat_response_updates to from_updates (#3593)
    
    - ChatResponse.from_chat_response_updates → ChatResponse.from_updates
    - ChatResponse.from_chat_response_generator → ChatResponse.from_update_generator
    - AgentResponse.from_agent_run_response_updates → AgentResponse.from_updates
    
    * Remove try_parse_value method from ChatResponse and AgentResponse (#3595)
    
    - Remove try_parse_value method from ChatResponse
    - Remove try_parse_value method from AgentResponse
    - Remove try_parse_value calls from from_updates and from_update_generator methods
    - Update samples to use try/except with response.value instead
    - Update tests to use response.value pattern
    - Users should now use response.value with try/except for safe parsing
    
    * Add agent_id to AgentResponse and clarify author_name documentation (#3596)
    
    - Add agent_id parameter to AgentResponse class
    - Document that author_name is on ChatMessage objects, not responses
    - Update ChatResponse docstring with author_name note
    - Update AgentResponse docstring with author_name note
    
    * Simplify ChatMessage.__init__ signature (#3618)
    
    - Make contents a positional argument accepting Sequence[Content | str]
    - Auto-convert strings in contents to TextContent
    - Remove overloads, keep text kwarg for backward compatibility with serialization
    - Update _parse_content_list to handle string items
    - Update all usages across codebase to use new format: ChatMessage("role", ["text"])
    
    * Allow Content as input on run and get_response
    
    - Update prepare_messages and normalize_messages to accept Content
    - Update type signatures in _agents.py and _clients.py
    - Add tests for Content input handling
    
    * Fix ChatMessage usage across packages and samples
    
    Update all remaining ChatMessage(role=..., text=...) to use new
    ChatMessage('role', ['text']) signature.
    
    * Fix Role string usage and response format parsing
    
    - Fix redis provider: remove .value access on string literals
    - Fix durabletask ensure_response_format: set _response_format before accessing .value
    
    * Fix ollama .value and ai_model_id issues, handle None in content list
    
    - Fix ollama _chat_client: remove .value on string literals
    - Fix ollama _chat_client: rename ai_model_id to model_id
    - Fix _parse_content_list: skip None values gracefully
    
    * Fix A2AAgent type signature to include Content
    
    * Fix Role/FinishReason NewType dict annotations and improve test coverage to 95%
    
    * Fix mypy errors for Role/FinishReason NewType usage
    
    * Fix Role.TOOL and Role.ASSISTANT usage in _orchestrator_helpers.py
    
    * Fix Role NewType usage in durabletask _models.py
  • Python: Add BaseAgent implementation for Claude Agent SDK (#3509)
    * Added ClaudeAgent implementation
    
    * Updated streaming logic
    
    * Small updates
    
    * Small update
    
    * Fixes
    
    * Small fix
    
    * Naming improvements
    
    * Updated imports
    
    * Addressed comments
    
    * Updated package versions
  • .NET: Python: [BREAKING] Renamed Github to GitHub (#3486)
    * Renamed Github to GitHub
    
    * Small fix
    
    * Updated package versions
  • Python: [Breaking] Simplified Content types to a single class with classmethod constructors. (#3252)
    * ported Content to a new model
    
    * fixed linting
    
    * fixes
    
    * fixed data format handling
    
    * fix for 3.10 mypy
    
    * fix
    
    * fix int test
  • Python: Update package version (#3258)
    * package version 260116
    
    * removed name tags
  • Python: Bump python version to 1.0.0b260107 for a release (#3128)
    * Bump python version to 1.0.0b260107 for a release
    
    * Update changelog
  • Python: Updated package versions (#3024)
    * Updated package versions
    
    * Updated changelog
  • Python: Bump Py version to 1.0.0b251218 for a release. Update CHANGELOG (#2968)
    * Bump Py version to 1.0.0b251218 for a release. Update CHANGELOG
    
    * update lock
    
    * Fix formatting
    
    * Fix ChatKit typing
  • Python: Add Azure Managed Redis Support with Credential Provider (#2887)
    * azure redis support
    
    * small fixes
    
    * azure managed redis sample
    
    * fixes
  • Python: Updated package versions (#2784)
    * Updated package versions
    
    * Small fix
  • Python: Updated package versions (#2737)
    * Updated package versions
    
    * Updated changelog
  • Python: Updated package versions (#2238)
    * Updated package versions
    
    * Small fix
    
    * Small fix
  • Python: Updated package versions (#2165)
    * Updated package versions
    
    * Reverted package version update for ag-ui
    
    * Updated changelog file
  • .NET: Python: Updated package versions (#1944)
    * Updated .NET version
    
    * Updated Python package versions
    
    * Updated changelog
  • Python: add support for Python 3.14 (#1904)
    * add tests for py3.14 and add classifier
    
    * remove macos
    
    * allow openai v2
  • Python: .NET: Updated package version and small fix (#1911)
    * Removed public key
    
    * Updated package version
    
    * Updated Python package versions
  • Python: [BREAKING] Cleanup of dependencies (#1803)
    * removed extra and non-released deps
    
    * added comments
    
    * added space and lock
    
    * fix pyright config
  • Python: Updated package version (#1528)
    * Updated package version
    
    * Update python/CHANGELOG.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Updated metadata for Purview
    
    * Updated test
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • Python: improved thread serialization and deser with better tests (#1316)
    * improved thread serialization and deser with better tests
    
    * update redis with the same
  • Python: bump version and update changelog (#1277)
    * bump version and update changelog
    
    * undo lab package version bump
    
    * add changelog to exclude pattern for links
    
    * fix for ignore path
    
    * exclude file
  • Python: updated docstrings (#1225)
    * updated docstrings
    
    * fix tests and mypy
    
    * hosted file search docstring update
    
    * updated versions
  • Python: updated docstrings of all _files (#1107)
    * updated docstrings of all _files
    
    * fix mypy
    
    * fixed codeblocks in workflows and some other files
    
    ---------
    
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
  • Python: Packaging fixes (#1056)
    * small updates to setup
    
    * post1
    
    * reset version
    
    * updated package status
  • Python: [BREAKING] added SerializationMixin and applied to contents, agents, chat client… (#1012)
    * added SerializationMixin and applied to contents, agents, chat clients, removed AFBaseModel
    
    * fix annotations type
    
    * mypy fixes
    
    * fix tests
    
    * fix serializable subvalues and added large docstring
    
    * updated indents in code block
    
    * fixed exported urls
  • Python: Update installation instructions (#1026)
    * Update installation instructions
    
    * address comments
  • Python: [BREAKING] Main to core (#983)
    * removed pydantic from types
    
    * fix assistants client
    
    * Remove Pydantic usage from workflow code.
    
    * updated lock and test fixes
    
    * moved main to core, and setup meta package
    
    * updated versions
    
    * updated lock
    
    * fixed agents dependency
    
    * added retry to merge tests
    
    ---------
    
    Co-authored-by: Evan Mattson <evan.mattson@microsoft.com>
  • Python: [Breaking] removed pydantic from types and workflows (#917)
    * removed pydantic from types
    
    * fix test
    
    * fix test
    
    * fix tests
    
    * fix assistants client
    
    * Remove Pydantic usage from workflow code.
    
    * updated pydantic removal
    
    * updated lock and test fixes
    
    * fix mypy
    
    * updated build system
    
    * updated chat client parsing
    
    * fix broken test
    
    ---------
    
    Co-authored-by: Evan Mattson <evan.mattson@microsoft.com>
  • Python: [BREAKING] cleanup of thread API and serialization (#893)
    * cleanup of threads and serialization
    
    * fix for sliding window
    
    * fix redis test
    
    * updated from comments
    
    * updated context provider and threads
    
    * updated lock
    
    * add asyncio default
    
    * fix redis tests
    
    * fix tests
    
    * fix tests
    
    * renamed to invoking
    
    * fixed tests
    
    * fix for instructions
  • Python: [BREAKING] updated structure and samples (#875)
    * updated structure and samples
    
    * updated names and removed cross tests
    
    * updated projects etc
    
    * updated tests
    
    * updated test
    
    * test fixes
    
    * removed devui for now
    
    * updated all-tests task
    
    * removed old style configs
    
    * remove coverage from tests
    
    * updated to unit tests with all-tests
    
    * updated foundry everywhere
    
    * fix azure ai tests
    
    * fix merge tests
    
    * fix mypy
  • Python: add RedisContextProvider (#716)
    * Setting up
    
    * Readme
    
    * Add redis tests path to all-tests
    
    * First pass integration
    
    * Keep provider convention
    
    * First pass integration
    
    * add redis integration tests
    
    * update README.md
    
    * Add basic sample for redis integration
    
    * Add partitioning, add partition-aware tests, improve sample script
    
    * Fix code quality check
    
    * Try to resolve pytest check
    
    * Try to identify if pytest is the cause of failed checks
    
    * Re-enable tests
    
    * Rename redis test file
    
    * Removing some tests to narrow down issue
    
    * Revert, no difference
    
    * Delete temp files
    
    * Starting refactor of RedisProvider
    
    * Build dynamic schema builder, still need to do dynamic embedding model config
    
    * Add scope control
    
    * Complete first pass functionality with OpenAI + HF vectors -> Tests, Samples, Demo to follow
    
    * Fix code quality
    
    * attempt to identify rootcause of failed test
    
    * attempt to identify rootcause of failed test
    
    * Attempt to resolve code quality fail
    
    * Update pyproject.toml for foundry to pin     azure-ai-projects == 1.1.0b3,azure-ai-agents == 1.2.0b3
    
    * Add tests for redisprovider
    
    * Remove invalid tests
    
    * Add API key handling for openai vectorizer
    
    * Update uv.locl
    
    * Use master uv.lock
    
    * Begin sample file, add lazy index creation, fix faulty override
    
    * Index drop and reinit depends on drop_redis_index not overwrite
    
    * Add samples, threading included, escaped queries, verify threading works, sample README.md
    
    * Refactor filters
    
    * Opinionated vars
    
    * Allow filter expression combination
    
    * Try inline stubs for mypy
    
    * Address mypy errors
    
    * Better docstrings, tweaks for feedback
    
    * Tweak example 3 in redis_threads.py sample
    
    * adjust confusing name
    
    * Enrich docstrings
    
    * Add descriptions and comments to samples, externalize vectorizer choice, remove nltk and sentencetransformers dependnecy
    
    * Add descriptions and comments to samples, externalize vectorizer choice, remove nltk and sentencetransformers dependnecy
    
    * Incorporate initial feedback from dmytrostruk
    
    * Fix uv.lock
    
    * Attempt to resolve conflict
    
    * Use remote .tomls
    
    * Sanity check
    
    * fix tests
    
    * Remove hardcoded API key from samples
    
    * Fix incorrect env var
    
    * Make add and redis_search private
    
    * Fix tests relying on private funcs
    
    * Expand tests
    
    * Explainer comments to each test
    
    * Add a 'get_conversation_history' function to RedisProvider - This just returns messages in sequential order. Added 'created_at_*' timestamps to facilitate sequential recovery. function has to be manually invoked by user
    
    * Add agent-framework-redis to  python/pyproject.toml
    
    * Remove get_conversation_history
    
    * improve redis context provider with pydantic techniques and safe index handling patterns
    
    * add RedisChatMessageStore
    
    * remove integration test :(
    
    * fix mypy error
    
    * Remove unused params
    
    * Redo schema validation to be order-invariant, handle attrs (previously throwing errors due to strict ==)
    
    * Expand explanation
    
    * Add ChatMessageStore example
    
    * Fix comments in redis_conversation.py
    
    * Resolving uv.lock conflict, update to match main
    
    * Fix test in redis provider
    
    * Apply suggestion from @ekzhu
    
    * Update python/packages/main/pyproject.toml
    
    ---------
    
    Co-authored-by: Tyler Hutcherson <tyler.hutcherson@redis.com>
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>