ibm-watsonx-orchestrate 1.12.0b0__tar.gz → 1.12.0b1__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 (140) hide show
  1. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/PKG-INFO +1 -1
  2. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/__init__.py +1 -1
  3. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/types.py +5 -5
  4. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/models/types.py +1 -0
  5. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py +1 -1
  6. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +1 -1
  7. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +6 -0
  8. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +2 -2
  9. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +2 -2
  10. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +23 -4
  11. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/partners/partners_command.py +1 -1
  12. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/server/server_command.py +11 -3
  13. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +2 -2
  14. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/compose-lite.yml +56 -6
  15. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/default.env +19 -16
  16. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +8 -2
  17. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/flow.py +31 -7
  18. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/node.py +1 -1
  19. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/types.py +18 -3
  20. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/.gitignore +0 -0
  21. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/LICENSE +0 -0
  22. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/pyproject.toml +0 -0
  23. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/__init__.py +0 -0
  24. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +0 -0
  25. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/agent.py +0 -0
  26. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py +0 -0
  27. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py +0 -0
  28. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +0 -0
  29. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +0 -0
  30. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +0 -0
  31. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +0 -0
  32. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/connections/connections.py +0 -0
  33. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/connections/types.py +0 -0
  34. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py +0 -0
  35. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py +0 -0
  36. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +0 -0
  37. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py +0 -0
  38. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +0 -0
  39. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/models/__init__.py +0 -0
  40. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/types.py +0 -0
  41. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/__init__.py +0 -0
  42. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +0 -0
  43. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/langflow_tool.py +0 -0
  44. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +0 -0
  45. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/types.py +0 -0
  46. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/utils/__init__.py +0 -0
  47. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/voice_configurations/__init__.py +0 -0
  48. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/agent_builder/voice_configurations/types.py +0 -0
  49. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/__init__.py +0 -0
  50. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/__init__.py +0 -0
  51. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +0 -0
  52. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py +0 -0
  53. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py +0 -0
  54. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/types.py +0 -0
  55. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py +0 -0
  56. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +0 -0
  57. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +0 -0
  58. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +0 -0
  59. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py +0 -0
  60. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py +0 -0
  61. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py +0 -0
  62. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +0 -0
  63. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +0 -0
  64. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/environment/types.py +0 -0
  65. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +0 -0
  66. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +0 -0
  67. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +0 -0
  68. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +0 -0
  69. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/login/login_command.py +0 -0
  70. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/models/models_command.py +0 -0
  71. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +0 -0
  72. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/partners/offering/partners_offering_command.py +0 -0
  73. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/partners/offering/partners_offering_controller.py +0 -0
  74. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/partners/offering/types.py +0 -0
  75. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/partners/partners_controller.py +0 -0
  76. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/server/types.py +0 -0
  77. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/__init__.py +0 -0
  78. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py +0 -0
  79. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py +0 -0
  80. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py +0 -0
  81. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py +0 -0
  82. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py +0 -0
  83. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +0 -0
  84. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py +0 -0
  85. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +0 -0
  86. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/tools/types.py +0 -0
  87. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/voice_configurations/voice_configurations_command.py +0 -0
  88. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/commands/voice_configurations/voice_configurations_controller.py +0 -0
  89. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/config.py +0 -0
  90. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/init_helper.py +0 -0
  91. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/cli/main.py +0 -0
  92. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/__init__.py +0 -0
  93. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/agents/agent_client.py +0 -0
  94. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +0 -0
  95. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/agents/external_agent_client.py +0 -0
  96. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/analytics/__init__.py +0 -0
  97. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/analytics/llm/__init__.py +0 -0
  98. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py +0 -0
  99. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/base_api_client.py +0 -0
  100. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/base_service_instance.py +0 -0
  101. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/client.py +0 -0
  102. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/client_errors.py +0 -0
  103. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/connections/__init__.py +0 -0
  104. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/connections/connections_client.py +0 -0
  105. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/connections/utils.py +0 -0
  106. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py +0 -0
  107. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/credentials.py +0 -0
  108. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py +0 -0
  109. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/local_service_instance.py +0 -0
  110. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/model_policies/__init__.py +0 -0
  111. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +0 -0
  112. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/models/__init__.py +0 -0
  113. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/models/models_client.py +0 -0
  114. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/service_instance.py +0 -0
  115. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py +0 -0
  116. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/tools/tempus_client.py +0 -0
  117. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/tools/tool_client.py +0 -0
  118. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/utils.py +0 -0
  119. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/client/voice_configurations/voice_configurations_client.py +0 -0
  120. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +0 -0
  121. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl +0 -0
  122. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz +0 -0
  123. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/start-up.sh +0 -0
  124. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/docker/tempus/common-config.yaml +0 -0
  125. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/__init__.py +0 -0
  126. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/data_map.py +0 -0
  127. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +0 -0
  128. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/constants.py +0 -0
  129. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/events.py +0 -0
  130. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/flow_builder/utils.py +0 -0
  131. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/run/__init__.py +0 -0
  132. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/run/connections.py +0 -0
  133. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/__init__.py +0 -0
  134. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/docker_utils.py +0 -0
  135. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/environment.py +0 -0
  136. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/exceptions.py +0 -0
  137. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/logging/__init__.py +0 -0
  138. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/logging/logger.py +0 -0
  139. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/logging/logging.yaml +0 -0
  140. {ibm_watsonx_orchestrate-1.12.0b0 → ibm_watsonx_orchestrate-1.12.0b1}/src/ibm_watsonx_orchestrate/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ibm-watsonx-orchestrate
