ibm-watsonx-orchestrate 1.9.0b1__tar.gz → 1.9.0b2__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 (127) hide show
  1. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/PKG-INFO +1 -1
  2. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/__init__.py +1 -1
  3. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +2 -2
  4. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/models/types.py +5 -0
  5. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/tools/types.py +5 -3
  6. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +5 -2
  7. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py +103 -20
  8. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +17 -13
  9. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +1 -1
  10. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/connections/connections_client.py +14 -2
  11. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py +5 -3
  12. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/compose-lite.yml +8 -1
  13. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/default.env +11 -10
  14. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +2 -2
  15. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/flows/flow.py +6 -6
  16. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/types.py +109 -17
  17. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/utils.py +7 -3
  18. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/.gitignore +0 -0
  19. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/LICENSE +0 -0
  20. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/pyproject.toml +0 -0
  21. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/__init__.py +0 -0
  22. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +0 -0
  23. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/agent.py +0 -0
  24. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py +0 -0
  25. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py +0 -0
  26. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/types.py +0 -0
  27. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +0 -0
  28. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +0 -0
  29. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +0 -0
  30. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +0 -0
  31. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/connections/connections.py +0 -0
  32. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/connections/types.py +0 -0
  33. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py +0 -0
  34. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py +0 -0
  35. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py +0 -0
  36. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +0 -0
  37. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/models/__init__.py +0 -0
  38. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py +0 -0
  39. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/types.py +0 -0
  40. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/tools/__init__.py +0 -0
  41. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +0 -0
  42. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +0 -0
  43. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +0 -0
  44. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +0 -0
  45. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/agent_builder/utils/__init__.py +0 -0
  46. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/__init__.py +0 -0
  47. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/__init__.py +0 -0
  48. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +0 -0
  49. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +0 -0
  50. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py +0 -0
  51. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py +0 -0
  52. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/channels/types.py +0 -0
  53. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py +0 -0
  54. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +0 -0
  55. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +0 -0
  56. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +0 -0
  57. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py +0 -0
  58. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py +0 -0
  59. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +0 -0
  60. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +0 -0
  61. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/environment/types.py +0 -0
  62. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +0 -0
  63. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +0 -0
  64. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +0 -0
  65. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +0 -0
  66. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/login/login_command.py +0 -0
  67. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/models/models_command.py +0 -0
  68. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +0 -0
  69. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/server/server_command.py +0 -0
  70. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/server/types.py +0 -0
  71. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/settings/__init__.py +0 -0
  72. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py +0 -0
  73. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py +0 -0
  74. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py +0 -0
  75. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py +0 -0
  76. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py +0 -0
  77. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +0 -0
  78. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +0 -0
  79. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py +0 -0
  80. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/commands/tools/types.py +0 -0
  81. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/config.py +0 -0
  82. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/init_helper.py +0 -0
  83. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/cli/main.py +0 -0
  84. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/__init__.py +0 -0
  85. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/agents/agent_client.py +0 -0
  86. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +0 -0
  87. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/agents/external_agent_client.py +0 -0
  88. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/analytics/__init__.py +0 -0
  89. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/analytics/llm/__init__.py +0 -0
  90. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py +0 -0
  91. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/base_api_client.py +0 -0
  92. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/base_service_instance.py +0 -0
  93. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/client.py +0 -0
  94. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/client_errors.py +0 -0
  95. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/connections/__init__.py +0 -0
  96. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/connections/utils.py +0 -0
  97. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/credentials.py +0 -0
  98. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py +0 -0
  99. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/local_service_instance.py +0 -0
  100. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/model_policies/__init__.py +0 -0
  101. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +0 -0
  102. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/models/__init__.py +0 -0
  103. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/models/models_client.py +0 -0
  104. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/service_instance.py +0 -0
  105. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py +0 -0
  106. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/tools/tempus_client.py +0 -0
  107. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/tools/tool_client.py +0 -0
  108. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/client/utils.py +0 -0
  109. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +0 -0
  110. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl +0 -0
  111. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz +0 -0
  112. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/start-up.sh +0 -0
  113. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/docker/tempus/common-config.yaml +0 -0
  114. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/__init__.py +0 -0
  115. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/data_map.py +0 -0
  116. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/flows/constants.py +0 -0
  117. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +0 -0
  118. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/flows/events.py +0 -0
  119. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/flow_builder/node.py +0 -0
  120. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/run/__init__.py +0 -0
  121. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/run/connections.py +0 -0
  122. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/utils/__init__.py +0 -0
  123. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/utils/exceptions.py +0 -0
  124. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/utils/logging/__init__.py +0 -0
  125. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/utils/logging/logger.py +0 -0
  126. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/src/ibm_watsonx_orchestrate/utils/logging/logging.yaml +0 -0
  127. {ibm_watsonx_orchestrate-1.9.0b1 → ibm_watsonx_orchestrate-1.9.0b2}/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.9.0b1
