ibm-watsonx-orchestrate 1.8.0b1__py3-none-any.whl → 1.9.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 (35) hide show
  1. ibm_watsonx_orchestrate/__init__.py +1 -1
  2. ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +2 -2
  3. ibm_watsonx_orchestrate/agent_builder/models/types.py +5 -0
  4. ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +61 -11
  5. ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +18 -6
  6. ibm_watsonx_orchestrate/agent_builder/tools/types.py +12 -5
  7. ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +15 -3
  8. ibm_watsonx_orchestrate/cli/commands/channels/types.py +2 -2
  9. ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +2 -3
  10. ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +6 -3
  11. ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py +103 -23
  12. ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +86 -31
  13. ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +17 -13
  14. ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +5 -8
  15. ibm_watsonx_orchestrate/cli/commands/server/server_command.py +147 -37
  16. ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +4 -2
  17. ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +9 -1
  18. ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +1 -1
  19. ibm_watsonx_orchestrate/client/connections/connections_client.py +19 -32
  20. ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py +5 -3
  21. ibm_watsonx_orchestrate/client/utils.py +17 -16
  22. ibm_watsonx_orchestrate/docker/compose-lite.yml +127 -12
  23. ibm_watsonx_orchestrate/docker/default.env +26 -21
  24. ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +2 -2
  25. ibm_watsonx_orchestrate/flow_builder/flows/constants.py +2 -0
  26. ibm_watsonx_orchestrate/flow_builder/flows/flow.py +52 -10
  27. ibm_watsonx_orchestrate/flow_builder/node.py +34 -3
  28. ibm_watsonx_orchestrate/flow_builder/types.py +144 -26
  29. ibm_watsonx_orchestrate/flow_builder/utils.py +7 -5
  30. {ibm_watsonx_orchestrate-1.8.0b1.dist-info → ibm_watsonx_orchestrate-1.9.0.dist-info}/METADATA +1 -3
  31. {ibm_watsonx_orchestrate-1.8.0b1.dist-info → ibm_watsonx_orchestrate-1.9.0.dist-info}/RECORD +34 -35
  32. ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py +0 -149
  33. {ibm_watsonx_orchestrate-1.8.0b1.dist-info → ibm_watsonx_orchestrate-1.9.0.dist-info}/WHEEL +0 -0
  34. {ibm_watsonx_orchestrate-1.8.0b1.dist-info → ibm_watsonx_orchestrate-1.9.0.dist-info}/entry_points.txt +0 -0
  35. {ibm_watsonx_orchestrate-1.8.0b1.dist-info → ibm_watsonx_orchestrate-1.9.0.dist-info}/licenses/LICENSE +0 -0
@@ -8,7 +8,7 @@ from datetime import datetime
8
8
  from enum import Enum
9
9
  import inspect
10
10
  from typing import (
11
- Any, AsyncIterator, Callable, cast, List, Sequence, Union, Tuple
11
+ Any, AsyncIterator, Callable, Optional, cast, List, Sequence, Union, Tuple
12
12
  )
13
13
  import json
14
14
  import logging
@@ -18,7 +18,7 @@ import pytz
18
18
  import os
19
19
 
20
20
  from typing_extensions import Self
21
- from pydantic import BaseModel, Field, SerializeAsAny
21
+ from pydantic import BaseModel, Field, SerializeAsAny, create_model, TypeAdapter
22
22
  import yaml
23
23
  from ibm_watsonx_orchestrate.agent_builder.tools.python_tool import PythonTool
24
24
  from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
@@ -27,11 +27,11 @@ from ibm_watsonx_orchestrate.client.utils import instantiate_client
27
27
  from ..types import (
28
28
  EndNodeSpec, Expression, ForeachPolicy, ForeachSpec, LoopSpec, BranchNodeSpec, MatchPolicy, PromptLLMParameters, PromptNodeSpec,
29
29
  StartNodeSpec, ToolSpec, JsonSchemaObject, ToolRequestBody, ToolResponseBody, UserFieldKind, UserFieldOption, UserFlowSpec, UserNodeSpec, WaitPolicy,
30
- DocProcSpec, TextExtractionResponse, File, DecisionsNodeSpec, DecisionsRule
30
+ DocProcSpec, TextExtractionResponse, DocProcInput, DecisionsNodeSpec, DecisionsRule, DocExtSpec, File
31
31
  )
32
32
  from .constants import CURRENT_USER, START, END, ANY_USER
33
33
  from ..node import (
34
- EndNode, Node, PromptNode, StartNode, UserNode, AgentNode, DataMap, ToolNode, DocProcNode, DecisionsNode
34
+ EndNode, Node, PromptNode, StartNode, UserNode, AgentNode, DataMap, ToolNode, DocProcNode, DecisionsNode, DocExtNode
35
35
  )
