openrua 0.0.7__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 (252) hide show
  1. openrua-0.0.7/.github/workflows/ci.yml +20 -0
  2. openrua-0.0.7/.gitignore +15 -0
  3. openrua-0.0.7/.import_linter_cache/.gitignore +2 -0
  4. openrua-0.0.7/.import_linter_cache/4e5fb42f1cc26b7eee37b8fbc089744a3e24a6da.data.json +1 -0
  5. openrua-0.0.7/.import_linter_cache/CACHEDIR.TAG +3 -0
  6. openrua-0.0.7/.import_linter_cache/c326b2aa2abdd2e72f4b667340b88c63f769ce25.data.json +1 -0
  7. openrua-0.0.7/.import_linter_cache/openrua.meta.json +1 -0
  8. openrua-0.0.7/.import_linter_cache/robocli.meta.json +1 -0
  9. openrua-0.0.7/CITATION.cff +9 -0
  10. openrua-0.0.7/CONTRIBUTING.md +109 -0
  11. openrua-0.0.7/LICENSE +201 -0
  12. openrua-0.0.7/PKG-INFO +320 -0
  13. openrua-0.0.7/README.md +286 -0
  14. openrua-0.0.7/docs/agents.md +133 -0
  15. openrua-0.0.7/docs/architecture.md +108 -0
  16. openrua-0.0.7/docs/cli.md +546 -0
  17. openrua-0.0.7/docs/config.md +489 -0
  18. openrua-0.0.7/docs/demos.md +27 -0
  19. openrua-0.0.7/docs/install.md +127 -0
  20. openrua-0.0.7/docs/media/.gitkeep +0 -0
  21. openrua-0.0.7/docs/podman.md +87 -0
  22. openrua-0.0.7/docs/running-experiments.md +189 -0
  23. openrua-0.0.7/docs/simulation.md +116 -0
  24. openrua-0.0.7/docs/your-own-robot.md +125 -0
  25. openrua-0.0.7/examples/README.md +7 -0
  26. openrua-0.0.7/examples/first-task.md +120 -0
  27. openrua-0.0.7/examples/real-robot.md +37 -0
  28. openrua-0.0.7/openrua/__init__.py +31 -0
  29. openrua-0.0.7/openrua/__main__.py +7 -0
  30. openrua-0.0.7/openrua/agents/__init__.py +17 -0
  31. openrua-0.0.7/openrua/agents/__main__.py +28 -0
  32. openrua-0.0.7/openrua/agents/base.py +231 -0
  33. openrua-0.0.7/openrua/agents/credentials.py +45 -0
  34. openrua-0.0.7/openrua/agents/launcher.py +113 -0
  35. openrua-0.0.7/openrua/agents/prompts.py +26 -0
  36. openrua-0.0.7/openrua/agents/registry.py +194 -0
  37. openrua-0.0.7/openrua/cli/__init__.py +68 -0
  38. openrua-0.0.7/openrua/cli/commands/__init__.py +9 -0
  39. openrua-0.0.7/openrua/cli/commands/agent.py +36 -0
  40. openrua-0.0.7/openrua/cli/commands/bench.py +12 -0
  41. openrua-0.0.7/openrua/cli/commands/build.py +112 -0
  42. openrua-0.0.7/openrua/cli/commands/config.py +85 -0
  43. openrua-0.0.7/openrua/cli/commands/demo.py +76 -0
  44. openrua-0.0.7/openrua/cli/commands/doctor.py +27 -0
  45. openrua-0.0.7/openrua/cli/commands/down.py +24 -0
  46. openrua-0.0.7/openrua/cli/commands/install.py +60 -0
  47. openrua-0.0.7/openrua/cli/commands/list.py +151 -0
  48. openrua-0.0.7/openrua/cli/commands/probe.py +82 -0
  49. openrua-0.0.7/openrua/cli/commands/ps.py +48 -0
  50. openrua-0.0.7/openrua/cli/commands/run.py +51 -0
  51. openrua-0.0.7/openrua/cli/commands/up.py +196 -0
  52. openrua-0.0.7/openrua/cli/output.py +19 -0
  53. openrua-0.0.7/openrua/cli/state.py +38 -0
  54. openrua-0.0.7/openrua/config/__init__.py +18 -0
  55. openrua-0.0.7/openrua/config/loader.py +453 -0
  56. openrua-0.0.7/openrua/config/paths.py +164 -0
  57. openrua-0.0.7/openrua/config/schema.py +664 -0
  58. openrua-0.0.7/openrua/configs/agents/claude-code.yaml +50 -0
  59. openrua-0.0.7/openrua/configs/agents/codex.yaml +47 -0
  60. openrua-0.0.7/openrua/configs/benchmarks/calvin/merged_config.yaml +395 -0
  61. openrua-0.0.7/openrua/configs/benchmarks/calvin.yaml +38 -0
  62. openrua-0.0.7/openrua/configs/benchmarks/capbench.yaml +148 -0
  63. openrua-0.0.7/openrua/configs/benchmarks/libero.yaml +58 -0
  64. openrua-0.0.7/openrua/configs/benchmarks/libero_mem/py312.patch +68 -0
  65. openrua-0.0.7/openrua/configs/benchmarks/libero_mem/requirements.txt +119 -0
  66. openrua-0.0.7/openrua/configs/benchmarks/libero_mem.yaml +62 -0
  67. openrua-0.0.7/openrua/configs/benchmarks/libero_plus/py312.patch +22 -0
  68. openrua-0.0.7/openrua/configs/benchmarks/libero_plus/requirements.txt +124 -0
  69. openrua-0.0.7/openrua/configs/benchmarks/libero_plus.yaml +72 -0
  70. openrua-0.0.7/openrua/configs/benchmarks/libero_pro/libero-pro-suites.tar.gz +0 -0
  71. openrua-0.0.7/openrua/configs/benchmarks/libero_pro/requirements.txt +119 -0
  72. openrua-0.0.7/openrua/configs/benchmarks/libero_pro.yaml +95 -0
  73. openrua-0.0.7/openrua/configs/benchmarks/maniskill.yaml +39 -0
  74. openrua-0.0.7/openrua/configs/benchmarks/mikasa/requirements.txt +101 -0
  75. openrua-0.0.7/openrua/configs/benchmarks/mikasa.yaml +52 -0
  76. openrua-0.0.7/openrua/configs/benchmarks/robocasa/requirements.txt +78 -0
  77. openrua-0.0.7/openrua/configs/benchmarks/robocasa.yaml +87 -0
  78. openrua-0.0.7/openrua/configs/benchmarks/robocasa365/requirements.txt +138 -0
  79. openrua-0.0.7/openrua/configs/benchmarks/robocasa365.yaml +176 -0
  80. openrua-0.0.7/openrua/configs/benchmarks/robocerebra/requirements.txt +119 -0
  81. openrua-0.0.7/openrua/configs/benchmarks/robocerebra.yaml +64 -0
  82. openrua-0.0.7/openrua/configs/benchmarks/robotwin.yaml +40 -0
  83. openrua-0.0.7/openrua/configs/benchmarks/simpler.yaml +44 -0
  84. openrua-0.0.7/openrua/configs/benchmarks/vlabench.yaml +36 -0
  85. openrua-0.0.7/openrua/configs/config.yaml +6 -0
  86. openrua-0.0.7/openrua/configs/robots/aloha-agilex.yaml +41 -0
  87. openrua-0.0.7/openrua/configs/robots/controllers/pandaomron_joint_ctrl.json +29 -0
  88. openrua-0.0.7/openrua/configs/robots/panda-omron.yaml +35 -0
  89. openrua-0.0.7/openrua/configs/robots/panda.yaml +30 -0
  90. openrua-0.0.7/openrua/configs/robots/widowx.yaml +22 -0
  91. openrua-0.0.7/openrua/configs/simulators/calvin/log-without-git.patch +16 -0
  92. openrua-0.0.7/openrua/configs/simulators/calvin/requirements.txt +82 -0
  93. openrua-0.0.7/openrua/configs/simulators/calvin.yaml +35 -0
  94. openrua-0.0.7/openrua/configs/simulators/maniskill/bridge-joint-mode.patch +41 -0
  95. openrua-0.0.7/openrua/configs/simulators/maniskill/requirements.txt +100 -0
  96. openrua-0.0.7/openrua/configs/simulators/maniskill.yaml +54 -0
  97. openrua-0.0.7/openrua/configs/simulators/robosuite/capx-pyproject.patch +89 -0
  98. openrua-0.0.7/openrua/configs/simulators/robosuite/requirements.txt +143 -0
  99. openrua-0.0.7/openrua/configs/simulators/robosuite.yaml +50 -0
  100. openrua-0.0.7/openrua/configs/simulators/robotwin/eval-without-curobo.patch +68 -0
  101. openrua-0.0.7/openrua/configs/simulators/robotwin/requirements.txt +123 -0
  102. openrua-0.0.7/openrua/configs/simulators/robotwin.yaml +44 -0
  103. openrua-0.0.7/openrua/configs/simulators/vlabench/requirements.txt +120 -0
  104. openrua-0.0.7/openrua/configs/simulators/vlabench.yaml +43 -0
  105. openrua-0.0.7/openrua/demo/__init__.py +11 -0
  106. openrua-0.0.7/openrua/demo/compose.py +493 -0
  107. openrua-0.0.7/openrua/doctor/__init__.py +13 -0
  108. openrua-0.0.7/openrua/doctor/checks.py +317 -0
  109. openrua-0.0.7/openrua/doctor/report.py +57 -0
  110. openrua-0.0.7/openrua/errors.py +65 -0
  111. openrua-0.0.7/openrua/plugins/__init__.py +1 -0
  112. openrua-0.0.7/openrua/plugins/agents/__init__.py +2 -0
  113. openrua-0.0.7/openrua/plugins/agents/claude_code.py +454 -0
  114. openrua-0.0.7/openrua/plugins/agents/codex.py +340 -0
  115. openrua-0.0.7/openrua/proxy/__init__.py +35 -0
  116. openrua-0.0.7/openrua/proxy/__main__.py +45 -0
  117. openrua-0.0.7/openrua/proxy/build.py +65 -0
  118. openrua-0.0.7/openrua/proxy/down.py +32 -0
  119. openrua-0.0.7/openrua/proxy/proxy.Dockerfile +16 -0
  120. openrua-0.0.7/openrua/proxy/tinyproxy.conf +16 -0
  121. openrua-0.0.7/openrua/proxy/up.py +133 -0
  122. openrua-0.0.7/openrua/robot/__init__.py +78 -0
  123. openrua-0.0.7/openrua/robot/base.py +28 -0
  124. openrua-0.0.7/openrua/robot/real/__init__.py +10 -0
  125. openrua-0.0.7/openrua/robot/real/down.py +38 -0
  126. openrua-0.0.7/openrua/robot/real/probe.py +147 -0
  127. openrua-0.0.7/openrua/robot/real/up.py +69 -0
  128. openrua-0.0.7/openrua/robot/sim/Dockerfile.humble +18 -0
  129. openrua-0.0.7/openrua/robot/sim/Dockerfile.jazzy +26 -0
  130. openrua-0.0.7/openrua/robot/sim/__init__.py +11 -0
  131. openrua-0.0.7/openrua/robot/sim/bridge/__init__.py +23 -0
  132. openrua-0.0.7/openrua/robot/sim/bridge/catalog.py +43 -0
  133. openrua-0.0.7/openrua/robot/sim/bridge/engines/__init__.py +74 -0
  134. openrua-0.0.7/openrua/robot/sim/bridge/engines/calvin.py +212 -0
  135. openrua-0.0.7/openrua/robot/sim/bridge/engines/frames.py +25 -0
  136. openrua-0.0.7/openrua/robot/sim/bridge/engines/maniskill.py +211 -0
  137. openrua-0.0.7/openrua/robot/sim/bridge/engines/mujoco.py +123 -0
  138. openrua-0.0.7/openrua/robot/sim/bridge/engines/robosuite.py +209 -0
  139. openrua-0.0.7/openrua/robot/sim/bridge/engines/robotwin.py +187 -0
  140. openrua-0.0.7/openrua/robot/sim/bridge/engines/vlabench.py +92 -0
  141. openrua-0.0.7/openrua/robot/sim/bridge/environments/__init__.py +55 -0
  142. openrua-0.0.7/openrua/robot/sim/bridge/environments/calvin.py +176 -0
  143. openrua-0.0.7/openrua/robot/sim/bridge/environments/capbench.py +108 -0
  144. openrua-0.0.7/openrua/robot/sim/bridge/environments/libero.py +169 -0
  145. openrua-0.0.7/openrua/robot/sim/bridge/environments/maniskill.py +111 -0
  146. openrua-0.0.7/openrua/robot/sim/bridge/environments/mikasa.py +144 -0
  147. openrua-0.0.7/openrua/robot/sim/bridge/environments/robocasa.py +100 -0
  148. openrua-0.0.7/openrua/robot/sim/bridge/environments/robocasa365.py +130 -0
  149. openrua-0.0.7/openrua/robot/sim/bridge/environments/robocerebra.py +123 -0
  150. openrua-0.0.7/openrua/robot/sim/bridge/environments/robosuite.py +82 -0
  151. openrua-0.0.7/openrua/robot/sim/bridge/environments/robotwin.py +180 -0
  152. openrua-0.0.7/openrua/robot/sim/bridge/environments/simpler.py +62 -0
  153. openrua-0.0.7/openrua/robot/sim/bridge/environments/vlabench.py +76 -0
  154. openrua-0.0.7/openrua/robot/sim/bridge/environments/worker.py +70 -0
  155. openrua-0.0.7/openrua/robot/sim/bridge/main.py +181 -0
  156. openrua-0.0.7/openrua/robot/sim/bridge/plug.py +50 -0
  157. openrua-0.0.7/openrua/robot/sim/bridge/ros/__init__.py +13 -0
  158. openrua-0.0.7/openrua/robot/sim/bridge/ros/arms.py +18 -0
  159. openrua-0.0.7/openrua/robot/sim/bridge/ros/clock.py +22 -0
  160. openrua-0.0.7/openrua/robot/sim/bridge/ros/controllers.py +334 -0
  161. openrua-0.0.7/openrua/robot/sim/bridge/ros/joints.py +26 -0
  162. openrua-0.0.7/openrua/robot/sim/bridge/ros/launch/moveit.launch.py +100 -0
  163. openrua-0.0.7/openrua/robot/sim/bridge/ros/launch/panda.srdf +127 -0
  164. openrua-0.0.7/openrua/robot/sim/bridge/ros/node.py +39 -0
  165. openrua-0.0.7/openrua/robot/sim/bridge/ros/sensors.py +326 -0
  166. openrua-0.0.7/openrua/robot/sim/bridge/rpc.py +254 -0
  167. openrua-0.0.7/openrua/robot/sim/build.py +67 -0
  168. openrua-0.0.7/openrua/robot/sim/client.py +91 -0
  169. openrua-0.0.7/openrua/robot/sim/down.py +30 -0
  170. openrua-0.0.7/openrua/robot/sim/install.py +127 -0
  171. openrua-0.0.7/openrua/robot/sim/up.py +230 -0
  172. openrua-0.0.7/openrua/runner/__init__.py +20 -0
  173. openrua-0.0.7/openrua/runner/bringup.py +326 -0
  174. openrua-0.0.7/openrua/runner/lock.py +170 -0
  175. openrua-0.0.7/openrua/runner/main.py +200 -0
  176. openrua-0.0.7/openrua/runner/operators.py +213 -0
  177. openrua-0.0.7/openrua/runner/preflight.py +184 -0
  178. openrua-0.0.7/openrua/runner/record.py +419 -0
  179. openrua-0.0.7/openrua/runner/session.py +277 -0
  180. openrua-0.0.7/openrua/runner/trial.py +319 -0
  181. openrua-0.0.7/openrua/sandbox/__init__.py +37 -0
  182. openrua-0.0.7/openrua/sandbox/__main__.py +48 -0
  183. openrua-0.0.7/openrua/sandbox/build.py +94 -0
  184. openrua-0.0.7/openrua/sandbox/down.py +30 -0
  185. openrua-0.0.7/openrua/sandbox/sandbox.Dockerfile +77 -0
  186. openrua-0.0.7/openrua/sandbox/up.py +218 -0
  187. openrua-0.0.7/openrua/sandbox/workspace/.gitignore +2 -0
  188. openrua-0.0.7/openrua/sandbox/workspace/README.md +27 -0
  189. openrua-0.0.7/openrua/sandbox/workspace/docs/10-machine.md +80 -0
  190. openrua-0.0.7/openrua/sandbox/workspace/docs/20-perception.md +109 -0
  191. openrua-0.0.7/openrua/sandbox/workspace/docs/30-action.md +135 -0
  192. openrua-0.0.7/openrua/sandbox/workspace/docs/40-patterns.md +56 -0
  193. openrua-0.0.7/openrua/sandbox/workspace/tools/README.md +10 -0
  194. openrua-0.0.7/openrua/sandbox/workspace/tools/action/base_goto.py +114 -0
  195. openrua-0.0.7/openrua/sandbox/workspace/tools/action/fjt_send.py +57 -0
  196. openrua-0.0.7/openrua/sandbox/workspace/tools/action/gripper_cmd.py +47 -0
  197. openrua-0.0.7/openrua/sandbox/workspace/tools/action/ik_move.py +112 -0
  198. openrua-0.0.7/openrua/sandbox/workspace/tools/perception/cam_snap.py +46 -0
  199. openrua-0.0.7/openrua/sandbox/workspace/tools/perception/px2world.py +76 -0
  200. openrua-0.0.7/openrua/sandbox/workspace.py +216 -0
  201. openrua-0.0.7/openrua/testing.py +98 -0
  202. openrua-0.0.7/pyproject.toml +166 -0
  203. openrua-0.0.7/scripts/render_docs.py +187 -0
  204. openrua-0.0.7/tests/__init__.py +0 -0
  205. openrua-0.0.7/tests/agents/__init__.py +0 -0
  206. openrua-0.0.7/tests/agents/test_agent_boundary.py +68 -0
  207. openrua-0.0.7/tests/agents/test_agents.py +572 -0
  208. openrua-0.0.7/tests/agents/test_codex.py +160 -0
  209. openrua-0.0.7/tests/architecture/__init__.py +0 -0
  210. openrua-0.0.7/tests/architecture/test_layering.py +106 -0
  211. openrua-0.0.7/tests/cli/__init__.py +0 -0
  212. openrua-0.0.7/tests/cli/test_benchmarks_cmd.py +51 -0
  213. openrua-0.0.7/tests/cli/test_config_cmd.py +72 -0
  214. openrua-0.0.7/tests/cli/test_errors.py +31 -0
  215. openrua-0.0.7/tests/cli/test_ps.py +38 -0
  216. openrua-0.0.7/tests/cli/test_run_verb.py +93 -0
  217. openrua-0.0.7/tests/config/__init__.py +0 -0
  218. openrua-0.0.7/tests/config/test_config.py +266 -0
  219. openrua-0.0.7/tests/config/test_install.py +83 -0
  220. openrua-0.0.7/tests/config/test_paths.py +70 -0
  221. openrua-0.0.7/tests/config/test_run_budget.py +35 -0
  222. openrua-0.0.7/tests/conftest.py +31 -0
  223. openrua-0.0.7/tests/demo/__init__.py +0 -0
  224. openrua-0.0.7/tests/demo/test_demo.py +227 -0
  225. openrua-0.0.7/tests/doctor/__init__.py +0 -0
  226. openrua-0.0.7/tests/doctor/test_doctor.py +147 -0
  227. openrua-0.0.7/tests/proxy/__init__.py +0 -0
  228. openrua-0.0.7/tests/proxy/test_proxy.py +164 -0
  229. openrua-0.0.7/tests/robot/__init__.py +0 -0
  230. openrua-0.0.7/tests/robot/test_arms.py +26 -0
  231. openrua-0.0.7/tests/robot/test_catalog.py +38 -0
  232. openrua-0.0.7/tests/robot/test_channel.py +78 -0
  233. openrua-0.0.7/tests/robot/test_engine.py +92 -0
  234. openrua-0.0.7/tests/robot/test_environment.py +82 -0
  235. openrua-0.0.7/tests/robot/test_monitor.py +87 -0
  236. openrua-0.0.7/tests/robot/test_probe.py +50 -0
  237. openrua-0.0.7/tests/robot/test_robocasa_scenes.py +67 -0
  238. openrua-0.0.7/tests/robot/test_robot.py +72 -0
  239. openrua-0.0.7/tests/robot/test_worker.py +68 -0
  240. openrua-0.0.7/tests/runner/__init__.py +0 -0
  241. openrua-0.0.7/tests/runner/test_bringup.py +186 -0
  242. openrua-0.0.7/tests/runner/test_lock.py +68 -0
  243. openrua-0.0.7/tests/runner/test_preflight.py +153 -0
  244. openrua-0.0.7/tests/runner/test_record.py +182 -0
  245. openrua-0.0.7/tests/runner/test_resume_loop.py +282 -0
  246. openrua-0.0.7/tests/runner/test_run.py +142 -0
  247. openrua-0.0.7/tests/runner/test_summary.py +41 -0
  248. openrua-0.0.7/tests/runner/test_trial_real.py +60 -0
  249. openrua-0.0.7/tests/sandbox/__init__.py +0 -0
  250. openrua-0.0.7/tests/sandbox/test_run_args.py +26 -0
  251. openrua-0.0.7/tests/sandbox/test_sandbox.py +272 -0
  252. openrua-0.0.7/tests/sandbox/test_workspace_template.py +11 -0