3
+ Version: 1.9.0b2
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.9.0b1"
8
+ __version__ = "1.9.0b2"
9
9
 
10
10
 
11
11
 
@@ -86,11 +86,10 @@ class GenerationConfiguration(BaseModel):
86
86
  {
87
87
  "model_id": "meta-llama/llama-3-1-70b-instruct",
88
88
  "prompt_instruction": "When the documents are in different languages, you should respond in english.",
89
- "retrieval_confidence_threshold": "Lowest",
90
89
  "generated_response_length": "Moderate",
91
- "response_confidence_threshold": "Low",
92
90
  "display_text_no_results_found": "no docs found",
93
91
  "display_text_connectivity_issue": "conn failed",
92
+ "idk_message": "I dont know",
94
93
  }
95
94
  """
96
95
 
@@ -99,6 +98,7 @@ class GenerationConfiguration(BaseModel):
99
98
  generated_response_length: Optional[GeneratedResponseLength] = None
100
99
  display_text_no_results_found: Optional[str] = None
101
100
  display_text_connectivity_issue: Optional[str] = None
101
+ idk_message: Optional[str] = None
102
102
 
103
103
  class FieldMapping(BaseModel):
104
104
  """
@@ -87,6 +87,11 @@ class ProviderConfig(BaseModel):
87
87
  azure_entra_tenant_id: Optional[str] = Field(None, alias="azureEntraTenantId")
88
88
  azure_ad_token: Optional[str] = Field(None, alias="azureAdToken")
89
89
  azure_model_name: Optional[str] = Field(None, alias="azureModelName")
90
+ azure_inference_deployment_name: Optional[str] = Field(None, alias="azureDeploymentName")
91
+ azure_inference_api_version: Optional[str] = Field(None, alias="azureApiVersion")
92
+ azure_inference_extra_params: Optional[str] = Field(None, alias="azureExtraParams")
93
+ azure_inference_foundry_url: Optional[str] = Field(None, alias="azureFoundryUrl")
94
+
90
95
 
91
96
  # Workers AI specific
92
97
  workers_ai_account_id: Optional[str] = Field(None, alias="workersAiAccountId")
@@ -36,6 +36,7 @@ class JsonSchemaObject(BaseModel):
36
36
  anyOf: Optional[List['JsonSchemaObject']] = None
37
37
  in_field: Optional[Literal['query', 'header', 'path', 'body']] = Field(None, alias='in')
38
38
  aliasName: str | None = None
39
+ wrap_data: Optional[bool] = True
39
40
  "Runtime feature where the sdk can provide the original name of a field before prefixing"
40
41
 
41
42
  @model_validator(mode='after')
@@ -48,9 +49,9 @@ class JsonSchemaObject(BaseModel):
48
49
  class ToolRequestBody(BaseModel):
49
50
  model_config = ConfigDict(extra='allow')
50
51
 
51
- type: Literal['object']
52
- properties: Dict[str, JsonSchemaObject]
53
- required: Optional[List[str]] = None
52
+ type: Literal['object', 'string']
53
+ properties: Optional[Dict[str, JsonSchemaObject]] = {}
54
+ required: Optional[List[str]] = []
54
55
 
55
56
 
56
57
  class ToolResponseBody(BaseModel):
@@ -186,6 +187,7 @@ class ToolBinding(BaseModel):
186
187
 
187
188
  class ToolSpec(BaseModel):
188
189
  name: str
190
+ id: str | None = None
189
191
  display_name: str | None = None
190
192
  description: str
191
193
  permission: ToolPermission
@@ -404,8 +404,11 @@ def list_connections(environment: ConnectionEnvironment | None, verbose: bool =
404
404
  "❌"
405
405
  )
406
406
  continue
407
-
408
- connection_type = get_connection_type(security_scheme=conn.security_scheme, auth_type=conn.auth_type)
407
+
408
+ try:
409
+ connection_type = get_connection_type(security_scheme=conn.security_scheme, auth_type=conn.auth_type)
410
+ except:
411
+ connection_type = conn.auth_type
409
412
 
410
413
  if conn.environment == ConnectionEnvironment.DRAFT:
411
414
  draft_table.add_row(
@@ -10,10 +10,12 @@ from rich.progress import Progress, SpinnerColumn, TextColumn
10
10
  from requests import ConnectionError
11
11
  from typing import List
12
12
  from ibm_watsonx_orchestrate.client.base_api_client import ClientAPIException
13
+ from ibm_watsonx_orchestrate.agent_builder.knowledge_bases.types import KnowledgeBaseSpec
13
14
  from ibm_watsonx_orchestrate.agent_builder.tools import ToolSpec, ToolPermission, ToolRequestBody, ToolResponseBody
14
15
  from ibm_watsonx_orchestrate.cli.commands.agents.agents_controller import AgentsController, AgentKind, SpecVersion
15
16
  from ibm_watsonx_orchestrate.agent_builder.agents.types import DEFAULT_LLM, BaseAgentSpec
16
17
  from ibm_watsonx_orchestrate.client.agents.agent_client import AgentClient
18
+ from ibm_watsonx_orchestrate.client.knowledge_bases.knowledge_base_client import KnowledgeBaseClient
17
19
  from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
18
20
  from ibm_watsonx_orchestrate.client.copilot.cpe.copilot_cpe_client import CPEClient
19
21
  from ibm_watsonx_orchestrate.client.utils import instantiate_client
@@ -56,10 +58,16 @@ def _get_incomplete_tool_from_name(tool_name: str) -> dict:
56
58
  "input_schema": input_schema, "output_schema": output_schema})
57
59
  return spec.model_dump()
58
60
 
61
+
59
62
  def _get_incomplete_agent_from_name(agent_name: str) -> dict:
60
63
  spec = BaseAgentSpec(**{"name": agent_name, "description": agent_name, "kind": AgentKind.NATIVE})
61
64
  return spec.model_dump()
62
65
 
66
+ def _get_incomplete_knowledge_base_from_name(kb_name: str) -> dict:
67
+ spec = KnowledgeBaseSpec(**{"name": kb_name, "description": kb_name})
68
+ return spec.model_dump()
69
+
70
+
63
71
  def _get_tools_from_names(tool_names: List[str]) -> List[dict]:
64
72
  if not len(tool_names):
65
73
  return []
@@ -115,6 +123,34 @@ def _get_agents_from_names(collaborators_names: List[str]) -> List[dict]:
115
123
 
116
124
  return agents
117
125
 
126
+ def _get_knowledge_bases_from_names(kb_names: List[str]) -> List[dict]:
127
+ if not len(kb_names):
128
+ return []
129
+
130
+ kb_client = get_knowledge_bases_client()
131
+
132
+ try:
133
+ with _get_progress_spinner() as progress:
134
+ task = progress.add_task(description="Fetching Knowledge Bases", total=None)
135
+ knowledge_bases = kb_client.get_by_names(kb_names)
136
+ found_kbs = {kb.get("name") for kb in knowledge_bases}
137
+ progress.remove_task(task)
138
+ progress.refresh()
139
+ for kb_name in kb_names:
140
+ if kb_name not in found_kbs:
141
+ logger.warning(
142
+ f"Failed to find knowledge base named '{kb_name}'. Falling back to incomplete knowledge base definition. Copilot performance maybe effected.")
143
+ knowledge_bases.append(_get_incomplete_knowledge_base_from_name(kb_name))
144
+ except ConnectionError:
145
+ logger.warning(
146
+ f"Failed to fetch knowledge bases from server. For optimal results please start the server and import the relevant knowledge bases {', '.join(kb_names)}.")
147
+ knowledge_bases = []
148
+ for kb_name in kb_names:
149
+ knowledge_bases.append(_get_incomplete_knowledge_base_from_name(kb_name))
150
+
151
+ return knowledge_bases
152
+
153
+
118
154
  def get_cpe_client() -> CPEClient:
119
155
  url = os.getenv('CPE_URL', "http://localhost:8081")
120
156
  return instantiate_client(client=CPEClient, url=url)
@@ -124,6 +160,10 @@ def get_tool_client(*args, **kwargs):
124
160
  return instantiate_client(ToolClient)
125
161
 
126
162
 
163
+ def get_knowledge_bases_client(*args, **kwargs):
164
+ return instantiate_client(KnowledgeBaseClient)
165
+
166
+
127
167
  def get_native_client(*args, **kwargs):
128
168
  return instantiate_client(AgentClient)
129
169
 
@@ -144,18 +184,34 @@ def gather_utterances(max: int) -> list[str]:
144
184
  return utterances
145
185
 
146
186
 
147
- def get_deployed_tools_agents():
187
+ def get_knowledge_bases(client):
188
+ with _get_progress_spinner() as progress:
189
+ task = progress.add_task(description="Fetching Knowledge Bases", total=None)
190
+ try:
191
+ knowledge_bases = client.get()
192
+ progress.remove_task(task)
193
+ except ConnectionError:
194
+ knowledge_bases = []
195
+ progress.remove_task(task)
196
+ progress.refresh()
197
+ logger.warning("Failed to contact wxo server to fetch knowledge_bases. Proceeding with empty agent list")
198
+ return knowledge_bases
199
+
200
+
201
+ def get_deployed_tools_agents_and_knowledge_bases():
148
202
  all_tools = find_tools_by_description(tool_client=get_tool_client(), description=None)
