retab 0.1.3 → 0.1.5

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 (268) hide show
  1. checksums.yaml +4 -4
  2. data/lib/retab/classifications/category.rb +1 -1
  3. data/lib/retab/classifications/classification.rb +6 -0
  4. data/lib/retab/classifications/classification_request.rb +7 -4
  5. data/lib/retab/{jobs/job_error.rb → classifications/primitive_error.rb} +1 -1
  6. data/lib/retab/classifications.rb +38 -1
  7. data/lib/retab/client.rb +12 -16
  8. data/lib/retab/edits/edit.rb +6 -0
  9. data/lib/retab/{workflow_artifacts → edits}/edit_config.rb +1 -1
  10. data/lib/retab/edits/edit_request.rb +7 -4
  11. data/lib/retab/edits.rb +38 -1
  12. data/lib/retab/experiment_run_metrics/experiment_by_document_metrics_response.rb +2 -2
  13. data/lib/retab/experiment_run_metrics/experiment_by_target_metrics_response.rb +2 -2
  14. data/lib/retab/experiment_run_metrics/experiment_metrics_missing_error.rb +2 -2
  15. data/lib/retab/experiment_run_metrics/experiment_metrics_stale_error.rb +2 -2
  16. data/lib/retab/experiment_run_metrics/experiment_summary_metrics_response.rb +2 -2
  17. data/lib/retab/experiment_run_metrics/experiment_votes_metrics_response.rb +2 -2
  18. data/lib/retab/experiment_run_results/error_workflow_experiment_result.rb +2 -2
  19. data/lib/retab/experiment_run_results/experiment_result.rb +2 -5
  20. data/lib/retab/experiment_runs/experiment_run.rb +6 -3
  21. data/lib/retab/experiment_runs.rb +0 -10
  22. data/lib/retab/extractions/extraction.rb +6 -0
  23. data/lib/retab/extractions/extraction_request.rb +6 -3
  24. data/lib/retab/extractions/sources_response.rb +1 -1
  25. data/lib/retab/extractions.rb +38 -1
  26. data/lib/retab/files/create_upload_response.rb +1 -1
  27. data/lib/retab/files/file.rb +1 -1
  28. data/lib/retab/files.rb +65 -65
  29. data/lib/retab/parses/parse.rb +6 -0
  30. data/lib/retab/parses/parse_request.rb +8 -5
  31. data/lib/retab/parses.rb +33 -1
  32. data/lib/retab/partitions/partition.rb +7 -1
  33. data/lib/retab/partitions/partition_request.rb +8 -5
  34. data/lib/retab/partitions.rb +38 -1
  35. data/lib/retab/schemas/generate_schema_request.rb +2 -5
  36. data/lib/retab/schemas/partial_schema.rb +2 -2
  37. data/lib/retab/schemas.rb +0 -3
  38. data/lib/retab/splits/split.rb +6 -0
  39. data/lib/retab/splits/split_request.rb +7 -4
  40. data/lib/retab/splits/subdocument.rb +2 -2
  41. data/lib/retab/splits.rb +38 -1
  42. data/lib/retab/types/{job_status.rb → classification_status.rb} +3 -4
  43. data/lib/retab/types/classification_workflow_artifact_status.rb +9 -0
  44. data/lib/retab/types/{supported_endpoint.rb → classifications_status.rb} +1 -1
  45. data/lib/retab/types/{jobs_order.rb → edit_status.rb} +1 -1
  46. data/lib/retab/types/edit_workflow_artifact_status.rb +9 -0
  47. data/lib/retab/types/{jobs_status.rb → edits_status.rb} +1 -1
  48. data/lib/retab/types/{jobs_endpoint.rb → extraction_status.rb} +1 -1
  49. data/lib/retab/types/extraction_workflow_artifact_status.rb +9 -0
  50. data/lib/retab/types/extractions_status.rb +9 -0
  51. data/lib/retab/types/parse_status.rb +9 -0
  52. data/lib/retab/types/parse_workflow_artifact_status.rb +9 -0
  53. data/lib/retab/types/partition_status.rb +9 -0
  54. data/lib/retab/types/partition_workflow_artifact_status.rb +9 -0
  55. data/lib/retab/types/partitions_status.rb +9 -0
  56. data/lib/retab/types/split_status.rb +9 -0
  57. data/lib/retab/types/split_workflow_artifact_status.rb +9 -0
  58. data/lib/retab/types/splits_status.rb +9 -0
  59. data/lib/retab/types/trigger_info_type.rb +18 -0
  60. data/lib/retab/types/{workflow_export_payload_request_trigger_types.rb → workflow_export_payload_request_trigger_type.rb} +1 -1
  61. data/lib/retab/types/workflow_runs_trigger_type.rb +1 -1
  62. data/lib/retab/workflow_artifacts/api_call_invocation.rb +4 -4
  63. data/lib/retab/workflow_artifacts/classification_workflow_artifact.rb +7 -1
  64. data/lib/retab/workflow_artifacts/condition_evaluation_details.rb +6 -6
  65. data/lib/retab/workflow_artifacts/condition_evaluation_per_item.rb +1 -1
  66. data/lib/retab/workflow_artifacts/condition_evaluation_result.rb +7 -7
  67. data/lib/retab/workflow_artifacts/condition_evaluation_sub_condition.rb +6 -6
  68. data/lib/retab/workflow_artifacts/conditional_evaluation.rb +4 -4
  69. data/lib/retab/workflow_artifacts/edit_workflow_artifact.rb +7 -1
  70. data/lib/retab/workflow_artifacts/extraction_workflow_artifact.rb +7 -1
  71. data/lib/retab/workflow_artifacts/function_invocation.rb +4 -4
  72. data/lib/retab/workflow_artifacts/parse_workflow_artifact.rb +7 -1
  73. data/lib/retab/workflow_artifacts/partition_workflow_artifact.rb +8 -2
  74. data/lib/retab/workflow_artifacts/review_evaluation.rb +6 -6
  75. data/lib/retab/workflow_artifacts/split_workflow_artifact.rb +7 -1
  76. data/lib/retab/workflow_artifacts/while_loop_termination.rb +4 -4
  77. data/lib/retab/workflow_artifacts.rb +22 -22
  78. data/lib/retab/workflow_block_executions/completed_block_execution_lifecycle.rb +1 -1
  79. data/lib/retab/workflow_block_executions/create_block_execution_request.rb +1 -1
  80. data/lib/retab/workflow_block_executions/error_block_execution_lifecycle.rb +1 -1
  81. data/lib/retab/workflow_block_executions/skipped_block_execution_lifecycle.rb +1 -1
  82. data/lib/retab/workflow_block_executions/stored_block_execution.rb +3 -3
  83. data/lib/retab/workflow_block_executions.rb +1 -1
  84. data/lib/retab/workflow_blocks/workflow_block.rb +1 -1
  85. data/lib/retab/workflow_blocks/workflow_block_create_request.rb +1 -1
  86. data/lib/retab/workflow_blocks.rb +7 -7
  87. data/lib/retab/workflow_edges.rb +3 -3
  88. data/lib/retab/workflow_experiments/experiment_document_capture_request.rb +3 -3
  89. data/lib/retab/workflow_experiments/experiment_document_provenance.rb +3 -3
  90. data/lib/retab/{workflow_test_run_results → workflow_experiments}/file_handle_input.rb +1 -1
  91. data/lib/retab/{workflow_test_run_results → workflow_experiments}/json_handle_input.rb +1 -1
  92. data/lib/retab/workflow_experiments/workflow_experiment.rb +3 -3
  93. data/lib/retab/workflow_reviews/review.rb +3 -3
  94. data/lib/retab/workflow_reviews/review_all_of.rb +1 -1
  95. data/lib/retab/workflow_reviews/review_always.rb +1 -1
  96. data/lib/retab/workflow_reviews/review_any_of.rb +1 -1
  97. data/lib/retab/workflow_reviews/review_any_required_field_null.rb +1 -1
  98. data/lib/retab/workflow_reviews/review_any_split_pages_lt.rb +1 -1
  99. data/lib/retab/workflow_reviews/review_boundary_confidence_lt.rb +1 -1
  100. data/lib/retab/workflow_reviews/review_branch_in.rb +1 -1
  101. data/lib/retab/workflow_reviews/review_category_in.rb +1 -1
  102. data/lib/retab/workflow_reviews/review_confidence_lt.rb +1 -1
  103. data/lib/retab/workflow_reviews/review_decision.rb +3 -3
  104. data/lib/retab/workflow_reviews/review_field_confidence_lt.rb +1 -1
  105. data/lib/retab/workflow_reviews/review_json_condition.rb +1 -1
  106. data/lib/retab/workflow_reviews/review_split_count_neq.rb +1 -1
  107. data/lib/retab/workflow_reviews/review_top_margin_lt.rb +1 -1
  108. data/lib/retab/workflow_reviews/review_validation_failed.rb +1 -1
  109. data/lib/retab/workflow_reviews/submit_decision_response.rb +2 -2
  110. data/lib/retab/workflow_runs/awaiting_review_run.rb +1 -1
  111. data/lib/retab/workflow_runs/cancel_workflow_response.rb +2 -2
  112. data/lib/retab/workflow_runs/cancelled_terminal.rb +1 -1
  113. data/lib/retab/workflow_runs/create_workflow_run_request.rb +1 -1
  114. data/lib/retab/workflow_runs/error_terminal.rb +1 -1
  115. data/lib/retab/workflow_runs/pending_run.rb +1 -1
  116. data/lib/retab/workflow_runs/run_timing.rb +2 -11
  117. data/lib/retab/workflow_runs/running_run.rb +1 -1
  118. data/lib/retab/workflow_runs/{manual_trigger.rb → trigger_info.rb} +3 -8
  119. data/lib/retab/workflow_runs/workflow_export_payload_request.rb +7 -7
  120. data/lib/retab/workflow_runs/workflow_run.rb +7 -21
  121. data/lib/retab/workflow_runs.rb +6 -16
  122. data/lib/retab/workflow_spec/declarative_apply_response.rb +2 -2
  123. data/lib/retab/workflow_spec/declarative_plan_field_change.rb +2 -2
  124. data/lib/retab/workflow_spec/declarative_plan_response.rb +2 -2
  125. data/lib/retab/workflow_spec/declarative_plan_summary.rb +1 -1
  126. data/lib/retab/workflow_spec.rb +10 -10
  127. data/lib/retab/workflow_steps/awaiting_review_step_lifecycle.rb +1 -1
  128. data/lib/retab/workflow_steps/cancelled_step_lifecycle.rb +1 -1
  129. data/lib/retab/workflow_steps/container_context_data.rb +1 -1
  130. data/lib/retab/workflow_steps/error_step_lifecycle.rb +1 -1
  131. data/lib/retab/workflow_steps/queued_step_lifecycle.rb +1 -1
  132. data/lib/retab/workflow_steps.rb +5 -10
  133. data/lib/retab/workflow_test_run_results/verdict_summary.rb +3 -3
  134. data/lib/retab/workflow_test_run_results/workflow_test_result.rb +4 -4
  135. data/lib/retab/{jobs/job_warning.rb → workflow_test_run_results/workflow_test_run_timing.rb} +1 -1
  136. data/lib/retab/workflow_test_runs/workflow_test_run.rb +7 -21
  137. data/lib/retab/workflow_test_runs.rb +1 -11
  138. data/lib/retab/workflow_tests/all_items_match_condition.rb +1 -1
  139. data/lib/retab/workflow_tests/any_item_matches_condition.rb +1 -1
  140. data/lib/retab/workflow_tests/array_contains_condition.rb +1 -1
  141. data/lib/retab/workflow_tests/assertion_schema_dep.rb +1 -1
  142. data/lib/retab/workflow_tests/between_condition.rb +2 -2
  143. data/lib/retab/workflow_tests/contain_condition.rb +1 -1
  144. data/lib/retab/workflow_tests/ends_with_condition.rb +1 -1
  145. data/lib/retab/workflow_tests/equal_condition.rb +1 -1
  146. data/lib/retab/workflow_tests/exist_condition.rb +1 -1
  147. data/lib/retab/workflow_tests/json_schema_valid_condition.rb +1 -1
  148. data/lib/retab/workflow_tests/length_compare_condition.rb +1 -1
  149. data/lib/retab/workflow_tests/llm_judged_as_condition.rb +1 -1
  150. data/lib/retab/workflow_tests/llm_not_judged_as_condition.rb +1 -1
  151. data/lib/retab/{workflow_test_run_results → workflow_tests}/manual_workflow_test_source.rb +1 -1
  152. data/lib/retab/workflow_tests/matche_regex_condition.rb +1 -1
  153. data/lib/retab/workflow_tests/not_contains_condition.rb +1 -1
  154. data/lib/retab/workflow_tests/not_equals_condition.rb +1 -1
  155. data/lib/retab/workflow_tests/not_exists_condition.rb +1 -1
  156. data/lib/retab/workflow_tests/number_compare_condition.rb +1 -1
  157. data/lib/retab/workflow_tests/object_contains_condition.rb +1 -1
  158. data/lib/retab/{workflow_test_run_results → workflow_tests}/run_step_workflow_test_source.rb +1 -1
  159. data/lib/retab/workflow_tests/similarity_gte_condition.rb +2 -2
  160. data/lib/retab/workflow_tests/split_iou_condition.rb +1 -1
  161. data/lib/retab/workflow_tests/start_with_condition.rb +1 -1
  162. data/lib/retab/workflow_tests/workflow_test.rb +2 -2
  163. data/lib/retab/{workflow_test_runs → workflow_tests}/workflow_test_block_target.rb +1 -1
  164. data/lib/retab/workflows/create_workflow_request.rb +2 -2
  165. data/lib/retab/workflows/publish_workflow_request.rb +1 -1
  166. data/lib/retab/workflows/workflow.rb +2 -2
  167. data/lib/retab/workflows/workflow_published.rb +1 -1
  168. data/lib/retab/workflows.rb +23 -0
  169. data/lib/retab.rb +0 -1
  170. data/rbi/retab/api_call_invocation.rbi +4 -4
  171. data/rbi/retab/classification.rbi +14 -2
  172. data/rbi/retab/classification_request.rbi +6 -0
  173. data/rbi/retab/classification_workflow_artifact.rbi +14 -2
  174. data/rbi/retab/classifications.rbi +14 -3
  175. data/rbi/retab/client.rbi +10 -13
  176. data/rbi/retab/condition_evaluation_details.rbi +2 -2
  177. data/rbi/retab/condition_evaluation_result.rbi +2 -2
  178. data/rbi/retab/condition_evaluation_sub_condition.rbi +2 -2
  179. data/rbi/retab/conditional_evaluation.rbi +4 -4
  180. data/rbi/retab/edit.rbi +14 -2
  181. data/rbi/retab/edit_request.rbi +6 -0
  182. data/rbi/retab/edit_workflow_artifact.rbi +16 -4
  183. data/rbi/retab/edits.rbi +14 -3
  184. data/rbi/retab/experiment_document_capture_request.rbi +2 -2
  185. data/rbi/retab/experiment_document_provenance.rbi +2 -2
  186. data/rbi/retab/experiment_result.rbi +0 -6
  187. data/rbi/retab/experiment_run.rbi +10 -4
  188. data/rbi/retab/experiment_runs.rbi +1 -3
  189. data/rbi/retab/extraction.rbi +12 -0
  190. data/rbi/retab/extraction_request.rbi +6 -0
  191. data/rbi/retab/extraction_workflow_artifact.rbi +14 -2
  192. data/rbi/retab/extractions.rbi +14 -3
  193. data/rbi/retab/files.rbi +17 -17
  194. data/rbi/retab/function_invocation.rbi +4 -4
  195. data/rbi/retab/generate_schema_request.rbi +0 -6
  196. data/rbi/retab/parse.rbi +12 -0
  197. data/rbi/retab/parse_request.rbi +6 -0
  198. data/rbi/retab/parse_workflow_artifact.rbi +12 -0
  199. data/rbi/retab/parses.rbi +12 -2
  200. data/rbi/retab/partition.rbi +12 -0
  201. data/rbi/retab/partition_request.rbi +6 -0
  202. data/rbi/retab/partition_workflow_artifact.rbi +14 -2
  203. data/rbi/retab/partitions.rbi +14 -3
  204. data/rbi/retab/{job_warning.rbi → primitive_error.rbi} +1 -1
  205. data/rbi/retab/review.rbi +2 -2
  206. data/rbi/retab/review_decision.rbi +4 -4
  207. data/rbi/retab/review_evaluation.rbi +2 -2
  208. data/rbi/retab/run_timing.rbi +0 -18
  209. data/rbi/retab/schemas.rbi +1 -2
  210. data/rbi/retab/split.rbi +14 -2
  211. data/rbi/retab/split_request.rbi +6 -0
  212. data/rbi/retab/split_workflow_artifact.rbi +14 -2
  213. data/rbi/retab/splits.rbi +14 -3
  214. data/rbi/retab/stored_block_execution.rbi +2 -2
  215. data/rbi/retab/{schedule_trigger.rbi → trigger_info.rbi} +3 -9
  216. data/rbi/retab/verdict_summary.rbi +2 -2
  217. data/rbi/retab/while_loop_termination.rbi +2 -2
  218. data/rbi/retab/workflow_artifacts.rbi +8 -8
  219. data/rbi/retab/workflow_export_payload_request.rbi +4 -4
  220. data/rbi/retab/workflow_run.rbi +12 -6
  221. data/rbi/retab/workflow_runs.rbi +3 -5
  222. data/rbi/retab/workflow_spec.rbi +4 -4
  223. data/rbi/retab/workflow_steps.rbi +1 -2
  224. data/rbi/retab/workflow_test_result.rbi +2 -2
  225. data/rbi/retab/workflow_test_run.rbi +12 -6
  226. data/rbi/retab/workflow_test_run_timing.rbi +2 -2
  227. data/rbi/retab/workflow_test_runs.rbi +1 -3
  228. data/rbi/retab/workflows.rbi +8 -0
  229. metadata +45 -57
  230. data/lib/retab/jobs/create_job_request.rb +0 -28
  231. data/lib/retab/jobs/job.rb +0 -70
  232. data/lib/retab/jobs/job_response.rb +0 -25
  233. data/lib/retab/jobs.rb +0 -252
  234. data/lib/retab/types/create_job_request_endpoint.rb +0 -34
  235. data/lib/retab/types/generate_schema_request_reasoning_effort.rb +0 -17
  236. data/lib/retab/types/jobs_source.rb +0 -14
  237. data/lib/retab/workflow_runs/api_trigger.rb +0 -25
  238. data/lib/retab/workflow_runs/email_trigger.rb +0 -28
  239. data/lib/retab/workflow_runs/restart_trigger.rb +0 -25
  240. data/lib/retab/workflow_runs/schedule_trigger.rb +0 -25
  241. data/lib/retab/workflow_runs/webhook_trigger.rb +0 -25
  242. data/lib/retab/workflow_runs/workflow_snapshot_ref.rb +0 -25
  243. data/lib/retab/workflow_test_runs/workflow_test_run_timing.rb +0 -31
  244. data/rbi/retab/api_trigger.rbi +0 -30
  245. data/rbi/retab/create_job_request.rbi +0 -36
  246. data/rbi/retab/email_trigger.rbi +0 -36
  247. data/rbi/retab/job.rbi +0 -120
  248. data/rbi/retab/job_error.rbi +0 -36
  249. data/rbi/retab/job_response.rbi +0 -30
  250. data/rbi/retab/jobs.rbi +0 -76
  251. data/rbi/retab/manual_trigger.rbi +0 -30
  252. data/rbi/retab/restart_trigger.rbi +0 -30
  253. data/rbi/retab/webhook_trigger.rbi +0 -30
  254. data/rbi/retab/workflow_snapshot_ref.rbi +0 -30
  255. /data/lib/retab/{extractions → classifications}/file_ref.rb +0 -0
  256. /data/lib/retab/{extractions → classifications}/retab_usage.rb +0 -0
  257. /data/lib/retab/{workflow_artifacts → edits}/b_box.rb +0 -0
  258. /data/lib/retab/{workflow_artifacts → edits}/edit_result.rb +0 -0
  259. /data/lib/retab/{workflow_artifacts → edits}/form_field.rb +0 -0
  260. /data/lib/retab/{workflow_runs → workflow_artifacts}/error_details.rb +0 -0
  261. /data/lib/retab/{workflow_steps → workflow_block_executions}/step_artifact_ref.rb +0 -0
  262. /data/lib/retab/{workflow_test_run_results → workflow_experiments}/materialized_document.rb +0 -0
  263. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/cancelled_workflow_test_run.rb +0 -0
  264. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/completed_workflow_test_run.rb +0 -0
  265. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/error_workflow_test_run.rb +0 -0
  266. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/pending_workflow_test_run.rb +0 -0
  267. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/queued_workflow_test_run.rb +0 -0
  268. /data/lib/retab/{workflow_test_runs → workflow_test_run_results}/running_workflow_test_run.rb +0 -0
@@ -13,6 +13,8 @@ module Retab
13
13
  config: :config,
14
14
  template_id: :template_id,
15
15
  output: :output,
16
+ status: :status,
17
+ error: :error,
16
18
  filled_document_ref: :filled_document_ref,
17
19
  usage: :usage,
18
20
  created_at: :created_at,
@@ -27,6 +29,8 @@ module Retab
27
29
  :config,
28
30
  :template_id,
29
31
  :output,
32
+ :status,
33
+ :error,
30
34
  :filled_document_ref,
31
35
  :usage,
32
36
  :created_at,
@@ -43,10 +47,12 @@ module Retab
43
47
  @config = hash[:config] ? Retab::EditConfig.new(hash[:config]) : nil
44
48
  @template_id = hash[:template_id]
45
49
  @output = hash[:output] ? Retab::EditResult.new(hash[:output]) : nil
50
+ @status = hash[:status].nil? ? "pending" : hash[:status]
51
+ @error = hash[:error] ? Retab::PrimitiveError.new(hash[:error]) : nil
46
52
  @filled_document_ref = hash[:filled_document_ref] ? Retab::FileRef.new(hash[:filled_document_ref]) : nil
47
53
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
48
54
  @created_at = hash[:created_at]
49
- @operation = hash[:operation]
55
+ @operation = hash[:operation].nil? ? "edit" : hash[:operation]
50
56
  end
