roar-cli 0.3.0__tar.gz → 0.3.1__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 (414) hide show
  1. {roar_cli-0.3.0 → roar_cli-0.3.1}/PKG-INFO +2 -2
  2. {roar_cli-0.3.0 → roar_cli-0.3.1}/README.md +1 -1
  3. {roar_cli-0.3.0 → roar_cli-0.3.1}/pyproject.toml +1 -1
  4. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/runtime_imports.py +16 -0
  5. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/inject/sitecustomize.py +17 -1
  6. roar_cli-0.3.1/roar/execution/runtime/inject/support.py +98 -0
  7. roar_cli-0.3.0/roar/execution/runtime/inject/support.py +0 -51
  8. {roar_cli-0.3.0 → roar_cli-0.3.1}/LICENSE +0 -0
  9. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/__init__.py +0 -0
  10. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/__main__.py +0 -0
  11. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/analyzers/__init__.py +0 -0
  12. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/analyzers/base.py +0 -0
  13. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/analyzers/experiment_trackers.py +0 -0
  14. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/__init__.py +0 -0
  15. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/__init__.py +0 -0
  16. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/requests.py +0 -0
  17. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/results.py +0 -0
  18. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/service.py +0 -0
  19. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/transfer.py +0 -0
  20. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/git.py +0 -0
  21. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/label_rendering.py +0 -0
  22. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/labels.py +0 -0
  23. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/__init__.py +0 -0
  24. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/models.py +0 -0
  25. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/policy.py +0 -0
  26. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/refs.py +0 -0
  27. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/remote_artifacts.py +0 -0
  28. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/runner.py +0 -0
  29. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/__init__.py +0 -0
  30. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/blake3_upgrade.py +0 -0
  31. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/collection.py +0 -0
  32. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/composite_builder.py +0 -0
  33. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/composites.py +0 -0
  34. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/datasets.py +0 -0
  35. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/git_remote.py +0 -0
  36. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/job_links.py +0 -0
  37. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/job_preparation.py +0 -0
  38. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/lineage.py +0 -0
  39. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/lineage_composites.py +0 -0
  40. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/metadata.py +0 -0
  41. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/put_composites.py +0 -0
  42. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/put_execution.py +0 -0
  43. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/put_preparation.py +0 -0
  44. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_execution.py +0 -0
  45. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_preparation.py +0 -0
  46. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_preview_jobs.py +0 -0
  47. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_tag_push.py +0 -0
  48. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/registration.py +0 -0
  49. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/registration_package.py +0 -0
  50. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/remote_job_uids.py +0 -0
  51. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/remote_registry.py +0 -0
  52. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/requests.py +0 -0
  53. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/results.py +0 -0
  54. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/runtime.py +0 -0
  55. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/secrets.py +0 -0
  56. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/service.py +0 -0
  57. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/session.py +0 -0
  58. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/source_resolution.py +0 -0
  59. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/targets.py +0 -0
  60. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/__init__.py +0 -0
  61. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/dag.py +0 -0
  62. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff.py +0 -0
  63. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff_engine.py +0 -0
  64. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff_graph.py +0 -0
  65. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff_refs.py +0 -0
  66. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/git_readiness.py +0 -0
  67. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/inputs.py +0 -0
  68. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/label.py +0 -0
  69. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/lineage.py +0 -0
  70. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/log.py +0 -0
  71. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/requests.py +0 -0
  72. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/results.py +0 -0
  73. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/show.py +0 -0
  74. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/status.py +0 -0
  75. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/__init__.py +0 -0
  76. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/environment.py +0 -0
  77. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/lookup.py +0 -0
  78. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/requests.py +0 -0
  79. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/results.py +0 -0
  80. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/service.py +0 -0
  81. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/__init__.py +0 -0
  82. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/dag_references.py +0 -0
  83. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/dirty_tree_error.py +0 -0
  84. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/execution.py +0 -0
  85. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/requests.py +0 -0
  86. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/service.py +0 -0
  87. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/verbosity.py +0 -0
  88. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/system_labels.py +0 -0
  89. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/__init__.py +0 -0
  90. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/requests.py +0 -0
  91. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/results.py +0 -0
  92. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/service.py +0 -0
  93. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/auth_store.py +0 -0
  94. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/__init__.py +0 -0
  95. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/local/__init__.py +0 -0
  96. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/local/plugin.py +0 -0
  97. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/__init__.py +0 -0
  98. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/config.py +0 -0
  99. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/export.py +0 -0
  100. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/host_execution.py +0 -0
  101. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/lineage.py +0 -0
  102. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/plugin.py +0 -0
  103. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/runtime_bundle.py +0 -0
  104. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/submit.py +0 -0
  105. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/workflow.py +0 -0
  106. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/__init__.py +0 -0
  107. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/_agent_names.py +0 -0
  108. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/collector.py +0 -0
  109. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/config.py +0 -0
  110. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/constants.py +0 -0
  111. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/env_contract.py +0 -0
  112. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/fragment.py +0 -0
  113. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/fragment_reconstituter.py +0 -0
  114. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/node_agent.py +0 -0
  115. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/plugin.py +0 -0
  116. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/proxy_fragments.py +0 -0
  117. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/roar_worker.py +0 -0
  118. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/runtime_hooks.py +0 -0
  119. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/s3_key_paths.py +0 -0
  120. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/submit.py +0 -0
  121. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/submit_context.py +0 -0
  122. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/__init__.py +0 -0
  123. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/_format.py +0 -0
  124. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/command_registry.py +0 -0
  125. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/__init__.py +0 -0
  126. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/auth.py +0 -0
  127. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/build.py +0 -0
  128. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/config.py +0 -0
  129. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/dag.py +0 -0
  130. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/diff.py +0 -0
  131. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/env.py +0 -0
  132. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/export_registration_package.py +0 -0
  133. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/get.py +0 -0
  134. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/init.py +0 -0
  135. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/init_agents.py +0 -0
  136. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/inputs.py +0 -0
  137. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/label.py +0 -0
  138. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/lineage.py +0 -0
  139. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/log.py +0 -0
  140. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/login.py +0 -0
  141. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/logout.py +0 -0
  142. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/osmo.py +0 -0
  143. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/pop.py +0 -0
  144. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/projects.py +0 -0
  145. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/proxy.py +0 -0
  146. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/put.py +0 -0
  147. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/register.py +0 -0
  148. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/reproduce.py +0 -0
  149. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/reset.py +0 -0
  150. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/run.py +0 -0
  151. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/scope.py +0 -0
  152. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/show.py +0 -0
  153. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/status.py +0 -0
  154. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/telemetry.py +0 -0
  155. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/tracer.py +0 -0
  156. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/tui.py +0 -0
  157. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/whoami.py +0 -0
  158. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/workflow.py +0 -0
  159. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/context.py +0 -0
  160. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/decorators.py +0 -0
  161. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/publish_intent.py +0 -0
  162. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/templates/agents/SKILL.md.tmpl +0 -0
  163. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/templates/agents/agents_section.md.tmpl +0 -0
  164. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/__init__.py +0 -0
  165. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/bootstrap.py +0 -0
  166. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/canonical_session.py +0 -0
  167. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/digests.py +0 -0
  168. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/dto/__init__.py +0 -0
  169. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/dto/registration.py +0 -0
  170. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/exceptions.py +0 -0
  171. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/__init__.py +0 -0
  172. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/config.py +0 -0
  173. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/lineage.py +0 -0
  174. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/logger.py +0 -0
  175. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/presenter.py +0 -0
  176. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/provenance.py +0 -0
  177. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/registration.py +0 -0
  178. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/repositories.py +0 -0
  179. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/reproduction.py +0 -0
  180. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/run.py +0 -0
  181. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/services.py +0 -0
  182. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/telemetry.py +0 -0
  183. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/vcs.py +0 -0
  184. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/label_constants.py +0 -0
  185. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/label_origins.py +0 -0
  186. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/logging.py +0 -0
  187. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/__init__.py +0 -0
  188. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/artifact.py +0 -0
  189. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/base.py +0 -0
  190. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/dag.py +0 -0
  191. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/dataset_identifier.py +0 -0
  192. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/glaas.py +0 -0
  193. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/job.py +0 -0
  194. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/lineage.py +0 -0
  195. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/provenance.py +0 -0
  196. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/run.py +0 -0
  197. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/session.py +0 -0
  198. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/telemetry.py +0 -0
  199. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/vcs.py +0 -0
  200. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/operation_metadata.py +0 -0
  201. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/session_hash.py +0 -0
  202. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/step_name.py +0 -0
  203. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/tracer_modes.py +0 -0
  204. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/validation.py +0 -0
  205. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/__init__.py +0 -0
  206. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/context.py +0 -0
  207. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/engine.py +0 -0
  208. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/hashing/__init__.py +0 -0
  209. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/hashing/backend.py +0 -0
  210. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/hashing/blake3.py +0 -0
  211. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/models.py +0 -0
  212. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/query_context.py +0 -0
  213. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/__init__.py +0 -0
  214. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/artifact.py +0 -0
  215. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/collection.py +0 -0
  216. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/composite.py +0 -0
  217. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/hash_cache.py +0 -0
  218. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/job.py +0 -0
  219. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/label.py +0 -0
  220. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/session.py +0 -0
  221. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/schema.py +0 -0
  222. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/__init__.py +0 -0
  223. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/hashing.py +0 -0
  224. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/job_recording.py +0 -0
  225. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/lineage.py +0 -0
  226. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/session.py +0 -0
  227. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/step_priority.py +0 -0
  228. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/__init__.py +0 -0
  229. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/__init__.py +0 -0
  230. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/bridge.py +0 -0
  231. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/proxy.py +0 -0
  232. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/proxy_config.py +0 -0
  233. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/__init__.py +0 -0
  234. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/lineage.py +0 -0
  235. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/models.py +0 -0
  236. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/reconstitution.py +0 -0
  237. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/sessions.py +0 -0
  238. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/transport.py +0 -0
  239. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/__init__.py +0 -0
  240. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/contract.py +0 -0
  241. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/planning.py +0 -0
  242. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/registry.py +0 -0
  243. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/__init__.py +0 -0
  244. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/assembler.py +0 -0
  245. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/build_pip_collector.py +0 -0
  246. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/build_tool_collector.py +0 -0
  247. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/data_loader.py +0 -0
  248. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/file_filter.py +0 -0
  249. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/package_collector.py +0 -0
  250. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/process_summarizer.py +0 -0
  251. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/runtime_collector.py +0 -0
  252. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/service.py +0 -0
  253. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/__init__.py +0 -0
  254. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/dataset_identifier.py +0 -0
  255. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/dataset_metadata.py +0 -0
  256. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/dataset_profile.py +0 -0
  257. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/job_recording.py +0 -0
  258. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/__init__.py +0 -0
  259. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/environment_setup.py +0 -0
  260. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/installers.py +0 -0
  261. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/pipeline_executor.py +0 -0
  262. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/pipeline_metadata.py +0 -0
  263. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/__init__.py +0 -0
  264. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/backup.py +0 -0
  265. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/coordinator.py +0 -0
  266. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/driver_entrypoint.py +0 -0
  267. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/errors.py +0 -0
  268. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/host_execution.py +0 -0
  269. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/inject/__init__.py +0 -0
  270. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/inject/tracker.py +0 -0
  271. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/proxy_resource.py +0 -0
  272. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/resources.py +0 -0
  273. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/signal_handler.py +0 -0
  274. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/tracer.py +0 -0
  275. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/tracer_backends.py +0 -0
  276. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/tracer_banner.py +0 -0
  277. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/worker_bootstrap.py +0 -0
  278. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/filters/__init__.py +0 -0
  279. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/filters/files.py +0 -0
  280. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/filters/omit.py +0 -0
  281. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/glaas_auth.py +0 -0
  282. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/glaas_client.py +0 -0
  283. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/__init__.py +0 -0
  284. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/bootstrap.py +0 -0
  285. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/__init__.py +0 -0
  286. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/access.py +0 -0
  287. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/loader.py +0 -0
  288. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/raw.py +0 -0
  289. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/schema.py +0 -0
  290. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/discovery.py +0 -0
  291. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/__init__.py +0 -0
  292. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/base.py +0 -0
  293. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/gcs.py +0 -0
  294. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/get.py +0 -0
  295. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/http.py +0 -0
  296. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/noop.py +0 -0
  297. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/s3.py +0 -0
  298. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/__init__.py +0 -0
  299. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/base.py +0 -0
  300. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/context.py +0 -0
  301. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/provider.py +0 -0
  302. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/__init__.py +0 -0
  303. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/auth.py +0 -0
  304. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/client.py +0 -0
  305. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/fragment_streamer.py +0 -0
  306. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/__init__.py +0 -0
  307. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/_artifact_ref.py +0 -0
  308. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/artifact.py +0 -0
  309. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/coordinator.py +0 -0
  310. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/job.py +0 -0
  311. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/session.py +0 -0
  312. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/transport.py +0 -0
  313. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/registry.py +0 -0
  314. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/resolution.py +0 -0
  315. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/__init__.py +0 -0
  316. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/base.py +0 -0
  317. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/gcs.py +0 -0
  318. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/memory.py +0 -0
  319. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/noop.py +0 -0
  320. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/publish.py +0 -0
  321. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/s3.py +0 -0
  322. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/telemetry/__init__.py +0 -0
  323. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/telemetry/base.py +0 -0
  324. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/telemetry/wandb.py +0 -0
  325. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/__init__.py +0 -0
  326. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/console.py +0 -0
  327. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/dag_data_builder.py +0 -0
  328. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/dag_renderer.py +0 -0
  329. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/diff_renderer.py +0 -0
  330. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/formatting.py +0 -0
  331. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/null.py +0 -0
  332. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/run_report.py +0 -0
  333. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/show_renderer.py +0 -0
  334. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/spinner.py +0 -0
  335. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/terminal.py +0 -0
  336. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/publish_auth.py +0 -0
  337. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/require.py +0 -0
  338. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/scope_config.py +0 -0
  339. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/__init__.py +0 -0
  340. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/_io.py +0 -0
  341. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/capabilities.py +0 -0
  342. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/config.py +0 -0
  343. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/hooks.py +0 -0
  344. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/install.py +0 -0
  345. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/paths.py +0 -0
  346. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/payload.py +0 -0
  347. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/queue.py +0 -0
  348. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/stats.py +0 -0
  349. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/uploader.py +0 -0
  350. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/__init__.py +0 -0
  351. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/app.py +0 -0
  352. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/data.py +0 -0
  353. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/__init__.py +0 -0
  354. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/config_editor.py +0 -0
  355. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/label_editor.py +0 -0
  356. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/launcher.py +0 -0
  357. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/log.py +0 -0
  358. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/main.py +0 -0
  359. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/search.py +0 -0
  360. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/session_picker.py +0 -0
  361. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/tmux.py +0 -0
  362. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/widgets/__init__.py +0 -0
  363. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/widgets/detail.py +0 -0
  364. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/utils/__init__.py +0 -0
  365. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/utils/cloud.py +0 -0
  366. {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/utils/git_url.py +0 -0
  367. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/Cargo.lock +0 -0
  368. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/Cargo.toml +0 -0
  369. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-core/Cargo.toml +0 -0
  370. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-core/src/lib.rs +0 -0
  371. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-py/Cargo.toml +0 -0
  372. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-py/src/lib.rs +0 -0
  373. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-fd/Cargo.toml +0 -0
  374. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-fd/src/lib.rs +0 -0
  375. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-runtime/Cargo.toml +0 -0
  376. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-runtime/src/lib.rs +0 -0
  377. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-schema/Cargo.toml +0 -0
  378. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-schema/src/lib.rs +0 -0
  379. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/Cargo.lock +0 -0
  380. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/Cargo.toml +0 -0
  381. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/src/forward.rs +0 -0
  382. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/src/main.rs +0 -0
  383. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/src/s3.rs +0 -0
  384. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/common/Cargo.toml +0 -0
  385. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/common/src/lib.rs +0 -0
  386. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/probe/Cargo.toml +0 -0
  387. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/probe/rust-toolchain.toml +0 -0
  388. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/probe/src/main.rs +0 -0
  389. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/Cargo.toml +0 -0
  390. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/build.rs +0 -0
  391. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/attach.rs +0 -0
  392. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/bin/roard.rs +0 -0
  393. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/client.rs +0 -0
  394. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/daemon.rs +0 -0
  395. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/events.rs +0 -0
  396. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/ipc.rs +0 -0
  397. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/lib.rs +0 -0
  398. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/main.rs +0 -0
  399. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/state.rs +0 -0
  400. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/Cargo.toml +0 -0
  401. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/build.rs +0 -0
  402. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/bin/io_fixture.rs +0 -0
  403. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/interpose.c +0 -0
  404. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/ipc.rs +0 -0
  405. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/lib.rs +0 -0
  406. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/main.rs +0 -0
  407. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/tests/comprehensive.rs +0 -0
  408. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/tests/standalone.rs +0 -0
  409. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/Cargo.toml +0 -0
  410. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/rustfmt.toml +0 -0
  411. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/src/arch.rs +0 -0
  412. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/src/main.rs +0 -0
  413. {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/src/seccomp.rs +0 -0
  414. {roar_cli-0.3.0 → roar_cli-0.3.1}/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.3.0
3
+ Version: 0.3.1
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Intended Audience :: Science/Research
@@ -69,7 +69,7 @@ Requires Python 3.10+.
69
69
 
70
70
  > For the full prereqs, platform support matrix, tracer-backend setup,
71
71
  > macOS SIP notes, and sdist build steps, see the canonical
72
- > [Installing roar](https://glaas.ai/docs/roar-guide#installing-roar) docs page.
72
+ > [Installation](https://glaas.ai/docs/installation) docs page.
73
73
  > What's below is a TL;DR.
74
74
 
75
75
  ### Platform Support
@@ -20,7 +20,7 @@ Requires Python 3.10+.
20
20
 
21
21
  > For the full prereqs, platform support matrix, tracer-backend setup,
22
22
  > macOS SIP notes, and sdist build steps, see the canonical
23
- > [Installing roar](https://glaas.ai/docs/roar-guide#installing-roar) docs page.
23
+ > [Installation](https://glaas.ai/docs/installation) docs page.
24
24
  > What's below is a TL;DR.
25
25
 
26
26
  ### Platform Support
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "roar-cli"
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  description = "Reproducibility and provenance tracker for ML training pipelines"
9
9
  authors = [
10
10
  { name="TReqs Team", email="info@treqs.ai" }
@@ -22,6 +22,17 @@ class RuntimeImportController:
22
22
  def __init__(self, environ: MutableMapping[str, str]):
23
23
  self._environ = environ
24
24
  self._initialized_backend_names: set[str] = set()
25
+ self._backend_dispatch_disabled = False
26
+
27
+ def disable_backend_dispatch(self) -> None:
28
+ """Suppress backend init / observe / patch for the lifetime of this controller.
29
+
30
+ Used when the traced Python's ABI doesn't match roar's bundled compiled
31
+ deps — loading a backend plugin would trigger an ``ImportError`` from
32
+ wrong-ABI wheels (pydantic_core, etc.). The stdlib tracker hooks
33
+ (file opens, environ reads, import names) keep running.
34
+ """
35
+ self._backend_dispatch_disabled = True
25
36
 
26
37
  def resolve_selected_backend(self) -> ExecutionBackend | None:
27
38
  backend_name = str(self._environ.get(ROAR_EXECUTION_BACKEND_ENV) or "").strip()
@@ -33,11 +44,16 @@ class RuntimeImportController:
33
44
  return None
34
45
 
35
46
  def initialize_selected_backend(self) -> None:
47
+ if self._backend_dispatch_disabled:
48
+ return
36
49
  backend = self.resolve_selected_backend()
37
50
  if backend is not None:
38
51
  self._initialize_backend(backend)
39
52
 
40
53
  def handle_import(self, module_name: str, module: Any) -> ExecutionBackend | None:
54
+ if self._backend_dispatch_disabled:
55
+ return None
56
+
41
57
  matched_backend = match_execution_backend_for_module(module_name)
42
58
  if matched_backend is not None:
43
59
  self._environ.setdefault(ROAR_EXECUTION_BACKEND_ENV, matched_backend.name)
@@ -20,6 +20,7 @@ def _append_roar_runtime_pythonpath() -> None:
20
20
  _append_roar_runtime_pythonpath()
21
21
 
22
22
  from roar.execution.framework.runtime_imports import RuntimeImportController
23
+ from roar.execution.runtime.inject.support import abi_minor_version, bundled_abi_tag
23
24
  from roar.execution.runtime.inject.tracker import RuntimeInjectionTracker
24
25
 
25
26
  LOG_FILE = os.environ.get("ROAR_LOG_FILE")
@@ -42,7 +43,22 @@ _runtime_tracker.install()
42
43
 
43
44
 
44
45
  if os.environ.get("ROAR_WRAP") == "1":
45
- _runtime_import_controller.initialize_selected_backend()
46
+ _bundled_abi = abi_minor_version(bundled_abi_tag(_ROAR_INJECT_DIR))
47
+ _running_abi = (sys.version_info.major, sys.version_info.minor)
48
+ if _bundled_abi is not None and _bundled_abi != _running_abi:
49
+ sys.stderr.write(
50
+ f"roar: traced Python is {_running_abi[0]}.{_running_abi[1]} but "
51
+ f"roar-cli was installed under Python "
52
+ f"{_bundled_abi[0]}.{_bundled_abi[1]}.\n"
53
+ f" Backend integrations (Ray, OSMO) are disabled for this run.\n"
54
+ f" File I/O is still captured.\n"
55
+ f" To re-enable backends, reinstall under the matching Python:\n"
56
+ f" uv tool install --python python{_running_abi[0]}.{_running_abi[1]} "
57
+ f"roar-cli --force\n"
58
+ )
59
+ _runtime_import_controller.disable_backend_dispatch()
60
+ else:
61
+ _runtime_import_controller.initialize_selected_backend()
46
62
 
47
63
 
48
64
  atexit.register(_runtime_tracker.write_log)
@@ -0,0 +1,98 @@
1
+ from __future__ import annotations
2
+
3
+ import contextlib
4
+ import os
5
+ import re
6
+ import shutil
7
+ import sys
8
+ import threading
9
+
10
+ _roar_suppress = threading.local()
11
+
12
+
13
+ def bundled_abi_tag(inject_dir: str) -> str | None:
14
+ """Return the cpython ABI tag of roar's bundled compiled deps, or None.
15
+
16
+ Walks up from ``inject_dir`` to find the enclosing ``site-packages`` and
17
+ parses the CPython ABI tag from a known compiled dependency's ``.so``
18
+ filename (e.g. ``_pydantic_core.cpython-313-x86_64-linux-gnu.so`` →
19
+ ``"cpython-313"``). Returns ``None`` if the layout doesn't match — callers
20
+ should treat ``None`` as "don't gate" rather than assuming mismatch.
21
+ """
22
+ site_pkg = inject_dir
23
+ while os.path.basename(site_pkg) != "site-packages":
24
+ parent = os.path.dirname(site_pkg)
25
+ if parent == site_pkg:
26
+ return None
27
+ site_pkg = parent
28
+
29
+ for known_pkg in ("pydantic_core", "blake3"):
30
+ pkg_dir = os.path.join(site_pkg, known_pkg)
31
+ if not os.path.isdir(pkg_dir):
32
+ continue
33
+ try:
34
+ entries = os.listdir(pkg_dir)
35
+ except OSError:
36
+ continue
37
+ for filename in entries:
38
+ for token in filename.split("."):
39
+ if token.startswith("cpython-"):
40
+ m = re.match(r"cpython-\d+", token)
41
+ if m:
42
+ return m.group()
43
+ return None
44
+
45
+
46
+ def abi_minor_version(tag: str | None) -> tuple[int, int] | None:
47
+ """Extract ``(major, minor)`` from an ABI tag like ``cp313`` or ``cpython-313``."""
48
+ if not tag:
49
+ return None
50
+ match = re.search(r"\d+", tag)
51
+ if not match:
52
+ return None
53
+ digits = match.group()
54
+ if len(digits) < 2:
55
+ return None
56
+ return (int(digits[0]), int(digits[1:]))
57
+
58
+
59
+ def is_suppressed() -> bool:
60
+ return bool(getattr(_roar_suppress, "active", False))
61
+
62
+
63
+ class SuppressTracking:
64
+ """Context manager: file operations inside are not tracked."""
65
+
66
+ def __enter__(self):
67
+ _roar_suppress.active = True
68
+ return self
69
+
70
+ def __exit__(self, *_):
71
+ _roar_suppress.active = False
72
+
73
+
74
+ def merge_working_dir(source_dir: str, target_dir: str) -> None:
75
+ for entry in os.listdir(source_dir):
76
+ src = os.path.join(source_dir, entry)
77
+ dst = os.path.join(target_dir, entry)
78
+ try:
79
+ if os.path.isdir(src):
80
+ shutil.copytree(src, dst, dirs_exist_ok=True)
81
+ else:
82
+ shutil.copy2(src, dst)
83
+ except Exception:
84
+ continue
85
+
86
+
87
+ def warn_runtime(message: str, *args: object) -> None:
88
+ text = message % args if args else message
89
+ try:
90
+ from roar.core.logging import get_logger
91
+
92
+ get_logger().warning(text)
93
+ return
94
+ except Exception:
95
+ pass
96
+
97
+ with contextlib.suppress(Exception):
98
+ sys.stderr.write(text + "\n")
@@ -1,51 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import contextlib
4
- import os
5
- import shutil
6
- import sys
7
- import threading
8
-
9
- _roar_suppress = threading.local()
10
-
11
-
12
- def is_suppressed() -> bool:
13
- return bool(getattr(_roar_suppress, "active", False))
14
-
15
-
16
- class SuppressTracking:
17
- """Context manager: file operations inside are not tracked."""
18
-
19
- def __enter__(self):
20
- _roar_suppress.active = True
21
- return self
22
-
23
- def __exit__(self, *_):
24
- _roar_suppress.active = False
25
-
26
-
27
- def merge_working_dir(source_dir: str, target_dir: str) -> None:
28
- for entry in os.listdir(source_dir):
29
- src = os.path.join(source_dir, entry)
30
- dst = os.path.join(target_dir, entry)
31
- try:
32
- if os.path.isdir(src):
33
- shutil.copytree(src, dst, dirs_exist_ok=True)
34
- else:
35
- shutil.copy2(src, dst)
36
- except Exception:
37
- continue
38
-
39
-
40
- def warn_runtime(message: str, *args: object) -> None:
41
- text = message % args if args else message
42
- try:
43
- from roar.core.logging import get_logger
44
-
45
- get_logger().warning(text)
46
- return
47
- except Exception:
48
- pass
49
-
50
- with contextlib.suppress(Exception):
51
- sys.stderr.write(text + "\n")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes