retab 0.1.3 → 0.1.4

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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/lib/retab/classifications/category.rb +1 -1
  3. data/lib/retab/classifications/classification_request.rb +2 -2
  4. data/lib/retab/client.rb +16 -16
  5. data/lib/retab/{workflow_artifacts → edits}/edit_config.rb +1 -1
  6. data/lib/retab/edits/edit_request.rb +2 -2
  7. data/lib/retab/experiment_run_metrics/experiment_by_document_metrics_response.rb +2 -2
  8. data/lib/retab/experiment_run_metrics/experiment_by_target_metrics_response.rb +2 -2
  9. data/lib/retab/experiment_run_metrics/experiment_metrics_missing_error.rb +2 -2
  10. data/lib/retab/experiment_run_metrics/experiment_metrics_stale_error.rb +2 -2
  11. data/lib/retab/experiment_run_metrics/experiment_summary_metrics_response.rb +2 -2
  12. data/lib/retab/experiment_run_metrics/experiment_votes_metrics_response.rb +2 -2
  13. data/lib/retab/experiment_run_results/error_workflow_experiment_result.rb +2 -2
  14. data/lib/retab/experiment_run_results/experiment_result.rb +2 -5
  15. data/lib/retab/experiment_runs/experiment_run.rb +6 -3
  16. data/lib/retab/experiment_runs.rb +0 -10
  17. data/lib/retab/extractions/extraction_request.rb +3 -3
  18. data/lib/retab/extractions/sources_response.rb +1 -1
  19. data/lib/retab/extractions.rb +1 -1
  20. data/lib/retab/files/create_upload_response.rb +1 -1
  21. data/lib/retab/files/file.rb +1 -1
  22. data/lib/retab/files.rb +65 -65
  23. data/lib/retab/jobs/job.rb +3 -3
  24. data/lib/retab/parses/parse_request.rb +3 -3
  25. data/lib/retab/partitions/partition.rb +1 -1
  26. data/lib/retab/partitions/partition_request.rb +3 -3
  27. data/lib/retab/schemas/generate_schema_request.rb +2 -5
  28. data/lib/retab/schemas/partial_schema.rb +2 -2
  29. data/lib/retab/schemas.rb +0 -3
  30. data/lib/retab/splits/split_request.rb +2 -2
  31. data/lib/retab/splits/subdocument.rb +2 -2
  32. data/lib/retab/types/trigger_info_type.rb +18 -0
  33. data/lib/retab/types/{workflow_export_payload_request_trigger_types.rb → workflow_export_payload_request_trigger_type.rb} +1 -1
  34. data/lib/retab/types/workflow_runs_trigger_type.rb +1 -1
  35. data/lib/retab/workflow_artifacts/api_call_invocation.rb +4 -4
  36. data/lib/retab/workflow_artifacts/classification_workflow_artifact.rb +1 -1
  37. data/lib/retab/workflow_artifacts/condition_evaluation_details.rb +6 -6
  38. data/lib/retab/workflow_artifacts/condition_evaluation_per_item.rb +1 -1
  39. data/lib/retab/workflow_artifacts/condition_evaluation_result.rb +7 -7
  40. data/lib/retab/workflow_artifacts/condition_evaluation_sub_condition.rb +6 -6
  41. data/lib/retab/workflow_artifacts/conditional_evaluation.rb +4 -4
  42. data/lib/retab/workflow_artifacts/edit_workflow_artifact.rb +1 -1
  43. data/lib/retab/workflow_artifacts/extraction_workflow_artifact.rb +1 -1
  44. data/lib/retab/workflow_artifacts/function_invocation.rb +4 -4
  45. data/lib/retab/workflow_artifacts/parse_workflow_artifact.rb +1 -1
  46. data/lib/retab/workflow_artifacts/partition_workflow_artifact.rb +2 -2
  47. data/lib/retab/workflow_artifacts/review_evaluation.rb +6 -6
  48. data/lib/retab/workflow_artifacts/split_workflow_artifact.rb +1 -1
  49. data/lib/retab/workflow_artifacts/while_loop_termination.rb +4 -4
  50. data/lib/retab/workflow_artifacts.rb +22 -22
  51. data/lib/retab/workflow_block_executions/completed_block_execution_lifecycle.rb +1 -1
  52. data/lib/retab/workflow_block_executions/create_block_execution_request.rb +1 -1
  53. data/lib/retab/workflow_block_executions/error_block_execution_lifecycle.rb +1 -1
  54. data/lib/retab/workflow_block_executions/skipped_block_execution_lifecycle.rb +1 -1
  55. data/lib/retab/workflow_block_executions/stored_block_execution.rb +3 -3
  56. data/lib/retab/workflow_block_executions.rb +1 -1
  57. data/lib/retab/workflow_blocks/workflow_block.rb +1 -1
  58. data/lib/retab/workflow_blocks/workflow_block_create_request.rb +1 -1
  59. data/lib/retab/workflow_blocks.rb +7 -7
  60. data/lib/retab/workflow_edges.rb +3 -3
  61. data/lib/retab/workflow_experiments/experiment_document_capture_request.rb +3 -3
  62. data/lib/retab/workflow_experiments/experiment_document_provenance.rb +3 -3
  63. data/lib/retab/{workflow_test_run_results → workflow_experiments}/file_handle_input.rb +1 -1
  64. data/lib/retab/{workflow_test_run_results → workflow_experiments}/json_handle_input.rb +1 -1
  65. data/lib/retab/workflow_experiments/workflow_experiment.rb +3 -3
  66. data/lib/retab/workflow_reviews/review.rb +3 -3
  67. data/lib/retab/workflow_reviews/review_all_of.rb +1 -1
  68. data/lib/retab/workflow_reviews/review_always.rb +1 -1
  69. data/lib/retab/workflow_reviews/review_any_of.rb +1 -1
  70. data/lib/retab/workflow_reviews/review_any_required_field_null.rb +1 -1
  71. data/lib/retab/workflow_reviews/review_any_split_pages_lt.rb +1 -1
  72. data/lib/retab/workflow_reviews/review_boundary_confidence_lt.rb +1 -1
  73. data/lib/retab/workflow_reviews/review_branch_in.rb +1 -1
  74. data/lib/retab/workflow_reviews/review_category_in.rb +1 -1
  75. data/lib/retab/workflow_reviews/review_confidence_lt.rb +1 -1
  76. data/lib/retab/workflow_reviews/review_decision.rb +3 -3
  77. data/lib/retab/workflow_reviews/review_field_confidence_lt.rb +1 -1
  78. data/lib/retab/workflow_reviews/review_json_condition.rb +1 -1
  79. data/lib/retab/workflow_reviews/review_split_count_neq.rb +1 -1
  80. data/lib/retab/workflow_reviews/review_top_margin_lt.rb +1 -1
  81. data/lib/retab/workflow_reviews/review_validation_failed.rb +1 -1
  82. data/lib/retab/workflow_reviews/submit_decision_response.rb +2 -2
  83. data/lib/retab/workflow_runs/awaiting_review_run.rb +1 -1
  84. data/lib/retab/workflow_runs/cancel_workflow_response.rb +2 -2
  85. data/lib/retab/workflow_runs/cancelled_terminal.rb +1 -1
  86. data/lib/retab/workflow_runs/create_workflow_run_request.rb +1 -1
  87. data/lib/retab/workflow_runs/error_terminal.rb +1 -1
  88. data/lib/retab/workflow_runs/pending_run.rb +1 -1
  89. data/lib/retab/workflow_runs/run_timing.rb +2 -11
  90. data/lib/retab/workflow_runs/running_run.rb +1 -1
  91. data/lib/retab/workflow_runs/{manual_trigger.rb → trigger_info.rb} +3 -8
  92. data/lib/retab/workflow_runs/workflow_export_payload_request.rb +7 -7
  93. data/lib/retab/workflow_runs/workflow_run.rb +7 -21
  94. data/lib/retab/workflow_runs.rb +6 -16
  95. data/lib/retab/workflow_spec/declarative_apply_response.rb +2 -2
  96. data/lib/retab/workflow_spec/declarative_plan_field_change.rb +2 -2
  97. data/lib/retab/workflow_spec/declarative_plan_response.rb +2 -2
  98. data/lib/retab/workflow_spec/declarative_plan_summary.rb +1 -1
  99. data/lib/retab/workflow_spec.rb +10 -10
  100. data/lib/retab/workflow_steps/awaiting_review_step_lifecycle.rb +1 -1
  101. data/lib/retab/workflow_steps/cancelled_step_lifecycle.rb +1 -1
  102. data/lib/retab/workflow_steps/container_context_data.rb +1 -1
  103. data/lib/retab/workflow_steps/error_step_lifecycle.rb +1 -1
  104. data/lib/retab/workflow_steps/queued_step_lifecycle.rb +1 -1
  105. data/lib/retab/workflow_steps.rb +5 -10
  106. data/lib/retab/workflow_test_run_results/verdict_summary.rb +3 -3
  107. data/lib/retab/workflow_test_run_results/workflow_test_result.rb +4 -4
  108. data/lib/retab/workflow_test_run_results/workflow_test_run_timing.rb +7 -0
  109. data/lib/retab/workflow_test_runs/workflow_test_run.rb +7 -21
  110. data/lib/retab/workflow_test_runs.rb +1 -11
  111. data/lib/retab/workflow_tests/all_items_match_condition.rb +1 -1
  112. data/lib/retab/workflow_tests/any_item_matches_condition.rb +1 -1
  113. data/lib/retab/workflow_tests/array_contains_condition.rb +1 -1
  114. data/lib/retab/workflow_tests/assertion_schema_dep.rb +1 -1
  115. data/lib/retab/workflow_tests/between_condition.rb +2 -2
  116. data/lib/retab/workflow_tests/contain_condition.rb +1 -1
  117. data/lib/retab/workflow_tests/ends_with_condition.rb +1 -1
  118. data/lib/retab/workflow_tests/equal_condition.rb +1 -1
  119. data/lib/retab/workflow_tests/exist_condition.rb +1 -1
  120. data/lib/retab/workflow_tests/json_schema_valid_condition.rb +1 -1
  121. data/lib/retab/workflow_tests/length_compare_condition.rb +1 -1
  122. data/lib/retab/workflow_tests/llm_judged_as_condition.rb +1 -1
  123. data/lib/retab/workflow_tests/llm_not_judged_as_condition.rb +1 -1
  124. data/lib/retab/{workflow_test_run_results → workflow_tests}/manual_workflow_test_source.rb +1 -1
  125. data/lib/retab/workflow_tests/matche_regex_condition.rb +1 -1
  126. data/lib/retab/workflow_tests/not_contains_condition.rb +1 -1
  127. data/lib/retab/workflow_tests/not_equals_condition.rb +1 -1
  128. data/lib/retab/workflow_tests/not_exists_condition.rb +1 -1
  129. data/lib/retab/workflow_tests/number_compare_condition.rb +1 -1
  130. data/lib/retab/workflow_tests/object_contains_condition.rb +1 -1
  131. data/lib/retab/{workflow_test_run_results → workflow_tests}/run_step_workflow_test_source.rb +1 -1
  132. data/lib/retab/workflow_tests/similarity_gte_condition.rb +2 -2
  133. data/lib/retab/workflow_tests/split_iou_condition.rb +1 -1
  134. data/lib/retab/workflow_tests/start_with_condition.rb +1 -1
  135. data/lib/retab/workflow_tests/workflow_test.rb +2 -2
  136. data/lib/retab/{workflow_test_runs → workflow_tests}/workflow_test_block_target.rb +1 -1
  137. data/lib/retab/workflows/create_workflow_request.rb +2 -2
  138. data/lib/retab/workflows/publish_workflow_request.rb +1 -1
  139. data/lib/retab/workflows/workflow.rb +2 -2
  140. data/lib/retab/workflows/workflow_published.rb +1 -1
  141. data/lib/retab/workflows.rb +23 -0
  142. data/rbi/retab/api_call_invocation.rbi +4 -4
  143. data/rbi/retab/client.rbi +13 -13
  144. data/rbi/retab/condition_evaluation_details.rbi +2 -2
  145. data/rbi/retab/condition_evaluation_result.rbi +2 -2
  146. data/rbi/retab/condition_evaluation_sub_condition.rbi +2 -2
  147. data/rbi/retab/conditional_evaluation.rbi +4 -4
  148. data/rbi/retab/edit_workflow_artifact.rbi +2 -2
  149. data/rbi/retab/experiment_document_capture_request.rbi +2 -2
  150. data/rbi/retab/experiment_document_provenance.rbi +2 -2
  151. data/rbi/retab/experiment_result.rbi +0 -6
  152. data/rbi/retab/experiment_run.rbi +10 -4
  153. data/rbi/retab/experiment_runs.rbi +1 -3
  154. data/rbi/retab/extraction_workflow_artifact.rbi +2 -2
  155. data/rbi/retab/files.rbi +17 -17
  156. data/rbi/retab/function_invocation.rbi +4 -4
  157. data/rbi/retab/generate_schema_request.rbi +0 -6
  158. data/rbi/retab/job.rbi +2 -2
  159. data/rbi/retab/partition_workflow_artifact.rbi +2 -2
  160. data/rbi/retab/review.rbi +2 -2
  161. data/rbi/retab/review_decision.rbi +4 -4
  162. data/rbi/retab/review_evaluation.rbi +2 -2
  163. data/rbi/retab/run_timing.rbi +0 -18
  164. data/rbi/retab/schemas.rbi +1 -2
  165. data/rbi/retab/stored_block_execution.rbi +2 -2
  166. data/rbi/retab/{schedule_trigger.rbi → trigger_info.rbi} +3 -9
  167. data/rbi/retab/verdict_summary.rbi +2 -2
  168. data/rbi/retab/while_loop_termination.rbi +2 -2
  169. data/rbi/retab/workflow_artifacts.rbi +8 -8
  170. data/rbi/retab/workflow_export_payload_request.rbi +4 -4
  171. data/rbi/retab/workflow_run.rbi +12 -6
  172. data/rbi/retab/workflow_runs.rbi +3 -5
  173. data/rbi/retab/workflow_spec.rbi +4 -4
  174. data/rbi/retab/workflow_steps.rbi +1 -2
  175. data/rbi/retab/workflow_test_result.rbi +2 -2
  176. data/rbi/retab/workflow_test_run.rbi +12 -6
  177. data/rbi/retab/workflow_test_run_timing.rbi +2 -2
  178. data/rbi/retab/workflow_test_runs.rbi +1 -3
  179. data/rbi/retab/workflows.rbi +8 -0
  180. metadata +26 -38
  181. data/lib/retab/types/generate_schema_request_reasoning_effort.rb +0 -17
  182. data/lib/retab/workflow_runs/api_trigger.rb +0 -25
  183. data/lib/retab/workflow_runs/email_trigger.rb +0 -28
  184. data/lib/retab/workflow_runs/restart_trigger.rb +0 -25
  185. data/lib/retab/workflow_runs/schedule_trigger.rb +0 -25
  186. data/lib/retab/workflow_runs/webhook_trigger.rb +0 -25
  187. data/lib/retab/workflow_runs/workflow_snapshot_ref.rb +0 -25
  188. data/lib/retab/workflow_test_runs/workflow_test_run_timing.rb +0 -31
  189. data/rbi/retab/api_trigger.rbi +0 -30
  190. data/rbi/retab/email_trigger.rbi +0 -36
  191. data/rbi/retab/manual_trigger.rbi +0 -30
  192. data/rbi/retab/restart_trigger.rbi +0 -30
  193. data/rbi/retab/webhook_trigger.rbi +0 -30
  194. data/rbi/retab/workflow_snapshot_ref.rbi +0 -30
  195. /data/lib/retab/{extractions → classifications}/file_ref.rb +0 -0
  196. /data/lib/retab/{extractions → classifications}/retab_usage.rb +0 -0
  197. /data/lib/retab/{workflow_artifacts → edits}/b_box.rb +0 -0
  198. /data/lib/retab/{workflow_artifacts → edits}/edit_result.rb +0 -0
  199. /data/lib/retab/{workflow_artifacts → edits}/form_field.rb +0 -0
  200. /data/lib/retab/{workflow_runs → workflow_artifacts}/error_details.rb +0 -0
  201. /data/lib/retab/{workflow_steps → workflow_block_executions}/step_artifact_ref.rb +0 -0
  202. /data/lib/retab/{workflow_test_run_results → workflow_experiments}/materialized_document.rb +0 -0
  203. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/cancelled_workflow_test_run.rb +0 -0
  204. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/completed_workflow_test_run.rb +0 -0
  205. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/error_workflow_test_run.rb +0 -0
  206. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/pending_workflow_test_run.rb +0 -0
  207. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/queued_workflow_test_run.rb +0 -0
  208. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/running_workflow_test_run.rb +0 -0
@@ -21,8 +21,8 @@ module Retab
21
21
  super()
22
22
  hash = self.class.normalize(json)
23
23
  @name = hash[:name]
24
- @description = hash[:description]
25
- @allow_multiple_instances = hash[:allow_multiple_instances]
24
+ @description = hash[:description].nil? ? "" : hash[:description]
25
+ @allow_multiple_instances = hash[:allow_multiple_instances].nil? ? false : hash[:allow_multiple_instances]
26
26
  end
27
27
  end
28
28
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module Retab
6
+ module Types
7
+ class TriggerInfoType
8
+ MANUAL = "manual"
9
+ API = "api"
10
+ SCHEDULE = "schedule"
11
+ WEBHOOK = "webhook"
12
+ EMAIL = "email"
13
+ CUSTOM = "custom"
14
+ RESTART = "restart"
15
+ ALL = [MANUAL, API, SCHEDULE, WEBHOOK, EMAIL, CUSTOM, RESTART].freeze
16
+ end
17
+ end
18
+ end
@@ -4,7 +4,7 @@
4
4
 
5
5
  module Retab
6
6
  module Types
7
- class WorkflowExportPayloadRequestTriggerTypes
7
+ class WorkflowExportPayloadRequestTriggerType
8
8
  MANUAL = "manual"
9
9
  API = "api"
10
10
  SCHEDULE = "schedule"
@@ -4,6 +4,6 @@
4
4
 
5
5
  module Retab
6
6
  module Types
7
- WorkflowRunsTriggerType = WorkflowExportPayloadRequestTriggerTypes
7
+ WorkflowRunsTriggerType = WorkflowExportPayloadRequestTriggerType
8
8
  end
9
9
  end
@@ -8,7 +8,7 @@ module Retab
8
8
  HASH_ATTRS = {
9
9
  operation: :operation,
10
10
  id: :id,
11
- workflow_run_id: :workflow_run_id,
11
+ run_id: :run_id,
12
12
  step_id: :step_id,
13
13
  attempts: :attempts,
14
14
  error: :error,
@@ -18,7 +18,7 @@ module Retab
18
18
  attr_accessor(
19
19
  :operation,
20
20
  :id,
21
- :workflow_run_id,
21
+ :run_id,
22
22
  :step_id,
23
23
  :attempts,
24
24
  :error,
@@ -28,9 +28,9 @@ module Retab
28
28
  def initialize(json)
29
29
  super()
30
30
  hash = self.class.normalize(json)
31
- @operation = hash[:operation]
31
+ @operation = hash[:operation].nil? ? "api_call_invocation" : hash[:operation]
32
32
  @id = hash[:id]
33
- @workflow_run_id = hash[:workflow_run_id]
33
+ @run_id = hash[:run_id]
34
34
  @step_id = hash[:step_id]
35
35
  @attempts = (hash[:attempts] || []).map { |item| item ? Retab::ApiCallAttempt.new(item) : nil }
36
36
  @error = hash[:error] ? Retab::ErrorDetails.new(hash[:error]) : nil
@@ -46,7 +46,7 @@ module Retab
46
46
  @consensus = hash[:consensus] ? Retab::ClassificationConsensus.new(hash[:consensus]) : nil
47
47
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
48
48
  @created_at = hash[:created_at]
49
- @operation = hash[:operation]
49
+ @operation = hash[:operation].nil? ? "classification" : hash[:operation]
50
50
  end
51
51
  end
52
52
  end
@@ -11,7 +11,7 @@ module Retab
11
11
  expected: :expected,
12
12
  actual: :actual,
13
13
  matched: :matched,
14
- per_item: :per_item,
14
+ items: :items,
15
15
  sub_conditions: :sub_conditions,
16
16
  logical_operator: :logical_operator
17
17
  }.freeze
@@ -22,7 +22,7 @@ module Retab
22
22
  :expected,
23
23
  :actual,
24
24
  :matched,
25
- :per_item,
25
+ :items,
26
26
  :sub_conditions,
27
27
  :logical_operator
28
28
  )
@@ -30,12 +30,12 @@ module Retab
30
30
  def initialize(json)
31
31
  super()
32
32
  hash = self.class.normalize(json)
33
- @path = hash[:path]
34
- @operator = hash[:operator]
33
+ @path = hash[:path].nil? ? "" : hash[:path]
34
+ @operator = hash[:operator].nil? ? "" : hash[:operator]
35
35
  @expected = hash[:expected]
36
36
  @actual = hash[:actual]
37
- @matched = hash[:matched]
38
- @per_item = (hash[:per_item] || []).map { |item| item ? Retab::ConditionEvaluationPerItem.new(item) : nil }
37
+ @matched = hash[:matched].nil? ? false : hash[:matched]
38
+ @items = (hash[:items] || []).map { |item| item ? Retab::ConditionEvaluationPerItem.new(item) : nil }
39
39
  @sub_conditions = (hash[:sub_conditions] || []).map { |item|
40
40
  item ? Retab::ConditionEvaluationSubCondition.new(item) : nil
41
41
  }
@@ -25,7 +25,7 @@ module Retab
25
25
  @index = hash[:index]
26
26
  @indices = (hash[:indices] || [])
27
27
  @actual = hash[:actual]
28
- @matched = hash[:matched]
28
+ @matched = hash[:matched].nil? ? false : hash[:matched]
29
29
  end
30
30
  end
31
31
  end
@@ -14,7 +14,7 @@ module Retab
14
14
  matched: :matched,
15
15
  branch_name: :branch_name,
16
16
  logical_operator: :logical_operator,
17
- per_item: :per_item,
17
+ items: :items,
18
18
  sub_evaluations: :sub_evaluations,
19
19
  details: :details
20
20
  }.freeze
@@ -28,7 +28,7 @@ module Retab
28
28
  :matched,
29
29
  :branch_name,
30
30
  :logical_operator,
31
- :per_item,
31
+ :items,
32
32
  :sub_evaluations,
33
33
  :details
34
34
  )
@@ -37,14 +37,14 @@ module Retab
37
37
  super()
38
38
  hash = self.class.normalize(json)
39
39
  @condition_id = hash[:condition_id]
40
- @path = hash[:path]
41
- @operator = hash[:operator]
40
+ @path = hash[:path].nil? ? "" : hash[:path]
41
+ @operator = hash[:operator].nil? ? "" : hash[:operator]
42
42
  @expected = hash[:expected]
43
43
  @actual = hash[:actual]
44
- @matched = hash[:matched]
45
- @branch_name = hash[:branch_name]
44
+ @matched = hash[:matched].nil? ? false : hash[:matched]
45
+ @branch_name = hash[:branch_name].nil? ? "exit" : hash[:branch_name]
46
46
  @logical_operator = hash[:logical_operator]
