azure-functions-durable 1.4.0__tar.gz → 1.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/CHANGELOG.md +6 -0
  2. {azure-functions-durable-1.4.0/azure_functions_durable.egg-info → azure-functions-durable-1.5.0}/PKG-INFO +2 -2
  3. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/README.md +1 -1
  4. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/decorators/durable_app.py +8 -1
  5. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/DurableOrchestrationClient.py +49 -11
  6. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/DurableOrchestrationContext.py +17 -6
  7. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/TaskOrchestrationExecutor.py +1 -1
  8. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CallSubOrchestratorAction.py +3 -1
  9. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CallSubOrchestratorWithRetryAction.py +3 -1
  10. azure-functions-durable-1.5.0/azure/durable_functions/models/utils/http_utils.py +189 -0
  11. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0/azure_functions_durable.egg-info}/PKG-INFO +2 -2
  12. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure_functions_durable.egg-info/SOURCES.txt +5 -1
  13. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure_functions_durable.egg-info/requires.txt +1 -1
  14. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/docs/openai_agents/README.md +3 -3
  15. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/docs/openai_agents/getting-started.md +2 -2
  16. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/docs/openai_agents/reference.md +1 -1
  17. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/eng/ci/official-build.yml +4 -1
  18. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/requirements.txt +1 -1
  19. azure-functions-durable-1.5.0/samples-v2/openai_agents/customer_service/README.md +46 -0
  20. azure-functions-durable-1.5.0/samples-v2/openai_agents/customer_service/customer_service.py +176 -0
  21. azure-functions-durable-1.5.0/samples-v2/openai_agents/customer_service/customer_service_client.py +47 -0
  22. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/function_app.py +6 -0
  23. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/orchestration_versioning/README.md +31 -1
  24. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/orchestration_versioning/function_app.py +27 -10
  25. azure-functions-durable-1.5.0/samples-v2/orchestration_versioning/host.json +20 -0
  26. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/setup.py +1 -2
  27. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_DurableOrchestrationClient.py +83 -1
  28. azure-functions-durable-1.5.0/tests/utils/test_http_utils.py +287 -0
  29. azure-functions-durable-1.4.0/azure/durable_functions/models/utils/http_utils.py +0 -80
  30. azure-functions-durable-1.4.0/samples-v2/orchestration_versioning/host.json +0 -16
  31. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.devcontainer/devcontainer.json +0 -0
  32. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.devcontainer/setup.sh +0 -0
  33. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.flake8 +0 -0
  34. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/ISSUE_TEMPLATE/----feature-request.md +0 -0
  35. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/ISSUE_TEMPLATE/---bug-report.md +0 -0
  36. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/policies/resourceManagement.yml +0 -0
  37. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/workflows/codeQL.yml +0 -0
  38. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/workflows/durable_python_action.yml +0 -0
  39. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/workflows/submodule-sync.yml +0 -0
  40. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.github/workflows/validate.yml +0 -0
  41. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/.gitignore +0 -0
  42. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/CODEOWNERS +0 -0
  43. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/CONTRIBUTING.md +0 -0
  44. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/LICENSE +0 -0
  45. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/MANIFEST.in +0 -0
  46. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/SECURITY.md +0 -0
  47. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/__init__.py +0 -0
  48. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/__init__.py +0 -0
  49. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/constants.py +0 -0
  50. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/decorators/__init__.py +0 -0
  51. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/decorators/metadata.py +0 -0
  52. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/entity.py +0 -0
  53. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/DurableEntityContext.py +0 -0
  54. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/DurableHttpRequest.py +0 -0
  55. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/DurableOrchestrationBindings.py +0 -0
  56. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/DurableOrchestrationStatus.py +0 -0
  57. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/EntityStateResponse.py +0 -0
  58. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/FunctionContext.py +0 -0
  59. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/OrchestrationRuntimeStatus.py +0 -0
  60. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/OrchestratorState.py +0 -0
  61. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/PurgeHistoryResult.py +0 -0
  62. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/ReplaySchema.py +0 -0
  63. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/RetryOptions.py +0 -0
  64. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/RpcManagementOptions.py +0 -0
  65. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/Task.py +0 -0
  66. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/TokenSource.py +0 -0
  67. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/__init__.py +0 -0
  68. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/Action.py +0 -0
  69. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/ActionType.py +0 -0
  70. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CallActivityAction.py +0 -0
  71. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CallActivityWithRetryAction.py +0 -0
  72. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CallEntityAction.py +0 -0
  73. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CallHttpAction.py +0 -0
  74. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CompoundAction.py +0 -0
  75. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/ContinueAsNewAction.py +0 -0
  76. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/CreateTimerAction.py +0 -0
  77. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/NoOpAction.py +0 -0
  78. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/SignalEntityAction.py +0 -0
  79. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/WaitForExternalEventAction.py +0 -0
  80. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/WhenAllAction.py +0 -0
  81. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/WhenAnyAction.py +0 -0
  82. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/actions/__init__.py +0 -0
  83. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/entities/EntityState.py +0 -0
  84. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/entities/OperationResult.py +0 -0
  85. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/entities/RequestMessage.py +0 -0
  86. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/entities/ResponseMessage.py +0 -0
  87. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/entities/Signal.py +0 -0
  88. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/entities/__init__.py +0 -0
  89. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/history/HistoryEvent.py +0 -0
  90. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/history/HistoryEventType.py +0 -0
  91. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/history/__init__.py +0 -0
  92. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/utils/__init__.py +0 -0
  93. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/utils/entity_utils.py +0 -0
  94. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/models/utils/json_utils.py +0 -0
  95. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/__init__.py +0 -0
  96. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/context.py +0 -0
  97. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/event_loop.py +0 -0
  98. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/exceptions.py +0 -0
  99. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/handoffs.py +0 -0
  100. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/model_invocation_activity.py +0 -0
  101. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/orchestrator_generator.py +0 -0
  102. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/runner.py +0 -0
  103. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/task_tracker.py +0 -0
  104. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/tools.py +0 -0
  105. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/openai_agents/usage_telemetry.py +0 -0
  106. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/orchestrator.py +0 -0
  107. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/testing/OrchestratorGeneratorWrapper.py +0 -0
  108. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure/durable_functions/testing/__init__.py +0 -0
  109. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure-pipelines-release.yml +0 -0
  110. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure-pipelines.yml +0 -0
  111. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure_functions_durable.egg-info/dependency_links.txt +0 -0
  112. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/azure_functions_durable.egg-info/top_level.txt +0 -0
  113. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/eng/ci/code-mirror.yml +0 -0
  114. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/eng/templates/build.yml +0 -0
  115. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/host.json +0 -0
  116. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/noxfile.py +0 -0
  117. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/.funcignore +0 -0
  118. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/.gitignore +0 -0
  119. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/aml_durable_orchestrator/__init__.py +0 -0
  120. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/aml_durable_orchestrator/function.json +0 -0
  121. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/aml_pipeline/__init__.py +0 -0
  122. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/aml_pipeline/function.json +0 -0
  123. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/aml_poll_status/__init__.py +0 -0
  124. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/aml_poll_status/function.json +0 -0
  125. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/extensions.csproj +0 -0
  126. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/host.json +0 -0
  127. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/local.settings.json +0 -0
  128. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/proxies.json +0 -0
  129. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/requirements.txt +0 -0
  130. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/shared/__init__.py +0 -0
  131. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/shared/aml_helper.py +0 -0
  132. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/aml_monitoring/shared/auth_helper.py +0 -0
  133. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/.funcignore +0 -0
  134. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/.gitignore +0 -0
  135. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/Counter/__init__.py +0 -0
  136. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/Counter/function.json +0 -0
  137. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/DurableOrchestration/__init__.py +0 -0
  138. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/DurableOrchestration/function.json +0 -0
  139. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/DurableTrigger/__init__.py +0 -0
  140. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/DurableTrigger/function.json +0 -0
  141. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/README.md +0 -0
  142. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/RetrieveEntity/__init__.py +0 -0
  143. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/RetrieveEntity/function.json +0 -0
  144. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/host.json +0 -0
  145. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/local.settings.json +0 -0
  146. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/counter_entity/requirements.txt +0 -0
  147. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/.funcignore +0 -0
  148. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/.gitignore +0 -0
  149. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/E2_BackupSiteContent/__init__.py +0 -0
  150. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/E2_BackupSiteContent/function.json +0 -0
  151. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/E2_CopyFileToBlob/__init__.py +0 -0
  152. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/E2_CopyFileToBlob/function.json +0 -0
  153. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/E2_GetFileList/__init__.py +0 -0
  154. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/E2_GetFileList/function.json +0 -0
  155. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/HttpStart/__init__.py +0 -0
  156. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/HttpStart/function.json +0 -0
  157. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/README.md +0 -0
  158. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/host.json +0 -0
  159. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/local.settings.json +0 -0
  160. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/proxies.json +0 -0
  161. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/fan_in_fan_out/requirements.txt +0 -0
  162. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/.funcignore +0 -0
  163. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/.gitignore +0 -0
  164. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/E1_HelloSequence/__init__.py +0 -0
  165. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/E1_HelloSequence/function.json +0 -0
  166. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/E1_SayHello/__init__.py +0 -0
  167. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/E1_SayHello/function.json +0 -0
  168. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/HttpStart/__init__.py +0 -0
  169. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/HttpStart/function.json +0 -0
  170. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/README.md +0 -0
  171. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/host.json +0 -0
  172. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/local.settings.json +0 -0
  173. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/proxies.json +0 -0
  174. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining/requirements.txt +0 -0
  175. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/.funcignore +0 -0
  176. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/.gitignore +0 -0
  177. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/DurableActivity/__init__.py +0 -0
  178. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/DurableActivity/function.json +0 -0
  179. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/DurableOrchestration/__init__.py +0 -0
  180. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/DurableOrchestration/function.json +0 -0
  181. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/DurableTrigger/__init__.py +0 -0
  182. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/DurableTrigger/function.json +0 -0
  183. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/README.md +0 -0
  184. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/host.json +0 -0
  185. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/local.settings.json +0 -0
  186. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/proxies.json +0 -0
  187. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/function_chaining_custom_status/requirements.txt +0 -0
  188. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/.funcignore +0 -0
  189. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/.gitignore +0 -0
  190. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/E4_SMSPhoneVerification/__init__.py +0 -0
  191. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/E4_SMSPhoneVerification/function.json +0 -0
  192. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/HttpStart/__init__.py +0 -0
  193. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/HttpStart/function.json +0 -0
  194. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/README.md +0 -0
  195. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/SendSMSChallenge/__init__.py +0 -0
  196. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/SendSMSChallenge/function.json +0 -0
  197. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/host.json +0 -0
  198. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/local.settings.json +0 -0
  199. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/proxies.json +0 -0
  200. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/human_interaction/requirements.txt +0 -0
  201. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/.funcignore +0 -0
  202. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/.gitignore +0 -0
  203. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/E3_Monitor/__init__.py +0 -0
  204. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/E3_Monitor/function.json +0 -0
  205. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/E3_SendAlert/__init__.py +0 -0
  206. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/E3_SendAlert/function.json +0 -0
  207. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/E3_TooManyOpenIssues/__init__.py +0 -0
  208. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/E3_TooManyOpenIssues/function.json +0 -0
  209. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/HttpStart/__init__.py +0 -0
  210. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/HttpStart/function.json +0 -0
  211. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/README.md +0 -0
  212. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/host.json +0 -0
  213. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/local.settings.json +0 -0
  214. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/proxies.json +0 -0
  215. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/monitor/requirements.txt +0 -0
  216. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/.gitignore +0 -0
  217. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/DurableActivity/__init__.py +0 -0
  218. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/DurableActivity/function.json +0 -0
  219. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/DurableOrchestration/__init__.py +0 -0
  220. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/DurableOrchestration/function.json +0 -0
  221. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/DurableTrigger/__init__.py +0 -0
  222. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/DurableTrigger/function.json +0 -0
  223. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/README.md +0 -0
  224. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/host.json +0 -0
  225. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/local.settings.json +0 -0
  226. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/requirements.txt +0 -0
  227. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/serialize_arguments/shared_code/MyClasses.py +0 -0
  228. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/.funcignore +0 -0
  229. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/.gitignore +0 -0
  230. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/DurableFunctionsHttpStart/__init__.py +0 -0
  231. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/DurableFunctionsHttpStart/function.json +0 -0
  232. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/DurableOrchestrator/__init__.py +0 -0
  233. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/DurableOrchestrator/function.json +0 -0
  234. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/DurableSubOrchestrator/__init__.py +0 -0
  235. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/DurableSubOrchestrator/function.json +0 -0
  236. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/Hello/__init__.py +0 -0
  237. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/Hello/function.json +0 -0
  238. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/README.md +0 -0
  239. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/host.json +0 -0
  240. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/local.settings.json +0 -0
  241. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/proxies.json +0 -0
  242. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples/simple_sub_orchestration/requirements.txt +0 -0
  243. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/.funcignore +0 -0
  244. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/.gitignore +0 -0
  245. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/durable_blueprints.py +0 -0
  246. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/function_app.py +0 -0
  247. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/host.json +0 -0
  248. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/requirements.txt +0 -0
  249. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/tests/readme.md +0 -0
  250. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/tests/test_my_orchestrator.py +0 -0
  251. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/tests/test_say_hello.py +0 -0
  252. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/blueprint/tests/test_start_orchestrator.py +0 -0
  253. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/.funcignore +0 -0
  254. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/.gitignore +0 -0
  255. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/README.md +0 -0
  256. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/function_app.py +0 -0
  257. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/host.json +0 -0
  258. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/proxies.json +0 -0
  259. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/requirements.txt +0 -0
  260. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/tests/readme.md +0 -0
  261. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/tests/test_E2_BackupSiteContent.py +0 -0
  262. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/tests/test_E2_CopyFileToBlob.py +0 -0
  263. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/tests/test_E2_GetFileList.py +0 -0
  264. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/fan_in_fan_out/tests/test_HttpStart.py +0 -0
  265. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/.funcignore +0 -0
  266. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/.gitignore +0 -0
  267. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/README.md +0 -0
  268. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/function_app.py +0 -0
  269. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/host.json +0 -0
  270. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/proxies.json +0 -0
  271. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/requirements.txt +0 -0
  272. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/tests/readme.md +0 -0
  273. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/tests/test_http_start.py +0 -0
  274. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/tests/test_my_orchestrator.py +0 -0
  275. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/function_chaining/tests/test_say_hello.py +0 -0
  276. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/.funcignore +0 -0
  277. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/.gitignore +0 -0
  278. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/README.md +0 -0
  279. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/__init__.py +0 -0
  280. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/agent_lifecycle_example.py +0 -0
  281. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/dynamic_system_prompt.py +0 -0
  282. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/hello_world.py +0 -0
  283. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/lifecycle_example.py +0 -0
  284. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/local_image.py +0 -0
  285. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/non_strict_output_type.py +0 -0
  286. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/previous_response_id.py +0 -0
  287. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/remote_image.py +0 -0
  288. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/basic/tools.py +0 -0
  289. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/handoffs/message_filter.py +0 -0
  290. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/host.json +0 -0
  291. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/local.settings.json.template +0 -0
  292. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/requirements.txt +0 -0
  293. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/openai_agents/test_orchestrators.py +0 -0
  294. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/orchestration_versioning/.funcignore +0 -0
  295. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/orchestration_versioning/.gitignore +0 -0
  296. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/samples-v2/orchestration_versioning/requirements.txt +0 -0
  297. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/scripts/sample_deploy.sh +0 -0
  298. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/setup.cfg +0 -0
  299. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/__init__.py +0 -0
  300. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/conftest.py +0 -0
  301. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/__init__.py +0 -0
  302. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_DecoratorMetadata.py +0 -0
  303. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_Decorators.py +0 -0
  304. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_DurableOrchestrationBindings.py +0 -0
  305. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_DurableOrchestrationContext.py +0 -0
  306. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_DurableOrchestrationStatus.py +0 -0
  307. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_OrchestrationState.py +0 -0
  308. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_RpcManagementOptions.py +0 -0
  309. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/models/test_TokenSource.py +0 -0
  310. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/openai_agents/__init__.py +0 -0
  311. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/openai_agents/test_context.py +0 -0
  312. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/openai_agents/test_task_tracker.py +0 -0
  313. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/openai_agents/test_usage_telemetry.py +0 -0
  314. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/__init__.py +0 -0
  315. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/models/OrchestrationInstance.py +0 -0
  316. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/openai_agents/__init__.py +0 -0
  317. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/openai_agents/test_openai_agents.py +0 -0
  318. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/orchestrator_test_utils.py +0 -0
  319. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/schemas/OrchetrationStateSchema.py +0 -0
  320. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_call_http.py +0 -0
  321. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_continue_as_new.py +0 -0
  322. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_create_timer.py +0 -0
  323. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_entity.py +0 -0
  324. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_external_event.py +0 -0
  325. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_fan_out_fan_in.py +0 -0
  326. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_is_replaying_flag.py +0 -0
  327. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_retries.py +0 -0
  328. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_sequential_orchestrator.py +0 -0
  329. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_sequential_orchestrator_custom_status.py +0 -0
  330. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_sequential_orchestrator_with_retry.py +0 -0
  331. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_serialization.py +0 -0
  332. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_sub_orchestrator.py +0 -0
  333. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_sub_orchestrator_with_retry.py +0 -0
  334. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/orchestrator/test_task_any.py +0 -0
  335. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/tasks/__init__.py +0 -0
  336. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/tasks/tasks_test_utils.py +0 -0
  337. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/tasks/test_long_timers.py +0 -0
  338. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/tasks/test_new_uuid.py +0 -0
  339. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_constants.py +0 -0
  340. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_utils/ContextBuilder.py +0 -0
  341. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_utils/EntityContextBuilder.py +0 -0
  342. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_utils/__init__.py +0 -0
  343. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_utils/constants.py +0 -0
  344. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_utils/json_utils.py +0 -0
  345. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/test_utils/testClasses.py +0 -0
  346. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/utils/__init__.py +0 -0
  347. {azure-functions-durable-1.4.0 → azure-functions-durable-1.5.0}/tests/utils/test_entity_utils.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## Unreleased
6
+
7
+ ### Added
8
+
9
+ - Client operation correlation logging: `FunctionInvocationId` is now propagated via HTTP headers to the host for client operations, enabling correlation with host logs.
10
+
5
11
  ## 1.0.0b6
6
12
 
7
13
  - [Create timer](https://github.com/Azure/azure-functions-durable-python/issues/35) functionality available
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: azure-functions-durable
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: Durable Functions For Python
5
5
  Home-page: https://github.com/Azure/azure-functions-durable-python
6
6
  Author: Azure Functions team at Microsoft Corp.
@@ -51,7 +51,7 @@ Follow these instructions to get started with Durable Functions in Python:
51
51
 
52
52
  * Python Durable Functions requires [Azure Functions Core Tools](https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local) version 3.0.2630 or higher.
53
53
 
54
- ## OpenAI Agents Integration for Reliability on Azure Functions (Preview)
54
+ ## OpenAI Agent SDK Integration with Azure Durable Functions (Preview)
55
55
 
56
56
  Build resilient, stateful AI agents backed by Durable Functions orchestration—see the full documentation at [docs/openai_agents/README.md](docs/openai_agents/README.md).
57
57
 
@@ -29,7 +29,7 @@ Follow these instructions to get started with Durable Functions in Python:
29
29
 
30
30
  * Python Durable Functions requires [Azure Functions Core Tools](https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local) version 3.0.2630 or higher.
31
31
 
32
- ## OpenAI Agents Integration for Reliability on Azure Functions (Preview)
32
+ ## OpenAI Agent SDK Integration with Azure Durable Functions (Preview)
33
33
 
34
34
  Build resilient, stateful AI agents backed by Durable Functions orchestration—see the full documentation at [docs/openai_agents/README.md](docs/openai_agents/README.md).
35
35
 
@@ -195,7 +195,14 @@ class Blueprint(TriggerApi, BindingApi, SettingsApi):
195
195
  # construct rich object from it,
196
196
  # and assign parameter to that rich object
197
197
  starter = kwargs[parameter_name]
198
- client = client_constructor(starter)
198
+
199
+ # Try to extract the function invocation ID from the context for correlation
200
+ function_invocation_id = None
201
+ context = kwargs.get('context')
202
+ if context is not None and hasattr(context, 'invocation_id'):
203
+ function_invocation_id = context.invocation_id
204
+
205
+ client = client_constructor(starter, function_invocation_id)
199
206
  kwargs[parameter_name] = client
200
207
 
201
208
  # Invoke user code with rich DF Client binding
@@ -26,7 +26,16 @@ class DurableOrchestrationClient:
26
26
  orchestration instances.
27
27
  """
28
28
 
29
- def __init__(self, context: str):
29
+ def __init__(self, context: str, function_invocation_id: Optional[str] = None):
30
+ """Initialize a DurableOrchestrationClient.
31
+
32
+ Parameters
33
+ ----------
34
+ context : str
35
+ The JSON-encoded client binding context.
36
+ function_invocation_id : Optional[str]
37
+ The function invocation ID for correlation with host-side logs.
38
+ """
30
39
  self.task_hub_name: str
31
40
  self._uniqueWebHookOrigins: List[str]
32
41
  self._event_name_placeholder: str = "{eventName}"
@@ -39,6 +48,7 @@ class DurableOrchestrationClient:
39
48
  self._show_history_query_key: str = "showHistory"
40
49
  self._show_history_output_query_key: str = "showHistoryOutput"
41
50
  self._show_input_query_key: str = "showInput"
51
+ self._function_invocation_id: Optional[str] = function_invocation_id
42
52
  self._orchestration_bindings: DurableOrchestrationBindings = \
43
53
  DurableOrchestrationBindings.from_json(context)
44
54
  self._post_async_request = post_async_request
@@ -48,7 +58,8 @@ class DurableOrchestrationClient:
48
58
  async def start_new(self,
49
59
  orchestration_function_name: str,
50
60
  instance_id: Optional[str] = None,
51
- client_input: Optional[Any] = None) -> str:
61
+ client_input: Optional[Any] = None,
62
+ version: Optional[str] = None) -> str:
52
63
  """Start a new instance of the specified orchestrator function.
53
64
 
54
65
  If an orchestration instance with the specified ID already exists, the
@@ -63,6 +74,9 @@ class DurableOrchestrationClient:
63
74
  the Durable Functions extension will generate a random GUID (recommended).
64
75
  client_input : Optional[Any]
65
76
  JSON-serializable input value for the orchestrator function.
77
+ version : Optional[str]
78
+ The version to assign to the orchestration instance. If not specified,
79
+ the defaultVersion from host.json will be used.
66
80
 
67
81
  Returns
68
82
  -------
@@ -70,7 +84,9 @@ class DurableOrchestrationClient:
70
84
  The ID of the new orchestration instance if successful, None if not.
71
85
  """
72
86
  request_url = self._get_start_new_url(
73
- instance_id=instance_id, orchestration_function_name=orchestration_function_name)
87
+ instance_id=instance_id,
88
+ orchestration_function_name=orchestration_function_name,
89
+ version=version)
74
90
 
75
91
  trace_parent, trace_state = DurableOrchestrationClient._get_current_activity_context()
76
92
 
@@ -78,7 +94,8 @@ class DurableOrchestrationClient:
78
94
  request_url,
79
95
  self._get_json_input(client_input),
80
96
  trace_parent,
81
- trace_state)
97
+ trace_state,
98
+ self._function_invocation_id)
82
99
 
83
100
  status_code: int = response[0]
84
101
  if status_code <= 202 and response[1]:
@@ -250,7 +267,10 @@ class DurableOrchestrationClient:
250
267
  request_url = self._get_raise_event_url(
251
268
  instance_id, event_name, task_hub_name, connection_name)
252
269
 
253
- response = await self._post_async_request(request_url, json.dumps(event_data))
270
+ response = await self._post_async_request(
271
+ request_url,
272
+ json.dumps(event_data),
273
+ function_invocation_id=self._function_invocation_id)
254
274
 
255
275
  switch_statement = {
256
276
  202: lambda: None,
@@ -439,7 +459,10 @@ class DurableOrchestrationClient:
439
459
  """
440
460
  request_url = f"{self._orchestration_bindings.rpc_base_url}instances/{instance_id}/" \
441
461
  f"terminate?reason={quote(reason)}"
442
- response = await self._post_async_request(request_url, None)
462
+ response = await self._post_async_request(
463
+ request_url,
464
+ None,
465
+ function_invocation_id=self._function_invocation_id)
443
466
  switch_statement = {
444
467
  202: lambda: None, # instance in progress
445
468
  410: lambda: None, # instance failed or terminated
@@ -558,7 +581,8 @@ class DurableOrchestrationClient:
558
581
  request_url,
559
582
  json.dumps(operation_input) if operation_input else None,
560
583
  trace_parent,
561
- trace_state)
584
+ trace_state,
585
+ self._function_invocation_id)
562
586
 
