roar-cli 0.4.3__tar.gz → 0.4.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. {roar_cli-0.4.3 → roar_cli-0.4.4}/PKG-INFO +2 -2
  2. {roar_cli-0.4.3 → roar_cli-0.4.4}/pyproject.toml +3 -3
  3. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/collection.py +28 -0
  4. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/lineage_composites.py +2 -0
  5. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/put_composites.py +11 -1
  6. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/put_execution.py +94 -50
  7. roar_cli-0.4.4/roar/application/publish/put_preparation.py +434 -0
  8. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/register_execution.py +162 -41
  9. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/register_preparation.py +6 -0
  10. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/registration.py +19 -2
  11. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/remote_job_uids.py +21 -0
  12. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/requests.py +3 -1
  13. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/service.py +29 -5
  14. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/session.py +96 -7
  15. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproduce/requests.py +5 -0
  16. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproduce/service.py +29 -1
  17. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproducibility/report.py +5 -2
  18. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/execution.py +2 -0
  19. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/service.py +1 -0
  20. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/attach.py +1 -1
  21. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/fragment_reconstituter.py +3 -3
  22. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/submit.py +1 -0
  23. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/collector.py +21 -7
  24. roar_cli-0.4.4/roar/backends/ray/constants.py +33 -0
  25. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/fragment.py +4 -0
  26. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/fragment_reconstituter.py +75 -9
  27. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/roar_worker.py +110 -0
  28. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/submit.py +3 -0
  29. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/init.py +61 -0
  30. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/register.py +15 -13
  31. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/reproduce.py +24 -0
  32. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/publish_intent.py +13 -0
  33. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/registration.py +3 -0
  34. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/provenance.py +3 -0
  35. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/run.py +1 -0
  36. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/schema.py +54 -1
  37. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/reconstitution.py +23 -1
  38. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/framework/contract.py +2 -1
  39. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/framework/planning.py +2 -0
  40. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/assembler.py +1 -0
  41. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/data_loader.py +3 -0
  42. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/service.py +24 -0
  43. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/recording/job_recording.py +2 -0
  44. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/reproduction/environment_setup.py +79 -15
  45. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/reproduction/installers.py +38 -1
  46. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/reproduction/pipeline_executor.py +41 -8
  47. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/reproduction/pipeline_metadata.py +11 -0
  48. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/coordinator.py +21 -1
  49. roar_cli-0.4.4/roar/execution/runtime/inject/sitecustomize.py +298 -0
  50. roar_cli-0.4.4/roar/execution/runtime/inject/tracker.py +507 -0
  51. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/lazy_install.py +3 -3
  52. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/tracer.py +11 -2
  53. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/filters/omit.py +23 -2
  54. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/config/access.py +2 -0
  55. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/config/raw.py +2 -0
  56. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/config/schema.py +4 -0
  57. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/client.py +59 -3
  58. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/registration/artifact.py +2 -20
  59. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/registration/coordinator.py +8 -1
  60. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/registration/job.py +15 -2
  61. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/wandb_trackio.py +26 -0
  62. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/publish_auth.py +49 -9
  63. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/daemon.rs +45 -20
  64. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/ipc.rs +50 -3
  65. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/main.rs +1 -0
  66. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/src/main.rs +52 -13
  67. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ptrace/src/main.rs +30 -4
  68. roar_cli-0.4.3/roar/application/publish/put_preparation.py +0 -125
  69. roar_cli-0.4.3/roar/backends/ray/constants.py +0 -17
  70. roar_cli-0.4.3/roar/execution/runtime/inject/sitecustomize.py +0 -145
  71. roar_cli-0.4.3/roar/execution/runtime/inject/tracker.py +0 -227
  72. {roar_cli-0.4.3 → roar_cli-0.4.4}/LICENSE +0 -0
  73. {roar_cli-0.4.3 → roar_cli-0.4.4}/README.md +0 -0
  74. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/__init__.py +0 -0
  75. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/__main__.py +0 -0
  76. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/analyzers/__init__.py +0 -0
  77. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/analyzers/base.py +0 -0
  78. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/analyzers/experiment_trackers.py +0 -0
  79. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/__init__.py +0 -0
  80. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/composite/__init__.py +0 -0
  81. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/composite/canonical.py +0 -0
  82. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/composite/detect.py +0 -0
  83. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/composite/qualifying.py +0 -0
  84. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/get/__init__.py +0 -0
  85. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/get/requests.py +0 -0
  86. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/get/results.py +0 -0
  87. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/get/service.py +0 -0
  88. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/get/transfer.py +0 -0
  89. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/git.py +0 -0
  90. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/label_rendering.py +0 -0
  91. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/labels.py +0 -0
  92. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/lookup/__init__.py +0 -0
  93. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/lookup/models.py +0 -0
  94. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/lookup/policy.py +0 -0
  95. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/lookup/refs.py +0 -0
  96. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/lookup/remote_artifacts.py +0 -0
  97. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/lookup/runner.py +0 -0
  98. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/__init__.py +0 -0
  99. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/anchor_attribution.py +0 -0
  100. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/blake3_upgrade.py +0 -0
  101. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/composite_builder.py +0 -0
  102. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/composites.py +0 -0
  103. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/datasets.py +0 -0
  104. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/form_composites.py +0 -0
  105. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/git_remote.py +0 -0
  106. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/job_links.py +0 -0
  107. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/job_preparation.py +0 -0
  108. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/lineage.py +0 -0
  109. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/lineage_composite_formation.py +0 -0
  110. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/metadata.py +0 -0
  111. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/register_preview_jobs.py +0 -0
  112. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/register_tag_push.py +0 -0
  113. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/registration_package.py +0 -0
  114. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/remote_registry.py +0 -0
  115. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/results.py +0 -0
  116. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/runtime.py +0 -0
  117. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/secrets.py +0 -0
  118. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/source_resolution.py +0 -0
  119. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/targets.py +0 -0
  120. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/publish/view_edges.py +0 -0
  121. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/__init__.py +0 -0
  122. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/dag.py +0 -0
  123. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/db_status.py +0 -0
  124. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/diff.py +0 -0
  125. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/diff_engine.py +0 -0
  126. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/diff_graph.py +0 -0
  127. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/diff_refs.py +0 -0
  128. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/git_readiness.py +0 -0
  129. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/inputs.py +0 -0
  130. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/label.py +0 -0
  131. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/lineage.py +0 -0
  132. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/log.py +0 -0
  133. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/requests.py +0 -0
  134. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/results.py +0 -0
  135. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/show.py +0 -0
  136. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/status.py +0 -0
  137. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/query/tag.py +0 -0
  138. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproduce/__init__.py +0 -0
  139. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproduce/environment.py +0 -0
  140. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproduce/lookup.py +0 -0
  141. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproduce/results.py +0 -0
  142. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/reproducibility/__init__.py +0 -0
  143. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/__init__.py +0 -0
  144. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/dag_references.py +0 -0
  145. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/dirty_tree_classify.py +0 -0
  146. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/dirty_tree_error.py +0 -0
  147. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/gitignore_suggest.py +0 -0
  148. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/output_followup.py +0 -0
  149. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/requests.py +0 -0
  150. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/run/verbosity.py +0 -0
  151. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/system_labels.py +0 -0
  152. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/tags.py +0 -0
  153. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/workflow/__init__.py +0 -0
  154. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/workflow/requests.py +0 -0
  155. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/workflow/results.py +0 -0
  156. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/application/workflow/service.py +0 -0
  157. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/auth_store.py +0 -0
  158. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/__init__.py +0 -0
  159. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/__init__.py +0 -0
  160. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/bundles.py +0 -0
  161. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/config.py +0 -0
  162. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/host_execution.py +0 -0
  163. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/lineage.py +0 -0
  164. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/manifest.py +0 -0
  165. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/mount_map.py +0 -0
  166. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/object_io.py +0 -0
  167. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/plugin.py +0 -0
  168. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/pod_entry.py +0 -0
  169. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/rayjob.py +0 -0
  170. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/secret_cleanup.py +0 -0
  171. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/webhook.py +0 -0
  172. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/k8s/workload_wait.py +0 -0
  173. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/local/__init__.py +0 -0
  174. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/local/plugin.py +0 -0
  175. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/__init__.py +0 -0
  176. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/config.py +0 -0
  177. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/export.py +0 -0
  178. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/host_execution.py +0 -0
  179. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/lineage.py +0 -0
  180. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/plugin.py +0 -0
  181. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/runtime_bundle.py +0 -0
  182. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/submit.py +0 -0
  183. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/osmo/workflow.py +0 -0
  184. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/__init__.py +0 -0
  185. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/_agent_names.py +0 -0
  186. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/config.py +0 -0
  187. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/env_contract.py +0 -0
  188. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/node_agent.py +0 -0
  189. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/plugin.py +0 -0
  190. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/proxy_fragments.py +0 -0
  191. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/runtime_hooks.py +0 -0
  192. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/s3_key_paths.py +0 -0
  193. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/backends/ray/submit_context.py +0 -0
  194. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/__init__.py +0 -0
  195. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/_format.py +0 -0
  196. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/_tag_kinds.py +0 -0
  197. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/command_registry.py +0 -0
  198. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/__init__.py +0 -0
  199. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/auth.py +0 -0
  200. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/build.py +0 -0
  201. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/config.py +0 -0
  202. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/dag.py +0 -0
  203. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/db.py +0 -0
  204. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/diff.py +0 -0
  205. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/env.py +0 -0
  206. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/export_registration_package.py +0 -0
  207. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/filter.py +0 -0
  208. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/get.py +0 -0
  209. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/init_agents.py +0 -0
  210. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/inputs.py +0 -0
  211. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/k8s.py +0 -0
  212. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/label.py +0 -0
  213. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/lineage.py +0 -0
  214. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/log.py +0 -0
  215. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/login.py +0 -0
  216. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/logout.py +0 -0
  217. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/osmo.py +0 -0
  218. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/pop.py +0 -0
  219. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/projects.py +0 -0
  220. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/proxy.py +0 -0
  221. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/put.py +0 -0
  222. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/reset.py +0 -0
  223. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/run.py +0 -0
  224. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/scope.py +0 -0
  225. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/session.py +0 -0
  226. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/show.py +0 -0
  227. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/status.py +0 -0
  228. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/tag.py +0 -0
  229. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/telemetry.py +0 -0
  230. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/tracer.py +0 -0
  231. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/tui.py +0 -0
  232. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/whoami.py +0 -0
  233. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/commands/workflow.py +0 -0
  234. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/context.py +0 -0
  235. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/decorators.py +0 -0
  236. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/templates/agents/SKILL.md.tmpl +0 -0
  237. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/cli/templates/agents/agents_section.md.tmpl +0 -0
  238. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/__init__.py +0 -0
  239. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/bootstrap.py +0 -0
  240. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/canonical_session.py +0 -0
  241. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/digests.py +0 -0
  242. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/dto/__init__.py +0 -0
  243. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/dto/registration.py +0 -0
  244. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/exceptions.py +0 -0
  245. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/__init__.py +0 -0
  246. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/config.py +0 -0
  247. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/lineage.py +0 -0
  248. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/logger.py +0 -0
  249. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/presenter.py +0 -0
  250. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/provenance.py +0 -0
  251. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/repositories.py +0 -0
  252. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/reproduction.py +0 -0
  253. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/run.py +0 -0
  254. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/services.py +0 -0
  255. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/telemetry.py +0 -0
  256. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/interfaces/vcs.py +0 -0
  257. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/label_constants.py +0 -0
  258. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/label_origins.py +0 -0
  259. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/logging.py +0 -0
  260. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/__init__.py +0 -0
  261. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/artifact.py +0 -0
  262. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/base.py +0 -0
  263. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/dag.py +0 -0
  264. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/dataset_identifier.py +0 -0
  265. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/glaas.py +0 -0
  266. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/job.py +0 -0
  267. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/lineage.py +0 -0
  268. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/session.py +0 -0
  269. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/telemetry.py +0 -0
  270. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/models/vcs.py +0 -0
  271. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/operation_metadata.py +0 -0
  272. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/session_hash.py +0 -0
  273. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/step_name.py +0 -0
  274. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/tracer_modes.py +0 -0
  275. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/core/validation.py +0 -0
  276. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/__init__.py +0 -0
  277. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/context.py +0 -0
  278. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/engine.py +0 -0
  279. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/hashing/__init__.py +0 -0
  280. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/hashing/backend.py +0 -0
  281. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/hashing/blake3.py +0 -0
  282. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/models.py +0 -0
  283. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/query_context.py +0 -0
  284. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/__init__.py +0 -0
  285. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/artifact.py +0 -0
  286. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/collection.py +0 -0
  287. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/composite.py +0 -0
  288. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/hash_cache.py +0 -0
  289. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/job.py +0 -0
  290. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/label.py +0 -0
  291. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/repositories/session.py +0 -0
  292. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/services/__init__.py +0 -0
  293. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/services/hashing.py +0 -0
  294. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/services/job_recording.py +0 -0
  295. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/services/lineage.py +0 -0
  296. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/services/session.py +0 -0
  297. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/db/step_priority.py +0 -0
  298. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/__init__.py +0 -0
  299. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/cluster/__init__.py +0 -0
  300. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/cluster/bridge.py +0 -0
  301. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/cluster/proxy.py +0 -0
  302. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/cluster/proxy_config.py +0 -0
  303. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/__init__.py +0 -0
  304. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/export.py +0 -0
  305. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/lineage.py +0 -0
  306. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/models.py +0 -0
  307. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/sessions.py +0 -0
  308. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/fragments/transport.py +0 -0
  309. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/framework/__init__.py +0 -0
  310. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/framework/registry.py +0 -0
  311. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/framework/runtime_imports.py +0 -0
  312. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/__init__.py +0 -0
  313. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/build_pip_collector.py +0 -0
  314. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/build_tool_collector.py +0 -0
  315. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/file_filter.py +0 -0
  316. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/package_collector.py +0 -0
  317. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/process_summarizer.py +0 -0
  318. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/provenance/runtime_collector.py +0 -0
  319. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/recording/__init__.py +0 -0
  320. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/recording/dataset_identifier.py +0 -0
  321. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/recording/dataset_metadata.py +0 -0
  322. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/recording/dataset_profile.py +0 -0
  323. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/reproduction/__init__.py +0 -0
  324. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/__init__.py +0 -0
  325. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/abi_probe.py +0 -0
  326. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/active_runs.py +0 -0
  327. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/backup.py +0 -0
  328. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/driver_entrypoint.py +0 -0
  329. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/errors.py +0 -0
  330. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/host_execution.py +0 -0
  331. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/inject/__init__.py +0 -0
  332. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/inject/support.py +0 -0
  333. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/proxy_resource.py +0 -0
  334. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/resources.py +0 -0
  335. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/signal_handler.py +0 -0
  336. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/tracer_backends.py +0 -0
  337. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/tracer_banner.py +0 -0
  338. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/execution/runtime/worker_bootstrap.py +0 -0
  339. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/filters/__init__.py +0 -0
  340. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/filters/files.py +0 -0
  341. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/glaas_auth.py +0 -0
  342. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/glaas_client.py +0 -0
  343. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/__init__.py +0 -0
  344. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/bootstrap.py +0 -0
  345. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/config/__init__.py +0 -0
  346. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/config/loader.py +0 -0
  347. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/discovery.py +0 -0
  348. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/__init__.py +0 -0
  349. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/base.py +0 -0
  350. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/gcs.py +0 -0
  351. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/get.py +0 -0
  352. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/hf.py +0 -0
  353. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/http.py +0 -0
  354. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/noop.py +0 -0
  355. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/download/s3.py +0 -0
  356. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/git/__init__.py +0 -0
  357. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/git/base.py +0 -0
  358. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/git/context.py +0 -0
  359. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/git/provider.py +0 -0
  360. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/__init__.py +0 -0
  361. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/auth.py +0 -0
  362. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/fragment_streamer.py +0 -0
  363. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/registration/__init__.py +0 -0
  364. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/registration/_artifact_ref.py +0 -0
  365. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/registration/session.py +0 -0
  366. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/glaas/transport.py +0 -0
  367. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/registry.py +0 -0
  368. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/resolution.py +0 -0
  369. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/__init__.py +0 -0
  370. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/base.py +0 -0
  371. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/gcs.py +0 -0
  372. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/hf.py +0 -0
  373. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/memory.py +0 -0
  374. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/noop.py +0 -0
  375. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/publish.py +0 -0
  376. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/storage/s3.py +0 -0
  377. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/telemetry/__init__.py +0 -0
  378. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/telemetry/base.py +0 -0
  379. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/integrations/telemetry/wandb.py +0 -0
  380. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/__init__.py +0 -0
  381. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/console.py +0 -0
  382. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/dag_data_builder.py +0 -0
  383. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/dag_renderer.py +0 -0
  384. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/diff_renderer.py +0 -0
  385. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/formatting.py +0 -0
  386. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/null.py +0 -0
  387. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/run_report.py +0 -0
  388. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/show_renderer.py +0 -0
  389. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/spinner.py +0 -0
  390. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/presenters/terminal.py +0 -0
  391. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/require.py +0 -0
  392. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/scope_config.py +0 -0
  393. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/__init__.py +0 -0
  394. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/_io.py +0 -0
  395. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/capabilities.py +0 -0
  396. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/config.py +0 -0
  397. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/hooks.py +0 -0
  398. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/install.py +0 -0
  399. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/paths.py +0 -0
  400. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/payload.py +0 -0
  401. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/queue.py +0 -0
  402. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/stats.py +0 -0
  403. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/telemetry/uploader.py +0 -0
  404. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/__init__.py +0 -0
  405. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/app.py +0 -0
  406. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/data.py +0 -0
  407. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/__init__.py +0 -0
  408. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/config_editor.py +0 -0
  409. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/label_editor.py +0 -0
  410. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/launcher.py +0 -0
  411. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/log.py +0 -0
  412. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/main.py +0 -0
  413. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/search.py +0 -0
  414. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/screens/session_picker.py +0 -0
  415. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/tmux.py +0 -0
  416. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/widgets/__init__.py +0 -0
  417. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/tui/widgets/detail.py +0 -0
  418. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/utils/__init__.py +0 -0
  419. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/utils/cloud.py +0 -0
  420. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/utils/git_url.py +0 -0
  421. {roar_cli-0.4.3 → roar_cli-0.4.4}/roar/version_check.py +0 -0
  422. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/Cargo.lock +0 -0
  423. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/Cargo.toml +0 -0
  424. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/artifact-hash-core/Cargo.toml +0 -0
  425. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/artifact-hash-core/src/lib.rs +0 -0
  426. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/artifact-hash-py/Cargo.toml +0 -0
  427. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/artifact-hash-py/src/lib.rs +0 -0
  428. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/tracer-fd/Cargo.toml +0 -0
  429. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/tracer-fd/src/lib.rs +0 -0
  430. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/tracer-runtime/Cargo.toml +0 -0
  431. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/tracer-runtime/src/lib.rs +0 -0
  432. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/tracer-schema/Cargo.toml +0 -0
  433. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/crates/tracer-schema/src/lib.rs +0 -0
  434. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/services/proxy/Cargo.lock +0 -0
  435. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/services/proxy/Cargo.toml +0 -0
  436. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/services/proxy/src/forward.rs +0 -0
  437. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/services/proxy/src/main.rs +0 -0
  438. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/services/proxy/src/s3.rs +0 -0
  439. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/common/Cargo.toml +0 -0
  440. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/common/src/lib.rs +0 -0
  441. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/probe/Cargo.toml +0 -0
  442. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/probe/rust-toolchain.toml +0 -0
  443. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/probe/src/main.rs +0 -0
  444. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/Cargo.toml +0 -0
  445. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/build.rs +0 -0
  446. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/attach.rs +0 -0
  447. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/bin/roard.rs +0 -0
  448. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/client.rs +0 -0
  449. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/events.rs +0 -0
  450. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/lib.rs +0 -0
  451. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ebpf/userspace/src/state.rs +0 -0
  452. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/Cargo.toml +0 -0
  453. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/build.rs +0 -0
  454. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/src/bin/io_fixture.rs +0 -0
  455. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/src/interpose.c +0 -0
  456. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/src/ipc.rs +0 -0
  457. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/src/lib.rs +0 -0
  458. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/tests/comprehensive.rs +0 -0
  459. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/preload/tests/standalone.rs +0 -0
  460. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ptrace/Cargo.toml +0 -0
  461. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ptrace/rustfmt.toml +0 -0
  462. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ptrace/src/arch.rs +0 -0
  463. {roar_cli-0.4.3 → roar_cli-0.4.4}/rust/tracers/ptrace/src/seccomp.rs +0 -0
  464. {roar_cli-0.4.3 → roar_cli-0.4.4}/scripts/sync_packaged_rust_artifacts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roar-cli
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Intended Audience :: Science/Research
@@ -25,6 +25,7 @@ Requires-Dist: pydantic>=2.0.0
25
25
  Requires-Dist: pydantic-settings>=2.0.0