47
- @per_item = (hash[:per_item] || []).map { |item| item ? Retab::ConditionEvaluationPerItem.new(item) : nil }
47
+ @items = (hash[:items] || []).map { |item| item ? Retab::ConditionEvaluationPerItem.new(item) : nil }
48
48
  @sub_evaluations = (hash[:sub_evaluations] || []).map { |item|
49
49
  item ? Retab::ConditionEvaluationSubCondition.new(item) : nil
50
50
  }
@@ -12,7 +12,7 @@ module Retab
12
12
  expected: :expected,
13
13
  actual: :actual,
14
14
  matched: :matched,
15
- per_item: :per_item
15
+ items: :items
16
16
  }.freeze
17
17
 
18
18
  attr_accessor(
@@ -22,19 +22,19 @@ module Retab
22
22
  :expected,
23
23
  :actual,
24
24
  :matched,
25
- :per_item
25
+ :items
26
26
  )
27
27
 
28
28
  def initialize(json)
29
29
  super()
30
30
  hash = self.class.normalize(json)
31
31
  @sub_condition_id = hash[:sub_condition_id]
32
- @path = hash[:path]
33
- @operator = hash[:operator]
32
+ @path = hash[:path].nil? ? "" : hash[:path]
33
+ @operator = hash[:operator].nil? ? "" : hash[:operator]
34
34
  @expected = hash[:expected]
35
35
  @actual = hash[:actual]
36
- @matched = hash[:matched]
37
- @per_item = (hash[:per_item] || []).map { |item| item ? Retab::ConditionEvaluationPerItem.new(item) : nil }
36
+ @matched = hash[:matched].nil? ? false : hash[:matched]
37
+ @items = (hash[:items] || []).map { |item| item ? Retab::ConditionEvaluationPerItem.new(item) : nil }
38
38
  end
39
39
  end
40
40
  end