3
- Version: 1.12.0b0
3
+ Version: 1.12.0b1
4
4
  Summary: IBM watsonx.orchestrate SDK
5
5
  Author-email: IBM <support@ibm.com>
6
6
  License: MIT License
@@ -5,7 +5,7 @@
5
5
 
6
6
  pkg_name = "ibm-watsonx-orchestrate"
7
7
 
8
- __version__ = "1.12.0b0"
8
+ __version__ = "1.12.0b1"
9
9
 
10
10
 
11
11
  from ibm_watsonx_orchestrate.utils.logging.logger import setup_logging
@@ -88,7 +88,7 @@ class BaseAgentSpec(BaseModel):
88
88
  dumped = self.model_dump(mode='json', exclude_unset=True, exclude_none=True)
89
89
  with open(file, 'w') as f:
90
90
  if file.endswith('.yaml') or file.endswith('.yml'):
91
- yaml.dump(dumped, f, sort_keys=False)
91
+ yaml.dump(dumped, f, sort_keys=False, allow_unicode=True)
92
92
  elif file.endswith('.json'):
93
93
  json.dump(dumped, f, indent=2)
94
94
  else:
@@ -219,8 +219,8 @@ def validate_agent_fields(values: dict) -> dict:
219
219
  # ===============================
220
220
 
221
221
  class ExternalAgentConfig(BaseModel):
222
- hidden: bool = False
223
- enable_cot: bool = False
222
+ hidden: Optional[bool] = False
223
+ enable_cot: Optional[bool] = False
224
224
 
225
225
  class ExternalAgentSpec(BaseAgentSpec):
226
226
  model_config = ConfigDict(arbitrary_types_allowed=True)
@@ -243,8 +243,8 @@ class ExternalAgentSpec(BaseAgentSpec):
243
243
  # The get api responds with a flat object with no config
244
244
  if values.get("config") is None:
245
245
  values["config"] = {}
246
- values["config"]["enable_cot"] = values.get("enable_cot", None)
247
- values["config"]["hidden"] = values.get("hidden", None)
246
+ values["config"]["enable_cot"] = values.get("enable_cot", False)
247
+ values["config"]["hidden"] = values.get("hidden", False)
248
248
  return validate_external_agent_fields(values)
249
249
 
250
250
  @model_validator(mode="after")
@@ -23,6 +23,7 @@ class ModelProvider(str, Enum):
23
23
  STABILITY_AI = 'stability-ai'
24
24
  TOGETHER_AI = 'together-ai'
25
25
  WATSONX = 'watsonx'
26
+ X_AI='x-ai'
26
27
 
27
28
  def __str__(self):
28
29
  return self.value
@@ -18,7 +18,7 @@ class BaseToolkit:
18
18
  dumped = self.__toolkit_spec__.model_dump(mode='json', exclude_unset=True, exclude_none=True, by_alias=True)
19
19
  with open(file, 'w') as f:
20
20
  if file.endswith('.yaml') or file.endswith('.yml'):
21
- yaml.dump(dumped, f)
21
+ yaml.dump(dumped, f, allow_unicode=True)
22
22
  elif file.endswith('.json'):
23
23
  json.dump(dumped, f, indent=2)
24
24
  else:
@@ -19,7 +19,7 @@ class BaseTool:
19
19
  dumped = self.__tool_spec__.model_dump(mode='json', exclude_unset=True, exclude_none=True, by_alias=True)
20
20
  with open(file, 'w') as f:
21
21
  if file.endswith('.yaml') or file.endswith('.yml'):
22
- yaml.dump(dumped, f)
22
+ yaml.dump(dumped, f, allow_unicode=True)
23
23
  elif file.endswith('.json'):
24
24
  json.dump(dumped, f, indent=2)
25
25
  else:
@@ -80,6 +80,7 @@ def create_openapi_json_tool(
80
80
  http_success_response_code: int = 200,
81
81
  http_response_content_type='application/json',
82
82
  name: str = None,
83
+ display_name: str = None,
83
84
  description: str = None,
84
85
  permission: ToolPermission = None,
85
86
  input_schema: ToolRequestBody = None,
@@ -130,8 +131,10 @@ def create_openapi_json_tool(
130
131
  raise BadRequest(
131
132
  f"No description provided for tool. {http_method}: {http_path} did not specify a description field, and no description was provided")
132
133
 
134
+ spec_display_name = display_name if display_name else route_spec.get('summary')
133
135
  spec = ToolSpec(
134
136
  name=spec_name,
137
+ display_name=spec_display_name,
135
138
  description=spec_description,
136
139
  permission=spec_permission
137
140
  )
@@ -348,6 +351,7 @@ async def create_openapi_json_tool_from_uri(
348
351
  http_response_content_type='application/json',
349
352
  permission: ToolPermission = ToolPermission.READ_ONLY,
350
353
  name: str = None,
354
+ display_name: str = None,
351
355
  description: str = None,
352
356
  input_schema: ToolRequestBody = None,
353
357
  output_schema: ToolResponseBody = None,
@@ -362,6 +366,7 @@ async def create_openapi_json_tool_from_uri(
362
366
  :param http_success_response_code: Which http status code should be considered a successful call (defaults to 200)
363
367
  :param http_response_content_type: Which http response type should be considered successful (default to application/json)
364
368
  :param name: The name of the resulting tool (used to invoke the tool by the agent)
369
+ :param display_name: The name of the resulting tool to be displayed
365
370
  :param description: The description of the resulting tool (used as the semantic layer to help the agent with tool selection)
366
371
  :param permission: Which orchestrate permission level does a user need to have to invoke this tool
367
372
  :param input_schema: The JSONSchema of the inputs to the http request
@@ -379,6 +384,7 @@ async def create_openapi_json_tool_from_uri(
379
384
  http_response_content_type=http_response_content_type,
380
385
  permission=permission,
381
386
  name=name,
387
+ display_name=display_name,
382
388
  description=description,
383
389
  input_schema=input_schema,
384
390
  output_schema=output_schema,
@@ -1330,7 +1330,7 @@ class AgentsController:
1330
1330
  if agent_only_flag:
1331
1331
  logger.info(f"Exported agent definition for '{name}' to '{output_path}'")
1332
1332
  with open(output_path, 'w') as outfile:
1333
- yaml.dump(agent_spec_file_content, outfile, sort_keys=False, default_flow_style=False)
1333
+ yaml.dump(agent_spec_file_content, outfile, sort_keys=False, default_flow_style=False, allow_unicode=True)
1334
1334
  return
1335
1335
 
1336
1336
  close_file_flag = False
@@ -1340,7 +1340,7 @@ class AgentsController:
1340
1340
 
1341
1341
  logger.info(f"Exporting agent definition for '{name}'")
1342
1342
 
1343
- agent_spec_yaml = yaml.dump(agent_spec_file_content, sort_keys=False, default_flow_style=False)
1343
+ agent_spec_yaml = yaml.dump(agent_spec_file_content, sort_keys=False, default_flow_style=False, allow_unicode=True)
1344
1344
  agent_spec_yaml_bytes = agent_spec_yaml.encode("utf-8")
1345
1345
  agent_spec_yaml_file = io.BytesIO(agent_spec_yaml_bytes)
1346
1346
 
@@ -575,7 +575,7 @@ def export_connection(output_file: str, app_id: str | None = None, connection_id
575
575
  case '.zip':
576
576
  zip_file = zipfile.ZipFile(output_path, "w")
577
577
 
578
- connection_yaml = yaml.dump(combined_connections, sort_keys=False, default_flow_style=False)
578
+ connection_yaml = yaml.dump(combined_connections, sort_keys=False, default_flow_style=False, allow_unicode=True)
579
579
  connection_yaml_bytes = connection_yaml.encode("utf-8")
580
580
  connection_yaml_file = io.BytesIO(connection_yaml_bytes)
581
581
 
@@ -588,7 +588,7 @@ def export_connection(output_file: str, app_id: str | None = None, connection_id
588
588
  case '.yaml' | '.yml':
589
589
  with open(output_path,'w') as yaml_file:
590
590
  yaml_file.write(
591
- yaml.dump(combined_connections, sort_keys=False, default_flow_style=False)
591
+ yaml.dump(combined_connections, sort_keys=False, default_flow_style=False, allow_unicode=True)
592
592
  )
593
593
 
594
594
  logger.info(f"Successfully exported connection file for {app_id}")
@@ -101,10 +101,11 @@ PROVIDER_EXTRA_PROPERTIES_LUT = {
101
101
  PROVIDER_REQUIRED_FIELDS = {k:['api_key'] for k in ModelProvider}
102
102
  # Update required fields for each provider
103
103
  # Use sets to denote when a requirement is 'or'
104
+ # Tuples denote combined requirements like 'and'
104
105
  PROVIDER_REQUIRED_FIELDS.update({
105
106
  ModelProvider.WATSONX: PROVIDER_REQUIRED_FIELDS[ModelProvider.WATSONX] + [{'watsonx_space_id', 'watsonx_project_id', 'watsonx_deployment_id'}],
106
107
  ModelProvider.OLLAMA: PROVIDER_REQUIRED_FIELDS[ModelProvider.OLLAMA] + ['custom_host'],
107
- ModelProvider.BEDROCK: [],
108
+ ModelProvider.BEDROCK: [{'api_key', ('aws_secret_access_key', 'aws_access_key_id')}],
108
109
  })
109
110
 
110
111
  # def env_file_to_model_ProviderConfig(model_name: str, env_file_path: str) -> ProviderConfig | None:
@@ -158,16 +159,34 @@ def _validate_extra_fields(provider: ModelProvider, cfg: ProviderConfig) -> None
158
159
  if cfg.__dict__.get(attr) is not None and attr not in accepted_fields:
159
160
  logger.warning(f"The config option '{attr}' is not used by provider '{provider}'")
160
161
 
162
+ def _check_credential_provided(cred: str | tuple, provided_creds: set) -> bool:
163
+ if isinstance(cred, tuple):
164
+ return all(item in provided_creds for item in cred)
165
+ else:
166
+ return cred in provided_creds
167
+
168
+ def _format_missing_credential(missing_credential: set) -> str:
169
+ parts = []
170
+ for cred in missing_credential:
171
+ if isinstance(cred, tuple):
172
+ formatted = " and ".join(f"{x}" for x in cred)
173
+ parts.append(f"({formatted})")
174
+ else:
175
+ parts.append(f"{cred}")
176
+
177
+ return " or ".join(parts)
178
+
179
+
161
180
  def _validate_requirements(provider: ModelProvider, cfg: ProviderConfig, app_id: str = None) -> None:
162
181
  provided_credentials = set([k for k,v in dict(cfg).items() if v is not None])
163
182
  required_creds = PROVIDER_REQUIRED_FIELDS[provider]
164
183
  missing_credentials = []
165
184
  for cred in required_creds:
166
185
  if isinstance(cred, set):
167
- if not any(c in provided_credentials for c in cred):
186
+ if not any(_check_credential_provided(c, provided_credentials) for c in cred):
168
187
  missing_credentials.append(cred)
169
188
  else:
170
- if cred not in provided_credentials:
189
+ if not _check_credential_provided(cred, provided_credentials):
171
190
  missing_credentials.append(cred)
172
191
 
173
192
  if len(missing_credentials) > 0:
@@ -177,7 +196,7 @@ def _validate_requirements(provider: ModelProvider, cfg: ProviderConfig, app_id:
177
196
  missing_credentials_string = f"Be sure to include the following required fields for provider '{provider}' in the connection '{app_id}':"
178
197
  for cred in missing_credentials:
179
198
  if isinstance(cred, set):
180
- cred_str = ' or '.join(list(cred))
199
+ cred_str = _format_missing_credential(cred)
181
200
  else:
182
201
  cred_str = cred
183
202
  missing_credentials_string += f"\n\t - {cred_str}"
@@ -3,7 +3,7 @@ import typer
3
3
  from ibm_watsonx_orchestrate.cli.commands.partners import partners_controller
4
4
  from ibm_watsonx_orchestrate.cli.commands.partners.offering.partners_offering_command import partners_offering
5
5
 
6
- partners_app = typer.Typer(no_args_is_help=True, hidden=True)
6
+ partners_app = typer.Typer(no_args_is_help=True)
7
7
 
8
8
  partners_app.add_typer(
9
9
  partners_offering,
@@ -48,6 +48,7 @@ def run_compose_lite(
48
48
  experimental_with_ibm_telemetry=False,
49
49
  with_doc_processing=False,
50
50
  with_voice=False,
51
+ with_connections_ui=False,
51
52
  with_langflow=False,
52
53
  ) -> None:
53
54
  EnvService.prepare_clean_env(final_env_file)
@@ -80,6 +81,8 @@ def run_compose_lite(
80
81
  profiles.append("docproc")
81
82
  if with_voice:
82
83
  profiles.append("voice")
84
+ if with_connections_ui:
85
+ profiles.append("connections-ui")
83
86
  if with_langflow:
84
87
  profiles.append("langflow")
85
88
 
@@ -358,11 +361,14 @@ def server_start(
358
361
  '--with-voice', '-v',
359
362
  help='Enable voice controller to interact with the chat via voice channels'
360
363
  ),
364
+ with_connections_ui: bool = typer.Option(
365
+ False,
366
+ '--with-connections-ui', '-c',
367
+ help='Enables connections ui to facilitate OAuth connections and credential management via a UI'),
361
368
  with_langflow: bool = typer.Option(
362
369
  False,
363
370
  '--with-langflow',
364
- help='Enable Langflow UI, available at http://localhost:7861',
365
- hidden=True
371
+ help='Enable Langflow UI, available at http://localhost:7861'
366
372
  ),
367
373
  ):
368
374
  cli_config = Config()
@@ -425,6 +431,7 @@ def server_start(
425
431
  experimental_with_ibm_telemetry=experimental_with_ibm_telemetry,
426
432
  with_doc_processing=with_doc_processing,
427
433
  with_voice=with_voice,
434
+ with_connections_ui=with_connections_ui,
428
435
  with_langflow=with_langflow, env_service=env_service)
429
436
 
430
437
  run_db_migration()
@@ -455,9 +462,10 @@ def server_start(
455
462
  logger.info(f"You can access the observability platform Langfuse at http://localhost:3010, username: orchestrate@ibm.com, password: orchestrate")
456
463
  if with_doc_processing:
457
464
  logger.info(f"Document processing in Flows (Public Preview) has been enabled.")
465
+ if with_connections_ui:
466
+ logger.info("Connections UI can be found at http://localhost:3412/connectors")
458
467
  if with_langflow:
459
468
  logger.info("Langflow has been enabled, the Langflow UI is available at http://localhost:7861")
460
-
461
469
  @server_app.command(name="stop")
462
470
  def server_stop(
463
471
  user_env_file: str = typer.Option(
@@ -47,11 +47,11 @@ def import_toolkit(
47
47
  ] = None,
48
48
  url: Annotated[
49
49
  Optional[str],
50
- typer.Option("--url", "-u", help="The URL of the remote MCP server", hidden=True),
50
+ typer.Option("--url", "-u", help="The URL of the remote MCP server"),
51
51
  ] = None,
52
52
  transport: Annotated[
53
53
  ToolkitTransportKind,
54
- typer.Option("--transport", help="The communication protocol to use for the remote MCP server. Only \"sse\" or \"streamable_http\" supported", hidden=True),
54
+ typer.Option("--transport", help="The communication protocol to use for the remote MCP server. Only \"sse\" or \"streamable_http\" supported"),
55
55
  ] = None,
56
56
  tools: Annotated[
57
57
  Optional[str],
@@ -49,8 +49,28 @@ services:
49
49
  MAX_POOL: 60
50
50
  DEPLOYMENT_MODE: laptop
51
51
  SUFFIXLIST: ${CM_SUFFIXLIST:-[]}
52
+ BACKEND_BASE_URL: http://localhost:3001
53
+ CALLBACK_URL: http://localhost:3001/auth/oauth2/callback
52
54
  ports:
53
55
  - 3001:3001
56
+
57
+ wxo-server-connections-ui:
58
+ image: ${CONNECTIONS_UI_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-connections-ui:${CONNECTIONS_UI_TAG:-latest}
59
+ platform: linux/amd64
60
+ profiles: [connections-ui]
61
+ environment:
62
+ PORT: 3412
63
+ WXO_CONNECTIONS_URL: http://wxo-server-connection-manager:3001
64
+ DEPLOYMENT_MODE: laptop
65
+ WXO_URL: http://localhost:3412
66
+ ENV: production
67
+ WXO_SERVER_URL: http://localhost:4321
68
+ TENANT_ID: ${REACT_APP_TENANT_ID}
69
+ WXO_CHAT_URL: http://localhost:3000
70
+ ports:
71
+ - "3412:3412"
72
+ networks:
73
+ - default
54
74
 
55
75
  ai-gateway:
56
76
  image: ${AI_GATEWAY_REGISTRY:-us.icr.io/watson-orchestrate-private}/ai-gateway:${AI_GATEWAY_TAG:-latest}
@@ -73,6 +93,24 @@ services:
73
93
  environment:
74
94
  JWT_SECRET: ${JWT_SECRET}
75
95
  DEPLOYMENT_PLATFORM: laptop-lite
96
+ CALLBACK_HOST_URL: ${CALLBACK_HOST_URL:-}
97
+ REDIS_URL: redis://wxo-server-redis:6379/0
98
+ entrypoint: >
99
+ sh -c '
100
+ if [ ! -z "$$CALLBACK_HOST_URL" ]; then
101
+ GATEWAY_IP=$$(echo "$$CALLBACK_HOST_URL" | sed "s|http://||" | cut -d: -f1)
102
+ export CALL_BACK_URL="http://$$GATEWAY_IP:8989"
103
+ echo "Auto-configured CALL_BACK_URL: $$CALL_BACK_URL"
104
+ else
105
+ export CALL_BACK_URL="http://wxo-agent-gateway:8989"
106
+ echo "Using fallback CALL_BACK_URL: $$CALL_BACK_URL"
107
+ fi
108
+ if [ $$# -eq 0 ]; then
109
+ exec ./conditional_script.sh
110
+ else
111
+ exec "$$@"
112
+ fi
113
+ '
76
114
 
77
115
  ui:
78
116
  image: ${UI_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-chat:${UITAG:-latest}
@@ -105,6 +143,7 @@ services:
105
143
  STANDALONE: "true"
106
144
  STREAM_TIMEOUT: ${STREAM_TIMEOUT:-120000}
107
145
  WXO_VOICE_URL: http://localhost:9876/v1
146
+ DPS_CACHE_URL: http://localhost:18083
108
147
  command: "./StartServer.sh"
109
148
  ports:
110
149
  - "3000:4002"
@@ -127,13 +166,13 @@ services:
127
166
  AGENTS_OPS_RUNTIME_ENDPOINT: https://frontend-server:443
128
167
  DPI_WO_WDU_SERVER_ENDPOINT: https://wxo-doc-processing-service:8080
129
168
  DPI_RAG_SERVER_ENDPOINT: https://wxo-doc-processing-llm-service:8083
130
- IBM_DPS_CACHE_SERVICE: https://wxo-doc-processing-cache:8080
169
+ IBM_DPS_CACHE_SERVICE: http://wxo-doc-processing-cache:8080
131
170
  DOCPROC_BASE_URL: http://wxo-doc-processing-infra-standalone:9080
132
171
  BUILDER_ASYNC_CALLBACK_ENDPOINT: http://wxo-builder:4025
133
172
  DOCPROC_ENABLED: ${DOCPROC_ENABLED:-false}
134
173
  IS_OBSERVABILITY_FEATURE_ENABLED: "true"
135
174
  ALLOW_INSECURE_TLS: "true"
136
- ENABLE_EDIT_PROMPTS: "false"
175
+ ENABLE_EDIT_PROMPTS: "true"
137
176
  LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
138
177
  ENABLE_EMBED_SCRIPT: "true"
139
178
  command: 'npm start'
@@ -353,6 +392,10 @@ services:
353
392
  ES_HOST: http://elasticsearch:9200
354
393
  ORIGIN_HEADER: "internal"
355
394
  LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
395
+ WATSONX_SERVER: WXO
396
+ EVALUATION_PLATFORM: lite-local
397
+ AGENTOPS_BACKEND_URL: https://frontend-server:443
398
+ OBSERVABILITY_POSTGRES_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@wxo-server-db:5432/wxo_observability
356
399
 
357
400
  wxo-server-worker:
358
401
  image: ${WORKER_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-server-conversation_controller:${WORKER_TAG:-latest}
@@ -453,6 +496,10 @@ services:
453
496
  CPD_VERIFY: ${CPD_VERIFY}
454
497
  CALLBACK_HOST_URL: ${CALLBACK_HOST_URL:-http://wxo-server:4321}
455
498
  LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
499
+ WATSONX_SERVER: WXO
500
+ EVALUATION_PLATFORM: lite-local
501
+ AGENTOPS_BACKEND_URL: https://frontend-server:443
502
+ OBSERVABILITY_POSTGRES_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@wxo-server-db:5432/wxo_observability
456
503
 
457
504
  tools-runtime-manager:
458
505
  image: ${TRM_REGISTRY:-us.icr.io/watson-orchestrate-private}/tools-runtime-manager:${TRM_TAG:-latest}
@@ -813,6 +860,7 @@ services:
813
860
  AUTHORIZATION_URL: ${AUTHORIZATION_URL}
814
861
  WO_AUTH_TYPE: ${WO_AUTH_TYPE}
815
862
  FLOW_CALLBACK_REQUEST_RETRIES: "1"
863
+ DOCPROC_CACHE_SERVER_URL: http://wxo-doc-processing-cache:8080
816
864
  healthcheck:
817
865
  test: curl -k http://localhost:9044/readiness --fail
818
866
  interval: 30s
@@ -858,13 +906,13 @@ services:
858
906
  SERVICE_NAME: wxo-doc-processing-service
859
907
  LOG_LEVEL: info
860
908
  VERIFY_CLIENT_CERT: 0
861
- SERVICE_URL: ${SERVICE_URL:-https://wxo-doc-processing-cache:8080}
909
+ SERVICE_URL: ${SERVICE_URL:-http://wxo-doc-processing-cache:8080}
862
910
  RATE_LIMITING_ENABLED: "false"
863
911
  SHOULD_CACHE_IMAGES: "false"
864
912
  HANDWRITING_ENABLED: "true"
865
913
  WDU_RUNTIME_URL: wdu-runtime:8080
866
914
  WDU_TIMEOUT_SECS: "180"
867
- IBM_DPS_CACHE_SERVICE: https://wxo-doc-processing-cache:8080
915
+ IBM_DPS_CACHE_SERVICE: http://wxo-doc-processing-cache:8080
868
916
  profiles:
869
917
  - docproc
870
918
  depends_on:
@@ -959,6 +1007,8 @@ services:
959
1007
  VERIFY_CLIENT_CERT: 1
960
1008
  # S3_USE_SSL: false
961
1009
  # S3_VERIFY_CERT: false
1010
+ ISTIO_ENABLED: true
1011
+ IS_ADK_ENV: true
962
1012
  profiles:
963
1013
  - docproc
964
1014
  depends_on:
@@ -971,7 +1021,7 @@ services:
971
1021
  # volumes:
972
1022
  # - ./docker/wo_doc_processing_rag_base/etc/certs:/etc/certs
973
1023
  healthcheck:
974
- test: ["CMD-SHELL", "curl -fk https://localhost:8080/ping"]
1024
+ test: ["CMD-SHELL", "curl -fk http://localhost:8080/ping"]
975
1025
  interval: 30s
976
1026
  timeout: 30s
977
1027
  retries: 10
@@ -1030,7 +1080,7 @@ services:
1030
1080
  LOG_LEVEL: info
1031
1081
  WATSONX_API_ENDPOINT: ${WATSONX_URL:-https://us-south.ml.cloud.ibm.com}
1032
1082
  WXO_SERVER_BASE_URL : http://wxo-server:4321
1033
- IBM_DPS_CACHE_SERVICE: 'wxo-doc-processing-cache:8080'
1083
+ IBM_DPS_CACHE_SERVICE: 'http://wxo-doc-processing-cache:8080'
1034
1084
  profiles:
1035
1085
  - docproc
1036
1086
  depends_on:
@@ -58,41 +58,44 @@ REGISTRY_URL=
58
58
 
59
59
 
60
60
 
61
- SERVER_TAG=09-09-2025-2164abd
61
+ SERVER_TAG=17-10-2025-8a9aff2
62
62
  SERVER_REGISTRY=
63
63
 
64
- WORKER_TAG=09-09-2025-2164abd
64
+ WORKER_TAG=17-10-2025-8a9aff2
65
65
  WORKER_REGISTRY=
66
66
 
67
67
  AI_GATEWAY_TAG=20-08-2025-9ed6d40
68
68
  AI_GATEWAY_REGISTRY=
69
69
 
70
- AGENT_GATEWAY_TAG=29-07-2025
70
+ AGENT_GATEWAY_TAG=16-09-2025-115ef29
71
71
  AGENT_GATEWAY_REGISTRY=
72
72
 
73
73
  DB_REGISTRY=
74
74
  # If you build multiarch set all three of these to the same, we have a pr against main
75
75
  # to not have this separation, but we can merge it later
76
- DBTAG=09-09-2025-fb76647
77
- AMDDBTAG=09-09-2025-fb76647
78
- ARM64DBTAG=09-09-2025-fb76647
76
+ DBTAG=17-09-2025-8a9aff2
77
+ AMDDBTAG=17-09-2025-8a9aff2
78
+ ARM64DBTAG=17-09-2025-8a9aff2
79
79
 
80
80
  UI_REGISTRY=
81
- UITAG=29-08-2025
81
+ UITAG=19-09-2025-188b5fe
82
82
 
83
83
  CM_REGISTRY=
84
- CM_TAG=24-07-2025
84
+ CM_TAG=16-09-2025-e33b344
85
85
 
86
- TRM_TAG=09-09-2025-6e9d73d
86
+ CONNECTIONS_UI_REGISTRY=
87
+ CONNECTIONS_UI_TAG=15-09-2025-98aa9da
88
+
89
+ TRM_TAG=15-09-2025-228f397
87
90
  TRM_REGISTRY=
88
91
 
89
- TR_TAG=09-09-2025-6e9d73d
92
+ TR_TAG=15-09-2025-228f397
90
93
  TR_REGISTRY=
91
94
 
92
- BUILDER_TAG=12-09-2025-e441686
95
+ BUILDER_TAG=19-09-2025-4ab5c88
93
96
  BUILDER_REGISTRY=
94
97
 
95
- FLOW_RUNTIME_TAG=15-09-2025-2e8478c
98
+ FLOW_RUNTIME_TAG=15-09-2025-c208dc5
96
99
  FLOW_RUMTIME_REGISTRY=
97
100
 
98
101
 
@@ -118,10 +121,10 @@ LANGFLOW_IMAGE=
118
121
  WDU_TAG=2.7.0
119
122
  WDU_REGISTRY=
120
123
 
121
- DOCPROC_DPS_TAG=20250904-181617-287-1ca2bf1
122
- DOCPROC_LLMSERVICE_TAG=20250904-main-136-b94360e
123
- DOCPROC_CACHE_TAG=20250902-master-83-748d456
124
- DOCPROC_DPI_TAG=20250905-092707-286-8c6b8f92
124
+ DOCPROC_DPS_TAG=20250910-165658-290-c566031
125
+ DOCPROC_LLMSERVICE_TAG=20250915-main-139-7a36ad3
126
+ DOCPROC_CACHE_TAG=20250916-master-86-454157f
127
+ DOCPROC_DPI_TAG=20250910-214413-288-a348dfd9
125
128
  DOCPROC_REGISTRY=
126
129
 
127
130
  # END -- IMAGE REGISTRIES AND TAGS
@@ -8,6 +8,8 @@ import logging
8
8
  import inspect
9
9
  from typing import Callable, Optional, Sequence
10
10
  from pydantic import BaseModel
11
+
12
+ from ...agent_builder.models.types import ListVirtualModel
11
13
  from ..types import extract_node_spec, UserNodeSpec, FlowSpec
12
14
 
13
15
  from .flow import FlowFactory, Flow
@@ -34,7 +36,9 @@ def flow(*args,
34
36
  input_schema: type[BaseModel] | None = None,
35
37
  output_schema: type[BaseModel] | None = None,
36
38
  initiators: Sequence[str] = (),
37
- schedulable: bool = False):
39
+ schedulable: bool = False,
40
+ llm_model: str|ListVirtualModel|None=None,
41
+ agent_conversation_memory_turns_limit: int|None=None):
38
42
  """Decorator to mark a function as a flow model builder."""
39
43
 
40
44
  def decorator(func: Callable):
@@ -60,7 +64,9 @@ def flow(*args,
60
64
  input_schema = input_schema,
61
65
  output_schema = output_schema,
62
66
  initiators = initiators,
63
- schedulable = schedulable)
67
+ schedulable = schedulable,
68
+ llm_model = llm_model,
69
+ agent_conversation_memory_turns_limit = agent_conversation_memory_turns_limit)
64
70
 
65
71
  # logger.info("Creating flow model: %s", a_model.spec.name)
66
72
 
@@ -21,6 +21,7 @@ from typing_extensions import Self
21
21
  from pydantic import BaseModel, Field, SerializeAsAny, create_model, TypeAdapter
22
22
  import yaml
23
23
  from ibm_watsonx_orchestrate.agent_builder.tools.python_tool import PythonTool
24
+ from ibm_watsonx_orchestrate.agent_builder.models.types import ListVirtualModel
24
25
  from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
25
26
  from ibm_watsonx_orchestrate.client.tools.tempus_client import TempusClient
26
27
  from ibm_watsonx_orchestrate.client.utils import instantiate_client
@@ -84,6 +85,21 @@ class Flow(Node):
84
85
  # get Tool Client
85
86
  self._tool_client = instantiate_client(ToolClient)
86
87
 
88
+ # set llm_model to use for the flow if any
89
+ llm_model = kwargs.get("llm_model")
90
+ if llm_model:
91
+ if isinstance(llm_model, ListVirtualModel):
92
+ self.metadata["llm_model"] = llm_model.name
93
+ elif isinstance(llm_model, str):
94
+ self.metadata["llm_model"] = llm_model
95
+ else:
96
+ raise AssertionError(f"flow llm_model should be either a str or ListVirtualModel")
97
+
98
+ # set agent_conversation_memory_turns_limit for the flow if any
99
+ agent_conversation_memory_turns_limit = kwargs.get("agent_conversation_memory_turns_limit")
100
+ if agent_conversation_memory_turns_limit:
101
+ self.metadata["agent_conversation_memory_turns_limit"] = agent_conversation_memory_turns_limit
102
+
87
103
  def _find_topmost_flow(self) -> Self:
88
104
  if self.parent:
89
105
  return self.parent._find_topmost_flow()
@@ -519,7 +535,9 @@ class Flow(Node):
519
535
  fields: type[BaseModel]| None = None,
520
536
  description: str | None = None,
521
537
  input_map: DataMap = None,
522
- enable_hw: bool = False) -> tuple[DocExtNode, type[BaseModel]]:
538
+ enable_hw: bool = False,
539
+ min_confidence: float = 0, # Setting a small value because htil is not supported for pro code.
540
+ review_fields: List[str] = []) -> tuple[DocExtNode, type[BaseModel]]:
523
541
 
524
542
  if name is None :
525
543
  raise ValueError("name must be provided.")
@@ -544,7 +562,9 @@ class Flow(Node):
544
562
  output_schema_object = output_schema_obj,
545
563
  config=doc_ext_config,
546
564
  version=version,
547
- enable_hw=enable_hw
565
+ enable_hw=enable_hw,
566
+ min_confidence=min_confidence,
567
+ review_fields=review_fields
548
568
  )
549
569
  node = DocExtNode(spec=task_spec)
550
570
 
@@ -609,7 +629,8 @@ class Flow(Node):
609
629
  input_map: DataMap = None,
610
630
  document_structure: bool = False,
611
631
  kvp_schemas: list[DocProcKVPSchema] = None,
612
- enable_hw: bool = False) -> DocProcNode:
632
+ enable_hw: bool = False,
633
+ kvp_model_name: str | None = None) -> DocProcNode:
613
634
 
614
635
  if name is None :
615
636
  raise ValueError("name must be provided.")
@@ -635,7 +656,8 @@ class Flow(Node):
635
656
  document_structure=document_structure,
636
657
  plain_text_reading_order=plain_text_reading_order,
637
658
  enable_hw=enable_hw,
638
- kvp_schemas=kvp_schemas
659
+ kvp_schemas=kvp_schemas,
660
+ kvp_model_name=kvp_model_name
639
661
  )
640
662
 
641
663
  node = DocProcNode(spec=task_spec)
@@ -1201,7 +1223,7 @@ class CompiledFlow(BaseModel):
1201
1223
  dumped = self.flow.to_json()
1202
1224
  with open(file, 'w') as f:
1203
1225
  if file.endswith(".yaml") or file.endswith(".yml"):
1204
- yaml.dump(dumped, f)
1226
+ yaml.dump(dumped, f, allow_unicode=True)
1205
1227
  elif file.endswith(".json"):
1206
1228
  json.dump(dumped, f, indent=2)
1207
1229
  else:
@@ -1223,7 +1245,9 @@ class FlowFactory(BaseModel):
1223
1245
  initiators: Sequence[str]|None=None,
1224
1246
  input_schema: type[BaseModel]|None=None,
1225
1247
  output_schema: type[BaseModel]|None=None,
1226
- schedulable: bool=False) -> Flow:
1248
+ schedulable: bool=False,
1249
+ llm_model: str|ListVirtualModel|None=None,
1250
+ agent_conversation_memory_turns_limit: int|None = None) -> Flow:
1227
1251
  if isinstance(name, Callable):
1228
1252
  flow_spec = getattr(name, "__flow_spec__", None)
1229
1253
  if not flow_spec:
@@ -1248,7 +1272,7 @@ class FlowFactory(BaseModel):
1248
1272
  schedulable=schedulable,
1249
1273
  )
1250
1274
 
1251
- return Flow(spec = flow_spec)
1275
+ return Flow(spec = flow_spec, llm_model=llm_model, agent_conversation_memory_turns_limit=agent_conversation_memory_turns_limit)
1252
1276
 
1253
1277
 
1254
1278
  class FlowControl(Node):
@@ -23,7 +23,7 @@ class Node(BaseModel):
23
23
  exclude_unset=True, exclude_none=True, by_alias=True)
24
24
  with open(file, 'w', encoding="utf-8") as f:
25
25
  if file.endswith('.yaml') or file.endswith('.yml'):
26
- yaml.dump(dumped, f)
26
+ yaml.dump(dumped, f, allow_unicode=True)
27
27
  elif file.endswith('.json'):
28
28
  json.dump(dumped, f, indent=2)
29
29
  else: