roboflow-workflows 0.2.8__tar.gz → 0.2.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (896) hide show
  1. {roboflow_workflows-0.2.8/roboflow_workflows.egg-info → roboflow_workflows-0.2.9}/PKG-INFO +2 -1
  2. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/pyproject.toml +2 -1
  3. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/_compat_names.py +22 -0
  4. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search/helpers.py +43 -0
  5. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search/v1.py +248 -0
  6. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/__init__.py +1 -0
  7. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/classification_annotations.py +177 -0
  8. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/v1.py +510 -0
  9. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/v1_tensor.py +640 -0
  10. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/loader.py +92 -10
  11. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v7.py +33 -0
  12. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/asset_library_attributes/v1.py +469 -0
  13. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/custom_metadata/v1.py +340 -0
  14. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/custom_metadata/v1_tensor.py +380 -0
  15. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/active_learning.py +424 -0
  16. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v1.py +706 -0
  17. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v1_tensor.py +1028 -0
  18. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v2.py +446 -0
  19. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v2_tensor.py +465 -0
  20. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/model_monitoring_inference_aggregator/v1.py +558 -0
  21. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/model_monitoring_inference_aggregator/v1_tensor.py +668 -0
  22. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events/v1.py +1220 -0
  23. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events/v1_tensor.py +1184 -0
  24. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events_bundle/v1.py +1043 -0
  25. roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events_bundle/v1_tensor.py +1056 -0
  26. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/blocks_loader.py +5 -2
  27. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/introspection/manifest_cache.py +57 -0
  28. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/schema_parser.py +15 -3
  29. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/profiling/__init__.py +0 -0
  30. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/__init__.py +0 -0
  31. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/compiler/__init__.py +0 -0
  32. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/cache.py +13 -1
  33. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/core.py +9 -7
  34. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/syntactic_parser.py +27 -9
  35. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/debugger/__init__.py +0 -0
  36. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/dynamic_blocks/__init__.py +0 -0
  37. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/block_assembler.py +13 -0
  38. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/executor/__init__.py +0 -0
  39. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/__init__.py +0 -0
  40. roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/introspection/__init__.py +0 -0
  41. roboflow_workflows-0.2.9/roboflow_workflows/prototypes/__init__.py +0 -0
  42. roboflow_workflows-0.2.9/roboflow_workflows/prototypes/platform_client.py +617 -0
  43. roboflow_workflows-0.2.9/roboflow_workflows/utils/__init__.py +0 -0
  44. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9/roboflow_workflows.egg-info}/PKG-INFO +2 -1
  45. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/SOURCES.txt +31 -0
  46. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/requires.txt +1 -0
  47. roboflow_workflows-0.2.8/roboflow_workflows/prototypes/platform_client.py +0 -97
  48. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/LICENSE +0 -0
  49. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/README.md +0 -0
  50. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/__init__.py +0 -0
  51. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/configuration.py +0 -0
  52. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/__init__.py +0 -0
  53. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/__init__.py +0 -0
  54. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/_zone_geometry.py +0 -0
  55. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/data_aggregator/__init__.py +0 -0
  56. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/data_aggregator/v1.py +0 -0
  57. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/detection_event_log/__init__.py +0 -0
  58. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/detection_event_log/v1.py +0 -0
  59. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/detection_event_log/v1_tensor.py +0 -0
  60. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/__init__.py +0 -0
  61. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v1.py +0 -0
  62. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v1_tensor.py +0 -0
  63. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v2.py +0 -0
  64. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v2_tensor.py +0 -0
  65. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/overlap/__init__.py +0 -0
  66. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/overlap/v1.py +0 -0
  67. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/overlap/v1_tensor.py +0 -0
  68. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/__init__.py +0 -0
  69. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v1.py +0 -0
  70. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v1_tensor.py +0 -0
  71. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v2.py +0 -0
  72. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v2_tensor.py +0 -0
  73. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/__init__.py +0 -0
  74. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v1.py +0 -0
  75. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v1_tensor.py +0 -0
  76. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v2.py +0 -0
  77. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v2_tensor.py +0 -0
  78. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v3.py +0 -0
  79. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v3_tensor.py +0 -0
  80. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/velocity/__init__.py +0 -0
  81. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/velocity/v1.py +0 -0
  82. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/velocity/v1_tensor.py +0 -0
  83. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/__init__.py +0 -0
  84. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_get/__init__.py +0 -0
  85. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_get/v1.py +0 -0
  86. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_set/__init__.py +0 -0
  87. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_set/v1.py +0 -0
  88. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/common.py +0 -0
  89. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/memory_cache.py +0 -0
  90. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/__init__.py +0 -0
  91. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/auto_rotate_on_edges/__init__.py +0 -0
  92. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/auto_rotate_on_edges/v1.py +0 -0
  93. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/background_subtraction/__init__.py +0 -0
  94. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/background_subtraction/v1.py +0 -0
  95. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/camera_focus/__init__.py +0 -0
  96. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/camera_focus/v1.py +0 -0
  97. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/camera_focus/v2.py +0 -0
  98. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contours/__init__.py +0 -0
  99. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contours/v1.py +0 -0
  100. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_enhancement/__init__.py +0 -0
  101. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_enhancement/v1.py +0 -0
  102. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_enhancement/v1_tensor.py +0 -0
  103. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_equalization/__init__.py +0 -0
  104. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_equalization/v1.py +0 -0
  105. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_equalization/v1_tensor.py +0 -0
  106. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/convert_grayscale/__init__.py +0 -0
  107. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/convert_grayscale/v1.py +0 -0
  108. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/convert_grayscale/v1_tensor.py +0 -0
  109. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/detections_nearest_neighbor/__init__.py +0 -0
  110. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/detections_nearest_neighbor/v1.py +0 -0
  111. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/detections_nearest_neighbor/v1_tensor.py +0 -0
  112. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/distance_measurement/__init__.py +0 -0
  113. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/distance_measurement/v1.py +0 -0
  114. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/distance_measurement/v1_tensor.py +0 -0
  115. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/dominant_color/__init__.py +0 -0
  116. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/dominant_color/v1.py +0 -0
  117. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/dominant_color/v1_tensor.py +0 -0
  118. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_blur/__init__.py +0 -0
  119. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_blur/v1.py +0 -0
  120. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_blur/v1_tensor.py +0 -0
  121. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_preprocessing/__init__.py +0 -0
  122. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_preprocessing/v1.py +0 -0
  123. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_preprocessing/v1_tensor.py +0 -0
  124. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_area_measurement/__init__.py +0 -0
  125. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_area_measurement/v1.py +0 -0
  126. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_area_measurement/v1_tensor.py +0 -0
  127. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_edge_snap/__init__.py +0 -0
  128. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_edge_snap/v1.py +0 -0
  129. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_edge_snap/v1_tensor.py +0 -0
  130. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/morphological_transformation/__init__.py +0 -0
  131. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/morphological_transformation/v1.py +0 -0
  132. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/morphological_transformation/v2.py +0 -0
  133. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/motion_detection/__init__.py +0 -0
  134. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/motion_detection/v1.py +0 -0
  135. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/motion_detection/v1_tensor.py +0 -0
  136. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/pixel_color_count/__init__.py +0 -0
  137. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/pixel_color_count/v1.py +0 -0
  138. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/pixel_color_count/v1_tensor.py +0 -0
  139. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift/__init__.py +0 -0
  140. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift/v1.py +0 -0
  141. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift_comparison/__init__.py +0 -0
  142. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift_comparison/v1.py +0 -0
  143. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift_comparison/v2.py +0 -0
  144. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/size_measurement/__init__.py +0 -0
  145. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/size_measurement/v1.py +0 -0
  146. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/size_measurement/v1_tensor.py +0 -0
  147. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/template_matching/__init__.py +0 -0
  148. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/template_matching/v1.py +0 -0
  149. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/template_matching/v1_tensor.py +0 -0
  150. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/threshold/__init__.py +0 -0
  151. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/threshold/v1.py +0 -0
  152. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/threshold/v1_tensor.py +0 -0
  153. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/__init__.py +0 -0
  154. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/deserializers.py +0 -0
  155. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/deserializers_tensor.py +0 -0
  156. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/entities.py +0 -0
  157. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/inference_response_entities.py +0 -0
  158. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/keypoints.py +0 -0
  159. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/openrouter.py +0 -0
  160. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/operators.py +0 -0
  161. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/__init__.py +0 -0
  162. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/__init__.py +0 -0
  163. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/enums.py +0 -0
  164. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/introspection.py +0 -0
  165. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/operations.py +0 -0
  166. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/types.py +0 -0
  167. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/errors.py +0 -0
  168. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/__init__.py +0 -0
  169. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/core.py +0 -0
  170. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/detection/__init__.py +0 -0
  171. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/detection/geometry.py +0 -0
  172. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/introspection/__init__.py +0 -0
  173. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/introspection/core.py +0 -0
  174. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/__init__.py +0 -0
  175. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/booleans/__init__.py +0 -0
  176. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/booleans/base.py +0 -0
  177. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/classification_results/__init__.py +0 -0
  178. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/classification_results/base.py +0 -0
  179. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/core.py +0 -0
  180. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detection/__init__.py +0 -0
  181. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detection/base.py +0 -0
  182. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detections/__init__.py +0 -0
  183. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detections/base.py +0 -0
  184. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/dictionaries/__init__.py +0 -0
  185. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/dictionaries/base.py +0 -0
  186. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/frame_metadata/__init__.py +0 -0
  187. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/frame_metadata/base.py +0 -0
  188. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/generic/__init__.py +0 -0
  189. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/generic/base.py +0 -0
  190. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/images/__init__.py +0 -0
  191. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/images/base.py +0 -0
  192. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/numbers/__init__.py +0 -0
  193. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/numbers/base.py +0 -0
  194. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/sequences/__init__.py +0 -0
  195. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/sequences/base.py +0 -0
  196. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/strings/__init__.py +0 -0
  197. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/strings/base.py +0 -0
  198. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/timestamps/__init__.py +0 -0
  199. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/timestamps/base.py +0 -0
  200. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/utils.py +0 -0
  201. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/reasoning.py +0 -0
  202. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/rle_compact.py +0 -0
  203. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/segmentation_entities.py +0 -0
  204. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/serializers.py +0 -0
  205. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/serializers_tensor.py +0 -0
  206. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/tensor_native.py +0 -0
  207. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/token_usage.py +0 -0
  208. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/utils.py +0 -0
  209. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/utils_tensor.py +0 -0
  210. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/__init__.py +0 -0
  211. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/argon_segmentation.py +0 -0
  212. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/classification.py +0 -0
  213. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/detection_formats.py +0 -0
  214. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/detections.py +0 -0
  215. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/json_extraction.py +0 -0
  216. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/outputs.py +0 -0
  217. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/segmentation.py +0 -0
  218. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/tensor_native.py +0 -0
  219. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/utils.py +0 -0
  220. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_json.py +0 -0
  221. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlms.py +0 -0
  222. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/workload_presets.py +0 -0
  223. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/__init__.py +0 -0
  224. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/continue_if/__init__.py +0 -0
  225. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/continue_if/v1.py +0 -0
  226. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/delta_filter/__init__.py +0 -0
  227. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/delta_filter/v1.py +0 -0
  228. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/inner_workflow/__init__.py +0 -0
  229. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/inner_workflow/v1.py +0 -0
  230. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/rate_limiter/__init__.py +0 -0
  231. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/rate_limiter/v1.py +0 -0
  232. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/switch_case/__init__.py +0 -0
  233. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/switch_case/v1.py +0 -0
  234. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/__init__.py +0 -0
  235. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/csv/__init__.py +0 -0
  236. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/csv/v1.py +0 -0
  237. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/current_time/__init__.py +0 -0
  238. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/current_time/v1.py +0 -0
  239. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/expression/__init__.py +0 -0
  240. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/expression/v1.py +0 -0
  241. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/first_non_empty_or_default/__init__.py +0 -0
  242. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/first_non_empty_or_default/v1.py +0 -0
  243. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/json_parser/__init__.py +0 -0
  244. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/json_parser/v1.py +0 -0
  245. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/property_definition/__init__.py +0 -0
  246. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/property_definition/v1.py +0 -0
  247. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/string_template/__init__.py +0 -0
  248. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/string_template/v1.py +0 -0
  249. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/__init__.py +0 -0
  250. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v1.py +0 -0
  251. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v1_tensor.py +0 -0
  252. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v2.py +0 -0
  253. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v2_tensor.py +0 -0
  254. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/__init__.py +0 -0
  255. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/anthropic_detection_parsing.py +0 -0
  256. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/gemini_detection_parsing.py +0 -0
  257. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/muse_detection_parsing.py +0 -0
  258. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/openai_detection_parsing.py +0 -0
  259. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/qwen_detection_parsing.py +0 -0
  260. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/spacexai_detection_parsing.py +0 -0
  261. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v1.py +0 -0
  262. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v1_tensor.py +0 -0
  263. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v2.py +0 -0
  264. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v2_tensor.py +0 -0
  265. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/__init__.py +0 -0
  266. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/buffer/__init__.py +0 -0
  267. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/buffer/v1.py +0 -0
  268. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_classes_replacement/__init__.py +0 -0
  269. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_classes_replacement/v1.py +0 -0
  270. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_classes_replacement/v1_tensor.py +0 -0
  271. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_consensus/__init__.py +0 -0
  272. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_consensus/v1.py +0 -0
  273. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_consensus/v1_tensor.py +0 -0
  274. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_difference/__init__.py +0 -0
  275. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_difference/v1.py +0 -0
  276. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_difference/v1_tensor.py +0 -0
  277. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_list_rollup/__init__.py +0 -0
  278. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_list_rollup/v1.py +0 -0
  279. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_list_rollup/v1_tensor.py +0 -0
  280. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_stitch/__init__.py +0 -0
  281. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_stitch/v1.py +0 -0
  282. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_stitch/v1_tensor.py +0 -0
  283. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/dimension_collapse/__init__.py +0 -0
  284. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/dimension_collapse/v1.py +0 -0
  285. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/frame_delay/__init__.py +0 -0
  286. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/frame_delay/v1.py +0 -0
  287. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/frame_delay/v1_tensor.py +0 -0
  288. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/image_stack/__init__.py +0 -0
  289. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/image_stack/v1.py +0 -0
  290. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/overlap_analysis/__init__.py +0 -0
  291. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/overlap_analysis/v1.py +0 -0
  292. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/overlap_analysis/v1_tensor.py +0 -0
  293. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/math → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations}/__init__.py +0 -0
  294. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/math/cosine_similarity → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow}/__init__.py +0 -0
  295. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search}/__init__.py +0 -0
  296. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/math}/__init__.py +0 -0
  297. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/anthropic_claude → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/math/cosine_similarity}/__init__.py +0 -0
  298. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/math/cosine_similarity/v1.py +0 -0
  299. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/math/cosine_similarity/v1_tensor.py +0 -0
  300. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/clip → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models}/__init__.py +0 -0
  301. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/clip_comparison → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation}/__init__.py +0 -0
  302. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/cog_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/anthropic_claude}/__init__.py +0 -0
  303. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/model_capabilities.py +0 -0
  304. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v1.py +0 -0
  305. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v2.py +0 -0
  306. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v3.py +0 -0
  307. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v4.py +0 -0
  308. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v5.py +0 -0
  309. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/cosmos3 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/clip}/__init__.py +0 -0
  310. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip/v1.py +0 -0
  311. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip/v1_tensor.py +0 -0
  312. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/depth_estimation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/clip_comparison}/__init__.py +0 -0
  313. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v1.py +0 -0
  314. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v1_tensor.py +0 -0
  315. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v2.py +0 -0
  316. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v2_tensor.py +0 -0
  317. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/easy_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/cog_vlm}/__init__.py +0 -0
  318. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/cog_vlm/v1.py +0 -0
  319. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/flex → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/cosmos3}/__init__.py +0 -0
  320. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/cosmos3/v1.py +0 -0
  321. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/flex/inpainting → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/depth_estimation}/__init__.py +0 -0
  322. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/depth_estimation/v1.py +0 -0
  323. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/depth_estimation/v1_tensor.py +0 -0
  324. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/florence2 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/easy_ocr}/__init__.py +0 -0
  325. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/easy_ocr/v1.py +0 -0
  326. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/easy_ocr/v1_tensor.py +0 -0
  327. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/gaze → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/flex}/__init__.py +0 -0
  328. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/glm_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/flex/inpainting}/__init__.py +0 -0
  329. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/google_gemini → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/florence2}/__init__.py +0 -0
  330. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v1.py +0 -0
  331. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v1_tensor.py +0 -0
  332. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v2.py +0 -0
  333. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v2_tensor.py +0 -0
  334. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/google_gemma → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/gaze}/__init__.py +0 -0
  335. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/gaze/v1.py +0 -0
  336. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/google_vision_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/glm_ocr}/__init__.py +0 -0
  337. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/glm_ocr/v1.py +0 -0
  338. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/kimi_openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/google_gemini}/__init__.py +0 -0
  339. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v1.py +0 -0
  340. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v2.py +0 -0
  341. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v3.py +0 -0
  342. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v4.py +0 -0
  343. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v5.py +0 -0
  344. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v6.py +0 -0
  345. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/llama_vision → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/google_gemma}/__init__.py +0 -0
  346. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v1.py +0 -0
  347. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v2.py +0 -0
  348. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v3.py +0 -0
  349. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v4.py +0 -0
  350. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/lmm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/google_vision_ocr}/__init__.py +0 -0
  351. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_vision_ocr/v1.py +0 -0
  352. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_vision_ocr/v1_tensor.py +0 -0
  353. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/lmm_classifier → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/kimi_openrouter}/__init__.py +0 -0
  354. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/kimi_openrouter/v1.py +0 -0
  355. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/kimi_openrouter/v2.py +0 -0
  356. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/kimi_openrouter/v3.py +0 -0
  357. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/meta_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/llama_vision}/__init__.py +0 -0
  358. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/llama_vision/v1.py +0 -0
  359. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/llama_vision/v2.py +0 -0
  360. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/mistral_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/lmm}/__init__.py +0 -0
  361. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/lmm/v1.py +0 -0
  362. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/moondream2 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/lmm_classifier}/__init__.py +0 -0
  363. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/lmm_classifier/v1.py +0 -0
  364. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/meta_vlm}/__init__.py +0 -0
  365. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/meta_vlm/v1.py +0 -0
  366. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/meta_vlm/v2.py +0 -0
  367. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/meta_vlm/v3.py +0 -0
  368. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/openai → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/mistral_vlm}/__init__.py +0 -0
  369. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/mistral_vlm/v1.py +0 -0
  370. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/openai_compatible → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/moondream2}/__init__.py +0 -0
  371. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/moondream2/v1.py +0 -0
  372. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/moondream2/v1_tensor.py +0 -0
  373. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/ocr}/__init__.py +0 -0
  374. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/ocr/v1.py +0 -0
  375. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/ocr/v1_tensor.py +0 -0
  376. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/perception_encoder → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/openai}/__init__.py +0 -0
  377. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v1.py +0 -0
  378. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v2.py +0 -0
  379. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v3.py +0 -0
  380. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v4.py +0 -0
  381. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v5.py +0 -0
  382. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v6.py +0 -0
  383. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/pp_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/openai_compatible}/__init__.py +0 -0
  384. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai_compatible/v1.py +0 -0
  385. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/openrouter}/__init__.py +0 -0
  386. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openrouter/v1.py +0 -0
  387. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openrouter/v2.py +0 -0
  388. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openrouter/v3.py +0 -0
  389. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3_5_openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/perception_encoder}/__init__.py +0 -0
  390. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/perception_encoder/v1.py +0 -0
  391. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/perception_encoder/v1_tensor.py +0 -0
  392. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3_5vl → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/pp_ocr}/__init__.py +0 -0
  393. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/pp_ocr/v1.py +0 -0
  394. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/pp_ocr/v1_tensor.py +0 -0
  395. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3_6_openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen}/__init__.py +0 -0
  396. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen/v1.py +0 -0
  397. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3vl → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3_5_openrouter}/__init__.py +0 -0
  398. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5_openrouter/v1.py +0 -0
  399. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3_5vl}/__init__.py +0 -0
  400. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v1.py +0 -0
  401. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v1_tensor.py +0 -0
  402. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v2.py +0 -0
  403. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v2_tensor.py +0 -0
  404. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/seg_preview → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3_6_openrouter}/__init__.py +0 -0
  405. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_6_openrouter/v1.py +0 -0
  406. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything2 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3vl}/__init__.py +0 -0
  407. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3vl/v1.py +0 -0
  408. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3vl/v1_tensor.py +0 -0
  409. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything2_video → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen_vlm}/__init__.py +0 -0
  410. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v1.py +0 -0
  411. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v2.py +0 -0
  412. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v3.py +0 -0
  413. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v4.py +0 -0
  414. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/seg_preview}/__init__.py +0 -0
  415. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/seg_preview/v1.py +0 -0
  416. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/seg_preview/v1_tensor.py +0 -0
  417. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything2}/__init__.py +0 -0
  418. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2/v1.py +0 -0
  419. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2/v1_tensor.py +0 -0
  420. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything2_video}/__init__.py +0 -0
  421. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2_video/v1.py +0 -0
  422. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2_video/v1_tensor.py +0 -0
  423. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3_video → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3}/__init__.py +0 -0
  424. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v1.py +0 -0
  425. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v1_tensor.py +0 -0
  426. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v2.py +0 -0
  427. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v2_tensor.py +0 -0
  428. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v3.py +0 -0
  429. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v3_tensor.py +0 -0
  430. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/smolvlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d}/__init__.py +0 -0
  431. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d/v1.py +0 -0
  432. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d/v1_tensor.py +0 -0
  433. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/spacexai → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive}/__init__.py +0 -0
  434. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive/v1.py +0 -0
  435. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive/v1_tensor.py +0 -0
  436. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3_video}/__init__.py +0 -0
  437. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_video/v1.py +0 -0
  438. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_video/v1_tensor.py +0 -0
  439. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/__init__.py +0 -0
  440. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/prompts.py +0 -0
  441. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/streaming_video.py +0 -0
  442. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/streaming_video_tensor.py +0 -0
  443. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/visual_prompt.py +0 -0
  444. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai/image_gen → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/smolvlm}/__init__.py +0 -0
  445. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/smolvlm/v1.py +0 -0
  446. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/smolvlm/v1_tensor.py +0 -0
  447. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/spacexai}/__init__.py +0 -0
  448. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/spacexai/v1.py +0 -0
  449. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/spacexai/v2.py +0 -0
  450. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py +0 -0
  451. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai/outpainting → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai}/__init__.py +0 -0
  452. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/yolo_world → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai/image_gen}/__init__.py +0 -0
  453. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/image_gen/v1.py +0 -0
  454. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/zai_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting}/__init__.py +0 -0
  455. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting/v1.py +0 -0
  456. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting/v1_tensor.py +0 -0
  457. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai/outpainting}/__init__.py +0 -0
  458. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/outpainting/v1.py +0 -0
  459. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/action_recognition → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/yolo_world}/__init__.py +0 -0
  460. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/yolo_world/v1.py +0 -0
  461. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/yolo_world/v1_tensor.py +0 -0
  462. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/embedding → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/zai_vlm}/__init__.py +0 -0
  463. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/zai_vlm/v1.py +0 -0
  464. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/zai_vlm/v2.py +0 -0
  465. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/instance_segmentation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow}/__init__.py +0 -0
  466. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/keypoint_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/action_recognition}/__init__.py +0 -0
  467. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/action_recognition/entities.py +0 -0
  468. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/action_recognition/v1.py +0 -0
  469. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/action_recognition/v1_tensor.py +0 -0
  470. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/multi_class_classification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/embedding}/__init__.py +0 -0
  471. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/embedding/v1.py +0 -0
  472. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/embedding/v1_tensor.py +0 -0
  473. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/multi_label_classification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/instance_segmentation}/__init__.py +0 -0
  474. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v1.py +0 -0
  475. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v1_tensor.py +0 -0
  476. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v2.py +0 -0
  477. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v2_tensor.py +0 -0
  478. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v3.py +0 -0
  479. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v3_tensor.py +0 -0
  480. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v4.py +0 -0
  481. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v4_tensor.py +0 -0
  482. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/object_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/keypoint_detection}/__init__.py +0 -0
  483. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v1.py +0 -0
  484. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v1_tensor.py +0 -0
  485. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v2.py +0 -0
  486. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v2_tensor.py +0 -0
  487. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v3.py +0 -0
  488. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v3_tensor.py +0 -0
  489. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/multi_class_classification}/__init__.py +0 -0
  490. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v1.py +0 -0
  491. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v1_tensor.py +0 -0
  492. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v2.py +0 -0
  493. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v2_tensor.py +0 -0
  494. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v3.py +0 -0
  495. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v3_tensor.py +0 -0
  496. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/third_party → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/multi_label_classification}/__init__.py +0 -0
  497. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v1.py +0 -0
  498. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v1_tensor.py +0 -0
  499. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v2.py +0 -0
  500. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v2_tensor.py +0 -0
  501. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v3.py +0 -0
  502. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v3_tensor.py +0 -0
  503. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/third_party/barcode_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/object_detection}/__init__.py +0 -0
  504. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v1.py +0 -0
  505. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v1_tensor.py +0 -0
  506. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v2.py +0 -0
  507. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v2_tensor.py +0 -0
  508. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v3.py +0 -0
  509. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v3_tensor.py +0 -0
  510. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/third_party/qr_code_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation}/__init__.py +0 -0
  511. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v1.py +0 -0
  512. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v1_tensor.py +0 -0
  513. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v2.py +0 -0
  514. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v2_tensor.py +0 -0
  515. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sampling → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/third_party}/__init__.py +0 -0
  516. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sampling/identify_changes → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/third_party/barcode_detection}/__init__.py +0 -0
  517. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/barcode_detection/v1.py +0 -0
  518. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/barcode_detection/v1_tensor.py +0 -0
  519. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sampling/identify_outliers → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/third_party/qr_code_detection}/__init__.py +0 -0
  520. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/qr_code_detection/v1.py +0 -0
  521. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/qr_code_detection/v1_tensor.py +0 -0
  522. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/workload_presets.py +0 -0
  523. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/secrets_providers → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sampling}/__init__.py +0 -0
  524. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/secrets_providers/environment_secrets_store → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sampling/identify_changes}/__init__.py +0 -0
  525. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_changes/v1.py +0 -0
  526. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_changes/v1_tensor.py +0 -0
  527. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sampling/identify_outliers}/__init__.py +0 -0
  528. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_outliers/v1.py +0 -0
  529. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_outliers/v1_tensor.py +0 -0
  530. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/email_notification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/secrets_providers}/__init__.py +0 -0
  531. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/local_file → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/secrets_providers/environment_secrets_store}/__init__.py +0 -0
  532. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/secrets_providers/environment_secrets_store/v1.py +0 -0
  533. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/onvif_movement → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks}/__init__.py +0 -0
  534. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/s3 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/email_notification}/__init__.py +0 -0
  535. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/email_notification/v1.py +0 -0
  536. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/email_notification/v2.py +0 -0
  537. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/slack → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/local_file}/__init__.py +0 -0
  538. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/local_file/v1.py +0 -0
  539. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/noop.py +0 -0
  540. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/slack/notification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/onvif_movement}/__init__.py +0 -0
  541. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/onvif_movement/v1.py +0 -0
  542. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/onvif_movement/v1_tensor.py +0 -0
  543. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/twilio → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow}/__init__.py +0 -0
  544. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/twilio/sms → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/asset_library_attributes}/__init__.py +0 -0
  545. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/webhook → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/custom_metadata}/__init__.py +0 -0
  546. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload}/__init__.py +0 -0
  547. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/botsort → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/model_monitoring_inference_aggregator}/__init__.py +0 -0
  548. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/bytetrack → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events}/__init__.py +0 -0
  549. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/ocsort → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events_bundle}/__init__.py +0 -0
  550. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/sort → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/s3}/__init__.py +0 -0
  551. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/s3/v1.py +0 -0
  552. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/slack}/__init__.py +0 -0
  553. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/absolute_static_crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/slack/notification}/__init__.py +0 -0
  554. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/slack/notification/v1.py +0 -0
  555. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/bounding_rect → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/twilio}/__init__.py +0 -0
  556. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/byte_tracker → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/twilio/sms}/__init__.py +0 -0
  557. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/twilio/sms/v1.py +0 -0
  558. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/twilio/sms/v2.py +0 -0
  559. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/camera_calibration → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/webhook}/__init__.py +0 -0
  560. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/webhook/v1.py +0 -0
  561. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detection_offset → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers}/__init__.py +0 -0
  562. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/_base.py +0 -0
  563. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/_base_tensor.py +0 -0
  564. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_combine → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/botsort}/__init__.py +0 -0
  565. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/botsort/v1.py +0 -0
  566. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/botsort/v1_tensor.py +0 -0
  567. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_filter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/bytetrack}/__init__.py +0 -0
  568. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/bytetrack/v1.py +0 -0
  569. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/bytetrack/v1_tensor.py +0 -0
  570. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_merge → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/ocsort}/__init__.py +0 -0
  571. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/ocsort/v1.py +0 -0
  572. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/ocsort/v1_tensor.py +0 -0
  573. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_transformation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/sort}/__init__.py +0 -0
  574. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/sort/v1.py +0 -0
  575. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/sort/v1_tensor.py +0 -0
  576. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/dynamic_crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations}/__init__.py +0 -0
  577. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/dynamic_zones → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/absolute_static_crop}/__init__.py +0 -0
  578. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/absolute_static_crop/v1.py +0 -0
  579. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/absolute_static_crop/v1_tensor.py +0 -0
  580. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/geotag_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/bounding_rect}/__init__.py +0 -0
  581. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/bounding_rect/v1.py +0 -0
  582. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/bounding_rect/v1_tensor.py +0 -0
  583. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/image_slicer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/byte_tracker}/__init__.py +0 -0
  584. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v1.py +0 -0
  585. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v1_tensor.py +0 -0
  586. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v2.py +0 -0
  587. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v2_tensor.py +0 -0
  588. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v3.py +0 -0
  589. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v3_tensor.py +0 -0
  590. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/per_class_confidence_filter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/camera_calibration}/__init__.py +0 -0
  591. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/camera_calibration/v1.py +0 -0
  592. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/perspective_correction → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detection_offset}/__init__.py +0 -0
  593. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detection_offset/v1.py +0 -0
  594. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detection_offset/v1_tensor.py +0 -0
  595. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/qr_code_generator → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_combine}/__init__.py +0 -0
  596. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_combine/v1.py +0 -0
  597. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_combine/v1_tensor.py +0 -0
  598. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/relative_static_crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_filter}/__init__.py +0 -0
  599. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_filter/v1.py +0 -0
  600. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/stabilize_detections → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_merge}/__init__.py +0 -0
  601. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_merge/v1.py +0 -0
  602. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_merge/v1_tensor.py +0 -0
  603. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/stitch_images → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_transformation}/__init__.py +0 -0
  604. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_transformation/v1.py +0 -0
  605. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/stitch_ocr_detections → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/dynamic_crop}/__init__.py +0 -0
  606. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_crop/v1.py +0 -0
  607. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_crop/v1_tensor.py +0 -0
  608. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/track_class_lock → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/dynamic_zones}/__init__.py +0 -0
  609. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_zones/v1.py +0 -0
  610. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_zones/v1_tensor.py +0 -0
  611. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/geotag_detection}/__init__.py +0 -0
  612. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/geotag_detection/v1.py +0 -0
  613. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/geotag_detection/v1_tensor.py +0 -0
  614. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/background_color → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/image_slicer}/__init__.py +0 -0
  615. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/image_slicer/v1.py +0 -0
  616. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/image_slicer/v2.py +0 -0
  617. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/blur → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/per_class_confidence_filter}/__init__.py +0 -0
  618. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/per_class_confidence_filter/v1.py +0 -0
  619. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/per_class_confidence_filter/v1_tensor.py +0 -0
  620. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/bounding_box → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/perspective_correction}/__init__.py +0 -0
  621. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/perspective_correction/v1.py +0 -0
  622. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/perspective_correction/v1_tensor.py +0 -0
  623. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/circle → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/qr_code_generator}/__init__.py +0 -0
  624. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/qr_code_generator/v1.py +0 -0
  625. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/classification_label → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/relative_static_crop}/__init__.py +0 -0
  626. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/relative_static_crop/v1.py +0 -0
  627. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/color → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/stabilize_detections}/__init__.py +0 -0
  628. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stabilize_detections/v1.py +0 -0
  629. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stabilize_detections/v1_tensor.py +0 -0
  630. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/common → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/stitch_images}/__init__.py +0 -0
  631. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_images/v1.py +0 -0
  632. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/common/annotators → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/stitch_ocr_detections}/__init__.py +0 -0
  633. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v1.py +0 -0
  634. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v1_tensor.py +0 -0
  635. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v2.py +0 -0
  636. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v2_tensor.py +0 -0
  637. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/corner → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/track_class_lock}/__init__.py +0 -0
  638. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/track_class_lock/v1.py +0 -0
  639. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/track_class_lock/v1_tensor.py +0 -0
  640. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations}/__init__.py +0 -0
  641. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/dot → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/background_color}/__init__.py +0 -0
  642. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/background_color/v1.py +0 -0
  643. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/background_color/v1_tensor.py +0 -0
  644. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/ellipse → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/blur}/__init__.py +0 -0
  645. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/blur/v1.py +0 -0
  646. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/blur/v1_tensor.py +0 -0
  647. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/grid → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/bounding_box}/__init__.py +0 -0
  648. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/bounding_box/v1.py +0 -0
  649. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/bounding_box/v1_tensor.py +0 -0
  650. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/halo → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/circle}/__init__.py +0 -0
  651. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/circle/v1.py +0 -0
  652. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/circle/v1_tensor.py +0 -0
  653. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/heatmap → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/classification_label}/__init__.py +0 -0
  654. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/classification_label/v1.py +0 -0
  655. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/classification_label/v1_tensor.py +0 -0
  656. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/icon → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/color}/__init__.py +0 -0
  657. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/color/v1.py +0 -0
  658. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/color/v1_tensor.py +0 -0
  659. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/keypoint → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/common}/__init__.py +0 -0
  660. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/label → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/common/annotators}/__init__.py +0 -0
  661. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/background_color.py +0 -0
  662. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/blur.py +0 -0
  663. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/halo.py +0 -0
  664. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/model_comparison.py +0 -0
  665. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/polygon.py +0 -0
  666. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base.py +0 -0
  667. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base_colorable.py +0 -0
  668. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base_colorable_tensor.py +0 -0
  669. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base_tensor.py +0 -0
  670. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/README.md +0 -0
  671. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/__init__.py +0 -0
  672. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/anonymous_pro/AnonymousPro-Regular.ttf +0 -0
  673. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/anonymous_pro/OFL.txt +0 -0
  674. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/courier_prime/CourierPrime-Regular.ttf +0 -0
  675. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/courier_prime/OFL.txt +0 -0
  676. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/fira_code/FiraCode[wght].ttf +0 -0
  677. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/fira_code/OFL.txt +0 -0
  678. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist/Geist-Regular.ttf +0 -0
  679. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist/OFL.txt +0 -0
  680. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist_mono/GeistMono-Regular.ttf +0 -0
  681. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist_mono/OFL.txt +0 -0
  682. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/ibm_plex_mono/IBMPlexMono-Regular.ttf +0 -0
  683. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/ibm_plex_mono/OFL.txt +0 -0
  684. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inconsolata/Inconsolata[wdth,wght].ttf +0 -0
  685. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inconsolata/OFL.txt +0 -0
  686. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inter/Inter[opsz,wght].ttf +0 -0
  687. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inter/OFL.txt +0 -0
  688. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/jetbrains_mono/JetBrainsMono[wght].ttf +0 -0
  689. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/jetbrains_mono/OFL.txt +0 -0
  690. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/lato/Lato-Regular.ttf +0 -0
  691. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/lato/OFL.txt +0 -0
  692. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/montserrat/Montserrat[wght].ttf +0 -0
  693. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/montserrat/OFL.txt +0 -0
  694. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/noto_sans/NotoSans-Regular.ttf +0 -0
  695. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/noto_sans/OFL.txt +0 -0
  696. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/nunito_sans/NunitoSans[YTLC,opsz,wdth,wght].ttf +0 -0
  697. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/nunito_sans/OFL.txt +0 -0
  698. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/open_sans/OFL.txt +0 -0
  699. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/open_sans/OpenSans[wdth,wght].ttf +0 -0
  700. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/pt_mono/OFL.txt +0 -0
  701. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/pt_mono/PTM55FT.ttf +0 -0
  702. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto/OFL.txt +0 -0
  703. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto/Roboto[wdth,wght].ttf +0 -0
  704. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto_mono/OFL.txt +0 -0
  705. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto_mono/RobotoMono[wght].ttf +0 -0
  706. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/source_code_pro/OFL.txt +0 -0
  707. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/source_code_pro/SourceCodePro[wght].ttf +0 -0
  708. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/space_mono/OFL.txt +0 -0
  709. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/space_mono/SpaceMono-Regular.ttf +0 -0
  710. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/work_sans/OFL.txt +0 -0
  711. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/work_sans/WorkSans[wght].ttf +0 -0
  712. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/downloader.py +0 -0
  713. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/registry.py +0 -0
  714. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/schema.py +0 -0
  715. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/label_text.py +0 -0
  716. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/utils.py +0 -0
  717. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/line_zone → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/corner}/__init__.py +0 -0
  718. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/corner/v1.py +0 -0
  719. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/corner/v1_tensor.py +0 -0
  720. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/mask → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/crop}/__init__.py +0 -0
  721. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/crop/v1.py +0 -0
  722. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/crop/v1_tensor.py +0 -0
  723. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/model_comparison → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/dot}/__init__.py +0 -0
  724. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/dot/v1.py +0 -0
  725. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/dot/v1_tensor.py +0 -0
  726. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/pixelate → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/ellipse}/__init__.py +0 -0
  727. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/ellipse/v1.py +0 -0
  728. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/ellipse/v1_tensor.py +0 -0
  729. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/polygon → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/grid}/__init__.py +0 -0
  730. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/grid/v1.py +0 -0
  731. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/polygon_zone → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/halo}/__init__.py +0 -0
  732. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v1.py +0 -0
  733. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v1_tensor.py +0 -0
  734. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v2.py +0 -0
  735. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v2_tensor.py +0 -0
  736. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/reference_path → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/heatmap}/__init__.py +0 -0
  737. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/heatmap/v1.py +0 -0
  738. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/heatmap/v1_tensor.py +0 -0
  739. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/rich_label → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/icon}/__init__.py +0 -0
  740. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/icon/v1.py +0 -0
  741. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/icon/v1_tensor.py +0 -0
  742. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/text_display → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/keypoint}/__init__.py +0 -0
  743. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/keypoint/v1.py +0 -0
  744. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/keypoint/v1_tensor.py +0 -0
  745. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/trace → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/label}/__init__.py +0 -0
  746. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v1.py +0 -0
  747. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v1_tensor.py +0 -0
  748. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v2.py +0 -0
  749. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v2_tensor.py +0 -0
  750. {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/triangle → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/line_zone}/__init__.py +0 -0
  751. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/line_zone/v1.py +0 -0
  752. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/mask}/__init__.py +0 -0
  753. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/mask/v1.py +0 -0
  754. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/mask/v1_tensor.py +0 -0
  755. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/PLC_modbus → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/model_comparison}/__init__.py +0 -0
  756. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/model_comparison/v1.py +0 -0
  757. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/model_comparison/v1_tensor.py +0 -0
  758. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/PLCethernetIP → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/pixelate}/__init__.py +0 -0
  759. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/pixelate/v1.py +0 -0
  760. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/pixelate/v1_tensor.py +0 -0
  761. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/polygon}/__init__.py +0 -0
  762. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v1.py +0 -0
  763. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v1_tensor.py +0 -0
  764. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v2.py +0 -0
  765. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v2_tensor.py +0 -0
  766. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/event_writer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/polygon_zone}/__init__.py +0 -0
  767. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon_zone/v1.py +0 -0
  768. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/kafka_consumer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/reference_path}/__init__.py +0 -0
  769. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/reference_path/v1.py +0 -0
  770. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/kafka_producer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/rich_label}/__init__.py +0 -0
  771. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/rich_label/v1.py +0 -0
  772. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/rich_label/v1_tensor.py +0 -0
  773. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/microsoft_sql_server → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/text_display}/__init__.py +0 -0
  774. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/text_display/utils.py +0 -0
  775. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/text_display/v1.py +0 -0
  776. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/mqtt_reader → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/trace}/__init__.py +0 -0
  777. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/trace/v1.py +0 -0
  778. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/trace/v1_tensor.py +0 -0
  779. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/triangle}/__init__.py +0 -0
  780. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/triangle/v1.py +0 -0
  781. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/triangle/v1_tensor.py +0 -0
  782. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/opc_writer → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks}/__init__.py +0 -0
  783. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/loader.py +0 -0
  784. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/plc → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/PLC_modbus}/__init__.py +0 -0
  785. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/PLC_modbus/v1.py +0 -0
  786. {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/postgresql → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/PLCethernetIP}/__init__.py +0 -0
  787. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/PLCethernetIP/v1.py +0 -0
  788. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks}/__init__.py +0 -0
  789. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/entities → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/event_writer}/__init__.py +0 -0
  790. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/event_writer/v1.py +0 -0
  791. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/kafka_common.py +0 -0
  792. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/introspection → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/kafka_consumer}/__init__.py +0 -0
  793. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/kafka_consumer/v1.py +0 -0
  794. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/profiling → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/kafka_producer}/__init__.py +0 -0
  795. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/kafka_producer/v1.py +0 -0
  796. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1 → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/microsoft_sql_server}/__init__.py +0 -0
  797. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/microsoft_sql_server/v1.py +0 -0
  798. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_common.py +0 -0
  799. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/compiler → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/mqtt_reader}/__init__.py +0 -0
  800. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_reader/v1.py +0 -0
  801. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/debugger → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer}/__init__.py +0 -0
  802. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer/v1.py +0 -0
  803. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer/v2.py +0 -0
  804. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/dynamic_blocks → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/opc_writer}/__init__.py +0 -0
  805. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/opc_writer/v1.py +0 -0
  806. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/executor → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/plc}/__init__.py +0 -0
  807. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/plc/client.py +0 -0
  808. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/plc/direct.py +0 -0
  809. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/plc/v1.py +0 -0
  810. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/executor/execution_data_manager → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/postgresql}/__init__.py +0 -0
  811. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/postgresql/v1.py +0 -0
  812. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/environment.py +0 -0
  813. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/errors.py +0 -0
  814. {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/introspection → roboflow_workflows-0.2.9/roboflow_workflows/execution_engine}/__init__.py +0 -0
  815. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/constants.py +0 -0
  816. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/core.py +0 -0
  817. {roboflow_workflows-0.2.8/roboflow_workflows/prototypes → roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/entities}/__init__.py +0 -0
  818. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/base.py +0 -0
  819. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/engine.py +0 -0
  820. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/tensor_native_types.py +0 -0
  821. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/types.py +0 -0
  822. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/workload.py +0 -0
  823. {roboflow_workflows-0.2.8/roboflow_workflows/utils → roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/introspection}/__init__.py +0 -0
  824. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/connections_discovery.py +0 -0
  825. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/entities.py +0 -0
  826. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/restriction_environment.py +0 -0
  827. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/selectors_parser.py +0 -0
  828. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/utils.py +0 -0
  829. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/workload.py +0 -0
  830. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/workload_entities.py +0 -0
  831. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/profiling/core.py +0 -0
  832. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/entities.py +0 -0
  833. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/graph_constructor.py +0 -0
  834. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/graph_traversal.py +0 -0
  835. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/reference_type_checker.py +0 -0
  836. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/steps_initialiser.py +0 -0
  837. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/utils.py +0 -0
  838. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/validator.py +0 -0
  839. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/core.py +0 -0
  840. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/debugger/core.py +0 -0
  841. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/block_duration.py +0 -0
  842. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/block_scaffolding.py +0 -0
  843. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/debug_logs.py +0 -0
  844. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/entities.py +0 -0
  845. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/error_utils.py +0 -0
  846. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/modal_executor.py +0 -0
  847. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/representation_boundary.py +0 -0
  848. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/workflow_debug.py +0 -0
  849. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/entities.py +0 -0
  850. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/core.py +0 -0
  851. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/branching_manager.py +0 -0
  852. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/dynamic_batches_manager.py +0 -0
  853. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/execution_cache.py +0 -0
  854. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/manager.py +0 -0
  855. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/step_input_assembler.py +0 -0
  856. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/flow_coordinator.py +0 -0
  857. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/output_constructor.py +0 -0
  858. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/runtime_input_assembler.py +0 -0
  859. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/runtime_input_validator.py +0 -0
  860. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/utils.py +0 -0
  861. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/__init__.py +0 -0
  862. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/compiler_bridge.py +0 -0
  863. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/composition.py +0 -0
  864. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/constants.py +0 -0
  865. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/dynamic_blocks_collection.py +0 -0
  866. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/errors.py +0 -0
  867. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/inline.py +0 -0
  868. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/reference_resolution.py +0 -0
  869. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/inputs_discovery.py +0 -0
  870. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/kinds_schemas.py +0 -0
  871. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/kinds_schemas_register.py +0 -0
  872. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/outputs_discovery.py +0 -0
  873. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/types_discovery.py +0 -0
  874. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/workload.py +0 -0
  875. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/step_error_handlers.py +0 -0
  876. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/offline.py +0 -0
  877. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/background_tasks.py +0 -0
  878. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/block.py +0 -0
  879. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/cache.py +0 -0
  880. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/image_codec.py +0 -0
  881. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/model_registration.py +0 -0
  882. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/models_provider.py +0 -0
  883. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/observer.py +0 -0
  884. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/platform_errors.py +0 -0
  885. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/workspace_resolver.py +0 -0
  886. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/action_recognition.py +0 -0
  887. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/image_encoding.py +0 -0
  888. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/images.py +0 -0
  889. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/in_memory_cache.py +0 -0
  890. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/lru_cache.py +0 -0
  891. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/text.py +0 -0
  892. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/url_input.py +0 -0
  893. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/warnings.py +0 -0
  894. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/dependency_links.txt +0 -0
  895. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/top_level.txt +0 -0
  896. {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roboflow-workflows
3
- Version: 0.2.8
3
+ Version: 0.2.9
4
4
  Summary: Roboflow Workflows execution engine and block library
5
5
  License: LICENSE.core (Apache 2.0) applies to all files in this repository
6
6
  except for files in or under any directory that contains a superseding
@@ -61,6 +61,7 @@ Requires-Dist: fastapi<0.142,>=0.134; extra == "enterprise"
61
61
  Provides-Extra: test
62
62
  Requires-Dist: pytest<10.0.0,>=9.0.3; extra == "test"
63
63
  Requires-Dist: requests-mock~=1.12.1; extra == "test"
64
+ Requires-Dist: pytest-xdist<4.0.0,>=3.6; extra == "test"
64
65
  Dynamic: license-file
65
66
 
66
67
  # roboflow-workflows
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "roboflow-workflows"
3
- version = "0.2.8"
3
+ version = "0.2.9"
4
4
  description = "Roboflow Workflows execution engine and block library"
5
5
  readme = "README.md"
6
6
  license = {file = "LICENSE"}
@@ -59,6 +59,7 @@ enterprise = [
59
59
  test = [
60
60
  "pytest>=9.0.3,<10.0.0",
61
61
  "requests-mock~=1.12.1",
62
+ "pytest-xdist>=3.6,<4.0.0",
62
63
  ]
63
64
 
64
65
  [build-system]
@@ -14,12 +14,25 @@ We map at read-time; ``class.__module__`` stays canonical so pickling and
14
14
  from __future__ import annotations
15
15
 
16
16
  import logging
17
+ from typing import Optional
17
18
 
18
19
  _CANONICAL_ROOT = "roboflow_workflows"
19
20
  _ENTERPRISE_CANONICAL = "roboflow_workflows.enterprise_blocks"
20
21
  _CORE_LEGACY = "inference.core.workflows"
21
22
  _ENTERPRISE_LEGACY = "inference.enterprise.workflows.enterprise_blocks"
22
23
 
24
+ # Paths of inference.roboflow_workflows_plugin (1.6.1-1.7.2), for disable patterns.
25
+ _PLATFORM_BLOCKS_PLUGIN_PREFIXES = (
26
+ (
27
+ "roboflow_workflows.core_steps.sinks.roboflow.",
28
+ "inference.roboflow_workflows_plugin.sinks.",
29
+ ),
30
+ (
31
+ "roboflow_workflows.core_steps.integrations.roboflow.",
32
+ "inference.roboflow_workflows_plugin.integrations.",
33
+ ),
34
+ )
35
+
23
36
 
24
37
  def to_legacy_module(module_name: str) -> str:
25
38
  """Return the historic ``inference.*`` dotted form of a canonical module."""
@@ -32,6 +45,15 @@ def to_legacy_module(module_name: str) -> str:
32
45
  return module_name
33
46
 
34
47
 
48
+ def to_historic_plugin_module(module_name: str) -> Optional[str]:
49
+ """Return the 1.6.1-1.7.2 plugin-package path of a Roboflow-platform block
50
+ module, or ``None`` for any other module. For disable-pattern matching only."""
51
+ for canonical_prefix, plugin_prefix in _PLATFORM_BLOCKS_PLUGIN_PREFIXES:
52
+ if module_name.startswith(canonical_prefix):
53
+ return plugin_prefix + module_name[len(canonical_prefix) :]
54
+ return None
55
+
56
+
35
57
  def get_logger(module_name: str) -> logging.Logger:
36
58
  """``logging.getLogger`` under the historic ``inference.*`` name.
37
59
 
@@ -0,0 +1,43 @@
1
+ from typing import Any, Dict, List, Optional
2
+
3
+ from roboflow_workflows.execution_engine.entities.base import (
4
+ ImageParentMetadata,
5
+ WorkflowImageData,
6
+ )
7
+
8
+
9
+ def format_visual_search_candidate(
10
+ candidate: Dict[str, Any],
11
+ extra_fields: Optional[List[str]] = None,
12
+ ) -> Dict[str, Any]:
13
+ filename = candidate.get("filename") or candidate.get("name")
14
+ formatted_candidate = {
15
+ "image_id": candidate.get("id"),
16
+ "image_url": candidate.get("url"),
17
+ "name": candidate.get("name") or filename,
18
+ "filename": filename,
19
+ "metadata": candidate.get("user_metadata") or {},
20
+ "tags": candidate.get("tags") or [],
21
+ "width": candidate.get("width"),
22
+ "height": candidate.get("height"),
23
+ "aspect_ratio": candidate.get("aspectRatio"),
24
+ }
25
+ for field in extra_fields or []:
26
+ formatted_candidate[field] = candidate.get(field)
27
+ return formatted_candidate
28
+
29
+
30
+ def build_visual_search_candidate_image(
31
+ candidate: Dict[str, Any],
32
+ fallback_parent_id: str,
33
+ ) -> Optional[WorkflowImageData]:
34
+ image_url = candidate.get("image_url")
35
+ if not image_url:
36
+ return None
37
+ parent_id = (
38
+ candidate.get("image_id") or candidate.get("filename") or fallback_parent_id
39
+ )
40
+ return WorkflowImageData(
41
+ parent_metadata=ImageParentMetadata(parent_id=str(parent_id)),
42
+ image_reference=image_url,
43
+ )
@@ -0,0 +1,248 @@
1
+ from typing import Any, Dict, List, Literal, Optional, Type, Union
2
+
3
+ from pydantic import ConfigDict, Field
4
+ from roboflow_workflows.core_steps.integrations.roboflow.visual_search.helpers import (
5
+ build_visual_search_candidate_image,
6
+ format_visual_search_candidate,
7
+ )
8
+ from roboflow_workflows.execution_engine.entities.base import (
9
+ Batch,
10
+ OutputDefinition,
11
+ WorkflowImageData,
12
+ )
13
+ from roboflow_workflows.execution_engine.entities.types import (
14
+ BOOLEAN_KIND,
15
+ DICTIONARY_KIND,
16
+ IMAGE_KIND,
17
+ INTEGER_KIND,
18
+ LIST_OF_VALUES_KIND,
19
+ ROBOFLOW_PROJECT_KIND,
20
+ STRING_KIND,
21
+ Selector,
22
+ )
23
+ from roboflow_workflows.execution_engine.entities.workload import (
24
+ Discovery,
25
+ RuntimeRestriction,
26
+ WorkOperation,
27
+ )
28
+ from roboflow_workflows.prototypes.block import (
29
+ AirGappedAvailability,
30
+ BlockResult,
31
+ DependentResource,
32
+ WorkflowBlock,
33
+ WorkflowBlockManifest,
34
+ roboflow_platform_project,
35
+ )
36
+ from roboflow_workflows.prototypes.platform_client import (
37
+ OFFLINE_PLATFORM_CLIENT,
38
+ RoboflowPlatformClient,
39
+ resolve_platform_blocks_client,
40
+ )
41
+ from typing_extensions import Annotated
42
+
43
+ SHORT_DESCRIPTION = "Find visually similar image candidates in a Roboflow project."
44
+
45
+ LONG_DESCRIPTION = """
46
+ Search a Roboflow project for images that look similar to an input image and return
47
+ the nearest candidate plus metadata.
48
+
49
+ ## How This Block Works
50
+
51
+ This block uses the existing Roboflow project image search API:
52
+
53
+ 1. Receives an input image from the workflow
54
+ 2. Sends the image to Roboflow project search as `image_base64`
55
+ 3. Requests useful fields such as image URL, tags, and user metadata
56
+ 4. Returns the best candidate, best candidate image, metadata, tags, and the top candidates list
57
+
58
+ The target project should already contain uploaded images. Roboflow indexes those
59
+ images for visual search using the platform's existing image indexing pipeline.
60
+ This block does not create images, update metadata, or manage the index.
61
+ """
62
+
63
+ TopK = Annotated[int, Field(ge=1, le=50)]
64
+
65
+
66
+ class BlockManifest(WorkflowBlockManifest):
67
+ model_config = ConfigDict(
68
+ json_schema_extra={
69
+ "name": "Roboflow Visual Search",
70
+ "version": "v1",
71
+ "short_description": SHORT_DESCRIPTION,
72
+ "long_description": LONG_DESCRIPTION,
73
+ "license": "Apache-2.0",
74
+ "block_type": "fusion",
75
+ "ui_manifest": {
76
+ "section": "advanced",
77
+ "icon": "far fa-search",
78
+ "blockPriority": 1,
79
+ "requires_rf_key": True,
80
+ },
81
+ }
82
+ )
83
+ type: Literal["roboflow_core/visual_search@v1"]
84
+ image: Selector(kind=[IMAGE_KIND]) = Field(
85
+ description="Image to use as the visual search query.",
86
+ examples=["$inputs.image", "$steps.crop.crops"],
87
+ )
88
+ workspace: Union[Selector(kind=[STRING_KIND]), str] = Field(
89
+ description="Roboflow workspace URL slug that owns the target project.",
90
+ examples=["my-workspace", "$inputs.workspace"],
91
+ )
92
+ target_project: Union[Selector(kind=[ROBOFLOW_PROJECT_KIND]), str] = Field(
93
+ description="Roboflow project URL slug to search.",
94
+ examples=["reference-images", "$inputs.target_project"],
95
+ )
96
+ top_k: Union[TopK, Selector(kind=[INTEGER_KIND])] = Field(
97
+ default=1,
98
+ description=(
99
+ "Number of visually similar image candidates to return. Use 1 when you "
100
+ "only need the nearest candidate."
101
+ ),
102
+ examples=[1, 5, "$inputs.top_k"],
103
+ )
104
+
105
+ @classmethod
106
+ def get_air_gapped_availability(cls) -> AirGappedAvailability:
107
+ return AirGappedAvailability(available=False, reason="requires_internet")
108
+
109
+ @classmethod
110
+ def get_parameters_accepting_batches(cls) -> List[str]:
111
+ return ["image"]
112
+
113
+ @classmethod
114
+ def describe_outputs(cls) -> List[OutputDefinition]:
115
+ return [
116
+ OutputDefinition(name="candidate_found", kind=[BOOLEAN_KIND]),
117
+ OutputDefinition(name="best_candidate", kind=[DICTIONARY_KIND]),
118
+ OutputDefinition(name="candidates", kind=[LIST_OF_VALUES_KIND]),
119
+ OutputDefinition(name="error_status", kind=[BOOLEAN_KIND]),
120
+ OutputDefinition(name="message", kind=[STRING_KIND]),
121
+ OutputDefinition(name="best_candidate_image", kind=[IMAGE_KIND]),
122
+ OutputDefinition(name="best_candidate_metadata", kind=[DICTIONARY_KIND]),
123
+ OutputDefinition(name="best_candidate_tags", kind=[LIST_OF_VALUES_KIND]),
124
+ ]
125
+
126
+ @classmethod
127
+ def get_execution_engine_compatibility(cls) -> Optional[str]:
128
+ return ">=1.3.0,<2.0.0"
129
+
130
+ def discover_dependent_resources(self) -> Optional[List[DependentResource]]:
131
+ return [roboflow_platform_project(project_url=self.target_project)]
132
+
133
+ def discover_work_operations(self) -> List[WorkOperation]:
134
+ return [WorkOperation.EXTERNAL_REQUEST, WorkOperation.IMAGE_ENCODING]
135
+
136
+ def get_actual_restrictions(
137
+ self, *, ignore_environment_restrictions: bool = False
138
+ ) -> Discovery[RuntimeRestriction]:
139
+ return Discovery[RuntimeRestriction](
140
+ items=[], complete=True, unknown_reasons=[]
141
+ )
142
+
143
+
144
+ class RoboflowVisualSearchBlockV1(WorkflowBlock):
145
+ def __init__(
146
+ self,
147
+ api_key: Optional[str],
148
+ platform_client: RoboflowPlatformClient = OFFLINE_PLATFORM_CLIENT,
149
+ ):
150
+ self._api_key = api_key
151
+ self._platform_client = resolve_platform_blocks_client(platform_client)
152
+
153
+ @classmethod
154
+ def get_init_parameters(cls) -> List[str]:
155
+ return ["api_key", "platform_client"]
156
+
157
+ @classmethod
158
+ def get_manifest(cls) -> Type[WorkflowBlockManifest]:
159
+ return BlockManifest
160
+
161
+ def run(
162
+ self,
163
+ image: Union[WorkflowImageData, Batch[WorkflowImageData]],
164
+ workspace: str,
165
+ target_project: str,
166
+ top_k: int = 1,
167
+ ) -> BlockResult:
168
+ if self._api_key is None:
169
+ raise ValueError(
170
+ "Roboflow Visual Search block cannot run without a Roboflow API key. "
171
+ "Visit https://docs.roboflow.com/api-reference/authentication"
172
+ "#retrieve-an-api-key to learn how to retrieve one."
173
+ )
174
+
175
+ if isinstance(image, Batch):
176
+ return [
177
+ self._search_single_image(
178
+ image=single_image,
179
+ workspace=workspace,
180
+ target_project=target_project,
181
+ top_k=top_k,
182
+ )
183
+ for single_image in image
184
+ ]
185
+
186
+ return self._search_single_image(
187
+ image=image,
188
+ workspace=workspace,
189
+ target_project=target_project,
190
+ top_k=top_k,
191
+ )
192
+
193
+ def _search_single_image(
194
+ self,
195
+ image: WorkflowImageData,
196
+ workspace: str,
197
+ target_project: str,
198
+ top_k: int,
199
+ ) -> Dict[str, Any]:
200
+ try:
201
+ response = self._platform_client.search_project_images_at_roboflow(
202
+ api_key=self._api_key,
203
+ workspace=workspace,
204
+ project=target_project,
205
+ image_base64=image.base64_image,
206
+ limit=top_k,
207
+ )
208
+ candidates = [
209
+ format_visual_search_candidate(candidate=candidate)
210
+ for candidate in response.get("results", [])
211
+ ]
212
+ if not candidates:
213
+ return {
214
+ "candidate_found": False,
215
+ "best_candidate": {},
216
+ "candidates": [],
217
+ "error_status": False,
218
+ "message": "No visually similar images found.",
219
+ "best_candidate_image": None,
220
+ "best_candidate_metadata": {},
221
+ "best_candidate_tags": [],
222
+ }
223
+
224
+ best_candidate = candidates[0]
225
+ return {
226
+ "candidate_found": True,
227
+ "best_candidate": best_candidate,
228
+ "candidates": candidates,
229
+ "error_status": False,
230
+ "message": "Visual search completed.",
231
+ "best_candidate_image": build_visual_search_candidate_image(
232
+ candidate=best_candidate,
233
+ fallback_parent_id="visual_search_candidate",
234
+ ),
235
+ "best_candidate_metadata": best_candidate["metadata"],
236
+ "best_candidate_tags": best_candidate["tags"],
237
+ }
238
+ except Exception as error:
239
+ return {
240
+ "candidate_found": False,
241
+ "best_candidate": {},
242
+ "candidates": [],
243
+ "error_status": True,
244
+ "message": f"Visual search failed: {error}",
245
+ "best_candidate_image": None,
246
+ "best_candidate_metadata": {},
247
+ "best_candidate_tags": [],
248
+ }
@@ -0,0 +1,177 @@
1
+ from typing import Any, Dict, List, Optional
2
+
3
+
4
+ def parse_visual_search_classification(
5
+ candidate: Dict[str, Any],
6
+ ) -> Optional[Dict[str, Any]]:
7
+ classification = parse_classification_annotation(
8
+ classification=candidate.get("classification")
9
+ )
10
+ if classification is not None:
11
+ return classification
12
+ classification = parse_labels(labels=candidate.get("labels"))
13
+ if classification is not None:
14
+ return classification
15
+ return parse_annotations(annotations=candidate.get("annotations"))
16
+
17
+
18
+ def parse_classification_annotation(
19
+ classification: Any,
20
+ ) -> Optional[Dict[str, Any]]:
21
+ if not isinstance(classification, dict):
22
+ return None
23
+ if _has_single_label_annotation(classification=classification):
24
+ return {
25
+ "type": "single_label",
26
+ "classes": [_build_class_entry(classification=classification)],
27
+ }
28
+ return _parse_multi_label_annotation(classification=classification)
29
+
30
+
31
+ def parse_labels(labels: Any) -> Optional[Dict[str, Any]]:
32
+ if not isinstance(labels, list):
33
+ return None
34
+ class_entries = []
35
+ for label in labels:
36
+ if isinstance(label, str):
37
+ class_entries.append({"class": label})
38
+ elif isinstance(label, dict):
39
+ class_entries.append(
40
+ {
41
+ "class": label.get("class"),
42
+ "class_id": label.get("class_id"),
43
+ }
44
+ )
45
+ return _build_annotation_from_class_entries(class_entries=class_entries)
46
+
47
+
48
+ def parse_annotations(annotations: Any) -> Optional[Dict[str, Any]]:
49
+ if not isinstance(annotations, list):
50
+ return None
51
+ class_names = []
52
+ for annotation in annotations:
53
+ if not isinstance(annotation, dict):
54
+ continue
55
+ classes = annotation.get("classes")
56
+ if isinstance(classes, list):
57
+ class_names.extend(classes)
58
+ return _build_annotation_from_class_entries(
59
+ class_entries=[{"class": class_name} for class_name in class_names]
60
+ )
61
+
62
+
63
+ def _has_single_label_annotation(classification: Dict[str, Any]) -> bool:
64
+ return (
65
+ isinstance(classification.get("class"), str)
66
+ and len(classification["class"]) > 0
67
+ )
68
+
69
+
70
+ def _build_annotation_from_class_entries(
71
+ class_entries: List[Dict[str, Any]],
72
+ ) -> Optional[Dict[str, Any]]:
73
+ classes = []
74
+ seen_class_names = set()
75
+ used_class_ids = set()
76
+ for fallback_class_id, class_entry in enumerate(class_entries):
77
+ class_name = class_entry.get("class")
78
+ if (
79
+ not isinstance(class_name, str)
80
+ or not class_name
81
+ or class_name in seen_class_names
82
+ ):
83
+ continue
84
+ class_id = _normalise_class_id(class_entry.get("class_id"))
85
+ if class_id < 0 or class_id in used_class_ids:
86
+ class_id = _next_available_class_id(
87
+ preferred_class_id=fallback_class_id,
88
+ used_class_ids=used_class_ids,
89
+ )
90
+ classes.append(
91
+ {
92
+ "class": class_name,
93
+ "class_id": class_id,
94
+ }
95
+ )
96
+ seen_class_names.add(class_name)
97
+ used_class_ids.add(class_id)
98
+ if not classes:
99
+ return None
100
+ if len(classes) == 1:
101
+ return {
102
+ "type": "single_label",
103
+ "classes": classes,
104
+ }
105
+ return {
106
+ "type": "multi_label",
107
+ "classes": classes,
108
+ }
109
+
110
+
111
+ def _parse_multi_label_annotation(
112
+ classification: Dict[str, Any],
113
+ ) -> Optional[Dict[str, Any]]:
114
+ predicted_classes = classification.get("predicted_classes")
115
+ if not isinstance(predicted_classes, list) or not predicted_classes:
116
+ return None
117
+ predictions = classification.get("predictions")
118
+ if not isinstance(predictions, dict):
119
+ predictions = {}
120
+ classes = []
121
+ seen_class_names = set()
122
+ used_class_ids = set()
123
+ for fallback_class_id, class_name in enumerate(predicted_classes):
124
+ if (
125
+ not isinstance(class_name, str)
126
+ or not class_name
127
+ or class_name in seen_class_names
128
+ ):
129
+ continue
130
+ prediction = predictions.get(class_name) or {}
131
+ if not isinstance(prediction, dict):
132
+ prediction = {}
133
+ class_id = _normalise_class_id(prediction.get("class_id"))
134
+ if class_id < 0 or class_id in used_class_ids:
135
+ class_id = _next_available_class_id(
136
+ preferred_class_id=fallback_class_id,
137
+ used_class_ids=used_class_ids,
138
+ )
139
+ classes.append(
140
+ {
141
+ "class": class_name,
142
+ "class_id": class_id,
143
+ }
144
+ )
145
+ seen_class_names.add(class_name)
146
+ used_class_ids.add(class_id)
147
+ if not classes:
148
+ return None
149
+ return {
150
+ "type": "multi_label",
151
+ "classes": classes,
152
+ }
153
+
154
+
155
+ def _build_class_entry(classification: Dict[str, Any]) -> Dict[str, Any]:
156
+ return {
157
+ "class": classification["class"],
158
+ "class_id": _normalise_class_id(classification.get("class_id")),
159
+ }
160
+
161
+
162
+ def _normalise_class_id(class_id: Any) -> int:
163
+ if class_id is None:
164
+ return -1
165
+ try:
166
+ return int(class_id)
167
+ except (TypeError, ValueError):
168
+ return -1
169
+
170
+
171
+ def _next_available_class_id(
172
+ preferred_class_id: int,
173
+ used_class_ids: set,
174
+ ) -> int:
175
+ while preferred_class_id in used_class_ids:
176
+ preferred_class_id += 1
177
+ return preferred_class_id