@@ -8,7 +8,7 @@ module Retab
8
8
  HASH_ATTRS = {
9
9
  operation: :operation,
10
10
  id: :id,
11
- workflow_run_id: :workflow_run_id,
11
+ run_id: :run_id,
12
12
  step_id: :step_id,
13
13
  evaluations: :evaluations,
14
14
  selected_handles: :selected_handles,
@@ -20,7 +20,7 @@ module Retab
20
20
  attr_accessor(
21
21
  :operation,
22
22
  :id,
23
- :workflow_run_id,
23
+ :run_id,
24
24
  :step_id,
25
25
  :evaluations,
26
26
  :selected_handles,
@@ -32,9 +32,9 @@ module Retab
32
32
  def initialize(json)
33
33
  super()
34
34
  hash = self.class.normalize(json)
35
- @operation = hash[:operation]
35
+ @operation = hash[:operation].nil? ? "conditional_evaluation" : hash[:operation]
36
36
  @id = hash[:id]
37
- @workflow_run_id = hash[:workflow_run_id]
37
+ @run_id = hash[:run_id]
38
38
  @step_id = hash[:step_id]
39
39
  @evaluations = (hash[:evaluations] || []).map { |item| item ? Retab::ConditionEvaluationResult.new(item) : nil }
40
40
  @selected_handles = (hash[:selected_handles] || [])
@@ -46,7 +46,7 @@ module Retab
46
46
  @filled_document_ref = hash[:filled_document_ref] ? Retab::FileRef.new(hash[:filled_document_ref]) : nil
47
47
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
48
48
  @created_at = hash[:created_at]
49
- @operation = hash[:operation]
49
+ @operation = hash[:operation].nil? ? "edit" : hash[:operation]
50
50
  end
51
51
  end
52
52
  end
@@ -52,7 +52,7 @@ module Retab
52
52
  @metadata = hash[:metadata] || {}
53
53
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
54
54
  @created_at = hash[:created_at]
55
- @operation = hash[:operation]
55
+ @operation = hash[:operation].nil? ? "extraction" : hash[:operation]
56
56
  end
57
57
  end
58
58
  end
@@ -8,7 +8,7 @@ module Retab
8
8
  HASH_ATTRS = {
9
9
  operation: :operation,
10
10
  id: :id,
11
- workflow_run_id: :workflow_run_id,
11
+ run_id: :run_id,
12
12
  step_id: :step_id,
13
13
  inputs: :inputs,
14
14
  output: :output,
@@ -20,7 +20,7 @@ module Retab
20
20
  attr_accessor(
21
21
  :operation,
22
22
  :id,
23
- :workflow_run_id,
23
+ :run_id,
24
24
  :step_id,
25
25
  :inputs,
26
26
  :output,
@@ -32,9 +32,9 @@ module Retab
32
32
  def initialize(json)
33
33
  super()
34
34
  hash = self.class.normalize(json)
35
- @operation = hash[:operation]
35
+ @operation = hash[:operation].nil? ? "function_invocation" : hash[:operation]
36
36
  @id = hash[:id]
37
- @workflow_run_id = hash[:workflow_run_id]
37
+ @run_id = hash[:run_id]
38
38
  @step_id = hash[:step_id]
39
39
  @inputs = hash[:inputs] || {}
40
40
  @output = hash[:output]
@@ -43,7 +43,7 @@ module Retab
43
43
  @output = hash[:output] ? Retab::ParseOutput.new(hash[:output]) : nil
44
44
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
45
45
  @created_at = hash[:created_at]
46
- @operation = hash[:operation]
46
+ @operation = hash[:operation].nil? ? "parse" : hash[:operation]
47
47
  end
48
48
  end
49
49
  end
@@ -44,12 +44,12 @@ module Retab
44
44
  @key = hash[:key]
45
45
  @instructions = hash[:instructions]
46
46
  @n_consensus = hash[:n_consensus]
47
- @allow_overlap = hash[:allow_overlap]
47
+ @allow_overlap = hash[:allow_overlap].nil? ? true : hash[:allow_overlap]
48
48
  @output = (hash[:output] || []).map { |item| item ? Retab::PartitionChunk.new(item) : nil }
49
49
  @consensus = hash[:consensus] ? Retab::PartitionConsensus.new(hash[:consensus]) : nil
50
50
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
51
51
  @created_at = hash[:created_at]
52
- @operation = hash[:operation]
52
+ @operation = hash[:operation].nil? ? "partition" : hash[:operation]
53
53
  end
54
54
  end
55
55
  end
@@ -8,7 +8,7 @@ module Retab
8
8
  HASH_ATTRS = {
9
9
  operation: :operation,
10
10
  id: :id,
11
- workflow_run_id: :workflow_run_id,
11
+ run_id: :run_id,
12
12
  step_id: :step_id,
13
13
  evaluations: :evaluations,
14
14
  selected_handles: :selected_handles,
@@ -26,7 +26,7 @@ module Retab
26
26
  attr_accessor(
27
27
  :operation,
28
28
  :id,
29
- :workflow_run_id,
29
+ :run_id,
30
30
  :step_id,
31
31
  :evaluations,
32
32
  :selected_handles,
@@ -44,19 +44,19 @@ module Retab
44
44
  def initialize(json)
45
45
  super()
46
46
  hash = self.class.normalize(json)
47
- @operation = hash[:operation]
47
+ @operation = hash[:operation].nil? ? "review_trigger_evaluation" : hash[:operation]
48
48
  @id = hash[:id]
49
- @workflow_run_id = hash[:workflow_run_id]
49
+ @run_id = hash[:run_id]
50
50
  @step_id = hash[:step_id]
51
51
  @evaluations = (hash[:evaluations] || []).map { |item| item ? Retab::ConditionEvaluationResult.new(item) : nil }
52
52
  @selected_handles = (hash[:selected_handles] || [])
53
53
  @matched_branch_id = hash[:matched_branch_id]
54
54
  @matched_condition_ids = (hash[:matched_condition_ids] || [])
55
- @requires_human_review = hash[:requires_human_review]
55
+ @requires_human_review = hash[:requires_human_review].nil? ? false : hash[:requires_human_review]
56
56
  @reviewer_id = hash[:reviewer_id]
57
57
  @review_decision = hash[:review_decision]
58
58
  @review_notes = hash[:review_notes]
59
- @requested_revision = hash[:requested_revision]
59
+ @requested_revision = hash[:requested_revision].nil? ? false : hash[:requested_revision]
60
60
  @reviewed_at = hash[:reviewed_at]
61
61
  @created_at = hash[:created_at]
62
62
  end
@@ -46,7 +46,7 @@ module Retab
46
46
  @consensus = hash[:consensus] ? Retab::SplitConsensus.new(hash[:consensus]) : nil
47
47
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
48
48
  @created_at = hash[:created_at]
49
- @operation = hash[:operation]
49
+ @operation = hash[:operation].nil? ? "split" : hash[:operation]
50
50
  end
51
51
  end
52
52
  end
@@ -8,7 +8,7 @@ module Retab
8
8
  HASH_ATTRS = {
9
9
  operation: :operation,
10
10
  id: :id,
11
- workflow_run_id: :workflow_run_id,
11
+ run_id: :run_id,
12
12
  step_id: :step_id,
13
13
  termination_reason: :termination_reason,
14
14
  evaluations: :evaluations,
@@ -18,7 +18,7 @@ module Retab
18
18
  attr_accessor(
19
19
  :operation,
20
20
  :id,
21
- :workflow_run_id,
21
+ :run_id,
22
22
  :step_id,
23
23
  :termination_reason,
24
24
  :evaluations,
@@ -28,9 +28,9 @@ module Retab
28
28
  def initialize(json)
29
29
  super()
30
30
  hash = self.class.normalize(json)
31
- @operation = hash[:operation]
31
+ @operation = hash[:operation].nil? ? "while_loop_termination" : hash[:operation]
32
32
  @id = hash[:id]
33
- @workflow_run_id = hash[:workflow_run_id]
33
+ @run_id = hash[:run_id]
34
34
  @step_id = hash[:step_id]
35
35
  @termination_reason = hash[:termination_reason]
36
36
  @evaluations = (hash[:evaluations] || []).map { |item| item ? Retab::ConditionEvaluationResult.new(item) : nil }
@@ -10,31 +10,14 @@ module Retab
10
10
  @client = client
11
11
  end
12
12
 
13
- # Get Workflow Artifact By Id
14
- # @param artifact_id [String]
15
- # @param request_options [Hash] (see Retab::Types::RequestOptions)
16
- # @return [Retab::ExtractionWorkflowArtifact, Retab::SplitWorkflowArtifact, Retab::ClassificationWorkflowArtifact, Retab::ParseWorkflowArtifact, Retab::EditWorkflowArtifact, Retab::PartitionWorkflowArtifact, Retab::ConditionalEvaluation, Retab::ReviewEvaluation, Retab::WhileLoopTermination, Retab::ApiCallInvocation, Retab::FunctionInvocation]
17
- def get(
18
- artifact_id:,
19
- request_options: {}
20
- )
21
- response = @client.request(
22
- method: :get,
23
- path: "/v1/workflows/artifacts/#{Retab::Util.encode_path(artifact_id)}",
24
- auth: true,
25
- request_options: request_options
26
- )
27
- JSON.parse(response.body)
28
- end
29
-
30
13
  # List Workflow Artifacts
31
- # @param run_id [String, nil] Workflow run ID whose artifacts should be listed. Required unless ``step_id`` is provided.
14
+ # @param run_id [String, nil] Workflow run ID whose artifacts should be listed. Required unless `step_id` is provided.
32
15
  # @param operation [Retab::Types::WorkflowArtifactsOperation, nil] Optional artifact operation filter
33
16
  # @param block_id [String, nil] Optional block_id or step_id filter
34
- # @param step_id [String, nil] Optional step id filter. When provided, returns the single artifact attached to that step (or an empty list if the step has no artifact). ``run_id`` is not required when ``step_id`` is set — it is resolved from the step record.
35
- # @param before [String, nil] Step id cursor: return the page before this step (mutually exclusive with ``after``). Ignored when ``step_id`` is set.
36
- # @param after [String, nil] Step id cursor: return the page after this step (mutually exclusive with ``before``). Ignored when ``step_id`` is set.
37
- # @param limit [Integer, nil] Maximum number of artifacts to return per page (1-200). Ignored when ``step_id`` is set (that path returns the single attached artifact).
17
+ # @param step_id [String, nil] Optional step id filter. When provided, returns the single artifact attached to that step (or an empty list if the step has no artifact). `run_id` is not required when `step_id` is set — it is resolved from the step record.
18
+ # @param before [String, nil] Step id cursor: return the page before this step (mutually exclusive with `after`). Ignored when `step_id` is set.
19
+ # @param after [String, nil] Step id cursor: return the page after this step (mutually exclusive with `before`). Ignored when `step_id` is set.
20
+ # @param limit [Integer, nil] Maximum number of artifacts to return per page (1-200). Ignored when `step_id` is set (that path returns the single attached artifact).
38
21
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
39
22
  # @return [Retab::PaginatedList<Retab::WorkflowArtifact>]
40
23
  def list(
@@ -89,5 +72,22 @@ module Retab
89
72
  fetch_next: fetch_next
90
73
  )
91
74
  end
75
+
76
+ # Get Workflow Artifact By Id
77
+ # @param artifact_id [String]
78
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
79
+ # @return [Retab::ExtractionWorkflowArtifact, Retab::SplitWorkflowArtifact, Retab::ClassificationWorkflowArtifact, Retab::ParseWorkflowArtifact, Retab::EditWorkflowArtifact, Retab::PartitionWorkflowArtifact, Retab::ConditionalEvaluation, Retab::ReviewEvaluation, Retab::WhileLoopTermination, Retab::ApiCallInvocation, Retab::FunctionInvocation]
80
+ def get(
81
+ artifact_id:,
82
+ request_options: {}
83
+ )
84
+ response = @client.request(
85
+ method: :get,
86
+ path: "/v1/workflows/artifacts/#{Retab::Util.encode_path(artifact_id)}",
87
+ auth: true,
88
+ request_options: request_options
89
+ )
90
+ JSON.parse(response.body)
91
+ end
92
92
  end
93
93
  end
@@ -14,7 +14,7 @@ module Retab
14
14
  def initialize(json)
15
15
  super()
16
16
  hash = self.class.normalize(json)
17
- @status = hash[:status]
17
+ @status = hash[:status].nil? ? "completed" : hash[:status]
18
18
  end
19
19
  end
20
20
  end
@@ -28,7 +28,7 @@ module Retab
28
28
  @block_id = hash[:block_id]
29
29
  @step_id = hash[:step_id]
30
30
  @n_consensus = hash[:n_consensus]
31
- @check_eligibility = hash[:check_eligibility]
31
+ @check_eligibility = hash[:check_eligibility].nil? ? true : hash[:check_eligibility]
32
32
  end
33
33
  end
34
34
  end
@@ -18,7 +18,7 @@ module Retab
18
18
  def initialize(json)
19
19
  super()
20
20
  hash = self.class.normalize(json)
21
- @status = hash[:status]
21
+ @status = hash[:status].nil? ? "error" : hash[:status]
22
22
  @message = hash[:message]
23
23
  end
24
24
  end
@@ -18,7 +18,7 @@ module Retab
18
18
  def initialize(json)
19
19
  super()
20
20
  hash = self.class.normalize(json)
21
- @status = hash[:status]
21
+ @status = hash[:status].nil? ? "skipped" : hash[:status]
22
22
  @reason = hash[:reason]
23
23
  end
24
24
  end
@@ -15,7 +15,7 @@ module Retab
15
15
  handle_inputs: :handle_inputs,
16
16
  artifact: :artifact,
17
17
  handle_outputs: :handle_outputs,
18
- routing_decision: :routing_decision,
18
+ routing_decisions: :routing_decisions,
19
19
  duration_ms: :duration_ms,
20
20
  created_at: :created_at,
21
21
  block_config: :block_config,
@@ -33,7 +33,7 @@ module Retab
33
33
  :handle_inputs,
34
34
  :artifact,
35
35
  :handle_outputs,
36
- :routing_decision,
36
+ :routing_decisions,
37
37
  :duration_ms,
38
38
  :created_at,
39
39
  :block_config,
@@ -64,7 +64,7 @@ module Retab
64
64
  @handle_inputs = hash[:handle_inputs] || {}
65
65
  @artifact = hash[:artifact] ? Retab::StepArtifactRef.new(hash[:artifact]) : nil
66
66
  @handle_outputs = hash[:handle_outputs] || {}
67
- @routing_decision = (hash[:routing_decision] || [])
67
+ @routing_decisions = (hash[:routing_decisions] || [])
68
68
  @duration_ms = hash[:duration_ms]
69
69
  @created_at = hash[:created_at]
70
70
  @block_config = hash[:block_config] || {}
@@ -65,7 +65,7 @@ module Retab
65
65
  # Create Block Execution
66
66
  # @param run_id [String] Workflow run id that owns the step.
67
67
  # @param block_id [String] Workflow block id to execute.
68
- # @param step_id [String, nil] Optional concrete step id whose inputs should be used. When omitted, the block id is used as the canonical step lookup key.
68
+ # @param step_id [String, nil] Optional concrete step id whose inputs should be used. When omitted, the block id is used to look up the step.
69
69
  # @param n_consensus [Integer, nil] Optional override for n_consensus on extract / split / classifier blocks. Must be 3, 5, or 7.
70
70
  # @param check_eligibility [Boolean, nil] Whether to verify the upstream subgraph hasn't drifted since the source run. Disable only for explicit force-rerun flows.
71
71
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
@@ -41,7 +41,7 @@ module Retab
41
41
  @id = hash[:id]
42
42
  @workflow_id = hash[:workflow_id]
43
43
  @type = hash[:type]
44
- @label = hash[:label]
44
+ @label = hash[:label].nil? ? "" : hash[:label]
45
45
  @position_x = hash[:position_x]
46
46
  @position_y = hash[:position_y]
47
47
  @width = hash[:width]
@@ -37,7 +37,7 @@ module Retab
37
37
  @workflow_id = hash[:workflow_id]
38
38
  @id = hash[:id]
39
39
  @type = hash[:type]
40
- @label = hash[:label]
40
+ @label = hash[:label].nil? ? "" : hash[:label]
41
41
  @position_x = hash[:position_x]
42
42
  @position_y = hash[:position_y]
43
43
  @width = hash[:width]
@@ -16,8 +16,8 @@ module Retab
16
16
 
17
17
  # List Blocks
18
18
  # @param workflow_id [String]
19
- # @param before [String, nil] Block id cursor: return the page before this id (mutually exclusive with ``after``).
20
- # @param after [String, nil] Block id cursor: return the page after this id (mutually exclusive with ``before``).
19
+ # @param before [String, nil] Block id cursor: return the page before this id (mutually exclusive with `after`).
20
+ # @param after [String, nil] Block id cursor: return the page after this id (mutually exclusive with `before`).
21
21
  # @param limit [Integer, nil] Maximum number of blocks to return per page (1-200).
22
22
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
23
23
  # @return [Retab::PaginatedList<Retab::WorkflowBlock>]
@@ -60,7 +60,7 @@ module Retab
60
60
 
61
61
  # Create Block
62
62
  # @param workflow_id [String] Workflow to create the block in.
63
- # @param id [String, nil] Opaque block ID. Omit to let the server generate one. Block IDs are unique per ORGANIZATION (not per workflow) — reusing a human-friendly id like 'block_extract' across multiple workflows in the same org will fail with 409. Prefer the server-generated ``blk_<nanoid>`` form for predictability.
63
+ # @param id [String, nil] Block ID. Omit to let the server generate one (recommended). Block IDs must be unique across your organization, not just within a workflow — reusing a custom id like 'block_extract' in more than one workflow fails with 409.
64
64
  # @param type [Retab::Types::WorkflowBlockCreateRequestType] Block type
65
65
  # @param label [String, nil] Display label
66
66
  # @param position_x [Float, nil] X position
@@ -114,7 +114,7 @@ module Retab
114
114
 
115
115
  # Get Block
116
116
  # @param block_id [String]
117
- # @param workflow_id [String, nil] Optional disambiguator for legacy duplicate block IDs. Required only when the block id is not unique within the orgin that case the unqualified call returns 409 listing the colliding workflow_ids. Newly-created blocks use server-generated opaque IDs and never need this.
117
+ # @param workflow_id [String, nil] Disambiguates a block id that is shared by more than one workflow. Required only when the block id is not unique within your organizationotherwise the call returns 409 listing the colliding workflow_ids. Server-generated block IDs are always unique and never need this.
118
118
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
119
119
  # @return [Retab::WorkflowBlock]
120
120
  def get(
@@ -150,8 +150,8 @@ module Retab
150
150
  # @param height [Float, nil]
151
151
  # @param config [Hash{String => Object}, nil]
152
152
  # @param parent_id [String, nil]
153
- # @param config_mode [Retab::Types::UpdateWorkflowBlockRequestConfigMode, nil] How to apply the ``config`` field. 'merge' (default) deep-merges the patch into the existing config with null-as-delete; 'replace' uses the patch as the full new config. Not persisted.
154
- # @param workflow_id [String, nil] Optional disambiguator for legacy duplicate block IDs. See ``GET /blocks/{block_id}`` for the full rationale.
153
+ # @param config_mode [Retab::Types::UpdateWorkflowBlockRequestConfigMode, nil] How to apply the `config` field. 'merge' (default) deep-merges the patch into the existing config with null-as-delete; 'replace' uses the patch as the full new config.
154
+ # @param workflow_id [String, nil] Disambiguates a block id that is shared by more than one workflow. Required only when the block id is not unique within your organization.
155
155
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
156
156
  # @return [Retab::WorkflowBlock]
157
157
  def update(
@@ -199,7 +199,7 @@ module Retab
199
199
 
200
200
  # Delete Block
201
201
  # @param block_id [String]
202
- # @param workflow_id [String, nil] Optional disambiguator for legacy duplicate block IDs. See ``GET /blocks/{block_id}`` for the full rationale.
202
+ # @param workflow_id [String, nil] Disambiguates a block id that is shared by more than one workflow. Required only when the block id is not unique within your organization.
203
203
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
204
204
  # @return [void]
205
205
  def delete(
@@ -14,8 +14,8 @@ module Retab
14
14
  # @param workflow_id [String]
15
15
  # @param source_block [String, nil] Filter by source block ID
16
16
  # @param target_block [String, nil] Filter by target block ID
17
- # @param before [String, nil] Edge id cursor: return the page before this id (mutually exclusive with ``after``).
18
- # @param after [String, nil] Edge id cursor: return the page after this id (mutually exclusive with ``before``).
17
+ # @param before [String, nil] Edge id cursor: return the page before this id (mutually exclusive with `after`).
18
+ # @param after [String, nil] Edge id cursor: return the page after this id (mutually exclusive with `before`).
19
19
  # @param limit [Integer, nil] Maximum number of edges to return per page (1-200).
20
20
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
21
21
  # @return [Retab::PaginatedList<Retab::WorkflowEdgeDoc>]
@@ -70,7 +70,7 @@ module Retab
70
70
 
71
71
  # Create Edge
72
72
  # @param workflow_id [String] Workflow to create the edge in.
73
- # @param id [String, nil] Opaque edge ID. Omit to let the server generate one.
73
+ # @param id [String, nil] Edge ID. Omit to let the server generate one (recommended).
74
74
  # @param source_block [String] Source block ID
75
75
  # @param target_block [String] Target block ID
76
76
  # @param source_handle [String, nil] Output handle