51
57
  end
52
58
  end
@@ -14,6 +14,8 @@ module Retab
14
14
  image_resolution_dpi: :image_resolution_dpi,
15
15
  instructions: :instructions,
16
16
  output: :output,
17
+ status: :status,
18
+ error: :error,
17
19
  consensus: :consensus,
18
20
  metadata: :metadata,
19
21
  usage: :usage,
@@ -30,6 +32,8 @@ module Retab
30
32
  :image_resolution_dpi,
31
33
  :instructions,
32
34
  :output,
35
+ :status,
36
+ :error,
33
37
  :consensus,
34
38
  :metadata,
35
39
  :usage,
@@ -48,11 +52,13 @@ module Retab
48
52
  @image_resolution_dpi = hash[:image_resolution_dpi]
49
53
  @instructions = hash[:instructions]
50
54
  @output = hash[:output] || {}
55
+ @status = hash[:status].nil? ? "pending" : hash[:status]
56
+ @error = hash[:error] ? Retab::PrimitiveError.new(hash[:error]) : nil
51
57
  @consensus = hash[:consensus] ? Retab::ExtractionConsensus.new(hash[:consensus]) : nil
52
58
  @metadata = hash[:metadata] || {}
53
59
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
54
60
  @created_at = hash[:created_at]
55
- @operation = hash[:operation]
61
+ @operation = hash[:operation].nil? ? "extraction" : hash[:operation]
56
62
  end
57
63
  end
58
64
  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]
@@ -13,6 +13,8 @@ module Retab
13
13
  image_resolution_dpi: :image_resolution_dpi,
14
14
  instructions: :instructions,
15
15
  output: :output,
16
+ status: :status,
17
+ error: :error,
16
18
  usage: :usage,
17
19
  created_at: :created_at,
18
20
  operation: :operation
@@ -26,6 +28,8 @@ module Retab
26
28
  :image_resolution_dpi,
27
29
  :instructions,
28
30
  :output,
31
+ :status,
32
+ :error,
29
33
  :usage,
30
34
  :created_at,
31
35
  :operation
@@ -41,9 +45,11 @@ module Retab
41
45
  @image_resolution_dpi = hash[:image_resolution_dpi]
42
46
  @instructions = hash[:instructions]
43
47
  @output = hash[:output] ? Retab::ParseOutput.new(hash[:output]) : nil
48
+ @status = hash[:status].nil? ? "pending" : hash[:status]
49
+ @error = hash[:error] ? Retab::PrimitiveError.new(hash[:error]) : nil
44
50
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
45
51
  @created_at = hash[:created_at]
46
- @operation = hash[:operation]
52
+ @operation = hash[:operation].nil? ? "parse" : hash[:operation]
47
53
  end
48
54
  end
49
55
  end
@@ -14,6 +14,8 @@ module Retab
14
14
  n_consensus: :n_consensus,
15
15
  allow_overlap: :allow_overlap,
16
16
  output: :output,
17
+ status: :status,
18
+ error: :error,
17
19
  consensus: :consensus,
18
20
  usage: :usage,
19
21
  created_at: :created_at,
@@ -29,6 +31,8 @@ module Retab
29
31
  :n_consensus,
30
32
  :allow_overlap,
31
33
  :output,
34
+ :status,
35
+ :error,
32
36
  :consensus,
33
37
  :usage,
34
38
  :created_at,
@@ -44,12 +48,14 @@ module Retab
44
48
  @key = hash[:key]
45
49
  @instructions = hash[:instructions]
46
50
  @n_consensus = hash[:n_consensus]
47
- @allow_overlap = hash[:allow_overlap]
51
+ @allow_overlap = hash[:allow_overlap].nil? ? true : hash[:allow_overlap]
48
52
  @output = (hash[:output] || []).map { |item| item ? Retab::PartitionChunk.new(item) : nil }
53
+ @status = hash[:status].nil? ? "pending" : hash[:status]
54
+ @error = hash[:error] ? Retab::PrimitiveError.new(hash[:error]) : nil
49
55
  @consensus = hash[:consensus] ? Retab::PartitionConsensus.new(hash[:consensus]) : nil
