Commit Graph

7 Commits

  • .NET: Update Workflow Input/Output Redesign (#881)
    * feat: Make Executor id field mandatory
    
    When checkpointing is involved, it is critical to keep executor ids consistent between runs, even when recreating a new object tree for the workflow.
    
    The default id-setting mechanism generated a guid for part of the id, making it not work when restoring from a checkpoint.
    
    This change prevents this situation from arising.
    
    * feat: Enable running untyped Workflows
    
    With the change to enable delay-instantiation of executors and support for async Executor factory methods, we must instantiate the starting executor to know what are the valid input types for the workflow.
    
    To avoid forcing instantiation every time, and to better support workflows with multiple input types, we enable support for build and interacting with the base Workflow type without type annotations, and remove the requirement to know a valid input type when initiating a run.
    
    * feat: Support Output from any executor and multiple outputs.
  • .NET Workflow - Declarative Workflow Event Fix (#765)
    * Checkpoint
    
    * Update workflows/DeepResearch.yaml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Comment
    
    * Fix comment
    
    * Update package version
    
    * Fix nuget haxx
    
    * Checkpoint
    
    * Code complete
    
    * Testing
    
    * Message content workaround
    
    * Add sequential flow
    
    * Checkpoint
    
    * Integration test project
    
    * Checkpoint
    
    * Checkpoint cleanup
    
    * Complete
    
    * Checkpoint
    
    * Fix tests
    
    * Comment cleanup
    
    * Namespace
    
    * Formatting
    
    * Analyzer updates
    
    * Workflow update
    
    * Fixed!
    
    * Update dotnet/tests/Microsoft.Agents.Workflows.Declarative.UnitTests/DeclarativeWorkflowTest.cs
    
    Co-authored-by: Tao Chen <taochen@microsoft.com>
    
    * Fix build error
    
    * Purge "immutable" set and dictionary
    
    * Fix as task
    
    * Collection expression
    
    * Another
    
    * Frozen => Readonly (perf)
    
    * Fix
    
    * Namespace
    
    * Checkpoint
    
    * Add test
    
    * Fix
    
    * Rollback workflow edit
    
    * nitty
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Tao Chen <taochen@microsoft.com>
  • .NET Workflow - Declarative State Consolidation (#759)
    * Checkpoint
    
    * Update workflows/DeepResearch.yaml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Comment
    
    * Fix comment
    
    * Update package version
    
    * Fix nuget haxx
    
    * Checkpoint
    
    * Code complete
    
    * Testing
    
    * Message content workaround
    
    * Add sequential flow
    
    * Checkpoint
    
    * Integration test project
    
    * Checkpoint
    
    * Checkpoint cleanup
    
    * Complete
    
    * Checkpoint
    
    * Fix tests
    
    * Comment cleanup
    
    * Namespace
    
    * Formatting
    
    * Analyzer updates
    
    * Workflow update
    
    * Fixed!
    
    * Update dotnet/tests/Microsoft.Agents.Workflows.Declarative.UnitTests/DeclarativeWorkflowTest.cs
    
    Co-authored-by: Tao Chen <taochen@microsoft.com>
    
    * Fix build error
    
    * Purge "immutable" set and dictionary
    
    * Fix as task
    
    * Collection expression
    
    * Another
    
    * Frozen => Readonly (perf)
    
    * Fix
    
    * Namespace
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Tao Chen <taochen@microsoft.com>
  • .NET Workflow - Integrated updated CPS Object Model (#681)
    * Checkpoint
    
    * Update workflows/DeepResearch.yaml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Comment
    
    * Fix comment
    
    * Update package version
    
    * Fix nuget haxx
    
    * Checkpoint
    
    * Code complete
    
    * Testing
    
    * Message content workaround
    
    * Add sequential flow
    
    * Checkpoint
    
    * Integration test project
    
    * Checkpoint
    
    * Checkpoint cleanup
    
    * Complete
    
    * Update package
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET Workflows - Add declarative action events (#679)
    * Updated
    
    * Typos
    
    * Update sample
    
    * Typo
    
    * Add parent and prior action ids to event
  • .NET: Add Declarative Workflow Interpreter (#401)
    * test: Add Reflection/Invocation tests
    
    * fix: Terminate on Completion event
    
    * refactor: Update public API surface
    
    * feat: Add support for external requests
    
    * feat: Support hosting AIAgent instances in Workflows
    
    * fix: Fix routing to go through Executor.ExecuteAsync
    
    * test: Update samples for "must SendMessage" semantics
    
    * Add invoking samples to unit tests to avoid future breaks
    
    * fix: ExternalRequest should block Workflow completion
    
    * feat: Normalize API surface against Python
    
    * Also adds xmldoc to all public APIs
    
    * refactor: Normalize UnitTest and Sample namespaces
    
    * fix: Formatting
    
    * refactor: Normalize project/folder names
    
    * feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
    
    * fix: Fix ILTrim warnings
    
    * docs: Add missing docs and fix typos
    
    * feat: Hosted Agents should report Run events
    
    * fix: Fix type propagation for ILTrim changes
    
    * refactor: Simplify DynamicallyAccessedMembers annotations
    
    * sample: Use static-Type construction of InputPort
    
    * feat: Support non-Streaming Run Mode
    
    * test: Add test for non-streaming execution
    
    * Conversion checkpoint
    
    * Fix namespace error
    
    * Restructure
    
    * Completion
    
    * Executor checkpoint
    
    * Conditional checkpoint
    
    * Cleanup
    
    * Exception cleanup
    
    * Sample cleanup
    
    * Updates
    
    * feat: Define Workflow and Executor APIs
    
    * feat: Define IExecutionContext and Events
    
    * feat: Simple Workflow Demos
    
    * refactor: Move Workflows classes to separate assembly
    
    * feat: Move FanOut/In to LowLevel API with new semantics
    
    * feat: Implement Local Execution
    
    * refactor: Assembly name .Workflow => .Workflows
    
    * feat: Enable Default Message Handling
    
    * also lifts Bind in MessageHandlerInfo to better be able to direclty invoke handlers (for AOT, later)
    
    * feat: Implement StreamingHandle APIs
    
    This allows the user to respond to WorkflowEvents with external messages, enabling HIL.
    
    * feat: Add checks for duplicate edges and chain cycles
    
    * feat: Add built-in WorkflowEvents
    
    * refactor: Pull classes into own files
    
    * refactor: Simplify Disposal pattern in Executor
    
    * refactor: Break EdgeRunner file into per-type files
    
    * refactor: Use Throw.IfNull()
    
    * refactor: Remove AddLoop()
    
    Per https://github.com/microsoft/agent-framework/pull/272#discussion_r2241739079 we decided this was not very useful.
    
    * refactor: Normalize use of ValueTask
    
    * fix: Build Break from removing .AddLoop
    
    * refactor: Explicit routing and RouteBuilder
    
    Split out reflection from MessageRouter implemention into build phase, enabling AOT compilation to drive RouteBuilding without reflection.
    
    * test: Add Reflection/Invocation tests
    
    * fix: Terminate on Completion event
    
    * refactor: Update public API surface
    
    * feat: Add support for external requests
    
    * feat: Support hosting AIAgent instances in Workflows
    
    * fix: Fix routing to go through Executor.ExecuteAsync
    
    * test: Update samples for "must SendMessage" semantics
    
    * Add invoking samples to unit tests to avoid future breaks
    
    * fix: ExternalRequest should block Workflow completion
    
    * feat: Normalize API surface against Python
    
    * Also adds xmldoc to all public APIs
    
    * refactor: Normalize UnitTest and Sample namespaces
    
    * fix: Formatting
    
    * refactor: Normalize project/folder names
    
    * feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
    
    * fix: Fix ILTrim warnings
    
    * docs: Add missing docs and fix typos
    
    * feat: Hosted Agents should report Run events
    
    * fix: Fix type propagation for ILTrim changes
    
    * refactor: Simplify DynamicallyAccessedMembers annotations
    
    * sample: Use static-Type construction of InputPort
    
    * feat: Support non-Streaming Run Mode
    
    * test: Add test for non-streaming execution
    
    * refactor: Remove unused types
    
    * refactor: Simplify Event and EdgeData type hierarchies
    
    * feat: Add Switch (=Conditional Edge Group) control flow
    
    * Fix unit-tests
    
    * Add sample
    
    * Comment cleanup
    
    * Fix debug output
    
    * Formating helpers
    
    * feat: Define Workflow and Executor APIs
    
    * feat: Define IExecutionContext and Events
    
    * feat: Simple Workflow Demos
    
    * refactor: Move Workflows classes to separate assembly
    
    * feat: Move FanOut/In to LowLevel API with new semantics
    
    * feat: Implement Local Execution
    
    * refactor: Assembly name .Workflow => .Workflows
    
    * feat: Enable Default Message Handling
    
    * also lifts Bind in MessageHandlerInfo to better be able to direclty invoke handlers (for AOT, later)
    
    * feat: Implement StreamingHandle APIs
    
    This allows the user to respond to WorkflowEvents with external messages, enabling HIL.
    
    * feat: Add checks for duplicate edges and chain cycles
    
    * feat: Add built-in WorkflowEvents
    
    * refactor: Pull classes into own files
    
    * refactor: Simplify Disposal pattern in Executor
    
    * refactor: Break EdgeRunner file into per-type files
    
    * refactor: Use Throw.IfNull()
    
    * refactor: Remove AddLoop()
    
    Per https://github.com/microsoft/agent-framework/pull/272#discussion_r2241739079 we decided this was not very useful.
    
    * refactor: Normalize use of ValueTask
    
    * fix: Build Break from removing .AddLoop
    
    * refactor: Explicit routing and RouteBuilder
    
    Split out reflection from MessageRouter implemention into build phase, enabling AOT compilation to drive RouteBuilding without reflection.
    
    * test: Add Reflection/Invocation tests
    
    * fix: Terminate on Completion event
    
    * refactor: Update public API surface
    
    * feat: Add support for external requests
    
    * feat: Support hosting AIAgent instances in Workflows
    
    * fix: Fix routing to go through Executor.ExecuteAsync
    
    * test: Update samples for "must SendMessage" semantics
    
    * Add invoking samples to unit tests to avoid future breaks
    
    * fix: ExternalRequest should block Workflow completion
    
    * feat: Normalize API surface against Python
    
    * Also adds xmldoc to all public APIs
    
    * refactor: Normalize UnitTest and Sample namespaces
    
    * fix: Formatting
    
    * refactor: Normalize project/folder names
    
    * feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
    
    * fix: Fix ILTrim warnings
    
    * docs: Add missing docs and fix typos
    
    * feat: Hosted Agents should report Run events
    
    * fix: Fix type propagation for ILTrim changes
    
    * refactor: Simplify DynamicallyAccessedMembers annotations
    
    * sample: Use static-Type construction of InputPort
    
    * feat: Support non-Streaming Run Mode
    
    * test: Add test for non-streaming execution
    
    * refactor: Remove unused types
    
    * refactor: Simplify Event and EdgeData type hierarchies
    
    * feat: Add Switch (=Conditional Edge Group) control flow
    
    * feat: Make .NET AutoSend the MessageHandler result
    
    * feat: Implement State APIs
    
    * Add tests
    
    * Fix merge from main
    
    * Test coverage
    
    * Message event
    
    * Comments and clean-up
    
    * Format
    
    * Cleanup
    
    * Test checkpoint
    
    * Clean-up - comments / test
    
    * Test baseline - 100%
    
    * More clean-up
    
    * Comments
    
    * Streaming...sort've...
    
    * Fix build / test
    
    * Stable
    
    * Checkpoint
    
    * Checkpoint
    
    * Stable
    
    * Update sample after merge
    
    * Add "Question" workflow
    
    * State clean-up checkpoint
    
    * State clean-up
    
    * Sample updated
    
    * Expression bug fix
    
    * Sample formatting
    
    * Add unit test
    
    * Comments
    
    * Scope cleanup
    
    * Refine cleanup
    
    * Fill gaps
    
    * fcs
    
    * Finalize data-types
    
    * Add unit-test
    
    * Debug cleanup
    
    * Bug fixes
    
    * Demo progress
    
    * Sample clean-up
    
    * Update samples
    
    * Sample updates
    
    * Sync demo workflows
    
    * Sample formatting
    
    * Sample formatting
    
    * Demo complete
    
    * Workflow formatting
    
    * Demo formatting #2
    
    * Readme + Sample clean-up
    
    * Scope update
    
    * Update diagnostics
    
    * Variable initiaization
    
    * Rollback
    
    * Tune research summary
    
    * State management
    
    * Fix merge
    
    * Fix merge - demo
    
    * Add readme
    
    * Overload for workflow builder
    
    * Fault tolerance - scope equivalency
    
    * Fix feed
    
    * Update sample
    
    * Add default for "Bot"
    
    * Nuget.config patchwork
    
    * Scope assignment check
    
    * Rollback nuget.config haxx
    
    * Sample format
    
    * Namespace
    
    * Namespace
    
    * Agent-Provider
    
    * Clean-up extra files
    
    * Renaming
    
    * Update sample
    
    * Prune junk files
    
    * Clean-up
    
    * Use transform
    
    * agent provider fix
    
    * Typo
    
    * Null check fix
    
    * Fix merge
    
    * Checkpoint
    
    * Cleanup
    
    * Exception cleanup
    
    * Exception message
    
    * Clean-up
    
    * Sample config update
    
    * Update handling of "Env" scope
    
    * Sample agent templates
    
    * Add readme
    
    * Event cleanup
    
    * Rename event
    
    * Update workflows/README.md
    
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Jacob Alber <jaalber@microsoft.com>
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>