563
587
  switch_statement = {
564
588
  202: lambda: None # signal accepted
@@ -639,10 +663,15 @@ class DurableOrchestrationClient:
639
663
  raise Exception(result)
640
664
 
641
665
  def _get_start_new_url(
642
- self, instance_id: Optional[str], orchestration_function_name: str) -> str:
666
+ self, instance_id: Optional[str], orchestration_function_name: str,
667
+ version: Optional[str] = None) -> str:
643
668
  instance_path = f'/{instance_id}' if instance_id is not None else ''
644
669
  request_url = f'{self._orchestration_bindings.rpc_base_url}orchestrators/' \
645
670
  f'{orchestration_function_name}{instance_path}'
671
+
672
+ if version is not None:
673
+ request_url += f'?version={quote(version)}'
674
+
646
675
  return request_url
647
676
 
648
677
  def _get_raise_event_url(
@@ -703,7 +732,10 @@ class DurableOrchestrationClient:
703
732
  raise Exception("The Python SDK only supports RPC endpoints."
704
733
  + "Please remove the `localRpcEnabled` setting from host.json")
705
734
 
706
- response = await self._post_async_request(request_url, None)
735
+ response = await self._post_async_request(
736
+ request_url,
737
+ None,
738
+ function_invocation_id=self._function_invocation_id)
707
739
  status: int = response[0]
708
740
  ex_msg: str = ""
709
741
  if status == 200 or status == 202:
@@ -742,7 +774,10 @@ class DurableOrchestrationClient:
742
774
  """
743
775
  request_url = f"{self._orchestration_bindings.rpc_base_url}instances/{instance_id}/" \
744
776
  f"suspend?reason={quote(reason)}"
745
- response = await self._post_async_request(request_url, None)
777
+ response = await self._post_async_request(
778
+ request_url,
779
+ None,
780
+ function_invocation_id=self._function_invocation_id)
746
781
  switch_statement = {
747
782
  202: lambda: None, # instance is suspended
748
783
  410: lambda: None, # instance completed
@@ -777,7 +812,10 @@ class DurableOrchestrationClient:
777
812
  """
778
813
  request_url = f"{self._orchestration_bindings.rpc_base_url}instances/{instance_id}/" \
779
814
  f"resume?reason={quote(reason)}"
780
- response = await self._post_async_request(request_url, None)
815
+ response = await self._post_async_request(
816
+ request_url,
817
+ None,
818
+ function_invocation_id=self._function_invocation_id)
781
819
  switch_statement = {
782
820
  202: lambda: None, # instance is resumed
783
821
  410: lambda: None, # instance completed
@@ -246,8 +246,10 @@ class DurableOrchestrationContext:
246
246
  The HTTP request method.
247
247
  uri: str
248
248
  The HTTP request uri.
249
- content: Optional[str]
250
- The HTTP request content.
249
+ content: str or dict, optional
250
+ The HTTP request content. Can be a string or a JSON-serializable dictionary.
251
+ Note: Although the type hint says 'str', a dictionary is accepted
252
+ and will be serialized to JSON.
251
253
  headers: Optional[Dict[str, str]]
252
254
  The HTTP request headers.
253
255
  token_source: TokenSource
@@ -285,7 +287,8 @@ class DurableOrchestrationContext:
285
287
 
286
288
  def call_sub_orchestrator(self,
287
289
  name: Union[str, Callable], input_: Optional[Any] = None,
288
- instance_id: Optional[str] = None) -> TaskBase:
290
+ instance_id: Optional[str] = None,
291
+ version: Optional[str] = None) -> TaskBase:
289
292
  """Schedule sub-orchestration function named `name` for execution.
290
293
 
291
294
  Parameters
@@ -296,6 +299,9 @@ class DurableOrchestrationContext:
296
299
  The JSON-serializable input to pass to the orchestrator function.
297
300
  instance_id: Optional[str]
298
301
  A unique ID to use for the sub-orchestration instance.
302
+ version: Optional[str]
303
+ The version to assign to the sub-orchestration instance. If not specified,
304
+ the defaultVersion from host.json will be used.
299
305
 
300
306
  Returns
301
307
  -------
@@ -313,14 +319,15 @@ class DurableOrchestrationContext:
313
319
  if isinstance(name, FunctionBuilder):
314
320
  name = self._get_function_name(name, OrchestrationTrigger)
315
321
 
316
- action = CallSubOrchestratorAction(name, input_, instance_id)
322
+ action = CallSubOrchestratorAction(name, input_, instance_id, version)
317
323
  task = self._generate_task(action)
318
324
  return task
319
325
 
320
326
  def call_sub_orchestrator_with_retry(self,
321
327
  name: Union[str, Callable], retry_options: RetryOptions,
322
328
  input_: Optional[Any] = None,
323
- instance_id: Optional[str] = None) -> TaskBase:
329
+ instance_id: Optional[str] = None,
330
+ version: Optional[str] = None) -> TaskBase:
324
331
  """Schedule sub-orchestration function named `name` for execution, with retry-options.
325
332
 
326
333
  Parameters
@@ -333,6 +340,9 @@ class DurableOrchestrationContext:
333
340
  The JSON-serializable input to pass to the activity function. Defaults to None.
334
341
  instance_id: str
335
342
  The instance ID of the sub-orchestrator to call.
343
+ version: Optional[str]
344
+ The version to assign to the sub-orchestration instance. If not specified,
345
+ the defaultVersion from host.json will be used.
336
346
 
337
347
  Returns
338
348
  -------
@@ -350,7 +360,8 @@ class DurableOrchestrationContext:
350
360
  if isinstance(name, FunctionBuilder):
351
361
  name = self._get_function_name(name, OrchestrationTrigger)
352
362
 
353
- action = CallSubOrchestratorWithRetryAction(name, retry_options, input_, instance_id)
363
+ action = CallSubOrchestratorWithRetryAction(
364
+ name, retry_options, input_, instance_id, version)
354
365
  task = self._generate_task(action, retry_options)
355
366
  return task
356
367
 
@@ -276,7 +276,7 @@ class TaskOrchestrationExecutor:
276
276
  message contains in it the string representation of the orchestration's
277
277
  state
278
278
  """
279
- if(self.output is not None):
279
+ if (self.output is not None):
280
280
  try:
281
281
  # Attempt to serialize the output. If serialization fails, raise an
282
282
  # error indicating that the orchestration output is not serializable,
@@ -11,10 +11,11 @@ class CallSubOrchestratorAction(Action):
11
11
  """Defines the structure of the Call SubOrchestrator object."""
12
12
 
13
13
  def __init__(self, function_name: str, _input: Optional[Any] = None,
14
- instance_id: Optional[str] = None):
14
+ instance_id: Optional[str] = None, version: Optional[str] = None):
15
15
  self.function_name: str = function_name
16
16
  self._input: str = dumps(_input, default=_serialize_custom_object)
17
17
  self.instance_id: Optional[str] = instance_id
18
+ self.version: Optional[str] = version
18
19
 
19
20
  if not self.function_name:
20
21
  raise ValueError("function_name cannot be empty")
@@ -37,4 +38,5 @@ class CallSubOrchestratorAction(Action):
37
38
  add_attrib(json_dict, self, 'function_name', 'functionName')
38
39
  add_attrib(json_dict, self, '_input', 'input')
39
40
  add_attrib(json_dict, self, 'instance_id', 'instanceId')
41
+ add_attrib(json_dict, self, 'version', 'version')
40
42
  return json_dict
@@ -13,11 +13,12 @@ class CallSubOrchestratorWithRetryAction(Action):
13
13
 
14
14
  def __init__(self, function_name: str, retry_options: RetryOptions,
15
15
  _input: Optional[Any] = None,
16
- instance_id: Optional[str] = None):
16
+ instance_id: Optional[str] = None, version: Optional[str] = None):
17
17
  self.function_name: str = function_name
18
18
  self._input: str = dumps(_input, default=_serialize_custom_object)
19
19
  self.retry_options: RetryOptions = retry_options
20
20
  self.instance_id: Optional[str] = instance_id
21
+ self.version: Optional[str] = version
21
22
 
22
23
  if not self.function_name:
23
24
  raise ValueError("function_name cannot be empty")
@@ -41,4 +42,5 @@ class CallSubOrchestratorWithRetryAction(Action):
41
42
  add_attrib(json_dict, self, '_input', 'input')
42
43
  add_json_attrib(json_dict, self, 'retry_options', 'retryOptions')
43
44
  add_attrib(json_dict, self, 'instance_id', 'instanceId')
45
+ add_attrib(json_dict, self, 'version', 'version')
44
46
  return json_dict
@@ -0,0 +1,189 @@
1
+ from typing import Any, List, Union, Optional
2
+ import asyncio
3
+
4
+ import aiohttp
5
+
6
+
7
+ # Global session and lock for thread-safe initialization
8
+ _client_session: Optional[aiohttp.ClientSession] = None
9
+ _session_lock: asyncio.Lock = asyncio.Lock()
10
+
11
+
12
+ async def _get_session() -> aiohttp.ClientSession:
13
+ """Get or create the shared ClientSession.
14
+
15
+ Returns
16
+ -------
17
+ aiohttp.ClientSession
18
+ The shared client session with configured timeout and connection pooling.
19
+ """
20
+ global _client_session
21
+
22
+ # Double-check locking pattern for async
23
+ if _client_session is None or _client_session.closed:
24
+ async with _session_lock:
25
+ # Check again after acquiring lock
26
+ if _client_session is None or _client_session.closed:
27
+ # Configure timeout optimized for localhost IPC
28
+ timeout = aiohttp.ClientTimeout(
29
+ total=240, # 4-minute total timeout for slow operations
30
+ sock_connect=10, # Fast connection over localhost
31
+ sock_read=None # Covered by total timeout
32
+ )
33
+
34
+ # Configure TCP connector optimized for localhost IPC
35
+ connector = aiohttp.TCPConnector(
36
+ limit=30, # Maximum connections for single host
37
+ limit_per_host=30, # Maximum connections per host
38
+ enable_cleanup_closed=True # Enable cleanup of closed connections
39
+ )
40
+
41
+ _client_session = aiohttp.ClientSession(
42
+ timeout=timeout,
43
+ connector=connector
44
+ )
45
+
46
+ return _client_session
47
+
48
+
49
+ async def _handle_request_error():
50
+ """Handle connection errors by closing and resetting the session.
51
+
52
+ This handles cases where the remote host process recycles.
53
+ """
54
+ global _client_session
55
+ async with _session_lock:
56
+ if _client_session is not None and not _client_session.closed:
57
+ try:
58
+ await _client_session.close()
59
+ finally:
60
+ _client_session = None
61
+
62
+
63
+ async def _close_session() -> None:
64
+ """Close the shared ClientSession if it exists.
65
+
66
+ Note: This function is currently only called by _handle_request_error().
67
+ There is no worker shutdown hook available, but process shutdown will
68
+ clean up all resources automatically.
69
+ """
70
+ global _client_session
71
+
72
+ async with _session_lock:
73
+ if _client_session is not None and not _client_session.closed:
74
+ try:
75
+ await _client_session.close()
76
+ finally:
77
+ _client_session = None
78
+
79
+
80
+ async def post_async_request(url: str,
81
+ data: Any = None,
82
+ trace_parent: str = None,
83
+ trace_state: str = None,
84
+ function_invocation_id: str = None) -> List[Union[int, Any]]:
85
+ """Post request with the data provided to the url provided.
86
+
87
+ Parameters
88
+ ----------
89
+ url: str
90
+ url to make the post to
91
+ data: Any
92
+ object to post
93
+ trace_parent: str
94
+ traceparent header to send with the request
95
+ trace_state: str
96
+ tracestate header to send with the request
97
+ function_invocation_id: str
98
+ function invocation ID header to send for correlation
99
+
100
+ Returns
101
+ -------
102
+ [int, Any]
103
+ Tuple with the Response status code and the data returned from the request
104
+ """
105
+ session = await _get_session()
106
+ headers = {}
107
+ if trace_parent:
108
+ headers["traceparent"] = trace_parent
109
+ if trace_state:
110
+ headers["tracestate"] = trace_state
111
+ if function_invocation_id:
112
+ headers["X-Azure-Functions-InvocationId"] = function_invocation_id
113
+
114
+ try:
115
+ async with session.post(url, json=data, headers=headers) as response:
116
+ # We disable aiohttp's input type validation
117
+ # as the server may respond with alternative
118
+ # data encodings. This is potentially unsafe.
119
+ # More here: https://docs.aiohttp.org/en/stable/client_advanced.html
120
+ data = await response.json(content_type=None)
121
+ return [response.status, data]
122
+ except (aiohttp.ClientError, asyncio.TimeoutError):
123
+ # On connection errors, close and recreate session for next request
124
+ await _handle_request_error()
125
+ raise
126
+
127
+
128
+ async def get_async_request(url: str,
129
+ function_invocation_id: str = None) -> List[Any]:
130
+ """Get the data from the url provided.
131
+
132
+ Parameters
133
+ ----------
134
+ url: str
135
+ url to get the data from
136
+ function_invocation_id: str
137
+ function invocation ID header to send for correlation
138
+
139
+ Returns
140
+ -------
141
+ [int, Any]
142
+ Tuple with the Response status code and the data returned from the request
143
+ """
144
+ session = await _get_session()
145
+ headers = {}
146
+ if function_invocation_id:
147
+ headers["X-Azure-Functions-InvocationId"] = function_invocation_id
148
+
149
+ try:
150
+ async with session.get(url, headers=headers) as response:
151
+ data = await response.json(content_type=None)
152
+ if data is None:
153
+ data = ""
154
+ return [response.status, data]
155
+ except (aiohttp.ClientError, asyncio.TimeoutError):
156
+ # On connection errors, close and recreate session for next request
157
+ await _handle_request_error()
158
+ raise
159
+
160
+
161
+ async def delete_async_request(url: str,
162
+ function_invocation_id: str = None) -> List[Union[int, Any]]:
163
+ """Delete the data from the url provided.
164
+
165
+ Parameters
166
+ ----------
167
+ url: str
168
+ url to delete the data from
169
+ function_invocation_id: str
170
+ function invocation ID header to send for correlation
171
+
172
+ Returns
173
+ -------
174
+ [int, Any]
175
+ Tuple with the Response status code and the data returned from the request
176
+ """
177
+ session = await _get_session()
178
+ headers = {}
179
+ if function_invocation_id:
180
+ headers["X-Azure-Functions-InvocationId"] = function_invocation_id
181
+
182
+ try:
183
+ async with session.delete(url, headers=headers) as response:
184
+ data = await response.json(content_type=None)
185
+ return [response.status, data]
186
+ except (aiohttp.ClientError, asyncio.TimeoutError):
187
+ # On connection errors, close and recreate session for next request
188
+ await _handle_request_error()
189
+ raise
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: azure-functions-durable
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: Durable Functions For Python
5
5
  Home-page: https://github.com/Azure/azure-functions-durable-python
6
6
  Author: Azure Functions team at Microsoft Corp.
@@ -51,7 +51,7 @@ Follow these instructions to get started with Durable Functions in Python:
51
51
 
52
52
  * Python Durable Functions requires [Azure Functions Core Tools](https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local) version 3.0.2630 or higher.
53
53
 
54
- ## OpenAI Agents Integration for Reliability on Azure Functions (Preview)
54
+ ## OpenAI Agent SDK Integration with Azure Durable Functions (Preview)
55
55
 
56
56
  Build resilient, stateful AI agents backed by Durable Functions orchestration—see the full documentation at [docs/openai_agents/README.md](docs/openai_agents/README.md).
57
57
 
@@ -153,6 +153,9 @@ samples-v2/openai_agents/basic/non_strict_output_type.py
153
153
  samples-v2/openai_agents/basic/previous_response_id.py
154
154
  samples-v2/openai_agents/basic/remote_image.py
155
155
  samples-v2/openai_agents/basic/tools.py
156
+ samples-v2/openai_agents/customer_service/README.md
157
+ samples-v2/openai_agents/customer_service/customer_service.py
158
+ samples-v2/openai_agents/customer_service/customer_service_client.py
156
159
  samples-v2/openai_agents/handoffs/message_filter.py
157
160
  samples-v2/orchestration_versioning/.funcignore
158
161
  samples-v2/orchestration_versioning/.gitignore
@@ -336,4 +339,5 @@ tests/test_utils/constants.py
336
339
  tests/test_utils/json_utils.py
337
340
  tests/test_utils/testClasses.py
338
341
  tests/utils/__init__.py
339
- tests/utils/test_entity_utils.py
342
+ tests/utils/test_entity_utils.py
343
+ tests/utils/test_http_utils.py
@@ -1,5 +1,5 @@
1
1
  azure-functions>=1.12.0
2
- aiohttp>=3.12.14
2
+ aiohttp>=3.13.3
3
3
  requests==2.*
4
4
  python-dateutil>=2.8.0
5
5
  furl>=2.1.0
@@ -1,10 +1,10 @@
1
- # OpenAI Agents Integration for Reliability on Azure Functions (Preview)
1
+ # OpenAI Agent SDK Integration with Azure Durable Functions (Preview)
2
2
 
3
3
  Build production-ready AI agents with automatic state persistence and failure recovery.
4
4
 
5
5
  ## Overview
6
6
 
7
- The OpenAI Agents Integration for Reliability on Azure Functions (Preview) integration combines the familiar OpenAI Agents SDK with Azure Durable Functions to create reliable, stateful AI agents that can survive any failure and continue exactly where they stopped.
7
+ The OpenAI Agent SDK Integration with Azure Durable Functions (Preview) integration combines the familiar OpenAI Agents SDK with Azure Durable Functions to create reliable, stateful AI agents that can survive any failure and continue exactly where they stopped.
8
8
 
9
9
  ## Key Benefits
10
10
 
@@ -19,4 +19,4 @@ The OpenAI Agents Integration for Reliability on Azure Functions (Preview) integ
19
19
  - [Getting Started](getting-started.md) - Setup and your first durable agent
20
20
  - [Reference](reference.md) - Complete reference documentation
21
21
 
22
- > Dependency & compatibility: The `azure-functions-durable` package does NOT declare `openai` or `openai-agents` as dependencies. If you need the OpenAI Agents Integration for Reliability on Azure Functions (Preview), explicitly add `openai` and `openai-agents` to your `requirements.txt` (see `samples-v2/openai_agents/requirements.txt`). This integration is validated with the versions currently pinned there (`openai==1.107.3`, `openai-agents==0.3.0`). Because the OpenAI ecosystem changes rapidly, if you encounter issues, first pin to these versions to rule out a version mismatch before filing an issue.
22
+ > Dependency & compatibility: The `azure-functions-durable` package does NOT declare `openai` or `openai-agents` as dependencies. If you need the OpenAI Agent SDK Integration with Azure Durable Functions(Preview), explicitly add `openai` and `openai-agents` to your `requirements.txt` (see `samples-v2/openai_agents/requirements.txt`). This integration is validated with the versions currently pinned there (`openai==1.107.3`, `openai-agents==0.3.0`). Because the OpenAI ecosystem changes rapidly, if you encounter issues, first pin to these versions to rule out a version mismatch before filing an issue.
@@ -1,4 +1,4 @@
1
- # Getting Started with the OpenAI Agents Integration for Reliability on Azure Functions (Preview)
1
+ # Getting Started with the OpenAI Agent SDK Integration with Azure Durable Functions (Preview)
2
2
 
3
3
  Getting started guide for implementing stateful AI agents using Azure Durable Functions orchestration with automatic checkpointing and replay semantics.
4
4
 
@@ -13,7 +13,7 @@ Getting started guide for implementing stateful AI agents using Azure Durable Fu
13
13
 
14
14
  ### Create an Azure Functions App
15
15
 
16
- This framework is designed specifically for **Azure Functions applications**. You need to create a Python Functions app to use the OpenAI Agents Integration for Reliability on Azure Functions (Preview).
16
+ This framework is designed specifically for **Azure Functions applications**. You need to create a Python Functions app to use the OpenAI Agent SDK Integration with Azure Durable Functions (Preview).
17
17
 
18
18
  **For new users**: If you're new to Azure Functions, follow these guides to get started:
19
19
  - [Create your first Python function in Azure](https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-python)
@@ -1,6 +1,6 @@
1
1
  # Reference Documentation
2
2
 
3
- Complete reference for the OpenAI Agents Integration for Reliability on Azure Functions (Preview) integration.
3
+ Complete reference for the OpenAI Agent SDK Integration with Azure Durable Functions (Preview) integration.
4
4
 
5
5
  ## Durable Orchestration
6
6
 
@@ -15,7 +15,7 @@ schedules:
15
15
  # Build nightly to catch any new CVEs and report SDL often.
16
16
  # We are also required to generated CodeQL reports weekly, so this
17
17
  # helps us meet that.
18
- - cron: "0 0 * * *"
18
+ - cron: "0 6 * * *"
19
19
  displayName: Nightly Build
20
20
  branches:
21
21
  include:
@@ -41,6 +41,9 @@ extends:
41
41
  name: 1es-pool-azfunc
42
42
  image: 1es-windows-2022
43
43
  os: windows
44
+ ${{ if eq( variables['Build.Reason'], 'Schedule' ) }}:
45
+ demands:
46
+ - Priority -equals Low
44
47
 
45
48
  stages:
46
49
  - stage: BuildAndSign
@@ -4,7 +4,7 @@ pytest==7.1.2
4
4
  python-dateutil==2.8.0
5
5
  requests==2.32.4
6
6
  jsonschema==4.25.1
7
- aiohttp==3.12.14
7
+ aiohttp==3.13.3
8
8
  azure-functions>=1.11.3b3
9
9
  nox==2019.11.9
10
10
  furl==2.1.0