50
56
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
51
57
  @created_at = hash[:created_at]
52
- @operation = hash[:operation]
58
+ @operation = hash[:operation].nil? ? "partition" : hash[:operation]
53
59
  end
54
60
  end
55
61
  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
@@ -13,6 +13,8 @@ module Retab
13
13
  n_consensus: :n_consensus,
14
14
  instructions: :instructions,
15
15
  output: :output,
16
+ status: :status,
17
+ error: :error,
16
18
  consensus: :consensus,
17
19
  usage: :usage,
18
20
  created_at: :created_at,
@@ -27,6 +29,8 @@ module Retab
27
29
  :n_consensus,
28
30
  :instructions,
29
31
  :output,
32
+ :status,
33
+ :error,
30
34
  :consensus,
31
35
  :usage,
32
36
  :created_at,
@@ -43,10 +47,12 @@ module Retab
43
47
  @n_consensus = hash[:n_consensus]
44
48
  @instructions = hash[:instructions]
45
49
  @output = (hash[:output] || []).map { |item| item ? Retab::SplitResult.new(item) : nil }
50
+ @status = hash[:status].nil? ? "pending" : hash[:status]
51
+ @error = hash[:error] ? Retab::PrimitiveError.new(hash[:error]) : nil
46
52
  @consensus = hash[:consensus] ? Retab::SplitConsensus.new(hash[:consensus]) : nil
