retab 0.1.0 → 0.1.1

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 +3 -3
  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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03451c10ad95d1e8c1c4735d27f0111c41bd3f70c2c56f47a8b6c6f4b814d805
4
- data.tar.gz: e2fb7d8224adcd5c7028132d39552a66262509b9536c9e4d1faf4c11131a2dce
3
+ metadata.gz: ec5a7c94ae5550b0264067af9b62e78aa26c70c6080f0aa19a16d62a22ed0657
4
+ data.tar.gz: f666c564ffa300ab11fca9e88c9892f77ffc040d157a39a9d393de08ef841586
5
5
  SHA512:
6
- metadata.gz: 28d6058f953e1cebfbde309eddcd726c0654d4961d19aff4474d008e53d1e0be7815883fb43767ef800e34ccf32513a56ac0621a824216e1151471e5ddd10763
7
- data.tar.gz: 9ac931a257550fbf1a1cb191ce1802887415b6d603d1e40bf9335e71b31c84acff26156172f9f8dbd3a4ea7f887f5705b18556ec27b501500df245ce6bff4dcf
6
+ metadata.gz: 87d9b4548bb1b36fcfb7129e3d2367f537f5b8caa227cce87fe71d1cc6306a1b30f8c32d1cc12f61f327db6394c951a9affdad1d8b0436253c5b16cec380c938
7
+ data.tar.gz: 6a40f27a46700369053a581ba5c1a98edd1b03cbdfdbaeed0005da52366966442e98472168c36f967f31357f28c3d4904313f83ae1bf66aebb131fcd2eb8ba9c
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
3
5
  # @oagen-ignore-file
4
6
  #
5
7
  # Hand-maintained HTTP runtime. Generated resource methods call
@@ -7,22 +9,22 @@
7
9
  # and wrap the result in spec-derived model classes.
8
10
  #
9
11
  # This is intentionally minimal — net/http + JSON, no retry/backoff polish.
10
- # A future revision should mirror the WorkOS Ruby SDK's `BaseClient` for
11
- # retries, idempotency keys, and structured error mapping.
12
+ # A future revision should grow retries, idempotency keys, and structured
13
+ # error mapping; the spec doesn't describe any of those.
12
14
 
13
- require 'json'
14
- require 'net/http'
15
- require 'uri'
15
+ require "json"
16
+ require "net/http"
17
+ require "openssl"
18
+ require "uri"
16
19
 
17
20
  module Retab
18
21
  class BaseClient
19
22
  attr_reader :configuration
20
23
 
21
- def initialize(api_key: nil, api_host: nil, configuration: nil, **opts)
22
- @configuration =
23
- configuration ||
24
- Configuration.new(api_key: api_key, api_host: api_host, **opts)
25
- raise ConfigurationError, 'api_key is required' if @configuration.api_key.nil?
24
+ def initialize(api_key: nil, api_host: nil, base_url: nil, configuration: nil, **opts)
25
+ @configuration = configuration ||
26
+ Configuration.new(api_key: api_key, api_host: api_host, base_url: base_url, **opts)
27
+ raise ConfigurationError, "api_key is required" if @configuration.api_key.nil?
26
28
  end
27
29
 
28
30
  def api_key
@@ -52,6 +54,7 @@ module Retab
52
54
  query = URI.encode_www_form(params.reject { |_, v| v.nil? })
53
55
  uri.query = query unless query.empty?
54
56
  end
57
+
55
58
  uri
56
59
  end
57
60
 
@@ -62,59 +65,83 @@ module Retab
62
65
  put: Net::HTTP::Put,
63
66
  patch: Net::HTTP::Patch,
64
67
  delete: Net::HTTP::Delete,
65
- head: Net::HTTP::Head,
68
+ head: Net::HTTP::Head
66
69
  }.fetch(method.to_sym) { raise ArgumentError, "unsupported HTTP method: #{method}" }
67
70
  req = klass.new(uri.request_uri)
