retab 0.1.0 → 0.1.2

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 (354) hide show
  1. checksums.yaml +4 -4
  2. data/lib/retab/base_client.rb +168 -33
  3. data/lib/retab/classifications/category.rb +3 -1
  4. data/lib/retab/classifications/classification.rb +3 -1
  5. data/lib/retab/classifications/classification_consensus.rb +3 -1
  6. data/lib/retab/classifications/classification_decision.rb +3 -1
  7. data/lib/retab/classifications/classification_request.rb +3 -1
  8. data/lib/retab/classifications.rb +40 -25
  9. data/lib/retab/client.rb +0 -68
  10. data/lib/retab/configuration.rb +8 -6
  11. data/lib/retab/edit_templates/create_edit_template_request.rb +3 -1
  12. data/lib/retab/edit_templates/edit_template.rb +3 -1
  13. data/lib/retab/edit_templates/update_edit_template_request.rb +3 -1
  14. data/lib/retab/edit_templates.rb +36 -24
  15. data/lib/retab/edits/edit.rb +6 -1
  16. data/lib/retab/edits/edit_request.rb +3 -1
  17. data/lib/retab/edits.rb +45 -25
  18. data/lib/retab/errors.rb +21 -4
  19. data/lib/retab/experiment_run_metrics/experiment_by_document_metrics_response.rb +3 -1
  20. data/lib/retab/experiment_run_metrics/experiment_by_document_target_metric.rb +3 -1
  21. data/lib/retab/experiment_run_metrics/experiment_by_target_document_metric.rb +3 -1
  22. data/lib/retab/experiment_run_metrics/experiment_by_target_metrics_response.rb +6 -2
  23. data/lib/retab/experiment_run_metrics/experiment_confusion_flow_metric.rb +3 -1
  24. data/lib/retab/experiment_run_metrics/experiment_confusion_summary_aggregate.rb +3 -1
  25. data/lib/retab/experiment_run_metrics/experiment_extract_summary_aggregate.rb +1 -0
  26. data/lib/retab/experiment_run_metrics/experiment_metric_document_ref.rb +3 -1
  27. data/lib/retab/experiment_run_metrics/experiment_metrics_missing_error.rb +3 -1
  28. data/lib/retab/experiment_run_metrics/experiment_metrics_stale_error.rb +3 -1
  29. data/lib/retab/experiment_run_metrics/experiment_summary_metric_document.rb +3 -1
  30. data/lib/retab/experiment_run_metrics/experiment_summary_metrics_response.rb +6 -2
  31. data/lib/retab/experiment_run_metrics/experiment_target_confusion_metric.rb +3 -1
  32. data/lib/retab/experiment_run_metrics/experiment_vote_row.rb +3 -1
  33. data/lib/retab/experiment_run_metrics/experiment_votes_metrics_response.rb +3 -1
  34. data/lib/retab/experiment_run_metrics/metrics_stale_error_last_run.rb +3 -1
  35. data/lib/retab/experiment_run_metrics.rb +9 -9
  36. data/lib/retab/experiment_run_results/error_workflow_experiment_result.rb +3 -1
  37. data/lib/retab/experiment_run_results/experiment_result.rb +21 -2
  38. data/lib/retab/experiment_run_results/experiment_result_timing.rb +3 -1
  39. data/lib/retab/experiment_run_results.rb +32 -8
  40. data/lib/retab/experiment_runs/cancel_workflow_experiment_run_response.rb +21 -2
  41. data/lib/retab/experiment_runs/create_experiment_run_request.rb +3 -1
  42. data/lib/retab/experiment_runs/experiment_run.rb +21 -2
  43. data/lib/retab/experiment_runs/experiment_run_timing.rb +3 -1
  44. data/lib/retab/experiment_runs/experiment_run_trigger.rb +1 -0
  45. data/lib/retab/experiment_runs.rb +56 -33
  46. data/lib/retab/extractions/extraction.rb +3 -1
  47. data/lib/retab/extractions/extraction_consensus.rb +3 -1
  48. data/lib/retab/extractions/extraction_request.rb +8 -3
  49. data/lib/retab/extractions/file_ref.rb +3 -1
  50. data/lib/retab/extractions/retab_usage.rb +1 -0
  51. data/lib/retab/extractions/sources_response.rb +3 -1
  52. data/lib/retab/extractions.rb +59 -33
  53. data/lib/retab/files/complete_file_upload_request.rb +1 -0
  54. data/lib/retab/files/create_upload_response.rb +3 -1
  55. data/lib/retab/files/file.rb +6 -1
  56. data/lib/retab/files/file_link.rb +3 -1
  57. data/lib/retab/files/upload_file_request.rb +3 -1
  58. data/lib/retab/files.rb +55 -29
  59. data/lib/retab/jobs/create_job_request.rb +3 -1
  60. data/lib/retab/jobs/job.rb +3 -1
  61. data/lib/retab/jobs/job_error.rb +3 -1
  62. data/lib/retab/jobs/job_response.rb +3 -1
  63. data/lib/retab/jobs.rb +73 -37
  64. data/lib/retab/mime.rb +69 -38
  65. data/lib/retab/paginated_list.rb +86 -0
  66. data/lib/retab/parses/parse.rb +3 -1
  67. data/lib/retab/parses/parse_output.rb +3 -1
  68. data/lib/retab/parses/parse_request.rb +3 -1
  69. data/lib/retab/parses.rb +39 -24
  70. data/lib/retab/partitions/partition.rb +3 -1
  71. data/lib/retab/partitions/partition_chunk.rb +3 -1
  72. data/lib/retab/partitions/partition_chunk_likelihood.rb +3 -1
  73. data/lib/retab/partitions/partition_consensus.rb +6 -2
  74. data/lib/retab/partitions/partition_request.rb +3 -1
  75. data/lib/retab/partitions.rb +40 -25
  76. data/lib/retab/schemas/generate_schema_request.rb +3 -1
  77. data/lib/retab/schemas/partial_schema.rb +3 -1
  78. data/lib/retab/schemas.rb +13 -9
  79. data/lib/retab/shared/http_validation_error.rb +1 -0
  80. data/lib/retab/shared/validation_error.rb +3 -1
  81. data/lib/retab/splits/split.rb +3 -1
  82. data/lib/retab/splits/split_consensus.rb +6 -2
  83. data/lib/retab/splits/split_request.rb +3 -1
  84. data/lib/retab/splits/split_result.rb +3 -1
  85. data/lib/retab/splits/split_subdocument_likelihood.rb +3 -1
  86. data/lib/retab/splits/subdocument.rb +3 -1
  87. data/lib/retab/splits.rb +39 -24
  88. data/lib/retab/types/actor_kind.rb +3 -3
  89. data/lib/retab/types/api_response.rb +2 -0
  90. data/lib/retab/types/assertion_drift_status.rb +3 -3
  91. data/lib/retab/types/assertion_outcome.rb +3 -3
  92. data/lib/retab/types/base_model.rb +34 -9
  93. data/lib/retab/types/cancel_workflow_response_cancellation_status.rb +3 -3
  94. data/lib/retab/types/classifications_order.rb +2 -2
  95. data/lib/retab/types/condition_evaluation_details_logical_operator.rb +2 -2
  96. data/lib/retab/types/create_experiment_request_n_consensus.rb +3 -3
  97. data/lib/retab/types/create_job_request_endpoint.rb +24 -12
  98. data/lib/retab/types/declarative_apply_response_action.rb +3 -3
  99. data/lib/retab/types/declarative_plan_field_change_action.rb +3 -3
  100. data/lib/retab/types/declarative_plan_resource_change_target.rb +3 -3
  101. data/lib/retab/types/declarative_plan_resource_change_type.rb +44 -22
  102. data/lib/retab/types/error_step_lifecycle_category.rb +3 -3
  103. data/lib/retab/types/error_step_lifecycle_stage.rb +7 -7
  104. data/lib/retab/types/experiment_block_type.rb +4 -4
  105. data/lib/retab/types/experiment_public_status.rb +5 -5
  106. data/lib/retab/types/experiment_run_metrics_view.rb +4 -4
  107. data/lib/retab/types/experiment_run_results_order.rb +9 -0
  108. data/lib/retab/types/experiment_schema_drift_status.rb +4 -4
  109. data/lib/retab/types/field_type.rb +2 -2
  110. data/lib/retab/types/generate_schema_request_reasoning_effort.rb +6 -6
  111. data/lib/retab/types/handle_payload_type.rb +3 -3
  112. data/lib/retab/types/job_status.rb +7 -7
  113. data/lib/retab/types/jobs_source.rb +3 -3
  114. data/lib/retab/types/latest_block_test_run_summary_status.rb +6 -6
  115. data/lib/retab/types/length_compare_condition_op.rb +6 -6
  116. data/lib/retab/types/list_struct.rb +13 -50
  117. data/lib/retab/types/parse_request_table_parsing_format.rb +4 -4
  118. data/lib/retab/types/request_options.rb +2 -0
  119. data/lib/retab/types/resume_status.rb +5 -4
  120. data/lib/retab/types/review_decision_status.rb +5 -5
  121. data/lib/retab/types/review_evaluation_review_decision.rb +2 -2
  122. data/lib/retab/types/similarity_gte_condition_method.rb +2 -2
  123. data/lib/retab/types/sources_response_document_type.rb +6 -6
  124. data/lib/retab/types/step_artifact_ref_operation.rb +24 -12
  125. data/lib/retab/types/submission_status.rb +3 -3
  126. data/lib/retab/types/update_workflow_block_request_config_mode.rb +2 -2
  127. data/lib/retab/types/while_loop_termination_termination_reason.rb +3 -3
  128. data/lib/retab/types/workflow_block_create_request_type.rb +30 -15
  129. data/lib/retab/types/workflow_block_executions_order.rb +9 -0
  130. data/lib/retab/types/workflow_block_type.rb +40 -20
  131. data/lib/retab/types/workflow_experiments_order.rb +9 -0
  132. data/lib/retab/types/workflow_export_payload_request_exclude_status.rb +8 -8
  133. data/lib/retab/types/workflow_export_payload_request_export_source.rb +2 -2
  134. data/lib/retab/types/workflow_export_payload_request_trigger_types.rb +6 -6
  135. data/lib/retab/types/workflow_test_run_results_order.rb +9 -0
  136. data/lib/retab/types/{workflow_config_block_type.rb → workflow_tests_order.rb} +1 -1
  137. data/lib/retab/util.rb +4 -2
  138. data/lib/retab/version.rb +3 -1
  139. data/lib/retab/workflow_artifacts/api_call_attempt.rb +3 -1
  140. data/lib/retab/workflow_artifacts/api_call_invocation.rb +3 -1
  141. data/lib/retab/workflow_artifacts/b_box.rb +3 -1
  142. data/lib/retab/workflow_artifacts/classification_workflow_artifact.rb +3 -1
  143. data/lib/retab/workflow_artifacts/condition_evaluation_details.rb +6 -2
  144. data/lib/retab/workflow_artifacts/condition_evaluation_per_item.rb +3 -1
  145. data/lib/retab/workflow_artifacts/condition_evaluation_result.rb +6 -2
  146. data/lib/retab/workflow_artifacts/condition_evaluation_sub_condition.rb +3 -1
  147. data/lib/retab/workflow_artifacts/conditional_evaluation.rb +3 -1
  148. data/lib/retab/workflow_artifacts/edit_config.rb +1 -0
  149. data/lib/retab/workflow_artifacts/edit_result.rb +3 -1
  150. data/lib/retab/workflow_artifacts/edit_workflow_artifact.rb +6 -1
  151. data/lib/retab/workflow_artifacts/extraction_workflow_artifact.rb +3 -1
  152. data/lib/retab/workflow_artifacts/form_field.rb +3 -1
  153. data/lib/retab/workflow_artifacts/function_invocation.rb +3 -1
  154. data/lib/retab/workflow_artifacts/parse_workflow_artifact.rb +3 -1
  155. data/lib/retab/workflow_artifacts/partition_workflow_artifact.rb +3 -1
  156. data/lib/retab/workflow_artifacts/review_evaluation.rb +3 -1
  157. data/lib/retab/workflow_artifacts/split_workflow_artifact.rb +3 -1
  158. data/lib/retab/workflow_artifacts/while_loop_termination.rb +3 -1
  159. data/lib/retab/workflow_artifacts/workflow_artifact.rb +3 -1
  160. data/lib/retab/workflow_artifacts.rb +20 -13
  161. data/lib/retab/workflow_block_executions/completed_block_execution_lifecycle.rb +1 -0
  162. data/lib/retab/workflow_block_executions/create_block_execution_request.rb +3 -1
  163. data/lib/retab/workflow_block_executions/error_block_execution_lifecycle.rb +3 -1
  164. data/lib/retab/workflow_block_executions/skipped_block_execution_lifecycle.rb +3 -1
  165. data/lib/retab/workflow_block_executions/stored_block_execution.rb +15 -2
  166. data/lib/retab/workflow_block_executions.rb +40 -15
  167. data/lib/retab/workflow_blocks/update_workflow_block_request.rb +3 -1
  168. data/lib/retab/workflow_blocks/workflow_block.rb +3 -1
  169. data/lib/retab/workflow_blocks/workflow_block_create_request.rb +3 -1
  170. data/lib/retab/workflow_blocks.rb +52 -36
  171. data/lib/retab/workflow_edges/workflow_edge_create_request.rb +3 -1
  172. data/lib/retab/workflow_edges/workflow_edge_doc.rb +3 -1
  173. data/lib/retab/workflow_edges.rb +36 -22
  174. data/lib/retab/workflow_experiments/create_experiment_request.rb +9 -3
  175. data/lib/retab/workflow_experiments/experiment_document_capture_request.rb +3 -1
  176. data/lib/retab/workflow_experiments/experiment_document_provenance.rb +3 -1
  177. data/lib/retab/workflow_experiments/explicit_experiment_document_request.rb +3 -1
  178. data/lib/retab/workflow_experiments/update_experiment_request.rb +9 -3
  179. data/lib/retab/workflow_experiments/workflow_experiment.rb +3 -1
  180. data/lib/retab/workflow_experiments.rb +70 -23
  181. data/lib/retab/workflow_review_versions/create_review_version_request.rb +3 -1
  182. data/lib/retab/workflow_review_versions/review_version.rb +3 -1
  183. data/lib/retab/workflow_review_versions.rb +25 -17
  184. data/lib/retab/workflow_reviews/actor.rb +3 -1
  185. data/lib/retab/workflow_reviews/approve_review_request.rb +1 -0
  186. data/lib/retab/workflow_reviews/reject_review_request.rb +3 -1
  187. data/lib/retab/workflow_reviews/review.rb +37 -2
  188. data/lib/retab/workflow_reviews/review_all_of.rb +39 -2
  189. data/lib/retab/workflow_reviews/review_always.rb +1 -0
  190. data/lib/retab/workflow_reviews/review_any_of.rb +39 -2
  191. data/lib/retab/workflow_reviews/review_any_required_field_null.rb +1 -0
  192. data/lib/retab/workflow_reviews/review_any_split_pages_lt.rb +3 -1
  193. data/lib/retab/workflow_reviews/review_boundary_confidence_lt.rb +3 -1
  194. data/lib/retab/workflow_reviews/review_branch_in.rb +3 -1
  195. data/lib/retab/workflow_reviews/review_category_in.rb +3 -1
  196. data/lib/retab/workflow_reviews/review_confidence_lt.rb +3 -1
  197. data/lib/retab/workflow_reviews/review_decision.rb +3 -1
  198. data/lib/retab/workflow_reviews/review_field_confidence_lt.rb +3 -1
  199. data/lib/retab/workflow_reviews/review_json_condition.rb +3 -1
  200. data/lib/retab/workflow_reviews/review_split_count_neq.rb +3 -1
  201. data/lib/retab/workflow_reviews/review_top_margin_lt.rb +3 -1
  202. data/lib/retab/workflow_reviews/review_validation_failed.rb +1 -0
  203. data/lib/retab/workflow_reviews/submit_decision_response.rb +3 -1
  204. data/lib/retab/workflow_reviews.rb +47 -22
  205. data/lib/retab/workflow_runs/api_trigger.rb +3 -1
  206. data/lib/retab/workflow_runs/awaiting_review_run.rb +3 -1
  207. data/lib/retab/workflow_runs/cancel_workflow_request.rb +1 -0
  208. data/lib/retab/workflow_runs/cancel_workflow_response.rb +3 -1
  209. data/lib/retab/workflow_runs/cancelled_terminal.rb +3 -1
  210. data/lib/retab/workflow_runs/create_workflow_run_request.rb +16 -0
  211. data/lib/retab/workflow_runs/email_trigger.rb +3 -1
  212. data/lib/retab/workflow_runs/error_details.rb +3 -1
  213. data/lib/retab/workflow_runs/error_terminal.rb +3 -1
  214. data/lib/retab/workflow_runs/manual_trigger.rb +3 -1
  215. data/lib/retab/workflow_runs/pending_run.rb +1 -0
  216. data/lib/retab/workflow_runs/restart_trigger.rb +3 -1
  217. data/lib/retab/workflow_runs/run_inputs.rb +3 -1
  218. data/lib/retab/workflow_runs/run_timing.rb +3 -1
  219. data/lib/retab/workflow_runs/running_run.rb +1 -0
  220. data/lib/retab/workflow_runs/schedule_trigger.rb +3 -1
  221. data/lib/retab/workflow_runs/webhook_trigger.rb +3 -1
  222. data/lib/retab/workflow_runs/workflow_export_payload_request.rb +3 -1
  223. data/lib/retab/workflow_runs/workflow_export_payload_response.rb +3 -1
  224. data/lib/retab/workflow_runs/workflow_run.rb +39 -3
  225. data/lib/retab/workflow_runs/workflow_snapshot_ref.rb +3 -1
  226. data/lib/retab/workflow_runs.rb +97 -47
  227. data/lib/retab/{workflow_specs → workflow_spec}/declarative_apply_response.rb +6 -2
  228. data/lib/retab/{workflow_specs → workflow_spec}/declarative_export_response.rb +3 -1
  229. data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_change.rb +6 -2
  230. data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_field_change.rb +3 -1
  231. data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_resource_change.rb +3 -1
  232. data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_response.rb +6 -2
  233. data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_summary.rb +3 -1
  234. data/lib/retab/{workflow_specs → workflow_spec}/declarative_validation_response.rb +3 -1
  235. data/lib/retab/{workflow_specs → workflow_spec}/declarative_workflow_request.rb +1 -0
  236. data/lib/retab/{workflow_specs.rb → workflow_spec.rb} +29 -13
  237. data/lib/retab/workflow_steps/awaiting_review_step_lifecycle.rb +1 -0
  238. data/lib/retab/workflow_steps/cancelled_step_lifecycle.rb +3 -1
  239. data/lib/retab/workflow_steps/container_context_data.rb +3 -1
  240. data/lib/retab/workflow_steps/error_step_lifecycle.rb +3 -1
  241. data/lib/retab/workflow_steps/handle_payload.rb +3 -1
  242. data/lib/retab/workflow_steps/queued_step_lifecycle.rb +1 -0
  243. data/lib/retab/workflow_steps/step_artifact_ref.rb +3 -1
  244. data/lib/retab/workflow_steps/workflow_run_step.rb +28 -3
  245. data/lib/retab/workflow_steps.rb +34 -17
  246. data/lib/retab/workflow_test_run_results/assertion_failure.rb +3 -1
  247. data/lib/retab/workflow_test_run_results/assertion_result.rb +3 -1
  248. data/lib/retab/workflow_test_run_results/file_handle_input.rb +3 -1
  249. data/lib/retab/workflow_test_run_results/json_handle_input.rb +3 -1
  250. data/lib/retab/workflow_test_run_results/manual_workflow_test_source.rb +3 -1
  251. data/lib/retab/workflow_test_run_results/materialized_document.rb +3 -1
  252. data/lib/retab/workflow_test_run_results/run_step_workflow_test_source.rb +3 -1
  253. data/lib/retab/workflow_test_run_results/verdict_summary.rb +3 -1
  254. data/lib/retab/workflow_test_run_results/workflow_test_result.rb +31 -3
  255. data/lib/retab/workflow_test_run_results.rb +35 -8
  256. data/lib/retab/workflow_test_runs/block_test_batch_execution_counts.rb +3 -1
  257. data/lib/retab/workflow_test_runs/block_test_lifecycle_counts.rb +3 -1
  258. data/lib/retab/workflow_test_runs/block_test_outcome_counts.rb +3 -1
  259. data/lib/retab/workflow_test_runs/create_workflow_test_run_request.rb +30 -1
  260. data/lib/retab/workflow_test_runs/workflow_test_block_target.rb +3 -1
  261. data/lib/retab/workflow_test_runs/workflow_test_run.rb +39 -3
  262. data/lib/retab/{workflows/workflow_diagnosis_issue.rb → workflow_test_runs/workflow_test_run_block_scope.rb} +7 -11
  263. data/lib/retab/workflow_test_runs/workflow_test_run_single_scope.rb +25 -0
  264. data/lib/retab/workflow_test_runs/workflow_test_run_timing.rb +3 -1
  265. data/lib/retab/{workflows/workflow_block_position.rb → workflow_test_runs/workflow_test_run_workflow_scope.rb} +5 -8
  266. data/lib/retab/workflow_test_runs.rb +66 -32
  267. data/lib/retab/workflow_tests/all_items_match_condition.rb +39 -2
  268. data/lib/retab/workflow_tests/any_item_matches_condition.rb +39 -2
  269. data/lib/retab/workflow_tests/array_contains_condition.rb +3 -1
  270. data/lib/retab/workflow_tests/assertion_schema_dep.rb +3 -1
  271. data/lib/retab/workflow_tests/assertion_spec.rb +39 -2
  272. data/lib/retab/workflow_tests/between_condition.rb +3 -1
  273. data/lib/retab/workflow_tests/contain_condition.rb +3 -1
  274. data/lib/retab/workflow_tests/create_workflow_test_request.rb +13 -2
  275. data/lib/retab/workflow_tests/ends_with_condition.rb +3 -1
  276. data/lib/retab/workflow_tests/equal_condition.rb +3 -1
  277. data/lib/retab/workflow_tests/exist_condition.rb +1 -0
  278. data/lib/retab/workflow_tests/json_schema_valid_condition.rb +3 -1
  279. data/lib/retab/workflow_tests/latest_block_test_run_summary.rb +3 -1
  280. data/lib/retab/workflow_tests/length_compare_condition.rb +3 -1
  281. data/lib/retab/workflow_tests/llm_judged_as_condition.rb +3 -1
  282. data/lib/retab/workflow_tests/llm_not_judged_as_condition.rb +3 -1
  283. data/lib/retab/workflow_tests/matche_regex_condition.rb +3 -1
  284. data/lib/retab/workflow_tests/not_contains_condition.rb +3 -1
  285. data/lib/retab/workflow_tests/not_equals_condition.rb +3 -1
  286. data/lib/retab/workflow_tests/not_exists_condition.rb +1 -0
  287. data/lib/retab/workflow_tests/number_compare_condition.rb +3 -1
  288. data/lib/retab/workflow_tests/object_contains_condition.rb +3 -1
  289. data/lib/retab/workflow_tests/output_target.rb +3 -1
  290. data/lib/retab/workflow_tests/similarity_gte_condition.rb +3 -1
  291. data/lib/retab/workflow_tests/split_iou_condition.rb +3 -1
  292. data/lib/retab/workflow_tests/start_with_condition.rb +3 -1
  293. data/lib/retab/workflow_tests/update_workflow_test_request.rb +13 -2
  294. data/lib/retab/workflow_tests/workflow_test.rb +19 -4
  295. data/lib/retab/workflow_tests.rb +68 -21
  296. data/lib/retab/workflows/create_workflow_request.rb +3 -1
  297. data/lib/retab/workflows/publish_workflow_request.rb +1 -0
  298. data/lib/retab/workflows/update_workflow_request.rb +3 -1
  299. data/lib/retab/workflows/workflow.rb +3 -4
  300. data/lib/retab/workflows/workflow_published.rb +3 -1
  301. data/lib/retab/workflows.rb +76 -55
  302. data/lib/retab.rb +6 -6
  303. data/rbi/retab/classifications.rbi +1 -1
  304. data/rbi/retab/client.rbi +0 -51
  305. data/rbi/retab/create_workflow_run_request.rbi +24 -0
  306. data/rbi/retab/create_workflow_test_run_request.rbi +12 -0
  307. data/rbi/retab/edit.rbi +6 -0
  308. data/rbi/retab/edit_template.rbi +4 -4
  309. data/rbi/retab/edit_templates.rbi +1 -1
  310. data/rbi/retab/edit_workflow_artifact.rbi +6 -0
  311. data/rbi/retab/edits.rbi +4 -1
  312. data/rbi/retab/email_trigger.rbi +2 -2
  313. data/rbi/retab/experiment_run_results.rbi +5 -2
  314. data/rbi/retab/experiment_runs.rbi +2 -3
  315. data/rbi/retab/extraction_request.rbi +6 -0
  316. data/rbi/retab/extractions.rbi +3 -2
  317. data/rbi/retab/file.rbi +10 -4
  318. data/rbi/retab/files.rbi +2 -2
  319. data/rbi/retab/jobs.rbi +1 -1
  320. data/rbi/retab/parses.rbi +1 -1
  321. data/rbi/retab/partitions.rbi +1 -1
  322. data/rbi/retab/splits.rbi +1 -1
  323. data/rbi/retab/workflow.rbi +0 -6
  324. data/rbi/retab/workflow_artifacts.rbi +1 -1
  325. data/rbi/retab/workflow_block_executions.rbi +5 -2
  326. data/rbi/retab/workflow_blocks.rbi +4 -1
  327. data/rbi/retab/workflow_edges.rbi +1 -1
  328. data/rbi/retab/workflow_experiments.rbi +15 -2
  329. data/rbi/retab/workflow_review_versions.rbi +1 -1
  330. data/rbi/retab/workflow_reviews.rbi +4 -1
  331. data/rbi/retab/workflow_runs.rbi +6 -2
  332. data/rbi/retab/{workflow_specs.rbi → workflow_spec.rbi} +1 -1
  333. data/rbi/retab/workflow_steps.rbi +3 -2
  334. data/rbi/retab/{workflow_diagnosis_issue.rbi → workflow_test_run_block_scope.rbi} +4 -16
  335. data/rbi/retab/workflow_test_run_results.rbi +6 -2
  336. data/rbi/retab/workflow_test_run_single_scope.rbi +30 -0
  337. data/rbi/retab/{workflow_block_position.rbi → workflow_test_run_workflow_scope.rbi} +5 -11
  338. data/rbi/retab/workflow_test_runs.rbi +5 -4
  339. data/rbi/retab/workflow_tests.rbi +11 -2
  340. data/rbi/retab/workflows.rbi +28 -12
  341. metadata +25 -31
  342. data/lib/retab/types/workflow_diagnosis_issue_severity.rb +0 -14
  343. data/lib/retab/workflows/workflow_config_block.rb +0 -44
  344. data/lib/retab/workflows/workflow_config_edge.rb +0 -35
  345. data/lib/retab/workflows/workflow_diagnosis_response.rb +0 -29
  346. data/lib/retab/workflows/workflow_diagnosis_stats.rb +0 -29
  347. data/lib/retab/workflows/workflow_email_trigger.rb +0 -23
  348. data/lib/retab/workflows/workflow_graph_diagnosis_request.rb +0 -26
  349. data/rbi/retab/workflow_config_block.rbi +0 -72
  350. data/rbi/retab/workflow_config_edge.rbi +0 -54
  351. data/rbi/retab/workflow_diagnosis_response.rbi +0 -42
  352. data/rbi/retab/workflow_diagnosis_stats.rbi +0 -42
  353. data/rbi/retab/workflow_email_trigger.rbi +0 -30
  354. data/rbi/retab/workflow_graph_diagnosis_request.rbi +0 -36
data/lib/retab/jobs.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
- require 'json'
5
+ require "json"
6
6
 
7
7
  module Retab
8
8
  class Jobs
@@ -32,12 +32,12 @@ module Retab
32
32
  # @param include_request [Boolean, nil] Whether to include the full original request body in each listed job.
33
33
  # @param include_response [Boolean, nil] Whether to include full response payloads in each listed job.
34
34
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
35
- # @return [Retab::Types::ListStruct<Retab::Job>]
35
+ # @return [Retab::PaginatedList<Retab::Job>]
36
36
  def list(
37
37
  before: nil,
38
38
  after: nil,
39
39
  limit: 20,
40
- order: 'desc',
40
+ order: "desc",
41
41
  job_id: nil,
42
42
  status: nil,
43
43
  endpoint: nil,
@@ -57,35 +57,35 @@ module Retab
57
57
  request_options: {}
58
58
  )
59
59
  params = {
60
- 'before' => before,
61
- 'after' => after,
62
- 'limit' => limit,
63
- 'order' => order,
64
- 'job_id' => job_id,
65
- 'status' => status,
66
- 'endpoint' => endpoint,
67
- 'source' => source,
68
- 'project_id' => project_id,
69
- 'workflow_id' => workflow_id,
70
- 'workflow_block_id' => workflow_block_id,
71
- 'model' => model,
72
- 'filename_regex' => filename_regex,
73
- 'filename_contains' => filename_contains,
74
- 'document_type' => document_type,
75
- 'from_date' => from_date,
76
- 'to_date' => to_date,
77
- 'metadata' => metadata,
78
- 'include_request' => include_request,
79
- 'include_response' => include_response
60
+ "before" => before,
61
+ "after" => after,
62
+ "limit" => limit,
63
+ "order" => order,
64
+ "job_id" => job_id,
65
+ "status" => status,
66
+ "endpoint" => endpoint,
67
+ "source" => source,
68
+ "project_id" => project_id,
69
+ "workflow_id" => workflow_id,
70
+ "workflow_block_id" => workflow_block_id,
71
+ "model" => model,
72
+ "filename_regex" => filename_regex,
73
+ "filename_contains" => filename_contains,
74
+ "document_type" => document_type,
75
+ "from_date" => from_date,
76
+ "to_date" => to_date,
77
+ "metadata" => metadata,
78
+ "include_request" => include_request,
79
+ "include_response" => include_response
80
80
  }.compact
81
81
  response = @client.request(
82
82
  method: :get,
83
- path: '/v1/jobs',
83
+ path: "/v1/jobs",
84
84
  auth: true,
85
85
  params: params,
86
86
  request_options: request_options
87
87
  )
88
- fetch_next = ->(cursor) {
88
+ fetch_next = -> (cursor) {
89
89
  list(
90
90
  before: before,
91
91
  after: cursor,
@@ -110,10 +110,30 @@ module Retab
110
110
  request_options: request_options
111
111
  )
112
112
  }
113
- Retab::Types::ListStruct.from_response(
113
+ Retab::PaginatedList.from_response(
114
114
  response,
115
115
  model: Retab::Job,
116
- filters: { before: before, limit: limit, order: order, job_id: job_id, status: status, endpoint: endpoint, source: source, project_id: project_id, workflow_id: workflow_id, workflow_block_id: workflow_block_id, model: model, filename_regex: filename_regex, filename_contains: filename_contains, document_type: document_type, from_date: from_date, to_date: to_date, metadata: metadata, include_request: include_request, include_response: include_response },
116
+ filters: {
117
+ before: before,
118
+ limit: limit,
119
+ order: order,
120
+ job_id: job_id,
121
+ status: status,
122
+ endpoint: endpoint,
123
+ source: source,
124
+ project_id: project_id,
125
+ workflow_id: workflow_id,
126
+ workflow_block_id: workflow_block_id,
127
+ model: model,
128
+ filename_regex: filename_regex,
129
+ filename_contains: filename_contains,
130
+ document_type: document_type,
131
+ from_date: from_date,
132
+ to_date: to_date,
133
+ metadata: metadata,
134
+ include_request: include_request,
135
+ include_response: include_response
136
+ },
117
137
  fetch_next: fetch_next
118
138
  )
119
139
  end
@@ -131,19 +151,23 @@ module Retab
131
151
  request_options: {}
132
152
  )
133
153
  body = {
134
- 'endpoint' => endpoint,
135
- 'request' => request,
136
- 'metadata' => metadata
154
+ "endpoint" => endpoint,
155
+ "request" => request,
156
+ "metadata" => metadata
137
157
  }.compact
138
158
  response = @client.request(
139
159
  method: :post,
140
- path: '/v1/jobs',
160
+ path: "/v1/jobs",
141
161
  auth: true,
142
162
  body: body,
143
163
  request_options: request_options
144
164
  )
145
165
  result = Retab::Job.new(response.body)
146
- result.last_response = Retab::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
166
+ result.last_response = Retab::Types::ApiResponse.new(
167
+ http_status: response.code.to_i,
168
+ http_headers: response.each_header.to_h,
169
+ request_id: response["x-request-id"]
170
+ )
147
171
  result
148
172
  end
149
173
 
@@ -160,8 +184,8 @@ module Retab
160
184
  request_options: {}
161
185
  )
162
186
  params = {
163
- 'include_request' => include_request,
164
- 'include_response' => include_response
187
+ "include_request" => include_request,
188
+ "include_response" => include_response
165
189
  }.compact
166
190
  response = @client.request(
167
191
  method: :get,
@@ -171,7 +195,11 @@ module Retab
171
195
  request_options: request_options
172
196
  )
173
197
  result = Retab::Job.new(response.body)
174
- result.last_response = Retab::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
198
+ result.last_response = Retab::Types::ApiResponse.new(
199
+ http_status: response.code.to_i,
200
+ http_headers: response.each_header.to_h,
201
+ request_id: response["x-request-id"]
202
+ )
175
203
  result
176
204
  end
177
205
 
@@ -190,7 +218,11 @@ module Retab
190
218
  request_options: request_options
191
219
  )
192
220
  result = Retab::Job.new(response.body)
193
- result.last_response = Retab::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
221
+ result.last_response = Retab::Types::ApiResponse.new(
222
+ http_status: response.code.to_i,
223
+ http_headers: response.each_header.to_h,
224
+ request_id: response["x-request-id"]
225
+ )
194
226
  result
195
227
  end
196
228
 
@@ -209,7 +241,11 @@ module Retab
209
241
  request_options: request_options
210
242
  )
211
243
  result = Retab::Job.new(response.body)
212
- result.last_response = Retab::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
244
+ result.last_response = Retab::Types::ApiResponse.new(
245
+ http_status: response.code.to_i,
246
+ http_headers: response.each_header.to_h,
247
+ request_id: response["x-request-id"]
248
+ )
213
249
  result
214
250
  end
215
251
  end
data/lib/retab/mime.rb CHANGED
@@ -9,9 +9,10 @@
9
9
  # MimeData input handling from the Python (`prepare_mime_document`), Node
10
10
  # (`coerceMimeData`), Go (`InferMIMEData`), and Rust (`From<T>` impls) SDKs.
11
11
 
12
- require 'base64'
13
- require 'pathname'
14
- require 'uri'
12
+ require "base64"
13
+ require "pathname"
14
+ require "stringio"
15
+ require "uri"
15
16
 
16
17
  module Retab
17
18
  # Wire-shape MimeData. Mirrors the spec's `MIMEData` component schema.
@@ -29,7 +30,7 @@ module Retab
29
30
  # - `String` containing a path on disk (falls back to file-read)
30
31
  # - `Hash` with `:filename` + `:url` keys (already-built wire shape)
31
32
  class MimeData
32
- attr_accessor :filename, :url
33
+ attr_accessor :filename, :url, :mime_type
33
34
 
34
35
  # Set by resource methods when MimeData is returned from the API (see
35
36
  # `Files#complete_upload`). Mirrors the spec-derived models' BaseModel
@@ -44,20 +45,24 @@ module Retab
44
45
  # `MIMEData` field via `Retab::MimeData.new(hash[:document])`):
45
46
  # Retab::MimeData.new({ filename: 'x.pdf', url: 'data:...' })
46
47
  # Retab::MimeData.new('{"filename": "x.pdf", "url": "data:..."}')
47
- def initialize(arg = nil, filename: nil, url: nil)
48
+ def initialize(arg = nil, filename: nil, url: nil, mime_type: nil)
48
49
  case arg
49
50
  when nil
50
51
  @filename = filename
51
52
  @url = url
53
+ @mime_type = mime_type
52
54
  when Hash
53
55
  sym = arg.transform_keys(&:to_sym)
54
56
  @filename = sym[:filename]
55
57
  @url = sym[:url]
58
+ @mime_type = sym[:mime_type] || sym[:mimeType]
56
59
  when String
57
- require 'json'
60
+ require "json"
61
+
58
62
  parsed = JSON.parse(arg, symbolize_names: true)
59
63
  @filename = parsed[:filename]
60
64
  @url = parsed[:url]
65
+ @mime_type = parsed[:mime_type] || parsed[:mimeType]
61
66
  else
62
67
  raise ArgumentError, "cannot initialize Retab::MimeData from #{arg.class}"
63
68
  end
@@ -77,20 +82,33 @@ module Retab
77
82
  when String
78
83
  from_string(input)
79
84
  else
80
- raise ArgumentError,
85
+ raise(
86
+ ArgumentError,
81
87
  "cannot coerce #{input.class} to Retab::MimeData; supply a Pathname, IO, String (URL or path), Hash, or MimeData"
88
+ )
89
+ end
90
+ end
91
+
92
+ def self.coerce_document_map(input)
93
+ unless input.respond_to?(:transform_values)
94
+ raise ArgumentError, "cannot coerce #{input.class} to a Retab::MimeData document map"
95
+ end
96
+
97
+ input.transform_values do |document|
98
+ file_ref_like?(document) ? document : coerce(document)
82
99
  end
83
100
  end
84
101
 
85
102
  def to_h
86
- { filename: filename, url: url }
103
+ {filename: filename, url: url, mime_type: mime_type}
87
104
  end
88
105
 
89
106
  # JSON serialization. Body construction in resource methods passes the
90
107
  # MimeData object straight into `JSON.generate`; without `to_json` it
91
108
  # would fall back to `to_s` and ship the inspect string.
92
109
  def to_json(*args)
93
- require 'json'
110
+ require "json"
111
+
94
112
  to_h.to_json(*args)
95
113
  end
96
114
 
@@ -101,61 +119,74 @@ module Retab
101
119
  private_class_method def self.from_pathname(path)
102
120
  bytes = path.binread
103
121
  filename = path.basename.to_s
104
- new(filename: filename, url: bytes_to_data_url(bytes, filename))
122
+ mime_type = guess_mime_type(filename) || "application/octet-stream"
123
+ new(filename: filename, url: bytes_to_data_url(bytes, filename, mime: mime_type), mime_type: mime_type)
105
124
  end
106
125
 
107
126
  private_class_method def self.from_io(io)
108
127
  io.binmode if io.respond_to?(:binmode)
109
128
  bytes = io.read
110
- filename = io.respond_to?(:path) && io.path ? ::File.basename(io.path) : 'document'
111
- new(filename: filename, url: bytes_to_data_url(bytes, filename))
129
+ filename = io.respond_to?(:path) && io.path ? ::File.basename(io.path) : "document"
130
+ mime_type = guess_mime_type(filename) || "application/octet-stream"
131
+ new(filename: filename, url: bytes_to_data_url(bytes, filename, mime: mime_type), mime_type: mime_type)
112
132
  end
113
133
 
114
134
  private_class_method def self.from_hash(hash)
115
135
  sym = hash.transform_keys(&:to_sym)
116
- new(filename: sym.fetch(:filename, 'document'), url: sym.fetch(:url))
136
+ new(
137
+ filename: sym.fetch(:filename, "document"),
138
+ url: sym.fetch(:url),
139
+ mime_type: sym[:mime_type] || sym[:mimeType]
140
+ )
141
+ end
142
+
143
+ private_class_method def self.file_ref_like?(input)
144
+ return true if defined?(Retab::FileRef) && input.is_a?(Retab::FileRef)
145
+ return false unless input.is_a?(Hash)
146
+
147
+ input.key?(:id) || input.key?("id")
117
148
  end
118
149
 
119
150
  private_class_method def self.from_string(str)
120
151
  if str.match?(%r{\A(https?|gs|data):}i)
121
152
  # It's a URL.
122
- filename =
123
- begin
124
- uri = URI.parse(str)
125
- ::File.basename(uri.path.to_s.empty? ? 'document' : uri.path)
126
- rescue URI::InvalidURIError
127
- 'document'
128
- end
129
- new(filename: filename, url: str)
153
+ filename = begin
154
+ uri = URI.parse(str)
155
+ ::File.basename(uri.path.to_s.empty? ? "document" : uri.path)
156
+ rescue URI::InvalidURIError
157
+ "document"
158
+ end
159
+
160
+ new(filename: filename, url: str, mime_type: guess_mime_type(filename))
130
161
  elsif ::File.exist?(str)
131
162
  from_pathname(Pathname.new(str))
132
163
  else
133
164
  # Treat as raw text payload — base64-encode as a data URL.
134
- new(filename: 'document', url: bytes_to_data_url(str, 'document', mime: 'text/plain'))
165
+ new(filename: "document", url: bytes_to_data_url(str, "document", mime: "text/plain"), mime_type: "text/plain")
135
166
  end
136
167
  end
137
168
 
138
169
  private_class_method def self.bytes_to_data_url(bytes, filename, mime: nil)
139
- mime ||= guess_mime_type(filename) || 'application/octet-stream'
170
+ mime ||= guess_mime_type(filename) || "application/octet-stream"
140
171
  "data:#{mime};base64,#{Base64.strict_encode64(bytes)}"
141
172
  end
142
173
 
143
174
  EXTENSION_MIME_MAP = {
144
- '.pdf' => 'application/pdf',
145
- '.png' => 'image/png',
146
- '.jpg' => 'image/jpeg',
147
- '.jpeg' => 'image/jpeg',
148
- '.gif' => 'image/gif',
149
- '.webp' => 'image/webp',
150
- '.txt' => 'text/plain',
151
- '.csv' => 'text/csv',
152
- '.json' => 'application/json',
153
- '.xml' => 'application/xml',
154
- '.html' => 'text/html',
155
- '.md' => 'text/markdown',
156
- '.docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
157
- '.xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
158
- '.pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
175
+ ".pdf" => "application/pdf",
176
+ ".png" => "image/png",
177
+ ".jpg" => "image/jpeg",
178
+ ".jpeg" => "image/jpeg",
179
+ ".gif" => "image/gif",
180
+ ".webp" => "image/webp",
181
+ ".txt" => "text/plain",
182
+ ".csv" => "text/csv",
183
+ ".json" => "application/json",
184
+ ".xml" => "application/xml",
185
+ ".html" => "text/html",
186
+ ".md" => "text/markdown",
187
+ ".docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
188
+ ".xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
189
+ ".pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation"
159
190
  }.freeze
160
191
 
161
192
  private_class_method def self.guess_mime_type(filename)
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # @oagen-ignore-file
6
+ #
7
+ # Cross-language paginated-list wrapper. See
8
+ # .notes/blueprints/sdk-pagination-contract.md for the full contract.
9
+ #
10
+ # Every `def list` method on a Retab service returns one of these. The
11
+ # class includes `Enumerable`, so callers can iterate every page
12
+ # transparently with `#each`, `#map`, `#select`, etc. — the closure
13
+ # captured at construction time fetches each subsequent page lazily.
14
+ #
15
+ # Pages built from JSON without a closure (e.g. fixtures rehydrated from
16
+ # disk) iterate just the current `data` and stop, mirroring the WorkOS
17
+ # AutoPaginatable behaviour from the upstream emitter family.
18
+
19
+ require "json"
20
+
21
+ module Retab
22
+ class PaginatedList
23
+ include Enumerable
24
+
25
+ attr_reader :data, :list_metadata, :last_response
26
+
27
+ # @param data [Array]
28
+ # @param list_metadata [Hash] envelope with `before` / `after` cursors
29
+ # @param last_response [Retab::Types::ApiResponse, nil]
30
+ # @param fetch_next [#call, nil] closure that takes the next cursor and
31
+ # returns the next page; `nil` for terminal pages or rehydrated fixtures
32
+ def initialize(data: [], list_metadata: {}, last_response: nil, fetch_next: nil)
33
+ @data = data || []
34
+ @list_metadata = list_metadata || {}
35
+ @last_response = last_response
36
+ @fetch_next = fetch_next
37
+ end
38
+
39
+ # Iterate every page lazily. Each page's `data` is yielded item-by-item;
40
+ # when the cursor advances, the captured closure is invoked to fetch the
41
+ # next page and iteration continues. Terminal pages stop after the last
42
+ # in-memory item.
43
+ def each
44
+ return enum_for(:each) unless block_given?
45
+ page = self
46
+ loop do
47
+ page.data.each { |item| yield item }
48
+ break unless page.has_next? && @fetch_next
49
+ cursor = page.list_metadata[:after] || page.list_metadata["after"]
50
+ page = @fetch_next.call(cursor)
51
+ break unless page
52
+ end
53
+ end
54
+
55
+ def has_next?
56
+ cursor = @list_metadata.is_a?(Hash) ? (@list_metadata[:after] || @list_metadata["after"]) : nil
57
+ !cursor.nil? && !cursor.to_s.empty?
58
+ end
59
+
60
+ def next_page
61
+ return nil unless has_next? && @fetch_next
62
+ cursor = @list_metadata[:after] || @list_metadata["after"]
63
+ @fetch_next.call(cursor)
64
+ end
65
+
66
+ # Construct a PaginatedList from an HTTP response with
67
+ # `{data: [...], list_metadata: {...}}`.
68
+ def self.from_response(response, model: nil, filters: {}, fetch_next: nil)
69
+ _ = filters
70
+ body = response.respond_to?(:body) ? response.body : response
71
+ parsed = body.is_a?(String) ? JSON.parse(body) : (body || {})
72
+ raw_items = parsed["data"] || parsed[:data] || []
73
+ items = raw_items.map { |item| model ? model.new(item) : item }
74
+ meta = parsed["list_metadata"] || parsed[:list_metadata] || {}
75
+ api_response = if response.respond_to?(:code)
76
+ Types::ApiResponse.new(
77
+ http_status: response.code.to_i,
78
+ http_headers: response.respond_to?(:each_header) ? response.each_header.to_h : {},
79
+ request_id: response.respond_to?(:[]) ? response["x-request-id"] : nil
80
+ )
81
+ end
82
+
83
+ new(data: items, list_metadata: meta, last_response: api_response, fetch_next: fetch_next)
84
+ end
85
+ end
86
+ end
@@ -17,7 +17,7 @@ module Retab
17
17
  created_at: :created_at