47
53
  @usage = hash[:usage] ? Retab::RetabUsage.new(hash[:usage]) : nil
48
54
  @created_at = hash[:created_at]
49
- @operation = hash[:operation]
55
+ @operation = hash[:operation].nil? ? "split" : hash[:operation]
50
56
  end
51
57
  end
52
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
  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
@@ -6,19 +6,19 @@ module Retab
6
6
  class ExperimentDocumentCaptureRequest < Retab::Types::BaseModel
7
7
 
8
8
  HASH_ATTRS = {
9
- workflow_run_id: :workflow_run_id,
9
+ run_id: :run_id,
10
10
  step_id: :step_id
11
11
  }.freeze
12
12
 
13
13
  attr_accessor(
14
- :workflow_run_id,
14
+ :run_id,
15
15
  :step_id
16
16
  )
17
17
 
18
18
  def initialize(json)
19
19
  super()
20
20
  hash = self.class.normalize(json)
21
- @workflow_run_id = hash[:workflow_run_id]
21
+ @run_id = hash[:run_id]
22
22
  @step_id = hash[:step_id]
23
23
  end
24
24
  end
@@ -6,19 +6,19 @@ module Retab
6
6
  class ExperimentDocumentProvenance < Retab::Types::BaseModel
7
7
 
8
8
  HASH_ATTRS = {
9
- workflow_run_id: :workflow_run_id,
9
+ run_id: :run_id,
10
10
  step_id: :step_id
11
11
  }.freeze
