plato-sdk-v2 2.7.9__tar.gz → 2.8.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 (596) hide show
  1. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/PKG-INFO +1 -1
  2. plato_sdk_v2-2.8.1/VERSION +1 -0
  3. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/sandbox.py +6 -0
  4. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/session.py +158 -0
  5. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/session.py +158 -0
  6. plato_sdk_v2-2.7.9/VERSION +0 -1
  7. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/.claude/agents/sim-creator.md +0 -0
  8. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/.gitignore +0 -0
  9. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/BUILDING_SIMS.md +0 -0
  10. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/README.md +0 -0
  11. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/ci/CLAUDE.md +0 -0
  12. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/ci/deploy.sh +0 -0
  13. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/ci/lint.sh +0 -0
  14. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/ci/setup.sh +0 -0
  15. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/ci/version-bump.sh +0 -0
  16. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/AGENT_SPEC.md +0 -0
  17. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/CLI.md +0 -0
  18. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/GENERATING_SIM_SDKS.md +0 -0
  19. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/SIMULATOR_LIFECYCLE.md +0 -0
  20. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/SIM_CREATOR.md +0 -0
  21. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/cli/agent.md +0 -0
  22. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/cli/flows.md +0 -0
  23. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/cli/pm.md +0 -0
  24. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/cli/sandbox.md +0 -0
  25. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/cli/sims.md +0 -0
  26. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/cli/world.md +0 -0
  27. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/sim-creation-pipeline.md +0 -0
  28. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skill-restructure-plan.md +0 -0
  29. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/SIM-CREATION-ARCHITECTURE.md +0 -0
  30. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-config/SKILL.md +0 -0
  31. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-creator/SKILL.md +0 -0
  32. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-debugger/SKILL.md +0 -0
  33. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-flow-audit/SKILL.md +0 -0
  34. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-flow-clear/SKILL.md +0 -0
  35. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-flow-mutations/SKILL.md +0 -0
  36. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-flow-run/SKILL.md +0 -0
  37. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-research/SKILL.md +0 -0
  38. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-review/SKILL.md +0 -0
  39. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-sandbox-login/SKILL.md +0 -0
  40. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-sandbox-services/SKILL.md +0 -0
  41. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-sandbox-start/SKILL.md +0 -0
  42. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-sandbox-worker/SKILL.md +0 -0
  43. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-snapshot/SKILL.md +0 -0
  44. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-submit/SKILL.md +0 -0
  45. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/sim-validate/SKILL.md +0 -0
  46. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/skills/trajectory-analysis/SKILL.md +0 -0
  47. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/testcommit +0 -0
  48. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/docs/unit.sh +0 -0
  49. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/examples/test_session_isolation.py +0 -0
  50. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/examples/test_session_network.py +0 -0
  51. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/__init__.py +0 -0
  52. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/__init__.py +0 -0
  53. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/__init__.py +0 -0
  54. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/__init__.py +0 -0
  55. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/agent_artifacts/__init__.py +0 -0
  56. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/agent_artifacts/archive_agent_artifact.py +0 -0
  57. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/agent_artifacts/create_agent_artifact.py +0 -0
  58. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/agent_artifacts/get_agent_artifact_by_public_id.py +0 -0
  59. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/agent_artifacts/get_agent_artifacts.py +0 -0
  60. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/__init__.py +0 -0
  61. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/cleanup_stale_vms.py +0 -0
  62. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/get_dispatchers.py +0 -0
  63. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/get_nodes_status.py +0 -0
  64. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/get_snapshot_lineage.py +0 -0
  65. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/get_snapshots_status.py +0 -0
  66. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/pause_resume_dispatchers.py +0 -0
  67. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/cluster/prefetch_snapshot.py +0 -0
  68. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/__init__.py +0 -0
  69. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/backup.py +0 -0
  70. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/cleanup.py +0 -0
  71. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/close.py +0 -0
  72. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/close_async.py +0 -0
  73. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/create.py +0 -0
  74. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/create_batch.py +0 -0
  75. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/create_simulator.py +0 -0
  76. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/evaluate_session.py +0 -0
  77. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/generate_mutations.py +0 -0
  78. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/generate_mutations_single.py +0 -0
  79. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_active_session.py +0 -0
  80. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_app_sim_worker_info.py +0 -0
  81. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_cdp_url.py +0 -0
  82. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_flows.py +0 -0
  83. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_interface_worker_info.py +0 -0
  84. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_job_info.py +0 -0
  85. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_job_status.py +0 -0
  86. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_job_worker_info.py +0 -0
  87. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_proxy_url.py +0 -0
  88. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_public_url.py +0 -0
  89. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_simulator_by_name.py +0 -0
  90. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_simulators.py +0 -0
  91. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_state.py +0 -0
  92. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/get_worker_ready.py +0 -0
  93. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/log_state_mutation.py +0 -0
  94. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/rescore_simulator_sessions.py +0 -0
  95. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/reset.py +0 -0
  96. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/score.py +0 -0
  97. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/send_heartbeat.py +0 -0
  98. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/env/update_simulator.py +0 -0
  99. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/__init__.py +0 -0
  100. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/create_test_case_review.py +0 -0
  101. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/evaluate_python.py +0 -0
  102. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/get_all_test_case_reviews.py +0 -0
  103. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/get_scores_by_user.py +0 -0
  104. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/get_scoring.py +0 -0
  105. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/get_test_case_review.py +0 -0
  106. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/human_in_the_loop_scoring.py +0 -0
  107. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/evals/start_eval_from_git.py +0 -0
  108. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/__init__.py +0 -0
  109. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/create_gitea_repository.py +0 -0
  110. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/create_simulator_repository.py +0 -0
  111. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/delete_gitea_repository.py +0 -0
  112. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_accessible_simulators.py +0 -0
  113. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_gitea_credentials.py +0 -0
  114. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_gitea_repository.py +0 -0
  115. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_my_gitea_info.py +0 -0
  116. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_my_repositories.py +0 -0
  117. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_repository_branches.py +0 -0
  118. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_repository_contents.py +0 -0
  119. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_simulator_file_content.py +0 -0
  120. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_simulator_repository.py +0 -0
  121. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_simulator_repository_branches.py +0 -0
  122. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/gitea/get_simulator_repository_contents.py +0 -0
  123. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/jobs/__init__.py +0 -0
  124. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/jobs/get_job_by_id.py +0 -0
  125. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/jobs/get_jobs_by_group_id.py +0 -0
  126. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/jobs/get_keepalive_jobs.py +0 -0
  127. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/jobs/list_jobs.py +0 -0
  128. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/jobs/update_job_status.py +0 -0
  129. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/__init__.py +0 -0
  130. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/create_annotator_assignment.py +0 -0
  131. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/create_org_api_key.py +0 -0
  132. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/create_org_policy.py +0 -0
  133. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/delete_org_api_key.py +0 -0
  134. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/delete_org_policy.py +0 -0
  135. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/get_annotator_assignments.py +0 -0
  136. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/get_org_api_key_policies.py +0 -0
  137. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/get_org_api_keys.py +0 -0
  138. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/get_org_policies.py +0 -0
  139. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/get_organization_concurrency_status.py +0 -0
  140. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/get_organization_members.py +0 -0
  141. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/update_annotator_assignment_stage.py +0 -0
  142. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/organization/update_organization_concurrency_limit.py +0 -0
  143. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/queue/__init__.py +0 -0
  144. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/queue/get_queue_status.py +0 -0
  145. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/queue/get_vm_detail.py +0 -0
  146. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/queue/get_vms.py +0 -0
  147. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/queue/get_workers.py +0 -0
  148. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/__init__.py +0 -0
  149. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/checkpoint_vm.py +0 -0
  150. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/close_vm.py +0 -0
  151. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/create_vm.py +0 -0
  152. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/execute_ssh_command.py +0 -0
  153. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/get_operation_events.py +0 -0
  154. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/healthy_services.py +0 -0
  155. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/healthy_worker.py +0 -0
  156. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/save_vm_snapshot.py +0 -0
  157. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/setup_root_access.py +0 -0
  158. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/setup_sandbox.py +0 -0
  159. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/sandbox/start_worker.py +0 -0
  160. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/__init__.py +0 -0
  161. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/analyze_labels.py +0 -0
  162. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/archive_session.py +0 -0
  163. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/archive_session_logs_endpoint.py +0 -0
  164. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/create_from_labels.py +0 -0
  165. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/create_session_from_browser.py +0 -0
  166. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/create_session_from_env_recording.py +0 -0
  167. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/create_session_from_har.py +0 -0
  168. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_env_recording.py +0 -0
  169. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_grouped_replay_sessions.py +0 -0
  170. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_logs_status.py +0 -0
  171. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_network_requests.py +0 -0
  172. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_next_session_for_annotator.py +0 -0
  173. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_public_benchmark_sessions.py +0 -0
  174. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_replay_score_data.py +0 -0
  175. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_rrweb_actions.py +0 -0
  176. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_rrweb_events.py +0 -0
  177. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_screen_recording.py +0 -0
  178. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_session.py +0 -0
  179. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_session_replays.py +0 -0
  180. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_sessions.py +0 -0
  181. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_sessions_for_archival.py +0 -0
  182. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/get_ui_events.py +0 -0
  183. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/restore_session_logs.py +0 -0
  184. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/score_session_with_config.py +0 -0
  185. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/search_sessions_by_ids.py +0 -0
  186. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/set_session_output.py +0 -0
  187. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/update_session_public.py +0 -0
  188. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/session/update_session_testcase.py +0 -0
  189. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/__init__.py +0 -0
  190. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/add_simulator_review.py +0 -0
  191. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/batch_create_test_cases.py +0 -0
  192. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/batch_get_artifact_metadata.py +0 -0
  193. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_all_simulators_info.py +0 -0
  194. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_db_config.py +0 -0
  195. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_env_flows.py +0 -0
  196. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_plato_config.py +0 -0
  197. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_sessions_batch_by_job_groups.py +0 -0
  198. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_sessions_by_job_group.py +0 -0
  199. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_simulator_by_name.py +0 -0
  200. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_simulator_id.py +0 -0
  201. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_simulator_info.py +0 -0
  202. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_simulator_version_details.py +0 -0
  203. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_simulator_versions.py +0 -0
  204. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_start_path.py +0 -0
  205. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/get_version_by_tag.py +0 -0
  206. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/list_simulators.py +0 -0
  207. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/list_simulators_by_org.py +0 -0
  208. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/list_simulators_status.py +0 -0
  209. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/register.py +0 -0
  210. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/update_simulator.py +0 -0
  211. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/update_simulator_status.py +0 -0
  212. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/simulator/update_tag.py +0 -0
  213. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/__init__.py +0 -0
  214. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/archive_organization_test_case_assignments.py +0 -0
  215. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/archive_organization_testcase.py +0 -0
  216. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/archive_testcase.py +0 -0
  217. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/assign_testcase_to_organizations.py +0 -0
  218. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/auto_verify_testcase.py +0 -0
  219. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/bulk_archive_testcases.py +0 -0
  220. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/convert_text_to_structured_data.py +0 -0
  221. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/create_testcase.py +0 -0
  222. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/create_testcase_set.py +0 -0
  223. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/delete_testcase_set.py +0 -0
  224. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/filter_human_recorder_testcases.py +0 -0
  225. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/generate_outcome_schema.py +0 -0
  226. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/generate_prediction.py +0 -0
  227. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/generate_prediction_from_steps.py +0 -0
  228. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/generate_scoring_config_from_sessions.py +0 -0
  229. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/generate_state_mutations_config_route.py +0 -0
  230. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_human_recorder_tab_counts.py +0 -0
  231. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_human_recorder_testcases.py +0 -0
  232. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_merged_mutations.py +0 -0
  233. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_mutation_groups_for_testcase.py +0 -0
  234. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_next_testcase_for_scoring.py +0 -0
  235. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_organization_test_case_assignments.py +0 -0
  236. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_testcase.py +0 -0
  237. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py +0 -0
  238. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_testcase_sets.py +0 -0
  239. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_testcases.py +0 -0
  240. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/get_testcases_in_set.py +0 -0
  241. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/mark_organization_test_case_completed.py +0 -0
  242. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/update_testcase.py +0 -0
  243. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v1/testcases/version_bump_testcase.py +0 -0
  244. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/__init__.py +0 -0
  245. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/__init__.py +0 -0
  246. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/cache/__init__.py +0 -0
  247. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/cache/clear_all.py +0 -0
  248. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/cache/clear_single_cache.py +0 -0
  249. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/cache/delete_key.py +0 -0
  250. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/cache/get_stats.py +0 -0
  251. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/admin/cache/list_cache_names.py +0 -0
  252. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/__init__.py +0 -0
  253. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/get_agent_ecr_token.py +0 -0
  254. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/get_agent_schema.py +0 -0
  255. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/get_agent_versions.py +0 -0
  256. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/import_agent.py +0 -0
  257. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/list_docker_agents.py +0 -0
  258. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/lookup_agent_version.py +0 -0
  259. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/agents/register_docker_agent.py +0 -0
  260. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/artifacts/__init__.py +0 -0
  261. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/artifacts/get_artifact.py +0 -0
  262. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos/__init__.py +0 -0
  263. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos/launch_job.py +0 -0
  264. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos_packages/__init__.py +0 -0
  265. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos_packages/get_package_versions.py +0 -0
  266. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos_packages/list_chronos_packages.py +0 -0
  267. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos_packages/lookup_package_version.py +0 -0
  268. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos_packages/register_chronos_package.py +0 -0
  269. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/chronos_packages/upload_chronos_package.py +0 -0
  270. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/cluster/__init__.py +0 -0
  271. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/cluster/get_node_config.py +0 -0
  272. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/__init__.py +0 -0
  273. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/checkpoint.py +0 -0
  274. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/close.py +0 -0
  275. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/connect_routing_info.py +0 -0
  276. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/connect_url.py +0 -0
  277. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/disk_snapshot.py +0 -0
  278. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/execute.py +0 -0
  279. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/get_flows.py +0 -0
  280. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/get_plato_config.py +0 -0
  281. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/log_for_job.py +0 -0
  282. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/make.py +0 -0
  283. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/public_url.py +0 -0
  284. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/reset.py +0 -0
  285. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/set_date.py +0 -0
  286. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/setup_sandbox.py +0 -0
  287. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/snapshot.py +0 -0
  288. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/snapshot_store.py +0 -0
  289. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/state.py +0 -0
  290. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/jobs/wait_for_ready.py +0 -0
  291. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/__init__.py +0 -0
  292. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/add_member.py +0 -0
  293. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/create_network.py +0 -0
  294. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/delete_network.py +0 -0
  295. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/get_network.py +0 -0
  296. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/list_members.py +0 -0
  297. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/list_networks.py +0 -0
  298. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/remove_member.py +0 -0
  299. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/networks/update_member.py +0 -0
  300. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/pypi/__init__.py +0 -0
  301. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/pypi/download_package.py +0 -0
  302. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/pypi/get_package_schema.py +0 -0
  303. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/pypi/package_index.py +0 -0
  304. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/pypi/simple_index.py +0 -0
  305. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/pypi/upload_package.py +0 -0
  306. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/__init__.py +0 -0
  307. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/create.py +0 -0
  308. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/deploy.py +0 -0
  309. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/get.py +0 -0
  310. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/handle_get_existing_public_ids.py +0 -0
  311. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/handle_import.py +0 -0
  312. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/list_releases.py +0 -0
  313. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/prep_release_assigned_testcases.py +0 -0
  314. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/releases/update.py +0 -0
  315. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/__init__.py +0 -0
  316. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/add_job.py +0 -0
  317. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/add_ssh_key.py +0 -0
  318. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/checkpoint.py +0 -0
  319. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/close.py +0 -0
  320. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/connect_network.py +0 -0
  321. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/disk_snapshot.py +0 -0
  322. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/evaluate.py +0 -0
  323. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/execute.py +0 -0
  324. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_connect_url.py +0 -0
  325. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_presigned_url.py +0 -0
  326. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_public_url.py +0 -0
  327. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_s3_content.py +0 -0
  328. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_session_details.py +0 -0
  329. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_session_documents.py +0 -0
  330. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_session_flows.py +0 -0
  331. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_session_logs.py +0 -0
  332. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/get_session_plato_config.py +0 -0
  333. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/heartbeat.py +0 -0
  334. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/list_jobs.py +0 -0
  335. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/list_sessions.py +0 -0
  336. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/log_job_mutation.py +0 -0
  337. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/make.py +0 -0
  338. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/remove_job.py +0 -0
  339. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/reset.py +0 -0
  340. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/set_date.py +0 -0
  341. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/setup_sandbox.py +0 -0
  342. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/snapshot.py +0 -0
  343. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/snapshot_store.py +0 -0
  344. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/state.py +0 -0
  345. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/upload_session_documents.py +0 -0
  346. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/sessions/wait_for_ready.py +0 -0
  347. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/user/__init__.py +0 -0
  348. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/v2/user/get_current_user.py +0 -0
  349. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/version/__init__.py +0 -0
  350. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/api/version/check.py +0 -0
  351. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/client.py +0 -0
  352. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/errors.py +0 -0
  353. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/models/__init__.py +0 -0
  354. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_generated/py.typed +0 -0
  355. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/__init__.py +0 -0
  356. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/cli.py +0 -0
  357. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/instruction.py +0 -0
  358. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/parser.py +0 -0
  359. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/python.py +0 -0
  360. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/instruction/helpers.py.jinja +0 -0
  361. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/instruction/init.py.jinja +0 -0
  362. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/api_init.py.jinja +0 -0
  363. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/client.py.jinja +0 -0
  364. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/endpoint.py.jinja +0 -0
  365. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/errors.py.jinja +0 -0
  366. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/package_init.py.jinja +0 -0
  367. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/tag_init.py.jinja +0 -0
  368. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/_sims_generator/templates/python/version_init.py.jinja +0 -0
  369. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/__init__.py +0 -0
  370. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/artifacts.py +0 -0
  371. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/base.py +0 -0
  372. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/build.py +0 -0
  373. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/config.py +0 -0
  374. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/otel.py +0 -0
  375. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/runner.py +0 -0
  376. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/agents/trajectory.py +0 -0
  377. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/__init__.py +0 -0
  378. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/__init__.py +0 -0
  379. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/admin/__init__.py +0 -0
  380. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/admin/clear_database_api_admin_clear_db_post.py +0 -0
  381. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/admin/sync_agents_api_admin_sync_agents_post.py +0 -0
  382. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/admin/sync_all_api_admin_sync_all_post.py +0 -0
  383. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/admin/sync_runtimes_api_admin_sync_runtimes_post.py +0 -0
  384. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/admin/sync_worlds_api_admin_sync_worlds_post.py +0 -0
  385. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/__init__.py +0 -0
  386. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/create_agent.py +0 -0
  387. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/delete_agent.py +0 -0
  388. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/get_agent.py +0 -0
  389. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/get_agent_schema.py +0 -0
  390. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/get_agent_versions.py +0 -0
  391. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/list_agents.py +0 -0
  392. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/agents/lookup_agent.py +0 -0
  393. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/auth/__init__.py +0 -0
  394. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/auth/debug_auth_api_auth_debug_get.py +0 -0
  395. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/auth/get_auth_status_api_auth_status_get.py +0 -0
  396. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/auth/get_current_user_route_api_auth_me_get.py +0 -0
  397. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/checkpoints/__init__.py +0 -0
  398. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/checkpoints/list_checkpoints.py +0 -0
  399. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/checkpoints/preview_checkpoint.py +0 -0
  400. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/default/__init__.py +0 -0
  401. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/default/health.py +0 -0
  402. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/events/__init__.py +0 -0
  403. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/events/get_session_event.py +0 -0
  404. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/events/list_session_events.py +0 -0
  405. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/jobs/__init__.py +0 -0
  406. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/jobs/launch_job.py +0 -0
  407. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/otel/__init__.py +0 -0
  408. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py +0 -0
  409. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py +0 -0
  410. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/__init__.py +0 -0
  411. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py +0 -0
  412. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py +0 -0
  413. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/get_world_schema_api_registry_worlds__package_name__schema_get.py +0 -0
  414. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/get_world_versions_api_registry_worlds__package_name__versions_get.py +0 -0
  415. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +0 -0
  416. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/registry/list_registry_worlds_api_registry_worlds_get.py +0 -0
  417. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/__init__.py +0 -0
  418. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/create_runtime.py +0 -0
  419. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/delete_runtime.py +0 -0
  420. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/get_runtime.py +0 -0
  421. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/get_runtime_logs.py +0 -0
  422. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/list_runtimes.py +0 -0
  423. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/runtimes/test_runtime.py +0 -0
  424. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/secrets/__init__.py +0 -0
  425. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/secrets/create_secret.py +0 -0
  426. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/secrets/delete_secret.py +0 -0
  427. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/secrets/get_secret.py +0 -0
  428. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/secrets/list_secrets.py +0 -0
  429. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/secrets/update_secret.py +0 -0
  430. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/__init__.py +0 -0
  431. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/close_session.py +0 -0
  432. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/complete_session.py +0 -0
  433. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/create_session.py +0 -0
  434. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session.py +0 -0
  435. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session_bash_logs_download.py +0 -0
  436. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session_envs.py +0 -0
  437. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session_live_logs.py +0 -0
  438. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session_logs.py +0 -0
  439. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session_logs_download.py +0 -0
  440. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/get_session_status.py +0 -0
  441. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/list_session_creators.py +0 -0
  442. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/list_sessions.py +0 -0
  443. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/list_tags.py +0 -0
  444. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/sessions/update_session_tags.py +0 -0
  445. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/status/__init__.py +0 -0
  446. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/status/get_status_api_status_get.py +0 -0
  447. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/status/get_version_info_api_version_get.py +0 -0
  448. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/templates/__init__.py +0 -0
  449. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/templates/create_template.py +0 -0
  450. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/templates/delete_template.py +0 -0
  451. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/templates/get_template.py +0 -0
  452. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/templates/list_templates.py +0 -0
  453. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/templates/update_template.py +0 -0
  454. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/trajectories/__init__.py +0 -0
  455. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/trajectories/get_trajectory.py +0 -0
  456. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/trajectories/list_trajectories.py +0 -0
  457. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/worlds/__init__.py +0 -0
  458. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/worlds/create_world.py +0 -0
  459. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/worlds/delete_world.py +0 -0
  460. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/worlds/get_world.py +0 -0
  461. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/api/worlds/list_worlds.py +0 -0
  462. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/client.py +0 -0
  463. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/errors.py +0 -0
  464. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/models/__init__.py +0 -0
  465. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/chronos/py.typed +0 -0
  466. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/__init__.py +0 -0
  467. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/agent.py +0 -0
  468. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/audit_ui.py +0 -0
  469. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/chronos.py +0 -0
  470. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/main.py +0 -0
  471. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/pm.py +0 -0
  472. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/proxy.py +0 -0
  473. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/utils.py +0 -0
  474. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/verify.py +0 -0
  475. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/cli/world.py +0 -0
  476. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/py.typed +0 -0
  477. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/sims/README.md +0 -0
  478. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/sims/__init__.py +0 -0
  479. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/sims/agent_helpers.py +0 -0
  480. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/sims/cli.py +0 -0
  481. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/sims/generate_clients.py +0 -0
  482. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/sims/registry.py +0 -0
  483. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/__init__.py +0 -0
  484. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/audit_ui.py +0 -0
  485. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/__init__.py +0 -0
  486. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/agent.py +0 -0
  487. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/chronos.py +0 -0
  488. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/main.py +0 -0
  489. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/pm.py +0 -0
  490. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/proxy.py +0 -0
  491. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/sandbox.py +0 -0
  492. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/ssh.py +0 -0
  493. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/templates/world-runner.Dockerfile +0 -0
  494. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/utils.py +0 -0
  495. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/verify.py +0 -0
  496. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli/world.py +0 -0
  497. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/cli.py +0 -0
  498. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/config.py +0 -0
  499. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/doordash_tasks.py +0 -0
  500. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/loadtest.py +0 -0
  501. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/test_env.py +0 -0
  502. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/test_env_custom_browser.py +0 -0
  503. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/test_env_sync.py +0 -0
  504. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/test_reuse_env.py +0 -0
  505. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/examples/test_run.py +0 -0
  506. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/exceptions.py +0 -0
  507. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/README.md +0 -0
  508. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/api-client.js +0 -0
  509. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/background.js +0 -0
  510. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/build-sdk.js +0 -0
  511. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/content.js +0 -0
  512. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/manifest.json +0 -0
  513. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/offscreen.html +0 -0
  514. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/offscreen.js +0 -0
  515. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/options.html +0 -0
  516. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/options.js +0 -0
  517. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/package-lock.json +0 -0
  518. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/package.json +0 -0
  519. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js +0 -0
  520. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js.map +0 -0
  521. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/popup.html +0 -0
  522. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/popup.js +0 -0
  523. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/review-panel.html +0 -0
  524. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/review-panel.js +0 -0
  525. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/review-success.html +0 -0
  526. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/review-success.js +0 -0
  527. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/session-active.html +0 -0
  528. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/session-active.js +0 -0
  529. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/session-ended.html +0 -0
  530. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/session-ended.js +0 -0
  531. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/session-setup.html +0 -0
  532. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/session-setup.js +0 -0
  533. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/sessions.html +0 -0
  534. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/sessions.js +0 -0
  535. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/extensions/envgen-recorder/styles.css +0 -0
  536. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/flow_executor.py +0 -0
  537. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/models/__init__.py +0 -0
  538. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/models/build_models.py +0 -0
  539. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/models/env.py +0 -0
  540. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/models/flow.py +0 -0
  541. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/models/sandbox.py +0 -0
  542. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/models/task.py +0 -0
  543. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/sandbox_sdk.py +0 -0
  544. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/sdk.py +0 -0
  545. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/sync_env.py +0 -0
  546. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/sync_flow_executor.py +0 -0
  547. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/sync_sdk.py +0 -0
  548. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v1/utils/proxytunnel.py +0 -0
  549. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/__init__.py +0 -0
  550. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/__init__.py +0 -0
  551. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/artifact.py +0 -0
  552. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/chronos.py +0 -0
  553. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/client.py +0 -0
  554. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/environment.py +0 -0
  555. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/async_/flow_executor.py +0 -0
  556. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/models.py +0 -0
  557. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/__init__.py +0 -0
  558. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/artifact.py +0 -0
  559. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/chronos.py +0 -0
  560. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/client.py +0 -0
  561. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/environment.py +0 -0
  562. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/flow_executor.py +0 -0
  563. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/sync/sandbox.py +0 -0
  564. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/types.py +0 -0
  565. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/utils/__init__.py +0 -0
  566. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/utils/db_cleanup.py +0 -0
  567. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/utils/gateway_tunnel.py +0 -0
  568. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/utils/models.py +0 -0
  569. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/v2/utils/proxy_tunnel.py +0 -0
  570. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/worlds/README.md +0 -0
  571. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/worlds/__init__.py +0 -0
  572. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/worlds/base.py +0 -0
  573. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/worlds/build_hook.py +0 -0
  574. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/worlds/config.py +0 -0
  575. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/plato/worlds/runner.py +0 -0
  576. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/pyproject.toml +0 -0
  577. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/scripts/get_all_artifact_targets.py +0 -0
  578. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/__init__.py +0 -0
  579. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/__init__.py +0 -0
  580. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/conftest.py +0 -0
  581. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/test_browser_agent.py +0 -0
  582. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/test_chronos_callback.py +0 -0
  583. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/test_cleanup_snapshot.py +0 -0
  584. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/test_code_world.py +0 -0
  585. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/integration/test_harbor_agent_runner.py +0 -0
  586. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/sims/__init__.py +0 -0
  587. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/sims/conftest.py +0 -0
  588. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/sims/test_agent_helpers.py +0 -0
  589. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_heartbeat_keepalive.py +0 -0
  590. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_session_serialization.py +0 -0
  591. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_set_date.py +0 -0
  592. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_v2_imports.py +0 -0
  593. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_v2_multisim_integration.py +0 -0
  594. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_v2_session.py +0 -0
  595. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/tests/test_version.py +0 -0
  596. {plato_sdk_v2-2.7.9 → plato_sdk_v2-2.8.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.7.9
3
+ Version: 2.8.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.8.1
@@ -747,6 +747,9 @@ def sandbox_ssh(
747
747
 
748
748
  Uses .plato/ssh_config from 'start'. Extra args after -- are passed to ssh.
749
749
 
750
+ NOTE FOR AGENTS: Do not use this command. Instead, use the raw SSH command
751
+ from 'plato sandbox status' which shows: ssh -F .plato/ssh_config sandbox
752
+
750
753
  Examples:
751
754
  plato sandbox ssh
752
755
  plato sandbox ssh -- -L 8080:localhost:8080
@@ -781,6 +784,9 @@ def sandbox_tunnel(
781
784
 
782
785
  Creates a TCP tunnel through the TLS gateway. Useful for database access.
783
786
 
787
+ NOTE FOR AGENTS: Do not use this command. Use raw SSH port forwarding instead:
788
+ ssh -F .plato/ssh_config sandbox -L <local_port>:127.0.0.1:<remote_port>
789
+
784
790
  Examples:
785
791
  plato sandbox tunnel 5432 # Forward PostgreSQL
786
792
  plato sandbox tunnel 3306 # Forward MySQL
@@ -23,6 +23,8 @@ if TYPE_CHECKING:
23
23
 
24
24
  from plato._generated.api.v2.jobs import get_flows as jobs_get_flows
25
25
  from plato._generated.api.v2.jobs import public_url as jobs_public_url
26
+ from plato._generated.api.v2.jobs import wait_for_ready as jobs_wait_for_ready
27
+ from plato._generated.api.v2.sessions import add_job as sessions_add_job
26
28
  from plato._generated.api.v2.sessions import close as sessions_close
27
29
  from plato._generated.api.v2.sessions import connect_network as sessions_connect_network
28
30
  from plato._generated.api.v2.sessions import disk_snapshot as sessions_disk_snapshot
@@ -31,6 +33,7 @@ from plato._generated.api.v2.sessions import execute as sessions_execute
31
33
  from plato._generated.api.v2.sessions import get_public_url as sessions_get_public_url
32
34
  from plato._generated.api.v2.sessions import heartbeat as sessions_heartbeat
33
35
  from plato._generated.api.v2.sessions import make as sessions_make
36
+ from plato._generated.api.v2.sessions import remove_job as sessions_remove_job
34
37
  from plato._generated.api.v2.sessions import reset as sessions_reset
35
38
  from plato._generated.api.v2.sessions import set_date as sessions_set_date
36
39
  from plato._generated.api.v2.sessions import setup_sandbox as sessions_setup_sandbox
@@ -39,6 +42,7 @@ from plato._generated.api.v2.sessions import snapshot_store as sessions_snapshot
39
42
  from plato._generated.api.v2.sessions import state as sessions_state
40
43
  from plato._generated.api.v2.sessions import wait_for_ready as sessions_wait_for_ready
41
44
  from plato._generated.models import (
45
+ AddJobRequest,
42
46
  AppApiV2SchemasSessionCreateSnapshotRequest,
43
47
  AppApiV2SchemasSessionCreateSnapshotResponse,
44
48
  AppApiV2SchemasSessionEvaluateResponse,
@@ -49,10 +53,12 @@ from plato._generated.models import (
49
53
  CreateDiskSnapshotResponse,
50
54
  CreateSessionFromEnvs,
51
55
  CreateSessionFromTask,
56
+ EnvironmentContext,
52
57
  Envs,
53
58
  ExecuteCommandRequest,
54
59
  ExecuteCommandResponse,
55
60
  Flow,
61
+ RemoveJobRequest,
56
62
  ResetSessionRequest,
57
63
  ResetSessionResponse,
58
64
  RunSessionSource,
@@ -780,6 +786,158 @@ class Session:
780
786
 
781
787
  return result
782
788
 
789
+ async def add_env(
790
+ self,
791
+ env: EnvFromSimulator | EnvFromArtifact | EnvFromResource,
792
+ *,
793
+ timeout: int = 1800,
794
+ heartbeat_timeout: int | None = None,
795
+ wait_for_ready: bool = True,
796
+ ) -> Environment:
797
+ """Add a new environment to this session.
798
+
799
+ The new environment will:
800
+ 1. Become part of the session's job group
801
+ 2. Be matched to an available VM via the resource matcher
802
+ 3. Automatically join the session's WireGuard network if one exists
803
+
804
+ Args:
805
+ env: Environment configuration (from Env.simulator(), Env.artifact(), or Env.resource()).
806
+ timeout: VM timeout in seconds (default: 1800).
807
+ heartbeat_timeout: Per-VM heartbeat timeout. None=use default (300s), 0=disabled.
808
+ wait_for_ready: If True, wait for the job to be ready before returning (default: True).
809
+
810
+ Returns:
811
+ Environment object for the new job.
812
+
813
+ Raises:
814
+ RuntimeError: If session is closed or job creation fails.
815
+ TimeoutError: If wait_for_ready=True and the job doesn't become ready within timeout.
816
+ """
817
+ self._check_closed()
818
+
819
+ # Auto-generate alias if not set
820
+ if env.alias is None:
821
+ existing_aliases = {e.alias for e in self.envs}
822
+ unique_alias = f"env-{uuid.uuid4().hex[:8]}"
823
+ while unique_alias in existing_aliases:
824
+ unique_alias = f"env-{uuid.uuid4().hex[:8]}"
825
+ env.alias = unique_alias
826
+
827
+ # Build request
828
+ request = AddJobRequest(
829
+ env=env,
830
+ timeout=timeout,
831
+ heartbeat_timeout=heartbeat_timeout,
832
+ )
833
+
834
+ # Call the add_job API
835
+ response = await sessions_add_job.asyncio(
836
+ client=self._http,
837
+ session_id=self.session_id,
838
+ body=request,
839
+ x_api_key=self._api_key,
840
+ )
841
+
842
+ # Check for failures
843
+ if not response.env.success:
844
+ raise RuntimeError(f"Failed to add job: {response.env.error}")
845
+
846
+ if not response.env.job_id:
847
+ raise RuntimeError("Backend did not return job_id for new environment")
848
+
849
+ job_id = response.env.job_id
850
+
851
+ # Wait for the job to be ready if requested
852
+ if wait_for_ready:
853
+ ready_response = await jobs_wait_for_ready.asyncio(
854
+ client=self._http,
855
+ job_id=job_id,
856
+ timeout=timeout,
857
+ x_api_key=self._api_key,
858
+ )
859
+
860
+ if not ready_response.ready:
861
+ error = ready_response.error or "Unknown error"
862
+ raise TimeoutError(f"Job {job_id} did not become ready: {error}")
863
+
864
+ # Update internal context with the new environment
865
+ new_env_context = EnvironmentContext(
866
+ job_id=job_id,
867
+ alias=env.alias,
868
+ artifact_id=response.env.artifact_id,
869
+ simulator=getattr(env, "simulator", None),
870
+ )
871
+
872
+ # Add to context's envs list
873
+ if self._context.envs is None:
874
+ self._context.envs = []
875
+ self._context.envs.append(new_env_context)
876
+
877
+ # Reset cached envs to force rebuild
878
+ self._envs = None
879
+
880
+ # Create and return the Environment object
881
+ new_environment = Environment(
882
+ session=self,
883
+ job_id=job_id,
884
+ alias=env.alias,
885
+ artifact_id=response.env.artifact_id,
886
+ )
887
+
888
+ logger.info(f"Added job {job_id} (alias={env.alias}) to session {self.session_id}")
889
+ return new_environment
890
+
891
+ async def remove_env(self, env: Environment | str) -> None:
892
+ """Remove an environment from this session.
893
+
894
+ This will:
895
+ 1. Remove the job from the session's network (if connected)
896
+ 2. Shut down the VM associated with the job
897
+ 3. Cancel the job in the system
898
+
899
+ Args:
900
+ env: Environment object or alias string to remove.
901
+
902
+ Raises:
903
+ RuntimeError: If session is closed or removal fails.
904
+ ValueError: If environment not found in session.
905
+ """
906
+ self._check_closed()
907
+
908
+ # Resolve to job_id
909
+ if isinstance(env, str):
910
+ # Find by alias
911
+ found_env = self.get_env(env)
912
+ if not found_env:
913
+ raise ValueError(f"Environment with alias '{env}' not found in session")
914
+ job_id = found_env.job_id
915
+ alias = env
916
+ else:
917
+ job_id = env.job_id
918
+ alias = env.alias
919
+
920
+ # Call the remove_job API
921
+ request = RemoveJobRequest(job_id=job_id)
922
+ response = await sessions_remove_job.asyncio(
923
+ client=self._http,
924
+ session_id=self.session_id,
925
+ body=request,
926
+ x_api_key=self._api_key,
927
+ )
928
+
929
+ if not response.success:
930
+ raise RuntimeError(f"Failed to remove job {job_id}")
931
+
932
+ # Update internal context - remove the environment
933
+ if self._context.envs:
934
+ self._context.envs = [e for e in self._context.envs if e.job_id != job_id]
935
+
936
+ # Reset cached envs to force rebuild
937
+ self._envs = None
938
+
939
+ logger.info(f"Removed job {job_id} (alias={alias}) from session {self.session_id}")
940
+
783
941
  async def cleanup_databases(self) -> SessionCleanupResult:
784
942
  """Clean up database audit logs for all environments.
785
943
 
@@ -22,6 +22,8 @@ if TYPE_CHECKING:
22
22
 
23
23
  from plato._generated.api.v2.jobs import get_flows as jobs_get_flows
24
24
  from plato._generated.api.v2.jobs import public_url as jobs_public_url
25
+ from plato._generated.api.v2.jobs import wait_for_ready as jobs_wait_for_ready
26
+ from plato._generated.api.v2.sessions import add_job as sessions_add_job
25
27
  from plato._generated.api.v2.sessions import close as sessions_close
26
28
  from plato._generated.api.v2.sessions import connect_network as sessions_connect_network
27
29
  from plato._generated.api.v2.sessions import disk_snapshot as sessions_disk_snapshot
@@ -29,6 +31,7 @@ from plato._generated.api.v2.sessions import evaluate as sessions_evaluate
29
31
  from plato._generated.api.v2.sessions import execute as sessions_execute
30
32
  from plato._generated.api.v2.sessions import heartbeat as sessions_heartbeat
31
33
  from plato._generated.api.v2.sessions import make as sessions_make
34
+ from plato._generated.api.v2.sessions import remove_job as sessions_remove_job
32
35
  from plato._generated.api.v2.sessions import reset as sessions_reset
33
36
  from plato._generated.api.v2.sessions import set_date as sessions_set_date
34
37
  from plato._generated.api.v2.sessions import setup_sandbox as sessions_setup_sandbox
@@ -37,6 +40,7 @@ from plato._generated.api.v2.sessions import snapshot_store as sessions_snapshot
37
40
  from plato._generated.api.v2.sessions import state as sessions_state
38
41
  from plato._generated.api.v2.sessions import wait_for_ready as sessions_wait_for_ready
39
42
  from plato._generated.models import (
43
+ AddJobRequest,
40
44
  AppApiV2SchemasSessionCreateSnapshotRequest,
41
45
  AppApiV2SchemasSessionCreateSnapshotResponse,
42
46
  AppApiV2SchemasSessionEvaluateResponse,
@@ -47,10 +51,12 @@ from plato._generated.models import (
47
51
  CreateDiskSnapshotResponse,
48
52
  CreateSessionFromEnvs,
49
53
  CreateSessionFromTask,
54
+ EnvironmentContext,
50
55
  Envs,
51
56
  ExecuteCommandRequest,
52
57
  ExecuteCommandResponse,
53
58
  Flow,
59
+ RemoveJobRequest,
54
60
  ResetSessionRequest,
55
61
  ResetSessionResponse,
56
62
  RunSessionSource,
@@ -690,6 +696,158 @@ class Session:
690
696
 
691
697
  return result
692
698
 
699
+ def add_env(
700
+ self,
701
+ env: EnvFromSimulator | EnvFromArtifact | EnvFromResource,
702
+ *,
703
+ timeout: int = 1800,
704
+ heartbeat_timeout: int | None = None,
705
+ wait_for_ready: bool = True,
706
+ ) -> Environment:
707
+ """Add a new environment to this session.
708
+
709
+ The new environment will:
710
+ 1. Become part of the session's job group
711
+ 2. Be matched to an available VM via the resource matcher
712
+ 3. Automatically join the session's WireGuard network if one exists
713
+
714
+ Args:
715
+ env: Environment configuration (from Env.simulator(), Env.artifact(), or Env.resource()).
716
+ timeout: VM timeout in seconds (default: 1800).
717
+ heartbeat_timeout: Per-VM heartbeat timeout. None=use default (300s), 0=disabled.
718
+ wait_for_ready: If True, wait for the job to be ready before returning (default: True).
719
+
720
+ Returns:
721
+ Environment object for the new job.
722
+
723
+ Raises:
724
+ RuntimeError: If session is closed or job creation fails.
725
+ TimeoutError: If wait_for_ready=True and the job doesn't become ready within timeout.
726
+ """
727
+ self._check_closed()
728
+
729
+ # Auto-generate alias if not set
730
+ if env.alias is None:
731
+ existing_aliases = {e.alias for e in self.envs}
732
+ unique_alias = f"env-{uuid.uuid4().hex[:8]}"
733
+ while unique_alias in existing_aliases:
734
+ unique_alias = f"env-{uuid.uuid4().hex[:8]}"
735
+ env.alias = unique_alias
736
+
737
+ # Build request
738
+ request = AddJobRequest(
739
+ env=env,
740
+ timeout=timeout,
741
+ heartbeat_timeout=heartbeat_timeout,
742
+ )
743
+
744
+ # Call the add_job API
745
+ response = sessions_add_job.sync(
746
+ client=self._http,
747
+ session_id=self.session_id,
748
+ body=request,
749
+ x_api_key=self._api_key,
750
+ )
751
+
752
+ # Check for failures
753
+ if not response.env.success:
754
+ raise RuntimeError(f"Failed to add job: {response.env.error}")
755
+
756
+ if not response.env.job_id:
757
+ raise RuntimeError("Backend did not return job_id for new environment")
758
+
759
+ job_id = response.env.job_id
760
+
761
+ # Wait for the job to be ready if requested
762
+ if wait_for_ready:
763
+ ready_response = jobs_wait_for_ready.sync(
764
+ client=self._http,
765
+ job_id=job_id,
766
+ timeout=timeout,
767
+ x_api_key=self._api_key,
768
+ )
769
+
770
+ if not ready_response.ready:
771
+ error = ready_response.error or "Unknown error"
772
+ raise TimeoutError(f"Job {job_id} did not become ready: {error}")
773
+
774
+ # Update internal context with the new environment
775
+ new_env_context = EnvironmentContext(
776
+ job_id=job_id,
777
+ alias=env.alias,
778
+ artifact_id=response.env.artifact_id,
779
+ simulator=getattr(env, "simulator", None),
780
+ )
781
+
782
+ # Add to context's envs list
783
+ if self._context.envs is None:
784
+ self._context.envs = []
785
+ self._context.envs.append(new_env_context)
786
+
787
+ # Reset cached envs to force rebuild
788
+ self._envs = None
789
+
790
+ # Create and return the Environment object
791
+ new_environment = Environment(
792
+ session=self,
793
+ job_id=job_id,
794
+ alias=env.alias,
795
+ artifact_id=response.env.artifact_id,
796
+ )
797
+
798
+ logger.info(f"Added job {job_id} (alias={env.alias}) to session {self.session_id}")
799
+ return new_environment
800
+
801
+ def remove_env(self, env: Environment | str) -> None:
802
+ """Remove an environment from this session.
803
+
804
+ This will:
805
+ 1. Remove the job from the session's network (if connected)
806
+ 2. Shut down the VM associated with the job
807
+ 3. Cancel the job in the system
808
+
809
+ Args:
810
+ env: Environment object or alias string to remove.
811
+
812
+ Raises:
813
+ RuntimeError: If session is closed or removal fails.
814
+ ValueError: If environment not found in session.
815
+ """
816
+ self._check_closed()
817
+
818
+ # Resolve to job_id
819
+ if isinstance(env, str):
820
+ # Find by alias
821
+ found_env = self.get_env(env)
822
+ if not found_env:
823
+ raise ValueError(f"Environment with alias '{env}' not found in session")
824
+ job_id = found_env.job_id
825
+ alias = env
826
+ else:
827
+ job_id = env.job_id
828
+ alias = env.alias
829
+
830
+ # Call the remove_job API
831
+ request = RemoveJobRequest(job_id=job_id)
832
+ response = sessions_remove_job.sync(
833
+ client=self._http,
834
+ session_id=self.session_id,
835
+ body=request,
836
+ x_api_key=self._api_key,
837
+ )
838
+
839
+ if not response.success:
840
+ raise RuntimeError(f"Failed to remove job {job_id}")
841
+
842
+ # Update internal context - remove the environment
843
+ if self._context.envs:
844
+ self._context.envs = [e for e in self._context.envs if e.job_id != job_id]
845
+
846
+ # Reset cached envs to force rebuild
847
+ self._envs = None
848
+
849
+ logger.info(f"Removed job {job_id} (alias={alias}) from session {self.session_id}")
850
+
693
851
  def login(
694
852
  self,
695
853
  browser: Browser,
@@ -1 +0,0 @@
1
- 2.7.9
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes