ibm-watsonx-orchestrate 1.5.0b1__py3-none-any.whl → 1.6.0__py3-none-any.whl

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 (71) hide show
  1. ibm_watsonx_orchestrate/__init__.py +1 -1
  2. ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +1 -1
  3. ibm_watsonx_orchestrate/agent_builder/agents/agent.py +1 -0
  4. ibm_watsonx_orchestrate/agent_builder/agents/types.py +58 -4
  5. ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +2 -0
  6. ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +34 -0
  7. ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +20 -0
  8. ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +2 -2
  9. ibm_watsonx_orchestrate/agent_builder/connections/types.py +38 -31
  10. ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +1 -1
  11. ibm_watsonx_orchestrate/agent_builder/models/types.py +0 -1
  12. ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +83 -0
  13. ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +41 -3
  14. ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +2 -1
  15. ibm_watsonx_orchestrate/agent_builder/tools/types.py +14 -1
  16. ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +18 -1
  17. ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +153 -21
  18. ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +104 -22
  19. ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +2 -0
  20. ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +26 -18
  21. ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +61 -61
  22. ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +29 -4
  23. ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +74 -8
  24. ibm_watsonx_orchestrate/cli/commands/environment/types.py +1 -0
  25. ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +312 -0
  26. ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +171 -0
  27. ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +2 -2
  28. ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +2 -2
  29. ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +31 -25
  30. ibm_watsonx_orchestrate/cli/commands/models/models_command.py +6 -6
  31. ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +17 -8
  32. ibm_watsonx_orchestrate/cli/commands/server/server_command.py +147 -21
  33. ibm_watsonx_orchestrate/cli/commands/server/types.py +2 -1
  34. ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +9 -6
  35. ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +111 -32
  36. ibm_watsonx_orchestrate/cli/config.py +2 -0
  37. ibm_watsonx_orchestrate/cli/main.py +6 -0
  38. ibm_watsonx_orchestrate/client/agents/agent_client.py +83 -9
  39. ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +3 -3
  40. ibm_watsonx_orchestrate/client/agents/external_agent_client.py +2 -2
  41. ibm_watsonx_orchestrate/client/base_api_client.py +11 -10
  42. ibm_watsonx_orchestrate/client/connections/connections_client.py +49 -14
  43. ibm_watsonx_orchestrate/client/connections/utils.py +4 -2
  44. ibm_watsonx_orchestrate/client/credentials.py +4 -0
  45. ibm_watsonx_orchestrate/client/local_service_instance.py +1 -1
  46. ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +2 -2
  47. ibm_watsonx_orchestrate/client/service_instance.py +42 -1
  48. ibm_watsonx_orchestrate/client/tools/tempus_client.py +8 -3
  49. ibm_watsonx_orchestrate/client/utils.py +37 -2
  50. ibm_watsonx_orchestrate/docker/compose-lite.yml +252 -81
  51. ibm_watsonx_orchestrate/docker/default.env +40 -15
  52. ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +12 -0
  53. ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/__init__.py +3 -2
  54. ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +77 -0
  55. ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/events.py +6 -1
  56. ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/flow.py +85 -92
  57. ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/types.py +15 -6
  58. ibm_watsonx_orchestrate/flow_builder/utils.py +215 -0
  59. ibm_watsonx_orchestrate/run/connections.py +4 -4
  60. {ibm_watsonx_orchestrate-1.5.0b1.dist-info → ibm_watsonx_orchestrate-1.6.0.dist-info}/METADATA +2 -1
  61. {ibm_watsonx_orchestrate-1.5.0b1.dist-info → ibm_watsonx_orchestrate-1.6.0.dist-info}/RECORD +69 -62
  62. ibm_watsonx_orchestrate/experimental/flow_builder/flows/decorators.py +0 -144
  63. ibm_watsonx_orchestrate/experimental/flow_builder/utils.py +0 -115
  64. /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/__init__.py +0 -0
  65. /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/data_map.py +0 -0
  66. /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/constants.py +0 -0
  67. /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/node.py +0 -0
  68. /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/resources/flow_status.openapi.yml +0 -0
  69. {ibm_watsonx_orchestrate-1.5.0b1.dist-info → ibm_watsonx_orchestrate-1.6.0.dist-info}/WHEEL +0 -0
  70. {ibm_watsonx_orchestrate-1.5.0b1.dist-info → ibm_watsonx_orchestrate-1.6.0.dist-info}/entry_points.txt +0 -0
  71. {ibm_watsonx_orchestrate-1.5.0b1.dist-info → ibm_watsonx_orchestrate-1.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,215 @@
1
+ import importlib
2
+ import inspect
3
+ import re
4
+ import logging
5
+
6
+ from pydantic import BaseModel, TypeAdapter
7
+
8
+ from langchain_core.utils.json_schema import dereference_refs
9
+ from rpds import List
10
+ import typer
11
+ import yaml
12
+
13
+ from ibm_watsonx_orchestrate.agent_builder.tools.base_tool import BaseTool
14
+ from ibm_watsonx_orchestrate.agent_builder.tools.flow_tool import create_flow_json_tool
15
+ from ibm_watsonx_orchestrate.agent_builder.tools.openapi_tool import OpenAPITool, create_openapi_json_tools_from_content
16
+ from ibm_watsonx_orchestrate.agent_builder.tools.types import JsonSchemaObject, OpenApiToolBinding, ToolBinding, ToolRequestBody, ToolResponseBody, ToolSpec
17
+ from ibm_watsonx_orchestrate.client.tools.tempus_client import TempusClient
18
+ from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
19
+ from ibm_watsonx_orchestrate.client.utils import instantiate_client, is_local_dev
20
+
21
+ logger = logging.getLogger(__name__)
22
+
23
+ def get_valid_name(name: str) -> str:
24
+
25
+ return re.sub('\\W|^(?=\\d)','_', name)
26
+
27
+ def _get_json_schema_obj(parameter_name: str, type_def: type[BaseModel] | ToolRequestBody | ToolResponseBody | None, openapi_decode: bool = False) -> JsonSchemaObject:
28
+ if not type_def or type_def is None or type_def == inspect._empty:
29
+ return None
30
+
31
+ if inspect.isclass(type_def) and issubclass(type_def, BaseModel):
32
+ schema_json = type_def.model_json_schema()
33
+ schema_json = dereference_refs(schema_json)
34
+ schema_obj = JsonSchemaObject(**schema_json)
35
+ if schema_obj.required is None:
36
+ schema_obj.required = []
37
+ return schema_obj
38
+
39
+ if isinstance(type_def, ToolRequestBody) or isinstance(type_def, ToolResponseBody):
40
+ schema_json = type_def.model_dump()
41
+ schema_obj = JsonSchemaObject.model_validate(schema_json)
42
+
43
+ if openapi_decode:
44
+ # during tool import for openapi - we convert header, path and query parameter
45
+ # with a prefix "header_", "path_" and "query_". We need to remove it.
46
+ if schema_obj.type == 'object':
47
+ # for each element in properties, we need to check the key and if it is
48
+ # prefixed with "header_", "path_" and "query_", we need to remove the prefix.
49
+ if hasattr(schema_obj, "properties"):
50
+ new_properties = {}
51
+ for key, value in schema_obj.properties.items():
52
+ if key.startswith('header_'):
53
+ new_properties[key[7:]] = value
54
+ elif key.startswith('path_'):
55
+ new_properties[key[5:]] = value
56
+ elif key.startswith('query_'):
57
+ new_properties[key[6:]] = value
58
+ else:
59
+ new_properties[key] = value
60
+
61
+ schema_obj.properties = new_properties
62
+
63
+ # we also need to go thru required and replace it
64
+ if hasattr(schema_obj, "required"):
65
+ new_required = []
66
+ for item in schema_obj.required:
67
+ if item.startswith('header_'):
68
+ new_required.append(item[7:])
69
+ elif item.startswith('path_'):
70
+ new_required.append(item[5:])
71
+ elif item.startswith('query_'):
72
+ new_required.append(item[6:])
73
+ else:
74
+ new_required.append(item)
75
+ schema_obj.required = new_required
76
+
77
+ return schema_obj
78
+
79
+ # handle the non-obvious cases
80
+ schema_json = TypeAdapter(type_def).json_schema()
81
+ schema_json = dereference_refs(schema_json)
82
+ return JsonSchemaObject.model_validate(schema_json)
83
+
84
+
85
+ def _get_tool_request_body(schema_obj: JsonSchemaObject) -> ToolRequestBody:
86
+ if schema_obj is None:
87
+ return None
88
+
89
+ if isinstance(schema_obj, JsonSchemaObject):
90
+ request_obj = ToolRequestBody(type='object', properties=schema_obj.properties, required=schema_obj.required)
91
+ if schema_obj.model_extra:
92
+ request_obj.__pydantic_extra__ = schema_obj.model_extra
93
+
94
+ return request_obj
95
+
96
+ raise ValueError(f"Invalid schema object: {schema_obj}")
97
+
98
+ def _get_tool_response_body(schema_obj: JsonSchemaObject) -> ToolResponseBody:
99
+ if schema_obj is None:
100
+ return None
101
+
102
+ if isinstance(schema_obj, JsonSchemaObject):
103
+ response_obj = ToolResponseBody(type=schema_obj.type)
104
+ if schema_obj.title:
105
+ response_obj.title = schema_obj.title
106
+ if schema_obj.description:
107
+ response_obj.description = schema_obj.description
108
+ if schema_obj.properties:
109
+ response_obj.properties = schema_obj.properties
110
+ if schema_obj.items:
111
+ response_obj.items = schema_obj.items
112
+ if schema_obj.uniqueItems:
113
+ response_obj.uniqueItems = schema_obj.uniqueItems
114
+ if schema_obj.anyOf:
115
+ response_obj.anyOf = schema_obj.anyOf
116
+ if schema_obj.required:
117
+ response_obj.required = schema_obj.required
118
+
119
+ if schema_obj.model_extra:
120
+ response_obj.__pydantic_extra__ = schema_obj.model_extra
121
+
122
+ return response_obj
123
+
124
+ raise ValueError(f"Invalid schema object: {schema_obj}")
125
+
126
+
127
+ async def import_flow_model(model):
128
+
129
+ if not is_local_dev():
130
+ raise typer.BadParameter(f"Flow tools are only supported in local environment.")
131
+
132
+ if model is None:
133
+ raise typer.BadParameter(f"No model provided.")
134
+
135
+ tool = create_flow_json_tool(name=model["spec"]["name"],
136
+ description=model["spec"]["description"],
137
+ permission="read_only",
138
+ flow_model=model)
139
+
140
+ client = instantiate_client(ToolClient)
141
+
142
+ tool_id = None
143
+ exist = False
144
+ existing_tools = client.get_draft_by_name(tool.__tool_spec__.name)
145
+ if len(existing_tools) > 1:
146
+ raise ValueError(f"Multiple existing tools found with name '{tool.__tool_spec__.name}'. Failed to update tool")
147
+
148
+ if len(existing_tools) > 0:
149
+ existing_tool = existing_tools[0]
150
+ exist = True
151
+ tool_id = existing_tool.get("id")
152
+
153
+ tool_spec = tool.__tool_spec__.model_dump(mode='json', exclude_unset=True, exclude_none=True, by_alias=True)
154
+ name = tool_spec['name']
155
+ if exist:
156
+ logger.info(f"Updating flow '{name}'")
157
+ client.update(tool_id, tool_spec)
158
+ else:
159
+ logger.info(f"Deploying flow '{name}'")
160
+ response = client.create(tool_spec)
161
+ tool_id = response["id"]
162
+
163
+ return tool_id
164
+
165
+ def import_flow_support_tools():
166
+
167
+ if not is_local_dev():
168
+ # we can't import support tools into non-local environments yet
169
+ return
170
+
171
+ client = instantiate_client(TempusClient)
172
+
173
+ logger.info(f"Import 'get_flow_status' tool spec...")
174
+ tools = [create_flow_status_tool("i__get_flow_status_intrinsic_tool__")]
175
+
176
+ return tools
177
+
178
+ # Assisted by watsonx Code Assistant
179
+
180
+ def create_flow_status_tool(flow_status_tool: str, TEMPUS_ENDPOINT: str="http://wxo-tempus-runtime:9044") -> dict:
181
+
182
+ spec = ToolSpec(
183
+ name=flow_status_tool,
184
+ description="We can use the flow instance id to get the status of a flow. Only call this on explicit request by the user.",
185
+ permission='read_only',
186
+ display_name= "Get flow status"
187
+ )
188
+
189
+ openapi_binding = OpenApiToolBinding(
190
+ http_path="/flows",
191
+ http_method="GET",
192
+ security=[],
193
+ servers=[TEMPUS_ENDPOINT]
194
+ )
195
+
196
+ spec.binding = ToolBinding(openapi=openapi_binding)
197
+ # Input Schema
198
+ properties = {
199
+ "query_instance_id": {
200
+ "type": "string",
201
+ "title": "instance_id",
202
+ "description": "Identifies the instance ID of the flow.",
203
+ "in": "query"
204
+ }
205
+ }
206
+
207
+ spec.input_schema = ToolRequestBody(
208
+ type='object',
209
+ properties=properties,
210
+ required=[]
211
+ )
212
+ spec.output_schema = ToolResponseBody(type='array', description='Return the status of a flow instance.')
213
+
214
+ return OpenAPITool(spec=spec)
215
+
@@ -18,8 +18,8 @@ def bearer_token(app_id:str) -> BearerTokenAuthCredentials:
18
18
  def api_key_auth(app_id:str) -> APIKeyAuthCredentials:
19
19
  return get_application_connection_credentials(ConnectionType.API_KEY_AUTH, app_id=app_id)
20
20
 
21
- # def oauth2_auth_code(app_id:str) -> BearerTokenAuthCredentials:
22
- # return get_application_connection_credentials(ConnectionType.OAUTH2_AUTH_CODE, app_id=app_id)
21
+ def oauth2_auth_code(app_id:str) -> OAuth2TokenCredentials:
22
+ return get_application_connection_credentials(ConnectionType.OAUTH2_AUTH_CODE, app_id=app_id)
23
23
 
24
24
  # def oauth2_implicit(app_id:str) -> BearerTokenAuthCredentials:
25
25
  # return get_application_connection_credentials(ConnectionType.OAUTH2_IMPLICIT, app_id=app_id)
@@ -27,8 +27,8 @@ def api_key_auth(app_id:str) -> APIKeyAuthCredentials:
27
27
  # def oauth2_password(app_id:str) -> BearerTokenAuthCredentials:
28
28
  # return get_application_connection_credentials(ConnectionType.OAUTH2_PASSWORD, app_id=app_id)
29
29
 
30
- # def oauth2_client_creds(app_id:str) -> BearerTokenAuthCredentials:
31
- # return get_application_connection_credentials(ConnectionType.OAUTH2_CLIENT_CREDS, app_id=app_id)
30
+ def oauth2_client_creds(app_id:str) -> OAuth2TokenCredentials:
31
+ return get_application_connection_credentials(ConnectionType.OAUTH2_CLIENT_CREDS, app_id=app_id)
32
32
 
33
33
  def oauth2_on_behalf_of(app_id:str) -> OAuth2TokenCredentials:
34
34
  return get_application_connection_credentials(ConnectionType.OAUTH_ON_BEHALF_OF_FLOW, app_id=app_id)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ibm-watsonx-orchestrate
3
- Version: 1.5.0b1
3
+ Version: 1.6.0
4
4
  Summary: IBM watsonx.orchestrate SDK
5
5
  Author-email: IBM <support@ibm.com>
6
6
  License: MIT License
@@ -11,6 +11,7 @@ Requires-Dist: click<8.2.0,>=8.0.0
11
11
  Requires-Dist: docstring-parser<1.0,>=0.16
12
12
  Requires-Dist: httpx<1.0.0,>=0.28.1
13
13
  Requires-Dist: ibm-cloud-sdk-core>=3.22.0
14
+ Requires-Dist: ibm-watsonx-orchestrate-evaluation-framework==1.0.5
14
15
  Requires-Dist: jsonref==1.1.0
15
16
  Requires-Dist: jsonschema<5.0.0,>=4.23.0
16
17
  Requires-Dist: langchain-community<1.0.0,>=0.3.12
@@ -1,55 +1,61 @@
1
- ibm_watsonx_orchestrate/__init__.py,sha256=-O_eW7OaX1sLXk-oyJB6kCDMPZdHGXzyM-omTW_94Z8,427
1
+ ibm_watsonx_orchestrate/__init__.py,sha256=KDUTHNK8vHdTV_eRGGNbFaTC8l7NoL3dvb80vaYk8fE,425
2
2
  ibm_watsonx_orchestrate/agent_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- ibm_watsonx_orchestrate/agent_builder/agents/__init__.py,sha256=v4G0MGh11eOCkUJP_4AMOcFgzW14oE41G3iFp7G2vvw,376
4
- ibm_watsonx_orchestrate/agent_builder/agents/agent.py,sha256=PcBg2dRi-IOzvl24u8fa3B0jLaM5hzgkpTS8k56L9Ag,919
3
+ ibm_watsonx_orchestrate/agent_builder/agents/__init__.py,sha256=lmZwaiWXD4Ea19nrMwZXaqCxFMG29xNS8vUoZtK3yI4,392
4
+ ibm_watsonx_orchestrate/agent_builder/agents/agent.py,sha256=I8ZpOKOGXAmhUIwusDmLqCUawSg74-WZFJ5IijruxAQ,932
5
5
  ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py,sha256=U1cKr22umcWCMgI4G3r5JZXHPfWYbCbiTydH4YZy_Og,987
6
6
  ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py,sha256=LQM-DfOg2ajzrEur_F-aSrqKqaX4TbeajRe9YWz6s7E,981
7
- ibm_watsonx_orchestrate/agent_builder/agents/types.py,sha256=1I2Z2jaRsrd-vzSGO-K_MHXkeCeValbbUvNBeSaer88,9568
8
- ibm_watsonx_orchestrate/agent_builder/connections/__init__.py,sha256=T7rgkNrG5wx-DfZVb7ree5hw_fCV0FbxVFxvr0bnxdw,722
7
+ ibm_watsonx_orchestrate/agent_builder/agents/types.py,sha256=E5frrJPL7URhH6lD3QsO2heyndsBrfFWDRxXiIdH_nI,12095
8
+ ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py,sha256=5TXa8UqKUAlDo4hTbE5S9OPEkQhxXhPJHJC4pEe8U00,92
9
+ ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py,sha256=jNVF_jgz1Dmt7-RxAceAS0XWXk_fx9h3sS_fGrvZT28,941
10
+ ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py,sha256=U76wZrblSXx4qv7phcPYs3l8SiFzwZ5cJ74u8Y2iYhU,608
11
+ ibm_watsonx_orchestrate/agent_builder/connections/__init__.py,sha256=VG45ifpp6B00-ZAGW-dIEHFh18Fx3wbyfUiDDKS74u4,718
9
12
  ibm_watsonx_orchestrate/agent_builder/connections/connections.py,sha256=DImRGTXiky1KEVxM_5RmeLom74Lej9bBD8cXafkV6FY,4501
10
- ibm_watsonx_orchestrate/agent_builder/connections/types.py,sha256=znSOdikTv_yIZaVDwoHwOSPu6b9hajj8miCMKOBmi2w,9280
13
+ ibm_watsonx_orchestrate/agent_builder/connections/types.py,sha256=m4AhHW4HgHqeQEonLaPxwGsnVzSaBSg2M94HZ8zbRsk,9469
11
14
  ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py,sha256=_KuGF0RZpKpwdt31rzjlTjrhGRFz2RtLzleNkhMNX4k,1831
12
15
  ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py,sha256=mRow0rf5EHeJCCsTrONeTq10jShs_yIBQjpgDY_mTrI,1641
13
16
  ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py,sha256=ttre2pRs_I_KBWSht60zT3dJw8twQml3m92ZkiRAoxs,7994
14
17
  ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py,sha256=alJEjlneWlGpadmvOVlDjq5wulytKOmpkq3849fhKNc,131
15
- ibm_watsonx_orchestrate/agent_builder/model_policies/types.py,sha256=ydDNRgMBUmd38SChwljV1zPVucvK8GiMRLdDwZqD7HM,875
18
+ ibm_watsonx_orchestrate/agent_builder/model_policies/types.py,sha256=a6f9HP2OlZIe36k_PDRmFtefz2Ms2KBpzJ_jz8ggYbk,882
16
19
  ibm_watsonx_orchestrate/agent_builder/models/__init__.py,sha256=R5nTbyMBzahONdp5-bJFp-rbtTDnp2184k6doZqt67w,31
17
- ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=OJ266ta2AcO5ecvhztf0d0gCvCgbB3BliOpRYzz4LnA,9533
20
+ ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=Zr0xHZpTVPZnaUSvlopc2iYVfKmhiqEuvaVe37HVxlw,9457
18
21
  ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py,sha256=KXRPgBK-F9Qa6IYqEslkN3ANj3cmZoZQnlSiy_-iXCk,1054
19
22
  ibm_watsonx_orchestrate/agent_builder/toolkits/types.py,sha256=yY-V4Hqct91-Rs4rJ3rY9OhzKkSMdOT63o224o-U9eg,959
20
23
  ibm_watsonx_orchestrate/agent_builder/tools/__init__.py,sha256=adkYX0wgB-RKFCUBw6LPJhNVelUjUdsxipGPk2ghLns,479
21
24
  ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py,sha256=unJBOJUY8DAq3T3YX5d1H5KehJUCjObAdpGLVoWIfzw,1156
22
- ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py,sha256=kYrHyvrOQ99T8mwmX4CYjsMfSfAh0OL9SoyBN7EZbJA,14875
23
- ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py,sha256=TEx8XCLxjD693clU-cQ229t6Gg7IpgdF1Ht0mqE4WfE,10531
24
- ibm_watsonx_orchestrate/agent_builder/tools/types.py,sha256=C1xfGWQuvOCwOaoZqeWxO67bs3hIlZkIizCNR4yhPoc,7567
25
+ ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py,sha256=DJWYVmIjw1O_cbzPpwU0a_vIZGvo0mj8UsjW9zkKMlA,2589
26
+ ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py,sha256=Q2-TcUUjBAZWlhOqxfkB3yQpdxgdZAAJh0VWDh_dZPQ,16359
27
+ ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py,sha256=qVyAe7hKLZ1V4cvqDUCpYs6JBKl9MHSr0yrri-nSceA,10600
28
+ ibm_watsonx_orchestrate/agent_builder/tools/types.py,sha256=TXxWCSddXqRL2GbjkxT4vYJcRMjWS7g22wMMrBz-Wj8,7934
25
29
  ibm_watsonx_orchestrate/agent_builder/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
30
  ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py,sha256=QEanM6FpkmntvS02whdhWx1d4v6zT_1l9ipEbfTgHs8,7623
27
31
  ibm_watsonx_orchestrate/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- ibm_watsonx_orchestrate/cli/config.py,sha256=C_iSP6WSb5SO6cVPTueQ9lEX16gYOLXD12cKXD6w_KQ,8168
32
+ ibm_watsonx_orchestrate/cli/config.py,sha256=BE2ze0o9vLoyrk7q9mcRek2rDL2cTsVtsSGWw4W0y6M,8212
29
33
  ibm_watsonx_orchestrate/cli/init_helper.py,sha256=Lb0bj6b8EaeBxkfGyrBBvc581ORg_S5-tHcXWQ-mBmE,1466
30
- ibm_watsonx_orchestrate/cli/main.py,sha256=noyKaoJzXig4gNavxNRdEe9mknBqJdt4kS5o7kDljjo,2616
34
+ ibm_watsonx_orchestrate/cli/main.py,sha256=TyVuNC12GDxo4InaPfQ6e6Xk5bGarfSoIRAslGifUQ0,2914
31
35
  ibm_watsonx_orchestrate/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py,sha256=mblQIcwOdzTU0Au8-6b0G2OVQIe86P1nNRD2n4evO88,8354
33
- ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=ErI1DMJkh6b4FaYZGL4s9MSWiLCq98PFfkuHftySVjo,42520
36
+ ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py,sha256=-UX6ypiF_XwmEwe0twVGsfnO29Xs8xPOPJ5vk8EIifo,8991
37
+ ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=zTk3AemWOldfgKYYR1MOcT7z2JbYdgZgSsi7KxugFGw,47934
34
38
  ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py,sha256=fVIFhPUTPdxsxIE10nWL-W5wvBR-BS8V8D6r__J8R98,822
35
39
  ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py,sha256=WjQxwJujvo28SsWgfJSXIpkcgniKcskJ2arL4MOz0Ys,455
36
40
  ibm_watsonx_orchestrate/cli/commands/channels/types.py,sha256=h8gA3EM7k5X08sk8T9b5siL-XL9uUE-hl_jS-0PDBHA,254
37
41
  ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py,sha256=vPCr6z1n1yzGDjTlM4f3_9MiuVRzNmXbvUifm6XyQi8,1103
38
- ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=9FjDIxc9-9NildYQ7mvZDZWrZ8zgPjVEXoxJs7Mx5Zc,5001
39
- ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py,sha256=5XnL6wMw3R9CjYDxZxBFJcdPxmNBuYIkfJlVUODvCyc,1372
40
- ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py,sha256=_g_MbdDEJrV5qsbeamMzgOOdNh-xePhjI0s3Ci3__64,9935
41
- ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=x-7UESwKNGf80K4kTyLb8ZI2_jPN7x7rUy2KwH5npLw,22022
42
- ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py,sha256=E-9uD2mXiWzxGRnP10bZN4YIt6NfCJdUFZWGXPP-l_o,2688
43
- ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py,sha256=F1ef-VlYV-X97du8AlrluOhV0o50S3IBjqffk7Tw-yU,7534
44
- ibm_watsonx_orchestrate/cli/commands/environment/types.py,sha256=BEHkzhsXoWWZsJrK6klv7Bgt2L3FFqzjNGqSbpdoHs8,159
45
- ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py,sha256=B-9cgqwdR6nyJdEkZHO0_-VqtM89Oy6w5P6ONKPpLgw,3089
46
- ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py,sha256=vLe1PV_qohLMctKl1Rajzyyhb0JfDC_XV_7vIfs_E8A,9595
42
+ ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=0S1ch8SwkGRtAyy7nAZEjKl92hFkIE9TU71JJ82zdjU,8128
43
+ ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py,sha256=Q9vg2Z5Fsunu6GQFY_TIsNRhUCa0SSGSPnK4jxSGK34,1581
44
+ ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py,sha256=qgg2NbAB7g_PHPHd0ZLUm0EjyaCSPi1qpOhtyOlydcY,10151
45
+ ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=h3iEA52Tv_9id0TBVbcm0McbiLppE4SbsdKtWT5XNyc,22177
46
+ ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py,sha256=xwq7gdyjMtl2RYAnLAahGk2wDetr9BStt8yu7JkeBhk,3768
47
+ ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py,sha256=bHJ26iz9EF7vvJ2dWf5fGOaddGBFme9OsPmHyNNrtpI,10182
48
+ ibm_watsonx_orchestrate/cli/commands/environment/types.py,sha256=qKcgIUfTPJIomLor-utz4qi7YhBMpb1l2DiSvjVSgaA,175
49
+ ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py,sha256=YHaTxcQxLkuojFhNcTtYbzb_lTv_dYBuz2IHl9RXXwU,11689
50
+ ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py,sha256=pTWyuPNHKOPCYTMlYWwoGojZBdvDrHme2EAel0l4ltk,6957
51
+ ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py,sha256=Hxj33rFEYo1Vr2bk-uRwRhNssAETtTQgWTREvC0Nxds,3348
52
+ ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py,sha256=pbsjkBssLOTSMfh5ymgDAq9DxVdD01eAI33si0JZqS4,9631
47
53
  ibm_watsonx_orchestrate/cli/commands/login/login_command.py,sha256=xArMiojoozg7Exn6HTpbTcjDO2idZRA-y0WV-_Ic1Sk,651
48
- ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=SIae_rFxc6s2Ui75Ffi6CVzRQYfu05ETuW0wd0p5crQ,7940
49
- ibm_watsonx_orchestrate/cli/commands/models/models_command.py,sha256=5yzlQZ3tAF-wYJpIGZxcvBhzgtudjBkllAAric02J7w,6404
50
- ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=hsdaUCqk4ERroYfx0FCcF09nNcQaAG1eheWt1AjNGT4,18152
51
- ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=TWjB0SR7gOwFDMmAtwhJlHyYe2gUTZbCcMWRynbVTHQ,31973
52
- ibm_watsonx_orchestrate/cli/commands/server/types.py,sha256=WaaIKB8IzDdxcetkdtHbupXr4u2VDcSRdHPrxh2oQ3E,4169
54
+ ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=RVZfFCuPWiASkR9Mox61v5SZ1AoRxo4_g9stnbfjCkc,7994
55
+ ibm_watsonx_orchestrate/cli/commands/models/models_command.py,sha256=xYbMHRM98TCBmnwgIOsqpfjWqD7HVirn6A4KyEgQEcE,6418
56
+ ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=BNfUoWST60x3k7yIvSbtBR3rmyTQmz9g0TDK2WOoOE4,18610
57
+ ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=VstqSn3dzuzziwEc0VVkf1y9E3qN94mTJuCbeFO4KCY,37478
58
+ ibm_watsonx_orchestrate/cli/commands/server/types.py,sha256=UCrgGErbSVBnOzesfjrIii4tTCuVfWemYz5AKGZX0oA,4213
53
59
  ibm_watsonx_orchestrate/cli/commands/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
60
  ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py,sha256=CzXRkd-97jXyS6LtaaNtMah-aZu0919dYl-mDwzGThc,344
55
61
  ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -57,62 +63,63 @@ ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_comman
57
63
  ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
64
  ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py,sha256=Wa0L8E44EdxH9LdOvmnluLk_ApJVfTLauNOC1kV4W8k,6515
59
65
  ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py,sha256=e8YKUr_8CodA5fgYjUKj-Dk856foQ5Iz3I9Jld5pU_o,4193
60
- ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=T7rbkbDbfKDGVi2W7zL6NmmyNkUvlE73XmrHvbR7nzY,11526
66
+ ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=fq48tWNbuYFjrHXyVDmJBT96tww5iMdE2iOYUjr-fUc,11563
61
67
  ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py,sha256=Cuo1ZvlfsymojqbadCqdwwS0HUjaWpe2XQrV70g61_s,3943
62
- ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=BIdhqGL-jAoaktOUnk4ET_AaRPLSECG2CL9--1Ns0k8,36495
68
+ ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=tgobereuRf6xIsP8Gh-4pWifvJ9zBdeAkMSmd4owE1M,39195
63
69
  ibm_watsonx_orchestrate/cli/commands/tools/types.py,sha256=_md0GEa_cTH17NO_moWDY_LNdFvyEFQ1UVB9_FltYiA,173
64
70
  ibm_watsonx_orchestrate/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- ibm_watsonx_orchestrate/client/base_api_client.py,sha256=5GbL_oL9rSMIuuge-qIjuKs0Hp6U-YW1HSumqPf9J10,4501
71
+ ibm_watsonx_orchestrate/client/base_api_client.py,sha256=NklphjtCpSFroBocOp4OiklC0iIF0JzXJjtJhUd8gZ8,4752
66
72
  ibm_watsonx_orchestrate/client/base_service_instance.py,sha256=sM_r7bln9BpgEOhaJMdFI9-je3T7GLQxLduk-in0oRY,235
67
73
  ibm_watsonx_orchestrate/client/client.py,sha256=pgYeXHe4_Makrw0gTyM343DQdrZZB8cjitFHKcbdzuc,2432
68
74
  ibm_watsonx_orchestrate/client/client_errors.py,sha256=72MKCNZbKoo2QXyY0RicLhP3r0ALRjgOEbHOHNSyOYI,11712
69
- ibm_watsonx_orchestrate/client/credentials.py,sha256=ksqfecJkx-XSOkpHksomdBVAKqEpuVGSk65qpfemYFQ,3638
70
- ibm_watsonx_orchestrate/client/local_service_instance.py,sha256=ilqbcd0R6r0w6H5tMlQf0YRFk8IjbJd9sXwT41iQ5iQ,3440
71
- ibm_watsonx_orchestrate/client/service_instance.py,sha256=fkxDhp8jALw2W_1BOMDYlCGgR7pxdnXms5ejre6CkMY,2969
72
- ibm_watsonx_orchestrate/client/utils.py,sha256=qvVDrtlzJh-7ADG4SY0Xg38_AcjDRGuG6VgyWdF4NBg,3570
73
- ibm_watsonx_orchestrate/client/agents/agent_client.py,sha256=CNRMrjDN2s-nOffi9E5VaAMMKDZdpIy002oESA_JY30,1931
74
- ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py,sha256=6AA3sPhoKVH17Qaq0sPae4itjrOAsBhG6y6mt8Eq6fI,1685
75
- ibm_watsonx_orchestrate/client/agents/external_agent_client.py,sha256=aBGSQbLtdwBuasl58IISyNFtrCNT5KQ9Qd4wwVTLwWw,1768
75
+ ibm_watsonx_orchestrate/client/credentials.py,sha256=gDVeeQZDdbbjJiO1EI61yx2oRgTQctxA2ZesSDHI4DA,3786
76
+ ibm_watsonx_orchestrate/client/local_service_instance.py,sha256=gdeol7xNRVnxEMr5rui1ovqtwDfMRziHn9GIjo7-MVo,3447
77
+ ibm_watsonx_orchestrate/client/service_instance.py,sha256=uZlsMW9LC_2GggqEjBQY09fm6uZJ-0audwzqgCyjbbQ,5277
78
+ ibm_watsonx_orchestrate/client/utils.py,sha256=86UH5H54uTJA2kFb4dXrnGfs7hFQZ3h21ElwngZpT24,4745
79
+ ibm_watsonx_orchestrate/client/agents/agent_client.py,sha256=v1ZqXKj3p5JeJyOLpV84UUI2LY8XPjW1ejo5yzkeiMQ,4708
80
+ ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py,sha256=1JQN0E4T_uz5V0LM-LD1ahNu2KCeFBjXAr8WCiP9mkE,1745
81
+ ibm_watsonx_orchestrate/client/agents/external_agent_client.py,sha256=iQ44XBdC4rYfS-zFn4St1xC5y5gf5SNqKHzMNQcFDZc,1808
76
82
  ibm_watsonx_orchestrate/client/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
83
  ibm_watsonx_orchestrate/client/analytics/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
84
  ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py,sha256=0YS_BCpmf5oGFawpZkJ38cuz5ArhKsZIbSydWRd194s,1340
79
85
  ibm_watsonx_orchestrate/client/connections/__init__.py,sha256=J7TOyVg38h71AlaJjlFs5fOuAXTceHvELtOJ9oz4Mvg,207
80
- ibm_watsonx_orchestrate/client/connections/connections_client.py,sha256=WwfwdykWByCItI14ltQVEOCXm1dnwOTW4xIlS4lbois,6820
81
- ibm_watsonx_orchestrate/client/connections/utils.py,sha256=9F-35qnSEVweH4ZhBkbsqcQln_kl197K3BQlpHFKRd8,2566
86
+ ibm_watsonx_orchestrate/client/connections/connections_client.py,sha256=B6LQPwoFHg_CIXHEJBjVu6fXnRj_xVsLGsC-DhmdfSQ,8478
87
+ ibm_watsonx_orchestrate/client/connections/utils.py,sha256=f6HsiDI6cycOqfYN6P4uZ3SQds83xlh83zTUioZPeYk,2618
82
88
  ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py,sha256=U-pG_H0I8992f0V13Li_e1dksKp54MrYX3X9bvr-09w,2181
83
89
  ibm_watsonx_orchestrate/client/model_policies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py,sha256=QE11XgQjoYGhCkj-HerWX7WEOnuUAgkdDbj0Ma14Ahk,2224
90
+ ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py,sha256=Ddjraesv1MRPhZebB0PdBL0zgdsoWmnYpWTUci_6XFI,2258
85
91
  ibm_watsonx_orchestrate/client/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
92
  ibm_watsonx_orchestrate/client/models/models_client.py,sha256=ZvP3iPgUFw_SXp41kJuzWQDsgQOF5oqJURH7dFEnPz8,2164
87
93
  ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py,sha256=TLFNS39EeBD_t4Y-rX9sGp4sWBDr--mE5qVtHq8Q2hk,3121
88
- ibm_watsonx_orchestrate/client/tools/tempus_client.py,sha256=Q6h-ynbjU1GBYweeNORgqhsP6nvLE2sKjS7sk7VFZP0,1678
94
+ ibm_watsonx_orchestrate/client/tools/tempus_client.py,sha256=24fKDZUOVHBW-Vj4mubnpnUmab5LgGn8u5hOVyJaozI,1804
89
95
  ibm_watsonx_orchestrate/client/tools/tool_client.py,sha256=d3i3alVwa0TCN72w9sWOrM20GCbNmnpTnqEOJVbBIFM,1994
90
- ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=aqfaWMiu7__6ogk0NpgkTm0nNgMHYcy90NRq2x-6Usc,26597
91
- ibm_watsonx_orchestrate/docker/default.env,sha256=VHU1ZkUndqaKYU3DKegTZsw-kJYWRC3SBSsbFP_zvV8,5117
96
+ ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=W6tXCk8dDUzNsUpl6lUqpofRVDk8tnKWGD0UgGqpbck,32862
97
+ ibm_watsonx_orchestrate/docker/default.env,sha256=rKmPF66kV0aJzsrWOcdiO0DKRIlvTxQESeuIdSAnRl0,5331
98
+ ibm_watsonx_orchestrate/docker/proxy-config-single.yaml,sha256=WEbK4ENFuTCYhzRu_QblWp1_GMARgZnx5vReQafkIG8,308
92
99
  ibm_watsonx_orchestrate/docker/start-up.sh,sha256=LTtwHp0AidVgjohis2LXGvZnkFQStOiUAxgGABOyeUI,1811
93
100
  ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl,sha256=Hi3-owh5OM0Jz2ihX9nLoojnr7Ky1TV-GelyqLcewLE,2047417
94
101
  ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz,sha256=e5T-q7XPAtiCyQljwZp6kk3Q_4Tg6y5sijHTkscmqqQ,2025466
95
102
  ibm_watsonx_orchestrate/docker/tempus/common-config.yaml,sha256=Zo3F36F5DV4VO_vUg1RG-r4WhcukVh79J2fXhGl6j0A,22
96
- ibm_watsonx_orchestrate/experimental/flow_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- ibm_watsonx_orchestrate/experimental/flow_builder/data_map.py,sha256=1brmWWFERDsNG2XGais-5-r58LKUUwBtqwdaLQIFRhE,503
98
- ibm_watsonx_orchestrate/experimental/flow_builder/node.py,sha256=tp_ssBOSDDi8q-ET2bP7xRPwNOLmLUgQ7v9zZZqn9SU,4090
99
- ibm_watsonx_orchestrate/experimental/flow_builder/types.py,sha256=SEl4v2jUJtL8hfE5T6p93B-na9_FI_WJk9AKd_TU2V0,27324
100
- ibm_watsonx_orchestrate/experimental/flow_builder/utils.py,sha256=XoKzocDzOuUp4q8JkCG0YHni1MkL-ddO-OviF90A4-4,4425
101
- ibm_watsonx_orchestrate/experimental/flow_builder/flows/__init__.py,sha256=MkPxvsXyMCd9jE6Vh70j0YEHQIKmwllPd635vmeTyeU,888
102
- ibm_watsonx_orchestrate/experimental/flow_builder/flows/constants.py,sha256=XXYtL5Y1OTjj3jKo2zoJiwb7FCUNu_M43fgU8w591TY,322
103
- ibm_watsonx_orchestrate/experimental/flow_builder/flows/decorators.py,sha256=krJHviV7rfPlW2TDveKA0XA9yrnaQeQiNpwcxg7SP4o,5441
104
- ibm_watsonx_orchestrate/experimental/flow_builder/flows/events.py,sha256=tfTOiBP1MbaTpe89PKeHuo96amrPKOBqYh8cU9M_YdA,2743
105
- ibm_watsonx_orchestrate/experimental/flow_builder/flows/flow.py,sha256=_UDDGVshez3PpJXA2t1ISjnvlrQZKO7i6vBDTUg-IFI,51186
106
- ibm_watsonx_orchestrate/experimental/flow_builder/resources/flow_status.openapi.yml,sha256=UkQ4FD_ZhvZuMOjrgLm7cx8zJFZD7Ri-MPCe_zktU-8,1664
103
+ ibm_watsonx_orchestrate/flow_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
+ ibm_watsonx_orchestrate/flow_builder/data_map.py,sha256=1brmWWFERDsNG2XGais-5-r58LKUUwBtqwdaLQIFRhE,503
105
+ ibm_watsonx_orchestrate/flow_builder/node.py,sha256=tp_ssBOSDDi8q-ET2bP7xRPwNOLmLUgQ7v9zZZqn9SU,4090
106
+ ibm_watsonx_orchestrate/flow_builder/types.py,sha256=KPASSlw55Dzp_8nhFdJUN0UI8_knMzLCK9epVcfP5NY,27689
107
+ ibm_watsonx_orchestrate/flow_builder/utils.py,sha256=6v-5Do7_R_mCX0Td5RQO4X8DBWb_HM8HbwkUyGAQOHg,8200
108
+ ibm_watsonx_orchestrate/flow_builder/flows/__init__.py,sha256=UTwpiAlT9Wytn1kK-kgUaY6UYjLKsiaQK0ZdSbKLtM0,897
109
+ ibm_watsonx_orchestrate/flow_builder/flows/constants.py,sha256=XXYtL5Y1OTjj3jKo2zoJiwb7FCUNu_M43fgU8w591TY,322
110
+ ibm_watsonx_orchestrate/flow_builder/flows/decorators.py,sha256=k9-r9ly5ih5oHBqjEgrc2vfeVC4LOMKg3YVLacBDubM,2702
111
+ ibm_watsonx_orchestrate/flow_builder/flows/events.py,sha256=bhbN3ljl-WyiJ_LzMd99IlX0QrhB_bASyHWv8mtTjvo,2978
112
+ ibm_watsonx_orchestrate/flow_builder/flows/flow.py,sha256=1Tc8L8rGbocPVdUNk-Zp_Fi9QxGLSg22LWPewlH7GKU,51020
113
+ ibm_watsonx_orchestrate/flow_builder/resources/flow_status.openapi.yml,sha256=UkQ4FD_ZhvZuMOjrgLm7cx8zJFZD7Ri-MPCe_zktU-8,1664
107
114
  ibm_watsonx_orchestrate/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- ibm_watsonx_orchestrate/run/connections.py,sha256=o5TjSqxLG8zLk6UGWCcz_UdylMWZOyUT1o3i1XkL5Uc,1844
115
+ ibm_watsonx_orchestrate/run/connections.py,sha256=K-65GXPA8GEsVmRdPfMe_LB2G9RfXQUr95wvRUOhkS4,1828
109
116
  ibm_watsonx_orchestrate/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
117
  ibm_watsonx_orchestrate/utils/utils.py,sha256=U7z_2iASoFiZ2zM0a_2Mc2Y-P5oOT7hOwuurzC9Z3N8,721
111
118
  ibm_watsonx_orchestrate/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
119
  ibm_watsonx_orchestrate/utils/logging/logger.py,sha256=FzeGnidXAjC7yHrvIaj4KZPeaBBSCniZFlwgr5yV3oA,1037
113
120
  ibm_watsonx_orchestrate/utils/logging/logging.yaml,sha256=9_TKfuFr1barnOKP0fZT5D6MhddiwsXVTFjtRbcOO5w,314
114
- ibm_watsonx_orchestrate-1.5.0b1.dist-info/METADATA,sha256=fK06S-FUjO--gB2U4hToj003wab9Mr34zdHLQx456WY,1372
115
- ibm_watsonx_orchestrate-1.5.0b1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
116
- ibm_watsonx_orchestrate-1.5.0b1.dist-info/entry_points.txt,sha256=SfIT02-Jen5e99OcLhzbcM9Bdyf8SGVOCtnSplgZdQI,69
117
- ibm_watsonx_orchestrate-1.5.0b1.dist-info/licenses/LICENSE,sha256=Shgxx7hTdCOkiVRmfGgp_1ISISrwQD7m2f0y8Hsapl4,1083
118
- ibm_watsonx_orchestrate-1.5.0b1.dist-info/RECORD,,
121
+ ibm_watsonx_orchestrate-1.6.0.dist-info/METADATA,sha256=EWjQe6HDCv96kYppOUVNh6RZFSfBanxDq8bSebg90CM,1437
122
+ ibm_watsonx_orchestrate-1.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
123
+ ibm_watsonx_orchestrate-1.6.0.dist-info/entry_points.txt,sha256=SfIT02-Jen5e99OcLhzbcM9Bdyf8SGVOCtnSplgZdQI,69
124
+ ibm_watsonx_orchestrate-1.6.0.dist-info/licenses/LICENSE,sha256=Shgxx7hTdCOkiVRmfGgp_1ISISrwQD7m2f0y8Hsapl4,1083
125
+ ibm_watsonx_orchestrate-1.6.0.dist-info/RECORD,,
@@ -1,144 +0,0 @@
1
- """
2
- A set of decorators to help define different Flow constructs.
3
- """
4
-
5
- import asyncio
6
- from functools import wraps
7
- import logging
8
- import inspect
9
- from typing import Callable, Optional, Sequence
10
- from pydantic import BaseModel
11
- from ..types import extract_node_spec, UserNodeSpec, FlowSpec
12
-
13
- from .flow import FlowFactory, Flow
14
-
15
- logger = logging.getLogger(__name__)
16
-
17
-
18
- class FlowWrapper:
19
- def __init__(self, func, a_model):
20
- self.func = func
21
- self.a_model = a_model
22
- wraps(func)(self) # Preserve metadata
23
-
24
- def __call__(self, *args, **kwargs):
25
- result = self.func(self.a_model)
26
- if not isinstance(result, Flow):
27
- raise ValueError("Return value must be of type Flow")
28
- return result
29
-
30
- def user(*args, name: str|None=None, description: str|None=None, owners: Sequence[str]|None = None, message: str | None = None):
31
- """Decorator to mark a function as a user node specification."""
32
-
33
- def decorator(func: Callable):
34
- node_spec = extract_node_spec(func, name, description)
35
- func.__user_spec__ = UserNodeSpec(type = "user",
36
- name = node_spec.name,
37
- display_name = node_spec.display_name,
38
- description = node_spec.description,
39
- input_schema = node_spec.input_schema,
40
- output_schema = node_spec.output_schema,
41
- output_schema_object = node_spec.output_schema_object,
42
- text=message,
43
- owners=owners)
44
-
45
- @wraps(func)
46
- def wrapper(*args, **kwargs):
47
- logger.error(f"User node {name} is not supported yet.")
48
- r = func(*args, **kwargs)
49
- return r
50
-
51
- return wrapper
52
-
53
- if len(args) == 1 and callable(args[0]):
54
- return decorator(args[0])
55
- else:
56
- return decorator
57
-
58
-
59
- def flow_spec(*args,
60
- name: Optional[str]=None,
61
- description: str|None=None,
62
- initiators: Sequence[str] = ()):
63
- """Decorator to mark a function as a flow specification."""
64
-
65
- def decorator(func: Callable):
66
- node_spec = extract_node_spec(func, name, description)
67
- a_spec = FlowSpec(type = "flow",
68
- name = node_spec.name,
69
- display_name = node_spec.display_name,
70
- description = node_spec.description,
71
- input_schema = node_spec.input_schema,
72
- output_schema = node_spec.output_schema,
73
- output_schema_object = node_spec.output_schema_object,
74
- initiators = initiators)
75
-
76
- # we should also check a flow is async
77
- if not asyncio.iscoroutinefunction(func):
78
- raise ValueError("Flow must be asynchronous.")
79
-
80
- logger.info("Generated flow spec: %s", a_spec)
81
- func.__flow_spec__ = a_spec
82
-
83
- @wraps(func)
84
- def wrapper(*args, **kwargs):
85
- logger.info("Creating flow spec: %s", name)
86
- r = func(*args, **kwargs)
87
- logger.info("Flow spec %s returned: %s", name, r)
88
- return r
89
-
90
- return wrapper
91
-
92
- if len(args) == 1 and callable(args[0]):
93
- return decorator(args[0])
94
- else:
95
- return decorator
96
-
97
- def flow(*args,
98
- name: Optional[str]=None,
99
- display_name: Optional[str]=None,
100
- description: str|None=None,
101
- input_schema: type[BaseModel] | None = None,
102
- output_schema: type[BaseModel] | None = None,
103
- initiators: Sequence[str] = ()):
104
- """Decorator to mark a function as a flow model builder."""
105
-
106
- def decorator(func: Callable):
107
- """
108
- Decorator that takes a function as an argument and returns a wrapper function.
109
- The wrapper function takes a single argument of type Flow and calls the original function with the created flow as an argument.
110
- """
111
-
112
- sig = inspect.signature(func)
113
- if len(sig.parameters) != 1:
114
- raise ValueError("Only one argument is allowed")
115
- param = list(sig.parameters.values())[0]
116
- if param.annotation != Flow:
117
- raise ValueError("Argument must be of type Flow")
118
- if sig.return_annotation != Flow:
119
- raise ValueError("Return value must be of type Flow")
120
-
121
- node_spec = extract_node_spec(func, name, description)
122
- a_model = FlowFactory.create_flow(
123
- name = node_spec.name,
124
- display_name = display_name,
125
- description = node_spec.description,
126
- input_schema = input_schema,
127
- output_schema = output_schema,
128
- initiators = initiators)
129
-
130
- # logger.info("Creating flow model: %s", a_model.spec.name)
131
-
132
- # @wraps(func)
133
- # def wrapper(*args, **kwargs):
134
- # result = func(a_model)
135
- # if not isinstance(result, Flow):
136
- # raise ValueError("Return value must be of type Flow")
137
- # return result
138
-
139
- return FlowWrapper(func, a_model)
140
-
141
- if len(args) == 1 and callable(args[0]):
142
- return decorator(args[0])
143
- else:
144
- return decorator