149
203
  # TODO: this brings only the "native" agents. Can external and assistant agents also be collaborators?
150
204
  all_agents = find_agents(agent_client=get_native_client())
151
- return {"tools": all_tools, "agents": all_agents}
205
+ all_knowledge_bases = get_knowledge_bases(get_knowledge_bases_client())
206
+
207
+ return {"tools": all_tools, "collaborators": all_agents, "knowledge_bases": all_knowledge_bases}
152
208
 
153
209
 
154
210
  def pre_cpe_step(cpe_client):
155
- tools_agents = get_deployed_tools_agents()
211
+ tools_agents_and_knowledge_bases = get_deployed_tools_agents_and_knowledge_bases()
156
212
  user_message = ""
157
213
  with _get_progress_spinner() as progress:
158
- task = progress.add_task(description="Initilizing Prompt Engine", total=None)
214
+ task = progress.add_task(description="Initializing Prompt Engine", total=None)
159
215
  response = cpe_client.submit_pre_cpe_chat(user_message=user_message)
160
216
  progress.remove_task(task)
161
217
 
@@ -165,15 +221,26 @@ def pre_cpe_step(cpe_client):
165
221
  rich.print('\n🤖 Copilot: ' + response["message"])
166
222
  user_message = Prompt.ask("\n👤 You").strip()
167
223
  message_content = {"user_message": user_message}
168
- elif "description" in response and response["description"]:
224
+ elif "description" in response and response["description"]: # after we have a description, we pass the all tools
169
225
  res["description"] = response["description"]
170
- message_content = tools_agents
171
- elif "metadata" in response:
172
- res["agent_name"] = response["metadata"]["agent_name"]
173
- res["agent_style"] = response["metadata"]["style"]
174
- res["tools"] = [t for t in tools_agents["tools"] if t["name"] in response["metadata"]["tools"]]
175
- res["collaborators"] = [a for a in tools_agents["agents"] if
176
- a["name"] in response["metadata"]["collaborators"]]
226
+ message_content = {"tools": tools_agents_and_knowledge_bases['tools']}
227
+ elif "tools" in response and response[
228
+ 'tools'] is not None: # after tools were selected, we pass all collaborators
229
+ res["tools"] = [t for t in tools_agents_and_knowledge_bases["tools"] if
230
+ t["name"] in response["tools"]]
231
+ message_content = {"collaborators": tools_agents_and_knowledge_bases['collaborators']}
232
+ elif "collaborators" in response and response[
233
+ 'collaborators'] is not None: # after we have collaborators, we pass all knowledge bases
234
+ res["collaborators"] = [a for a in tools_agents_and_knowledge_bases["collaborators"] if
235
+ a["name"] in response["collaborators"]]
236
+ message_content = {"knowledge_bases": tools_agents_and_knowledge_bases['knowledge_bases']}
237
+ elif "knowledge_bases" in response and response['knowledge_bases'] is not None: # after we have knowledge bases, we pass selected=True to mark that all selection were done
238
+ res["knowledge_bases"] = [a for a in tools_agents_and_knowledge_bases["knowledge_bases"] if
239
+ a["name"] in response["knowledge_bases"]]
240
+ message_content = {"selected": True}
241
+ elif "agent_name" in response and response['agent_name'] is not None: # once we have a name and style, this phase has ended
242
+ res["agent_name"] = response["agent_name"]
243
+ res["agent_style"] = response["agent_style"]
177
244
  return res
178
245
  with _get_progress_spinner() as progress:
179
246
  task = progress.add_task(description="Thinking...", total=None)
@@ -194,6 +261,7 @@ def find_tools_by_description(description, tool_client):
194
261
  logger.warning("Failed to contact wxo server to fetch tools. Proceeding with empty tool list")
195
262
  return tools
196
263
 
264
+
197
265
  def find_agents(agent_client):
198
266
  with _get_progress_spinner() as progress:
199
267
  task = progress.add_task(description="Fetching Agents", total=None)
