conductor-python 1.3.2__tar.gz → 1.3.3__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 (252) hide show
  1. conductor_python-1.3.3/PKG-INFO +411 -0
  2. conductor_python-1.3.3/README.md +377 -0
  3. {conductor_python-1.3.2 → conductor_python-1.3.3}/pyproject.toml +1 -1
  4. conductor_python-1.3.3/src/conductor/client/ai/configuration.py +22 -0
  5. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/ai/orchestrator.py +1 -1
  6. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/configuration/configuration.py +1 -1
  7. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/__init__.py +36 -0
  8. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/call_mcp_tool.py +49 -0
  9. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/chat_message.py +52 -0
  10. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/generate_audio.py +69 -0
  11. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/generate_image.py +73 -0
  12. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/list_mcp_tools.py +43 -0
  13. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_chat_complete.py +157 -0
  14. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_generate_embeddings.py +52 -0
  15. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_index_documents.py +83 -0
  16. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_index_text.py +79 -0
  17. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_query_embeddings.py +52 -0
  18. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_search_embeddings.py +64 -0
  19. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_search_index.py +64 -0
  20. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_store_embeddings.py +65 -0
  21. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/llm_text_complete.py +96 -0
  22. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/tool_call.py +44 -0
  23. conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/tool_spec.py +49 -0
  24. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/task_type.py +7 -1
  25. conductor_python-1.3.2/PKG-INFO +0 -1111
  26. conductor_python-1.3.2/README.md +0 -1077
  27. conductor_python-1.3.2/src/conductor/client/ai/configuration.py +0 -13
  28. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_chat_complete.py +0 -58
  29. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_generate_embeddings.py +0 -22
  30. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_index_documents.py +0 -67
  31. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_index_text.py +0 -46
  32. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_query_embeddings.py +0 -26
  33. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_search_index.py +0 -28
  34. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/llm_text_complete.py +0 -52
  35. conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks/utils/__init__.py +0 -0
  36. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/__init__.py +0 -0
  37. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/__init__.py +0 -0
  38. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/ai/__init__.py +0 -0
  39. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/ai/integrations.py +0 -0
  40. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/authorization_client.py +0 -0
  41. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/automator/__init__.py +0 -0
  42. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/automator/async_task_runner.py +0 -0
  43. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/automator/json_schema_generator.py +0 -0
  44. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/automator/task_handler.py +0 -0
  45. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/automator/task_runner.py +0 -0
  46. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/automator/utils.py +0 -0
  47. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/configuration/__init__.py +0 -0
  48. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/configuration/settings/__init__.py +0 -0
  49. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/configuration/settings/authentication_settings.py +0 -0
  50. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/configuration/settings/metrics_settings.py +0 -0
  51. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/context/__init__.py +0 -0
  52. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/context/task_context.py +0 -0
  53. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/__init__.py +0 -0
  54. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/conductor_event.py +0 -0
  55. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/event_client.py +0 -0
  56. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/event_dispatcher.py +0 -0
  57. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/listener_register.py +0 -0
  58. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/listeners.py +0 -0
  59. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/queue/__init__.py +0 -0
  60. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/queue/kafka_queue_configuration.py +0 -0
  61. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/queue/queue_configuration.py +0 -0
  62. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/queue/queue_worker_configuration.py +0 -0
  63. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/sync_event_dispatcher.py +0 -0
  64. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/sync_listener_register.py +0 -0
  65. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/task_events.py +0 -0
  66. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/task_runner_events.py +0 -0
  67. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/event/workflow_events.py +0 -0
  68. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/exceptions/__init__.py +0 -0
  69. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/exceptions/api_error.py +0 -0
  70. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/exceptions/api_exception_handler.py +0 -0
  71. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/helpers/__init__.py +0 -0
  72. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/helpers/helper.py +0 -0
  73. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/__init__.py +0 -0
  74. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/__init__.py +0 -0
  75. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/application_resource_api.py +0 -0
  76. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/async_task_resource_api.py +0 -0
  77. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/authorization_resource_api.py +0 -0
  78. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/event_resource_api.py +0 -0
  79. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/gateway_auth_resource_api.py +0 -0
  80. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/group_resource_api.py +0 -0
  81. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/integration_resource_api.py +0 -0
  82. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/metadata_resource_api.py +0 -0
  83. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/prompt_resource_api.py +0 -0
  84. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/role_resource_api.py +0 -0
  85. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/scheduler_resource_api.py +0 -0
  86. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/schema_resource_api.py +0 -0
  87. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/secret_resource_api.py +0 -0
  88. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/service_registry_resource_api.py +0 -0
  89. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/task_resource_api.py +0 -0
  90. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/token_resource_api.py +0 -0
  91. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/user_resource_api.py +0 -0
  92. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/workflow_bulk_resource_api.py +0 -0
  93. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api/workflow_resource_api.py +0 -0
  94. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/api_client.py +0 -0
  95. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/async_api_client.py +0 -0
  96. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/async_rest.py +0 -0
  97. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/__init__.py +0 -0
  98. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/action.py +0 -0
  99. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/auditable.py +0 -0
  100. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/authentication_config.py +0 -0
  101. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/authorization_request.py +0 -0
  102. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/bulk_response.py +0 -0
  103. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/circuit_breaker_transition_response.py +0 -0
  104. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/conductor_application.py +0 -0
  105. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/conductor_user.py +0 -0
  106. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/correlation_ids_search_request.py +0 -0
  107. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/create_or_update_application_request.py +0 -0
  108. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/create_or_update_role_request.py +0 -0
  109. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/event_handler.py +0 -0
  110. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/external_storage_location.py +0 -0
  111. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/generate_token_request.py +0 -0
  112. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/group.py +0 -0
  113. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/health.py +0 -0
  114. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/health_check_status.py +0 -0
  115. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/integration.py +0 -0
  116. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/integration_api.py +0 -0
  117. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/integration_api_update.py +0 -0
  118. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/integration_def.py +0 -0
  119. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/integration_update.py +0 -0
  120. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/permission.py +0 -0
  121. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/poll_data.py +0 -0
  122. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/prompt_template.py +0 -0
  123. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/prompt_test_request.py +0 -0
  124. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/proto_registry_entry.py +0 -0
  125. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/rate_limit.py +0 -0
  126. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/request_param.py +0 -0
  127. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/rerun_workflow_request.py +0 -0
  128. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/response.py +0 -0
  129. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/role.py +0 -0
  130. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/save_schedule_request.py +0 -0
  131. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/schema_def.py +0 -0
  132. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/scrollable_search_result_workflow_summary.py +0 -0
  133. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/search_result_task.py +0 -0
  134. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/search_result_task_summary.py +0 -0
  135. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/search_result_workflow.py +0 -0
  136. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/search_result_workflow_schedule_execution_model.py +0 -0
  137. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/search_result_workflow_summary.py +0 -0
  138. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/service_method.py +0 -0
  139. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/service_registry.py +0 -0
  140. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/signal_response.py +0 -0
  141. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/skip_task_request.py +0 -0
  142. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/start_workflow.py +0 -0
  143. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/start_workflow_request.py +0 -0
  144. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/state_change_event.py +0 -0
  145. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/sub_workflow_params.py +0 -0
  146. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/subject_ref.py +0 -0
  147. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/tag_object.py +0 -0
  148. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/tag_string.py +0 -0
  149. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/target_ref.py +0 -0
  150. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task.py +0 -0
  151. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task_def.py +0 -0
  152. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task_details.py +0 -0
  153. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task_exec_log.py +0 -0
  154. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task_result.py +0 -0
  155. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task_result_status.py +0 -0
  156. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/task_summary.py +0 -0
  157. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/terminate_workflow.py +0 -0
  158. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/token.py +0 -0
  159. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/update_workflow_variables.py +0 -0
  160. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/upsert_group_request.py +0 -0
  161. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/upsert_user_request.py +0 -0
  162. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow.py +0 -0
  163. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_def.py +0 -0
  164. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_run.py +0 -0
  165. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_schedule.py +0 -0
  166. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_schedule_execution_model.py +0 -0
  167. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_state_update.py +0 -0
  168. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_status.py +0 -0
  169. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_summary.py +0 -0
  170. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_tag.py +0 -0
  171. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_task.py +0 -0
  172. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/models/workflow_test_request.py +0 -0
  173. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/rest.py +0 -0
  174. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/http/thread.py +0 -0
  175. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/integration_client.py +0 -0
  176. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/metadata_client.py +0 -0
  177. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/__init__.py +0 -0
  178. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/api/__init__.py +0 -0
  179. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/api/tags_api.py +0 -0
  180. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/__init__.py +0 -0
  181. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/access_key.py +0 -0
  182. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/access_key_status.py +0 -0
  183. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/access_type.py +0 -0
  184. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/created_access_key.py +0 -0
  185. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/granted_permission.py +0 -0
  186. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/metadata_tag.py +0 -0
  187. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/models/ratelimit_tag.py +0 -0
  188. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_authorization_client.py +0 -0
  189. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_base_client.py +0 -0
  190. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_integration_client.py +0 -0
  191. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_metadata_client.py +0 -0
  192. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_prompt_client.py +0 -0
  193. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_scheduler_client.py +0 -0
  194. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_schema_client.py +0 -0
  195. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_secret_client.py +0 -0
  196. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_service_registry_client.py +0 -0
  197. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_task_client.py +0 -0
  198. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes/orkes_workflow_client.py +0 -0
  199. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/orkes_clients.py +0 -0
  200. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/prompt_client.py +0 -0
  201. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/scheduler_client.py +0 -0
  202. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/schema_client.py +0 -0
  203. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/secret_client.py +0 -0
  204. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/service_registry_client.py +0 -0
  205. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/task_client.py +0 -0
  206. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/telemetry/__init__.py +0 -0
  207. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/telemetry/metrics_collector.py +0 -0
  208. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/telemetry/model/__init__.py +0 -0
  209. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/telemetry/model/metric_documentation.py +0 -0
  210. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/telemetry/model/metric_label.py +0 -0
  211. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/telemetry/model/metric_name.py +0 -0
  212. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/__init__.py +0 -0
  213. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/exception.py +0 -0
  214. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/worker.py +0 -0
  215. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/worker_config.py +0 -0
  216. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/worker_interface.py +0 -0
  217. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/worker_loader.py +0 -0
  218. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/worker/worker_task.py +0 -0
  219. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/__init__.py +0 -0
  220. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/conductor_workflow.py +0 -0
  221. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/executor/__init__.py +0 -0
  222. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/executor/workflow_executor.py +0 -0
  223. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/__init__.py +0 -0
  224. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/do_while_task.py +0 -0
  225. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/dynamic_fork_task.py +0 -0
  226. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/dynamic_task.py +0 -0
  227. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/event_task.py +0 -0
  228. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/fork_task.py +0 -0
  229. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/get_document.py +0 -0
  230. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/http_poll_task.py +0 -0
  231. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/http_task.py +0 -0
  232. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/human_task.py +0 -0
  233. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/inline.py +0 -0
  234. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/javascript_task.py +0 -0
  235. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/join_task.py +0 -0
  236. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/json_jq_task.py +0 -0
  237. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/kafka_publish.py +0 -0
  238. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/kafka_publish_input.py +0 -0
  239. {conductor_python-1.3.2/src/conductor/client/workflow/task/llm_tasks → conductor_python-1.3.3/src/conductor/client/workflow/task/llm_tasks/utils}/__init__.py +0 -0
  240. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/llm_tasks/utils/embedding_model.py +0 -0
  241. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/llm_tasks/utils/prompt.py +0 -0
  242. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/set_variable_task.py +0 -0
  243. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/simple_task.py +0 -0
  244. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/start_workflow_task.py +0 -0
  245. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/sub_workflow_task.py +0 -0
  246. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/switch_task.py +0 -0
  247. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/task.py +0 -0
  248. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/terminate_task.py +0 -0
  249. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/timeout_policy.py +0 -0
  250. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/wait_for_webhook_task.py +0 -0
  251. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow/task/wait_task.py +0 -0
  252. {conductor_python-1.3.2 → conductor_python-1.3.3}/src/conductor/client/workflow_client.py +0 -0