26
26
  Requires-Dist: textual>=0.80
27
27
  Requires-Dist: tomli>=2.0.0 ; python_full_version < '3.11'
28
+ Requires-Dist: huggingface-hub>=0.20.0
28
29
  Requires-Dist: pytest>=7.0.0 ; extra == 'dev'
29
30
  Requires-Dist: pytest-timeout>=2.0.0 ; extra == 'dev'
30
31
  Requires-Dist: pytest-mock>=3.10.0 ; extra == 'dev'
@@ -34,7 +35,6 @@ Requires-Dist: ruff>=0.8.0 ; extra == 'dev'
34
35
  Requires-Dist: mypy>=1.13.0 ; extra == 'dev'
35
36
  Requires-Dist: boto3>=1.28.0 ; extra == 'dev'
36
37
  Requires-Dist: google-cloud-storage>=2.10.0 ; extra == 'dev'
37
- Requires-Dist: huggingface-hub>=0.20.0 ; extra == 'dev'
38
38
  Provides-Extra: dev
39
39
  License-File: LICENSE
40
40
  Summary: Reproducibility and provenance tracker for ML training pipelines
@@ -5,7 +5,7 @@ build-backend = "maturin"
5
5
 
6
6
  [project]
7
7
  name = "roar-cli"
8
- version = "0.4.3"
8
+ version = "0.4.4"
9
9
  description = "Reproducibility and provenance tracker for ML training pipelines"
10
10
  authors = [
11
11
  { name="TReqs Team", email="info@treqs.ai" }
@@ -49,6 +49,7 @@ dependencies = [
49
49
  "pydantic-settings>=2.0.0",
50
50
  "textual>=0.80",
51
51
  "tomli>=2.0.0; python_version < '3.11'",
52
+ "huggingface_hub>=0.20.0", # `roar put hf://` is a shipped path, not dev-only (P0-19)
52
53
  ]
53
54
 
54
55
  [project.urls]
@@ -68,7 +69,6 @@ dev = [
68
69
  "mypy>=1.13.0",
69
70
  "boto3>=1.28.0",
70
71
  "google-cloud-storage>=2.10.0",
71
- "huggingface_hub>=0.20.0",
72
72
  ]
73
73
 
74
74
  [project.scripts]
@@ -129,7 +129,7 @@ markers = [
129
129
  "ray_contract: User-facing Ray contract tests using `roar run ray job submit ...`",
130
130
  "ray_diagnostic: Diagnostic Ray tests that intentionally inspect internal runtime details",
131
131
  ]
132
- addopts = "-v --strict-markers -n auto --dist loadfile --ignore=tests/ebpf --ignore=tests/live_glaas --ignore=tests/benchmarks --ignore=tests/e2e --ignore=tests/integration/test_cli_startup.py --ignore=tests/execution/runtime/test_sitecustomize_perf.py --ignore-glob=tests/backends/*/e2e --ignore-glob=tests/backends/*/live"
132
+ addopts = "-v --strict-markers -n auto --dist loadfile --ignore=tests/ebpf --ignore=tests/live_glaas --ignore=tests/benchmarks --ignore=tests/e2e --ignore=tests/backends/osmo --ignore=tests/integration/test_cli_startup.py --ignore=tests/execution/runtime/test_sitecustomize_perf.py --ignore-glob=tests/backends/*/e2e --ignore-glob=tests/backends/*/live"
133
133
  timeout = 60
134
134
  filterwarnings = [
135
135
  "ignore::DeprecationWarning",
@@ -44,6 +44,11 @@ def collect_register_lineage(
44
44
  dry_run: bool = False,
45
45
  ) -> tuple[CollectedRegisterLineage | None, str | None]:
46
46
  """Collect local lineage for a resolved register target."""
47
+ if target.kind == "active_session":
48
+ return _collect_active_session_lineage(
49
+ roar_dir=roar_dir,
50
+ lineage_collector=lineage_collector,
51
+ )
47
52
  if target.kind == "step_reference":
48
53
  return _collect_step_lineage(
49
54
  step_reference=target.value,
@@ -81,6 +86,29 @@ def collect_register_lineage(
81
86
  return None, f"Unsupported register target type: {target.kind}"
82
87
 
83
88
 
89
+ def _collect_active_session_lineage(
90
+ *,
91
+ roar_dir: Path,
92
+ lineage_collector: LineageCollector,
93
+ ) -> tuple[CollectedRegisterLineage | None, str | None]:
94
+ with create_database_context(roar_dir) as db_ctx:
95
+ session = db_ctx.sessions.get_active()
96
+ if not session:
97
+ return None, "No active session. Run 'roar run' to create a session first."
98
+ session_id = int(session["id"])
99
+ lineage = lineage_collector.collect_session(session_id, roar_dir)
100
+
101
+ return (
102
+ CollectedRegisterLineage(
103
+ lineage=lineage,
104
+ session_id=session_id,
105
+ artifact_hash="",
106
+ session_hash_override=None,
107
+ ),
108
+ None,
109
+ )
110
+
111
+
84
112
  def _collect_step_lineage(
85
113
  *,
86
114
  step_reference: str,
@@ -54,6 +54,7 @@ def preregister_lineage_composites_with_glaas(
54
54
  registration_errors: list[str],
55
55
  composite_builder: Any,
56
56
  logger: ILogger,
57
+ registration_session_id: str | None = None,
57
58
  ) -> list[dict[str, Any]]:
58
59
  """Prepare and preregister lineage composites before batch link resolution."""
59
60
  payloads = build_lineage_composite_payloads(
@@ -68,6 +69,7 @@ def preregister_lineage_composites_with_glaas(
68
69
  payloads=payloads,
69
70
  registration_errors=registration_errors,
70
71
  logger=logger,
72
+ registration_session_id=registration_session_id,
71
73
  )
72
74
 
73
75
 
@@ -39,6 +39,7 @@ def preregister_put_lineage_composites_with_glaas(
39
39
  dataset_identifiers: list[dict[str, Any]] | None,
40
40
  composite_builder: Any,
41
41
  logger: ILogger,
42
+ registration_session_id: str | None = None,
42
43
  ) -> list[dict[str, Any]]:
43
44
  """Prepare and preregister lineage composites for the put workflow."""
44
45
  payloads = build_put_lineage_composite_payloads(
@@ -55,6 +56,7 @@ def preregister_put_lineage_composites_with_glaas(
55
56
  payloads=payloads,
56
57
  registration_errors=registration_errors,
57
58
  logger=logger,
59
+ registration_session_id=registration_session_id,
58
60
  )
59
61
 
60
62
 
@@ -164,6 +166,7 @@ def register_put_composites_with_glaas(
164
166
  registration_errors: list[str],
165
167
  dataset_identifiers: list[dict[str, Any]] | None,
166
168
  logger: ILogger,
169
+ registration_session_id: str | None = None,
167
170
  ) -> list[dict[str, Any]]:
168
171
  """Register generated composite artifacts with GLaaS and persist local state."""
169
172
  composite_registrations: list[dict[str, Any]] = []
@@ -186,7 +189,14 @@ def register_put_composites_with_glaas(
186
189
  if metadata_json is not None:
187
190
  payload["metadata"] = metadata_json
188
191
 
189
- response = resolved_remote_registry.register_composite_artifact(payload)
192
+ response = (
193
+ resolved_remote_registry.client.register_composite_artifact_under_registration_session(
194
+ registration_session_id,
195
+ payload,
196
+ )
197
+ if registration_session_id
198
+ else resolved_remote_registry.register_composite_artifact(payload)
199
+ )
190
200
  result, error = parse_composite_registration_response(response)
191
201
 
192
202
  composite_registration: dict[str, Any] = {
@@ -19,7 +19,7 @@ from ...application.publish.composite_builder import CompositeArtifactBuilder
19
19
  from ...application.publish.composites import build_publish_composite_results
20
20
  from ...application.publish.lineage import LineageCollector
21
21
  from ...application.publish.metadata import build_put_operation_metadata_json
22
- from ...application.publish.put_preparation import PreparedPutExecution
22
+ from ...application.publish.put_preparation import DelegatedPutOperation, PreparedPutExecution
23
23
  from ...application.publish.registration import (
24
24
  normalize_registration_hashes,
25
25
  normalize_registration_source_type,
@@ -220,6 +220,7 @@ class PutService:
220
220
  session_hash = prepared.session_hash
221
221
  registration_session_id = prepared.registration_session_id
222
222
  registration_session_mode = prepared.registration_session_mode
223
+ registration_session_status = prepared.registration_session_status
223
224
  git_context = prepared.git_context
224
225
  resolved = prepared.resolved_sources
225
226
  destination_type = prepared.destination_type
@@ -246,12 +247,31 @@ class PutService:
246
247
  would_upload=[PutDryRunItem(path=str(r.path), exists=r.exists) for r in resolved],
247
248
  )
248
249
 
250
+ # Delegated broker sessions use a deterministic client-session id. If a
251
+ # previous attempt reached finalize but the caller lost the response,
252
+ # create/resume returns the closed session and its authoritative receipt.
253
+ # Treat that as a completed retry before hashing or uploading anything;
254
+ # closed registration-session capabilities cannot accept more staging and
255
+ # re-uploading large artifacts would be both wasteful and misleading.
256
+ if registration_session_id and registration_session_status == "closed":
257
+ self._logger.debug(
258
+ "Put publication already finalized for registration session %s",
259
+ registration_session_id,
260
+ )
261
+ return PutResult(
262
+ success=True,
263
+ session_hash=session_hash,
264
+ session_url=prepared.session_url,
265
+ )
266
+
249
267
  # Process each file: hash, create artifact, upload
250
268
  uploads: list[_UploadedArtifact] = []
251
269
  composite_registrations: list[dict[str, Any]] = []
252
270
  lineage_composite_registrations: list[dict[str, Any]] = []
253
- with Spinner(f"Hashing {len(resolved)} file(s)..."):
254
- hashes_by_path = self._hash_files_batch([source.path for source in resolved])
271
+ hashes_by_path = prepared.source_hashes
272
+ if not hashes_by_path:
273
+ with Spinner(f"Hashing {len(resolved)} file(s)..."):
274
+ hashes_by_path = self._hash_files_batch([source.path for source in resolved])
255
275
 
256
276
  # Uploads are the long pole of a put (multi-GB artifacts to S3/GCS); show a
257
277
  # live N/M + cumulative-bytes counter rather than a dead terminal.
@@ -324,8 +344,11 @@ class PutService:
324
344
  )
325
345
 
326
346
  # Collect lineage for all uploaded artifacts (merged)
327
- collector = self._lineage_collector or LineageCollector()
328
- lineage = collector.collect(artifact_hashes, self._roar_dir)
347
+ if prepared.lineage is not None:
348
+ lineage = prepared.lineage
349
+ else:
350
+ collector = self._lineage_collector or LineageCollector()
351
+ lineage = collector.collect(artifact_hashes, self._roar_dir)
329
352
  self._logger.debug(
330
353
  "Lineage collected: %d job(s), %d artifact(s)",
331
354
  len(lineage.jobs),
@@ -340,6 +363,7 @@ class PutService:
340
363
  coordinator=coordinator,
341
364
  registration_session_id=registration_session_id,
342
365
  registration_session_mode=registration_session_mode,
366
+ delegated_put_operation=prepared.delegated_put_operation,
343
367
  session_id=session_id,
344
368
  fallback_session_hash=session_hash or "",
345
369
  git_context=git_context,
@@ -600,6 +624,7 @@ class PutService:
600
624
  coordinator: RegistrationCoordinator,
601
625
  registration_session_id: str,
602
626
  registration_session_mode: str | None,
627
+ delegated_put_operation: DelegatedPutOperation | None,
603
628
  session_id: int,
604
629
  fallback_session_hash: str,
605
630
  git_context: GitContext,
@@ -643,18 +668,30 @@ class PutService:
643
668
  timestamp=time.time(),
644
669
  )
645
670
 
646
- step_number = self._db.sessions.get_next_step_number(session_id)
647
- job_id, job_uid = self._db.jobs.create(
648
- command=command,
649
- timestamp=time.time(),
650
- session_id=session_id,
651
- step_number=step_number,
652
- metadata=provisional_metadata_json,
653
- execution_backend="local",
654
- execution_role="host",
655
- job_type="put",
656
- exit_code=0,
671
+ stable_put_job_uid = (
672
+ delegated_put_operation.put_job_uid if delegated_put_operation is not None else None
673
+ )
674
+ existing_put_job = (
675
+ self._db.jobs.get_by_uid(stable_put_job_uid) if stable_put_job_uid else None
657
676
  )
677
+ if existing_put_job is not None:
678
+ job_id = int(existing_put_job["id"])
679
+ job_uid = str(existing_put_job["job_uid"])
680
+ step_number = int(existing_put_job.get("step_number") or 0)
681
+ else:
682
+ step_number = self._db.sessions.get_next_step_number(session_id)
683
+ job_id, job_uid = self._db.jobs.create(
684
+ command=command,
685
+ timestamp=time.time(),
686
+ job_uid=stable_put_job_uid,
687
+ session_id=session_id,
688
+ step_number=step_number,
689
+ metadata=provisional_metadata_json,
690
+ execution_backend="local",
691
+ execution_role="host",
692
+ job_type="put",
693
+ exit_code=0,
694
+ )
658
695
  self._logger.debug(
659
696
  "Put job created before registration-session finalize: id=%s, uid=%s, step=%d",
660
697
  job_id,
@@ -675,19 +712,56 @@ class PutService:
675
712
  composite_builder=self._composite_builder,
676
713
  declared=declared,
677
714
  )
715
+ uploaded_artifacts = self._build_uploaded_artifacts_for_registration(
716
+ uploads,
717
+ source_type,
718
+ )
719
+ staged_artifacts = prepare_batch_registration_artifacts(
720
+ uploaded_artifacts + lineage.artifacts,
721
+ registration_session_id,
722
+ fallback_to_hash=True,
723
+ prefer_blake3_first=True,
724
+ )
678
725
 
679
726
  put_job_registered = False
680
727
  put_job_links_succeeded = False
681
728
  with Spinner("Publishing lineage to GLaaS...") as spin:
729
+ spin.update("Staging lineage composites...")
730
+ lineage_composite_registrations = preregister_put_lineage_composites_with_glaas(
731
+ db_ctx=self._db,
732
+ glaas_client=client,
733
+ lineage_artifacts=lineage.artifacts,
734
+ session_hash=fallback_session_hash,
735
+ registration_errors=registration_errors,
736
+ dataset_identifiers=dataset_identifiers,
737
+ composite_builder=self._composite_builder,
738
+ logger=self._logger,
739
+ registration_session_id=registration_session_id,
740
+ )
741
+ spin.update("Staging output composites...")
742
+ composite_registrations = register_put_composites_with_glaas(
743
+ db_ctx=self._db,
744
+ glaas_client=client,
745
+ composite_results=composite_results_for_linking,
746
+ registration_errors=registration_errors,
747
+ dataset_identifiers=dataset_identifiers,
748
+ logger=self._logger,
749
+ registration_session_id=registration_session_id,
750
+ )
682
751
  spin.update("Staging lineage jobs and artifacts...")
683
752
  registration_result = coordinator.register_lineage_under_registration_session(
684
753
  registration_session_id=registration_session_id,
685
754
  git_context=git_context,
686
755
  jobs=remote_lineage_jobs,
756
+ artifacts=staged_artifacts,
687
757
  )
688
758
  registration_errors.extend(registration_result.errors)
689
759
 
690
- if registration_result.jobs_failed == 0 and registration_result.links_failed == 0:
760
+ if (
761
+ registration_result.jobs_failed == 0
762
+ and registration_result.links_failed == 0
763
+ and not registration_errors
764
+ ):
691
765
  spin.update("Staging put job...")
692
766
  put_job_result = coordinator.job_service.create_job_under_registration_session(
693
767
  command=command,
@@ -757,39 +831,6 @@ class PutService:
757
831
  session_hash = finalize_result.session_hash
758
832
  session_url = finalize_result.session_url
759
833
 
760
- spin.update("Registering lineage composites...")
761
- lineage_composite_registrations = (
762
- preregister_put_lineage_composites_with_glaas(
763
- db_ctx=self._db,
764
- glaas_client=client,
765
- lineage_artifacts=lineage.artifacts,
766
- session_hash=session_hash,
767
- registration_errors=registration_errors,
768
- dataset_identifiers=dataset_identifiers,
769
- composite_builder=self._composite_builder,
770
- logger=self._logger,
771
- )
772
- )
773
-
774
- composite_results = build_publish_composite_results(
775
- resolved_sources=resolved,
776
- hashes_by_path=hashes_by_path,
777
- session_hash=session_hash,
778
- source_type=composite_source_type,
779
- additional_composite_roots=additional_composite_roots,
780
- composite_builder=self._composite_builder,
781
- declared=declared,
782
- )
783
- spin.update("Registering output composites...")
784
- composite_registrations = register_put_composites_with_glaas(
785
- db_ctx=self._db,
786
- glaas_client=client,
787
- composite_results=composite_results,
788
- registration_errors=registration_errors,
789
- dataset_identifiers=dataset_identifiers,
790
- logger=self._logger,
791
- )
792
-
793
834
  metadata_json = build_put_operation_metadata_json(
794
835
  message=message,
795
836
  destination=self._destination,
@@ -820,6 +861,7 @@ class PutService:
820
861
  remote_job_uid=remote_put_job_uid,
821
862
  registration_errors=registration_errors,
822
863
  uploads=uploads,
864
+ registration_session_id=registration_session_id,
823
865
  )
824
866
 
825
867
  composite_result_items = [
@@ -1106,6 +1148,7 @@ class PutService:
1106
1148
  remote_job_uid: str,
1107
1149
  registration_errors: list[str],
1108
1150
  uploads: list[_UploadedArtifact] | None = None,
1151
+ registration_session_id: str | None = None,
1109
1152
  ) -> None:
1110
1153
  """Sync the local current label document for the publish-time put job
1111
1154
  and its published artifacts (carrying ``roar.distribution.url``)."""
@@ -1122,6 +1165,7 @@ class PutService:
1122
1165
  jobs=[{"id": job_id, "job_uid": job_uid, "remote_job_uid": remote_job_uid}],
1123
1166
  artifacts=artifacts,
1124
1167
  errors=registration_errors,
1168
+ registration_session_id=registration_session_id,
1125
1169
  )
1126
1170
 
1127
1171
  def _link_put_job_artifacts_with_glaas(