68
- req['Accept'] = 'application/json'
69
- req['User-Agent'] = @configuration.user_agent
71
+ req["Accept"] = "application/json"
72
+ req["User-Agent"] = @configuration.user_agent
70
73
  if auth
71
- key = (request_options[:api_key] || request_options['api_key'] || api_key)
72
- req['Authorization'] = "Bearer #{key}" if key
74
+ key = (request_options[:api_key] || request_options["api_key"] || api_key)
75
+ # Retab's API expects the raw key in `Api-Key` (not `Authorization: Bearer ...`).
76
+ # Confirmed against the Python SDK's `client.py` and the server response on
77
+ # /v1/files: "Provide a valid Bearer token, API Key, ..." — the API Key path
78
+ # is the `Api-Key` header.
79
+ req["Api-Key"] = key if key
73
80
  end
74
- if (idem = request_options[:idempotency_key] || request_options['idempotency_key'])
75
- req['Idempotency-Key'] = idem
81
+
82
+ if (idem = request_options[:idempotency_key] || request_options["idempotency_key"])
83
+ req["Idempotency-Key"] = idem
76
84
  end
77
- extra_headers = request_options[:headers] || request_options['headers'] || {}
85
+
86
+ extra_headers = request_options[:headers] || request_options["headers"] || {}
78
87
  extra_headers.each { |k, v| req[k.to_s] = v.to_s }
79
88
  if body && %i[post put patch].include?(method.to_sym)
80
- req['Content-Type'] = 'application/json'
89
+ req["Content-Type"] = "application/json"
81
90
  req.body = body.is_a?(String) ? body : JSON.generate(body)
82
91
  end
92
+
83
93
  req
84
94
  end
85
95
 
86
96
  def perform(uri, req, request_options:)
87
97
  http = Net::HTTP.new(uri.host, uri.port)
88
- http.use_ssl = (uri.scheme == 'https')
98
+ http.use_ssl = (uri.scheme == "https")
89
99
  http.read_timeout = request_options[:timeout] || @configuration.timeout
90
100
  http.open_timeout = request_options[:timeout] || @configuration.timeout
91
101
  http.request(req)
92
102
  rescue Net::OpenTimeout, Net::ReadTimeout => e
93
103
  raise TimeoutError, e.message
104
+ rescue Errno::ECONNREFUSED,
105
+ Errno::EHOSTUNREACH,
106
+ Errno::ENETUNREACH,
107
+ Errno::ECONNRESET,
108
+ Errno::EPIPE,
109
+ SocketError,
110
+ OpenSSL::SSL::SSLError => e
111
+ raise ConnectionError, "#{e.class.name.split("::").last}: #{e.message}"
94
112
  end
95
113
 
96
114
  def raise_for_status(response)
97
115
  code = response.code.to_i
98
116
  return if code < 400
99
117
  body = parse_body(response)
100
- message = body.is_a?(Hash) ? (body['message'] || body['error'] || response.message) : response.message
118
+ message = extract_error_message(body) || response.message
101
119
  args = {
102
120
  message: message,
103
121
  http_status: code,
104
- request_id: response['x-request-id'],
105
- code: body.is_a?(Hash) ? body['code'] : nil,
106
- body: body,
122
+ request_id: response["x-request-id"],
123
+ code: extract_error_code(body),
124
+ body: body
107
125
  }
108
126
  case code
109
- when 400 then raise BadRequestError.new(**args)
110
- when 401 then raise AuthenticationError.new(**args)
111
- when 403 then raise AuthorizationError.new(**args)
112
- when 404 then raise NotFoundError.new(**args)
113
- when 409 then raise ConflictError.new(**args)
114
- when 422 then raise UnprocessableEntityError.new(**args)
115
- when 429 then raise RateLimitExceededError.new(**args)
116
- when 500..599 then raise InternalServerError.new(**args)
117
- else raise APIError.new(**args)
127
+ when 400
128
+ raise BadRequestError.new(**args)
129
+ when 401
130
+ raise AuthenticationError.new(**args)
131
+ when 403
132
+ raise AuthorizationError.new(**args)
133
+ when 404
134
+ raise NotFoundError.new(**args)
135
+ when 409
136
+ raise ConflictError.new(**args)
137
+ when 422
138
+ raise UnprocessableEntityError.new(**args)
139
+ when 429
140
+ raise RateLimitExceededError.new(**args)
141
+ when 500..599
142
+ raise InternalServerError.new(**args)
143
+ else
144
+ raise APIError.new(**args)
118
145
  end