12
12
 
13
13
  attr_accessor(
14
- :workflow_run_id,
14
+ :run_id,
15
15
  :step_id
16
16
  )
17
17
 
18
18
  def initialize(json)
19
19
  super()
20
20
  hash = self.class.normalize(json)
21
- @workflow_run_id = hash[:workflow_run_id]
21
+ @run_id = hash[:run_id]
22
22
  @step_id = hash[:step_id]
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
- @type = hash[:type]
21
+ @type = hash[:type].nil? ? "file" : hash[:type]
22
22
  @document = hash[:document] ? Retab::MaterializedDocument.new(hash[:document]) : nil
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
- @type = hash[:type]
21
+ @type = hash[:type].nil? ? "json" : hash[:type]
22
22
  @data = hash[:data]
23
23
  end
24
24
  end
@@ -53,11 +53,11 @@ module Retab
53
53
  @last_run_id = hash[:last_run_id]
54
54
  @created_at = hash[:created_at]
55
55
  @updated_at = hash[:updated_at]
56
- @status = hash[:status]
56
+ @status = hash[:status].nil? ? "draft" : hash[:status]
57
57
  @block_type = hash[:block_type]
58
58
  @score = hash[:score]
59
- @is_stale = hash[:is_stale]
60
- @schema_drift = hash[:schema_drift]
59
+ @is_stale = hash[:is_stale].nil? ? false : hash[:is_stale]
60
+ @schema_drift = hash[:schema_drift].nil? ? "unknown" : hash[:schema_drift]
61
61
  @schema_drift_detail = hash[:schema_drift_detail]
62
62
  end
63
63
  end
@@ -9,7 +9,7 @@ module Retab
9
9
  id: :id,
10
10
  workflow_id: :workflow_id,
11
11
  workflow_version_id: :workflow_version_id,
12
- workflow_run_id: :workflow_run_id,
12
+ run_id: :run_id,
13
13
  block_id: :block_id,
14
14
  step_id: :step_id,
15
15
  parent_step_id: :parent_step_id,
@@ -24,7 +24,7 @@ module Retab
24
24
  :id,
25
25
  :workflow_id,
26
26
  :workflow_version_id,
27
- :workflow_run_id,
27
+ :run_id,
28
28
  :block_id,
29
29
  :step_id,
30
30
  :parent_step_id,
@@ -41,7 +41,7 @@ module Retab
41
41
  @id = hash[:id]
42
42
  @workflow_id = hash[:workflow_id]
43
43
  @workflow_version_id = hash[:workflow_version_id]
44
- @workflow_run_id = hash[:workflow_run_id]
44
+ @run_id = hash[:run_id]
45
45
  @block_id = hash[:block_id]
46
46
  @step_id = hash[:step_id]
47
47
  @parent_step_id = hash[:parent_step_id]
@@ -18,7 +18,7 @@ module Retab
18
18
  def initialize(json)
19
19
  super()
20
20
  hash = self.class.normalize(json)
21
- @kind = hash[:kind]
21
+ @kind = hash[:kind].nil? ? "all_of" : hash[:kind]
22
22
  @predicates = (hash[:predicates] || []).map { |item|
23
23
  item ? (
24
24
  case item[:kind]
@@ -14,7 +14,7 @@ module Retab
14
14
  def initialize(json)
15
15
  super()
16
16
  hash = self.class.normalize(json)
17
- @kind = hash[:kind]
17
+ @kind = hash[:kind].nil? ? "always" : hash[:kind]
18
18
  end
19
19
  end
20
20
  end
@@ -18,7 +18,7 @@ module Retab
18
18
  def initialize(json)
19
19
  super()
20
20
  hash = self.class.normalize(json)
21
- @kind = hash[:kind]
21
+ @kind = hash[:kind].nil? ? "any_of" : hash[:kind]
22
22
  @predicates = (hash[:predicates] || []).map { |item|
23
23
  item ? (
24
24
  case item[:kind]
@@ -14,7 +14,7 @@ module Retab
14
14
  def initialize(json)
15
15
  super()
16
16
  hash = self.class.normalize(json)
17
- @kind = hash[:kind]
17
+ @kind = hash[:kind].nil? ? "any_required_field_null" : hash[:kind]
18
18
  end
19
19
  end
20
20
  end