@@ -279,16 +347,25 @@ def prompt_tune(agent_spec: str, output_file: str | None, samples_file: str | No
279
347
  tools = _get_tools_from_names(agent.tools)
280
348
 
281
349
  collaborators = _get_agents_from_names(agent.collaborators)
350
+
351
+ knowledge_bases = _get_knowledge_bases_from_names(agent.knowledge_base)
282
352
  try:
283
- new_prompt = talk_to_cpe(cpe_client=client, samples_file=samples_file,
284
- context_data={"initial_instruction": instr, 'tools': tools, 'description': agent.description,
285
- "collaborators": collaborators})
353
+ new_prompt = talk_to_cpe(cpe_client=client,
354
+ samples_file=samples_file,
355
+ context_data={
356
+ "initial_instruction": instr,
357
+ 'tools': tools,
358
+ 'description': agent.description,
359
+ "collaborators": collaborators,
360
+ "knowledge_bases": knowledge_bases
361
+ })
286
362
  except ConnectionError:
287
363
  logger.error(
288
364
  "Failed to connect to Copilot server. Please ensure Copilot is running via `orchestrate copilot start`")
289
365
  sys.exit(1)
290
366
  except ClientAPIException:
291
- logger.error("An unexpected server error has occur with in the Copilot server. Please check the logs via `orchestrate server logs`")
367
+ logger.error(
368
+ "An unexpected server error has occur with in the Copilot server. Please check the logs via `orchestrate server logs`")
292
369
  sys.exit(1)
293
370
 
294
371
  if new_prompt:
@@ -316,17 +393,21 @@ def create_agent(output_file: str, llm: str, samples_file: str | None, dry_run_f
316
393
  "Failed to connect to Copilot server. Please ensure Copilot is running via `orchestrate copilot start`")
317
394
  sys.exit(1)
318
395
  except ClientAPIException:
319
- logger.error("An unexpected server error has occur with in the Copilot server. Please check the logs via `orchestrate server logs`")
396
+ logger.error(
397
+ "An unexpected server error has occur with in the Copilot server. Please check the logs via `orchestrate server logs`")
320
398
  sys.exit(1)
321
-
399
+
322
400
  tools = res["tools"]
323
401
  collaborators = res["collaborators"]
402
+ knowledge_bases = res["knowledge_bases"]
324
403
  description = res["description"]
325
404
  agent_name = res["agent_name"]
326
405
  agent_style = res["agent_style"]
327
406
 
328
407
  # 4. discuss the instructions
329
- instructions = talk_to_cpe(cpe_client, samples_file, {'description': description, 'tools': tools, 'collaborators': collaborators})
408
+ instructions = talk_to_cpe(cpe_client, samples_file,
409
+ {'description': description, 'tools': tools, 'collaborators': collaborators,
410
+ 'knowledge_bases': knowledge_bases})
330
411
 
331
412
  # 6. create and save the agent
332
413
  llm = llm if llm else DEFAULT_LLM
@@ -334,7 +415,9 @@ def create_agent(output_file: str, llm: str, samples_file: str | None, dry_run_f
334
415
  'style': agent_style,
335
416
  'tools': [t['name'] for t in tools],
336
417
  'llm': llm,
337
- 'collaborators': [c['name'] for c in collaborators]
418
+ 'collaborators': [c['name'] for c in collaborators],
419
+ 'knowledge_base': [k['name'] for k in knowledge_bases]
420
+ # generate_agent_spec expects knowledge_base and not knowledge_bases
338
421
  }
339
422
  agent = AgentsController.generate_agent_spec(agent_name, AgentKind.NATIVE, description, **params)
340
423
  agent.instructions = instructions
@@ -10,19 +10,23 @@ _BASIC_PROVIDER_CONFIG_KEYS = {'provider', 'api_key', 'custom_host', 'url_to_fet
10
10
 
11
11
  PROVIDER_EXTRA_PROPERTIES_LUT = {
12
12
  ModelProvider.ANTHROPIC: {'anthropic_beta', 'anthropic_version'},
13
- # ModelProvider.AZURE_AI: {
14
- # 'azure_resource_name',
15
- # 'azure_deployment_id',
16
- # 'azure_api_version',
17
- # 'ad_auth',
18
- # 'azure_auth_mode',
19
- # 'azure_managed_client_id',
20
- # 'azure_entra_client_id',
21
- # 'azure_entra_client_secret',
22
- # 'azure_entra_tenant_id',
23
- # 'azure_ad_token',
24
- # 'azure_model_name'
25
- # },
13
+ ModelProvider.AZURE_AI: {
14
+ 'azure_resource_name',
15
+ 'azure_deployment_id',
16
+ 'azure_api_version',
17
+ 'ad_auth',
18
+ 'azure_auth_mode',
19
+ 'azure_managed_client_id',
20
+ 'azure_entra_client_id',
21
+ 'azure_entra_client_secret',
22
+ 'azure_entra_tenant_id',
23
+ 'azure_ad_token',
24
+ 'azure_model_name',
25
+ 'azure_inference_deployment_name',
26
+ 'azure_inference_api_version',
27
+ 'azure_inference_extra_params',
28
+ 'azure_inference_foundry_url'
29
+ },
26
30
  ModelProvider.AZURE_OPENAI: {
27
31
  'azure_resource_name',
28
32
  'azure_deployment_id',
@@ -590,7 +590,7 @@ class ToolsController:
590
590
  for tool in tools:
591
591
  tools_list.append(json.loads(tool.dumps_spec()))
592
592
 
593
- rich.print(JSON(json.dumps(tools_list, indent=4)))
593
+ rich.print_json(json.dumps(tools_list, indent=4))
594
594
  else:
595
595
  table = rich.table.Table(show_header=True, header_style="bold white", show_lines=True)
596
596
  column_args = {
@@ -3,6 +3,7 @@ from typing import List
3
3
  from ibm_cloud_sdk_core.authenticators import MCSPAuthenticator
4
4
  from pydantic import BaseModel, ValidationError
5
5
  from typing import Optional
6
+ from enum import Enum
6
7
 
7
8
  from ibm_watsonx_orchestrate.client.base_api_client import BaseAPIClient, ClientAPIException
8
9
  from ibm_watsonx_orchestrate.agent_builder.connections.types import ConnectionEnvironment, ConnectionPreference, ConnectionAuthType, ConnectionSecurityScheme, IdpConfigData, AppConfigData, ConnectionType
@@ -12,12 +13,23 @@ import logging
12
13
  logger = logging.getLogger(__name__)
13
14
 
14
15
 
16
+ class FetchConfigAuthTypes(str, Enum):
17
+ BASIC_AUTH = ConnectionType.BASIC_AUTH.value
18
+ BEARER_TOKEN = ConnectionType.BEARER_TOKEN.value
19
+ API_KEY_AUTH = ConnectionType.API_KEY_AUTH.value
20
+ OAUTH2_AUTH_CODE = ConnectionType.OAUTH2_AUTH_CODE.value
21
+ OAUTH2_IMPLICIT = 'oauth2_implicit'
22
+ OAUTH2_PASSWORD = 'oauth2_password'
23
+ OAUTH2_CLIENT_CREDS = ConnectionType.OAUTH2_CLIENT_CREDS.value
24
+ OAUTH_ON_BEHALF_OF_FLOW = ConnectionType.OAUTH_ON_BEHALF_OF_FLOW.value
25
+ KEY_VALUE = ConnectionType.KEY_VALUE.value
26
+
15
27
  class ListConfigsResponse(BaseModel):
16
28
  connection_id: str = None,
17
29
  app_id: str = None
18
30
  name: str = None
19
31
  security_scheme: ConnectionSecurityScheme | None = None,
20
- auth_type: ConnectionAuthType | None = None,
32
+ auth_type: FetchConfigAuthTypes | None = None,
21
33
  environment: ConnectionEnvironment | None = None,
22
34
  preference: ConnectionPreference | None = None,
23
35
  credentials_entered: bool | None = False
@@ -28,7 +40,7 @@ class GetConfigResponse(BaseModel):
28
40
  app_id: str = None
29
41
  environment: ConnectionEnvironment = None
30
42
  preference: ConnectionPreference = None
31
- auth_type: ConnectionAuthType | None = None
43
+ auth_type: FetchConfigAuthTypes | None = None
32
44
  sso: bool = None
33
45
  security_scheme: ConnectionSecurityScheme = None
34
46
  server_url: str | None = None
@@ -21,13 +21,15 @@ class CPEClient(BaseAPIClient):
21
21
  }
22
22
 
23
23
 
24
- def submit_pre_cpe_chat(self, user_message: str | None =None, tools: Dict[str, Any] = None, agents: Dict[str, Any] = None) -> dict:
24
+ def submit_pre_cpe_chat(self, user_message: str | None =None, tools: Dict[str, Any] = None, collaborators: Dict[str, Any] = None, knowledge_bases: Dict[str, Any] = None, selected:bool=False) -> dict:
25
25
  payload = {
26
26
  "message": user_message,
27
27
  "tools": tools,
28
- "agents": agents,
28
+ "collaborators": collaborators,
29
+ "knowledge_bases": knowledge_bases,
29
30
  "chat_id": self.chat_id,
30
- "chat_model_name": self.chat_model_name
31
+ "chat_model_name": self.chat_model_name,
32
+ 'selected':selected
31
33
  }
32
34
 
33
35
  response = self._post_nd_json("/wxo-cpe/create-agent", data=payload)
@@ -122,6 +122,11 @@ services:
122
122
  CONNECTIONS_MANAGER_ENDPOINT: http://wxo-server-connection-manager:3001
123
123
  AGENT_OPS_API_KEY: ${AGENTOPS_API_KEY}
124
124
  AGENTS_OPS_RUNTIME_ENDPOINT: https://frontend-server:443
125
+ DPI_WO_WDU_SERVER_ENDPOINT: https://wxo-doc-processing-service:8080
126
+ DPI_RAG_SERVER_ENDPOINT: https://wxo-doc-processing-llm-service:8083
127
+ IBM_DPS_CACHE_SERVICE: https://wxo-doc-processing-cache:8080
128
+ DOCPROC_BASE_URL: http://wxo-doc-processing-infra-standalone:9080
129
+ BUILDER_ASYNC_CALLBACK_ENDPOINT: http://wxo-builder:4025
125
130
  IS_OBSERVABILITY_FEATURE_ENABLED: "true"
126
131
  ALLOW_INSECURE_TLS: "true"
127
132
  command: 'npm start'
@@ -165,7 +170,7 @@ services:
165
170
  "
166
171
 
167
172
  wxo-milvus-standalone:
168
- image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/milvusdb/milvus:v2.5.6
173
+ image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/milvusdb/milvus:v2.5.15
169
174
  command: ["milvus", "run", "standalone"]
170
175
  security_opt:
171
176
  - seccomp:unconfined
@@ -549,6 +554,7 @@ services:
549
554
  - TENANT_DEFAULT_PASSWORD=${ES_PASSWORD}
550
555
  - TENANT_DEFAULT_HOSTNAME=http://elasticsearch:9200
551
556
  - DEFAULT_TENANT_ID=${DEFAULT_TENANT_ID}
557
+ - FORCE_SINGLE_TENANT=${FORCE_SINGLE_TENANT:-true}
552
558
  ports:
553
559
  - "9202:9201" # Expose proxy on host port 9202
554
560
  networks:
@@ -644,6 +650,7 @@ services:
644
650
  - INBOUND_API_KEY=${AGENTOPS_API_KEY}
645
651
  - DEFAULT_TENANT_ID=${DEFAULT_TENANT_ID}
646
652
  - TENANT_DEFAULT_HOSTNAME=http://elasticsearch:9200
653
+ - FORCE_SINGLE_TENANT=${FORCE_SINGLE_TENANT:-true}
647
654
  ports:
648
655
  - "8765:443"
649
656
  networks:
@@ -57,13 +57,13 @@ EVENT_BROKER_TTL="3600"
57
57
  REGISTRY_URL=
58
58
 
59
59
 
60
- SERVER_TAG=31-07-2025
60
+ SERVER_TAG=01-08-2025
61
61
  SERVER_REGISTRY=
62
62
 
63
- WORKER_TAG=31-07-2025
63
+ WORKER_TAG=01-08-2025-v2
64
64
  WORKER_REGISTRY=
65
65
 
66
- AI_GATEWAY_TAG=21-07-2025
66
+ AI_GATEWAY_TAG=01-08-2025-v1
67
67
  AI_GATEWAY_REGISTRY=
68
68
 
69
69
  AGENT_GATEWAY_TAG=29-07-2025
@@ -77,7 +77,7 @@ AMDDBTAG=29-07-2025-9f3661b
77
77
  ARM64DBTAG=29-07-2025-9f3661b
78
78
 
79
79
  UI_REGISTRY=
80
- UITAG=23-07-2025
80
+ UITAG=31-07-2025
81
81
 
82
82
  CM_REGISTRY=
83
83
  CM_TAG=24-07-2025
@@ -88,23 +88,23 @@ TRM_REGISTRY=
88
88
  TR_TAG=23-07-2025-3c60549f0bac275de3e5736265a3fd49cdd3a203
89
89
  TR_REGISTRY=
90
90
 
91
- BUILDER_TAG=29-07-2025
91
+ BUILDER_TAG=31-07-2025-d7145cb
92
92
  BUILDER_REGISTRY=
93
93
 
94
- FLOW_RUNTIME_TAG=28-07-2025-v2
94
+ FLOW_RUNTIME_TAG=01-08-2025
95
95
  FLOW_RUMTIME_REGISTRY=
96
96
 
97
97
 
98
- AGENT_ANALYTICS_TAG=02-07-2025-v1
98
+ AGENT_ANALYTICS_TAG=05-08-2025
99
99
  AGENT_ANALYTICS_REGISTRY=
100
100
 
101
- JAEGER_PROXY_TAG=01-07-2025
101
+ JAEGER_PROXY_TAG=23-07-2025
102
102
  JAEGER_PROXY_REGISTRY=
103
103
 
104
104
  SOCKET_HANDLER_TAG=29-05-2025
105
105
  SOCKET_HANDLER_REGISTRY=
106
106
 
107
- CPE_TAG=17-07-2025
107
+ CPE_TAG=06-08-2025-b0a20ad
108
108
  CPE_REGISTRY=
109
109
 
110
110
  # IBM Document Processing
@@ -114,7 +114,7 @@ WDU_REGISTRY=
114
114
  DOCPROC_DPS_TAG=20250721-164412-250-503756a
115
115
  DOCPROC_LLMSERVICE_TAG=20250725-100249-111-51d3e51
116
116
  DOCPROC_CACHE_TAG=20250723-100852-70-9edc1ab
117
- DOCPROC_DPI_TAG=20250710-195309-241-8f9fb6d7
117
+ DOCPROC_DPI_TAG=20250731-155328-257-06879e86
118
118
  DOCPROC_REGISTRY=
119
119
 
120
120
  # END -- IMAGE REGISTRIES AND TAGS
@@ -182,6 +182,7 @@ CALLBACK_HOST_URL=
182
182
 
183
183
  AGENTOPS_API_KEY_AUTH_ENABLED=true
184
184
  AGENTOPS_API_KEY=qwertyuiop
185
+ FORCE_SINGLE_TENANT=true
185
186
 
186
187
  RUNTIME_MANAGER_API_KEY=example
187
188
 
@@ -1,6 +1,6 @@
1
1
  from .constants import START, END, RESERVED
2
2
 
3
- from ..types import FlowContext, TaskData, TaskEventType, File, DecisionsCondition, DecisionsRule
3
+ from ..types import FlowContext, TaskData, TaskEventType, DocProcInput, DecisionsCondition, DecisionsRule
4
4
  from ..node import UserNode, AgentNode, StartNode, EndNode, PromptNode, ToolNode, DecisionsNode
5
5
 
6
6
  from .flow import Flow, CompiledFlow, FlowRun, FlowEvent, FlowEventType, FlowFactory, MatchPolicy, WaitPolicy, ForeachPolicy, Branch, Foreach, Loop
@@ -16,7 +16,7 @@ __all__ = [
16
16
  "FlowContext",
17
17
  "TaskData",
18
18
  "TaskEventType",
19
- "File",
19
+ "DocProcInput",
20
20
 
21
21
  "DocProcNode",
22
22
  "UserNode",
@@ -18,7 +18,7 @@ import pytz
18
18
  import os
19
19
 
20
20
  from typing_extensions import Self
21
- from pydantic import BaseModel, Field, SerializeAsAny, create_model
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
24
  from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
@@ -27,7 +27,7 @@ from ibm_watsonx_orchestrate.client.utils import instantiate_client
27
27
  from ..types import (
28
28
  EndNodeSpec, Expression, ForeachPolicy, ForeachSpec, LoopSpec, BranchNodeSpec, MatchPolicy, PromptLLMParameters, PromptNodeSpec,
29
29
  StartNodeSpec, ToolSpec, JsonSchemaObject, ToolRequestBody, ToolResponseBody, UserFieldKind, UserFieldOption, UserFlowSpec, UserNodeSpec, WaitPolicy,
30
- DocProcSpec, TextExtractionResponse, File, DecisionsNodeSpec, DecisionsRule, DocExtSpec, LanguageCode
30
+ DocProcSpec, TextExtractionResponse, DocProcInput, DecisionsNodeSpec, DecisionsRule, DocExtSpec, File
31
31
  )
32
32
  from .constants import CURRENT_USER, START, END, ANY_USER
33
33
  from ..node import (
@@ -190,7 +190,7 @@ class Flow(Node):
190
190
 
191
191
  def _add_schema_ref(self, schema: JsonSchemaObject, title: str = None) -> SchemaRef:
192
192
  '''Create a schema reference'''
193
- if schema and (schema.type == "object" or schema.type == "array"):
193
+ if schema and (schema.type == "object" or schema.type == "array" or schema.type == "string"):
194
194
  new_schema = self._add_schema(schema, title)
195
195
  return SchemaRef(ref=f"#/schemas/{new_schema.title}")
196
196
  raise AssertionError(f"schema is not a complex object: {schema}")
@@ -199,7 +199,7 @@ class Flow(Node):
199
199
  self._refactor_spec_to_schemaref(node.spec)
200
200
 
201
201
  def _refactor_spec_to_schemaref(self, spec: NodeSpec):
202
- if spec.input_schema:
202
+ if spec.input_schema and (spec.input_schema.type == "object" or spec.input_schema.type == "array") :
203
203
  if isinstance(spec.input_schema, ToolRequestBody):
204
204
  spec.input_schema = self._add_schema_ref(JsonSchemaObject(type = spec.input_schema.type,
205
205
  properties= spec.input_schema.properties,
@@ -535,7 +535,7 @@ class Flow(Node):
535
535
  "text_extraction" : TextExtractionResponse
536
536
  }
537
537
  # create input spec
538
- input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = File)
538
+ input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = DocProcInput)
539
539
  output_schema_obj = _get_json_schema_obj("output", output_schema_dict[task])
540
540
  if "$defs" in output_schema_obj.model_extra:
541
541
  output_schema_obj.model_extra.pop("$defs")
@@ -1060,8 +1060,8 @@ class FlowFactory(BaseModel):
1060
1060
  raise ValueError("Only functions with @flow_spec can be used to create a Flow specification.")
1061
1061
  return Flow(spec = flow_spec)
1062
1062
 
1063
- # create input spec
1064
1063
  input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = input_schema)
1064
+ # create input spec
1065
1065
  output_schema_obj = _get_json_schema_obj("output", output_schema)
1066
1066
  if initiators is None:
1067
1067
  initiators = []