@@ -0,0 +1,20 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ pull_request:
6
+ jobs:
7
+ test:
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ matrix:
11
+ python: ["3.10", "3.12"]
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - uses: actions/setup-python@v5
15
+ with:
16
+ python-version: ${{ matrix.python }}
17
+ - run: pip install -e '.[dev]'
18
+ - run: lint-imports
19
+ - run: pytest -q
20
+ - run: python scripts/render_docs.py --check
@@ -0,0 +1,15 @@
1
+ __pycache__/
2
+ *.pyc
3
+ .pytest_cache/
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ .venv/
8
+
9
+ # simulator substrates are built locally (docs/simulation.md), never committed
10
+ substrates/
11
+
12
+ # run data lives on disk, not in git
13
+ runs/
14
+ workspaces/
15
+ data/
@@ -0,0 +1,2 @@
1
+ # Automatically created by Grimp.
2
+ *
@@ -0,0 +1 @@
1
+ {"openrua.robot.sim.bridge.catalog":[["openrua.robot.sim.bridge.environments",19,"from . import environments"]],"openrua.cli.commands.install":[["openrua.robot.sim.install",16,"from openrua.robot.sim import install as installer"],["openrua.config.paths",14,"from openrua.config import paths"],["openrua.errors",15,"from openrua.errors import UsageError"],["openrua.config",13,"from openrua import config"]],"openrua.cli.state":[["openrua.config.paths",9,"from openrua.config import paths"],["openrua.errors",10,"from openrua.errors import NotFound"]],"openrua.runner.preflight":[],"openrua.demo.compose":[["openrua.errors",26,"from openrua.errors import NotFound, UnavailableError"]],"openrua.cli.commands.ps":[["openrua.cli.output",9,"from openrua.cli.output import add_json"],["openrua.runner.main",11,"from openrua.runner.main import RUNS_ROOT"],["openrua.runner.lock",10,"from openrua.runner import lock"]],"openrua.cli.commands.down":[["openrua.cli.state",6,"from openrua.cli import state"],["openrua.cli.state",7,"from openrua.cli.state import DEFAULT_NAME"],["openrua.robot",5,"from openrua import robot"],["openrua.sandbox.down",8,"from openrua.sandbox.down import down as sandbox_down"]],"openrua.runner.operators":[["openrua.runner.session",23,"from openrua.runner.session import agent_operator"],["openrua.runner.record",22,"from openrua.runner import record"]],"openrua.robot":[["openrua.robot.sim.up",25,"from openrua.robot.sim.up import up as sim_up"],["openrua.errors",20,"from openrua.errors import ConfigError"],["openrua.robot.base",21,"from openrua.robot.base import Handle # noqa: F401 re-exported"],["openrua.robot.real.up",23,"from openrua.robot.real.up import up as real_up"],["openrua.robot.real.down",22,"from openrua.robot.real.down import down as real_down"],["openrua.robot.sim.down",24,"from openrua.robot.sim.down import down as sim_down"]],"openrua.plugins":[],"openrua.errors":[],"openrua.robot.sim.bridge.environments.worker":[],"openrua.robot.sim.bridge.environments.calvin":[],"openrua.config":[["openrua.config.loader",6,"from openrua.config.loader import ( # noqa: F401"],["openrua.config.schema",11,"from openrua.config.schema import ( # noqa: F401"]],"openrua.robot.real.probe":[],"openrua.agents.prompts":[],"openrua.config.schema":[],"openrua.agents.registry":[["openrua.config.paths",23,"from openrua.config import paths"],["openrua.config",21,"from openrua import config"],["openrua.errors",24,"from openrua.errors import NotFound"],["openrua.agents.base",22,"from openrua.agents.base import Agent, Credentials"]],"openrua.sandbox.workspace":[["openrua.sandbox",20,"from openrua.sandbox import SandboxError"]],"openrua.robot.base":[],"openrua.doctor.checks":[["openrua.proxy",19,"from openrua import agents, config, proxy"],["openrua.doctor.report",21,"from openrua.doctor.report import CheckResult, Report"],["openrua.agents",19,"from openrua import agents, config, proxy"],["openrua.config",20,"from openrua.config import compose, paths"],["openrua.config.paths",20,"from openrua.config import compose, paths"],["openrua.config",19,"from openrua import agents, config, proxy"]],"openrua.runner.trial":[["openrua.config.paths",24,"from openrua.config import paths"],["openrua.runner.lock",26,"from openrua.runner import lock"],["openrua.runner.record",27,"from openrua.runner import record"],["openrua.runner.preflight",29,"from openrua.runner.preflight import run_preflight"],["openrua.proxy.up",25,"from openrua.proxy.up import ensure as ensure_proxy"],["openrua.agents",23,"from openrua import agents"],["openrua.runner.bringup",28,"from openrua.runner.bringup import bring_up, ensure_internal_network, start_episode"],["openrua.sandbox.down",31,"from openrua.sandbox.down import down as sandbox_down"],["openrua.sandbox.workspace",30,"from openrua.sandbox import workspace"]],"openrua.robot.sim.bridge.environments.capbench":[],"openrua.cli.commands.probe":[["openrua.config.schema",17,"from openrua.config.schema import sandbox_image"],["openrua.sandbox.down",16,"from openrua.sandbox.down import down as sandbox_down"],["openrua.errors",13,"from openrua.errors import UsageError"],["openrua.robot.real.probe",14,"from openrua.robot.real.probe import draft_profile, read_graph"],["openrua.runner.bringup",15,"from openrua.runner.bringup import sandbox_reachability"],["openrua.sandbox.up",18,"from openrua.sandbox.up import up as sandbox_up"],["openrua.cli.state",12,"from openrua.cli import state"]],"openrua.robot.sim.bridge.engines.robosuite":[["openrua.robot.sim.bridge.engines.mujoco",22,"from .mujoco import MuJoCo"]],"openrua.robot.sim.bridge.ros.sensors":[["openrua.robot.sim.bridge.ros.joints",32,"from .joints import build_joint_map"],["openrua.robot.sim.bridge.ros.arms",82,"from .arms import arm_specs"],["openrua.robot.sim.bridge.ros.clock",31,"from .clock import sim_time_msg"]],"openrua.robot.sim.bridge.ros.controllers":[["openrua.robot.sim.bridge.ros.arms",30,"from .arms import arm_specs"],["openrua.robot.sim.bridge.ros.joints",31,"from .joints import build_joint_map"]],"openrua.robot.real.down":[],"openrua.__main__":[["openrua.cli",5,"from openrua.cli import main"]],"openrua.robot.sim.bridge.environments.robocasa365":[],"openrua.cli.commands.bench":[["openrua.runner.main",5,"from openrua.runner import main as runner"]],"openrua.robot.sim.install":[["openrua",21,"from openrua import __version__"],["openrua.errors",22,"from openrua.errors import OpenRUAError"]],"openrua.cli.commands.run":[["openrua.cli.state",15,"from openrua.cli import state"],["openrua.errors",17,"from openrua.errors import UnavailableError"],["openrua.cli.commands.up",16,"from openrua.cli.commands import up"],["openrua.agents",14,"from openrua import agents"]],"openrua.robot.sim.bridge.environments.simpler":[["openrua.robot.sim.bridge.environments.maniskill",19,"from .maniskill import _assets_next_to_the_venv, _success, make_kwargs"]],"openrua.robot.sim.up":[["openrua.robot.sim.client",25,"from openrua.robot.sim.client import BridgeClient"]],"openrua.agents.credentials":[["openrua.agents.base",18,"from openrua.agents.base import Agent"]],"openrua.robot.sim.bridge.ros.arms":[],"openrua.proxy.__main__":[],"openrua.robot.sim.bridge.engines.frames":[],"openrua.robot.sim.bridge.environments":[["openrua.robot.sim.bridge.plug",34,"from .. import plug"]],"openrua.cli.commands.demo":[["openrua.demo",7,"from openrua import demo"]],"openrua.robot.sim.bridge.environments.robocasa":[],"openrua.robot.sim.bridge.engines.mujoco":[["openrua.robot.sim.bridge.engines.frames",24,"from .frames import GL2OPTICAL"]],"openrua.robot.sim.bridge.environments.vlabench":[],"openrua.agents.base":[],"openrua.robot.real.up":[["openrua.robot.base",9,"from openrua.robot.base import Handle"],["openrua.robot.real.down",10,"from openrua.robot.real.down import container_name, down, remember"]],"openrua.config.paths":[["openrua.errors",29,"from openrua.errors import NotFound"]],"openrua.robot.sim.bridge.engines.maniskill":[["openrua.robot.sim.bridge.engines.frames",23,"from .frames import GL2OPTICAL, quat_to_mat"]],"openrua.sandbox.__main__":[],"openrua.robot.sim.bridge.engines.vlabench":[["openrua.robot.sim.bridge.engines.mujoco",20,"from .mujoco import MuJoCo"]],"openrua.robot.sim.bridge.engines.robotwin":[["openrua.robot.sim.bridge.engines.frames",23,"from .frames import GL2OPTICAL, quat_to_mat"]],"openrua.robot.sim.down":[],"openrua.robot.real":[],"openrua.plugins.agents.claude_code":[["openrua.agents.base",29,"from openrua.agents.base import Agent"]],"openrua.demo":[["openrua.demo.compose",11,"from openrua.demo.compose import Style, render # noqa: F401"]],"openrua.runner.bringup":[["openrua.proxy.up",22,"from openrua.proxy.up import url_from_network as proxy_url_from_network"],["openrua.robot",18,"from openrua import robot"],["openrua.errors",20,"from openrua.errors import NotFound, UnavailableError"],["openrua.runner.record",23,"from openrua.runner import record"],["openrua.sandbox.down",24,"from openrua.sandbox.down import down as sandbox_down"],["openrua.proxy",21,"from openrua import proxy"],["openrua.config.paths",19,"from openrua.config import paths"],["openrua.sandbox.up",25,"from openrua.sandbox.up import up as sandbox_up"]],"openrua.robot.sim.bridge":[],"openrua.proxy.build":[["openrua.proxy",18,"from openrua.proxy import ProxyError, IMAGE, PORT"]],"openrua.robot.sim.bridge.plug":[],"openrua.robot.sim.bridge.main":[["openrua.robot.sim.bridge.environments.worker",59,"from .environments.worker import Worker"],["openrua.robot.sim.bridge.rpc",32,"from .rpc import Recording"],["openrua.robot.sim.bridge.environments",58,"from . import engines, environments"],["openrua.robot.sim.bridge.engines",58,"from . import engines, environments"],["openrua.robot.sim.bridge.ros.node",60,"from .ros.node import GraphNode"],["openrua.robot.sim.bridge.rpc",61,"from .rpc import ControlChannel, Monitor, Recording"]],"openrua.robot.sim.bridge.ros.joints":[],"openrua.cli.commands.list":[["openrua.config",14,"from openrua.config import compose, paths"],["openrua.config.paths",14,"from openrua.config import compose, paths"],["openrua.cli.output",13,"from openrua.cli.output import add_json, print_listing"],["openrua.agents",12,"from openrua import agents"]],"openrua.robot.sim.bridge.engines.calvin":[["openrua.robot.sim.bridge.engines.frames",27,"from .frames import GL2OPTICAL, quat_to_mat"]],"openrua.robot.sim.bridge.environments.robosuite":[],"openrua.robot.sim.bridge.environments.libero":[],"openrua.cli.commands.build":[["openrua.config",13,"from openrua import agents, config, proxy"],["openrua.proxy.build",15,"from openrua.proxy.build import build as build_proxy"],["openrua.sandbox.build",17,"from openrua.sandbox.build import build as build_sandbox"],["openrua.proxy",13,"from openrua import agents, config, proxy"],["openrua.robot.sim.build",16,"from openrua.robot.sim.build import build as build_robot"],["openrua.agents",13,"from openrua import agents, config, proxy"],["openrua.config.paths",14,"from openrua.config import paths"]],"openrua.proxy.down":[["openrua.proxy",15,"from openrua.proxy import NAME"]],"openrua.robot.sim.bridge.rpc":[],"openrua.runner.main":[["openrua.runner.operators",20,"from openrua.runner.operators import OPERATORS"],["openrua.sandbox.workspace",22,"from openrua.sandbox import workspace"],["openrua.runner.trial",21,"from openrua.runner.trial import run_trial"],["openrua.runner.record",18,"from openrua.runner import record"],["openrua.errors",16,"from openrua.errors import UsageError"],["openrua.config.paths",15,"from openrua.config import paths"],["openrua.agents",12,"from openrua import agents, proxy"],["openrua.config",13,"from openrua.config import (apply_suite_overrides, load_config, normalize_arms,"],["openrua.runner.bringup",19,"from openrua.runner.bringup import simulator_venv"],["openrua.runner.lock",17,"from openrua.runner import lock"],["openrua.proxy",12,"from openrua import agents, proxy"]],"openrua.robot.sim.bridge.environments.mikasa":[["openrua.robot.sim.bridge.environments.maniskill",16,"from .maniskill import _assets_next_to_the_venv, _success, make_kwargs"]],"openrua.robot.sim.bridge.environments.robotwin":[],"openrua.robot.sim.build":[],"openrua.runner":[],"openrua.cli.commands.agent":[["openrua.agents",7,"from openrua import agents"],["openrua.cli.state",8,"from openrua.cli import state"],["openrua.errors",10,"from openrua.errors import UnavailableError"],["openrua.cli.state",9,"from openrua.cli.state import DEFAULT_NAME"]],"openrua":[],"openrua.robot.sim.bridge.engines":[["openrua.robot.sim.bridge.plug",28,"from .. import plug"]],"openrua.runner.lock":[],"openrua.cli":[["openrua.config.paths",31,"from openrua.config import paths"],["openrua.errors",32,"from openrua.errors import OpenRUAError"],["openrua",29,"from openrua import __version__"],["openrua.cli.commands",30,"from openrua.cli.commands import COMMANDS"]],"openrua.testing":[["openrua.agents.registry",20,"from openrua.agents import registry"],["openrua.agents.base",21,"from openrua.agents.base import HOOK_NAMES, Agent, Credentials"]],"openrua.cli.commands":[["openrua.cli.commands.config",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.demo",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.bench",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.agent",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.doctor",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.build",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.run",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.install",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.list",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.probe",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.up",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.down",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"],["openrua.cli.commands.ps",6,"from openrua.cli.commands import (agent, bench, build, config, demo, doctor, down, install,"]],"openrua.robot.sim":[],"openrua.plugins.agents.codex":[["openrua.agents.base",24,"from openrua.agents.base import Agent"]],"openrua.runner.session":[["openrua.agents",32,"from openrua import agents"]],"openrua.plugins.agents":[],"openrua.robot.sim.bridge.ros.node":[["openrua.robot.sim.bridge.ros.sensors",18,"from .sensors import SensorPublishers"],["openrua.robot.sim.bridge.ros.controllers",17,"from .controllers import CommandPorts"]],"openrua.robot.sim.client":[["openrua.robot.base",22,"from openrua.robot.base import Handle"],["openrua.robot.sim.down",23,"from openrua.robot.sim.down import down"]],"openrua.proxy":[["openrua.errors",26,"from openrua.errors import UnavailableError"]],"openrua.doctor":[["openrua.doctor.checks",11,"from openrua.doctor import checks # noqa: F401"],["openrua.doctor.report",13,"from openrua.doctor.report import CheckResult, Report, print_report # noqa: F401"],["openrua.doctor.checks",12,"from openrua.doctor.checks import CHECKS, Context, run # noqa: F401"]],"openrua.robot.sim.bridge.environments.robocerebra":[],"openrua.proxy.up":[["openrua.proxy",25,"from openrua.proxy import ProxyError, IMAGE, NAME"]],"openrua.sandbox":[["openrua.errors",31,"from openrua.errors import UnavailableError"]],"openrua.robot.sim.bridge.ros.clock":[],"openrua.robot.sim.bridge.ros":[],"openrua.agents.__main__":[["openrua.agents.launcher",11,"from openrua.agents import launcher"]],"openrua.cli.commands.up":[["openrua.cli.state",20,"from openrua.cli.state import DEFAULT_NAME"],["openrua.config.paths",22,"from openrua.config import paths"],["openrua.sandbox.down",26,"from openrua.sandbox.down import down as sandbox_down"],["openrua.agents",18,"from openrua import agents"],["openrua.config",21,"from openrua.config import apply_suite_overrides, compose, normalize_arms"],["openrua.runner.bringup",25,"from openrua.runner.bringup import bring_up, ensure_internal_network, start_episode"],["openrua.errors",23,"from openrua.errors import UnavailableError"],["openrua.cli.state",19,"from openrua.cli import state"],["openrua.proxy.up",24,"from openrua.proxy.up import ensure as ensure_proxy"]],"openrua.sandbox.build":[["openrua.sandbox",24,"from openrua.sandbox import SandboxError"]],"openrua.agents":[["openrua.agents.credentials",12,"from openrua.agents.credentials import prepare_profile # noqa: F401"],["openrua.agents.registry",14,"from openrua.agents.registry import ( # noqa: F401"],["openrua.agents.base",11,"from openrua.agents.base import HOOK_NAMES, Agent, Credentials # noqa: F401"],["openrua.agents.prompts",13,"from openrua.agents.prompts import PROMPT, RESUME_PROMPT # noqa: F401"]],"openrua.cli.commands.doctor":[["openrua.cli.output",7,"from openrua.cli.output import add_json"],["openrua.doctor",6,"from openrua import doctor"]],"openrua.doctor.report":[],"openrua.robot.sim.bridge.environments.maniskill":[],"openrua.sandbox.down":[],"openrua.agents.launcher":[["openrua.agents",35,"from openrua import agents"]],"openrua.runner.record":[["openrua",27,"from openrua import __version__ as openrua_version"]],"openrua.cli.commands.config":[["openrua.errors",22,"from openrua.errors import UsageError"],["openrua.config",20,"from openrua import config"],["openrua.config.paths",21,"from openrua.config import paths"]],"openrua.config.loader":[["openrua.config.schema",26,"from openrua.config.schema import (Benchmark, Machine, ResolvedConfig, RobotInstance,"],["openrua.config.paths",25,"from openrua.config import paths"],["openrua.errors",28,"from openrua.errors import ConfigError, UsageError"]],"openrua.sandbox.up":[["openrua.sandbox",37,"from openrua.sandbox import SandboxError"],["openrua.sandbox.workspace",39,"from . import workspace as _workspace"]],"openrua.cli.output":[]}
@@ -0,0 +1,3 @@
1
+ Signature: 8a477f597d28d172789f06886806bc55
2
+ # This file is a cache directory tag automatically created by Grimp.
3
+ # For information about cache directory tags see https://bford.info/cachedir/
@@ -0,0 +1 @@
1
+ {"robocli.sandbox.build":[["robocli.sandbox",24,"from robocli.sandbox import SandboxError"]],"robocli.doctor.checks":[["robocli.config.paths",21,"from robocli.config import compose, paths"],["robocli.config",21,"from robocli.config import compose, paths"],["robocli.proxy",20,"from robocli import agents, config, proxy"],["robocli.config",20,"from robocli import agents, config, proxy"],["robocli.doctor.report",22,"from robocli.doctor.report import CheckResult, Report"],["robocli.agents",20,"from robocli import agents, config, proxy"]],"robocli":[],"robocli.runner":[],"robocli.robot.sim.bridge.environments.libero":[],"robocli.robot.sim.up":[["robocli.robot.sim.client",25,"from robocli.robot.sim.client import BridgeClient"]],"robocli.testing":[["robocli.agents.base",21,"from robocli.agents.base import HOOK_NAMES, Agent, Credentials"],["robocli.agents.registry",20,"from robocli.agents import registry"]],"robocli.cli.state":[["robocli.config.paths",9,"from robocli.config import paths"],["robocli.errors",10,"from robocli.errors import NotFound"]],"robocli.proxy.down":[["robocli.proxy",15,"from robocli.proxy import NAME"]],"robocli.config.paths":[["robocli.errors",34,"from robocli.errors import NotFound"]],"robocli.runner.trial":[["robocli.runner.bringup",28,"from robocli.runner.bringup import bring_up, ensure_internal_network, start_episode"],["robocli.sandbox.workspace",30,"from robocli.sandbox import workspace"],["robocli.runner.preflight",29,"from robocli.runner.preflight import run_preflight"],["robocli.config.paths",24,"from robocli.config import paths"],["robocli.runner.record",27,"from robocli.runner import record"],["robocli.agents",23,"from robocli import agents"],["robocli.runner.lock",26,"from robocli.runner import lock"],["robocli.sandbox.down",31,"from robocli.sandbox.down import down as sandbox_down"],["robocli.proxy.up",25,"from robocli.proxy.up import ensure as ensure_proxy"]],"robocli.runner.session":[["robocli.agents",32,"from robocli import agents"]],"robocli.cli.commands.demo":[["robocli.demo",7,"from robocli import demo"]],"robocli.robot.sim.bridge.ros.joints":[],"robocli.robot.sim.bridge.environments.capbench":[],"robocli.sandbox.down":[],"robocli.robot.sim.bridge.ros.controllers":[["robocli.robot.sim.bridge.ros.arms",30,"from .arms import arm_specs, arm_targets"],["robocli.robot.sim.bridge.ros.joints",31,"from .joints import build_joint_map"]],"robocli.robot.sim.bridge.main":[["robocli.robot.sim.bridge.environments.worker",58,"from .environments.worker import Worker"],["robocli.robot.sim.bridge.rpc",31,"from .rpc import Recording"],["robocli.robot.sim.bridge.ros.node",59,"from .ros.node import GraphNode"],["robocli.robot.sim.bridge.rpc",60,"from .rpc import ControlChannel, Monitor, Recording"],["robocli.robot.sim.bridge.environments",57,"from . import environments"]],"robocli.agents":[["robocli.agents.registry",14,"from robocli.agents.registry import ( # noqa: F401"],["robocli.agents.prompts",13,"from robocli.agents.prompts import PROMPT, RESUME_PROMPT # noqa: F401"],["robocli.agents.base",11,"from robocli.agents.base import HOOK_NAMES, Agent, Credentials # noqa: F401"],["robocli.agents.credentials",12,"from robocli.agents.credentials import prepare_profile # noqa: F401"]],"robocli.proxy.up":[["robocli.proxy",25,"from robocli.proxy import ProxyError, IMAGE, NAME"]],"robocli.runner.bringup":[["robocli.proxy.up",20,"from robocli.proxy.up import url_from_network as proxy_url_from_network"],["robocli.robot",16,"from robocli import robot"],["robocli.config.paths",17,"from robocli.config import paths"],["robocli.errors",18,"from robocli.errors import NotFound"],["robocli.runner.record",21,"from robocli.runner import record"],["robocli.proxy",19,"from robocli import proxy"],["robocli.sandbox.up",23,"from robocli.sandbox.up import up as sandbox_up"],["robocli.sandbox.down",22,"from robocli.sandbox.down import down as sandbox_down"]],"robocli.config.loader":[["robocli.config.schema",22,"from robocli.config.schema import Benchmark, ResolvedConfig, RobotProfile, UserConfig"],["robocli.config.paths",21,"from robocli.config import paths"],["robocli.errors",23,"from robocli.errors import ConfigError, UsageError"]],"robocli.cli.commands.doctor":[["robocli.cli.output",6,"from robocli.cli.output import add_json"],["robocli.doctor",5,"from robocli import doctor"]],"robocli.doctor.report":[],"robocli.robot.sim.bridge.ros.node":[["robocli.robot.sim.bridge.ros.controllers",17,"from .controllers import CommandPorts"],["robocli.robot.sim.bridge.ros.sensors",18,"from .sensors import SensorPublishers"]],"robocli.doctor":[["robocli.doctor.checks",11,"from robocli.doctor import checks # noqa: F401"],["robocli.doctor.report",13,"from robocli.doctor.report import CheckResult, Report, print_report # noqa: F401"],["robocli.doctor.checks",12,"from robocli.doctor.checks import CHECKS, Context, run # noqa: F401"]],"robocli.robot.sim.client":[["robocli.robot.base",22,"from robocli.robot.base import Handle"],["robocli.robot.sim.down",23,"from robocli.robot.sim.down import down"]],"robocli.sandbox":[["robocli.errors",31,"from robocli.errors import UnavailableError"]],"robocli.robot.real.down":[],"robocli.robot.sim.bridge.environments.worker":[],"robocli.cli.commands.agent":[["robocli.agents",7,"from robocli import agents"],["robocli.cli.state",9,"from robocli.cli.state import DEFAULT_NAME"],["robocli.errors",10,"from robocli.errors import UnavailableError"],["robocli.cli.state",8,"from robocli.cli import state"]],"robocli.sandbox.up":[["robocli.sandbox.workspace",39,"from . import workspace as _workspace"],["robocli.sandbox",37,"from robocli.sandbox import SandboxError"]],"robocli.agents.prompts":[],"robocli.robot.sim.bridge.ros.sensors":[["robocli.robot.sim.bridge.ros.arms",77,"from .arms import arm_specs"],["robocli.robot.sim.bridge.ros.clock",28,"from .clock import sim_time_msg"],["robocli.robot.sim.bridge.ros.joints",29,"from .joints import build_joint_map"]],"robocli.cli.output":[],"robocli.plugins":[],"robocli.cli.commands.ps":[["robocli.runner.main",11,"from robocli.runner.main import RUNS_ROOT"],["robocli.runner.lock",10,"from robocli.runner import lock"],["robocli.cli.output",9,"from robocli.cli.output import add_json"]],"robocli.cli.commands.list":[["robocli.cli.output",10,"from robocli.cli.output import add_json, print_listing"],["robocli.agents",9,"from robocli import agents"],["robocli.config.paths",11,"from robocli.config import paths"]],"robocli.robot.sim.bridge.ros.arms":[],"robocli.robot.sim.bridge.rpc":[],"robocli.proxy.__main__":[],"robocli.robot.sim.bridge.environments":[["robocli.robot.sim.bridge.environments.capbench",26,"from .capbench import CapBenchLoader"],["robocli.robot.sim.bridge.environments.libero",27,"from .libero import LiberoLoader"],["robocli.robot.sim.bridge.environments.robocasa",28,"from .robocasa import RoboCasaLoader"]],"robocli.__main__":[["robocli.cli",5,"from robocli.cli import main"]],"robocli.agents.launcher":[["robocli.agents",35,"from robocli import agents"]],"robocli.robot":[["robocli.robot.real.down",22,"from robocli.robot.real.down import down as real_down"],["robocli.robot.base",21,"from robocli.robot.base import Handle # noqa: F401 re-exported"],["robocli.errors",20,"from robocli.errors import ConfigError"],["robocli.robot.sim.down",24,"from robocli.robot.sim.down import down as sim_down"],["robocli.robot.real.up",23,"from robocli.robot.real.up import up as real_up"],["robocli.robot.sim.up",25,"from robocli.robot.sim.up import up as sim_up"]],"robocli.robot.sim.bridge.environments.robocasa":[],"robocli.runner.record":[["robocli",27,"from robocli import __version__ as robocli_version"]],"robocli.sandbox.workspace":[["robocli.sandbox",20,"from robocli.sandbox import SandboxError"]],"robocli.agents.__main__":[["robocli.agents.launcher",11,"from robocli.agents import launcher"]],"robocli.robot.base":[],"robocli.agents.registry":[["robocli.errors",24,"from robocli.errors import NotFound"],["robocli.config",21,"from robocli import config"],["robocli.config.paths",23,"from robocli.config import paths"],["robocli.agents.base",22,"from robocli.agents.base import Agent, Credentials"]],"robocli.demo.compose":[["robocli.errors",26,"from robocli.errors import NotFound, UnavailableError"]],"robocli.cli.commands.run":[["robocli.runner.main",5,"from robocli.runner import main as runner"]],"robocli.cli.commands.down":[["robocli.cli.state",6,"from robocli.cli import state"],["robocli.sandbox.down",8,"from robocli.sandbox.down import down as sandbox_down"],["robocli.cli.state",7,"from robocli.cli.state import DEFAULT_NAME"],["robocli.robot",5,"from robocli import robot"]],"robocli.demo":[["robocli.demo.compose",11,"from robocli.demo.compose import Style, render # noqa: F401"]],"robocli.cli.commands.build":[["robocli.sandbox.build",17,"from robocli.sandbox.build import build as build_sandbox"],["robocli.robot.sim.build",16,"from robocli.robot.sim.build import build as build_robot"],["robocli.proxy.build",15,"from robocli.proxy.build import build as build_proxy"],["robocli.proxy",13,"from robocli import agents, config, proxy"],["robocli.config.paths",14,"from robocli.config import paths"],["robocli.agents",13,"from robocli import agents, config, proxy"],["robocli.config",13,"from robocli import agents, config, proxy"]],"robocli.robot.real":[],"robocli.robot.sim.bridge.ros":[],"robocli.runner.main":[["robocli.sandbox.workspace",22,"from robocli.sandbox import workspace"],["robocli.runner.lock",17,"from robocli.runner import lock"],["robocli.config.paths",15,"from robocli.config import paths"],["robocli.errors",16,"from robocli.errors import UsageError"],["robocli.runner.operators",20,"from robocli.runner.operators import OPERATORS"],["robocli.config",13,"from robocli.config import (apply_suite_overrides, load_config, normalize_arms,"],["robocli.runner.bringup",19,"from robocli.runner.bringup import simulator_venv"],["robocli.runner.record",18,"from robocli.runner import record"],["robocli.proxy",12,"from robocli import agents, proxy"],["robocli.runner.trial",21,"from robocli.runner.trial import run_trial"],["robocli.agents",12,"from robocli import agents, proxy"]],"robocli.runner.preflight":[],"robocli.robot.sim.build":[],"robocli.errors":[],"robocli.cli.commands.up":[["robocli.proxy.up",20,"from robocli.proxy.up import ensure as ensure_proxy"],["robocli.errors",19,"from robocli.errors import UnavailableError"],["robocli.config",17,"from robocli.config import apply_suite_overrides, compose, normalize_arms"],["robocli.cli.state",16,"from robocli.cli.state import DEFAULT_NAME"],["robocli.cli.state",15,"from robocli.cli import state"],["robocli.sandbox.down",22,"from robocli.sandbox.down import down as sandbox_down"],["robocli.agents",14,"from robocli import agents"],["robocli.runner.bringup",21,"from robocli.runner.bringup import bring_up, ensure_internal_network, start_episode"],["robocli.config.paths",18,"from robocli.config import paths"]],"robocli.robot.real.probe":[],"robocli.cli.commands":[["robocli.cli.commands.build",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.down",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.ps",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.probe",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.list",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.run",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.doctor",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.up",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.agent",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.demo",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"],["robocli.cli.commands.config",6,"from robocli.cli.commands import (agent, build, config, demo, doctor, down, list, probe,"]],"robocli.robot.real.up":[["robocli.robot.real.down",10,"from robocli.robot.real.down import container_name, down, remember"],["robocli.robot.base",9,"from robocli.robot.base import Handle"]],"robocli.robot.sim":[],"robocli.plugins.agents":[],"robocli.sandbox.__main__":[],"robocli.config.schema":[],"robocli.robot.sim.bridge":[],"robocli.agents.base":[],"robocli.plugins.agents.codex":[["robocli.agents.base",24,"from robocli.agents.base import Agent"]],"robocli.robot.sim.bridge.ros.clock":[],"robocli.proxy":[["robocli.errors",26,"from robocli.errors import UnavailableError"]],"robocli.runner.lock":[],"robocli.plugins.agents.claude_code":[["robocli.agents.base",29,"from robocli.agents.base import Agent"]],"robocli.cli.commands.config":[["robocli.config",7,"from robocli import config"]],"robocli.proxy.build":[["robocli.proxy",18,"from robocli.proxy import ProxyError, IMAGE, PORT"]],"robocli.cli":[["robocli.errors",30,"from robocli.errors import RoboCLIError"],["robocli.cli.commands",28,"from robocli.cli.commands import COMMANDS"],["robocli",27,"from robocli import __version__"],["robocli.config.paths",29,"from robocli.config import paths"]],"robocli.robot.sim.down":[],"robocli.cli.commands.probe":[["robocli.sandbox.up",18,"from robocli.sandbox.up import up as sandbox_up"],["robocli.cli.state",12,"from robocli.cli import state"],["robocli.errors",13,"from robocli.errors import UsageError"],["robocli.robot.real.probe",14,"from robocli.robot.real.probe import draft_profile, read_graph"],["robocli.runner.bringup",15,"from robocli.runner.bringup import sandbox_reachability"],["robocli.config.schema",17,"from robocli.config.schema import sandbox_image"],["robocli.sandbox.down",16,"from robocli.sandbox.down import down as sandbox_down"]],"robocli.config":[["robocli.config.schema",11,"from robocli.config.schema import ( # noqa: F401"],["robocli.config.loader",6,"from robocli.config.loader import ( # noqa: F401"]],"robocli.runner.operators":[["robocli.runner.session",23,"from robocli.runner.session import agent_operator"],["robocli.runner.record",22,"from robocli.runner import record"]],"robocli.agents.credentials":[["robocli.agents.base",18,"from robocli.agents.base import Agent"]]}
@@ -0,0 +1 @@
1
+ {"openrua.config": 1788967699.5695477, "openrua.robot.sim.bridge.plug": 1788974239.5554616, "openrua.robot.sim.bridge.environments.mikasa": 1788977318.6762555, "openrua.runner.session": 1788905438.5498307, "openrua.robot.sim.bridge.environments.worker": 1788727001.2803745, "openrua.robot.sim.bridge.environments.capbench": 1788969736.3346407, "openrua.config.paths": 1788974239.5464618, "openrua.robot.sim.bridge.environments": 1788974239.547462, "openrua.cli.commands.ps": 1788909084.0440445, "openrua.robot.sim.client": 1788905438.5478306, "openrua.cli.commands.doctor": 1788941758.6390378, "openrua.errors": 1788905438.5448306, "openrua.cli.commands.build": 1788967699.5705476, "openrua.cli.state": 1788905438.5408304, "openrua.cli.commands.demo": 1788980412.797823, "openrua.robot.sim.build": 1788905438.5478306, "openrua.robot.sim.bridge.environments.robotwin": 1788984794.3164234, "openrua.sandbox.build": 1788905438.5508306, "openrua.agents": 1788905438.5378304, "openrua.sandbox": 1788905438.5508306, "openrua.cli.commands": 1788958623.4433427, "openrua.robot.sim.down": 1788792454.880783, "openrua.cli.commands.down": 1788905438.5398304, "openrua.robot.real.probe": 1788941758.6420376, "openrua.cli.commands.agent": 1788905438.5398304, "openrua.cli.commands.bench": 1788909048.7427628, "openrua.robot.sim.bridge.main": 1788980391.9673042, "openrua.testing": 1788957851.7957115, "openrua.robot.sim.bridge": 1788974239.547462, "openrua.robot.sim.bridge.environments.vlabench": 1788981626.0785527, "openrua.sandbox.__main__": 1788905438.5508306, "openrua.robot.sim.bridge.ros.clock": 1788820470.275341, "openrua": 1788905438.5378304, "openrua.sandbox.down": 1788905438.5508306, "openrua.plugins.agents": 1788905438.5448306, "openrua.robot.sim.install": 1788962613.3858721, "openrua.robot.sim.up": 1788980391.9683044, "openrua.doctor": 1788905438.5438304, "openrua.runner.record": 1788980391.9693043, "openrua.runner.preflight": 1788905438.5498307, "openrua.sandbox.up": 1788905438.5518305, "openrua.robot.sim.bridge.ros.controllers": 1788978770.8965034, "openrua.robot.sim.bridge.ros.node": 1788974239.548462, "openrua.robot.sim.bridge.rpc": 1788982652.5306983, "openrua.robot.sim.bridge.catalog": 1788969654.6436005, "openrua.__main__": 1788905438.5378304, "openrua.cli.commands.install": 1788958623.4113433, "openrua.robot.sim.bridge.environments.libero": 1788968740.172672, "openrua.robot.sim.bridge.engines.maniskill": 1788984333.0009444, "openrua.agents.credentials": 1788905438.5388303, "openrua.cli.commands.config": 1788967699.5715475, "openrua.cli": 1788944056.2154927, "openrua.robot": 1788980391.9683044, "openrua.config.schema": 1788975708.5676157, "openrua.robot.sim.bridge.environments.simpler": 1788984889.8862405, "openrua.robot.sim.bridge.ros.sensors": 1788978770.8955035, "openrua.agents.base": 1788905438.5378304, "openrua.robot.sim.bridge.environments.robocerebra": 1788969654.6436005, "openrua.robot.sim.bridge.ros": 1788974239.547462, "openrua.agents.prompts": 1788725134.5715678, "openrua.sandbox.workspace": 1788905438.5518305, "openrua.doctor.report": 1788905438.5448306, "openrua.runner.bringup": 1788980391.9683044, "openrua.runner.main": 1788980391.9693043, "openrua.config.loader": 1788975708.568616, "openrua.robot.real.up": 1788905438.5468304, "openrua.robot.real": 1788725669.2626863, "openrua.cli.commands.list": 1788969736.3346407, "openrua.runner.lock": 1788909084.0450444, "openrua.robot.sim.bridge.ros.arms": 1788974239.547462, "openrua.runner": 1788909084.0450444, "openrua.plugins.agents.codex": 1788905438.5448306, "openrua.proxy.up": 1788905438.5458305, "openrua.proxy": 1788905438.5458305, "openrua.proxy.__main__": 1788905438.5458305, "openrua.robot.sim.bridge.environments.maniskill": 1788977219.6445565, "openrua.plugins": 1788725134.5715678, "openrua.robot.real.down": 1788729376.7512674, "openrua.demo.compose": 1788980391.9703043, "openrua.agents.__main__": 1788905438.5378304, "openrua.agents.launcher": 1788905438.5388303, "openrua.robot.base": 1788725669.2626863, "openrua.robot.sim.bridge.environments.robocasa365": 1788968851.989951, "openrua.cli.commands.probe": 1788905438.5408304, "openrua.robot.sim.bridge.environments.robocasa": 1788968851.989951, "openrua.robot.sim": 1788725669.2626863, "openrua.cli.commands.run": 1788941758.6400378, "openrua.plugins.agents.claude_code": 1788905438.5448306, "openrua.doctor.checks": 1788967699.5705476, "openrua.robot.sim.bridge.engines": 1788978770.8955035, "openrua.agents.registry": 1788957878.050081, "openrua.proxy.build": 1788905438.5458305, "openrua.robot.sim.bridge.environments.calvin": 1788985144.16743, "openrua.robot.sim.bridge.engines.frames": 1788984332.970945, "openrua.robot.sim.bridge.engines.robotwin": 1788984333.0009444, "openrua.runner.operators": 1788905438.5488305, "openrua.demo": 1788905438.5438304, "openrua.robot.sim.bridge.engines.mujoco": 1788984333.0019443, "openrua.robot.sim.bridge.ros.joints": 1788974239.548462, "openrua.robot.sim.bridge.engines.calvin": 1788984333.0019443, "openrua.robot.sim.bridge.engines.robosuite": 1788981546.4134097, "openrua.robot.sim.bridge.environments.robosuite": 1788969654.6436005, "openrua.cli.commands.up": 1788967699.5705476, "openrua.cli.output": 1788957851.7957115, "openrua.proxy.down": 1788905438.5458305, "openrua.robot.sim.bridge.engines.vlabench": 1788981626.0775528, "openrua.runner.trial": 1788980391.9693043}
@@ -0,0 +1 @@
1
+ {"robocli.runner.operators": 1788819659.220531, "robocli.robot.sim.bridge.ros.joints": 1786992293.2659962, "robocli.plugins.agents.codex": 1788793601.7058163, "robocli.config.paths": 1788795524.9929934, "robocli.config.schema": 1788813897.13921, "robocli.cli.commands.build": 1788800412.197063, "robocli.proxy.build": 1788800412.197063, "robocli.sandbox.up": 1788799730.6988916, "robocli.config.loader": 1788734623.343219, "robocli.robot.sim.bridge.ros.clock": 1786990195.6805933, "robocli.runner.bringup": 1788814141.9115882, "robocli.runner.lock": 1788820071.566641, "robocli.__main__": 1788727001.2813745, "robocli.robot.sim.bridge.ros.sensors": 1788727001.2803745, "robocli.doctor": 1788726304.620388, "robocli.cli.commands.down": 1788726304.619388, "robocli.robot.real.probe": 1788799779.7646737, "robocli.cli.commands.agent": 1788726304.619388, "robocli.demo": 1788814298.8459892, "robocli.cli.commands.probe": 1788799730.6998916, "robocli.runner.trial": 1788814141.9115882, "robocli.cli.commands.up": 1788793601.7068162, "robocli.robot": 1788813879.6026134, "robocli.robot.sim.bridge.main": 1788813879.6026134, "robocli.cli.commands": 1788818233.3359709, "robocli.proxy.down": 1788800480.2803884, "robocli.runner.preflight": 1788726574.6728866, "robocli.proxy.up": 1788800412.197063, "robocli.robot.sim.bridge.ros.node": 1788724066.728387, "robocli.doctor.checks": 1788800412.198063, "robocli.agents": 1788732721.8170292, "robocli.demo.compose": 1788819659.219531, "robocli.sandbox.__main__": 1788792454.880783, "robocli.config": 1788725956.3787725, "robocli.cli.commands.list": 1788726304.619388, "robocli.plugins": 1788725134.5715678, "robocli.sandbox.down": 1788299773.9265685, "robocli.errors": 1788719725.5007482, "robocli.sandbox": 1788726818.9160068, "robocli.robot.sim.bridge.ros.arms": 1788792454.8787832, "robocli.sandbox.workspace": 1788792454.880783, "robocli.runner": 1788726765.152301, "robocli.agents.registry": 1788792454.8797832, "robocli.robot.real.up": 1788729376.7512674, "robocli.robot.sim.bridge.environments.worker": 1788727001.2803745, "robocli.cli.commands.config": 1788726304.619388, "robocli.runner.main": 1788818252.91655, "robocli.robot.sim.bridge.ros": 1786990195.6805933, "robocli.agents.__main__": 1788792454.880783, "robocli.cli.commands.doctor": 1788732796.7642937, "robocli.robot.sim": 1788725669.2626863, "robocli.cli.commands.demo": 1788819659.220531, "robocli.robot.sim.bridge.ros.controllers": 1788727001.2803745, "robocli.robot.real": 1788725669.2626863, "robocli.cli.output": 1788726304.619388, "robocli.robot.base": 1788725669.2626863, "robocli.cli.commands.run": 1788726304.619388, "robocli.testing": 1788727001.2823744, "robocli.robot.sim.up": 1788813879.6026134, "robocli.robot.sim.bridge.rpc": 1788813879.6026134, "robocli.plugins.agents.claude_code": 1788813978.362343, "robocli.robot.sim.bridge.environments.libero": 1788792454.8787832, "robocli.agents.prompts": 1788725134.5715678, "robocli.robot.sim.down": 1788792454.880783, "robocli.proxy.__main__": 1788792454.880783, "robocli.runner.session": 1788800412.1990628, "robocli.agents.credentials": 1788725134.5715678, "robocli.doctor.report": 1788726304.619388, "robocli.robot.real.down": 1788729376.7512674, "robocli.robot.sim.client": 1788725669.2626863, "robocli.runner.record": 1788818252.91655, "robocli.robot.sim.bridge.environments": 1788727421.529236, "robocli.robot.sim.bridge.environments.robocasa": 1788727001.2803745, "robocli.cli.state": 1788726304.619388, "robocli.robot.sim.build": 1788727421.529236, "robocli.agents.launcher": 1788800412.1990628, "robocli.robot.sim.bridge": 1788725669.2626863, "robocli.agents.base": 1788814003.5547645, "robocli.plugins.agents": 1788725134.5715678, "robocli": 1788796972.4968114, "robocli.sandbox.build": 1788799730.6968918, "robocli.cli": 1788814100.0575488, "robocli.proxy": 1788800412.196063, "robocli.cli.commands.ps": 1788818320.65909, "robocli.robot.sim.bridge.environments.capbench": 1788727001.2813745}
@@ -0,0 +1,9 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as below. The paper will be released soon."
3
+ type: software
4
+ title: OpenRUA
5
+ authors:
6
+ - name: Terminal World Labs
7
+ repository-code: https://github.com/terminalworld/OpenRUA
8
+ license: Apache-2.0
9
+ date-released: 2026-09-06
@@ -0,0 +1,109 @@
1
+ # Contributing
2
+
3
+ ## Setting up
4
+
5
+ ```bash
6
+ git clone https://github.com/terminalworld/OpenRUA && cd OpenRUA
7
+ python -m venv .venv && .venv/bin/pip install -e ".[dev]"
8
+ .venv/bin/pytest -q && .venv/bin/lint-imports
9
+ ```
10
+
11
+ Both commands must pass before a pull request. `pytest` includes the
12
+ layering contract (`tests/architecture/test_layering.py`) and the agent
13
+ boundary (`tests/agents/test_agent_boundary.py`); `lint-imports` checks
14
+ the same contract from `pyproject.toml`. Tests live in one directory
15
+ per unit (`tests/<unit>/`).
16
+
17
+ ## Adding things
18
+
19
+ - **A robot**: a type under `openrua/configs/robots/<name>.yaml` (facts true
20
+ of it anywhere) and, for simulation, an entry under the simulator's
21
+ `robots:` (docs/your-own-robot.md, docs/simulation.md). `openrua doctor
22
+ <name> --sim <engine>` must load it; `tests/config/test_config.py`
23
+ validates every bundled file.
24
+ - **A simulator**: a file under `openrua/configs/simulators/<engine>.yaml` and
25
+ the engine module its `entry_point` names (under
26
+ `openrua/robot/sim/bridge/engines/`, exposing `ENGINE`: how joints,
27
+ poses and cameras are read and actions assembled; the test suite fails
28
+ an engine with a name of `ENGINE_INTERFACE` missing). It embodies
29
+ robots and loads a native scene; it knows no benchmark.
30
+ - **An agent**: a manifest under `openrua/configs/agents/<name>.yaml`
31
+ and a module under `openrua/plugins/agents/<name>.py` named by its `entry_point`
32
+ (docs/agents.md). `openrua.testing.check_manifest` must pass; the
33
+ bundled agents run through it in `tests/agents/test_agents.py`. Nothing
34
+ outside those two directories may name the agent (the boundary
35
+ test lists the banned tokens).
36
+ - **A benchmark**: a config under `openrua/configs/benchmarks/<name>.yaml`
37
+ naming its robot and simulator, its loader (`entry_point`, a module
38
+ under `openrua/robot/sim/bridge/environments/` exposing `LOADER`: how
39
+ its scenes are built, reset and scored) and its world (`install:` with
40
+ pinned checkouts, a Python version and a requirements lock next to the
41
+ yaml, so `openrua install --bench <name>` builds it; `scenes:`).
42
+ `tests/config/test_install.py` checks every bundled declaration is
43
+ complete and its files ship.
44
+ - **A config key**: add it to `openrua/config/schema.py` with a default and a
45
+ description; unknown keys are errors everywhere, so the schema is
46
+ the single place a key exists.
47
+
48
+ ## Command-line conventions
49
+
50
+ - The main object is a positional argument; configuration is a flag:
51
+ `openrua up panda --sim robosuite --ros-domain 7`, `openrua doctor ur5e --json`.
52
+ An optional filter, mode or setting stays a flag even when it is
53
+ usually given.
54
+ - Every argument has `help=`, and the help says where the default comes
55
+ from (`default: the profile's`, `default: ~/.openrua`).
56
+ - Every command has both `help` (one line, in `openrua --help`) and
57
+ `description` (a sentence or two, in `openrua <verb> --help`).
58
+ Registration order in `build_parser` is the `--help` order.
59
+ - Listings take `--json`; `doctor` prints JSON whenever stdout is not
60
+ a terminal.
61
+ - Errors are `openrua.errors` subclasses raised from library code with
62
+ a `hint`; only the entry point prints and exits (sysexits codes).
63
+ Never `SystemExit` from a library function.
64
+
65
+ ## Naming
66
+
67
+ - Directories and modules take the word the ecosystem already uses for
68
+ the role: `configs/`, `plugins/`, `runner/`, `preflight`, `backend`,
69
+ `registry`, `loader`, `schema`, `manifest`, `hooks`, `operators`,
70
+ `session`. A name must be understood without reading the code.
71
+ - No project-private metaphors in names or prose (no seats, houses,
72
+ walls, occupants, conductors, examiners). The agent is the agent, the
73
+ sandbox is the sandbox, the proxy is the proxy.
74
+ - One noun per thing: the file a trial resolves to is the resolved
75
+ config (`config.yaml`), the checks before the agent starts are
76
+ preflight, the simulator checkout is the simulator.
77
+
78
+ ## Writing
79
+
80
+ - Comments and docstrings state the mechanism and the invariant it
81
+ protects, and nothing else: no dates, ticket or audit identifiers,
82
+ decision records, or the history of how a line came to be. That
83
+ history belongs in git.
84
+ - Plain words, no dashes as punctuation, no emphasis in capitals.
85
+ - A docstring says what the unit does for its caller; a comment says
86
+ why a line is the way it is when the code alone cannot.
87
+
88
+ ## Docs
89
+
90
+ `docs/` is flat; the README's Documentation table lists every page in
91
+ reading order, users first, contributors last. Each page starts with
92
+ front matter: a one-line `summary` and a `read_when` list, so a reader
93
+ knows in two lines whether the page is for them. `docs/cli.md` and
94
+ `docs/config.md` are generated (`python scripts/render_docs.py`; CI
95
+ runs `--check`), so a verb's help text and a schema field's
96
+ `description` are the only places to write them. Worked examples live
97
+ in `examples/`.
98
+
99
+ ## Style
100
+
101
+ - Every file runs on its own with parameters in and values or files
102
+ out; units talk through parameters and files, never environment
103
+ variables (the one exception is `OPENRUA_HOME`, read once at the
104
+ CLI entry point).
105
+ - Knowledge lives in one place: an agent fact in its manifest or hooks
106
+ module, a path rule in `config/paths.py`, a config key in
107
+ `config/schema.py`.
108
+ - Fail loud with the fix in the message; never return a dead artifact
109
+ silently.
openrua-0.0.7/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.