36
36
  from ..types import (
37
37
  AgentNodeSpec, extract_node_spec, FlowContext, FlowEventType, FlowEvent, FlowSpec,
@@ -190,7 +190,7 @@ class Flow(Node):
190
190
 
191
191
  def _add_schema_ref(self, schema: JsonSchemaObject, title: str = None) -> SchemaRef:
192
192
  '''Create a schema reference'''
193
- if schema and (schema.type == "object" or schema.type == "array"):
193
+ if schema and (schema.type == "object" or schema.type == "array" or schema.type == "string"):
194
194
  new_schema = self._add_schema(schema, title)
195
195
  return SchemaRef(ref=f"#/schemas/{new_schema.title}")
196
196
  raise AssertionError(f"schema is not a complex object: {schema}")
@@ -199,7 +199,7 @@ class Flow(Node):
199
199
  self._refactor_spec_to_schemaref(node.spec)
200
200
 
201
201
  def _refactor_spec_to_schemaref(self, spec: NodeSpec):
202
- if spec.input_schema:
202
+ if spec.input_schema and (spec.input_schema.type == "object" or spec.input_schema.type == "array") :
203
203
  if isinstance(spec.input_schema, ToolRequestBody):
204
204
  spec.input_schema = self._add_schema_ref(JsonSchemaObject(type = spec.input_schema.type,
205
205
  properties= spec.input_schema.properties,
@@ -433,6 +433,50 @@ class Flow(Node):
433
433
  node = self._add_node(node)
434
434
  return cast(PromptNode, node)
435
435
 
436
+ def docext(self,
437
+ name: str,
438
+ llm : str = "meta-llama/llama-3-2-11b-vision-instruct",
439
+ version: str = "TIP",
440
+ display_name: str| None = None,
441
+ input_entities: type[BaseModel]| None = None,
442
+ description: str | None = None,
443
+ input_map: DataMap = None) -> tuple[DocExtNode, type[BaseModel]]:
444
+
445
+ if name is None :
446
+ raise ValueError("name must be provided.")
447
+
448
+ doc_ext_config = DocExtNode.generate_config(llm=llm, input_entites=input_entities)
449
+
450
+ DocExtFieldValue = DocExtNode.generate_docext_field_value_model(input_entities=input_entities)
451
+
452
+ input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = File)
453
+ output_schema_obj = _get_json_schema_obj("output", DocExtFieldValue)
454
+
455
+ if "$defs" in output_schema_obj.model_extra:
456
+ output_schema_obj.model_extra.pop("$defs")
457
+
458
+ # Create the docext spec
459
+ task_spec = DocExtSpec(
460
+ name=name,
461
+ display_name=display_name if display_name is not None else name,
462
+ description=description,
463
+ input_schema=_get_tool_request_body(input_schema_obj),
464
+ output_schema=_get_tool_response_body(output_schema_obj),
465
+ output_schema_object = output_schema_obj,
466
+ config=doc_ext_config,
467
+ version=version
468
+ )
469
+ node = DocExtNode(spec=task_spec)
470
+
471
+ # setup input map
472
+ if input_map:
473
+ node.input_map = self._get_data_map(input_map)
474
+
475
+ # add the node to the list of node
476
+
477
+ node = self._add_node(node)
478
+ return cast(DocExtNode, node), DocExtFieldValue
479
+
436
480
  def decisions(self,
437
481
  name: str,
438
482
  display_name: str|None=None,
@@ -486,14 +530,12 @@ class Flow(Node):
486
530
  if name is None :
487
531
  raise ValueError("name must be provided.")
488
532
 
489
- if task is None:
490
- raise ValueError("task must be provided.")
491
533
 
492
534
  output_schema_dict = {
493
535
  "text_extraction" : TextExtractionResponse
494
536
  }
495
537
  # create input spec
496
- input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = File)
538
+ input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = DocProcInput)
497
539
  output_schema_obj = _get_json_schema_obj("output", output_schema_dict[task])
498
540
  if "$defs" in output_schema_obj.model_extra:
499
541
  output_schema_obj.model_extra.pop("$defs")
@@ -1018,8 +1060,8 @@ class FlowFactory(BaseModel):
1018
1060
  raise ValueError("Only functions with @flow_spec can be used to create a Flow specification.")
1019
1061
  return Flow(spec = flow_spec)
1020
1062
 
1021
- # create input spec
1022
1063
  input_schema_obj = _get_json_schema_obj(parameter_name = "input", type_def = input_schema)
1064
+ # create input spec
1023
1065
  output_schema_obj = _get_json_schema_obj("output", output_schema)
1024
1066
  if initiators is None:
1025
1067
  initiators = []
@@ -1,11 +1,14 @@
1
1
  import json
2
- from typing import Any, cast
2
+ from typing import Any, cast, Type
3
3
  import uuid
4
4
 
5
5
  import yaml
6
- from pydantic import BaseModel, Field, SerializeAsAny
6
+ from pydantic import BaseModel, Field, SerializeAsAny, create_model
7
+ from enum import Enum
8
+
9
+ from .types import EndNodeSpec, NodeSpec, AgentNodeSpec, PromptNodeSpec, StartNodeSpec, ToolNodeSpec, UserFieldKind, UserFieldOption, UserNodeSpec, DocProcSpec, \
10
+ DocExtSpec, DocExtConfig, LanguageCode, DecisionsNodeSpec
7
11
 
8
- from .types import EndNodeSpec, NodeSpec, AgentNodeSpec, PromptNodeSpec, StartNodeSpec, ToolNodeSpec, UserFieldKind, UserFieldOption, UserNodeSpec, DocProcSpec, DecisionsNodeSpec
9
12
  from .data_map import DataMap
10
13
 
11
14
  class Node(BaseModel):
@@ -116,6 +119,34 @@ class DocProcNode(Node):
116
119
 
117
120
  def get_spec(self) -> DocProcSpec:
118
121
  return cast(DocProcSpec, self.spec)
122
+
123
+ class DocExtNode(Node):
124
+ def __repr__(self):
125
+ return f"DocExtNode(name='{self.spec.name}', description='{self.spec.description}')"
126
+
127
+ def get_spec(self) -> DocExtSpec:
128
+ return cast(DocExtSpec, self.spec)
129
+
130
+ @staticmethod
131
+ def generate_config(llm: str, input_entites: type[BaseModel]) -> DocExtConfig:
132
+ entities = input_entites.__dict__.values()
133
+ return DocExtConfig(llm=llm, entities=entities)
134
+
135
+ @staticmethod
136
+ def generate_docext_field_value_model(input_entities: type[BaseModel]) -> type[BaseModel]:
137
+ create_field_value_description = lambda field_name: "Extracted value for " + field_name
138
+
139
+ DocExtFieldValue = create_model(
140
+ "DocExtFieldValue",
141
+ **{
142
+ name: (str, Field(
143
+ title=value['name'],
144
+ description=create_field_value_description(value['name']),
145
+ )
146
+ )
147
+ for name, value in input_entities.model_dump().items()})
148
+ return DocExtFieldValue
149
+
119
150
  class DecisionsNode(Node):
120
151
  def __repr__(self):
121
152
  return f"DecisionsNode(name='{self.spec.name}', description='{self.spec.description}')"
@@ -5,12 +5,14 @@ import numbers
5
5
  import inspect
6
6
  import logging
7
7
  from typing import (
8
- Any, Callable, Self, cast, Literal, List, NamedTuple, Optional, Sequence, Union
8
+ Annotated, Any, Callable, Self, cast, Literal, List, NamedTuple, Optional, Sequence, Union, NewType
9
9
  )
10
+ from typing_extensions import Doc
10
11
 
11
12
  import docstring_parser
12
- from munch import Munch
13
- from pydantic import BaseModel, Field
13
+ from pydantic import BaseModel, Field, GetCoreSchemaHandler, GetJsonSchemaHandler, RootModel
14
+ from pydantic_core import core_schema
15
+ from pydantic.json_schema import JsonSchemaValue
14
16
 
15
17
  from langchain_core.tools.base import create_schema_from_function
16
18
  from langchain_core.utils.json_schema import dereference_refs
@@ -87,7 +89,11 @@ def _to_json_from_input_schema(schema: Union[ToolRequestBody, SchemaRef]) -> dic
87
89
  model_spec["properties"] = {}
88
90
  for prop_name, prop_schema in request_body.properties.items():
89
91
  model_spec["properties"][prop_name] = _to_json_from_json_schema(prop_schema)
90
- model_spec["required"] = request_body.required
92
+ model_spec["required"] = request_body.required if request_body.required else []
93
+ if schema.model_extra:
94
+ for k, v in schema.model_extra.items():
95
+ model_spec[k] = v
96
+
91
97
  elif isinstance(schema, SchemaRef):
92
98
  model_spec["$ref"] = schema.ref
93
99
 
@@ -164,14 +170,99 @@ class NodeSpec(BaseModel):
164
170
 
165
171
  return model_spec
166
172
 
173
+ class DocExtConfigEntity(BaseModel):
174
+ name: str = Field(description="Entity name")
175
+ type: Literal["string", "date", "number"] = Field(default="string", description="The type of the entity values")
176
+ description: str = Field(title="Description", description="Description of the entity", default="")
177
+ field_name: str = Field(title="Field Name", description="The normalized name of the entity", default="")
178
+ multiple_mentions: bool = Field(title="Multiple mentions",description="When true, we can produce multiple mentions of this entity", default=False)
179
+ example_value: str = Field(description="Value of example", default="")
180
+ examples: list[str] = Field(title="Examples", description="Examples that help the LLM understand the expected entity mentions", default=[])
181
+
182
+ class DocExtConfig(BaseModel):
183
+ domain: str = Field(description="Domiain of the document", default="other")
184
+ type: str = Field(description="Document type", default="agreement")
185
+ llm: str = Field(description="The LLM used for the document extraction", default="meta-llama/llama-3-2-11b-vision-instruct")
186
+ entities: list[DocExtConfigEntity] = Field(default=[])
187
+
188
+ class LanguageCode(StrEnum):
189
+ en = auto()
190
+ fr = auto()
191
+
192
+ class DocProcCommonNodeSpec(NodeSpec):
193
+ enable_hw: bool | None = Field(description="Boolean value indicating if hand-written feature is enabled.", title="Enable handwritten", default=False)
194
+
195
+ class DocExtSpec(DocProcCommonNodeSpec):
196
+ version : str = Field(description="A version of the spec")
197
+ config : DocExtConfig
198
+
199
+ def __init__(self, **data):
200
+ super().__init__(**data)
201
+ self.kind = "docext"
202
+
203
+ def to_json(self) -> dict[str, Any]:
204
+ model_spec = super().to_json()
205
+ model_spec["version"] = self.version
206
+ model_spec["config"] = self.config.model_dump()
207
+ return model_spec
208
+
209
+ class DocProcField(BaseModel):
210
+ description: str = Field(description="A description of the field to extract from the document.")
211
+ example: str = Field(description="An example of the field to extract from the document.", default='')
212
+ default: Optional[str] = Field(description="A default value for the field to extract from the document.", default='')
213
+
214
+ class DocProcTable(BaseModel):
215
+ type: Literal["array"]
216
+ description: str = Field(description="A description of the table to extract from the document.")
217
+ columns: dict[str,DocProcField] = Field(description="The columns to extract from the table. These are the keys in the table extraction result.")
218
+
219
+ class DocProcKVPSchema(BaseModel):
220
+ document_type: str = Field(description="A label for the kind of documents we want to extract")
221
+ document_description: str = Field(description="A description of the kind of documents we want to extractI. This is used to select which schema to use for extraction.")
222
+ fields: dict[str, DocProcField | DocProcTable] = Field(description="The fields to extract from the document. These are the keys in the KVP extraction result.")
223
+
224
+ class DocProcBoundingBox(BaseModel):
225
+ x: float = Field(description="The x coordinate of the bounding box.")
226
+ y: float = Field(description="The y coordinate of the bounding box.")
227
+ width: float = Field(description="The width of the bounding box.")
228
+ height: float = Field(description="The height of the bounding box.")
229
+ page_number: int = Field(description="The page number of the bounding box in the document.")
230
+
231
+ class KVPBaseEntry(BaseModel):
232
+ id: str = Field(description="A unique identifier.")
233
+ raw_text: str = Field(description="The raw text.")
234
+ normalized_text: Optional[str] = Field(description="The normalized text.", default=None)
235
+ confidence_score: Optional[float] = Field(description="The confidence score.", default=None)
236
+ bbox: Optional[DocProcBoundingBox] = Field(description="The bounding box in the document.", default=None)
237
+
238
+ class DocProcKey(KVPBaseEntry):
239
+ semantic_label: str = Field(description="A semantic label for the key.")
240
+
241
+ class DocProcValue(KVPBaseEntry):
242
+ pass
243
+
244
+ class DocProcKVP(BaseModel):
245
+ id: str = Field(description="A unique identifier for the key-value pair.")
246
+ type: Literal["key_value","only_value"]
247
+ key: DocProcKey = Field(description="The key of the key-value pair.")
248
+ value: DocProcValue = Field(description="The value of the key-value pair.")
249
+ group_id: Optional[str] = Field(default=None, description="The group id of the key-value pair. This is used to group key-value pairs together.")
250
+ table_id: Optional[str] = Field(default=None, description="The table id of the key-value pair. This is used to group key-value pairs together in a table.")
251
+ table_name: Optional[str] = Field(default=None, description="The name of the table the key-value pair belongs to. This is used to group key-value pairs together in a table.")
252
+ table_row_index: Optional[int] = Field(default=None, description="The index of the row in the table the key-value pair belongs to. This is used to group key-value pairs together in a table.")
253
+
167
254
  class DocProcTask(StrEnum):
168
255
  '''
169
256
  Possible names for the Document processing task parameter
170
257
  '''
171
258
  text_extraction = auto()
172
259
 
173
- class DocProcSpec(NodeSpec):
260
+ class DocProcSpec(DocProcCommonNodeSpec):
174
261
  task: DocProcTask = Field(description='The document processing operation name', default=DocProcTask.text_extraction)
262
+ kvp_schema: List[DocProcKVPSchema] | None = Field(
263
+ title='KVP schemas',
264
+ description="Optional list of key-value pair schemas to use for extraction.",
265
+ default=None)
175
266
 
176
267
  def __init__(self, **data):
177
268
  super().__init__(**data)
@@ -674,6 +765,7 @@ class TaskEventType(Enum):
674
765
  ON_TASK_END = "task:on_task_end"
675
766
  ON_TASK_STREAM = "task:on_task_stream"
676
767
  ON_TASK_ERROR = "task:on_task_error"
768
+ ON_TASK_RESUME= "task:on_task_resume"
677
769
 
678
770
  class FlowData(BaseModel):
679
771
  '''This class represents the data that is passed between tasks in a flow.'''
@@ -708,7 +800,7 @@ class FlowEventType(Enum):
708
800
  ON_FLOW_START = "flow:on_flow_start"
709
801
  ON_FLOW_END = "flow:on_flow_end"
710
802
  ON_FLOW_ERROR = "flow:on_flow_error"
711
-
803
+ ON_FLOW_RESUME = "flow:on_flow_resume"
712
804
 
713
805
  @dataclass
714
806
  class FlowEvent:
@@ -744,41 +836,67 @@ class LanguageCode(StrEnum):
744
836
  fr = auto()
745
837
  en_hw = auto()
746
838
 
747
- class File(BaseModel):
839
+
840
+ class File(str):
841
+ @classmethod
842
+ def __get_pydantic_core_schema__(
843
+ cls, source_type: Any, handler: GetCoreSchemaHandler
844
+ ) -> core_schema.CoreSchema:
845
+ return core_schema.no_info_wrap_validator_function(
846
+ cls.validate,
847
+ core_schema.str_schema(),
848
+ serialization=core_schema.plain_serializer_function_ser_schema(lambda v: str(v))
849
+ )
850
+
851
+ @classmethod
852
+ def validate(cls, value: Any) -> "File":
853
+ if not isinstance(value, str):
854
+ raise TypeError("File must be a document reference (string)")
855
+ return cls(value)
856
+
857
+ @classmethod
858
+ def __get_pydantic_json_schema__(
859
+ cls, core_schema: core_schema.CoreSchema, handler: GetJsonSchemaHandler
860
+ ) -> JsonSchemaValue:
861
+ return {
862
+ "type": "string",
863
+ "title": "Document reference",
864
+ "format": "binary",
865
+ "description": "Either an ID or a URL identifying the document to be used.",
866
+ "wrap_data": False,
867
+ "required": []
868
+ }
869
+
870
+ class DocExtInput(BaseModel):
871
+ document_ref: bytes | File = Field(description="Either an ID or a URL identifying the document to be used.", title='Document reference', default=None, json_schema_extra={"format": "binary"})
872
+
873
+
874
+ class DocProcInput(BaseModel):
748
875
  '''
749
876
  This class represents the input of a Document processing task.
750
877
 
751
878
  Attributes:
752
879
  document_ref (bytes|str): This is either a URL to the location of the document bytes or an ID that we use to resolve the location of the document
753
880
  language (LanguageCode): Optional language code used when processing the input document
881
+ kvp_schemas (List[DocProcKVPSchema]): Optional list of key-value pair schemas to use for extraction. If not provided or None, no KVPs will be extracted. If an empty list is provided, we will use the internal schemas to extract KVPS.
754
882
  '''
755
883
  # This is declared as bytes but the runtime will understand if a URL is send in as input.
756
884
  # We need to use bytes here for Chat-with-doc to recognize the input as a File.
757
- document_ref: bytes | str = Field(
758
- description="Either an ID or a URL identifying the document to be used.",
759
- title='Document reference',
760
- default=None,
761
- json_schema_extra={"format": "binary"})
762
- language: Optional[LanguageCode] = Field(
763
- description='Optional language code of the document, defaults to "en"',
764
- title='Document language code',
765
- default=LanguageCode.en)
766
-
767
- class TextExtraction(BaseModel):
768
- '''
769
- This class represents the output generated by a "text_extraction" document processing (docproc) operation.
770
- Attributes:
771
- text (str): the text extracted from the input document.
772
- '''
773
- text: str = Field(description='The text extracted from the input document', title='Text extraction')
885
+ document_ref: bytes | File = Field(description="Either an ID or a URL identifying the document to be used.", title='Document reference', default=None, json_schema_extra={"format": "binary"})
886
+ kvp_schemas: Optional[List[DocProcKVPSchema]] = Field(
887
+ title='KVP schemas',
888
+ description="Optional list of key-value pair schemas to use for extraction.",
889
+ default=None)
774
890
 
775
891
  class TextExtractionResponse(BaseModel):
776
892
  '''
777
893
  The text extraction operation response.
778
894
  Attributes:
779
- output (TextExtraction): a wrapper for the text extraction response
895
+ text (str): the text extracted from the input document.
896
+ kvps (Optional[list[DocProcKVP]]): A list of key-value pairs extracted from the document. If no KVPs were extracted, this will be None.
780
897
  '''
781
- output: TextExtraction = Field(description='The text extraction response')
898
+ text: str = Field(description='The text extracted from the input document', title='text')
899
+ kvps: Optional[list[DocProcKVP]] = Field(description="A list of key-value pairs extracted from the document.", default=None)
782
900
 
783
901
 
784
902
  class DecisionsCondition(BaseModel):
@@ -6,9 +6,7 @@ import logging
6
6
  from pydantic import BaseModel, TypeAdapter
7
7
 
8
8
  from langchain_core.utils.json_schema import dereference_refs
9
- from rpds import List
10
9
  import typer
11
- import yaml
12
10
 
13
11
  from ibm_watsonx_orchestrate.agent_builder.tools.base_tool import BaseTool
14
12
  from ibm_watsonx_orchestrate.agent_builder.tools.flow_tool import create_flow_json_tool
@@ -91,9 +89,13 @@ def _get_tool_request_body(schema_obj: JsonSchemaObject) -> ToolRequestBody:
91
89
  request_obj = ToolRequestBody(type='object', properties=schema_obj.properties, required=schema_obj.required)
92
90
  if schema_obj.model_extra:
93
91
  request_obj.__pydantic_extra__ = schema_obj.model_extra
94
- else: # we need to wrap a simple type with an object
95
- request_obj = ToolRequestBody(type='object', properties={}, required=[])
96
- request_obj.properties["data"] = schema_obj
92
+ else:
93
+ if schema_obj.wrap_data:
94
+ # we need to wrap a simple type with an object
95
+ request_obj = ToolRequestBody(type='object', properties={}, required=[])
96
+ request_obj.properties["data"] = schema_obj
97
+ else:
98
+ request_obj = ToolRequestBody(type=schema_obj.type, title=schema_obj.title, description=schema_obj.description, format=schema_obj.format)
97
99
  if schema_obj.model_extra:
98
100
  request_obj.__pydantic_extra__ = schema_obj.model_extra
99
101
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ibm-watsonx-orchestrate
3
- Version: 1.8.0b1
3
+ Version: 1.9.0
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
@@ -1,4 +1,4 @@
1
- ibm_watsonx_orchestrate/__init__.py,sha256=9zMqS0YMNcmpeGzYGa0IjjaKiXHm21buJ4ZsqNKJ1mo,427
1
+ ibm_watsonx_orchestrate/__init__.py,sha256=aHifUicAdY-uV14PYIqBJTPTObkwNLbl50agGTUcLwc,425
2
2
  ibm_watsonx_orchestrate/agent_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  ibm_watsonx_orchestrate/agent_builder/agents/__init__.py,sha256=lmZwaiWXD4Ea19nrMwZXaqCxFMG29xNS8vUoZtK3yI4,392
4
4
  ibm_watsonx_orchestrate/agent_builder/agents/agent.py,sha256=W0uya81fQPrYZFaO_tlsxBL56Bfpw0xrqdxQJhAZ6XI,983
@@ -13,51 +13,50 @@ ibm_watsonx_orchestrate/agent_builder/connections/connections.py,sha256=CD3QHI4d
13
13
  ibm_watsonx_orchestrate/agent_builder/connections/types.py,sha256=YOOlXXNKVxTZ6tK2ceeytWXUApZjwfi4mgdYwXoiqOk,9532
14
14
  ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py,sha256=_KuGF0RZpKpwdt31rzjlTjrhGRFz2RtLzleNkhMNX4k,1831
15
15
  ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py,sha256=3xTfFMZR17EN8eYRhsVyBfOEzlTqyi0eYaMXyv0_ZtQ,862
16
- ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py,sha256=_jHu9ELQqj1qwDK6U7jqemzNFeM2O5APlykiZRsDOcY,7009
16
+ ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py,sha256=ILnIwjK-RqIUr9CeRRobIPg6qE1Sl4Br-qCMPvbHIVs,6985
17
17
  ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py,sha256=alJEjlneWlGpadmvOVlDjq5wulytKOmpkq3849fhKNc,131
18
18
  ibm_watsonx_orchestrate/agent_builder/model_policies/types.py,sha256=a6f9HP2OlZIe36k_PDRmFtefz2Ms2KBpzJ_jz8ggYbk,882
19
19
  ibm_watsonx_orchestrate/agent_builder/models/__init__.py,sha256=R5nTbyMBzahONdp5-bJFp-rbtTDnp2184k6doZqt67w,31
20
- ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=Zr0xHZpTVPZnaUSvlopc2iYVfKmhiqEuvaVe37HVxlw,9457
20
+ ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=bWKrKeBMByjhEvkXieJUYOxVr1Px6mk8v4GsvjRrvo8,9812
21
21
  ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py,sha256=KXRPgBK-F9Qa6IYqEslkN3ANj3cmZoZQnlSiy_-iXCk,1054
22
22
  ibm_watsonx_orchestrate/agent_builder/toolkits/types.py,sha256=yY-V4Hqct91-Rs4rJ3rY9OhzKkSMdOT63o224o-U9eg,959
23
23
  ibm_watsonx_orchestrate/agent_builder/tools/__init__.py,sha256=adkYX0wgB-RKFCUBw6LPJhNVelUjUdsxipGPk2ghLns,479
24
24
  ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py,sha256=0vwMIAyKyB8v1QmNrubLy8Al58g3qT78EUgrmOjegoI,1220
25
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=IuXJ6-A66Jiss-4jI7yMhg3QZRKFdc2GKBB8D52Wxvc,16473
27
- ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py,sha256=FDY-y9jy4bNy88i7JG85Zj_YrxnPfJPD0DjwvL9ITxc,12012
28
- ibm_watsonx_orchestrate/agent_builder/tools/types.py,sha256=NIH0p-iqi6s0KmAjSnsGuMXnyW_gaob9Pi192vaCjYE,7998
26
+ ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py,sha256=h9ma18GUQHt88UIakd6QZHic822bAXzYokh6sfqAMZk,19410
27
+ ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py,sha256=KJoJe8wNGcLUyTPx7R93b5DVzqPeGcBA8Oo-KsH4Sgs,12525
28
+ ibm_watsonx_orchestrate/agent_builder/tools/types.py,sha256=m2t4uXNp0DVwVFzd0Jf_se8tz6V8FzM5fYgFs7AlvHU,8251
29
29
  ibm_watsonx_orchestrate/agent_builder/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py,sha256=QEanM6FpkmntvS02whdhWx1d4v6zT_1l9ipEbfTgHs8,7623
31
30
  ibm_watsonx_orchestrate/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
31
  ibm_watsonx_orchestrate/cli/config.py,sha256=iXjDxymWhAmLSUu6eh7zJR20dYZDzbxcU5VoBdh3VIw,8318
33
32
  ibm_watsonx_orchestrate/cli/init_helper.py,sha256=qxnKdFcPtGsV_6RqP_IuLshRxgB004SxzDAkBTExA-4,1675
34
33
  ibm_watsonx_orchestrate/cli/main.py,sha256=eE71dfx-EdDYHymYDqXcTjyMXpX0b3cueXOxCI2YLLs,3119
35
34
  ibm_watsonx_orchestrate/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
35
  ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py,sha256=Zif3bH3X7j5qf7MWGcr53mJ2oEKXNRHeg3ZHeoHTIqQ,8984
37
- ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=skAElLfh8Ip4wVkxpn1wnLskHb1eLU1p9W7GF1abHus,47998
36
+ ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=gEsuG3Mbz6shuv8yB2C-dPcqM5mMXUAVO0YniNNOMk0,48379
38
37
  ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py,sha256=fVIFhPUTPdxsxIE10nWL-W5wvBR-BS8V8D6r__J8R98,822
39
38
  ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py,sha256=WjQxwJujvo28SsWgfJSXIpkcgniKcskJ2arL4MOz0Ys,455
40
- ibm_watsonx_orchestrate/cli/commands/channels/types.py,sha256=yX5hvnm_DBgcjdTzStXAtwT5dxIZDtPyq_Z38RhFTVc,483
39
+ ibm_watsonx_orchestrate/cli/commands/channels/types.py,sha256=hMFvWPr7tAmDrhBqtzfkCsrubX3lsU6lapTSOFsUbHM,475
41
40
  ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py,sha256=vPCr6z1n1yzGDjTlM4f3_9MiuVRzNmXbvUifm6XyQi8,1103
42
- ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=QkONhvadCyXrTSZECq5_RrE5Hze1yiBftOiEL-VLZUU,8583
41
+ ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=CGfmKsCBX4E3HMZ8C0IXD-DHQNwe96V1Y_BxUZM2us0,8557
43
42
  ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py,sha256=Q9vg2Z5Fsunu6GQFY_TIsNRhUCa0SSGSPnK4jxSGK34,1581
44
43
  ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py,sha256=bZBzaaVMFmGY4Guk-JCknZqd8HvXY5L-FirxpxddQfc,10497
45
- ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=odsqxthEDyPO3C-GEtSn31sxLjRYgUBf1Vdkg6ZEwms,22290
44
+ ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=diwoXiyh5VKmUv0E0KEx2WJnWyNWQnvpjw-Wff05t68,22395
46
45
  ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py,sha256=IxasApIyQYWRMKPXKa38ZPVkUvOc4chggSmSGjgQGXc,2345
47
- ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py,sha256=rr6p4_yqriq3ts1FwFC4aV0ub5UC5D6JqpuLoba4j_U,14808
46
+ ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py,sha256=SC2Tjq6r-tHIiyPBMajsxdMIY3BQpRWpkYGZS2XbJyU,18981
48
47
  ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py,sha256=AcBE97qNYsRN0ftY_E-AAjKFyVea4fHtU5eB2HsB42I,5619
49
48
  ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py,sha256=xwq7gdyjMtl2RYAnLAahGk2wDetr9BStt8yu7JkeBhk,3768
50
49
  ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py,sha256=oHZ7LONtPg3-SSnU_rRZryLi8N2mplz5h-LGg4XjzD4,10261
51
50
  ibm_watsonx_orchestrate/cli/commands/environment/types.py,sha256=X6jEnyBdxakromA7FhQ5btZMj9kwGcwRSFz8vpD65jA,224
52
- ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py,sha256=1bgzMu1gF1dGKmi3bzIVR6twnUXSgTt-yc3M5_EVYDM,12065
51
+ ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py,sha256=nOVxeZSTp1bfV_l_06B6x6wfNeusNAr5KImJYkwGWx8,14298
53
52
  ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py,sha256=dZEAD0rIS9DQjWD2-i6367RjNd2PWB3Fm_DDk25toBg,7855
54
53
  ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py,sha256=hOzRcGVoqq7dTc4bSregKxH-kYbrVqaFdhBLawqnRNo,2668
55
54
  ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py,sha256=M19rRMFEEcAarPVw4fOr3S94Se1ZEo4hD7sCUr0xYTI,10115
56
55
  ibm_watsonx_orchestrate/cli/commands/login/login_command.py,sha256=xArMiojoozg7Exn6HTpbTcjDO2idZRA-y0WV-_Ic1Sk,651
57
- ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=RVZfFCuPWiASkR9Mox61v5SZ1AoRxo4_g9stnbfjCkc,7994
56
+ ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=mbvBR5o9M7W6OpTZyd6TtSEOIXq07dPYz4hv5zDrsd0,8129
58
57
  ibm_watsonx_orchestrate/cli/commands/models/models_command.py,sha256=PW-PIM5Nq0qdCopWjANGBWEuEoA3NLTFThYrN8ggGCI,6425
59
- ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=BNfUoWST60x3k7yIvSbtBR3rmyTQmz9g0TDK2WOoOE4,18610
60
- ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=Tx5MbxH2MeMQ3GReI2FsESkZyefSwHlgkJjLniED2MU,39787
58
+ ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=eZSYQUg9TL_-8lgcPVpKIx7MtOE7K_NCvZW9Y9YsFA0,18466
59
+ ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=9VM9i2g54UwK0wsQ7z1m3KSDItoAslSk693YKGXPq0s,43309
61
60
  ibm_watsonx_orchestrate/cli/commands/server/types.py,sha256=UCrgGErbSVBnOzesfjrIii4tTCuVfWemYz5AKGZX0oA,4213
62
61
  ibm_watsonx_orchestrate/cli/commands/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
62
  ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py,sha256=CzXRkd-97jXyS6LtaaNtMah-aZu0919dYl-mDwzGThc,344
@@ -65,10 +64,10 @@ ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py,sha256=4
65
64
  ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py,sha256=TAkpKwoqocsShSgEeR6LzHCzJx16VDQ6cYsbpljxeqI,372
66
65
  ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
66
  ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py,sha256=Wa0L8E44EdxH9LdOvmnluLk_ApJVfTLauNOC1kV4W8k,6515
68
- ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py,sha256=e2VwpxbN7vwfFp6Gu8hDe2B5c3fdzXYfQBkN15tYR90,4195
69
- ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=fq48tWNbuYFjrHXyVDmJBT96tww5iMdE2iOYUjr-fUc,11563
67
+ ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py,sha256=KI96Yexq4ZkM-VxcW88oMszjnOxbdU7quSxFtvf_ry4,4367
68
+ ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=3Jykp5-DzMM_At8kYJto171V6LesaqKdsk2nfg1TRpk,11949
70
69
  ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py,sha256=Cuo1ZvlfsymojqbadCqdwwS0HUjaWpe2XQrV70g61_s,3943
71
- ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=uL0WHi0YD7NIYSLOui-CymVHj-h9Y0i3PxS7T2SXSvo,40408
70
+ ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=4VnV_rm7uXA7gtAfmqdw7igb5tkVGyhcsoni21jMDFA,40407
72
71
  ibm_watsonx_orchestrate/cli/commands/tools/types.py,sha256=_md0GEa_cTH17NO_moWDY_LNdFvyEFQ1UVB9_FltYiA,173
73
72
  ibm_watsonx_orchestrate/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
73
  ibm_watsonx_orchestrate/client/base_api_client.py,sha256=cSbQb7-K9KoMeFLEIiYGho4cQqf8TcPyYklju9X4cC4,5214
@@ -78,7 +77,7 @@ ibm_watsonx_orchestrate/client/client_errors.py,sha256=72MKCNZbKoo2QXyY0RicLhP3r
78
77
  ibm_watsonx_orchestrate/client/credentials.py,sha256=gDVeeQZDdbbjJiO1EI61yx2oRgTQctxA2ZesSDHI4DA,3786
79
78
  ibm_watsonx_orchestrate/client/local_service_instance.py,sha256=dt7vfLnjgt7mT8wSq8SJZndNTwsPzhb0XDhcnPUPFpU,3524
80
79
  ibm_watsonx_orchestrate/client/service_instance.py,sha256=fp3Lc4yQf4zTkxVS5WnIAkrHT0xG_a5i44qcLeQkaa4,6600
81
- ibm_watsonx_orchestrate/client/utils.py,sha256=_jP-qkOkjAIZ4yakQANKy0oaAOtUtfjrPP7cO-uPteU,5839
80
+ ibm_watsonx_orchestrate/client/utils.py,sha256=MUw11r0_wYv3RdF6-1BmSxcwYNF6q2_Urte7tMYTKVA,5836
82
81
  ibm_watsonx_orchestrate/client/agents/agent_client.py,sha256=v1ZqXKj3p5JeJyOLpV84UUI2LY8XPjW1ejo5yzkeiMQ,4708
83
82
  ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py,sha256=1JQN0E4T_uz5V0LM-LD1ahNu2KCeFBjXAr8WCiP9mkE,1745
84
83
  ibm_watsonx_orchestrate/client/agents/external_agent_client.py,sha256=iQ44XBdC4rYfS-zFn4St1xC5y5gf5SNqKHzMNQcFDZc,1808
@@ -86,9 +85,9 @@ ibm_watsonx_orchestrate/client/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
86
85
  ibm_watsonx_orchestrate/client/analytics/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
86
  ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py,sha256=0YS_BCpmf5oGFawpZkJ38cuz5ArhKsZIbSydWRd194s,1340
88
87
  ibm_watsonx_orchestrate/client/connections/__init__.py,sha256=J7TOyVg38h71AlaJjlFs5fOuAXTceHvELtOJ9oz4Mvg,207
89
- ibm_watsonx_orchestrate/client/connections/connections_client.py,sha256=B6LQPwoFHg_CIXHEJBjVu6fXnRj_xVsLGsC-DhmdfSQ,8478
88
+ ibm_watsonx_orchestrate/client/connections/connections_client.py,sha256=UQMHxPDP9qqVUGoAAaCafcp2kMazeJsCNPn2NgrOQcI,8134
90
89
  ibm_watsonx_orchestrate/client/connections/utils.py,sha256=f6HsiDI6cycOqfYN6P4uZ3SQds83xlh83zTUioZPeYk,2618
91
- ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py,sha256=eGE5VJb47XZxiMszBVQ7u0NKTVeHPuGVyfRJ6qPKlVs,1939
90
+ ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py,sha256=-grsFXdxY8Cy2DbsWa1Akc93d-TRLJJYCdMDkCfmG3g,2102
92
91
  ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py,sha256=YjC16dcL_l0jd-6yZ6uH8anlL4yaIv9f-7Y_urPuXWM,2201
93
92
  ibm_watsonx_orchestrate/client/model_policies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
93
  ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py,sha256=Ddjraesv1MRPhZebB0PdBL0zgdsoWmnYpWTUci_6XFI,2258
@@ -97,8 +96,8 @@ ibm_watsonx_orchestrate/client/models/models_client.py,sha256=ZvP3iPgUFw_SXp41kJ
97
96
  ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py,sha256=TLFNS39EeBD_t4Y-rX9sGp4sWBDr--mE5qVtHq8Q2hk,3121
98
97
  ibm_watsonx_orchestrate/client/tools/tempus_client.py,sha256=24fKDZUOVHBW-Vj4mubnpnUmab5LgGn8u5hOVyJaozI,1804
99
98
  ibm_watsonx_orchestrate/client/tools/tool_client.py,sha256=d3i3alVwa0TCN72w9sWOrM20GCbNmnpTnqEOJVbBIFM,1994
100
- ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=gn6BmT1xGlnmrufo4w6l-FmeyVaXcSjlDt40g4cx2fA,39432
101
- ibm_watsonx_orchestrate/docker/default.env,sha256=-yrzVhSP8lng5m6IqCDDGN32tul38gUCiNr-sismIM0,5828
99
+ ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=jU69jc976jFBDEOkjqZSsi6Y399nansSrmRhpHHGQoI,43657
100
+ ibm_watsonx_orchestrate/docker/default.env,sha256=wdBu50CfT3wg9FSJ9ekW6_OGtQVNGk4nrdfOgR_6Hk0,6128
102
101
  ibm_watsonx_orchestrate/docker/proxy-config-single.yaml,sha256=WEbK4ENFuTCYhzRu_QblWp1_GMARgZnx5vReQafkIG8,308
103
102
  ibm_watsonx_orchestrate/docker/start-up.sh,sha256=LTtwHp0AidVgjohis2LXGvZnkFQStOiUAxgGABOyeUI,1811
104
103
  ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl,sha256=Hi3-owh5OM0Jz2ihX9nLoojnr7Ky1TV-GelyqLcewLE,2047417
@@ -106,14 +105,14 @@ ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz,sha256=e
106
105
  ibm_watsonx_orchestrate/docker/tempus/common-config.yaml,sha256=Zo3F36F5DV4VO_vUg1RG-r4WhcukVh79J2fXhGl6j0A,22
107
106
  ibm_watsonx_orchestrate/flow_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
107
  ibm_watsonx_orchestrate/flow_builder/data_map.py,sha256=1brmWWFERDsNG2XGais-5-r58LKUUwBtqwdaLQIFRhE,503
109
- ibm_watsonx_orchestrate/flow_builder/node.py,sha256=I90a-K_xnEgZrl2NHo_rDmfT2Dj0n0Om15aDnEzhe74,4755
110
- ibm_watsonx_orchestrate/flow_builder/types.py,sha256=xNXHWxVMx7e954ERveBpl52BFTGOx6pZq4k3zVxJEng,37166
111
- ibm_watsonx_orchestrate/flow_builder/utils.py,sha256=wTyYnLmB_SsT7A-VxRRnqNZ6jwChJ95EnlZ2wZXU03o,11731
112
- ibm_watsonx_orchestrate/flow_builder/flows/__init__.py,sha256=dHS2fB-xbVS5yt_yNyZqYeuiAGs78lbCF65AX_VQlD4,1025
113
- ibm_watsonx_orchestrate/flow_builder/flows/constants.py,sha256=XXYtL5Y1OTjj3jKo2zoJiwb7FCUNu_M43fgU8w591TY,322
108
+ ibm_watsonx_orchestrate/flow_builder/node.py,sha256=l9J9bMyrvU5yKT2W0G9M-KM5rrfCeuG8jcANegQkrL8,5971
109
+ ibm_watsonx_orchestrate/flow_builder/types.py,sha256=muKjxiRQgjhgYqUHsumvy43ICuzzINyhdNKEnMBpBe4,44208
110
+ ibm_watsonx_orchestrate/flow_builder/utils.py,sha256=8q1jr5i_TzoJpoQxmLiO0g5Uv03BLbTUaRfw8_0VWIY,11931
111
+ ibm_watsonx_orchestrate/flow_builder/flows/__init__.py,sha256=jbCklY7l08KG8cbFihAnUWXSQKLLoTU6Mk_BmA4VksU,1041
112
+ ibm_watsonx_orchestrate/flow_builder/flows/constants.py,sha256=-TGneZyjA4YiAtJJK7OmmjDHYQC4mw2e98MPAZqiB50,324
114
113
  ibm_watsonx_orchestrate/flow_builder/flows/decorators.py,sha256=lr4qSWq5PWqlGFf4fzUQZCVQDHBYflrYwZ24S89Aq80,2794
115
114
  ibm_watsonx_orchestrate/flow_builder/flows/events.py,sha256=VyaBm0sADwr15LWfKbcBQS1M80NKqzYDj3UlW3OpOf4,2984
116
- ibm_watsonx_orchestrate/flow_builder/flows/flow.py,sha256=a33ciPFM5VUQlY4BdcXAQVed_MGARNi_GpChIHJ1uS4,55124
115
+ ibm_watsonx_orchestrate/flow_builder/flows/flow.py,sha256=uAk_uS2i1zH3toJQw7I_5zaSPVOdvAyEitGdM0rxrJI,56949
117
116
  ibm_watsonx_orchestrate/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
117
  ibm_watsonx_orchestrate/run/connections.py,sha256=K-65GXPA8GEsVmRdPfMe_LB2G9RfXQUr95wvRUOhkS4,1828
119
118
  ibm_watsonx_orchestrate/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -122,8 +121,8 @@ ibm_watsonx_orchestrate/utils/utils.py,sha256=U7z_2iASoFiZ2zM0a_2Mc2Y-P5oOT7hOwu
122
121
  ibm_watsonx_orchestrate/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
122
  ibm_watsonx_orchestrate/utils/logging/logger.py,sha256=FzeGnidXAjC7yHrvIaj4KZPeaBBSCniZFlwgr5yV3oA,1037
124
123
  ibm_watsonx_orchestrate/utils/logging/logging.yaml,sha256=9_TKfuFr1barnOKP0fZT5D6MhddiwsXVTFjtRbcOO5w,314
125
- ibm_watsonx_orchestrate-1.8.0b1.dist-info/METADATA,sha256=3gAUVcjqPm5Ce9PAXrrhQ9A-0bjMCVYkCPpRP6V7xDs,1431
126
- ibm_watsonx_orchestrate-1.8.0b1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
127
- ibm_watsonx_orchestrate-1.8.0b1.dist-info/entry_points.txt,sha256=SfIT02-Jen5e99OcLhzbcM9Bdyf8SGVOCtnSplgZdQI,69
128
- ibm_watsonx_orchestrate-1.8.0b1.dist-info/licenses/LICENSE,sha256=Shgxx7hTdCOkiVRmfGgp_1ISISrwQD7m2f0y8Hsapl4,1083
129
- ibm_watsonx_orchestrate-1.8.0b1.dist-info/RECORD,,
124
+ ibm_watsonx_orchestrate-1.9.0.dist-info/METADATA,sha256=FW7eZntFI08y9pqnFeXcxqHXVMLVpliYfpMSJf79vsA,1360
125
+ ibm_watsonx_orchestrate-1.9.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
126
+ ibm_watsonx_orchestrate-1.9.0.dist-info/entry_points.txt,sha256=SfIT02-Jen5e99OcLhzbcM9Bdyf8SGVOCtnSplgZdQI,69
127
+ ibm_watsonx_orchestrate-1.9.0.dist-info/licenses/LICENSE,sha256=Shgxx7hTdCOkiVRmfGgp_1ISISrwQD7m2f0y8Hsapl4,1083
128
+ ibm_watsonx_orchestrate-1.9.0.dist-info/RECORD,,