vellum-ai 0.10.6__py3-none-any.whl → 0.10.7__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.
- vellum/__init__.py +2 -0
- vellum/client/README.md +7 -52
- vellum/client/__init__.py +16 -136
- vellum/client/core/client_wrapper.py +1 -1
- vellum/client/resources/ad_hoc/client.py +14 -104
- vellum/client/resources/metric_definitions/client.py +113 -0
- vellum/client/resources/test_suites/client.py +8 -16
- vellum/client/resources/workflows/client.py +0 -32
- vellum/client/types/__init__.py +2 -0
- vellum/client/types/metric_definition_history_item.py +39 -0
- vellum/types/metric_definition_history_item.py +3 -0
- vellum/workflows/events/node.py +36 -3
- vellum/workflows/events/tests/test_event.py +89 -9
- vellum/workflows/nodes/displayable/conditional_node/node.py +2 -2
- vellum/workflows/ports/node_ports.py +2 -2
- vellum/workflows/ports/port.py +14 -0
- vellum/workflows/references/__init__.py +2 -0
- vellum/workflows/runner/runner.py +6 -7
- vellum/workflows/runner/types.py +1 -3
- vellum/workflows/state/encoder.py +2 -1
- vellum/workflows/types/tests/test_utils.py +6 -3
- vellum/workflows/types/utils.py +3 -0
- {vellum_ai-0.10.6.dist-info → vellum_ai-0.10.7.dist-info}/METADATA +1 -1
- {vellum_ai-0.10.6.dist-info → vellum_ai-0.10.7.dist-info}/RECORD +32 -30
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py +4 -2
- vellum_ee/workflows/display/nodes/vellum/map_node.py +20 -48
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +5 -16
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +11 -8
- vellum_ee/workflows/display/utils/vellum.py +3 -2
- {vellum_ai-0.10.6.dist-info → vellum_ai-0.10.7.dist-info}/LICENSE +0 -0
- {vellum_ai-0.10.6.dist-info → vellum_ai-0.10.7.dist-info}/WHEEL +0 -0
- {vellum_ai-0.10.6.dist-info → vellum_ai-0.10.7.dist-info}/entry_points.txt +0 -0
@@ -26,11 +26,11 @@ vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=jQgm0dsQAlxZ0tYR_cv5
|
|
26
26
|
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=awjKut2m7HoEmqewRfdR1dw8ufA0Q5mVG8V8jhaHlKw,8572
|
27
27
|
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=bAtSJpcKyJW-VLvBEr92lKPpdPH1L_IA02qg78U1uFA,3403
|
28
28
|
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=v9g263oEtyL6ejp5ZfLrVfrcqU9gZwzuUI4yBuOScbI,12983
|
29
|
-
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=
|
29
|
+
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=2HsghUtPBOQ-4sN-2jDOnbEuIwcsilDKO3f2o1WlYgw,2897
|
30
30
|
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=lr4d2uV3Lq8d22b5LCKbWMz_nU7Q0fvffcNQ7zx5Ygc,2163
|
31
31
|
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=0lX14iOxZhdKSXE6mzBAIw480nNJD_Sz4qo7WZAXYfQ,7391
|
32
32
|
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=rZmYQSCtm7bdiJ-ZYMyPpFnEwbNr85a45PXqESvLyus,4696
|
33
|
-
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=
|
33
|
+
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=rjsXrUt2PjD1HOS1xDVPn5ThTImsI048hVh_3A_G-14,3588
|
34
34
|
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=7YmVRNSI6RkK1rvg0b0zDeW2nnBIKir0ERzqqtT08I4,2218
|
35
35
|
vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=gjYEp7DdTtdH-uJvVbMTOEoj8KokB5LQBR_JJulFHj4,1121
|
36
36
|
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=LbxpCKr4Ys9A-xtWU119Ry8IP7W3GGinPFWt9QAZAi8,3111
|
@@ -45,10 +45,10 @@ vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
45
45
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
46
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=bLdJ0VVwAPDRvwaJMiMf0fRCuIWvvuRjAxKzddGPFyA,16871
|
47
47
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=0McMPIPnIwE8iGh7fzFZL3dc6Q7NCQ_wUVFpl14YATo,22846
|
48
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=
|
48
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=AOM1lN7_Y1wmorBpyF6Z2VVgrPUiFaePaGjauDluAsc,54187
|
49
49
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=IfO5Hmr1W41X2IVq-i6pG7BuevBPZU_s6ASTNVVVkdg,8298
|
50
50
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=c97A2tFWnNUXi3T4RLsvf3nZkUTPiGSC6XD_x1-ZK_U,22270
|
51
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
51
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=Bx6tpFoW_7KrlsuzeEgXgQxa6CHJsQKwFZjilJsTivg,15451
|
52
52
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=NUe91w_AHNJmxDaP_51wLuQoaHKgwkq83OXy0fHNsK0,9997
|
53
53
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=hIpamI86C9tfL0aOPeCRgVGCklQ1WB4XjRb7esSmgas,9493
|
54
54
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=xK-3iQ05ZItncX6AQSzf4uUn0K2ObBm40wbtvGfgnkQ,12708
|
@@ -60,18 +60,18 @@ vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
60
60
|
vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
61
|
vellum_ee/workflows/display/utils/tests/test_uuids.py,sha256=ItjROhaPns8_mlvD17LIBwZKvhe2l0dXEd5oL-JiY64,448
|
62
62
|
vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
|
63
|
-
vellum_ee/workflows/display/utils/vellum.py,sha256=
|
63
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=PYxIFv0H_8byUZkrs4jWPpQ6ACElImOBU7FHZjKKXsI,5278
|
64
64
|
vellum_ee/workflows/display/vellum.py,sha256=_-lLRZsEitt8fdUID62aiXptWa8rJhyqgL4uy1gDmc4,8783
|
65
65
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
66
66
|
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=HkakkrNgVFoHlUP7yHlQjHOvii3CZ90iyU1062PfoW4,12819
|
67
67
|
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=EN6gXo_uNRrQZtPjenSZHOge2ztz5J9k5tpsmfGulVY,1160
|
68
68
|
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=RxSnupMr7lEAAjiyTC1BGJzH4OtgSi63_-LwE7bil3o,16843
|
69
|
-
vellum/__init__.py,sha256=
|
70
|
-
vellum/client/README.md,sha256=
|
71
|
-
vellum/client/__init__.py,sha256=
|
69
|
+
vellum/__init__.py,sha256=67DJaPyfV8hWJkx4pBssBAnlPm3jQMl8VqIn5TtBP3Q,34484
|
70
|
+
vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
71
|
+
vellum/client/__init__.py,sha256=o4m7iRZWEV8rP3GkdaztHAjNmjxjWERlarviFoHzuKI,110927
|
72
72
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
73
73
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
74
|
-
vellum/client/core/client_wrapper.py,sha256=
|
74
|
+
vellum/client/core/client_wrapper.py,sha256=c9d8t0gg4sHCfhz528mHO5hti3rrAmFRPArvRV33Lkk,1890
|
75
75
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
76
76
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
77
77
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -89,7 +89,7 @@ vellum/client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNX
|
|
89
89
|
vellum/client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
|
90
90
|
vellum/client/resources/__init__.py,sha256=2B6Oim7PG4IxSUNSzDY1EruQHsaZ7konj3j_WSTydCs,1378
|
91
91
|
vellum/client/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
92
|
-
vellum/client/resources/ad_hoc/client.py,sha256=
|
92
|
+
vellum/client/resources/ad_hoc/client.py,sha256=HR5NwH12JPlaKBKKXtO9eiEe9_KTH11El3dbpG9nLuU,14403
|
93
93
|
vellum/client/resources/container_images/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
94
94
|
vellum/client/resources/container_images/client.py,sha256=jK1n-NFsdBKCeEKh-EIqvw7R8AG9PP4GxxcoH9F0GYs,15463
|
95
95
|
vellum/client/resources/deployments/__init__.py,sha256=m64MNuPx3qVazOnTNwOY8oEeDrAkNwMJvUEe5xoMDvs,239
|
@@ -108,7 +108,7 @@ vellum/client/resources/folder_entities/client.py,sha256=ep5dnfJmEuEyrOSUftEVwKa
|
|
108
108
|
vellum/client/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj-UZ9WdVzqHoQHCu6QsLFB3wlOs7k,212
|
109
109
|
vellum/client/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=nK9b9fRSeCfjn2V2Hifl1IbhFeVsNkoeXJ8rCAPADFg,183
|
110
110
|
vellum/client/resources/metric_definitions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
111
|
-
vellum/client/resources/metric_definitions/client.py,sha256=
|
111
|
+
vellum/client/resources/metric_definitions/client.py,sha256=T3pS0tn2M1e-kdURLemdftGlVGfmxSozcV-SpJN5zvE,10100
|
112
112
|
vellum/client/resources/ml_models/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
113
113
|
vellum/client/resources/ml_models/client.py,sha256=XIYapTEY6GRNr7V0Kjy5bEeKmrhv9ul8qlQY2A5LFqQ,3872
|
114
114
|
vellum/client/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
@@ -116,7 +116,7 @@ vellum/client/resources/sandboxes/client.py,sha256=i-6DHap5k6gFcYS-kWI8ayJFVZxb-
|
|
116
116
|
vellum/client/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
117
117
|
vellum/client/resources/test_suite_runs/client.py,sha256=gCF1ewlUrCsZhnXYOYqdUuD2twTrQ-u95xOgvRy7WAw,15130
|
118
118
|
vellum/client/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
119
|
-
vellum/client/resources/test_suites/client.py,sha256=
|
119
|
+
vellum/client/resources/test_suites/client.py,sha256=UDlFSHLdUFbZrjSq-uk6LA5O9SqgvAsQyrP8PpCeEBI,24659
|
120
120
|
vellum/client/resources/workflow_deployments/__init__.py,sha256=_duH6m1CDWcfqX6DTBNjO3ar4Xrl-f5PozMaTcT4Kow,251
|
121
121
|
vellum/client/resources/workflow_deployments/client.py,sha256=H9MhGYZVx1WLHE5j83Sl5HmX-CF6aJFCwQAGDG1n2oI,27149
|
122
122
|
vellum/client/resources/workflow_deployments/types/__init__.py,sha256=W7DKJ1nduwhRckYLvH7wHLdaGH9MXHTZkxwG7FdTngY,340
|
@@ -125,12 +125,12 @@ vellum/client/resources/workflow_deployments/types/workflow_deployments_list_req
|
|
125
125
|
vellum/client/resources/workflow_sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
126
126
|
vellum/client/resources/workflow_sandboxes/client.py,sha256=3wVQxkjrJ5bIS8fB5FpKXCP2dX38299ghWrJ8YmXxwQ,7435
|
127
127
|
vellum/client/resources/workflows/__init__.py,sha256=Z4xi8Nxd9U4t35FQSepTt1p-ns0X1xtdNs168kUcuBk,153
|
128
|
-
vellum/client/resources/workflows/client.py,sha256=
|
128
|
+
vellum/client/resources/workflows/client.py,sha256=5wqDiO1xYnYxNmbaEE1OTnUn3YXKpruYqF3taCjLRDI,10263
|
129
129
|
vellum/client/resources/workflows/types/__init__.py,sha256=-uFca4ypncAOvfsg6sjD-5C9zWdA5qNvU6m675GphVg,177
|
130
130
|
vellum/client/resources/workflows/types/workflows_pull_request_format.py,sha256=dOWE_jnDnniIJLoeseeCms23aklghyBkoPmBFzcqqZk,165
|
131
131
|
vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
132
132
|
vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
|
133
|
-
vellum/client/types/__init__.py,sha256=
|
133
|
+
vellum/client/types/__init__.py,sha256=l-m0JRpHj7tm8Kzsr7HOIK_O9XnGOVWfQanEOE4Z_yo,52066
|
134
134
|
vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
|
135
135
|
vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
|
136
136
|
vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
|
@@ -316,6 +316,7 @@ vellum/client/types/metadata_filter_rule_combinator.py,sha256=3Vpp1Mnv3As7efkxWT
|
|
316
316
|
vellum/client/types/metadata_filter_rule_request.py,sha256=Pcs0TsU7CRnsEUoH0DWb-c9DTP2UW67lJKXlsTLXV48,1135
|
317
317
|
vellum/client/types/metadata_filters_request.py,sha256=Yaiu7rkcrV2bCFk6HrZSjuF6V-6JYjZTpzxv7_MFe70,345
|
318
318
|
vellum/client/types/metric_definition_execution.py,sha256=xwr5VJTo32k77isUtz2uzHGmtRm6K_VyOlTCbJr0JNU,672
|
319
|
+
vellum/client/types/metric_definition_history_item.py,sha256=oR0m0PG_NGpEBSwJ3n-CFi6TJo3o5Y4D_wfaqpk2VxI,1183
|
319
320
|
vellum/client/types/metric_definition_input.py,sha256=4nmwpPqbeNQYCzLkXCkc-FGV5K2Zfa22xqSUe_L6o5s,331
|
320
321
|
vellum/client/types/metric_node_result.py,sha256=YdKq1DZiBD1RBtjyMejImylv3BqrwY8B_UF4Ij-6_64,660
|
321
322
|
vellum/client/types/ml_model_read.py,sha256=Vr5KjaS2Tca0GXsltfSYQpuyGYpgIahPEFfS6HfFGSo,706
|
@@ -875,6 +876,7 @@ vellum/types/metadata_filter_rule_combinator.py,sha256=bHx8PgGv5n_3cC-blXV20DKek
|
|
875
876
|
vellum/types/metadata_filter_rule_request.py,sha256=LULGRo2_1WXc8GbFQioEzB1BfAfcOONwSgrRpwXlQig,166
|
876
877
|
vellum/types/metadata_filters_request.py,sha256=Czs4HD9ibSdtX026v3NMur6L6wKOYYkvd5Em1-UVI2o,162
|
877
878
|
vellum/types/metric_definition_execution.py,sha256=Yx5b1CygziiPLjlZDQF0lVVI7ubRLVJn16vT3N7zmHQ,165
|
879
|
+
vellum/types/metric_definition_history_item.py,sha256=OUGYJ9yHc60QiYh_C8-YuA1zHeQ9v5lShdaJ5KEl-1c,168
|
878
880
|
vellum/types/metric_definition_input.py,sha256=TwMwjC_MNiLdodsvT52D7aa_wRY-0kT047flY3sFxII,161
|
879
881
|
vellum/types/metric_node_result.py,sha256=Q_bUgbdRnSP26nEcJ-vZD7k2oLIcThN3JjW9hXTRfZo,156
|
880
882
|
vellum/types/ml_model_read.py,sha256=d_CPwZ3bhXtC8c5jwXkuNVvobDqPI-I_byZ6WnVla1Q,151
|
@@ -1189,9 +1191,9 @@ vellum/workflows/environment/environment.py,sha256=IwcVSwA51jW1JTN_MAN22UbeAtZhi
|
|
1189
1191
|
vellum/workflows/errors/__init__.py,sha256=BRyo4hKP2ElS4k1YDu8VdY2VhUZjILtHn2sPFf_d7U0,105
|
1190
1192
|
vellum/workflows/errors/types.py,sha256=YQy6na_iBkqxl9GHKOcin44m8DMRG5KP9oLV1Lpal1M,541
|
1191
1193
|
vellum/workflows/events/__init__.py,sha256=vLwQuykMmbv0izdUvsamouRQKbmKX_r9Poo77jd404w,821
|
1192
|
-
vellum/workflows/events/node.py,sha256=
|
1194
|
+
vellum/workflows/events/node.py,sha256=YQVWrE8LD5IxRTz_e0-0bXMhk3RZ75ZKTvAJZqH8dP0,5270
|
1193
1195
|
vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1194
|
-
vellum/workflows/events/tests/test_event.py,sha256=
|
1196
|
+
vellum/workflows/events/tests/test_event.py,sha256=BbAeTohMdfAdpBea9fbi5nDXX6UQ7xASMv9jNuwOmDU,12704
|
1195
1197
|
vellum/workflows/events/types.py,sha256=2MDqlhBMwFWKso423IGH9ZdsPnmBWGGOIBceW568pnk,2865
|
1196
1198
|
vellum/workflows/events/utils.py,sha256=OwtE8dHOCX01jvLyoS1l18tYQ4ob0YJcUhUorKWLJh0,232
|
1197
1199
|
vellum/workflows/events/workflow.py,sha256=kPjZTh5hzCsSrVKLkXQNwzxhnUp3X4GkFA5veGatGlQ,4353
|
@@ -1281,7 +1283,7 @@ vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sh
|
|
1281
1283
|
vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py,sha256=pvkvMOIL94vDP3KUrQh0OF1lELjEFJ6HIDEz5kUqbzo,3377
|
1282
1284
|
vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=R0gVJVwn2g3caDr25LBj_mj9JUIbORSS-88MQkvSWQU,215
|
1283
1285
|
vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
|
1284
|
-
vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=
|
1286
|
+
vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=SWfsEQ7G_y3yEnxzMhjtjHF4xZvFdFTds77LrFZHGUU,1020
|
1285
1287
|
vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
|
1286
1288
|
vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=iH3ZPOstPku_rg4h97Xz5FMaHWVRCjypaamAFzoJzJ0,1854
|
1287
1289
|
vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
|
@@ -1306,10 +1308,10 @@ vellum/workflows/nodes/utils.py,sha256=zY0b5WjJtGwVPPLY3ffHUdRREPvyoNwmJDigz5jQR
|
|
1306
1308
|
vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
|
1307
1309
|
vellum/workflows/outputs/base.py,sha256=aOll71CH_g1RaVO1wl038BqpWH70cD3XXSRxzH0YoRA,8002
|
1308
1310
|
vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
|
1309
|
-
vellum/workflows/ports/node_ports.py,sha256=
|
1310
|
-
vellum/workflows/ports/port.py,sha256=
|
1311
|
+
vellum/workflows/ports/node_ports.py,sha256=GCsCejo2THT6Zxx_slegLbd5CvV6iPy9IOZOFjHkCXY,2753
|
1312
|
+
vellum/workflows/ports/port.py,sha256=iLYzjIoFk5HWpNyhySf8E1uIuJ3MbAeJGD3yOnnLY70,2843
|
1311
1313
|
vellum/workflows/ports/utils.py,sha256=pEjVNJKw9LhD_cFN-o0MWBOW2ejno7jv26qqzjLxwS4,1662
|
1312
|
-
vellum/workflows/references/__init__.py,sha256=
|
1314
|
+
vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
|
1313
1315
|
vellum/workflows/references/environment_variable.py,sha256=7FFtiKfc4eyVkkfUbhc666OBNDqvFlMoNQEYmGpEVVE,661
|
1314
1316
|
vellum/workflows/references/execution_count.py,sha256=JILHqt8ELdc9ct-WsVCA5X-rKiP1rmJODw-XTf4kpHI,722
|
1315
1317
|
vellum/workflows/references/external_input.py,sha256=ZSnRIjrTwpWuBcInZMvQQzcDgkeZ1r7-C7I4sRpDNy4,1658
|
@@ -1323,12 +1325,12 @@ vellum/workflows/references/workflow_input.py,sha256=epspVRZ9n_nxoTxI5Am3GDd2fpU
|
|
1323
1325
|
vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
|
1324
1326
|
vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
|
1325
1327
|
vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
|
1326
|
-
vellum/workflows/runner/runner.py,sha256=
|
1327
|
-
vellum/workflows/runner/types.py,sha256=
|
1328
|
+
vellum/workflows/runner/runner.py,sha256=MavIvMsEJkFxgZb4sd0-vLFWnVBfZIn4AsfVJcqn1rY,24504
|
1329
|
+
vellum/workflows/runner/types.py,sha256=UQIGqOuCDgxEQpoJr4ut3wAnAjp4scDWhNhEhYFyLrw,466
|
1328
1330
|
vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
|
1329
1331
|
vellum/workflows/state/base.py,sha256=gm4pun9BzYaZbW8I1j7EriUIlAzqQkKT3IBbXPh3FkA,12663
|
1330
1332
|
vellum/workflows/state/context.py,sha256=tpJoOgmx7bmeNrQeOtavOfqTwBbtJCNDqjJ6ssh4gh8,464
|
1331
|
-
vellum/workflows/state/encoder.py,sha256=
|
1333
|
+
vellum/workflows/state/encoder.py,sha256=kRrqwD0vFCiSRZR3rg8Sjkh8sDEerQQhlvmdSYQAOl8,1741
|
1332
1334
|
vellum/workflows/state/store.py,sha256=VYGBQgN1bpd1as5eGiouV_7scg8QsRs4_1aqZAGIsRQ,793
|
1333
1335
|
vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1334
1336
|
vellum/workflows/state/tests/test_state.py,sha256=BQjcdREIK1MPuGhivRUgpynVJLftjEpH9RG3cRKxQEY,3310
|
@@ -1337,8 +1339,8 @@ vellum/workflows/types/core.py,sha256=llsHFE3XKnVEk_pYoK0s9WUdeninSU5Kmoi7dU4GX0
|
|
1337
1339
|
vellum/workflows/types/generics.py,sha256=ZkfoRhWs042i5IjA99v2wIhmh1u-Wieo3LzosgGWJVk,600
|
1338
1340
|
vellum/workflows/types/stack.py,sha256=RDSGLkcV612ge8UuAH9TZiEGXxJt0Av2-H5rfzrTVVI,1014
|
1339
1341
|
vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1340
|
-
vellum/workflows/types/tests/test_utils.py,sha256=
|
1341
|
-
vellum/workflows/types/utils.py,sha256=
|
1342
|
+
vellum/workflows/types/tests/test_utils.py,sha256=hlCGh0GW_fY16oMSgu-Lih14TSZXcknWNFqMYCCkdeo,2433
|
1343
|
+
vellum/workflows/types/utils.py,sha256=rPQdiMkYgWp_6Iv6pRK0qjmxPrgf11FvaUS8z9i2Opw,5598
|
1342
1344
|
vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1343
1345
|
vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
|
1344
1346
|
vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1348,8 +1350,8 @@ vellum/workflows/utils/vellum_variables.py,sha256=wbYejKwjy23ITDRfdGW4d181buvCbZ
|
|
1348
1350
|
vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
|
1349
1351
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1350
1352
|
vellum/workflows/workflows/base.py,sha256=QxIm0zCic8P-y0NNLdqgC1YKTu-3TmMJ-wH1nUylguA,13689
|
1351
|
-
vellum_ai-0.10.
|
1352
|
-
vellum_ai-0.10.
|
1353
|
-
vellum_ai-0.10.
|
1354
|
-
vellum_ai-0.10.
|
1355
|
-
vellum_ai-0.10.
|
1353
|
+
vellum_ai-0.10.7.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1354
|
+
vellum_ai-0.10.7.dist-info/METADATA,sha256=ORDcBMHiWjSs9HCgB8N2aas_2KPUBSDX96vbojp8F6w,5128
|
1355
|
+
vellum_ai-0.10.7.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
1356
|
+
vellum_ai-0.10.7.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1357
|
+
vellum_ai-0.10.7.dist-info/RECORD,,
|
@@ -1,14 +1,16 @@
|
|
1
1
|
from uuid import UUID
|
2
2
|
from typing import Any, ClassVar, Generic, Optional, TypeVar
|
3
3
|
|
4
|
+
from vellum.workflows.nodes.core.map_node.node import MapNode
|
5
|
+
from vellum.workflows.nodes.displayable.final_output_node import FinalOutputNode
|
6
|
+
from vellum.workflows.references.output import OutputReference
|
7
|
+
from vellum.workflows.types.core import JsonObject
|
4
8
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
5
9
|
from vellum_ee.workflows.display.nodes.utils import to_kebab_case
|
6
10
|
from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
|
7
11
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
8
12
|
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
9
13
|
from vellum_ee.workflows.display.utils.vellum import infer_vellum_variable_type
|
10
|
-
from vellum.workflows.nodes.displayable.final_output_node import FinalOutputNode
|
11
|
-
from vellum.workflows.types.core import JsonObject
|
12
14
|
|
13
15
|
_FinalOutputNodeType = TypeVar("_FinalOutputNodeType", bound=FinalOutputNode)
|
14
16
|
|
@@ -1,59 +1,32 @@
|
|
1
1
|
from uuid import UUID
|
2
|
-
from typing import
|
2
|
+
from typing import Collection, Dict, Generic, List, Optional, TypeVar, cast
|
3
3
|
|
4
|
-
from vellum import VellumVariable
|
5
4
|
from vellum.workflows.nodes import MapNode
|
6
5
|
from vellum.workflows.types.core import JsonObject
|
7
6
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
8
7
|
from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
|
9
8
|
from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
|
10
9
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
11
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
12
|
-
from vellum_ee.workflows.display.utils.vellum import infer_vellum_variable_type
|
13
10
|
from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
|
14
11
|
|
15
12
|
_MapNodeType = TypeVar("_MapNodeType", bound=MapNode)
|
16
13
|
|
17
14
|
|
18
15
|
class BaseMapNodeDisplay(BaseNodeVellumDisplay[_MapNodeType], Generic[_MapNodeType]):
|
19
|
-
workflow_input_ids_by_name: ClassVar[Dict[str, UUID]] = {}
|
20
|
-
|
21
16
|
def serialize(
|
22
17
|
self, display_context: WorkflowDisplayContext, error_output_id: Optional[UUID] = None, **kwargs
|
23
18
|
) -> JsonObject:
|
24
19
|
node = self._node
|
25
20
|
node_id = self.node_id
|
26
21
|
|
27
|
-
workflow_inputs: List[VellumVariable] = []
|
28
22
|
subworkflow = raise_if_descriptor(node.subworkflow)
|
29
|
-
for descriptor in subworkflow.get_inputs_class():
|
30
|
-
# In WaC it's always 'all_items'
|
31
|
-
# In Vellum it's always 'items'
|
32
|
-
variable_name = descriptor.name if descriptor.name != "all_items" else "items"
|
33
|
-
variable_id = str(
|
34
|
-
self.workflow_input_ids_by_name.get(variable_name)
|
35
|
-
or uuid4_from_hash(f"{self.node_id}|{variable_name}")
|
36
|
-
)
|
37
|
-
workflow_inputs.append(
|
38
|
-
VellumVariable(
|
39
|
-
id=variable_id,
|
40
|
-
key=variable_name,
|
41
|
-
type=infer_vellum_variable_type(descriptor),
|
42
|
-
)
|
43
|
-
)
|
44
|
-
|
45
|
-
items_workflow_input = next(input for input in workflow_inputs if input.key == "items")
|
46
|
-
item_workflow_input = next(input for input in workflow_inputs if input.key == "item")
|
47
|
-
index_workflow_input = next(input for input in workflow_inputs if input.key == "index")
|
48
|
-
|
49
|
-
workflow_outputs = self._generate_workflow_outputs(node)
|
50
23
|
|
51
24
|
items_node_input = create_node_input(
|
52
25
|
node_id=node_id,
|
53
26
|
input_name="items",
|
54
27
|
value=node.items,
|
55
28
|
display_context=display_context,
|
56
|
-
input_id=
|
29
|
+
input_id=self.node_input_ids_by_name.get("items"),
|
57
30
|
)
|
58
31
|
node_inputs = [items_node_input]
|
59
32
|
|
@@ -63,6 +36,19 @@ class BaseMapNodeDisplay(BaseNodeVellumDisplay[_MapNodeType], Generic[_MapNodeTy
|
|
63
36
|
)
|
64
37
|
serialized_subworkflow = subworkflow_display.serialize()
|
65
38
|
|
39
|
+
renamed_input_variables = []
|
40
|
+
for input_variable in cast(List[Dict[str, str]], serialized_subworkflow["input_variables"]):
|
41
|
+
if input_variable["key"] == "all_items":
|
42
|
+
renamed_item = { **input_variable, "key": "items" }
|
43
|
+
renamed_input_variables.append(renamed_item)
|
44
|
+
else:
|
45
|
+
renamed_input_variables.append(input_variable)
|
46
|
+
|
47
|
+
# Note: This must match the items input ID for the map node's node input
|
48
|
+
items_workflow_input_id = next(input_variable["id"] for input_variable in renamed_input_variables if input_variable["key"] == "items")
|
49
|
+
item_workflow_input_id = next(input_variable["id"] for input_variable in renamed_input_variables if input_variable["key"] == "item")
|
50
|
+
index_workflow_input_id = next(input_variable["id"] for input_variable in renamed_input_variables if input_variable["key"] == "index")
|
51
|
+
|
66
52
|
return {
|
67
53
|
"id": str(node_id),
|
68
54
|
"type": "MAP",
|
@@ -74,27 +60,13 @@ class BaseMapNodeDisplay(BaseNodeVellumDisplay[_MapNodeType], Generic[_MapNodeTy
|
|
74
60
|
"target_handle_id": str(self.get_target_handle_id()),
|
75
61
|
"variant": "INLINE",
|
76
62
|
"workflow_raw_data": serialized_subworkflow["workflow_raw_data"],
|
77
|
-
"input_variables":
|
78
|
-
"output_variables": [
|
63
|
+
"input_variables": cast(JsonObject, renamed_input_variables),
|
64
|
+
"output_variables": serialized_subworkflow["output_variables"],
|
79
65
|
"concurrency": raise_if_descriptor(node.concurrency),
|
80
|
-
"items_input_id":
|
81
|
-
"item_input_id":
|
82
|
-
"index_input_id":
|
66
|
+
"items_input_id": items_workflow_input_id,
|
67
|
+
"item_input_id": item_workflow_input_id,
|
68
|
+
"index_input_id": index_workflow_input_id,
|
83
69
|
},
|
84
70
|
"display_data": self.get_display_data().dict(),
|
85
71
|
"definition": self.get_definition().dict(),
|
86
72
|
}
|
87
|
-
|
88
|
-
def _generate_workflow_outputs(
|
89
|
-
self,
|
90
|
-
node: Type[MapNode],
|
91
|
-
) -> List[VellumVariable]:
|
92
|
-
workflow_outputs: List[VellumVariable] = []
|
93
|
-
for output_descriptor in raise_if_descriptor(node.subworkflow).Outputs: # type: ignore[union-attr]
|
94
|
-
node_output_display = self.get_node_output_display(output_descriptor)
|
95
|
-
output_type = infer_vellum_variable_type(output_descriptor)
|
96
|
-
workflow_outputs.append(
|
97
|
-
VellumVariable(id=str(node_output_display.id), key=node_output_display.name, type=output_type)
|
98
|
-
)
|
99
|
-
|
100
|
-
return workflow_outputs
|
@@ -13,30 +13,20 @@ from vellum.workflows.expressions.does_not_equal import DoesNotEqualExpression
|
|
13
13
|
from vellum.workflows.expressions.ends_with import EndsWithExpression
|
14
14
|
from vellum.workflows.expressions.equals import EqualsExpression
|
15
15
|
from vellum.workflows.expressions.greater_than import GreaterThanExpression
|
16
|
-
from vellum.workflows.expressions.greater_than_or_equal_to import
|
17
|
-
GreaterThanOrEqualToExpression,
|
18
|
-
)
|
16
|
+
from vellum.workflows.expressions.greater_than_or_equal_to import GreaterThanOrEqualToExpression
|
19
17
|
from vellum.workflows.expressions.in_ import InExpression
|
20
18
|
from vellum.workflows.expressions.is_not_null import IsNotNullExpression
|
21
19
|
from vellum.workflows.expressions.is_null import IsNullExpression
|
22
20
|
from vellum.workflows.expressions.less_than import LessThanExpression
|
23
|
-
from vellum.workflows.expressions.less_than_or_equal_to import
|
24
|
-
LessThanOrEqualToExpression,
|
25
|
-
)
|
21
|
+
from vellum.workflows.expressions.less_than_or_equal_to import LessThanOrEqualToExpression
|
26
22
|
from vellum.workflows.expressions.not_between import NotBetweenExpression
|
27
23
|
from vellum.workflows.expressions.not_in import NotInExpression
|
28
|
-
from vellum_ee.workflows.display.nodes.base_node_vellum_display import
|
29
|
-
BaseNodeVellumDisplay,
|
30
|
-
)
|
24
|
+
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
31
25
|
from vellum_ee.workflows.display.workflows import VellumWorkflowDisplay
|
32
|
-
from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import
|
33
|
-
get_workflow_display,
|
34
|
-
)
|
26
|
+
from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
|
35
27
|
|
36
28
|
from tests.workflows.basic_conditional_node.workflow import CategoryWorkflow
|
37
|
-
from tests.workflows.basic_conditional_node.workflow_with_only_one_conditional_node import
|
38
|
-
create_simple_workflow,
|
39
|
-
)
|
29
|
+
from tests.workflows.basic_conditional_node.workflow_with_only_one_conditional_node import create_simple_workflow
|
40
30
|
|
41
31
|
|
42
32
|
def test_serialize_workflow():
|
@@ -965,7 +955,6 @@ def test_conditional_node_serialize_all_operators_with_lhs_and_rhs(
|
|
965
955
|
|
966
956
|
# AND the conditional node should be what we expect
|
967
957
|
conditional_node = workflow_raw_data["nodes"][1]
|
968
|
-
print(conditional_node)
|
969
958
|
assert not DeepDiff(
|
970
959
|
{
|
971
960
|
"id": "a9143814-6bb0-4cb3-a817-4fc076417121",
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py
CHANGED
@@ -228,15 +228,15 @@ def test_serialize_workflow():
|
|
228
228
|
},
|
229
229
|
},
|
230
230
|
"input_variables": [
|
231
|
-
{"id": "
|
232
|
-
{"id": "
|
233
|
-
{"id": "
|
231
|
+
{"id": "b29bb546-9bc8-4136-857d-8c7a464ba9d4", "key": "item", "type": "JSON", "required": True, "default": None, "extensions": {"color": None}},
|
232
|
+
{"id": "17e7ca49-668f-450d-a792-e1f97d13db67", "key": "index", "type": "NUMBER", "required": True, "default": None, "extensions": {"color": None}},
|
233
|
+
{"id": "d6fc6c7a-235f-4b98-86f3-e258d1198f93", "key": "items", "type": "JSON", "required": True, "default": None, "extensions": {"color": None}},
|
234
234
|
],
|
235
|
-
"output_variables": [{"id": "
|
235
|
+
"output_variables": [{"id": "2a957315-fae0-4366-8a35-f0b315c5eade", "key": "count", "type": "NUMBER"}],
|
236
236
|
"concurrency": None,
|
237
|
-
"items_input_id": "
|
238
|
-
"item_input_id": "
|
239
|
-
"index_input_id": "
|
237
|
+
"items_input_id": "d6fc6c7a-235f-4b98-86f3-e258d1198f93",
|
238
|
+
"item_input_id": "b29bb546-9bc8-4136-857d-8c7a464ba9d4",
|
239
|
+
"index_input_id": "17e7ca49-668f-450d-a792-e1f97d13db67",
|
240
240
|
},
|
241
241
|
"display_data": {"position": {"x": 0.0, "y": 0.0}},
|
242
242
|
"definition": {
|
@@ -288,7 +288,7 @@ def test_serialize_workflow():
|
|
288
288
|
"type": "NODE_OUTPUT",
|
289
289
|
"data": {
|
290
290
|
"node_id": "bf83099a-40df-4445-b90d-1f6f1067ebe3",
|
291
|
-
"output_id": "
|
291
|
+
"output_id": "2a957315-fae0-4366-8a35-f0b315c5eade",
|
292
292
|
},
|
293
293
|
}
|
294
294
|
],
|
@@ -323,6 +323,9 @@ def test_serialize_workflow():
|
|
323
323
|
},
|
324
324
|
},
|
325
325
|
workflow_raw_data["nodes"][2],
|
326
|
+
# TODO: Fix output ID not referencing map node workflow output
|
327
|
+
# https://app.shortcut.com/vellum/story/5667/fix-output-display-reference-on-map-nodes
|
328
|
+
exclude_regex_paths=r"root\['inputs'\]\[0\]\['value'\]\['rules'\]\[0\]\['data'\]\['output_id'\]",
|
326
329
|
)
|
327
330
|
|
328
331
|
# AND each edge should be serialized correctly
|
@@ -4,7 +4,9 @@ import typing
|
|
4
4
|
from typing import Any, List, Union, cast
|
5
5
|
|
6
6
|
from vellum import ChatMessage, SearchResult, SearchResultRequest, VellumVariableType
|
7
|
+
from vellum.client.types.array_vellum_value import ArrayVellumValue
|
7
8
|
from vellum.workflows.descriptors.base import BaseDescriptor
|
9
|
+
from vellum.workflows.nodes.core.map_node.node import MapNodeItemType
|
8
10
|
from vellum.workflows.references import OutputReference, WorkflowInputReference
|
9
11
|
from vellum.workflows.references.execution_count import ExecutionCountReference
|
10
12
|
from vellum.workflows.references.node import NodeReference
|
@@ -45,9 +47,8 @@ def infer_vellum_variable_type(value: Any) -> VellumVariableType:
|
|
45
47
|
raise ValueError(
|
46
48
|
f"Expected NodeReference {descriptor.name} to have an instance pointing to a descriptor"
|
47
49
|
)
|
48
|
-
|
49
50
|
descriptor = descriptor.instance
|
50
|
-
|
51
|
+
|
51
52
|
inferred_type = primitive_type_to_vellum_variable_type(descriptor)
|
52
53
|
else:
|
53
54
|
vellum_variable_value = primitive_to_vellum_value(value)
|
File without changes
|
File without changes
|
File without changes
|