Commit Graph

48 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: Disable mem0 telemetry by default (#3506)
    * disable mem0 telemetry by default
    
    * test fix
    
    * addressed comments
  • 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
  • Python: added generic types to ChatOptions and ChatResponse/AgentResponse for Response Format (#3305)
    * added generic types to ChatOptions and ChatResponse/AgentResponse for response format
    
    * fix typevar import
    
    * fix for older python versions
    
    * fix missing import
    
    * fixed imports
    
    * fixed mypy
    
    * mypy fix
  • .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: [BREAKING]: Introducing Options as TypedDict and Generic (#3140)
    * WIP typeddict for options
    
    * updated all clients and ChatAgents
    
    * updated everything
    
    * added ADR
    
    * fix mypy
    
    * proper typevar imports
    
    * fixed import
    
    * fixed other imports
    
    * slight update in the sample
    
    * updated from feedback
    
    * fixes
    
    * fixed missing covariants and test fixes
    
    * fixed typing
    
    * updated anthropic thinking config
    
    * ruff fixes
    
    * fixed int tests
    
    * fix tests and mypy
    
    * updated integration tests
    
    * updated docstring and test fix
    
    * improved options handling in obser
    
    * mypy fix
    
    * updated a host of integration tests
    
    * fix tests
    
    * bedrock fix
  • 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: Update Mem0Provider to use v2 search API filters parameter (#2766)
    * short fix to move id parameters to filters object
    
    * added tests
    
    * small fix
    
    * mem0 dependency update
  • Python: Updated package versions (#2784)
    * Updated package versions
    
    * Small fix
  • Python: Updated package versions (#2737)
    * Updated package versions
    
    * Updated changelog
  • Python: Update _provider.py (#2548)
    * Update _provider.py
    
    * Update test_mem0_context_provider.py
    
    * Update test_mem0_context_provider.py
    
    Ruff linting fixes
    
    * Update test_mem0_context_provider.py
    
    ---------
    
    Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
  • 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: 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: Packaging fixes (#1056)
    * small updates to setup
    
    * post1
    
    * reset version
    
    * updated package status
  • 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] 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: Add support for Mem0 Open Memory (#876)
    * Add support for Mem0 Open Memory
    
    * Linting fixes
    
    * Linting fixes
    
    * Add sample and documentation
    
    * Small fixes
    
    * Update sample code imports/class names for new package structure
    
    * Improved typing
    
    ---------
    
    Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
  • 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>
  • Python: api doc generation setup (#342)
    * api doc generation setup
    
    * remove old log file
    
    * improved check md function
    
    * update with sample code in docstring
    
    * updated script
    
    * docs update
    
    * docs update and action
    
    * removed all-extras
    
    * fixed sync command
    
    * moved install
    
    * moved action
    
    * renamed folder
    
    * fixed syntax
    
    * add python path
    
    * fix mypy and reused steps
    
    * updated merge test
    
    * undo change
    
    * slight update in poe commands
    
    * dev setup update
    
    * updated uvlock
  • Python: Added Copilot Studio Agent (#722)
    * Small fix in dotnet conformance tests
    
    * Added CopilotStudioAgent implementation
    
    * Added examples
    
    * Updated package README
    
    * Small fixes
    
    * Small improvements
    
    * Fixed dotnet tests
    
    * Add unit tests
    
    * Updated tests
    
    * Small updates
    
    * Small test fixes
    
    * Revert "Small test fixes"
    
    This reverts commit 983ac44a70.
    
    * Small fixes in documentation
    
    * Updated test configuration
    
    * Revert "Updated test configuration"
    
    This reverts commit 2a16fea815.
    
    * Small fix
    
    * Reverted TODO item
    
    * Small suppressions
    
    * More fixes
    
    * Small fixes
    
    * Fixed tests
    
    * Removed disallow_any_unimported rule in all packages
    
    * Fixes
  • Python: Context providers abstraction and Mem0 implementation (#631)
    * Added context provider abstractions
    
    * Added mem0 implementation
    
    * Example and small fixes
    
    * Added unit tests for agent
    
    * Added unit tests for mem0 provider
    
    * Updated README
    
    * Small doc updates
    
    * Update python/packages/mem0/agent_framework_mem0/_provider.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Small fixes in tests
    
    * Renaming based on PR feedback
    
    * Small fixes
    
    * Added tests for AggregateContextProvider
    
    * Small improvements
    
    * More improvements based on PR feedback
    
    * Small constant update
    
    * Added more examples
    
    * Added README for Mem0 examples
    
    * Small updates to API
    
    * Updated initialization logic
    
    * Updates for context manager
    
    * Updated Context class
    
    * Dependency update
    
    * Revert changes
    
    * Fixed tests
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>