119
146
  end
120
147
 
@@ -124,5 +151,113 @@ module Retab
124
151
  rescue JSON::ParserError
125
152
  response.body
126
153
  end
154
+
155
+ # Walk Retab's nested error envelope to find the most specific
156
+ # human-readable message. The server uses two distinct shapes:
157
+ #
158
+ # HTTPException family (4xx/5xx domain errors):
159
+ # { "detail": { "code": "...", "message": "...",
160
+ # "details": { "error": "<the real one-liner>" } } }
161
+ # { "detail": { "code": "...", "message": "...",
162
+ # "details": { "error": { "message": "<deep>",
163
+ # "code": "..." } } } }
164
+ #
165
+ # Validation family (422, FastAPI / pydantic):
166
+ # { "status_code": 10422,
167
+ # "message": "[{"type": "missing", "loc": [...], "msg": "Field required"}, ...]",
168
+ # "data": null }
169
+ #
170
+ # Plus FastAPI's stock { "detail": "..." } and { "detail": [...] } forms.
171
+ # Fall back through every shape rather than returning "Bad Request".
172
+ def extract_error_message(body)
173
+ raw = walk_error_message(body)
174
+ # The validation-family wrapper carries a stringified JSON array in
175
+ # `message`. Unstringify and surface a readable summary instead of the
176
+ # opaque `[{"type": "missing", ...}]` blob.
177
+ if raw.is_a?(String) && raw.strip.start_with?("[", "{")
178
+ begin
179
+ require "json"
180
+
181
+ parsed = JSON.parse(raw)
182
+ return walk_error_message(parsed) || raw
183
+ rescue JSON::ParserError
184
+ # not actually JSON — keep the raw string
185
+ end
186
+ end
187
+
188
+ raw
189
+ end
190
+
191
+ # Recursive walk: unwrap each layer (detail / details / error / message),
192
+ # bottoming out at the first string. Handles arbitrary nesting depth so a
193
+ # `details.error` payload that is itself a {message, code} hash doesn't
194
+ # leak into the exception message verbatim.
195
+ #
196
+ # Order matters: we prefer the DEEPEST message (the most specific one).
197
+ # Walk into `details`/`detail`/`error` first; only fall back to the
198
+ # current level's `message` when no deeper string is reachable.
199
+ def walk_error_message(node)
200
+ case node
201
+ when nil
202
+ nil
203
+ when String
204
+ node
205
+ when Array
206
+ return nil if node.empty?
207
+ # FastAPI validation errors arrive as an Array of
208
+ # { type, loc, msg } hashes. Concatenate them into a single line
209
+ # like "msg1 (a.b); msg2 (x.y)" rather than just returning the
210
+ # first `msg` — multiple errors deserve to all surface.
211
+ if node.first.is_a?(Hash)
212
+ formatted = node
213
+ .map do |item|
214
+ msg = item["msg"] || item[:msg]
215
+ loc = item["loc"] || item[:loc]
216
+ if msg && loc.is_a?(Array) && !loc.empty?
217
+ "#{msg} (#{loc.join(".")})"
218
+ else
219
+ msg || walk_error_message(item)
220
+ end
221
+ end
222
+ .compact
223
+ return formatted.join("; ") unless formatted.empty?
224
+ end
225
+
226
+ node.first.to_s
227
+ when Hash
228
+ %w[details detail error].each do |k|
229
+ inner = node[k] || node[k.to_sym]
230
+ next if inner.nil?
231
+ result = walk_error_message(inner)
232
+ return result unless result.nil?
233
+ end
234
+
235
+ msg = node["message"] || node[:message]
236
+ return msg if msg.is_a?(String)
237
+ nil
238
+ else
239
+ node.to_s
240
+ end
241
+ end
242
+
243
+ def extract_error_code(body)
244
+ walk_error_code(body)
245
+ end
246
+
247
+ # Prefer the deepest code (same logic as walk_error_message). The outer
248
+ # envelope's code is generic ("HTTP_EXCEPTION"); deeper layers carry the
249
+ # specific one ("TARGET_HAS_NO_INPUT_HANDLE", etc.).
250
+ def walk_error_code(node)
251
+ return nil unless node.is_a?(Hash)
252
+ %w[details detail error].each do |k|
253
+ inner = node[k] || node[k.to_sym]
254
+ next if inner.nil?
255
+ c = walk_error_code(inner)
256
+ return c unless c.nil?
257
+ end
258
+
259
+ code = node["code"] || node[:code]
260
+ code.is_a?(String) ? code : nil
261
+ end
127
262
  end