@@ -0,0 +1,411 @@
1
+ Metadata-Version: 2.4
2
+ Name: conductor-python
3
+ Version: 1.3.3
4
+ Summary: Python SDK for working with https://github.com/conductor-oss/conductor
5
+ License: Apache-2.0
6
+ Author: Orkes
7
+ Author-email: developers@orkes.io
8
+ Requires-Python: >=3.9,<3.13
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Intended Audience :: System Administrators
12
+ Classifier: License :: OSI Approved :: Apache Software License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Requires-Dist: astor (>=0.8.1)
21
+ Requires-Dist: certifi (>=14.5.14)
22
+ Requires-Dist: dacite (>=1.8.1)
23
+ Requires-Dist: deprecated (>=1.2.14)
24
+ Requires-Dist: h2 (>=4.1.0)
25
+ Requires-Dist: httpx[http2] (>=0.26.0)
26
+ Requires-Dist: prometheus-client (>=0.13.1)
27
+ Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
28
+ Requires-Dist: requests (>=2.31.0)
29
+ Requires-Dist: shortuuid (>=1.0.11)
30
+ Requires-Dist: six (>=1.10)
31
+ Requires-Dist: typing-extensions (>=4.2.0)
32
+ Description-Content-Type: text/markdown
33
+
34
+ # Conductor Python SDK
35
+
36
+ [![CI Status](https://github.com/conductor-oss/python-sdk/actions/workflows/pull_request.yml/badge.svg)](https://github.com/conductor-oss/python-sdk/actions/workflows/pull_request.yml)
37
+
38
+ Python SDK for [Conductor](https://www.conductor-oss.org/) — the leading open-source orchestration platform for building distributed applications, AI agents, and workflow-driven microservices. Define workflows as code, run workers anywhere, and let Conductor handle retries, state management, and observability.
39
+
40
+ If you find [Conductor](https://github.com/conductor-oss/conductor) useful, please consider giving it a star on GitHub -- it helps the project grow.
41
+
42
+ [![GitHub stars](https://img.shields.io/github/stars/conductor-oss/conductor.svg?style=social&label=Star&maxAge=)](https://GitHub.com/conductor-oss/conductor/)
43
+
44
+ ## 60-Second Quickstart
45
+
46
+ Install the SDK and create a single file `quickstart.py`:
47
+
48
+ ```shell
49
+ pip install conductor-python
50
+ ```
51
+
52
+ ## Setting Up Conductor
53
+
54
+ If you don't already have a Conductor server running:
55
+
56
+ **macOS / Linux:**
57
+ ```shell
58
+ curl -sSL https://raw.githubusercontent.com/conductor-oss/conductor/main/conductor_server.sh | sh
59
+ ```
60
+
61
+ **Docker:**
62
+ ```shell
63
+ docker run -p 8080:8080 conductoross/conductor:latest
64
+ ```
65
+ The UI will be available at `http://localhost:8080`.
66
+
67
+ ## Run your first workflow app
68
+ ```python
69
+ from conductor.client.automator.task_handler import TaskHandler
70
+ from conductor.client.configuration.configuration import Configuration
71
+ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
72
+ from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
73
+ from conductor.client.worker.worker_task import worker_task
74
+
75
+
76
+ # Step 1: Define a worker — any Python function
77
+ @worker_task(task_definition_name='greet')
78
+ def greet(name: str) -> str:
79
+ return f'Hello {name}'
80
+
81
+
82
+ def main():
83
+ # Step 2: Configure the SDK (reads CONDUCTOR_SERVER_URL from env)
84
+ config = Configuration()
85
+
86
+ # Step 3: Build a workflow with the >> operator
87
+ executor = WorkflowExecutor(configuration=config)
88
+ workflow = ConductorWorkflow(name='greetings', version=1, executor=executor)
89
+ workflow >> greet(task_ref_name='greet_ref', name=workflow.input('name'))
90
+ workflow.register(True)
91
+
92
+ # Step 4: Start polling for tasks
93
+ task_handler = TaskHandler(configuration=config)
94
+ task_handler.start_processes()
95
+
96
+ # Step 5: Run the workflow and get the result
97
+ result = executor.execute(name='greetings', version=1, workflow_input={'name': 'Conductor'})
98
+ print(f'result: {result.output["result"]}')
99
+ print(f'execution: {config.ui_host}/execution/{result.workflow_id}')
100
+
101
+ task_handler.stop_processes()
102
+
103
+
104
+ if __name__ == '__main__':
105
+ main()
106
+ ```
107
+
108
+ Run it:
109
+
110
+ ```shell
111
+ export CONDUCTOR_SERVER_URL="http://localhost:8080/api"
112
+ python quickstart.py
113
+ ```
114
+
115
+ > **Using Orkes Conductor?** Export your authentication credentials as well:
116
+ > ```shell
117
+ > export CONDUCTOR_SERVER_URL="https://your-cluster.orkesconductor.io/api"
118
+ > export CONDUCTOR_AUTH_KEY="your-key"
119
+ > export CONDUCTOR_AUTH_SECRET="your-secret"
120
+ > ```
121
+ > See [Configuration](#configuration) for details.
122
+
123
+ That's it -- you just defined a worker, built a workflow, and executed it. Open [http://localhost:8080](http://localhost:8080) to see the execution in the Conductor UI.
124
+
125
+ ### Comprehensive example with sync + async workers, metrics, and long-running tasks
126
+
127
+ See [examples/workers_e2e.py](examples/workers_e2e.py)
128
+
129
+ ### Configuration
130
+
131
+ The SDK reads configuration from environment variables:
132
+
133
+ ```shell
134
+ # Required — Conductor server endpoint
135
+ export CONDUCTOR_SERVER_URL="http://localhost:8080/api"
136
+
137
+ # Optional — Authentication (required for Orkes Conductor)
138
+ export CONDUCTOR_AUTH_KEY="your-key"
139
+ export CONDUCTOR_AUTH_SECRET="your-secret"
140
+ ```
141
+ ---
142
+
143
+ ## Workers
144
+
145
+ Workers are Python functions that execute tasks. Decorate any function with `@worker_task` to make it a distributed worker:
146
+ Note: Workers can be used by LLMs for tool calling.
147
+
148
+ ```python
149
+ from conductor.client.worker.worker_task import worker_task
150
+
151
+ @worker_task(task_definition_name='greet')
152
+ def greet(name: str) -> str:
153
+ return f'Hello {name}'
154
+ ```
155
+
156
+ **Async workers** for I/O-bound tasks — the SDK automatically uses `AsyncTaskRunner` (event loop, no thread overhead):
157
+
158
+ ```python
159
+ @worker_task(task_definition_name='fetch_data')
160
+ async def fetch_data(url: str) -> dict:
161
+ async with httpx.AsyncClient() as client:
162
+ response = await client.get(url)
163
+ return response.json()
164
+ ```
165
+
166
+ **Start workers** with `TaskHandler`:
167
+
168
+ ```python
169
+ from conductor.client.automator.task_handler import TaskHandler
170
+ from conductor.client.configuration.configuration import Configuration
171
+
172
+ api_config = Configuration()
173
+ task_handler = TaskHandler(
174
+ workers=[],
175
+ configuration=api_config,
176
+ scan_for_annotated_workers=True,
177
+ )
178
+ task_handler.start_processes()
179
+ ```
180
+
181
+ Workers support complex inputs (dataclasses), long-running tasks (`TaskInProgress`), and hierarchical configuration via environment variables.
182
+
183
+ **Learn more:**
184
+ - [Worker Design & Architecture](docs/design/WORKER_DESIGN.md) — AsyncTaskRunner vs TaskRunner, discovery, lifecycle
185
+ - [Worker Configuration](WORKER_CONFIGURATION.md) — Environment variable configuration system
186
+ - [Complete Worker Guide](docs/WORKER.md) — All worker patterns (function, class, annotation, async)
187
+
188
+ ## Workflows
189
+
190
+ Define workflows in Python using the `>>` operator to chain tasks:
191
+
192
+ ```python
193
+ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
194
+ from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
195
+
196
+ workflow_executor = WorkflowExecutor(configuration=api_config)
197
+ workflow = ConductorWorkflow(name='greetings', version=1, executor=workflow_executor)
198
+ workflow >> greet(task_ref_name='greet_ref', name=workflow.input('name'))
199
+ workflow.register(True)
200
+ ```
201
+
202
+ **Execute workflows:**
203
+
204
+ ```python
205
+ # Synchronous (waits for completion)
206
+ result = workflow_executor.execute(name='greetings', version=1, workflow_input={'name': 'Orkes'})
207
+ print(result.output)
208
+
209
+ # Asynchronous (returns workflow ID immediately)
210
+ from conductor.client.http.models import StartWorkflowRequest
211
+ request = StartWorkflowRequest(name='greetings', version=1, input={'name': 'Orkes'})
212
+ workflow_id = workflow_client.start_workflow(request)
213
+ ```
214
+
215
+ **Manage running workflows:**
216
+
217
+ ```python
218
+ from conductor.client.orkes_clients import OrkesClients
219
+
220
+ clients = OrkesClients(configuration=api_config)
221
+ workflow_client = clients.get_workflow_client()
222
+
223
+ workflow_client.pause_workflow(workflow_id)
224
+ workflow_client.resume_workflow(workflow_id)
225
+ workflow_client.terminate_workflow(workflow_id, reason='no longer needed')
226
+ workflow_client.retry_workflow(workflow_id)
227
+ workflow_client.restart_workflow(workflow_id)
228
+ ```
229
+
230
+ **Learn more:**
231
+ - [Workflow Management](docs/WORKFLOW.md) — Start, pause, resume, terminate, retry, search
232
+ - [Workflow Testing](docs/WORKFLOW_TESTING.md) — Unit testing with mock task outputs
233
+ - [Metadata Management](docs/METADATA.md) — Task & workflow definitions
234
+
235
+ ## Hello World
236
+
237
+ The complete Hello World example lives in [`examples/helloworld/`](examples/helloworld/):
238
+
239
+ ```shell
240
+ python examples/helloworld/helloworld.py
241
+ ```
242
+
243
+ It creates a `greetings` workflow with one worker task, runs the worker, executes the workflow, and prints the result. See the [Hello World source](examples/helloworld/helloworld.py) for the full code.
244
+
245
+ ## AI & LLM Workflows
246
+
247
+ Conductor supports AI-native workflows including agentic tool calling, RAG pipelines, and multi-agent orchestration.
248
+
249
+ ### Agentic Workflows
250
+
251
+ Build AI agents where LLMs dynamically select and call Python workers as tools. See [examples/agentic_workflows/](examples/agentic_workflows/) for all examples.
252
+
253
+ | Example | Description |
254
+ |---------|-------------|
255
+ | [llm_chat.py](examples/agentic_workflows/llm_chat.py) | Automated multi-turn science Q&A between two LLMs |
256
+ | [llm_chat_human_in_loop.py](examples/agentic_workflows/llm_chat_human_in_loop.py) | Interactive chat with WAIT task pauses for user input |
257
+ | [multiagent_chat.py](examples/agentic_workflows/multiagent_chat.py) | Multi-agent debate with moderator routing between panelists |
258
+ | [function_calling_example.py](examples/agentic_workflows/function_calling_example.py) | LLM picks which Python function to call based on user queries |
259
+ | [mcp_weather_agent.py](examples/agentic_workflows/mcp_weather_agent.py) | AI agent using MCP tools for weather queries |
260
+
261
+ ### LLM and RAG Workflows
262
+
263
+ | Example | Description |
264
+ |---------|-------------|
265
+ | [rag_workflow.py](examples/rag_workflow.py) | End-to-end RAG: document conversion (PDF/Word/Excel), pgvector indexing, semantic search, answer generation |
266
+ | [vector_db_helloworld.py](examples/orkes/vector_db_helloworld.py) | Vector database operations: text indexing, embedding generation, and semantic search with Pinecone |
267
+
268
+ ```shell
269
+ # Automated multi-turn chat
270
+ python examples/agentic_workflows/llm_chat.py
271
+
272
+ # Multi-agent debate
273
+ python examples/agentic_workflows/multiagent_chat.py --topic "renewable energy"
274
+
275
+ # RAG pipeline
276
+ pip install "markitdown[pdf]"
277
+ python examples/rag_workflow.py document.pdf "What are the key findings?"
278
+ ```
279
+
280
+ ### Worker Configuration
281
+
282
+ Workers support hierarchical environment variable configuration — global settings that can be overridden per worker:
283
+
284
+ ```shell
285
+ # Global (all workers)
286
+ export CONDUCTOR_WORKER_ALL_POLL_INTERVAL_MILLIS=250
287
+ export CONDUCTOR_WORKER_ALL_THREAD_COUNT=20
288
+ export CONDUCTOR_WORKER_ALL_DOMAIN=production
289
+
290
+ # Per-worker override
291
+ export CONDUCTOR_WORKER_GREETINGS_THREAD_COUNT=50
292
+ ```
293
+
294
+ See [WORKER_CONFIGURATION.md](WORKER_CONFIGURATION.md) for all options.
295
+
296
+ ### Monitoring
297
+
298
+ Enable Prometheus metrics:
299
+
300
+ ```python
301
+ from conductor.client.configuration.settings.metrics_settings import MetricsSettings
302
+
303
+ metrics_settings = MetricsSettings(directory='/tmp/conductor-metrics', http_port=8000)
304
+ task_handler = TaskHandler(configuration=api_config, metrics_settings=metrics_settings, scan_for_annotated_workers=True)
305
+ # Metrics at http://localhost:8000/metrics
306
+ ```
307
+
308
+ See [METRICS.md](METRICS.md) for details.
309
+
310
+ ## Examples
311
+
312
+ See the [Examples Guide](examples/README.md) for the full catalog. Key examples:
313
+
314
+ | Example | Description | Run |
315
+ |---------|-------------|-----|
316
+ | [workers_e2e.py](examples/workers_e2e.py) | End-to-end: sync + async workers, metrics | `python examples/workers_e2e.py` |
317
+ | [helloworld.py](examples/helloworld/helloworld.py) | Minimal hello world | `python examples/helloworld/helloworld.py` |
318
+ | [dynamic_workflow.py](examples/dynamic_workflow.py) | Build workflows programmatically | `python examples/dynamic_workflow.py` |
319
+ | [llm_chat.py](examples/agentic_workflows/llm_chat.py) | AI multi-turn chat | `python examples/agentic_workflows/llm_chat.py` |
320
+ | [rag_workflow.py](examples/rag_workflow.py) | RAG pipeline (PDF → pgvector → answer) | `python examples/rag_workflow.py file.pdf "question"` |
321
+ | [task_context_example.py](examples/task_context_example.py) | Long-running tasks with TaskInProgress | `python examples/task_context_example.py` |
322
+ | [workflow_ops.py](examples/workflow_ops.py) | Pause, resume, terminate workflows | `python examples/workflow_ops.py` |
323
+ | [test_workflows.py](examples/test_workflows.py) | Unit testing workflows | `python -m unittest examples.test_workflows` |
324
+ | [kitchensink.py](examples/kitchensink.py) | All task types (HTTP, JS, JQ, Switch) | `python examples/kitchensink.py` |
325
+
326
+ ### API Journey Examples
327
+
328
+ End-to-end examples covering all APIs for each domain:
329
+
330
+ | Example | APIs | Run |
331
+ |---------|------|-----|
332
+ | [authorization_journey.py](examples/authorization_journey.py) | Authorization APIs | `python examples/authorization_journey.py` |
333
+ | [metadata_journey.py](examples/metadata_journey.py) | Metadata APIs | `python examples/metadata_journey.py` |
334
+ | [schedule_journey.py](examples/schedule_journey.py) | Schedule APIs | `python examples/schedule_journey.py` |
335
+ | [prompt_journey.py](examples/prompt_journey.py) | Prompt APIs | `python examples/prompt_journey.py` |
336
+
337
+ ## Documentation
338
+
339
+ | Document | Description |
340
+ |----------|-------------|
341
+ | [Worker Design](docs/design/WORKER_DESIGN.md) | Architecture: AsyncTaskRunner vs TaskRunner, discovery, lifecycle |
342
+ | [Worker Guide](docs/WORKER.md) | All worker patterns (function, class, annotation, async) |
343
+ | [Worker Configuration](WORKER_CONFIGURATION.md) | Hierarchical environment variable configuration |
344
+ | [Workflow Management](docs/WORKFLOW.md) | Start, pause, resume, terminate, retry, search |
345
+ | [Workflow Testing](docs/WORKFLOW_TESTING.md) | Unit testing with mock outputs |
346
+ | [Task Management](docs/TASK_MANAGEMENT.md) | Task operations |
347
+ | [Metadata](docs/METADATA.md) | Task & workflow definitions |
348
+ | [Authorization](docs/AUTHORIZATION.md) | Users, groups, applications, permissions |
349
+ | [Schedules](docs/SCHEDULE.md) | Workflow scheduling |
350
+ | [Secrets](docs/SECRET_MANAGEMENT.md) | Secret storage |
351
+ | [Prompts](docs/PROMPT.md) | AI/LLM prompt templates |
352
+ | [Integrations](docs/INTEGRATION.md) | AI/LLM provider integrations |
353
+ | [Metrics](METRICS.md) | Prometheus metrics collection |
354
+ | [Examples](examples/README.md) | Complete examples catalog |
355
+
356
+ ## Support
357
+
358
+ - [Open an issue](https://github.com/conductor-oss/conductor/issues) for bugs, questions, and feature requests
359
+ - [Join the Conductor Slack](https://join.slack.com/t/orkes-conductor/shared_invite/zt-2vdbx239s-Eacdyqya9giNLHfrCavfaA) for community discussion and help
360
+ - [Orkes Community Forum](https://community.orkes.io/) for Q&A
361
+
362
+ ## Frequently Asked Questions
363
+
364
+ **Is this the same as Netflix Conductor?**
365
+
366
+ Yes. Conductor OSS is the continuation of the original [Netflix Conductor](https://github.com/Netflix/conductor) repository after Netflix contributed the project to the open-source foundation.
367
+
368
+ **Is this project actively maintained?**
369
+
370
+ Yes. [Orkes](https://orkes.io) is the primary maintainer and offers an enterprise SaaS platform for Conductor across all major cloud providers.
371
+
372
+ **Can Conductor scale to handle my workload?**
373
+
374
+ Conductor was built at Netflix to handle massive scale and has been battle-tested in production environments processing millions of workflows. It scales horizontally to meet virtually any demand.
375
+
376
+ **Does Conductor support durable code execution?**
377
+
378
+ Yes. Conductor ensures workflows complete reliably even in the face of infrastructure failures, process crashes, or network issues.
379
+
380
+ **Are workflows always asynchronous?**
381
+
382
+ No. While Conductor excels at asynchronous orchestration, it also supports synchronous workflow execution when immediate results are required.
383
+
384
+ **Do I need to use a Conductor-specific framework?**
385
+
386
+ No. Conductor is language and framework agnostic. Use your preferred language and framework -- the [SDKs](https://github.com/conductor-oss/conductor#conductor-sdks) provide native integration for Python, Java, JavaScript, Go, C#, and more.
387
+
388
+ **Can I mix workers written in different languages?**
389
+
390
+ Yes. A single workflow can have workers written in Python, Java, Go, or any other supported language. Workers communicate through the Conductor server, not directly with each other.
391
+
392
+ **What Python versions are supported?**
393
+
394
+ Python 3.9 and above.
395
+
396
+ **Should I use `def` or `async def` for my workers?**
397
+
398
+ Use `async def` for I/O-bound tasks (API calls, database queries) -- the SDK uses `AsyncTaskRunner` with a single event loop for high concurrency with low overhead. Use regular `def` for CPU-bound or blocking work -- the SDK uses `TaskRunner` with a thread pool. The SDK selects the right runner automatically based on your function signature.
399
+
400
+ **How do I run workers in production?**
401
+
402
+ Workers are standard Python processes. Deploy them as you would any Python application -- in containers, VMs, or bare metal. Workers poll the Conductor server for tasks, so no inbound ports need to be opened. See [Worker Design](docs/design/WORKER_DESIGN.md) for architecture details.
403
+
404
+ **How do I test workflows without running a full Conductor server?**
405
+
406
+ The SDK provides a test framework that uses Conductor's `POST /api/workflow/test` endpoint to evaluate workflows with mock task outputs. See [Workflow Testing](docs/WORKFLOW_TESTING.md) for details.
407
+
408
+ ## License
409
+
410
+ Apache 2.0
411
+