vellum-ai 0.10.6__py3-none-any.whl → 0.10.7__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|