128
263
  end
@@ -11,12 +11,14 @@ module Retab
11
11
  description: :description
12
12
  }.freeze
13
13
 
14
- attr_accessor \
14
+ attr_accessor(
15
15
  :name,
16
16
  :handle_key,
17
17
  :description
18
+ )
18
19
 
19
20
  def initialize(json)
21
+ super()
20
22
  hash = self.class.normalize(json)
21
23
  @name = hash[:name]
22
24
  @handle_key = hash[:handle_key]
@@ -18,7 +18,7 @@ module Retab
18
18
  created_at: :created_at
19
19
  }.freeze
20
20
 
21
- attr_accessor \
21
+ attr_accessor(
22
22
  :id,
23
23
  :file,
24
24
  :model,
@@ -29,8 +29,10 @@ module Retab
29
29
  :consensus,
30
30
  :usage,
31
31
  :created_at
32
+ )
32
33
 
33
34
  def initialize(json)
35
+ super()
34
36
  hash = self.class.normalize(json)
35
37
  @id = hash[:id]
36
38
  @file = hash[:file] ? Retab::FileRef.new(hash[:file]) : nil
@@ -10,11 +10,13 @@ module Retab
10
10
  likelihoods: :likelihoods
11
11
  }.freeze
12
12
 
13
- attr_accessor \
13
+ attr_accessor(
14
14
  :choices,
15
15
  :likelihoods
16
+ )
16
17
 
17
18
  def initialize(json)
19
+ super()
18
20
  hash = self.class.normalize(json)
19
21
  @choices = (hash[:choices] || []).map { |item| item ? Retab::ClassificationDecision.new(item) : nil }
20
22
  @likelihoods = hash[:likelihoods]
@@ -10,11 +10,13 @@ module Retab
10
10
  category: :category
11
11
  }.freeze
12
12
 
13
- attr_accessor \
13
+ attr_accessor(
14
14
  :reasoning,
15
15
  :category
16
+ )
16
17
 
17
18
  def initialize(json)
19
+ super()
18
20
  hash = self.class.normalize(json)
19
21
  @reasoning = hash[:reasoning]
20
22
  @category = hash[:category]
@@ -15,7 +15,7 @@ module Retab
15
15
  bust_cache: :bust_cache
16
16
  }.freeze
17
17
 
18
- attr_accessor \
18
+ attr_accessor(
19
19
  :document,
20
20
  :categories,
21
21
  :model,
@@ -23,8 +23,10 @@ module Retab
23
23
  :instructions,
24
24
  :n_consensus,
25
25
  :bust_cache
26
+ )
26
27
 
27
28
  def initialize(json)
29
+ super()
28
30
  hash = self.class.normalize(json)
29
31
  @document = hash[:document] ? Retab::MimeData.new(hash[:document]) : nil
30
32
  @categories = (hash[:categories] || []).map { |item| item ? Retab::Category.new(item) : nil }
@@ -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 Classifications
@@ -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::Classification>]
22
+ # @return [Retab::PaginatedList<Retab::Classification>]
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/classifications',
44
+ path: "/v1/classifications",
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::Classification,
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
@@ -88,23 +95,27 @@ module Retab
88
95
  )