18
18
  }.freeze
19
19
 
20
- attr_accessor \
20
+ attr_accessor(
21
21
  :id,
22
22
  :file,
23
23
  :model,
@@ -27,8 +27,10 @@ module Retab
27
27
  :output,
28
28
  :usage,
29
29
  :created_at
30
+ )
30
31
 
31
32
  def initialize(json)
33
+ super()
32
34
  hash = self.class.normalize(json)
33
35
  @id = hash[:id]
34
36
  @file = hash[:file] ? Retab::FileRef.new(hash[:file]) : nil
@@ -10,11 +10,13 @@ module Retab
10
10
  text: :text
11
11
  }.freeze
12
12
 
13
- attr_accessor \
13
+ attr_accessor(
14
14
  :pages,
15
15
  :text
16
+ )
16
17
 
17
18
  def initialize(json)
19
+ super()
18
20
  hash = self.class.normalize(json)
19
21
  @pages = (hash[:pages] || [])
20
22
  @text = hash[:text]
@@ -14,15 +14,17 @@ module Retab
14
14
  bust_cache: :bust_cache
15
15
  }.freeze
16
16
 
17
- attr_accessor \
17
+ attr_accessor(
18
18
  :document,
19
19
  :model,
20
20
  :table_parsing_format,
21
21
  :image_resolution_dpi,
22
22
  :instructions,
23
23
  :bust_cache
24
+ )
24
25
 
25
26
  def initialize(json)
27
+ super()
26
28
  hash = self.class.normalize(json)
27
29
  @document = hash[:document] ? Retab::MimeData.new(hash[:document]) : nil
28
30
  @model = hash[:model]
data/lib/retab/parses.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
- require 'json'
5
+ require "json"
6
6
 
7
7
  module Retab
8
8
  class Parses
@@ -19,34 +19,34 @@ module Retab
19
19
  # @param from_date [String, nil]
20
20
  # @param to_date [String, nil]
21
21
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
22
- # @return [Retab::Types::ListStruct<Retab::Parse>]
22
+ # @return [Retab::PaginatedList<Retab::Parse>]
23
23
  def list(
24
24
  before: nil,
25
25
  after: nil,
26
26
  limit: 10,
27
- order: 'desc',
27
+ order: "desc",
28
28
  filename: nil,
29
29
  from_date: nil,
30
30
  to_date: nil,
31
31
  request_options: {}
32
32
  )
33
33
  params = {
34
- 'before' => before,
35
- 'after' => after,
36
- 'limit' => limit,
37
- 'order' => order,
38
- 'filename' => filename,
39
- 'from_date' => from_date,
40
- 'to_date' => to_date
34
+ "before" => before,
35
+ "after" => after,
36
+ "limit" => limit,
37
+ "order" => order,
38
+ "filename" => filename,
39
+ "from_date" => from_date,
40
+ "to_date" => to_date
41
41
  }.compact
42
42
  response = @client.request(
43
43
  method: :get,
44
- path: '/v1/parses',
44
+ path: "/v1/parses",
45
45
  auth: true,
46
46
  params: params,
47
47
  request_options: request_options
48
48
  )
49
- fetch_next = ->(cursor) {
49
+ fetch_next = -> (cursor) {
50
50
  list(
51
51
  before: before,
52
52
  after: cursor,
@@ -58,10 +58,17 @@ module Retab
58
58
  request_options: request_options
59
59
  )
60
60
  }
61
- Retab::Types::ListStruct.from_response(
61
+ Retab::PaginatedList.from_response(
62
62
  response,
63
63
  model: Retab::Parse,
64
- filters: { before: before, limit: limit, order: order, filename: filename, from_date: from_date, to_date: to_date },
64
+ filters: {
65
+ before: before,
66
+ limit: limit,
67
+ order: order,
68
+ filename: filename,
69
+ from_date: from_date,
70
+ to_date: to_date
71
+ },
65
72
  fetch_next: fetch_next
66
73
  )
67
74
  end
@@ -86,22 +93,26 @@ module Retab
86
93
  )
87
94
  document = Retab::MimeData.coerce(document) unless document.nil?
88
95
  body = {
89
- 'document' => document,
90
- 'model' => model,
91
- 'table_parsing_format' => table_parsing_format,
92
- 'image_resolution_dpi' => image_resolution_dpi,
93
- 'instructions' => instructions,
94
- 'bust_cache' => bust_cache
96
+ "document" => document,
97
+ "model" => model,
98
+ "table_parsing_format" => table_parsing_format,
99
+ "image_resolution_dpi" => image_resolution_dpi,
100
+ "instructions" => instructions,
101
+ "bust_cache" => bust_cache
95
102
  }.compact
96
103
  response = @client.request(
97
104
  method: :post,
98
- path: '/v1/parses',
105
+ path: "/v1/parses",
99
106
  auth: true,
100
107
  body: body,
101
108
  request_options: request_options
102
109
  )
103
110
  result = Retab::Parse.new(response.body)
104
- result.last_response = Retab::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
111
+ result.last_response = Retab::Types::ApiResponse.new(
112
+ http_status: response.code.to_i,
113
+ http_headers: response.each_header.to_h,
114
+ request_id: response["x-request-id"]
115
+ )
105
116
  result
106
117
  end
107
118
 
@@ -120,7 +131,11 @@ module Retab
120
131
  request_options: request_options
121
132
  )
122
133
  result = Retab::Parse.new(response.body)
123
- result.last_response = Retab::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
134
+ result.last_response = Retab::Types::ApiResponse.new(
135
+ http_status: response.code.to_i,
136
+ http_headers: response.each_header.to_h,
137
+ request_id: response["x-request-id"]
138
+ )
124
139
  result
125
140
  end
126
141
 
@@ -132,7 +147,7 @@ module Retab
132
147
  parse_id:,
133
148
  request_options: {}
134
149
  )
135
- response = @client.request(
150
+ @client.request(
136
151
  method: :delete,
137
152
  path: "/v1/parses/#{Retab::Util.encode_path(parse_id)}",
138
153
  auth: true,
@@ -19,7 +19,7 @@ module Retab
19
19
  created_at: :created_at
20
20
  }.freeze
21
21
 
22
- attr_accessor \
22
+ attr_accessor(
23
23
  :id,
24
24
  :file,
25
25
  :model,
@@ -31,8 +31,10 @@ module Retab
31
31
  :consensus,
32
32
  :usage,
33
33
  :created_at
34
+ )
34
35
 
35
36
  def initialize(json)
37
+ super()
36
38
  hash = self.class.normalize(json)
37
39
  @id = hash[:id]
38
40
  @file = hash[:file] ? Retab::FileRef.new(hash[:file]) : nil