Commit Graph

13 Commits

  • Python: Add Function Approval UI to DevUI (#1401)
    * ensure function aproval is parsed correctly
    
    * udpate ui, add deployment guide button, other debug panel fixes
    
    * feat(devui): Implement lazy loading architecture with enhanced security and state management
    
    Major architectural improvements to DevUI for better performance, security, and developer experience:
    
    Performance & Architecture:
    - Implement lazy loading for entity discovery - entities loaded on-demand instead of at startup
    - Add hot reload capability for development workflow via new reload endpoint
    - Reduce startup time and memory footprint by deferring module imports
    
    Security Enhancements:
    - Remove remote entity loading capabilities (POST /v1/entities/add, DELETE endpoints)
    - DevUI now strictly local development tool - no remote code execution
    - Add explicit security documentation and best practices in README
    
    Frontend Improvements:
    - Migrate to Zustand for centralized state management (replacing prop drilling)
    - Add lightweight zero-dependency markdown renderer with code block copy support
    - Improve gallery UX with setup instructions modal instead of direct URL loading
    - Enhanced message UI with copy functionality and better token usage display
    
    Testing & Quality:
    - Expand test coverage for lazy loading, type detection, and cache invalidation
    - Add comprehensive tests for new behaviors (+231 lines of test code)
    - Improve type safety and documentation throughout
    
    Breaking Changes:
    - Remote entity loading via URLs is no longer supported
    - Entities must be loaded from local filesystem only
    
    * update ui issues, uupdate test descripion
  • Python: DevUI - Internal Refactor, Conversations API support, and per… (#1235)
    * Python: DevUI - Internal Refactor, Conversations API support, and performance improvements
    
    Comprehensive refactor of DevUI package including samples relocation,
    frontend reorganization, OpenAI Conversations API support, and critical
    performance and code quality improvements.
    
    Key Changes:
    
    Architecture & Organization
    - Moved DevUI samples to python/samples/getting_started/devui/
    - Consolidated with other framework samples for better discoverability
    - Added .env.example files and comprehensive README
    - Restructured frontend components into feature-based folders (agent, workflow, gallery, layout)
    - Created new OpenAI-compliant message renderers (devui should render oai responses types primarily)
    
    New Features
    - Added _conversations.py (467 lines) - Full conversation storage abstraction, replaces the /threads endpoint to better match oai conversations api
    - Implements OpenAI Conversations API for thread management, Supports in-memory and extensible storage backends
    
    API Simplification
    - Use 'model' field as entity_id (agent/workflow name) instead of extra_body
    - Use standard OpenAI 'conversation' field for conversation context.
    
    Performance & Quality Improvements
    - Improved context management in MessageMapper with bounded memory (~500KB max)
    - Implemented hybrid LRU + cleanup approach to prevent unbounded memory growth
    - General QOL improvement - Eliminated ~150 lines of dead/duplicate code, Consolidated helper functions into _utils.py, Extracted magic numbers to module-level constants, Optimized conversation item lookups with index-based approach
    
    Testing
    - Added test_conversations.py (13 tests)
    - Added test_performance_fixes.py (9 tests)
    - Updated existing tests for code consolidation
    - 53 tests passing
    
    Impact: 76 files changed: +4,106 insertions, -2,373 deletions
    All linting and formatting checks passing. No breaking changes - backward compatible.
    
    Migration: Samples moved to python/samples/getting_started/devui/
    
    * readme lint fixes
    
    * initial support for function approval and minor ui fixes
  • Python: [BREAKING] parameter naming and other fixes (#1255)
    * parameter naming and other fixes
    
    * fix test
    
    * fix azure openai responses decorator ordering
    
    * fix test
    
    * fix mypy
    
    * fixes in options handling
    
    * fix tests
    
    * final fixes
    
    * exclude macos tests
    
    * fix model param
  • Python: DevUI improvements. (#1091)
    * enable deeplinking in ui, add agent details to entity info, add usage data, add middleware example in samples and foundry agent.
    
    * update ui build
    
    * Update python/packages/devui/frontend/src/components/workflow/workflow-input-form.tsx
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/devui/pyproject.toml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/devui/pyproject.toml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * imporove mapping for agent nodes and serialiation for agent run events
    
    * lint fixes
    
    * update pyproj toml and ui updates
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • Python: Default DevUI workflows to string input when start node is auto-wrapped agent (#1143)
    * DevUI workflows default to string input when start node is AgentExecutor
    
    * Remove unnecessary sample
    
    * Fix lint issue
  • Python: Bug fixes for devui serialization and agent structured outputs (#1055)
    * Bug fixes for devui serialization and agent structured outputs
    
    * Fix typing
    
    * Add mapper serialization unit tests
  • Python:DevUI Fixes (#1035)
    * fix event reset on thread change, enable multiline input, enable pasting of files and screenshots
    
    * UI updates and improved remove discovery
    
    * ui and other fixes
    
    ---------
    
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.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
  • [BREAKING] Python: Observability cleanup (#905)
    * Further observability cleanup and update telemetry samples
    
    * Add VS Code Extension config
    
    * Fix unit tests
    
    * Fix unit tests
    
    * Add more comments
    
    * Remove live metric
  • 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: Telemetry and observability follow-up (#833)
    * updated telemetry work
    
    * updated telemetry
    
    * slight improvement
    
    * updated tests
    
    * fixes for telemetry
    
    * fixes for mypy
    
    * added settings setup to runner to avoid error
    
    * streamline usage
    
    * updated tests
    
    * updated tests
    
    * further refinement
    
    * fix dumped item for otel
    
    * removed enable_workflow_otel
    
    * final fixes
    
    * final fixes
    
    * updated samples
    
    * removed exporters
    
    * fix tests
    
    * fixed last import'
    
    * fixed devui
  • Python: Add DevUI to AgentFramework (#781)
    * add initial backend service code for devui
    
    * add tests
    
    * add frontendcode
    
    * ui updates
    
    * update readme
    
    * ui updates and tweaks
    
    * update ui bundle
    
    * improve ui, add react flow base
    
    * add react flow ui, fix background
    
    * update ui, fix introspection bug
    
    * update readme
    
    * update ui build
    
    * add support for multimodal input - both backend and frontend
    
    * update ui build
    
    * refactor as main framework package
    
    * backend and tests refactor
    
    * ui build update
    
    * ui build update and refactor
    
    * update pyproject.toml, update uv.lock
    
    * update ui build
    
    * ui update to fit oai responses types
    
    * add backend updat and readme update
    
    * mypy and other fixes
    
    * add intial dev guide
    
    * update ui and fix workflow bug
    
    * update ui build, add thread support
    
    * type fixes
    
    * update workflow view
    
    * update uv.lock
    
    * fix workflow iport errors
    
    * lint and other fixes
    
    * mypy fixes
    
    * minor update
    
    * update ui build
    
    * refactor to use oai dependencies directly, update examples to samples, improve typing
    
    * readme update
    
    * update ui and ui build
    
    * fix workflow pyright error
    
    * update ui, fix issues with run workflow placement, miniamp menu, etc
    
    * make samples integrate serve
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>