89
96
  document = Retab::MimeData.coerce(document) unless document.nil?
90
97
  body = {
91
- 'document' => document,
92
- 'categories' => categories,
93
- 'model' => model,
94
- 'first_n_pages' => first_n_pages,
95
- 'instructions' => instructions,
96
- 'n_consensus' => n_consensus,
97
- 'bust_cache' => bust_cache
98
+ "document" => document,
99
+ "categories" => categories,
100
+ "model" => model,
101
+ "first_n_pages" => first_n_pages,
102
+ "instructions" => instructions,
103
+ "n_consensus" => n_consensus,
104
+ "bust_cache" => bust_cache
98
105
  }.compact
99
106
  response = @client.request(
100
107
  method: :post,
101
- path: '/v1/classifications',
108
+ path: "/v1/classifications",
102
109
  auth: true,
103
110
  body: body,
104
111
  request_options: request_options
105
112
  )
106
113
  result = Retab::Classification.new(response.body)
107
- 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"])
114
+ result.last_response = Retab::Types::ApiResponse.new(
115
+ http_status: response.code.to_i,
116
+ http_headers: response.each_header.to_h,
117
+ request_id: response["x-request-id"]
118
+ )
108
119
  result
109
120
  end
110
121
 
@@ -123,7 +134,11 @@ module Retab
123
134
  request_options: request_options
124
135
  )
125
136
  result = Retab::Classification.new(response.body)
126
- 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"])
137
+ result.last_response = Retab::Types::ApiResponse.new(
138
+ http_status: response.code.to_i,
139
+ http_headers: response.each_header.to_h,
140
+ request_id: response["x-request-id"]
141
+ )
127
142
  result
128
143
  end
129
144
 
@@ -135,7 +150,7 @@ module Retab
135
150
  classification_id:,
136
151
  request_options: {}
137
152
  )
