plato-sdk-v2 2.3.11__tar.gz → 2.6.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 (561) hide show
  1. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/PKG-INFO +1 -1
  2. plato_sdk_v2-2.6.1/VERSION +1 -0
  3. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/__init__.py +1 -1
  4. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/get_scores_by_user.py +7 -0
  5. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_testcases.py +14 -0
  6. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/setup_sandbox.py +2 -2
  7. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/models/__init__.py +42 -2
  8. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/config.py +14 -6
  9. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/otel.py +16 -3
  10. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/runner.py +68 -30
  11. plato_sdk_v2-2.6.1/plato/chronos/api/admin/__init__.py +17 -0
  12. plato_sdk_v2-2.6.1/plato/chronos/api/admin/clear_database_api_admin_clear_db_post.py +57 -0
  13. plato_sdk_v2-2.6.1/plato/chronos/api/admin/sync_agents_api_admin_sync_agents_post.py +67 -0
  14. plato_sdk_v2-2.6.1/plato/chronos/api/admin/sync_all_api_admin_sync_all_post.py +67 -0
  15. plato_sdk_v2-2.6.1/plato/chronos/api/admin/sync_runtimes_api_admin_sync_runtimes_post.py +67 -0
  16. plato_sdk_v2-2.6.1/plato/chronos/api/admin/sync_worlds_api_admin_sync_worlds_post.py +67 -0
  17. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/list_agents.py +5 -5
  18. plato_sdk_v2-2.6.1/plato/chronos/api/checkpoints/__init__.py +8 -0
  19. plato_sdk_v2-2.6.1/plato/chronos/api/checkpoints/list_checkpoints.py +52 -0
  20. plato_sdk_v2-2.6.1/plato/chronos/api/checkpoints/preview_checkpoint.py +74 -0
  21. plato_sdk_v2-2.6.1/plato/chronos/api/events/__init__.py +8 -0
  22. plato_sdk_v2-2.6.1/plato/chronos/api/events/get_session_event.py +68 -0
  23. plato_sdk_v2-2.6.1/plato/chronos/api/events/list_session_events.py +62 -0
  24. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/jobs/launch_job.py +8 -2
  25. plato_sdk_v2-2.6.1/plato/chronos/api/otel/__init__.py +8 -0
  26. plato_sdk_v2-2.6.1/plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py +56 -0
  27. plato_sdk_v2-2.6.1/plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py +49 -0
  28. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +5 -5
  29. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/runtimes/__init__.py +2 -1
  30. plato_sdk_v2-2.6.1/plato/chronos/api/runtimes/get_runtime_logs.py +61 -0
  31. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/__init__.py +33 -0
  32. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/close_session.py +66 -0
  33. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/complete_session.py +74 -0
  34. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/create_session.py +69 -0
  35. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/get_session.py +80 -0
  36. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/get_session_bash_logs_download.py +61 -0
  37. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/get_session_envs.py +62 -0
  38. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/get_session_live_logs.py +62 -0
  39. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/sessions/get_session_logs.py +3 -3
  40. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/get_session_status.py +62 -0
  41. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/sessions/list_sessions.py +20 -2
  42. plato_sdk_v2-2.6.1/plato/chronos/api/sessions/list_tags.py +80 -0
  43. plato_sdk_v2-2.3.11/plato/chronos/api/sessions/get_session.py → plato_sdk_v2-2.6.1/plato/chronos/api/sessions/update_session_tags.py +12 -6
  44. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/models/__init__.py +241 -196
  45. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/agent.py +7 -7
  46. plato_sdk_v2-2.6.1/plato/v1/cli/chronos.py +829 -0
  47. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/sandbox.py +47 -1
  48. plato_sdk_v2-2.6.1/plato/v1/cli/templates/world-runner.Dockerfile +27 -0
  49. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/world.py +10 -43
  50. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/__init__.py +8 -0
  51. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/async_/__init__.py +4 -0
  52. plato_sdk_v2-2.6.1/plato/v2/async_/chronos.py +419 -0
  53. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/sync/__init__.py +3 -0
  54. plato_sdk_v2-2.6.1/plato/v2/sync/chronos.py +419 -0
  55. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/worlds/__init__.py +12 -1
  56. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/worlds/base.py +78 -3
  57. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/worlds/config.py +58 -17
  58. plato_sdk_v2-2.6.1/plato/worlds/runner.py +142 -0
  59. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/test_code_world.py +4 -5
  60. plato_sdk_v2-2.3.11/VERSION +0 -1
  61. plato_sdk_v2-2.3.11/plato/chronos/api/sessions/__init__.py +0 -10
  62. plato_sdk_v2-2.3.11/plato/v1/cli/chronos.py +0 -219
  63. plato_sdk_v2-2.3.11/plato/worlds/runner.py +0 -599
  64. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/.claude/agents/sim-creator.md +0 -0
  65. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/.gitignore +0 -0
  66. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/BUILDING_SIMS.md +0 -0
  67. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/README.md +0 -0
  68. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/ci/CLAUDE.md +0 -0
  69. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/ci/deploy.sh +0 -0
  70. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/ci/lint.sh +0 -0
  71. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/ci/setup.sh +0 -0
  72. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/ci/version-bump.sh +0 -0
  73. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/AGENT_SPEC.md +0 -0
  74. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/CLI.md +0 -0
  75. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/GENERATING_SIM_SDKS.md +0 -0
  76. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/SIMULATOR_LIFECYCLE.md +0 -0
  77. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/SIM_CREATOR.md +0 -0
  78. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/cli/agent.md +0 -0
  79. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/cli/flows.md +0 -0
  80. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/cli/pm.md +0 -0
  81. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/cli/sandbox.md +0 -0
  82. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/cli/sims.md +0 -0
  83. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/cli/world.md +0 -0
  84. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/sim-creation-pipeline.md +0 -0
  85. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skill-restructure-plan.md +0 -0
  86. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/SIM-CREATION-ARCHITECTURE.md +0 -0
  87. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-config/SKILL.md +0 -0
  88. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-creator/SKILL.md +0 -0
  89. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-debugger/SKILL.md +0 -0
  90. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-flow-audit/SKILL.md +0 -0
  91. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-flow-clear/SKILL.md +0 -0
  92. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-flow-mutations/SKILL.md +0 -0
  93. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-flow-run/SKILL.md +0 -0
  94. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-research/SKILL.md +0 -0
  95. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-review/SKILL.md +0 -0
  96. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-sandbox-login/SKILL.md +0 -0
  97. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-sandbox-services/SKILL.md +0 -0
  98. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-sandbox-start/SKILL.md +0 -0
  99. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-sandbox-worker/SKILL.md +0 -0
  100. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-snapshot/SKILL.md +0 -0
  101. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-submit/SKILL.md +0 -0
  102. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/skills/sim-validate/SKILL.md +0 -0
  103. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/testcommit +0 -0
  104. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/docs/unit.sh +0 -0
  105. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/__init__.py +0 -0
  106. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/__init__.py +0 -0
  107. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/__init__.py +0 -0
  108. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/agent_artifacts/__init__.py +0 -0
  109. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/agent_artifacts/archive_agent_artifact.py +0 -0
  110. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/agent_artifacts/create_agent_artifact.py +0 -0
  111. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/agent_artifacts/get_agent_artifact_by_public_id.py +0 -0
  112. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/agent_artifacts/get_agent_artifacts.py +0 -0
  113. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/__init__.py +0 -0
  114. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/cleanup_stale_vms.py +0 -0
  115. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/get_dispatchers.py +0 -0
  116. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/get_nodes_status.py +0 -0
  117. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/get_snapshot_lineage.py +0 -0
  118. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/get_snapshots_status.py +0 -0
  119. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/pause_resume_dispatchers.py +0 -0
  120. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/cluster/prefetch_snapshot.py +0 -0
  121. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/__init__.py +0 -0
  122. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/backup.py +0 -0
  123. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/cleanup.py +0 -0
  124. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/close.py +0 -0
  125. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/close_async.py +0 -0
  126. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/create.py +0 -0
  127. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/create_batch.py +0 -0
  128. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/create_simulator.py +0 -0
  129. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/evaluate_session.py +0 -0
  130. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/generate_mutations.py +0 -0
  131. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/generate_mutations_single.py +0 -0
  132. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_active_session.py +0 -0
  133. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_app_sim_worker_info.py +0 -0
  134. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_cdp_url.py +0 -0
  135. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_flows.py +0 -0
  136. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_interface_worker_info.py +0 -0
  137. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_job_info.py +0 -0
  138. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_job_status.py +0 -0
  139. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_job_worker_info.py +0 -0
  140. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_proxy_url.py +0 -0
  141. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_public_url.py +0 -0
  142. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_simulator_by_name.py +0 -0
  143. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_simulators.py +0 -0
  144. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_state.py +0 -0
  145. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/get_worker_ready.py +0 -0
  146. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/log_state_mutation.py +0 -0
  147. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/rescore_simulator_sessions.py +0 -0
  148. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/reset.py +0 -0
  149. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/score.py +0 -0
  150. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/send_heartbeat.py +0 -0
  151. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/env/update_simulator.py +0 -0
  152. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/__init__.py +0 -0
  153. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/create_test_case_review.py +0 -0
  154. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/evaluate_python.py +0 -0
  155. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/get_all_test_case_reviews.py +0 -0
  156. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/get_scoring.py +0 -0
  157. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/get_test_case_review.py +0 -0
  158. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/human_in_the_loop_scoring.py +0 -0
  159. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/evals/start_eval_from_git.py +0 -0
  160. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/__init__.py +0 -0
  161. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/create_gitea_repository.py +0 -0
  162. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/create_simulator_repository.py +0 -0
  163. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/delete_gitea_repository.py +0 -0
  164. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_accessible_simulators.py +0 -0
  165. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_gitea_credentials.py +0 -0
  166. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_gitea_repository.py +0 -0
  167. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_my_gitea_info.py +0 -0
  168. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_my_repositories.py +0 -0
  169. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_repository_branches.py +0 -0
  170. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_repository_contents.py +0 -0
  171. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_simulator_file_content.py +0 -0
  172. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_simulator_repository.py +0 -0
  173. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_simulator_repository_branches.py +0 -0
  174. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/gitea/get_simulator_repository_contents.py +0 -0
  175. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/jobs/__init__.py +0 -0
  176. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/jobs/get_job_by_id.py +0 -0
  177. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/jobs/get_jobs_by_group_id.py +0 -0
  178. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/jobs/get_keepalive_jobs.py +0 -0
  179. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/jobs/list_jobs.py +0 -0
  180. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/jobs/update_job_status.py +0 -0
  181. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/__init__.py +0 -0
  182. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/create_annotator_assignment.py +0 -0
  183. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/create_org_api_key.py +0 -0
  184. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/create_org_policy.py +0 -0
  185. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/delete_org_api_key.py +0 -0
  186. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/delete_org_policy.py +0 -0
  187. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/get_annotator_assignments.py +0 -0
  188. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/get_org_api_key_policies.py +0 -0
  189. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/get_org_api_keys.py +0 -0
  190. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/get_org_policies.py +0 -0
  191. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/get_organization_concurrency_status.py +0 -0
  192. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/get_organization_members.py +0 -0
  193. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/update_annotator_assignment_stage.py +0 -0
  194. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/organization/update_organization_concurrency_limit.py +0 -0
  195. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/queue/__init__.py +0 -0
  196. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/queue/get_queue_status.py +0 -0
  197. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/queue/get_vm_detail.py +0 -0
  198. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/queue/get_vms.py +0 -0
  199. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/queue/get_workers.py +0 -0
  200. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/__init__.py +0 -0
  201. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/checkpoint_vm.py +0 -0
  202. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/close_vm.py +0 -0
  203. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/create_vm.py +0 -0
  204. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/execute_ssh_command.py +0 -0
  205. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/get_operation_events.py +0 -0
  206. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/healthy_services.py +0 -0
  207. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/healthy_worker.py +0 -0
  208. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/save_vm_snapshot.py +0 -0
  209. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/setup_root_access.py +0 -0
  210. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/setup_sandbox.py +0 -0
  211. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/sandbox/start_worker.py +0 -0
  212. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/__init__.py +0 -0
  213. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/analyze_labels.py +0 -0
  214. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/archive_session.py +0 -0
  215. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/archive_session_logs_endpoint.py +0 -0
  216. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/create_from_labels.py +0 -0
  217. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/create_session_from_browser.py +0 -0
  218. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/create_session_from_env_recording.py +0 -0
  219. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/create_session_from_har.py +0 -0
  220. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_env_recording.py +0 -0
  221. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_grouped_replay_sessions.py +0 -0
  222. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_logs_status.py +0 -0
  223. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_network_requests.py +0 -0
  224. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_next_session_for_annotator.py +0 -0
  225. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_public_benchmark_sessions.py +0 -0
  226. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_replay_score_data.py +0 -0
  227. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_rrweb_actions.py +0 -0
  228. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_rrweb_events.py +0 -0
  229. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_screen_recording.py +0 -0
  230. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_session.py +0 -0
  231. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_session_replays.py +0 -0
  232. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_sessions.py +0 -0
  233. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_sessions_for_archival.py +0 -0
  234. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/get_ui_events.py +0 -0
  235. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/restore_session_logs.py +0 -0
  236. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/score_session_with_config.py +0 -0
  237. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/search_sessions_by_ids.py +0 -0
  238. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/set_session_output.py +0 -0
  239. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/update_session_public.py +0 -0
  240. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/session/update_session_testcase.py +0 -0
  241. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/__init__.py +0 -0
  242. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/add_simulator_review.py +0 -0
  243. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/batch_create_test_cases.py +0 -0
  244. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/batch_get_artifact_metadata.py +0 -0
  245. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_all_simulators_info.py +0 -0
  246. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_db_config.py +0 -0
  247. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_env_flows.py +0 -0
  248. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_plato_config.py +0 -0
  249. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_sessions_batch_by_job_groups.py +0 -0
  250. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_sessions_by_job_group.py +0 -0
  251. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_simulator_by_name.py +0 -0
  252. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_simulator_id.py +0 -0
  253. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_simulator_info.py +0 -0
  254. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_simulator_version_details.py +0 -0
  255. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_simulator_versions.py +0 -0
  256. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_start_path.py +0 -0
  257. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/get_version_by_tag.py +0 -0
  258. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/list_simulators.py +0 -0
  259. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/list_simulators_by_org.py +0 -0
  260. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/list_simulators_status.py +0 -0
  261. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/register.py +0 -0
  262. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/update_simulator.py +0 -0
  263. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/update_simulator_status.py +0 -0
  264. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/simulator/update_tag.py +0 -0
  265. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/__init__.py +0 -0
  266. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/archive_organization_test_case_assignments.py +0 -0
  267. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/archive_organization_testcase.py +0 -0
  268. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/archive_testcase.py +0 -0
  269. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/assign_testcase_to_organizations.py +0 -0
  270. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/auto_verify_testcase.py +0 -0
  271. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/bulk_archive_testcases.py +0 -0
  272. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/convert_text_to_structured_data.py +0 -0
  273. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/create_testcase.py +0 -0
  274. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/create_testcase_set.py +0 -0
  275. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/delete_testcase_set.py +0 -0
  276. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/filter_human_recorder_testcases.py +0 -0
  277. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/generate_outcome_schema.py +0 -0
  278. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/generate_prediction.py +0 -0
  279. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/generate_prediction_from_steps.py +0 -0
  280. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/generate_scoring_config_from_sessions.py +0 -0
  281. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/generate_state_mutations_config_route.py +0 -0
  282. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_human_recorder_tab_counts.py +0 -0
  283. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_human_recorder_testcases.py +0 -0
  284. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_merged_mutations.py +0 -0
  285. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_mutation_groups_for_testcase.py +0 -0
  286. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_next_testcase_for_scoring.py +0 -0
  287. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_organization_test_case_assignments.py +0 -0
  288. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_testcase.py +0 -0
  289. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py +0 -0
  290. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_testcase_sets.py +0 -0
  291. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/get_testcases_in_set.py +0 -0
  292. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/mark_organization_test_case_completed.py +0 -0
  293. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/update_testcase.py +0 -0
  294. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v1/testcases/version_bump_testcase.py +0 -0
  295. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/__init__.py +0 -0
  296. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/__init__.py +0 -0
  297. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/get_agent_ecr_token.py +0 -0
  298. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/get_agent_schema.py +0 -0
  299. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/get_agent_versions.py +0 -0
  300. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/import_agent.py +0 -0
  301. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/list_docker_agents.py +0 -0
  302. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/lookup_agent_version.py +0 -0
  303. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/agents/register_docker_agent.py +0 -0
  304. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/artifacts/__init__.py +0 -0
  305. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/artifacts/get_artifact.py +0 -0
  306. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos/__init__.py +0 -0
  307. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos/launch_job.py +0 -0
  308. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos_packages/__init__.py +0 -0
  309. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos_packages/get_package_versions.py +0 -0
  310. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos_packages/list_chronos_packages.py +0 -0
  311. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos_packages/lookup_package_version.py +0 -0
  312. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos_packages/register_chronos_package.py +0 -0
  313. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/chronos_packages/upload_chronos_package.py +0 -0
  314. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/cluster/__init__.py +0 -0
  315. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/cluster/get_node_config.py +0 -0
  316. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/__init__.py +0 -0
  317. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/checkpoint.py +0 -0
  318. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/close.py +0 -0
  319. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/connect_routing_info.py +0 -0
  320. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/connect_url.py +0 -0
  321. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/disk_snapshot.py +0 -0
  322. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/execute.py +0 -0
  323. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/get_flows.py +0 -0
  324. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/get_plato_config.py +0 -0
  325. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/log_for_job.py +0 -0
  326. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/make.py +0 -0
  327. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/public_url.py +0 -0
  328. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/reset.py +0 -0
  329. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/set_date.py +0 -0
  330. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/setup_sandbox.py +0 -0
  331. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/snapshot.py +0 -0
  332. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/snapshot_store.py +0 -0
  333. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/state.py +0 -0
  334. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/jobs/wait_for_ready.py +0 -0
  335. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/pypi/__init__.py +0 -0
  336. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/pypi/download_package.py +0 -0
  337. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/pypi/get_package_schema.py +0 -0
  338. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/pypi/package_index.py +0 -0
  339. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/pypi/simple_index.py +0 -0
  340. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/pypi/upload_package.py +0 -0
  341. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/__init__.py +0 -0
  342. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/create.py +0 -0
  343. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/deploy.py +0 -0
  344. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/get.py +0 -0
  345. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/handle_get_existing_public_ids.py +0 -0
  346. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/handle_import.py +0 -0
  347. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/list_releases.py +0 -0
  348. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/prep_release_assigned_testcases.py +0 -0
  349. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/releases/update.py +0 -0
  350. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/__init__.py +0 -0
  351. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/checkpoint.py +0 -0
  352. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/close.py +0 -0
  353. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/disk_snapshot.py +0 -0
  354. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/evaluate.py +0 -0
  355. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/execute.py +0 -0
  356. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_connect_url.py +0 -0
  357. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_presigned_url.py +0 -0
  358. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_public_url.py +0 -0
  359. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_s3_content.py +0 -0
  360. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_session_details.py +0 -0
  361. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_session_documents.py +0 -0
  362. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_session_flows.py +0 -0
  363. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_session_logs.py +0 -0
  364. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/get_session_plato_config.py +0 -0
  365. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/heartbeat.py +0 -0
  366. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/list_jobs.py +0 -0
  367. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/list_sessions.py +0 -0
  368. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/log_job_mutation.py +0 -0
  369. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/make.py +0 -0
  370. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/reset.py +0 -0
  371. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/set_date.py +0 -0
  372. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/snapshot.py +0 -0
  373. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/snapshot_store.py +0 -0
  374. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/state.py +0 -0
  375. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/upload_session_documents.py +0 -0
  376. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/sessions/wait_for_ready.py +0 -0
  377. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/user/__init__.py +0 -0
  378. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/v2/user/get_current_user.py +0 -0
  379. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/version/__init__.py +0 -0
  380. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/api/version/check.py +0 -0
  381. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/client.py +0 -0
  382. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/errors.py +0 -0
  383. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_generated/py.typed +0 -0
  384. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/__init__.py +0 -0
  385. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/cli.py +0 -0
  386. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/instruction.py +0 -0
  387. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/parser.py +0 -0
  388. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/python.py +0 -0
  389. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/instruction/helpers.py.jinja +0 -0
  390. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/instruction/init.py.jinja +0 -0
  391. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/api_init.py.jinja +0 -0
  392. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/client.py.jinja +0 -0
  393. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/endpoint.py.jinja +0 -0
  394. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/errors.py.jinja +0 -0
  395. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/package_init.py.jinja +0 -0
  396. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/tag_init.py.jinja +0 -0
  397. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/_sims_generator/templates/python/version_init.py.jinja +0 -0
  398. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/__init__.py +0 -0
  399. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/artifacts.py +0 -0
  400. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/base.py +0 -0
  401. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/build.py +0 -0
  402. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/agents/trajectory.py +0 -0
  403. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/__init__.py +0 -0
  404. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/__init__.py +0 -0
  405. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/__init__.py +0 -0
  406. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/create_agent.py +0 -0
  407. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/delete_agent.py +0 -0
  408. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/get_agent.py +0 -0
  409. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/get_agent_schema.py +0 -0
  410. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/get_agent_versions.py +0 -0
  411. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/agents/lookup_agent.py +0 -0
  412. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/auth/__init__.py +0 -0
  413. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/auth/debug_auth_api_auth_debug_get.py +0 -0
  414. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/auth/get_auth_status_api_auth_status_get.py +0 -0
  415. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/auth/get_current_user_route_api_auth_me_get.py +0 -0
  416. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/default/__init__.py +0 -0
  417. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/default/health.py +0 -0
  418. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/jobs/__init__.py +0 -0
  419. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/__init__.py +0 -0
  420. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py +0 -0
  421. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py +0 -0
  422. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/get_world_schema_api_registry_worlds__package_name__schema_get.py +0 -0
  423. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/get_world_versions_api_registry_worlds__package_name__versions_get.py +0 -0
  424. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/registry/list_registry_worlds_api_registry_worlds_get.py +0 -0
  425. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/runtimes/create_runtime.py +0 -0
  426. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/runtimes/delete_runtime.py +0 -0
  427. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/runtimes/get_runtime.py +0 -0
  428. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/runtimes/list_runtimes.py +0 -0
  429. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/runtimes/test_runtime.py +0 -0
  430. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/secrets/__init__.py +0 -0
  431. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/secrets/create_secret.py +0 -0
  432. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/secrets/delete_secret.py +0 -0
  433. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/secrets/get_secret.py +0 -0
  434. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/secrets/list_secrets.py +0 -0
  435. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/secrets/update_secret.py +0 -0
  436. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/sessions/get_session_logs_download.py +0 -0
  437. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/status/__init__.py +0 -0
  438. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/status/get_status_api_status_get.py +0 -0
  439. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/status/get_version_info_api_version_get.py +0 -0
  440. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/templates/__init__.py +0 -0
  441. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/templates/create_template.py +0 -0
  442. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/templates/delete_template.py +0 -0
  443. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/templates/get_template.py +0 -0
  444. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/templates/list_templates.py +0 -0
  445. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/templates/update_template.py +0 -0
  446. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/trajectories/__init__.py +0 -0
  447. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/trajectories/get_trajectory.py +0 -0
  448. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/trajectories/list_trajectories.py +0 -0
  449. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/worlds/__init__.py +0 -0
  450. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/worlds/create_world.py +0 -0
  451. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/worlds/delete_world.py +0 -0
  452. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/worlds/get_world.py +0 -0
  453. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/api/worlds/list_worlds.py +0 -0
  454. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/client.py +0 -0
  455. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/errors.py +0 -0
  456. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/chronos/py.typed +0 -0
  457. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/py.typed +0 -0
  458. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/sims/README.md +0 -0
  459. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/sims/__init__.py +0 -0
  460. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/sims/agent_helpers.py +0 -0
  461. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/sims/cli.py +0 -0
  462. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/sims/generate_clients.py +0 -0
  463. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/sims/registry.py +0 -0
  464. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/__init__.py +0 -0
  465. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/audit_ui.py +0 -0
  466. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/__init__.py +0 -0
  467. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/main.py +0 -0
  468. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/pm.py +0 -0
  469. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/ssh.py +0 -0
  470. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/utils.py +0 -0
  471. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli/verify.py +0 -0
  472. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/cli.py +0 -0
  473. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/config.py +0 -0
  474. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/doordash_tasks.py +0 -0
  475. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/loadtest.py +0 -0
  476. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/test_env.py +0 -0
  477. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/test_env_custom_browser.py +0 -0
  478. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/test_env_sync.py +0 -0
  479. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/test_reuse_env.py +0 -0
  480. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/examples/test_run.py +0 -0
  481. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/exceptions.py +0 -0
  482. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/README.md +0 -0
  483. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/api-client.js +0 -0
  484. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/background.js +0 -0
  485. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/build-sdk.js +0 -0
  486. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/content.js +0 -0
  487. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/manifest.json +0 -0
  488. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/offscreen.html +0 -0
  489. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/offscreen.js +0 -0
  490. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/options.html +0 -0
  491. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/options.js +0 -0
  492. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/package-lock.json +0 -0
  493. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/package.json +0 -0
  494. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js +0 -0
  495. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js.map +0 -0
  496. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/popup.html +0 -0
  497. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/popup.js +0 -0
  498. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/review-panel.html +0 -0
  499. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/review-panel.js +0 -0
  500. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/review-success.html +0 -0
  501. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/review-success.js +0 -0
  502. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/session-active.html +0 -0
  503. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/session-active.js +0 -0
  504. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/session-ended.html +0 -0
  505. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/session-ended.js +0 -0
  506. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/session-setup.html +0 -0
  507. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/session-setup.js +0 -0
  508. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/sessions.html +0 -0
  509. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/sessions.js +0 -0
  510. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/extensions/envgen-recorder/styles.css +0 -0
  511. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/flow_executor.py +0 -0
  512. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/models/__init__.py +0 -0
  513. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/models/build_models.py +0 -0
  514. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/models/env.py +0 -0
  515. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/models/flow.py +0 -0
  516. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/models/sandbox.py +0 -0
  517. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/models/task.py +0 -0
  518. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/sandbox_sdk.py +0 -0
  519. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/sdk.py +0 -0
  520. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/sync_env.py +0 -0
  521. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/sync_flow_executor.py +0 -0
  522. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/sync_sdk.py +0 -0
  523. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v1/utils/proxytunnel.py +0 -0
  524. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/async_/artifact.py +0 -0
  525. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/async_/client.py +0 -0
  526. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/async_/environment.py +0 -0
  527. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/async_/flow_executor.py +0 -0
  528. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/async_/session.py +0 -0
  529. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/models.py +0 -0
  530. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/sync/artifact.py +0 -0
  531. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/sync/client.py +0 -0
  532. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/sync/environment.py +0 -0
  533. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/sync/flow_executor.py +0 -0
  534. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/sync/session.py +0 -0
  535. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/types.py +0 -0
  536. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/utils/__init__.py +0 -0
  537. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/utils/db_cleanup.py +0 -0
  538. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/utils/models.py +0 -0
  539. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/v2/utils/proxy_tunnel.py +0 -0
  540. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/worlds/README.md +0 -0
  541. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/plato/worlds/build_hook.py +0 -0
  542. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/pyproject.toml +0 -0
  543. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/scripts/get_all_artifact_targets.py +0 -0
  544. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/__init__.py +0 -0
  545. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/__init__.py +0 -0
  546. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/conftest.py +0 -0
  547. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/test_browser_agent.py +0 -0
  548. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/test_chronos_callback.py +0 -0
  549. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/test_cleanup_snapshot.py +0 -0
  550. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/integration/test_harbor_agent_runner.py +0 -0
  551. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/sims/__init__.py +0 -0
  552. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/sims/conftest.py +0 -0
  553. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/sims/test_agent_helpers.py +0 -0
  554. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_heartbeat_keepalive.py +0 -0
  555. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_session_serialization.py +0 -0
  556. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_set_date.py +0 -0
  557. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_v2_imports.py +0 -0
  558. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_v2_multisim_integration.py +0 -0
  559. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_v2_session.py +0 -0
  560. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/tests/test_version.py +0 -0
  561. {plato_sdk_v2-2.3.11 → plato_sdk_v2-2.6.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.3.11
3
+ Version: 2.6.1
4
4
  Summary: Python SDK for the Plato API
5
5
  Author-email: Plato <support@plato.so>
6
6
  License-Expression: MIT
@@ -0,0 +1 @@
1
+ 2.6.1
@@ -1,4 +1,4 @@
1
- """Plato API SDK - v0.37.6"""
1
+ """Plato API SDK - v0.41.4"""
2
2
 
3
3
  from . import api, errors, models
4
4
  from .client import AsyncClient, Client
@@ -15,6 +15,7 @@ def _build_request_args(
15
15
  page_size: int | None = None,
16
16
  days: float | None = None,
17
17
  include_human_results: bool | None = False,
18
+ date: str | None = None,
18
19
  authorization: str | None = None,
19
20
  x_api_key: str | None = None,
20
21
  ) -> dict[str, Any]:
@@ -32,6 +33,8 @@ def _build_request_args(
32
33
  params["days"] = days
33
34
  if include_human_results is not None:
34
35
  params["include_human_results"] = include_human_results
36
+ if date is not None:
37
+ params["date"] = date
35
38
 
36
39
  headers: dict[str, str] = {}
37
40
  if authorization is not None:
@@ -54,6 +57,7 @@ def sync(
54
57
  page_size: int | None = None,
55
58
  days: float | None = None,
56
59
  include_human_results: bool | None = False,
60
+ date: str | None = None,
57
61
  authorization: str | None = None,
58
62
  x_api_key: str | None = None,
59
63
  ) -> Any:
@@ -65,6 +69,7 @@ def sync(
65
69
  page_size=page_size,
66
70
  days=days,
67
71
  include_human_results=include_human_results,
72
+ date=date,
68
73
  authorization=authorization,
69
74
  x_api_key=x_api_key,
70
75
  )
@@ -81,6 +86,7 @@ async def asyncio(
81
86
  page_size: int | None = None,
82
87
  days: float | None = None,
83
88
  include_human_results: bool | None = False,
89
+ date: str | None = None,
84
90
  authorization: str | None = None,
85
91
  x_api_key: str | None = None,
86
92
  ) -> Any:
@@ -92,6 +98,7 @@ async def asyncio(
92
98
  page_size=page_size,
93
99
  days=days,
94
100
  include_human_results=include_human_results,
101
+ date=date,
95
102
  authorization=authorization,
96
103
  x_api_key=x_api_key,
97
104
  )
@@ -25,6 +25,8 @@ def _build_request_args(
25
25
  is_sample: bool | None = None,
26
26
  rejected: bool | None = None,
27
27
  exclude_assigned_to_annotators: bool | None = None,
28
+ workorder: str | None = None,
29
+ infeasible: bool | None = None,
28
30
  authorization: str | None = None,
29
31
  x_api_key: str | None = None,
30
32
  ) -> dict[str, Any]:
@@ -62,6 +64,10 @@ def _build_request_args(
62
64
  params["rejected"] = rejected
63
65
  if exclude_assigned_to_annotators is not None:
64
66
  params["exclude_assigned_to_annotators"] = exclude_assigned_to_annotators
67
+ if workorder is not None:
68
+ params["workorder"] = workorder
69
+ if infeasible is not None:
70
+ params["infeasible"] = infeasible
65
71
 
66
72
  headers: dict[str, str] = {}
67
73
  if authorization is not None:
@@ -94,6 +100,8 @@ def sync(
94
100
  is_sample: bool | None = None,
95
101
  rejected: bool | None = None,
96
102
  exclude_assigned_to_annotators: bool | None = None,
103
+ workorder: str | None = None,
104
+ infeasible: bool | None = None,
97
105
  authorization: str | None = None,
98
106
  x_api_key: str | None = None,
99
107
  ) -> Any:
@@ -115,6 +123,8 @@ def sync(
115
123
  is_sample=is_sample,
116
124
  rejected=rejected,
117
125
  exclude_assigned_to_annotators=exclude_assigned_to_annotators,
126
+ workorder=workorder,
127
+ infeasible=infeasible,
118
128
  authorization=authorization,
119
129
  x_api_key=x_api_key,
120
130
  )
@@ -141,6 +151,8 @@ async def asyncio(
141
151
  is_sample: bool | None = None,
142
152
  rejected: bool | None = None,
143
153
  exclude_assigned_to_annotators: bool | None = None,
154
+ workorder: str | None = None,
155
+ infeasible: bool | None = None,
144
156
  authorization: str | None = None,
145
157
  x_api_key: str | None = None,
146
158
  ) -> Any:
@@ -162,6 +174,8 @@ async def asyncio(
162
174
  is_sample=is_sample,
163
175
  rejected=rejected,
164
176
  exclude_assigned_to_annotators=exclude_assigned_to_annotators,
177
+ workorder=workorder,
178
+ infeasible=infeasible,
165
179
  authorization=authorization,
166
180
  x_api_key=x_api_key,
167
181
  )
@@ -53,7 +53,7 @@ def sync(
53
53
  - Mounting /dev/vdb to /mnt/docker for Docker storage
54
54
  - Configuring Docker with overlay2 storage driver
55
55
  - Setting up ECR and Docker Hub authentication
56
- - Creating a docker-user service for non-root Docker access"""
56
+ - Adding plato user to docker group for shared Docker access"""
57
57
 
58
58
  request_args = _build_request_args(
59
59
  session_id=session_id,
@@ -84,7 +84,7 @@ async def asyncio(
84
84
  - Mounting /dev/vdb to /mnt/docker for Docker storage
85
85
  - Configuring Docker with overlay2 storage driver
86
86
  - Setting up ECR and Docker Hub authentication
87
- - Creating a docker-user service for non-root Docker access"""
87
+ - Adding plato user to docker group for shared Docker access"""
88
88
 
89
89
  request_args = _build_request_args(
90
90
  session_id=session_id,
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: tmp28thllk8.json
3
- # timestamp: 2026-01-17T04:45:09+00:00
2
+ # filename: tmppwt3ublb.json
3
+ # timestamp: 2026-01-23T22:08:30+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -840,6 +840,14 @@ class CreateSnapshotResult(BaseModel):
840
840
  """
841
841
  ID of the created snapshot artifact
842
842
  """
843
+ success: Annotated[bool | None, Field(title="Success")] = True
844
+ """
845
+ Whether snapshot creation succeeded
846
+ """
847
+ error: Annotated[str | None, Field(title="Error")] = None
848
+ """
849
+ Error message if failed
850
+ """
843
851
 
844
852
 
845
853
  class CreateTestCaseFromLabelsRequest(BaseModel):
@@ -1714,6 +1722,20 @@ class NodeNatsConfig(BaseModel):
1714
1722
  subject_prefix: Annotated[str | None, Field(title="Subject Prefix")] = "firecracker"
1715
1723
 
1716
1724
 
1725
+ class NodeNebulaConfig(BaseModel):
1726
+ model_config = ConfigDict(
1727
+ extra="allow",
1728
+ )
1729
+ lighthouse_upstream: Annotated[str | None, Field(title="Lighthouse Upstream")] = "100.64.1.1:4242"
1730
+ """
1731
+ Nebula lighthouse upstream address (host:port) for mesh connectivity.
1732
+ """
1733
+ lighthouse_ip: Annotated[str | None, Field(title="Lighthouse Ip")] = "100.64.1.1"
1734
+ """
1735
+ Nebula lighthouse mesh IP address.
1736
+ """
1737
+
1738
+
1717
1739
  class NodePolicyConfig(BaseModel):
1718
1740
  model_config = ConfigDict(
1719
1741
  extra="allow",
@@ -1808,6 +1830,10 @@ class NodeSnapshotStoreConfig(BaseModel):
1808
1830
  """
1809
1831
  Worker threads for snapshot-store compression.
1810
1832
  """
1833
+ upload_workers: Annotated[int | None, Field(title="Upload Workers")] = 6
1834
+ """
1835
+ Number of concurrent snapshot upload jobs.
1836
+ """
1811
1837
  upload_max_attempts: Annotated[int | None, Field(title="Upload Max Attempts")] = 3
1812
1838
  """
1813
1839
  Max upload attempts for snapshot-store uploads.
@@ -1846,6 +1872,12 @@ class NodeStreamConfig(BaseModel):
1846
1872
  resource_matcher_key_prefix: Annotated[str | None, Field(title="Resource Matcher Key Prefix")] = (
1847
1873
  "vm-resource-matcher"
1848
1874
  )
1875
+ artifact_upload_notification_channel: Annotated[str | None, Field(title="Artifact Upload Notification Channel")] = (
1876
+ "artifact-upload-notifications"
1877
+ )
1878
+ """
1879
+ Pubsub channel for artifact upload status updates.
1880
+ """
1849
1881
 
1850
1882
 
1851
1883
  class OODRequestLogInput(BaseModel):
@@ -4358,6 +4390,10 @@ class NodeConfig(BaseModel):
4358
4390
  """
4359
4391
  Build configuration including SSH keys for VMs
4360
4392
  """
4393
+ nebula: NodeNebulaConfig | None = None
4394
+ """
4395
+ Nebula mesh VPN configuration for lighthouse connectivity
4396
+ """
4361
4397
 
4362
4398
 
4363
4399
  class QueueStatusResponse(BaseModel):
@@ -4501,6 +4537,8 @@ class TestCaseCreateRequest(BaseModel):
4501
4537
  simulatorId: Annotated[int | None, Field(title="Simulatorid")] = None
4502
4538
  simulatorArtifactId: Annotated[str | None, Field(title="Simulatorartifactid")] = None
4503
4539
  simulatorArtifactIds: Annotated[list[str] | None, Field(title="Simulatorartifactids")] = None
4540
+ workorder: Annotated[str | None, Field(title="Workorder")] = None
4541
+ infeasible: Annotated[bool | None, Field(title="Infeasible")] = None
4504
4542
 
4505
4543
 
4506
4544
  class TestCaseUpdateRequest(BaseModel):
@@ -4525,6 +4563,8 @@ class TestCaseUpdateRequest(BaseModel):
4525
4563
  simulatorArtifactId: Annotated[str | None, Field(title="Simulatorartifactid")] = None
4526
4564
  simulatorArtifactIds: Annotated[list[str] | None, Field(title="Simulatorartifactids")] = None
4527
4565
  mutationIgnoreConfig: DatabaseIgnoreConfig | None = None
4566
+ workorder: Annotated[str | None, Field(title="Workorder")] = None
4567
+ infeasible: Annotated[bool | None, Field(title="Infeasible")] = None
4528
4568
 
4529
4569
 
4530
4570
  class WaitForReadyResponse(BaseModel):
@@ -18,7 +18,6 @@ Example:
18
18
  from __future__ import annotations
19
19
 
20
20
  import json
21
- from pathlib import Path
22
21
  from typing import Any
23
22
 
24
23
  from pydantic_settings import BaseSettings, SettingsConfigDict
@@ -147,9 +146,18 @@ class AgentConfig(BaseSettings):
147
146
  return result
148
147
 
149
148
  @classmethod
150
- def from_file(cls, path: str | Path) -> AgentConfig:
151
- """Load config from a JSON file."""
152
- path = Path(path)
153
- with open(path) as f:
154
- data = json.load(f)
149
+ def from_env(cls) -> AgentConfig:
150
+ """Load config from AGENT_CONFIG_B64 environment variable.
151
+
152
+ The runner passes config as base64-encoded JSON in the
153
+ AGENT_CONFIG_B64 environment variable.
154
+ """
155
+ import base64
156
+ import os
157
+
158
+ config_b64 = os.environ.get("AGENT_CONFIG_B64")
159
+ if not config_b64:
160
+ raise ValueError("AGENT_CONFIG_B64 environment variable not set")
161
+ config_json = base64.b64decode(config_b64).decode()
162
+ data = json.loads(config_json)
155
163
  return cls(**data)
@@ -164,8 +164,12 @@ def init_tracing(
164
164
  _module_logger.error(f"Failed to initialize tracing: {e}")
165
165
 
166
166
 
167
- def shutdown_tracing() -> None:
168
- """Shutdown the tracer provider and flush spans."""
167
+ def shutdown_tracing(timeout_millis: int = 30000) -> None:
168
+ """Shutdown the tracer provider and flush spans.
169
+
170
+ Args:
171
+ timeout_millis: Timeout in milliseconds to wait for flush (default 30s)
172
+ """
169
173
  global _tracer_provider, _initialized, _log_handler
170
174
 
171
175
  # Remove log handler
@@ -179,9 +183,18 @@ def shutdown_tracing() -> None:
179
183
 
180
184
  if _tracer_provider:
181
185
  try:
186
+ # Force flush all pending spans before shutdown
187
+ print(f"[OTel] Flushing spans (timeout={timeout_millis}ms)...")
188
+ flush_success = _tracer_provider.force_flush(timeout_millis=timeout_millis)
189
+ if flush_success:
190
+ print("[OTel] Span flush completed successfully")
191
+ else:
192
+ print("[OTel] Span flush timed out or failed")
193
+
182
194
  _tracer_provider.shutdown()
183
- _module_logger.info("OTel tracing shutdown complete")
195
+ print("[OTel] Tracing shutdown complete")
184
196
  except Exception as e:
197
+ print(f"[OTel] Error shutting down tracer: {e}")
185
198
  _module_logger.warning(f"Error shutting down tracer: {e}")
186
199
 
187
200
  _tracer_provider = None
@@ -10,44 +10,45 @@ Agents emit their own OTel spans for trajectory events. This runner:
10
10
  from __future__ import annotations
11
11
 
12
12
  import asyncio
13
+ import base64
13
14
  import json
14
15
  import logging
15
16
  import os
16
17
  import platform
17
- import tempfile
18
+ import uuid
18
19
 
19
20
  from opentelemetry import trace
20
21
 
21
- from plato.agents.artifacts import upload_artifacts
22
-
23
22
  logger = logging.getLogger(__name__)
24
23
 
25
24
 
26
25
  async def run_agent(
27
26
  image: str,
28
27
  config: dict,
29
- secrets: dict[str, str],
30
28
  instruction: str,
31
- workspace: str,
29
+ workspace: str | None = None,
32
30
  logs_dir: str | None = None,
33
31
  pull: bool = True,
34
- ) -> None:
32
+ ) -> str:
35
33
  """Run an agent in a Docker container.
36
34
 
37
35
  Args:
38
36
  image: Docker image URI
39
- config: Agent configuration dict
40
- secrets: Secret values (API keys, etc.)
37
+ config: Agent configuration dict (includes secrets)
41
38
  instruction: Task instruction for the agent
42
- workspace: Host directory to mount as /workspace
43
- logs_dir: Host directory for logs (temp dir if None)
39
+ workspace: Docker volume name for workspace (created if None)
40
+ logs_dir: Ignored (kept for backwards compatibility)
44
41
  pull: Whether to pull the image first
45
42
 
43
+ Returns:
44
+ The container name that was created (for cleanup purposes)
45
+
46
46
  Note: Agents handle their own OTel tracing. This runner only passes
47
47
  the trace context (TRACEPARENT) so agent spans link to the parent step.
48
- """
49
- logs_dir = logs_dir or tempfile.mkdtemp(prefix="agent_logs_")
50
48
 
49
+ Note: This uses Docker volumes (not bind mounts) for DIND compatibility.
50
+ The workspace parameter should be a Docker volume name.
51
+ """
51
52
  # Get session info from environment variables
52
53
  session_id = os.environ.get("SESSION_ID")
53
54
  otel_url = os.environ.get("OTEL_EXPORTER_OTLP_ENDPOINT")
@@ -64,15 +65,41 @@ async def run_agent(
64
65
  )
65
66
  await pull_proc.wait()
66
67
 
67
- # Setup
68
- os.makedirs(os.path.join(logs_dir, "agent"), exist_ok=True)
69
- config_file = tempfile.NamedTemporaryFile(mode="w", suffix=".json", delete=False)
70
- json.dump(config, config_file)
71
- config_file.close()
68
+ # Encode config as base64 to pass via environment variable
69
+ # This avoids file mount issues in Docker-in-Docker scenarios
70
+ config_json = json.dumps(config)
71
+ config_b64 = base64.b64encode(config_json.encode()).decode()
72
+
73
+ # Generate a unique container name for inspection
74
+ container_name = f"agent-{uuid.uuid4().hex[:8]}"
75
+
76
+ # Use WORKSPACE_VOLUME env var if set (for DIND compatibility)
77
+ # Otherwise create a new volume
78
+ workspace_volume = os.environ.get("WORKSPACE_VOLUME") or workspace or f"workspace-{uuid.uuid4().hex[:8]}"
79
+ if not os.environ.get("WORKSPACE_VOLUME") and not workspace:
80
+ await asyncio.create_subprocess_exec(
81
+ "docker",
82
+ "volume",
83
+ "create",
84
+ workspace_volume,
85
+ stdout=asyncio.subprocess.DEVNULL,
86
+ stderr=asyncio.subprocess.DEVNULL,
87
+ )
88
+
89
+ # Create logs volume
90
+ logs_volume = f"logs-{uuid.uuid4().hex[:8]}"
91
+ await asyncio.create_subprocess_exec(
92
+ "docker",
93
+ "volume",
94
+ "create",
95
+ logs_volume,
96
+ stdout=asyncio.subprocess.DEVNULL,
97
+ stderr=asyncio.subprocess.DEVNULL,
98
+ )
72
99
 
73
100
  try:
74
101
  # Build docker command
75
- docker_cmd = ["docker", "run", "--rm", "--privileged"]
102
+ docker_cmd = ["docker", "run", "--rm", "--privileged", "--name", container_name]
76
103
 
77
104
  # Determine if we need host networking
78
105
  use_host_network = False
@@ -97,18 +124,19 @@ async def run_agent(
97
124
  if use_host_network:
98
125
  docker_cmd.extend(["--network=host", "--add-host=localhost:127.0.0.1"])
99
126
 
127
+ # Use Docker volumes instead of bind mounts for DIND compatibility
100
128
  docker_cmd.extend(
101
129
  [
102
130
  "-v",
103
- f"{workspace}:/workspace",
104
- "-v",
105
- f"{logs_dir}:/logs",
131
+ f"{workspace_volume}:/workspace",
106
132
  "-v",
107
- f"{config_file.name}:/config.json:ro",
133
+ f"{logs_volume}:/logs",
108
134
  "-v",
109
135
  "/var/run/docker.sock:/var/run/docker.sock",
110
136
  "-w",
111
137
  "/workspace",
138
+ "-e",
139
+ f"AGENT_CONFIG_B64={config_b64}",
112
140
  ]
113
141
  )
114
142
 
@@ -143,14 +171,13 @@ async def run_agent(
143
171
  ]
144
172
  )
145
173
 
146
- for key, value in secrets.items():
147
- docker_cmd.extend(["-e", f"{key.upper()}={value}"])
148
-
149
174
  docker_cmd.append(image)
150
175
 
151
176
  # Pass instruction via CLI arg
152
177
  docker_cmd.extend(["--instruction", instruction])
153
178
 
179
+ logger.debug(f"Starting container: {container_name}")
180
+
154
181
  # Run container - agents emit their own OTel spans
155
182
  # Use large limit to handle agents that output long lines (e.g., JSON with file contents)
156
183
  process = await asyncio.create_subprocess_exec(
@@ -160,7 +187,7 @@ async def run_agent(
160
187
  limit=100 * 1024 * 1024, # 100MB buffer limit
161
188
  )
162
189
 
163
- # Capture output for error reporting using chunked reads to handle large lines
190
+ # Stream and capture output for error reporting using chunked reads to handle large lines
164
191
  output_lines: list[str] = []
165
192
  assert process.stdout is not None
166
193
  buffer = ""
@@ -176,10 +203,13 @@ async def run_agent(
176
203
  while "\n" in buffer:
177
204
  line, buffer = buffer.split("\n", 1)
178
205
  output_lines.append(line)
206
+ # Print agent output in real-time
207
+ print(f"[agent] {line}")
179
208
 
180
209
  # Handle any remaining content in buffer
181
210
  if buffer.strip():
182
211
  output_lines.append(buffer)
212
+ print(f"[agent] {buffer}")
183
213
 
184
214
  await process.wait()
185
215
 
@@ -189,8 +219,16 @@ async def run_agent(
189
219
  raise RuntimeError(f"Agent failed with exit code {exit_code}\n\nAgent output:\n{error_context}")
190
220
 
191
221
  finally:
192
- os.unlink(config_file.name)
222
+ # Clean up volumes
223
+ await asyncio.create_subprocess_exec(
224
+ "docker",
225
+ "volume",
226
+ "rm",
227
+ "-f",
228
+ logs_volume,
229
+ stdout=asyncio.subprocess.DEVNULL,
230
+ stderr=asyncio.subprocess.DEVNULL,
231
+ )
232
+ # Note: workspace_volume is not cleaned up as it may be shared
193
233
 
194
- # Upload artifacts if we have upload URL configured
195
- if upload_url:
196
- await upload_artifacts(upload_url, logs_dir)
234
+ return container_name
@@ -0,0 +1,17 @@
1
+ """API endpoints."""
2
+
3
+ from . import (
4
+ clear_database_api_admin_clear_db_post,
5
+ sync_agents_api_admin_sync_agents_post,
6
+ sync_all_api_admin_sync_all_post,
7
+ sync_runtimes_api_admin_sync_runtimes_post,
8
+ sync_worlds_api_admin_sync_worlds_post,
9
+ )
10
+
11
+ __all__ = [
12
+ "sync_agents_api_admin_sync_agents_post",
13
+ "sync_worlds_api_admin_sync_worlds_post",
14
+ "sync_runtimes_api_admin_sync_runtimes_post",
15
+ "sync_all_api_admin_sync_all_post",
16
+ "clear_database_api_admin_clear_db_post",
17
+ ]
@@ -0,0 +1,57 @@
1
+ """Clear Database"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ import httpx
8
+
9
+ from plato.chronos.errors import raise_for_status
10
+ from plato.chronos.models import ClearDbResult
11
+
12
+
13
+ def _build_request_args(
14
+ x_api_key: str | None = None,
15
+ ) -> dict[str, Any]:
16
+ """Build request arguments."""
17
+ url = "/api/admin/clear-db"
18
+
19
+ headers: dict[str, str] = {}
20
+ if x_api_key is not None:
21
+ headers["X-API-Key"] = x_api_key
22
+
23
+ return {
24
+ "method": "POST",
25
+ "url": url,
26
+ "headers": headers,
27
+ }
28
+
29
+
30
+ def sync(
31
+ client: httpx.Client,
32
+ x_api_key: str | None = None,
33
+ ) -> ClearDbResult:
34
+ """Clear ALL data from the database. Only available in local environment."""
35
+
36
+ request_args = _build_request_args(
37
+ x_api_key=x_api_key,
38
+ )
39
+
40
+ response = client.request(**request_args)
41
+ raise_for_status(response)
42
+ return ClearDbResult.model_validate(response.json())
43
+
44
+
45
+ async def asyncio(
46
+ client: httpx.AsyncClient,
47
+ x_api_key: str | None = None,
48
+ ) -> ClearDbResult:
49
+ """Clear ALL data from the database. Only available in local environment."""
50
+
51
+ request_args = _build_request_args(
52
+ x_api_key=x_api_key,
53
+ )
54
+
55
+ response = await client.request(**request_args)
56
+ raise_for_status(response)
57
+ return ClearDbResult.model_validate(response.json())
@@ -0,0 +1,67 @@
1
+ """Sync Agents"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ import httpx
8
+
9
+ from plato.chronos.errors import raise_for_status
10
+ from plato.chronos.models import SyncResult
11
+
12
+
13
+ def _build_request_args(
14
+ source_url: str,
15
+ x_api_key: str | None = None,
16
+ ) -> dict[str, Any]:
17
+ """Build request arguments."""
18
+ url = "/api/admin/sync/agents"
19
+
20
+ params: dict[str, Any] = {}
21
+ if source_url is not None:
22
+ params["source_url"] = source_url
23
+
24
+ headers: dict[str, str] = {}
25
+ if x_api_key is not None:
26
+ headers["X-API-Key"] = x_api_key
27
+
28
+ return {
29
+ "method": "POST",
30
+ "url": url,
31
+ "params": params,
32
+ "headers": headers,
33
+ }
34
+
35
+
36
+ def sync(
37
+ client: httpx.Client,
38
+ source_url: str,
39
+ x_api_key: str | None = None,
40
+ ) -> SyncResult:
41
+ """Sync agents from source Chronos to local database."""
42
+
43
+ request_args = _build_request_args(
44
+ source_url=source_url,
45
+ x_api_key=x_api_key,
46
+ )
47
+
48
+ response = client.request(**request_args)
49
+ raise_for_status(response)
50
+ return SyncResult.model_validate(response.json())
51
+
52
+
53
+ async def asyncio(
54
+ client: httpx.AsyncClient,
55
+ source_url: str,
56
+ x_api_key: str | None = None,
57
+ ) -> SyncResult:
58
+ """Sync agents from source Chronos to local database."""
59
+
60
+ request_args = _build_request_args(
61
+ source_url=source_url,
62
+ x_api_key=x_api_key,
63
+ )
64
+
65
+ response = await client.request(**request_args)
66
+ raise_for_status(response)
67
+ return SyncResult.model_validate(response.json())