ibm-watsonx-orchestrate 1.6.2__tar.gz → 1.6.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/PKG-INFO +1 -1
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/__init__.py +1 -1
- ibm_watsonx_orchestrate-1.6.3/src/ibm_watsonx_orchestrate/cli/commands/channels/types.py +27 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +36 -25
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/environment/types.py +1 -1
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +5 -8
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/connections/connections_client.py +5 -30
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/utils.py +47 -8
- ibm_watsonx_orchestrate-1.6.2/src/ibm_watsonx_orchestrate/cli/commands/channels/types.py +0 -15
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/.gitignore +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/LICENSE +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/pyproject.toml +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/agent.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/connections/connections.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/connections/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/models/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/models/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/tools/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/tools/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/utils/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/login/login_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/models/models_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/server/server_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/server/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/settings/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/commands/tools/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/config.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/init_helper.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/cli/main.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/agents/agent_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/agents/external_agent_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/analytics/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/analytics/llm/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/base_api_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/base_service_instance.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/client_errors.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/connections/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/connections/utils.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/credentials.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/local_service_instance.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/model_policies/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/models/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/models/models_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/service_instance.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/tools/tempus_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/client/tools/tool_client.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/compose-lite.yml +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/default.env +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/start-up.sh +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/docker/tempus/common-config.yaml +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/data_map.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/flows/constants.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/flows/events.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/flows/flow.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/node.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/resources/flow_status.openapi.yml +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/types.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/flow_builder/utils.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/run/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/run/connections.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/utils/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/utils/logging/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/utils/logging/logger.py +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/utils/logging/logging.yaml +0 -0
- {ibm_watsonx_orchestrate-1.6.2 → ibm_watsonx_orchestrate-1.6.3}/src/ibm_watsonx_orchestrate/utils/utils.py +0 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
class EnvironmentType(str, Enum):
|
4
|
+
DRAFT ='draft'
|
5
|
+
LIVE = 'live'
|
6
|
+
|
7
|
+
def __str__(self):
|
8
|
+
return self.value
|
9
|
+
|
10
|
+
|
11
|
+
class ChannelType(str, Enum):
|
12
|
+
WEBCHAT ='webchat'
|
13
|
+
|
14
|
+
def __str__(self):
|
15
|
+
return self.value
|
16
|
+
|
17
|
+
class RuntimeEnvironmentType(str, Enum):
|
18
|
+
LOCAL = 'local'
|
19
|
+
CPD = 'cpd'
|
20
|
+
IBM_CLOUD = 'ibmcloud'
|
21
|
+
AWS = 'aws'
|
22
|
+
|
23
|
+
def __str__(self):
|
24
|
+
return self.value
|
25
|
+
|
26
|
+
def __repr__(self):
|
27
|
+
return self.value
|
@@ -4,12 +4,15 @@ import jwt
|
|
4
4
|
import sys
|
5
5
|
|
6
6
|
from ibm_watsonx_orchestrate.cli.config import Config, ENV_WXO_URL_OPT, ENVIRONMENTS_SECTION_HEADER, CONTEXT_SECTION_HEADER, CONTEXT_ACTIVE_ENV_OPT, CHAT_UI_PORT
|
7
|
-
from ibm_watsonx_orchestrate.
|
7
|
+
from ibm_watsonx_orchestrate.cli.commands.channels.types import RuntimeEnvironmentType
|
8
|
+
|
9
|
+
from ibm_watsonx_orchestrate.client.utils import is_local_dev, is_ibm_cloud_platform, get_environment, get_cpd_instance_id_from_url, is_saas_env, AUTH_CONFIG_FILE_FOLDER, AUTH_SECTION_HEADER, AUTH_MCSP_TOKEN_OPT, AUTH_CONFIG_FILE
|
8
10
|
|
9
11
|
from ibm_watsonx_orchestrate.client.agents.agent_client import AgentClient
|
10
12
|
|
11
13
|
from ibm_watsonx_orchestrate.client.utils import instantiate_client
|
12
14
|
|
15
|
+
|
13
16
|
logger = logging.getLogger(__name__)
|
14
17
|
|
15
18
|
class ChannelsWebchatController:
|
@@ -22,7 +25,7 @@ class ChannelsWebchatController:
|
|
22
25
|
return self.native_client
|
23
26
|
|
24
27
|
def extract_tenant_id_from_crn(self, crn: str) -> str:
|
25
|
-
is_ibm_cloud_env =
|
28
|
+
is_ibm_cloud_env = is_ibm_cloud_platform()
|
26
29
|
if is_ibm_cloud_env:
|
27
30
|
try:
|
28
31
|
parts = crn.split("a/")[1].split(":")
|
@@ -77,6 +80,7 @@ class ChannelsWebchatController:
|
|
77
80
|
agent_environments = agent.get("environments", [])
|
78
81
|
|
79
82
|
is_local = is_local_dev()
|
83
|
+
is_saas = is_saas_env()
|
80
84
|
target_env = env or 'draft'
|
81
85
|
|
82
86
|
if is_local:
|
@@ -91,15 +95,13 @@ class ChannelsWebchatController:
|
|
91
95
|
logger.error(f'This agent does not exist in the {env} environment. You need to deploy it to {env} before you can embed the agent')
|
92
96
|
exit(1)
|
93
97
|
|
94
|
-
if target_env == 'draft' and
|
98
|
+
if target_env == 'draft' and is_saas == True:
|
95
99
|
logger.error(f'For SAAS, please ensure this agent exists in a Live Environment')
|
96
100
|
exit(1)
|
97
101
|
|
98
|
-
|
99
|
-
|
100
102
|
return filtered_environments[0].get("id")
|
101
103
|
|
102
|
-
def
|
104
|
+
def get_tenant_id(self):
|
103
105
|
auth_cfg = Config(AUTH_CONFIG_FILE_FOLDER, AUTH_CONFIG_FILE)
|
104
106
|
|
105
107
|
cfg = Config()
|
@@ -154,30 +156,40 @@ class ChannelsWebchatController:
|
|
154
156
|
|
155
157
|
def create_webchat_embed_code(self):
|
156
158
|
crn = None
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
159
|
+
environment = get_environment()
|
160
|
+
|
161
|
+
match (environment):
|
162
|
+
case RuntimeEnvironmentType.LOCAL:
|
163
|
+
tenant_id = self.get_tenant_id_local()
|
164
|
+
|
165
|
+
case RuntimeEnvironmentType.CPD:
|
166
|
+
tenant_id = get_cpd_instance_id_from_url()
|
167
|
+
|
168
|
+
case RuntimeEnvironmentType.IBM_CLOUD:
|
169
|
+
crn = input("Please enter your CRN which can be retrieved from the IBM Cloud UI: ")
|
170
|
+
if crn == "":
|
171
|
+
logger.error("You must enter your CRN for IBM Cloud instances")
|
172
|
+
sys.exit(1)
|
173
|
+
is_crn_correct = self.check_crn_is_correct(crn)
|
174
|
+
if is_crn_correct == False:
|
175
|
+
logger.error("Invalid CRN format provided.")
|
176
|
+
sys.exit(1)
|
177
|
+
tenant_id = self.extract_tenant_id_from_crn(crn)
|
178
|
+
|
179
|
+
case RuntimeEnvironmentType.AWS:
|
180
|
+
tenant_id = self.get_tenant_id()
|
181
|
+
|
182
|
+
case _:
|
183
|
+
logger.error("Environment not recognized")
|
163
184
|
sys.exit(1)
|
164
|
-
|
165
|
-
if is_crn_correct == False:
|
166
|
-
logger.error("Invalid CRN format provided.")
|
167
|
-
|
168
|
-
if is_ibm_cloud_env and crn is not None:
|
169
|
-
tenant_id = self.extract_tenant_id_from_crn(crn)
|
170
|
-
elif is_ibm_cloud_env is False and is_local is False:
|
171
|
-
tenant_id = self.get_tennent_id()
|
172
|
-
elif is_local:
|
173
|
-
tenant_id = self.get_tenant_id_local()
|
185
|
+
|
174
186
|
host_url = self.get_host_url()
|
175
187
|
agent_id = self.get_agent_id(self.agent_name)
|
176
188
|
agent_env_id = self.get_environment_id(self.agent_name, self.env)
|
177
189
|
|
178
190
|
script_path = (
|
179
191
|
"/wxoLoader.js?embed=true"
|
180
|
-
if
|
192
|
+
if environment == "local"
|
181
193
|
else "/wxochat/wxoLoader.js?embed=true"
|
182
194
|
)
|
183
195
|
|
@@ -189,9 +201,8 @@ class ChannelsWebchatController:
|
|
189
201
|
]
|
190
202
|
|
191
203
|
# Conditional fields for IBM Cloud
|
192
|
-
if
|
204
|
+
if environment == "ibmcloud":
|
193
205
|
config_lines.append(f'crn: "{crn}"')
|
194
|
-
if is_ibm_cloud_env:
|
195
206
|
config_lines.append(f'deploymentPlatform: "ibmcloud"')
|
196
207
|
|
197
208
|
config_lines.append(f"""chatOptions: {{
|
@@ -167,15 +167,12 @@ class ModelsController:
|
|
167
167
|
logger.error("Error: WATSONX_URL is required in the environment.")
|
168
168
|
sys.exit(1)
|
169
169
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
else:
|
174
|
-
logger.info("Retrieving virtual-model models list...")
|
175
|
-
virtual_models = models_client.list()
|
170
|
+
|
171
|
+
logger.info("Retrieving virtual-model models list...")
|
172
|
+
virtual_models = models_client.list()
|
176
173
|
|
177
|
-
|
178
|
-
|
174
|
+
logger.info("Retrieving virtual-policies models list...")
|
175
|
+
virtual_model_policies = model_policies_client.list()
|
179
176
|
|
180
177
|
logger.info("Retrieving watsonx.ai models list...")
|
181
178
|
found_models = _get_wxai_foundational_models()
|
@@ -63,12 +63,7 @@ class ConnectionsClient(BaseAPIClient):
|
|
63
63
|
# GET /api/v1/connections/applications/{app_id}
|
64
64
|
def get(self, app_id: str) -> GetConnectionResponse | None:
|
65
65
|
try:
|
66
|
-
|
67
|
-
f"/connections/applications/{app_id}"
|
68
|
-
if is_cpd_env(self.base_url)
|
69
|
-
else f"/connections/applications?app_id={app_id}"
|
70
|
-
)
|
71
|
-
return GetConnectionResponse.model_validate(self._get(path))
|
66
|
+
return GetConnectionResponse.model_validate(self._get(f"/connections/applications?app_id={app_id}"))
|
72
67
|
except ClientAPIException as e:
|
73
68
|
if e.response.status_code == 404:
|
74
69
|
return None
|
@@ -78,12 +73,7 @@ class ConnectionsClient(BaseAPIClient):
|
|
78
73
|
# GET api/v1/connections/applications
|
79
74
|
def list(self) -> List[ListConfigsResponse]:
|
80
75
|
try:
|
81
|
-
|
82
|
-
f"/connections/applications"
|
83
|
-
if is_cpd_env(self.base_url)
|
84
|
-
else f"/connections/applications?include_details=true"
|
85
|
-
)
|
86
|
-
res = self._get(path)
|
76
|
+
res = self._get(f"/connections/applications?include_details=true")
|
87
77
|
import json
|
88
78
|
json.dumps(res)
|
89
79
|
return [ListConfigsResponse.model_validate(conn) for conn in res.get("applications", [])]
|
@@ -135,19 +125,9 @@ class ConnectionsClient(BaseAPIClient):
|
|
135
125
|
def get_credentials(self, app_id: str, env: ConnectionEnvironment, use_app_credentials: bool) -> dict:
|
136
126
|
try:
|
137
127
|
if use_app_credentials:
|
138
|
-
|
139
|
-
f"/connections/applications/{app_id}/credentials?env={env}"
|
140
|
-
if is_cpd_env(self.base_url)
|
141
|
-
else f"/connections/applications/{app_id}/credentials/{env}"
|
142
|
-
)
|
143
|
-
return self._get(path)
|
128
|
+
return self._get(f"/connections/applications/{app_id}/credentials/{env}")
|
144
129
|
else:
|
145
|
-
|
146
|
-
f"/connections/applications/{app_id}/configs/runtime_credentials?env={env}"
|
147
|
-
if is_cpd_env(self.base_url)
|
148
|
-
else f"/connections/applications/runtime_credentials?app_id={app_id}&env={env}"
|
149
|
-
)
|
150
|
-
return self._get(path)
|
130
|
+
return self._get(f"/connections/applications/runtime_credentials?app_id={app_id}&env={env}")
|
151
131
|
except ClientAPIException as e:
|
152
132
|
if e.response.status_code == 404:
|
153
133
|
return None
|
@@ -177,12 +157,7 @@ class ConnectionsClient(BaseAPIClient):
|
|
177
157
|
if conn_id is None:
|
178
158
|
return ""
|
179
159
|
try:
|
180
|
-
|
181
|
-
f"/connections/applications/id/{conn_id}"
|
182
|
-
if is_cpd_env(self.base_url)
|
183
|
-
else f"/connections/applications?connection_id={conn_id}"
|
184
|
-
)
|
185
|
-
app_details = self._get(path)
|
160
|
+
app_details = self._get(f"/connections/applications?connection_id={conn_id}")
|
186
161
|
return app_details.get("app_id")
|
187
162
|
except ClientAPIException as e:
|
188
163
|
if e.response.status_code == 404:
|
@@ -16,22 +16,27 @@ from ibm_watsonx_orchestrate.cli.config import (
|
|
16
16
|
from threading import Lock
|
17
17
|
from ibm_watsonx_orchestrate.client.base_api_client import BaseAPIClient
|
18
18
|
from ibm_watsonx_orchestrate.utils.utils import yaml_safe_load
|
19
|
+
from ibm_watsonx_orchestrate.cli.commands.channels.types import RuntimeEnvironmentType
|
19
20
|
import logging
|
20
21
|
from typing import TypeVar
|
21
22
|
import os
|
22
23
|
import jwt
|
23
24
|
import time
|
25
|
+
import sys
|
24
26
|
|
25
27
|
logger = logging.getLogger(__name__)
|
26
28
|
LOCK = Lock()
|
27
29
|
T = TypeVar("T", bound=BaseAPIClient)
|
28
30
|
|
29
31
|
|
32
|
+
def get_current_env_url() -> str:
|
33
|
+
cfg = Config()
|
34
|
+
active_env = cfg.read(CONTEXT_SECTION_HEADER, CONTEXT_ACTIVE_ENV_OPT)
|
35
|
+
return cfg.get(ENVIRONMENTS_SECTION_HEADER, active_env, ENV_WXO_URL_OPT)
|
36
|
+
|
30
37
|
def is_local_dev(url: str | None = None) -> bool:
|
31
38
|
if url is None:
|
32
|
-
|
33
|
-
active_env = cfg.read(CONTEXT_SECTION_HEADER, CONTEXT_ACTIVE_ENV_OPT)
|
34
|
-
url = cfg.get(ENVIRONMENTS_SECTION_HEADER, active_env, ENV_WXO_URL_OPT)
|
39
|
+
url = get_current_env_url()
|
35
40
|
|
36
41
|
if url.startswith("http://localhost"):
|
37
42
|
return True
|
@@ -47,21 +52,55 @@ def is_local_dev(url: str | None = None) -> bool:
|
|
47
52
|
|
48
53
|
return False
|
49
54
|
|
50
|
-
def
|
51
|
-
|
52
|
-
|
53
|
-
|
55
|
+
def is_ga_platform(url: str | None = None) -> bool:
|
56
|
+
if url is None:
|
57
|
+
url = get_current_env_url()
|
58
|
+
|
59
|
+
if url.__contains__("orchestrate.ibm.com"):
|
60
|
+
return True
|
61
|
+
return False
|
62
|
+
|
63
|
+
def is_saas_env():
|
64
|
+
return is_ga_platform() or is_ibm_cloud_platform()
|
65
|
+
|
66
|
+
def is_ibm_cloud_platform(url:str | None = None) -> bool:
|
67
|
+
if url is None:
|
68
|
+
url = get_current_env_url()
|
54
69
|
|
55
70
|
if url.__contains__("cloud.ibm.com"):
|
56
71
|
return True
|
57
72
|
return False
|
58
73
|
|
74
|
+
def is_cpd_env(url: str | None = None) -> bool:
|
75
|
+
if url is None:
|
76
|
+
url = get_current_env_url()
|
59
77
|
|
60
|
-
def is_cpd_env(url: str) -> bool:
|
61
78
|
if url.lower().startswith("https://cpd"):
|
62
79
|
return True
|
63
80
|
return False
|
64
81
|
|
82
|
+
def get_environment() -> str:
|
83
|
+
if is_local_dev():
|
84
|
+
return RuntimeEnvironmentType.LOCAL
|
85
|
+
if is_cpd_env():
|
86
|
+
return RuntimeEnvironmentType.CPD
|
87
|
+
if is_ibm_cloud_platform():
|
88
|
+
return RuntimeEnvironmentType.IBM_CLOUD
|
89
|
+
if is_ga_platform():
|
90
|
+
return RuntimeEnvironmentType.AWS
|
91
|
+
return None
|
92
|
+
|
93
|
+
def get_cpd_instance_id_from_url(url: str | None = None) -> str:
|
94
|
+
if url is None:
|
95
|
+
url = get_current_env_url()
|
96
|
+
|
97
|
+
if not is_cpd_env(url):
|
98
|
+
logger.error(f"The host {url} is not a CPD instance")
|
99
|
+
sys.exit(1)
|
100
|
+
|
101
|
+
url_fragments = url.split('/')
|
102
|
+
return url_fragments[-1] if url_fragments[-1] else url_fragments[-2]
|
103
|
+
|
65
104
|
def check_token_validity(token: str) -> bool:
|
66
105
|
try:
|
67
106
|
token_claimset = jwt.decode(token, options={"verify_signature": False})
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|