138
- response = @client.request(
153
+ @client.request(
139
154
  method: :delete,
140
155
  path: "/v1/classifications/#{Retab::Util.encode_path(classification_id)}",
141
156
  auth: true,
data/lib/retab/client.rb CHANGED
@@ -33,78 +33,10 @@ module Retab
33
33
  @files ||= Retab::Files.new(self)
34
34
  end
35
35
 
36
- def workflow_runs
37
- @workflow_runs ||= Retab::WorkflowRuns.new(self)
38
- end
39
-
40
- def workflow_steps
41
- @workflow_steps ||= Retab::WorkflowSteps.new(self)
42
- end
43
-
44
- def workflow_reviews
45
- @workflow_reviews ||= Retab::WorkflowReviews.new(self)
46
- end
47
-
48
- def workflow_review_versions
49
- @workflow_review_versions ||= Retab::WorkflowReviewVersions.new(self)
50
- end
51
-
52
- def workflow_artifacts
53
- @workflow_artifacts ||= Retab::WorkflowArtifacts.new(self)
54
- end
55
-
56
- def workflow_test_runs
57
- @workflow_test_runs ||= Retab::WorkflowTestRuns.new(self)
58
- end
59
-
60
- def workflow_test_run_results
61
- @workflow_test_run_results ||= Retab::WorkflowTestRunResults.new(self)
62
- end
63
-
64
- def workflow_blocks
65
- @workflow_blocks ||= Retab::WorkflowBlocks.new(self)
66
- end
67
-
68
- def workflow_edges
69
- @workflow_edges ||= Retab::WorkflowEdges.new(self)
70
- end
71
-
72
- def workflow_tests
73
- @workflow_tests ||= Retab::WorkflowTests.new(self)
74
- end
75
-
76
- def experiment_runs
77
- @experiment_runs ||= Retab::ExperimentRuns.new(self)
78
- end
79
-
80
- def experiment_run_results
81
- @experiment_run_results ||= Retab::ExperimentRunResults.new(self)
82
- end
83
-
84
- def experiment_run_metrics
85
- @experiment_run_metrics ||= Retab::ExperimentRunMetrics.new(self)
86
- end
87
-
88
- def workflow_experiments
89
- @workflow_experiments ||= Retab::WorkflowExperiments.new(self)
90
- end
91
-
92
- def workflow_block_executions
93
- @workflow_block_executions ||= Retab::WorkflowBlockExecutions.new(self)
94
- end
95
-
96
36
  def workflows
97
37
  @workflows ||= Retab::Workflows.new(self)
98
38
  end
99
39
 
100
- def workflow_specs
101
- @workflow_specs ||= Retab::WorkflowSpecs.new(self)
102
- end
103
-
104
- def edit_templates
105
- @edit_templates ||= Retab::EditTemplates.new(self)
106
- end
107
-
108
40
  def edits
109
41
  @edits ||= Retab::Edits.new(self)
110
42
  end
@@ -1,22 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
3
5
  # @oagen-ignore-file
4
6
  #
5
- # Hand-maintained configuration. Mirrors the spec-derived resources' usage
6
- # of `@client.api_key` and friends.
7
+ # Hand-maintained configuration. The spec-driven resources read `@client.api_key`
8
+ # and friends; defaults here drive that.
7
9
 
8
10
  module Retab
9
11
  class Configuration
10
- DEFAULT_API_HOST = 'https://api.retab.com'
12
+ DEFAULT_API_HOST = "https://api.retab.com"
11
13
 
12
14
  attr_accessor :api_key, :api_host, :timeout, :max_retries, :user_agent
13
15
 
14
- def initialize(api_key: nil, api_host: nil, timeout: nil, max_retries: nil, user_agent: nil)
16
+ def initialize(api_key: nil, api_host: nil, base_url: nil, timeout: nil, max_retries: nil, user_agent: nil)
15
17
  @api_key = api_key
16
- @api_host = api_host || DEFAULT_API_HOST
18
+ @api_host = api_host || base_url || DEFAULT_API_HOST
17
19
  @timeout = timeout || 60
18
20
  @max_retries = max_retries || 3
19
- @user_agent = user_agent || "retab-ruby/#{Retab::VERSION rescue '0.1.0'}"
21
+ @user_agent = user_agent || "retab-ruby/#{Retab::VERSION rescue "0.1.0"}"
20
22
  end
21
23
  end
22
24
  end
@@ -11,12 +11,14 @@ module Retab
11
11
  form_fields: :form_fields
12
12
  }.freeze
13
13
 
14
- attr_accessor \
14
+ attr_accessor(
15
15
  :name,
16
16
  :document,
17
17
  :form_fields
18
+ )
18
19
 
19
20
  def initialize(json)
21
+ super()
20
22
  hash = self.class.normalize(json)
21
23
  @name = hash[:name]
22
24
  @document = hash[:document] ? Retab::MimeData.new(hash[:document]) : nil
@@ -15,7 +15,7 @@ module Retab
15
15
  updated_at: :updated_at
16
16
  }.freeze
17
17
 
18
- attr_accessor \
18
+ attr_accessor(
19
19
  :id,
20
20
  :name,
21
21
  :file,
@@ -23,8 +23,10 @@ module Retab
23
23
  :field_count,
24
24
  :created_at,
25
25
  :updated_at
26
+ )
26
27
 
27
28
  def initialize(json)
29
+ super()
28
30
  hash = self.class.normalize(json)
29
31
  @id = hash[:id]
30
32
  @name = hash[:name]
@@ -10,11 +10,13 @@ module Retab
10
10
  form_fields: :form_fields
11
11
  }.freeze
12
12
 
13
- attr_accessor \
13
+ attr_accessor(
14
14
  :name,
15
15
  :form_fields
16
+ )
16
17
 
17
18
  def initialize(json)
19
+ super()
18
20
  hash = self.class.normalize(json)
19
21
  @name = hash[:name]
20
22
  @form_fields = (hash[:form_fields] || []).map { |item| item ? Retab::FormField.new(item) : nil }