ibm-watsonx-orchestrate 1.9.0b0__tar.gz → 1.9.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 (128) hide show
  1. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/PKG-INFO +1 -3
  2. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/pyproject.toml +0 -2
  3. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/__init__.py +1 -1
  4. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +15 -3
  5. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +1 -1
  6. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py +0 -3
  7. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/server/server_command.py +146 -36
  8. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +4 -2
  9. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +9 -1
  10. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/compose-lite.yml +115 -8
  11. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/default.env +16 -12
  12. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/constants.py +2 -0
  13. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/flow.py +48 -6
  14. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/node.py +34 -3
  15. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/types.py +38 -12
  16. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/utils.py +0 -2
  17. ibm_watsonx_orchestrate-1.9.0b0/src/ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py +0 -149
  18. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/.gitignore +0 -0
  19. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/LICENSE +0 -0
  20. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/__init__.py +0 -0
  21. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +0 -0
  22. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/agent.py +0 -0
  23. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py +0 -0
  24. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py +0 -0
  25. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/types.py +0 -0
  26. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +0 -0
  27. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +0 -0
  28. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +0 -0
  29. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +0 -0
  30. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/connections/connections.py +0 -0
  31. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/connections/types.py +0 -0
  32. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py +0 -0
  33. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py +0 -0
  34. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +0 -0
  35. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py +0 -0
  36. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +0 -0
  37. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/models/__init__.py +0 -0
  38. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/models/types.py +0 -0
  39. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py +0 -0
  40. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/types.py +0 -0
  41. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/__init__.py +0 -0
  42. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +0 -0
  43. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +0 -0
  44. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +0 -0
  45. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +0 -0
  46. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/tools/types.py +0 -0
  47. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/agent_builder/utils/__init__.py +0 -0
  48. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/__init__.py +0 -0
  49. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/__init__.py +0 -0
  50. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +0 -0
  51. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py +0 -0
  52. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py +0 -0
  53. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/types.py +0 -0
  54. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py +0 -0
  55. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +0 -0
  56. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +0 -0
  57. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +0 -0
  58. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py +0 -0
  59. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py +0 -0
  60. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +0 -0
  61. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +0 -0
  62. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/environment/types.py +0 -0
  63. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +0 -0
  64. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +0 -0
  65. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +0 -0
  66. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +0 -0
  67. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/login/login_command.py +0 -0
  68. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +0 -0
  69. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/models/models_command.py +0 -0
  70. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +0 -0
  71. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/server/types.py +0 -0
  72. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/__init__.py +0 -0
  73. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py +0 -0
  74. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py +0 -0
  75. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py +0 -0
  76. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py +0 -0
  77. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py +0 -0
  78. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py +0 -0
  79. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +0 -0
  80. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/commands/tools/types.py +0 -0
  81. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/config.py +0 -0
  82. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/init_helper.py +0 -0
  83. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/cli/main.py +0 -0
  84. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/__init__.py +0 -0
  85. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/agents/agent_client.py +0 -0
  86. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +0 -0
  87. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/agents/external_agent_client.py +0 -0
  88. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/analytics/__init__.py +0 -0
  89. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/analytics/llm/__init__.py +0 -0
  90. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py +0 -0
  91. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/base_api_client.py +0 -0
  92. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/base_service_instance.py +0 -0
  93. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/client.py +0 -0
  94. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/client_errors.py +0 -0
  95. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/connections/__init__.py +0 -0
  96. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/connections/connections_client.py +0 -0
  97. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/connections/utils.py +0 -0
  98. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py +0 -0
  99. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/credentials.py +0 -0
  100. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py +0 -0
  101. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/local_service_instance.py +0 -0
  102. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/model_policies/__init__.py +0 -0
  103. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +0 -0
  104. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/models/__init__.py +0 -0
  105. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/models/models_client.py +0 -0
  106. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/service_instance.py +0 -0
  107. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py +0 -0
  108. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/tools/tempus_client.py +0 -0
  109. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/tools/tool_client.py +0 -0
  110. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/client/utils.py +0 -0
  111. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +0 -0
  112. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl +0 -0
  113. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz +0 -0
  114. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/start-up.sh +0 -0
  115. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/docker/tempus/common-config.yaml +0 -0
  116. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/__init__.py +0 -0
  117. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/data_map.py +0 -0
  118. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +0 -0
  119. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +0 -0
  120. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/flow_builder/flows/events.py +0 -0
  121. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/run/__init__.py +0 -0
  122. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/run/connections.py +0 -0
  123. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/utils/__init__.py +0 -0
  124. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/utils/exceptions.py +0 -0
  125. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/utils/logging/__init__.py +0 -0
  126. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/utils/logging/logger.py +0 -0
  127. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.0b1}/src/ibm_watsonx_orchestrate/utils/logging/logging.yaml +0 -0
  128. {ibm_watsonx_orchestrate-1.9.0b0 → ibm_watsonx_orchestrate-1.9.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.9.0b0
3
+ Version: 1.9.0b1
4
4
  Summary: IBM watsonx.orchestrate SDK
5
5
  Author-email: IBM <support@ibm.com>
6
6
  License: MIT License
@@ -13,10 +13,8 @@ Requires-Dist: httpx<1.0.0,>=0.28.1
13
13
  Requires-Dist: ibm-cloud-sdk-core>=3.24.2
14
14
  Requires-Dist: ibm-watsonx-orchestrate-evaluation-framework==1.0.8
15
15
  Requires-Dist: jsonref==1.1.0
16
- Requires-Dist: jsonschema<5.0.0,>=4.23.0
17
16
  Requires-Dist: langchain-core<=0.3.63
18
17
  Requires-Dist: langsmith<=0.3.45
19
- Requires-Dist: munch>=4.0.0
20
18
  Requires-Dist: packaging>=24.2
21
19
  Requires-Dist: pydantic<3.0.0,>=2.10.3
22
20
  Requires-Dist: pyjwt<3.0.0,>=2.10.1
@@ -22,7 +22,6 @@ dependencies = [
22
22
  "httpx>=0.28.1,<1.0.0",
23
23
  "ibm-cloud-sdk-core>=3.24.2",
24
24
  "jsonref==1.1.0",
25
- "jsonschema>=4.23.0,<5.0.0",
26
25
  "langchain-core<=0.3.63",
27
26
  "langsmith<=0.3.45",
28
27
  "packaging>=24.2",
@@ -34,7 +33,6 @@ dependencies = [
34
33
  "rich>=13.9.4,<14.0.0",
35
34
  "typer>=0.15.1,<1.0.0",
36
35
  "urllib3>=2.2.3",
37
- "munch>=4.0.0",
38
36
  "pytz>=2025.2",
39
37
  "redis>=6.0.0",
40
38
  "ibm_watsonx_orchestrate_evaluation_framework==1.0.8"
@@ -5,7 +5,7 @@
5
5
 
6
6
  pkg_name = "ibm-watsonx-orchestrate"
7
7
 
8
- __version__ = "1.9.0b0"
8
+ __version__ = "1.9.0b1"
9
9
 
10
10
 
11
11
 
@@ -750,6 +750,13 @@ class AgentsController:
750
750
  def list_agents(self, kind: AgentKind=None, verbose: bool=False):
751
751
  parse_errors = []
752
752
 
753
+ if verbose:
754
+ verbose_output_dictionary = {
755
+ "native":[],
756
+ "assistant":[],
757
+ "external":[]
758
+ }
759
+
753
760
  if kind == AgentKind.NATIVE or kind is None:
754
761
  response = self.get_native_client().get()
755
762
  native_agents = []
@@ -769,7 +776,7 @@ class AgentsController:
769
776
  for agent in native_agents:
770
777
  agents_list.append(json.loads(agent.dumps_spec()))
771
778
 
772
- rich.print_json(json.dumps(agents_list, indent=4))
779
+ verbose_output_dictionary["native"] = agents_list
773
780
  else:
774
781
  native_table = rich.table.Table(
775
782
  show_header=True,
@@ -832,7 +839,7 @@ class AgentsController:
832
839
  if verbose:
833
840
  for agent in external_agents:
834
841
  external_agents_list.append(json.loads(agent.dumps_spec()))
835
- rich.print_json(json.dumps(external_agents_list, indent=4))
842
+ verbose_output_dictionary["external"] = external_agents_list
836
843
  else:
837
844
  external_table = rich.table.Table(
838
845
  show_header=True,
@@ -899,8 +906,10 @@ class AgentsController:
899
906
  assistant_agent.config.authorization_url = response_data.get("authorization_url", assistant_agent.config.authorization_url)
900
907
 
901
908
  if verbose:
909
+ assistant_agent_specs = []
902
910
  for agent in assistant_agents:
903
- rich.print_json(agent.dumps_spec())
911
+ assistant_agent_specs.append(json.loads(agent.dumps_spec()))
912
+ verbose_output_dictionary["assistant"] = assistant_agent_specs
904
913
  else:
905
914
  assistants_table = rich.table.Table(
906
915
  show_header=True,
@@ -938,6 +947,9 @@ class AgentsController:
938
947
  )
939
948
  rich.print(assistants_table)
940
949
 
950
+ if verbose:
951
+ rich.print_json(data=verbose_output_dictionary)
952
+
941
953
  for error in parse_errors:
942
954
  for l in error:
943
955
  logger.error(l)
@@ -169,7 +169,7 @@ def _validate_connection_params(type: ConnectionType, **args) -> None:
169
169
 
170
170
 
171
171
  def _parse_entry(entry: str) -> dict[str,str]:
172
- split_entry = entry.split('=')
172
+ split_entry = entry.split('=', 1)
173
173
  if len(split_entry) != 2:
174
174
  message = f"The entry '{entry}' is not in the expected form '<key>=<value>'"
175
175
  logger.error(message)
@@ -137,9 +137,6 @@ def gather_utterances(max: int) -> list[str]:
137
137
  while count < max:
138
138
  utterance = Prompt.ask(" [green]>[/green]").strip()
139
139
 
140
- if utterance.lower() == 'q':
141
- break
142
-
143
140
  if utterance:
144
141
  utterances.append(utterance)
145
142
  count += 1
@@ -4,11 +4,13 @@ import os
4
4
  import platform
5
5
  import subprocess
6
6
  import sys
7
+ import shutil
7
8
  import tempfile
8
9
  import time
9
10
  from pathlib import Path
10
11
  from urllib.parse import urlparse
11
12
 
13
+ import re
12
14
  import jwt
13
15
  import requests
14
16
  import typer
@@ -32,6 +34,13 @@ logger = logging.getLogger(__name__)
32
34
 
33
35
  server_app = typer.Typer(no_args_is_help=True)
34
36
 
37
+ _EXPORT_FILE_TYPES: set[str] = {
38
+ 'py',
39
+ 'yaml',
40
+ 'yml',
41
+ 'json',
42
+ 'env'
43
+ }
35
44
 
36
45
  _ALWAYS_UNSET: set[str] = {
37
46
  "WO_API_KEY",
@@ -43,11 +52,34 @@ _ALWAYS_UNSET: set[str] = {
43
52
  "WO_USERNAME",
44
53
  "WO_PASSWORD",
45
54
  }
55
+
56
+ NON_SECRET_ENV_ITEMS: set[str] = {
57
+ "WO_DEVELOPER_EDITION_SOURCE",
58
+ "WO_INSTANCE",
59
+ "USE_SAAS_ML_TOOLS_RUNTIME",
60
+ "AUTHORIZATION_URL",
61
+ "OPENSOURCE_REGISTRY_PROXY",
62
+ "SAAS_WDU_RUNTIME",
63
+ "LATEST_ENV_FILE",
64
+ }
46
65
 
47
66
  def define_saas_wdu_runtime(value: str = "none") -> None:
48
67
  cfg = Config()
49
68
  cfg.write(USER_ENV_CACHE_HEADER,"SAAS_WDU_RUNTIME",value)
50
69
 
70
+ def set_compose_file_path_in_env(path: str = None) -> None:
71
+ Config().save(
72
+ {
73
+ USER_ENV_CACHE_HEADER: {
74
+ "DOCKER_COMPOSE_FILE_PATH" : path
75
+ }
76
+ }
77
+ )
78
+
79
+ def get_compose_file_path_from_env() -> str:
80
+ return Config().read(USER_ENV_CACHE_HEADER,"DOCKER_COMPOSE_FILE_PATH")
81
+
82
+
51
83
  def ensure_docker_installed() -> None:
52
84
  try:
53
85
  subprocess.run(["docker", "--version"], check=True, capture_output=True)
@@ -106,6 +138,11 @@ def docker_login_by_dev_edition_source(env_dict: dict, source: str) -> None:
106
138
 
107
139
 
108
140
  def get_compose_file() -> Path:
141
+ custom_compose_path = get_compose_file_path_from_env()
142
+ return Path(custom_compose_path) if custom_compose_path else get_default_compose_file()
143
+
144
+
145
+ def get_default_compose_file() -> Path:
109
146
  with resources.as_file(
110
147
  resources.files("ibm_watsonx_orchestrate.docker").joinpath("compose-lite.yml")
111
148
  ) as compose_file:
@@ -283,12 +320,17 @@ def _prepare_clean_env(env_file: Path) -> None:
283
320
  for key in keys_to_unset:
284
321
  os.environ.pop(key, None)
285
322
 
286
- def write_merged_env_file(merged_env: dict) -> Path:
287
- tmp = tempfile.NamedTemporaryFile(mode="w", delete=False, suffix=".env")
288
- with tmp:
323
+ def write_merged_env_file(merged_env: dict, target_path: str = None) -> Path:
324
+
325
+ if target_path:
326
+ file = open(target_path,"w")
327
+ else:
328
+ file = tempfile.NamedTemporaryFile(mode="w", delete=False, suffix=".env")
329
+
330
+ with file:
289
331
  for key, val in merged_env.items():
290
- tmp.write(f"{key}={val}\n")
291
- return Path(tmp.name)
332
+ file.write(f"{key}={val}\n")
333
+ return Path(file.name)
292
334
 
293
335
 
294
336
  def get_dbtag_from_architecture(merged_env_dict: dict) -> str:
@@ -310,14 +352,6 @@ def refresh_local_credentials() -> None:
310
352
  clear_protected_env_credentials_token()
311
353
  _login(name=PROTECTED_ENV_NAME, apikey=None)
312
354
 
313
- NON_SECRET_ENV_ITEMS = {
314
- "WO_DEVELOPER_EDITION_SOURCE",
315
- "WO_INSTANCE",
316
- "USE_SAAS_ML_TOOLS_RUNTIME",
317
- "AUTHORIZATION_URL",
318
- "OPENSOURCE_REGISTRY_PROXY",
319
- "SAAS_WDU_RUNTIME"
320
- }
321
355
  def persist_user_env(env: dict, include_secrets: bool = False) -> None:
322
356
  if include_secrets:
323
357
  persistable_env = env
@@ -337,7 +371,10 @@ def get_persisted_user_env() -> dict | None:
337
371
  return user_env
338
372
 
339
373
  def run_compose_lite(final_env_file: Path, experimental_with_langfuse=False, experimental_with_ibm_telemetry=False, with_doc_processing=False) -> None:
374
+
375
+
340
376
  compose_path = get_compose_file()
377
+
341
378
  compose_command = ensure_docker_compose_installed()
342
379
  _prepare_clean_env(final_env_file)
343
380
  db_tag = read_env_file(final_env_file).get('DBTAG', None)
@@ -754,6 +791,32 @@ def auto_configure_callback_ip(merged_env_dict: dict) -> dict:
754
791
 
755
792
  return merged_env_dict
756
793
 
794
+ def prepare_server_env_vars(user_env: dict = {}):
795
+
796
+ default_env = read_env_file(get_default_env_file())
797
+ dev_edition_source = get_dev_edition_source(user_env)
798
+ default_registry_vars = get_default_registry_env_vars_by_dev_edition_source(default_env, user_env, source=dev_edition_source)
799
+
800
+ # Update the default environment with the default registry variables only if they are not already set
801
+ for key in default_registry_vars:
802
+ if key not in default_env or not default_env[key]:
803
+ default_env[key] = default_registry_vars[key]
804
+
805
+ # Merge the default environment with the user environment
806
+ merged_env_dict = {
807
+ **default_env,
808
+ **user_env,
809
+ }
810
+
811
+ merged_env_dict = apply_server_env_dict_defaults(merged_env_dict)
812
+
813
+ # Auto-configure callback IP for async tools
814
+ merged_env_dict = auto_configure_callback_ip(merged_env_dict)
815
+
816
+ apply_llm_api_key_defaults(merged_env_dict)
817
+
818
+ return merged_env_dict
819
+
757
820
  @server_app.command(name="start")
758
821
  def server_start(
759
822
  user_env_file: str = typer.Option(
@@ -787,38 +850,37 @@ def server_start(
787
850
  '--with-doc-processing', '-d',
788
851
  help='Enable IBM Document Processing to extract information from your business documents. Enabling this activates the Watson Document Understanding service.'
789
852
  ),
853
+ custom_compose_file: str = typer.Option(
854
+ None,
855
+ '--compose-file', '-f',
856
+ help='Provide the path to a custom docker-compose file to use instead of the default compose file'
857
+ ),
790
858
  ):
791
859
  confirm_accepts_license_agreement(accept_terms_and_conditions)
792
860
 
793
861
  define_saas_wdu_runtime()
794
862
 
863
+ ensure_docker_installed()
864
+
795
865
  if user_env_file and not Path(user_env_file).exists():
796
- logger.error(f"Error: The specified environment file '{user_env_file}' does not exist.")
866
+ logger.error(f"The specified environment file '{user_env_file}' does not exist.")
797
867
  sys.exit(1)
798
- ensure_docker_installed()
799
868
 
800
- default_env = read_env_file(get_default_env_file())
869
+ if custom_compose_file:
870
+ if Path(custom_compose_file).exists():
871
+ logger.warning("You are using a custom docker compose file, official support will not be available for this configuration")
872
+ else:
873
+ logger.error(f"The specified docker-compose file '{custom_compose_file}' does not exist.")
874
+ sys.exit(1)
875
+
876
+ #Run regardless, to allow this to set compose as 'None' when not in use
877
+ set_compose_file_path_in_env(custom_compose_file)
878
+
801
879
  user_env = read_env_file(user_env_file) if user_env_file else {}
802
880
  persist_user_env(user_env, include_secrets=persist_env_secrets)
803
881
 
804
- dev_edition_source = get_dev_edition_source(user_env)
805
- default_registry_vars = get_default_registry_env_vars_by_dev_edition_source(default_env, user_env, source=dev_edition_source)
806
-
807
- # Update the default environment with the default registry variables only if they are not already set
808
- for key in default_registry_vars:
809
- if key not in default_env or not default_env[key]:
810
- default_env[key] = default_registry_vars[key]
882
+ merged_env_dict = prepare_server_env_vars(user_env)
811
883
 
812
- # Merge the default environment with the user environment
813
- merged_env_dict = {
814
- **default_env,
815
- **user_env,
816
- }
817
-
818
- merged_env_dict = apply_server_env_dict_defaults(merged_env_dict)
819
-
820
- # Auto-configure callback IP for async tools
821
- merged_env_dict = auto_configure_callback_ip(merged_env_dict)
822
884
  if not _check_exclusive_observibility(experimental_with_langfuse, experimental_with_ibm_telemetry):
823
885
  logger.error("Please select either langfuse or ibm telemetry for observability not both")
824
886
  sys.exit(1)
@@ -835,14 +897,12 @@ def server_start(
835
897
  merged_env_dict['USE_IBM_TELEMETRY'] = 'true'
836
898
 
837
899
  try:
900
+ dev_edition_source = get_dev_edition_source(merged_env_dict)
838
901
  docker_login_by_dev_edition_source(merged_env_dict, dev_edition_source)
839
902
  except ValueError as e:
840
903
  logger.error(f"Error: {e}")
841
904
  sys.exit(1)
842
905
 
843
- apply_llm_api_key_defaults(merged_env_dict)
844
-
845
-
846
906
  final_env_file = write_merged_env_file(merged_env_dict)
847
907
 
848
908
  run_compose_lite(final_env_file=final_env_file,
@@ -1000,5 +1060,55 @@ def run_db_migration() -> None:
1000
1060
  )
1001
1061
  sys.exit(1)
1002
1062
 
1063
+
1064
+ def bump_file_iteration(filename: str) -> str:
1065
+ regex = re.compile(f"^(?P<name>[^\\(\\s\\.\\)]+)(\\((?P<num>\\d+)\\))?(?P<type>\\.(?:{'|'.join(_EXPORT_FILE_TYPES)}))?$")
1066
+ _m = regex.match(filename)
1067
+ iter = int(_m['num']) + 1 if (_m and _m['num']) else 1
1068
+ return f"{_m['name']}({iter}){_m['type'] or ''}"
1069
+
1070
+ def get_next_free_file_iteration(filename: str) -> str:
1071
+ while Path(filename).exists():
1072
+ filename = bump_file_iteration(filename)
1073
+ return filename
1074
+
1075
+ @server_app.command(name="eject", help="output the docker-compose file and associated env file used to run the server")
1076
+ def server_eject(
1077
+ user_env_file: str = typer.Option(
1078
+ None,
1079
+ "--env-file",
1080
+ "-e",
1081
+ help="Path to a .env file that overrides default.env. Then environment variables override both."
1082
+ )
1083
+ ):
1084
+
1085
+ if not user_env_file:
1086
+ logger.error(f"To use 'server eject' you need to specify an env file with '--env-file' or '-e'")
1087
+ sys.exit(1)
1088
+
1089
+ if not Path(user_env_file).exists():
1090
+ logger.error(f"The specified environment file '{user_env_file}' does not exist.")
1091
+ sys.exit(1)
1092
+
1093
+ logger.warning("Changes to your docker compose file are not supported")
1094
+
1095
+ compose_file_path = get_compose_file()
1096
+
1097
+ compose_output_file = get_next_free_file_iteration('docker-compose.yml')
1098
+ logger.info(f"Exporting docker compose file to '{compose_output_file}'")
1099
+
1100
+ shutil.copyfile(compose_file_path,compose_output_file)
1101
+
1102
+
1103
+ user_env = read_env_file(user_env_file)
1104
+ merged_env_dict = prepare_server_env_vars(user_env)
1105
+
1106
+ env_output_file = get_next_free_file_iteration('server.env')
1107
+ logger.info(f"Exporting env file to '{env_output_file}'")
1108
+
1109
+ write_merged_env_file(merged_env=merged_env_dict,target_path=env_output_file)
1110
+
1111
+ logger.info(f"To make use of the exported configuration file run \"orchestrate server start -e {env_output_file} -f {compose_output_file}\"")
1112
+
1003
1113
  if __name__ == "__main__":
1004
1114
  server_app()
@@ -64,8 +64,8 @@ def import_toolkit(
64
64
  else:
65
65
  tool_list = None
66
66
 
67
- if not package and not package_root:
68
- logger.error("You must provide either '--package' or '--package-root'.")
67
+ if not package and not package_root and not command:
68
+ logger.error("You must provide either '--package', '--package-root' or '--command'.")
69
69
  sys.exit(1)
70
70
 
71
71
  if package_root and not command:
@@ -85,6 +85,8 @@ def import_toolkit(
85
85
  else:
86
86
  logger.error("Unable to infer start up command: '--language' flag must be either 'node' or 'python' when using the '--package' flag without '--command' flag.")
87
87
  sys.exit(1)
88
+ else:
89
+ logger.warning(f"Default package installation command for package '{package}' overridden by '--command {command}'.")
88
90
 
89
91
 
90
92
  toolkit_controller = ToolkitController(
@@ -70,7 +70,7 @@ class ToolkitController:
70
70
  self.client = None
71
71
 
72
72
  self.source: ToolkitSource = (
73
- ToolkitSource.PUBLIC_REGISTRY if package else ToolkitSource.FILES
73
+ ToolkitSource.FILES if package_root else ToolkitSource.PUBLIC_REGISTRY
74
74
  )
75
75
 
76
76
  def get_client(self) -> ToolKitClient:
@@ -105,6 +105,14 @@ class ToolkitController:
105
105
  command = command_parts[0]
106
106
  args = command_parts[1:]
107
107
 
108
+ if self.package_root:
109
+ is_folder = os.path.isdir(self.package_root)
110
+ is_zip_file = os.path.isfile(self.package_root) and zipfile.is_zipfile(self.package_root)
111
+
112
+ if not is_folder and not is_zip_file:
113
+ logger.error(f"Unable to find a valid directory or zip file at location '{self.package_root}'")
114
+ sys.exit(1)
115
+
108
116
  console = Console()
109
117
 
110
118
  with tempfile.TemporaryDirectory() as tmpdir:
@@ -1,3 +1,4 @@
1
+ name: docker
1
2
  services:
2
3
  ########################
3
4
  # Orchestrate Lite dependencies
@@ -780,7 +781,6 @@ services:
780
781
  LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY:-pk-lf-7417757e-d6df-421b-957e-683b76acb5df}
781
782
  LANGFUSE_SECRET_KEY: ${LANGFUSE_PRIVATE_KEY:-sk-lf-7bc4da63-7b2b-40c0-b5eb-1e0cf64f9af2}
782
783
  LOG_LEVEL: info
783
- DISABLE_FLOW_BINDING: true
784
784
  DOCPROC_ENABLED: ${DOCPROC_ENABLED:-false}
785
785
  DOCPROC_BASE_URL: http://wxo-doc-processing-infra-standalone:9080
786
786
  WO_API_KEY: ${WO_API_KEY}
@@ -825,7 +825,7 @@ services:
825
825
  ########################
826
826
 
827
827
  wxo-doc-processing-service:
828
- image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo_doc_processing_service:${DOCPROC_DPS_TAG:-20250606-172035-246-4191121}
828
+ image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo_doc_processing_service:${DOCPROC_DPS_TAG:-20250721-164412-250-503756a}
829
829
  platform: linux/amd64
830
830
  restart: unless-stopped
831
831
  environment:
@@ -841,9 +841,9 @@ services:
841
841
  IBM_DPS_CACHE_SERVICE: https://wxo-doc-processing-cache:8080
842
842
  profiles:
843
843
  - docproc
844
- # depends_on:
845
- # wxo-doc-processing-cache:
846
- # condition: service_healthy
844
+ depends_on:
845
+ wxo-doc-processing-cache:
846
+ condition: service_healthy
847
847
  ports:
848
848
  - "18081:8080"
849
849
  healthcheck:
@@ -855,6 +855,7 @@ services:
855
855
  wdu-runtime:
856
856
  image: ${WDU_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wdu-runtime:${WDU_TAG:-2.4.0}
857
857
  platform: linux/amd64
858
+ user: app
858
859
  restart: unless-stopped
859
860
  environment:
860
861
  MEMORY_MINIMAL: "true"
@@ -894,6 +895,48 @@ services:
894
895
  tmpfs:
895
896
  - "/dev/shm"
896
897
 
898
+ wxo-doc-processing-cache:
899
+ image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo_doc_processing_cache:${DOCPROC_CACHE_TAG:-20250723-100852-70-9edc1ab}
900
+ platform: linux/amd64
901
+ restart: unless-stopped
902
+ environment:
903
+ SERVICE_NAME: wxo-doc-processing-cache
904
+ LOG_LEVEL: info
905
+ RATE_LIMITING_ENABLED: "false"
906
+ USE_DUMMY_CACHE: "false"
907
+ CACHE_ENFORCE_STRICT_JWT: "false"
908
+ PGHOST: wxo-server-db
909
+ PGPORT: "5432"
910
+ PGUSER: ${POSTGRES_USER:-postgres}
911
+ PGPASSWORD: ${POSTGRES_PASSWORD:-postgres}
912
+ PGDATABASE: wxo-document-processing-cache
913
+ PG_DB_SCHEMA: dpschema
914
+ # PG_USE_SSL: false
915
+ S3_ENDPOINT_URL: http://wxo-server-minio:9000
916
+ S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
917
+ S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-watsonxorchestrate}
918
+ S3_REGION: us-east-1
919
+ S3_BUCKET_NAME: wxo-document-processing-cache
920
+ VERIFY_CLIENT_CERT: 1
921
+ # S3_USE_SSL: false
922
+ # S3_VERIFY_CERT: false
923
+ profiles:
924
+ - docproc
925
+ depends_on:
926
+ wxo-doc-processing-pg-init:
927
+ condition: service_completed_successfully
928
+ wxo-doc-processing-cache-minio-init:
929
+ condition: service_completed_successfully
930
+ ports:
931
+ - "18083:8080"
932
+ # volumes:
933
+ # - ./docker/wo_doc_processing_rag_base/etc/certs:/etc/certs
934
+ healthcheck:
935
+ test: ["CMD-SHELL", "curl -fk https://localhost:8080/ping"]
936
+ interval: 30s
937
+ timeout: 30s
938
+ retries: 10
939
+
897
940
  wxo-doc-processing-infra-standalone:
898
941
  image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo-doc-processing-infra-standalone:${DOCPROC_DPI_TAG:-2025-06-13-dev-1}
899
942
  platform: linux/amd64
@@ -918,7 +961,7 @@ services:
918
961
  SIDECAR_METERED_ENABLED: "false"
919
962
  DPI_DEBUG: "false"
920
963
  DPI_WO_WDU_SERVER_ENDPOINT: https://wxo-doc-processing-service:8080
921
- # DPI_RAG_SERVER_ENDPOINT: https://wxo-doc-processing-llm-service:8083
964
+ DPI_RAG_SERVER_ENDPOINT: https://wxo-doc-processing-llm-service:8083
922
965
  DISABLE_TLS: true
923
966
  STANDALONE_DPI: "true"
924
967
  depends_on:
@@ -928,8 +971,8 @@ services:
928
971
  condition: service_completed_successfully
929
972
  wxo-doc-processing-service:
930
973
  condition: service_healthy
931
- # wxo-doc-processing-llm-service:
932
- # condition: service_healthy
974
+ wxo-doc-processing-llm-service:
975
+ condition: service_healthy
933
976
  ports:
934
977
  - 19080:9080
935
978
  - 19443:9443
@@ -939,6 +982,33 @@ services:
939
982
  timeout: 30s
940
983
  retries: 10
941
984
 
985
+ wxo-doc-processing-llm-service:
986
+ image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo_doc_processing_rag:${DOCPROC_LLMSERVICE_TAG:-20250725-100249-111-51d3e51}
987
+ platform: linux/amd64
988
+ restart: unless-stopped
989
+ environment:
990
+ SERVICE_NAME: wxo-doc-processing-llm-service
991
+ LOG_LEVEL: info
992
+ WATSONX_API_ENDPOINT: ${WATSONX_URL:-https://us-south.ml.cloud.ibm.com}
993
+ WATSONX_API_KEY: ${WATSONX_APIKEY}
994
+ WATSONX_PROJECT_ID: ${WATSONX_PROJECT_ID}
995
+ WATSONX_SPACE_ID: ${WATSONX_SPACE_ID}
996
+ IBM_DPS_CACHE_SERVICE: 'wxo-doc-processing-cache:8080'
997
+ profiles:
998
+ - docproc
999
+ depends_on:
1000
+ wxo-doc-processing-cache:
1001
+ condition: service_healthy
1002
+ ports:
1003
+ - "18084:8083"
1004
+ # volumes:
1005
+ # - ./conf/rag/certs:/etc/certs
1006
+ healthcheck:
1007
+ test: ["CMD-SHELL", "curl -fk https://localhost:8083/ping"]
1008
+ interval: 30s
1009
+ timeout: 30s
1010
+ retries: 10
1011
+
942
1012
  wxo-doc-processing-infra-pg-init:
943
1013
  image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo-doc-processing-infra-pg-init:${DOCPROC_DPI_TAG:-2025-06-13-dev-1}
944
1014
  platform: linux/amd64
@@ -963,6 +1033,28 @@ services:
963
1033
  timeout: 5s
964
1034
  retries: 50
965
1035
 
1036
+ wxo-doc-processing-pg-init:
1037
+ image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo_doc_processing_cache_rds_init:${DOCPROC_CACHE_TAG:-20250723-100852-70-9edc1ab}
1038
+ platform: linux/amd64
1039
+ environment:
1040
+ PGHOST: wxo-server-db
1041
+ PGPORT: "5432"
1042
+ PGUSER: ${POSTGRES_USER:-postgres}
1043
+ PGPASSWORD: ${POSTGRES_PASSWORD:-postgres}
1044
+ PGDATABASE: wxo-document-processing-cache
1045
+ PG_DB_SCHEMA: dpschema
1046
+ # PG_USE_SSL: false
1047
+ profiles:
1048
+ - docproc
1049
+ depends_on:
1050
+ wxo-server-db:
1051
+ condition: service_started
1052
+ healthcheck:
1053
+ test: ["CMD-SHELL", "psql -h localhost -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_PASSWORD:-postgres}"]
1054
+ interval: 1s
1055
+ timeout: 5s
1056
+ retries: 50
1057
+
966
1058
  wxo-doc-processing-dpi-minio-init:
967
1059
  image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/minio/mc:latest
968
1060
  platform: linux/amd64
@@ -978,6 +1070,21 @@ services:
978
1070
  exit 0;
979
1071
  "
980
1072
 
1073
+ wxo-doc-processing-cache-minio-init:
1074
+ image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/minio/mc:latest
1075
+ platform: linux/amd64
1076
+ profiles:
1077
+ - docproc
1078
+ depends_on:
1079
+ wxo-server-minio:
1080
+ condition: service_healthy
1081
+ entrypoint: >
1082
+ /bin/sh -c "
1083
+ /usr/bin/mc alias set wxo-server-minio http://wxo-server-minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-watsonxorchestrate};
1084
+ /usr/bin/mc mb wxo-server-minio/wxo-document-processing-cache;
1085
+ exit 0;
1086
+ "
1087
+
981
1088
  volumes:
982
1089
  tools:
983
1090
  driver: local