plato-sdk-v2 2.8.1__tar.gz → 2.8.3__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 (597) hide show
  1. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/PKG-INFO +1 -1
  2. plato_sdk_v2-2.8.3/VERSION +1 -0
  3. {plato_sdk_v2-2.8.1/plato/v1 → plato_sdk_v2-2.8.3/plato}/cli/pm.py +166 -178
  4. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/sandbox.py +3 -2
  5. plato_sdk_v2-2.8.3/plato/v1/cli/pm.py +14 -0
  6. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/sandbox.py +47 -30
  7. plato_sdk_v2-2.8.1/VERSION +0 -1
  8. plato_sdk_v2-2.8.1/plato/cli/pm.py +0 -1204
  9. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/.claude/agents/sim-creator.md +0 -0
  10. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/.gitignore +0 -0
  11. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/BUILDING_SIMS.md +0 -0
  12. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/README.md +0 -0
  13. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/ci/CLAUDE.md +0 -0
  14. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/ci/deploy.sh +0 -0
  15. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/ci/lint.sh +0 -0
  16. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/ci/setup.sh +0 -0
  17. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/ci/version-bump.sh +0 -0
  18. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/AGENT_SPEC.md +0 -0
  19. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/CLI.md +0 -0
  20. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/GENERATING_SIM_SDKS.md +0 -0
  21. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/SIMULATOR_LIFECYCLE.md +0 -0
  22. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/SIM_CREATOR.md +0 -0
  23. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/cli/agent.md +0 -0
  24. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/cli/flows.md +0 -0
  25. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/cli/pm.md +0 -0
  26. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/cli/sandbox.md +0 -0
  27. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/cli/sims.md +0 -0
  28. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/cli/world.md +0 -0
  29. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/sim-creation-pipeline.md +0 -0
  30. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skill-restructure-plan.md +0 -0
  31. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/SIM-CREATION-ARCHITECTURE.md +0 -0
  32. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-config/SKILL.md +0 -0
  33. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-creator/SKILL.md +0 -0
  34. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-debugger/SKILL.md +0 -0
  35. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-flow-audit/SKILL.md +0 -0
  36. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-flow-clear/SKILL.md +0 -0
  37. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-flow-mutations/SKILL.md +0 -0
  38. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-flow-run/SKILL.md +0 -0
  39. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-research/SKILL.md +0 -0
  40. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-review/SKILL.md +0 -0
  41. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-sandbox-login/SKILL.md +0 -0
  42. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-sandbox-services/SKILL.md +0 -0
  43. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-sandbox-start/SKILL.md +0 -0
  44. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-sandbox-worker/SKILL.md +0 -0
  45. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-snapshot/SKILL.md +0 -0
  46. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-submit/SKILL.md +0 -0
  47. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/sim-validate/SKILL.md +0 -0
  48. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/skills/trajectory-analysis/SKILL.md +0 -0
  49. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/testcommit +0 -0
  50. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/docs/unit.sh +0 -0
  51. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/examples/test_session_isolation.py +0 -0
  52. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/examples/test_session_network.py +0 -0
  53. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/__init__.py +0 -0
  54. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/__init__.py +0 -0
  55. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/__init__.py +0 -0
  56. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/__init__.py +0 -0
  57. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/agent_artifacts/__init__.py +0 -0
  58. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/agent_artifacts/archive_agent_artifact.py +0 -0
  59. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/agent_artifacts/create_agent_artifact.py +0 -0
  60. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/agent_artifacts/get_agent_artifact_by_public_id.py +0 -0
  61. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/agent_artifacts/get_agent_artifacts.py +0 -0
  62. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/__init__.py +0 -0
  63. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/cleanup_stale_vms.py +0 -0
  64. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/get_dispatchers.py +0 -0
  65. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/get_nodes_status.py +0 -0
  66. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/get_snapshot_lineage.py +0 -0
  67. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/get_snapshots_status.py +0 -0
  68. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/pause_resume_dispatchers.py +0 -0
  69. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/cluster/prefetch_snapshot.py +0 -0
  70. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/__init__.py +0 -0
  71. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/backup.py +0 -0
  72. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/cleanup.py +0 -0
  73. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/close.py +0 -0
  74. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/close_async.py +0 -0
  75. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/create.py +0 -0
  76. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/create_batch.py +0 -0
  77. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/create_simulator.py +0 -0
  78. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/evaluate_session.py +0 -0
  79. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/generate_mutations.py +0 -0
  80. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/generate_mutations_single.py +0 -0
  81. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_active_session.py +0 -0
  82. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_app_sim_worker_info.py +0 -0
  83. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_cdp_url.py +0 -0
  84. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_flows.py +0 -0
  85. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_interface_worker_info.py +0 -0
  86. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_job_info.py +0 -0
  87. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_job_status.py +0 -0
  88. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_job_worker_info.py +0 -0
  89. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_proxy_url.py +0 -0
  90. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_public_url.py +0 -0
  91. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_simulator_by_name.py +0 -0
  92. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_simulators.py +0 -0
  93. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_state.py +0 -0
  94. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/get_worker_ready.py +0 -0
  95. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/log_state_mutation.py +0 -0
  96. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/rescore_simulator_sessions.py +0 -0
  97. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/reset.py +0 -0
  98. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/score.py +0 -0
  99. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/send_heartbeat.py +0 -0
  100. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/env/update_simulator.py +0 -0
  101. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/__init__.py +0 -0
  102. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/create_test_case_review.py +0 -0
  103. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/evaluate_python.py +0 -0
  104. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/get_all_test_case_reviews.py +0 -0
  105. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/get_scores_by_user.py +0 -0
  106. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/get_scoring.py +0 -0
  107. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/get_test_case_review.py +0 -0
  108. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/human_in_the_loop_scoring.py +0 -0
  109. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/evals/start_eval_from_git.py +0 -0
  110. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/__init__.py +0 -0
  111. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/create_gitea_repository.py +0 -0
  112. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/create_simulator_repository.py +0 -0
  113. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/delete_gitea_repository.py +0 -0
  114. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_accessible_simulators.py +0 -0
  115. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_gitea_credentials.py +0 -0
  116. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_gitea_repository.py +0 -0
  117. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_my_gitea_info.py +0 -0
  118. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_my_repositories.py +0 -0
  119. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_repository_branches.py +0 -0
  120. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_repository_contents.py +0 -0
  121. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_simulator_file_content.py +0 -0
  122. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_simulator_repository.py +0 -0
  123. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_simulator_repository_branches.py +0 -0
  124. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/gitea/get_simulator_repository_contents.py +0 -0
  125. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/jobs/__init__.py +0 -0
  126. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/jobs/get_job_by_id.py +0 -0
  127. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/jobs/get_jobs_by_group_id.py +0 -0
  128. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/jobs/get_keepalive_jobs.py +0 -0
  129. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/jobs/list_jobs.py +0 -0
  130. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/jobs/update_job_status.py +0 -0
  131. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/__init__.py +0 -0
  132. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/create_annotator_assignment.py +0 -0
  133. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/create_org_api_key.py +0 -0
  134. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/create_org_policy.py +0 -0
  135. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/delete_org_api_key.py +0 -0
  136. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/delete_org_policy.py +0 -0
  137. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/get_annotator_assignments.py +0 -0
  138. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/get_org_api_key_policies.py +0 -0
  139. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/get_org_api_keys.py +0 -0
  140. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/get_org_policies.py +0 -0
  141. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/get_organization_concurrency_status.py +0 -0
  142. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/get_organization_members.py +0 -0
  143. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/update_annotator_assignment_stage.py +0 -0
  144. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/organization/update_organization_concurrency_limit.py +0 -0
  145. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/queue/__init__.py +0 -0
  146. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/queue/get_queue_status.py +0 -0
  147. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/queue/get_vm_detail.py +0 -0
  148. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/queue/get_vms.py +0 -0
  149. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/queue/get_workers.py +0 -0
  150. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/__init__.py +0 -0
  151. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/checkpoint_vm.py +0 -0
  152. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/close_vm.py +0 -0
  153. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/create_vm.py +0 -0
  154. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/execute_ssh_command.py +0 -0
  155. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/get_operation_events.py +0 -0
  156. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/healthy_services.py +0 -0
  157. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/healthy_worker.py +0 -0
  158. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/save_vm_snapshot.py +0 -0
  159. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/setup_root_access.py +0 -0
  160. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/setup_sandbox.py +0 -0
  161. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/sandbox/start_worker.py +0 -0
  162. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/__init__.py +0 -0
  163. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/analyze_labels.py +0 -0
  164. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/archive_session.py +0 -0
  165. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/archive_session_logs_endpoint.py +0 -0
  166. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/create_from_labels.py +0 -0
  167. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/create_session_from_browser.py +0 -0
  168. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/create_session_from_env_recording.py +0 -0
  169. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/create_session_from_har.py +0 -0
  170. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_env_recording.py +0 -0
  171. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_grouped_replay_sessions.py +0 -0
  172. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_logs_status.py +0 -0
  173. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_network_requests.py +0 -0
  174. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_next_session_for_annotator.py +0 -0
  175. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_public_benchmark_sessions.py +0 -0
  176. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_replay_score_data.py +0 -0
  177. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_rrweb_actions.py +0 -0
  178. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_rrweb_events.py +0 -0
  179. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_screen_recording.py +0 -0
  180. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_session.py +0 -0
  181. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_session_replays.py +0 -0
  182. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_sessions.py +0 -0
  183. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_sessions_for_archival.py +0 -0
  184. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/get_ui_events.py +0 -0
  185. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/restore_session_logs.py +0 -0
  186. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/score_session_with_config.py +0 -0
  187. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/search_sessions_by_ids.py +0 -0
  188. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/set_session_output.py +0 -0
  189. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/update_session_public.py +0 -0
  190. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/session/update_session_testcase.py +0 -0
  191. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/__init__.py +0 -0
  192. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/add_simulator_review.py +0 -0
  193. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/batch_create_test_cases.py +0 -0
  194. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/batch_get_artifact_metadata.py +0 -0
  195. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_all_simulators_info.py +0 -0
  196. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_db_config.py +0 -0
  197. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_env_flows.py +0 -0
  198. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_plato_config.py +0 -0
  199. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_sessions_batch_by_job_groups.py +0 -0
  200. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_sessions_by_job_group.py +0 -0
  201. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_simulator_by_name.py +0 -0
  202. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_simulator_id.py +0 -0
  203. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_simulator_info.py +0 -0
  204. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_simulator_version_details.py +0 -0
  205. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_simulator_versions.py +0 -0
  206. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_start_path.py +0 -0
  207. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/get_version_by_tag.py +0 -0
  208. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/list_simulators.py +0 -0
  209. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/list_simulators_by_org.py +0 -0
  210. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/list_simulators_status.py +0 -0
  211. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/register.py +0 -0
  212. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/update_simulator.py +0 -0
  213. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/update_simulator_status.py +0 -0
  214. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/simulator/update_tag.py +0 -0
  215. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/__init__.py +0 -0
  216. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/archive_organization_test_case_assignments.py +0 -0
  217. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/archive_organization_testcase.py +0 -0
  218. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/archive_testcase.py +0 -0
  219. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/assign_testcase_to_organizations.py +0 -0
  220. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/auto_verify_testcase.py +0 -0
  221. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/bulk_archive_testcases.py +0 -0
  222. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/convert_text_to_structured_data.py +0 -0
  223. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/create_testcase.py +0 -0
  224. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/create_testcase_set.py +0 -0
  225. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/delete_testcase_set.py +0 -0
  226. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/filter_human_recorder_testcases.py +0 -0
  227. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/generate_outcome_schema.py +0 -0
  228. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/generate_prediction.py +0 -0
  229. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/generate_prediction_from_steps.py +0 -0
  230. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/generate_scoring_config_from_sessions.py +0 -0
  231. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/generate_state_mutations_config_route.py +0 -0
  232. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_human_recorder_tab_counts.py +0 -0
  233. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_human_recorder_testcases.py +0 -0
  234. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_merged_mutations.py +0 -0
  235. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_mutation_groups_for_testcase.py +0 -0
  236. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_next_testcase_for_scoring.py +0 -0
  237. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_organization_test_case_assignments.py +0 -0
  238. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_testcase.py +0 -0
  239. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py +0 -0
  240. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_testcase_sets.py +0 -0
  241. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_testcases.py +0 -0
  242. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/get_testcases_in_set.py +0 -0
  243. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/mark_organization_test_case_completed.py +0 -0
  244. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/update_testcase.py +0 -0
  245. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v1/testcases/version_bump_testcase.py +0 -0
  246. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/__init__.py +0 -0
  247. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/__init__.py +0 -0
  248. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/cache/__init__.py +0 -0
  249. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/cache/clear_all.py +0 -0
  250. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/cache/clear_single_cache.py +0 -0
  251. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/cache/delete_key.py +0 -0
  252. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/cache/get_stats.py +0 -0
  253. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/admin/cache/list_cache_names.py +0 -0
  254. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/__init__.py +0 -0
  255. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/get_agent_ecr_token.py +0 -0
  256. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/get_agent_schema.py +0 -0
  257. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/get_agent_versions.py +0 -0
  258. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/import_agent.py +0 -0
  259. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/list_docker_agents.py +0 -0
  260. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/lookup_agent_version.py +0 -0
  261. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/agents/register_docker_agent.py +0 -0
  262. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/artifacts/__init__.py +0 -0
  263. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/artifacts/get_artifact.py +0 -0
  264. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos/__init__.py +0 -0
  265. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos/launch_job.py +0 -0
  266. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos_packages/__init__.py +0 -0
  267. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos_packages/get_package_versions.py +0 -0
  268. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos_packages/list_chronos_packages.py +0 -0
  269. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos_packages/lookup_package_version.py +0 -0
  270. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos_packages/register_chronos_package.py +0 -0
  271. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/chronos_packages/upload_chronos_package.py +0 -0
  272. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/cluster/__init__.py +0 -0
  273. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/cluster/get_node_config.py +0 -0
  274. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/__init__.py +0 -0
  275. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/checkpoint.py +0 -0
  276. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/close.py +0 -0
  277. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/connect_routing_info.py +0 -0
  278. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/connect_url.py +0 -0
  279. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/disk_snapshot.py +0 -0
  280. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/execute.py +0 -0
  281. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/get_flows.py +0 -0
  282. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/get_plato_config.py +0 -0
  283. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/log_for_job.py +0 -0
  284. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/make.py +0 -0
  285. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/public_url.py +0 -0
  286. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/reset.py +0 -0
  287. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/set_date.py +0 -0
  288. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/setup_sandbox.py +0 -0
  289. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/snapshot.py +0 -0
  290. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/snapshot_store.py +0 -0
  291. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/state.py +0 -0
  292. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/jobs/wait_for_ready.py +0 -0
  293. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/__init__.py +0 -0
  294. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/add_member.py +0 -0
  295. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/create_network.py +0 -0
  296. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/delete_network.py +0 -0
  297. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/get_network.py +0 -0
  298. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/list_members.py +0 -0
  299. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/list_networks.py +0 -0
  300. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/remove_member.py +0 -0
  301. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/networks/update_member.py +0 -0
  302. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/pypi/__init__.py +0 -0
  303. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/pypi/download_package.py +0 -0
  304. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/pypi/get_package_schema.py +0 -0
  305. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/pypi/package_index.py +0 -0
  306. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/pypi/simple_index.py +0 -0
  307. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/pypi/upload_package.py +0 -0
  308. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/__init__.py +0 -0
  309. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/create.py +0 -0
  310. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/deploy.py +0 -0
  311. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/get.py +0 -0
  312. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/handle_get_existing_public_ids.py +0 -0
  313. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/handle_import.py +0 -0
  314. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/list_releases.py +0 -0
  315. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/prep_release_assigned_testcases.py +0 -0
  316. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/releases/update.py +0 -0
  317. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/__init__.py +0 -0
  318. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/add_job.py +0 -0
  319. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/add_ssh_key.py +0 -0
  320. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/checkpoint.py +0 -0
  321. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/close.py +0 -0
  322. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/connect_network.py +0 -0
  323. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/disk_snapshot.py +0 -0
  324. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/evaluate.py +0 -0
  325. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/execute.py +0 -0
  326. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_connect_url.py +0 -0
  327. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_presigned_url.py +0 -0
  328. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_public_url.py +0 -0
  329. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_s3_content.py +0 -0
  330. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_session_details.py +0 -0
  331. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_session_documents.py +0 -0
  332. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_session_flows.py +0 -0
  333. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_session_logs.py +0 -0
  334. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/get_session_plato_config.py +0 -0
  335. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/heartbeat.py +0 -0
  336. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/list_jobs.py +0 -0
  337. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/list_sessions.py +0 -0
  338. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/log_job_mutation.py +0 -0
  339. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/make.py +0 -0
  340. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/remove_job.py +0 -0
  341. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/reset.py +0 -0
  342. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/set_date.py +0 -0
  343. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/setup_sandbox.py +0 -0
  344. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/snapshot.py +0 -0
  345. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/snapshot_store.py +0 -0
  346. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/state.py +0 -0
  347. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/upload_session_documents.py +0 -0
  348. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/sessions/wait_for_ready.py +0 -0
  349. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/user/__init__.py +0 -0
  350. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/v2/user/get_current_user.py +0 -0
  351. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/version/__init__.py +0 -0
  352. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/api/version/check.py +0 -0
  353. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/client.py +0 -0
  354. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/errors.py +0 -0
  355. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/models/__init__.py +0 -0
  356. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_generated/py.typed +0 -0
  357. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/__init__.py +0 -0
  358. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/cli.py +0 -0
  359. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/instruction.py +0 -0
  360. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/parser.py +0 -0
  361. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/python.py +0 -0
  362. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/instruction/helpers.py.jinja +0 -0
  363. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/instruction/init.py.jinja +0 -0
  364. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/api_init.py.jinja +0 -0
  365. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/client.py.jinja +0 -0
  366. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/endpoint.py.jinja +0 -0
  367. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/errors.py.jinja +0 -0
  368. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/package_init.py.jinja +0 -0
  369. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/tag_init.py.jinja +0 -0
  370. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/_sims_generator/templates/python/version_init.py.jinja +0 -0
  371. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/__init__.py +0 -0
  372. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/artifacts.py +0 -0
  373. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/base.py +0 -0
  374. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/build.py +0 -0
  375. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/config.py +0 -0
  376. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/otel.py +0 -0
  377. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/runner.py +0 -0
  378. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/agents/trajectory.py +0 -0
  379. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/__init__.py +0 -0
  380. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/__init__.py +0 -0
  381. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/admin/__init__.py +0 -0
  382. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/admin/clear_database_api_admin_clear_db_post.py +0 -0
  383. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/admin/sync_agents_api_admin_sync_agents_post.py +0 -0
  384. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/admin/sync_all_api_admin_sync_all_post.py +0 -0
  385. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/admin/sync_runtimes_api_admin_sync_runtimes_post.py +0 -0
  386. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/admin/sync_worlds_api_admin_sync_worlds_post.py +0 -0
  387. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/__init__.py +0 -0
  388. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/create_agent.py +0 -0
  389. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/delete_agent.py +0 -0
  390. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/get_agent.py +0 -0
  391. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/get_agent_schema.py +0 -0
  392. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/get_agent_versions.py +0 -0
  393. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/list_agents.py +0 -0
  394. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/agents/lookup_agent.py +0 -0
  395. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/auth/__init__.py +0 -0
  396. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/auth/debug_auth_api_auth_debug_get.py +0 -0
  397. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/auth/get_auth_status_api_auth_status_get.py +0 -0
  398. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/auth/get_current_user_route_api_auth_me_get.py +0 -0
  399. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/checkpoints/__init__.py +0 -0
  400. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/checkpoints/list_checkpoints.py +0 -0
  401. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/checkpoints/preview_checkpoint.py +0 -0
  402. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/default/__init__.py +0 -0
  403. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/default/health.py +0 -0
  404. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/events/__init__.py +0 -0
  405. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/events/get_session_event.py +0 -0
  406. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/events/list_session_events.py +0 -0
  407. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/jobs/__init__.py +0 -0
  408. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/jobs/launch_job.py +0 -0
  409. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/otel/__init__.py +0 -0
  410. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py +0 -0
  411. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py +0 -0
  412. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/__init__.py +0 -0
  413. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py +0 -0
  414. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py +0 -0
  415. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/get_world_schema_api_registry_worlds__package_name__schema_get.py +0 -0
  416. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/get_world_versions_api_registry_worlds__package_name__versions_get.py +0 -0
  417. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +0 -0
  418. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/registry/list_registry_worlds_api_registry_worlds_get.py +0 -0
  419. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/__init__.py +0 -0
  420. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/create_runtime.py +0 -0
  421. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/delete_runtime.py +0 -0
  422. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/get_runtime.py +0 -0
  423. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/get_runtime_logs.py +0 -0
  424. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/list_runtimes.py +0 -0
  425. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/runtimes/test_runtime.py +0 -0
  426. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/secrets/__init__.py +0 -0
  427. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/secrets/create_secret.py +0 -0
  428. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/secrets/delete_secret.py +0 -0
  429. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/secrets/get_secret.py +0 -0
  430. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/secrets/list_secrets.py +0 -0
  431. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/secrets/update_secret.py +0 -0
  432. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/__init__.py +0 -0
  433. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/close_session.py +0 -0
  434. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/complete_session.py +0 -0
  435. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/create_session.py +0 -0
  436. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session.py +0 -0
  437. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session_bash_logs_download.py +0 -0
  438. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session_envs.py +0 -0
  439. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session_live_logs.py +0 -0
  440. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session_logs.py +0 -0
  441. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session_logs_download.py +0 -0
  442. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/get_session_status.py +0 -0
  443. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/list_session_creators.py +0 -0
  444. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/list_sessions.py +0 -0
  445. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/list_tags.py +0 -0
  446. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/sessions/update_session_tags.py +0 -0
  447. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/status/__init__.py +0 -0
  448. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/status/get_status_api_status_get.py +0 -0
  449. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/status/get_version_info_api_version_get.py +0 -0
  450. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/templates/__init__.py +0 -0
  451. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/templates/create_template.py +0 -0
  452. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/templates/delete_template.py +0 -0
  453. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/templates/get_template.py +0 -0
  454. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/templates/list_templates.py +0 -0
  455. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/templates/update_template.py +0 -0
  456. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/trajectories/__init__.py +0 -0
  457. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/trajectories/get_trajectory.py +0 -0
  458. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/trajectories/list_trajectories.py +0 -0
  459. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/worlds/__init__.py +0 -0
  460. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/worlds/create_world.py +0 -0
  461. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/worlds/delete_world.py +0 -0
  462. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/worlds/get_world.py +0 -0
  463. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/api/worlds/list_worlds.py +0 -0
  464. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/client.py +0 -0
  465. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/errors.py +0 -0
  466. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/models/__init__.py +0 -0
  467. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/chronos/py.typed +0 -0
  468. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/__init__.py +0 -0
  469. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/agent.py +0 -0
  470. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/audit_ui.py +0 -0
  471. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/chronos.py +0 -0
  472. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/main.py +0 -0
  473. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/proxy.py +0 -0
  474. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/utils.py +0 -0
  475. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/verify.py +0 -0
  476. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/cli/world.py +0 -0
  477. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/py.typed +0 -0
  478. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/sims/README.md +0 -0
  479. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/sims/__init__.py +0 -0
  480. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/sims/agent_helpers.py +0 -0
  481. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/sims/cli.py +0 -0
  482. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/sims/generate_clients.py +0 -0
  483. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/sims/registry.py +0 -0
  484. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/__init__.py +0 -0
  485. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/audit_ui.py +0 -0
  486. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/__init__.py +0 -0
  487. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/agent.py +0 -0
  488. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/chronos.py +0 -0
  489. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/main.py +0 -0
  490. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/proxy.py +0 -0
  491. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/sandbox.py +0 -0
  492. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/ssh.py +0 -0
  493. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/templates/world-runner.Dockerfile +0 -0
  494. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/utils.py +0 -0
  495. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/verify.py +0 -0
  496. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli/world.py +0 -0
  497. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/cli.py +0 -0
  498. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/config.py +0 -0
  499. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/doordash_tasks.py +0 -0
  500. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/loadtest.py +0 -0
  501. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/test_env.py +0 -0
  502. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/test_env_custom_browser.py +0 -0
  503. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/test_env_sync.py +0 -0
  504. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/test_reuse_env.py +0 -0
  505. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/examples/test_run.py +0 -0
  506. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/exceptions.py +0 -0
  507. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/README.md +0 -0
  508. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/api-client.js +0 -0
  509. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/background.js +0 -0
  510. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/build-sdk.js +0 -0
  511. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/content.js +0 -0
  512. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/manifest.json +0 -0
  513. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/offscreen.html +0 -0
  514. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/offscreen.js +0 -0
  515. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/options.html +0 -0
  516. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/options.js +0 -0
  517. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/package-lock.json +0 -0
  518. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/package.json +0 -0
  519. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js +0 -0
  520. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js.map +0 -0
  521. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/popup.html +0 -0
  522. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/popup.js +0 -0
  523. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/review-panel.html +0 -0
  524. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/review-panel.js +0 -0
  525. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/review-success.html +0 -0
  526. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/review-success.js +0 -0
  527. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/session-active.html +0 -0
  528. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/session-active.js +0 -0
  529. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/session-ended.html +0 -0
  530. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/session-ended.js +0 -0
  531. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/session-setup.html +0 -0
  532. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/session-setup.js +0 -0
  533. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/sessions.html +0 -0
  534. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/sessions.js +0 -0
  535. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/extensions/envgen-recorder/styles.css +0 -0
  536. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/flow_executor.py +0 -0
  537. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/models/__init__.py +0 -0
  538. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/models/build_models.py +0 -0
  539. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/models/env.py +0 -0
  540. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/models/flow.py +0 -0
  541. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/models/sandbox.py +0 -0
  542. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/models/task.py +0 -0
  543. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/sandbox_sdk.py +0 -0
  544. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/sdk.py +0 -0
  545. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/sync_env.py +0 -0
  546. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/sync_flow_executor.py +0 -0
  547. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/sync_sdk.py +0 -0
  548. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v1/utils/proxytunnel.py +0 -0
  549. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/__init__.py +0 -0
  550. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/__init__.py +0 -0
  551. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/artifact.py +0 -0
  552. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/chronos.py +0 -0
  553. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/client.py +0 -0
  554. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/environment.py +0 -0
  555. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/flow_executor.py +0 -0
  556. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/async_/session.py +0 -0
  557. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/models.py +0 -0
  558. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/__init__.py +0 -0
  559. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/artifact.py +0 -0
  560. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/chronos.py +0 -0
  561. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/client.py +0 -0
  562. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/environment.py +0 -0
  563. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/flow_executor.py +0 -0
  564. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/sync/session.py +0 -0
  565. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/types.py +0 -0
  566. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/utils/__init__.py +0 -0
  567. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/utils/db_cleanup.py +0 -0
  568. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/utils/gateway_tunnel.py +0 -0
  569. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/utils/models.py +0 -0
  570. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/v2/utils/proxy_tunnel.py +0 -0
  571. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/worlds/README.md +0 -0
  572. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/worlds/__init__.py +0 -0
  573. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/worlds/base.py +0 -0
  574. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/worlds/build_hook.py +0 -0
  575. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/worlds/config.py +0 -0
  576. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/plato/worlds/runner.py +0 -0
  577. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/pyproject.toml +0 -0
  578. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/scripts/get_all_artifact_targets.py +0 -0
  579. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/__init__.py +0 -0
  580. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/__init__.py +0 -0
  581. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/conftest.py +0 -0
  582. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/test_browser_agent.py +0 -0
  583. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/test_chronos_callback.py +0 -0
  584. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/test_cleanup_snapshot.py +0 -0
  585. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/test_code_world.py +0 -0
  586. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/integration/test_harbor_agent_runner.py +0 -0
  587. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/sims/__init__.py +0 -0
  588. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/sims/conftest.py +0 -0
  589. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/sims/test_agent_helpers.py +0 -0
  590. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_heartbeat_keepalive.py +0 -0
  591. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_session_serialization.py +0 -0
  592. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_set_date.py +0 -0
  593. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_v2_imports.py +0 -0
  594. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_v2_multisim_integration.py +0 -0
  595. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_v2_session.py +0 -0
  596. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/tests/test_version.py +0 -0
  597. {plato_sdk_v2-2.8.1 → plato_sdk_v2-2.8.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.8.1
3
+ Version: 2.8.3
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.3
@@ -22,18 +22,16 @@ from plato._generated.api.v1.simulator import (
22
22
  update_simulator_status,
23
23
  update_tag,
24
24
  )
25
- from plato._generated.api.v2.sessions import state as sessions_state
26
25
  from plato._generated.models import (
27
26
  AddReviewRequest,
28
27
  AppApiV1SimulatorRoutesUpdateSimulatorRequest,
29
28
  Authentication,
30
- Flow,
31
29
  Outcome,
32
30
  ReviewType,
33
31
  UpdateStatusRequest,
34
32
  UpdateTagRequest,
35
33
  )
36
- from plato.v1.cli.utils import (
34
+ from plato.cli.utils import (
37
35
  console,
38
36
  handle_async,
39
37
  read_plato_config,
@@ -42,9 +40,10 @@ from plato.v1.cli.utils import (
42
40
  require_sandbox_field,
43
41
  require_sandbox_state,
44
42
  )
45
- from plato.v1.cli.verify import pm_verify_app
43
+ from plato.v1.flow_executor import FlowExecutor
44
+ from plato.v1.models.flow import Flow
45
+ from plato.v1.sdk import Plato
46
46
  from plato.v2.async_.client import AsyncPlato
47
- from plato.v2.async_.flow_executor import FlowExecutor
48
47
  from plato.v2.types import Env
49
48
 
50
49
  # =============================================================================
@@ -66,7 +65,6 @@ submit_app = typer.Typer(help="Submit simulator artifacts for review")
66
65
  pm_app.add_typer(list_app, name="list")
67
66
  pm_app.add_typer(review_app, name="review")
68
67
  pm_app.add_typer(submit_app, name="submit")
69
- pm_app.add_typer(pm_verify_app, name="verify")
70
68
 
71
69
 
72
70
  # =============================================================================
@@ -320,25 +318,30 @@ def review_base(
320
318
  )
321
319
 
322
320
  async def _review_base():
321
+ import warnings
322
+
323
323
  base_url = _get_base_url()
324
- plato = AsyncPlato(api_key=api_key, base_url=base_url)
325
- session = None
324
+ # v1 SDK expects base_url to include /api suffix
325
+ v1_base_url = f"{base_url}/api"
326
+ # Suppress the deprecation warning from v1 Plato
327
+ with warnings.catch_warnings():
328
+ warnings.simplefilter("ignore", DeprecationWarning)
329
+ plato = Plato(api_key=api_key, base_url=v1_base_url)
330
+ env = None
326
331
  playwright = None
327
332
  browser = None
328
- login_result = None
329
333
 
330
334
  try:
331
- http_client = plato._http
332
-
333
335
  # simulator_name is guaranteed set by parse_simulator_artifact (or we exit)
334
336
  assert simulator_name is not None, "simulator_name must be set"
335
337
 
336
- # Get simulator by name
337
- sim = await get_simulator_by_name.asyncio(
338
- client=http_client,
339
- name=simulator_name,
340
- x_api_key=api_key,
341
- )
338
+ # Get simulator by name using httpx for API calls
339
+ async with httpx.AsyncClient(base_url=base_url, timeout=60.0) as http_client:
340
+ sim = await get_simulator_by_name.asyncio(
341
+ client=http_client,
342
+ name=simulator_name,
343
+ x_api_key=api_key,
344
+ )
342
345
  simulator_id = sim.id
343
346
  current_config = sim.config or {}
344
347
  current_status = current_config.get("status", "not_started")
@@ -359,26 +362,27 @@ def review_base(
359
362
 
360
363
  console.print(f"[cyan]Using artifact:[/cyan] {artifact_id}")
361
364
 
362
- # Try to create session with environment from artifact
365
+ # Try to create environment from artifact using v1 API
363
366
  try:
364
367
  console.print(f"[cyan]Creating {simulator_name} environment with artifact {artifact_id}...[/cyan]")
365
- session = await plato.sessions.create(
366
- envs=[Env.artifact(artifact_id)],
367
- timeout=300,
368
+ env = await plato.make_environment(
369
+ env_id=simulator_name,
370
+ artifact_id=artifact_id,
368
371
  )
369
- console.print(f"[green]✅ Session created: {session.session_id}[/green]")
372
+ console.print(f"[green]✅ Environment created: {env.id}[/green]")
373
+
374
+ # Wait for environment to be ready
375
+ console.print("[cyan]Waiting for environment to be ready...[/cyan]")
376
+ await env.wait_for_ready(timeout=300)
377
+ console.print("[green]✅ Environment ready![/green]")
370
378
 
371
379
  # Reset
372
380
  console.print("[cyan]Resetting environment...[/cyan]")
373
- await session.reset()
381
+ await env.reset()
374
382
  console.print("[green]✅ Environment reset complete![/green]")
375
383
 
376
- # Get public URL
377
- public_urls = await session.get_public_url()
378
- first_alias = session.envs[0].alias if session.envs else None
379
- public_url = public_urls.get(first_alias) if first_alias else None
380
- if not public_url and public_urls:
381
- public_url = list(public_urls.values())[0]
384
+ # Get public URL (v1 returns string directly)
385
+ public_url = await env.get_public_url()
382
386
  console.print(f"[cyan]Public URL:[/cyan] {public_url}")
383
387
 
384
388
  # Launch Playwright browser and login
@@ -454,70 +458,66 @@ def review_base(
454
458
  except Exception as e:
455
459
  console.print(f"[yellow]⚠️ Flow execution error: {e}[/yellow]")
456
460
  else:
457
- # Use default login via session.login()
461
+ # Use default login via env.login() (v1 API takes Page, not Browser)
458
462
  if fake_time:
459
463
  console.print("[yellow]⚠️ --clock with default login may not work correctly.[/yellow]")
460
464
  console.print("[yellow] Use --local with a flow file for reliable clock testing.[/yellow]")
461
465
  try:
462
- login_result = await session.login(browser, dataset="base")
463
- page = list(login_result.pages.values())[0] if login_result.pages else None
464
- console.print("[green]✅ Logged into environment[/green]")
465
- except Exception as e:
466
- console.print(f"[yellow]⚠️ Login error: {e}[/yellow]")
466
+ # Create page and navigate to public URL first
467
467
  page = await browser.new_page()
468
- # Install fake clock on fallback page
469
468
  if fake_time:
470
469
  await page.clock.install(time=fake_time)
471
470
  console.print(f"[green]✅ Fake clock installed: {fake_time.isoformat()}[/green]")
472
471
  if public_url:
473
472
  await page.goto(public_url)
473
+ # v1 login takes a Page and uses from_api=True to fetch flows from server
474
+ await env.login(page, dataset="base", from_api=True)
475
+ console.print("[green]✅ Logged into environment[/green]")
476
+ except Exception as e:
477
+ console.print(f"[yellow]⚠️ Login error: {e}[/yellow]")
478
+ # Page already created above, just navigate if not already done
479
+ if public_url and page:
480
+ try:
481
+ await page.goto(public_url)
482
+ except Exception:
483
+ pass
474
484
 
475
485
  # ALWAYS check state after login to verify no mutations
476
486
  console.print("\n[cyan]Checking environment state after login...[/cyan]")
477
487
  has_mutations = False
478
488
  has_errors = False
479
489
  try:
480
- state_response = await sessions_state.asyncio(
481
- client=http_client,
482
- session_id=session.session_id,
483
- merge_mutations=True,
484
- x_api_key=api_key,
485
- )
486
- if state_response and state_response.results:
487
- for jid, result in state_response.results.items():
488
- state_data = result.state if hasattr(result, "state") else result
489
- console.print(f"\n[bold cyan]Job {jid}:[/bold cyan]")
490
-
491
- if isinstance(state_data, dict):
492
- # Check for error in state response
493
- if "error" in state_data:
494
- has_errors = True
495
- console.print("\n[bold red]❌ State API Error:[/bold red]")
496
- console.print(f"[red]{state_data['error']}[/red]")
497
- continue
498
-
499
- mutations = state_data.pop("mutations", [])
500
- console.print("\n[bold]State:[/bold]")
501
- console.print(json.dumps(state_data, indent=2, default=str))
502
- if mutations:
503
- has_mutations = True
504
- console.print(f"\n[bold red]Mutations ({len(mutations)}):[/bold red]")
505
- console.print(json.dumps(mutations, indent=2, default=str))
506
- else:
507
- console.print("\n[green]No mutations recorded[/green]")
508
- else:
509
- console.print(f"[yellow]Unexpected state format: {type(state_data)}[/yellow]")
510
-
511
- if has_errors:
512
- console.print("\n[bold red]❌ State check failed due to errors![/bold red]")
513
- console.print("[yellow]The worker may not be properly connected.[/yellow]")
514
- elif has_mutations:
515
- console.print("\n[bold red]⚠️ WARNING: Login flow created mutations![/bold red]")
516
- console.print("[yellow]The login flow should NOT modify database state.[/yellow]")
490
+ # v1 API: env.get_state() returns state dict directly
491
+ state_data = await env.get_state(merge_mutations=True)
492
+ console.print(f"\n[bold cyan]Environment {env.id}:[/bold cyan]")
493
+
494
+ if isinstance(state_data, dict):
495
+ # Check for error in state response (only if error has a truthy value)
496
+ if state_data.get("error"):
497
+ has_errors = True
498
+ console.print("\n[bold red]❌ State API Error:[/bold red]")
499
+ console.print(f"[red]{state_data['error']}[/red]")
517
500
  else:
518
- console.print("\n[bold green]✅ Login flow verified - no mutations created[/bold green]")
501
+ mutations = state_data.pop("mutations", [])
502
+ console.print("\n[bold]State:[/bold]")
503
+ console.print(json.dumps(state_data, indent=2, default=str))
504
+ if mutations:
505
+ has_mutations = True
506
+ console.print(f"\n[bold red]Mutations ({len(mutations)}):[/bold red]")
507
+ console.print(json.dumps(mutations, indent=2, default=str))
508
+ else:
509
+ console.print("\n[green]No mutations recorded[/green]")
510
+ else:
511
+ console.print(f"[yellow]Unexpected state format: {type(state_data)}[/yellow]")
512
+
513
+ if has_errors:
514
+ console.print("\n[bold red]❌ State check failed due to errors![/bold red]")
515
+ console.print("[yellow]The worker may not be properly connected.[/yellow]")
516
+ elif has_mutations:
517
+ console.print("\n[bold red]⚠️ WARNING: Login flow created mutations![/bold red]")
518
+ console.print("[yellow]The login flow should NOT modify database state.[/yellow]")
519
519
  else:
520
- console.print("[yellow]No state data available[/yellow]")
520
+ console.print("\n[bold green] Login flow verified - no mutations created[/bold green]")
521
521
  except Exception as e:
522
522
  console.print(f"[red]❌ Error getting state: {e}[/red]")
523
523
 
@@ -547,19 +547,9 @@ def review_base(
547
547
  console.print(f"[bold red]📋 Most Recent Base Review: REJECTED[/bold red] ({timestamp})")
548
548
  else:
549
549
  console.print(f"[bold green]📋 Most Recent Base Review: PASSED[/bold green] ({timestamp})")
550
- # Handle both old 'comments' field and new 'sim_comments' structure
551
- sim_comments = recent_review.get("sim_comments")
552
- if sim_comments:
553
- console.print("[yellow]Reviewer Comments:[/yellow]")
554
- for i, item in enumerate(sim_comments, 1):
555
- comment_text = item.get("comment", "")
556
- if comment_text:
557
- console.print(f" {i}. {comment_text}")
558
- else:
559
- # Fallback to old comments field
560
- comments = recent_review.get("comments")
561
- if comments:
562
- console.print(f"[yellow]Reviewer Comments:[/yellow] {comments}")
550
+ comments = recent_review.get("comments")
551
+ if comments:
552
+ console.print(f"[yellow]Reviewer Comments:[/yellow] {comments}")
563
553
 
564
554
  console.print()
565
555
 
@@ -574,37 +564,26 @@ def review_base(
574
564
  elif command in ["state", "s"]:
575
565
  console.print("\n[cyan]Getting environment state with mutations...[/cyan]")
576
566
  try:
577
- # Call API directly with merge_mutations=True to include mutations
578
- state_response = await sessions_state.asyncio(
579
- client=http_client,
580
- session_id=session.session_id,
581
- merge_mutations=True,
582
- x_api_key=api_key,
583
- )
584
- if state_response and state_response.results:
585
- for jid, result in state_response.results.items():
586
- state_data = result.state if hasattr(result, "state") else result
587
- console.print(f"\n[bold cyan]Job {jid}:[/bold cyan]")
588
-
589
- if isinstance(state_data, dict):
590
- # Check for error in state response
591
- if "error" in state_data:
592
- console.print("\n[bold red]❌ State API Error:[/bold red]")
593
- console.print(f"[red]{state_data['error']}[/red]")
594
- continue
595
-
596
- mutations = state_data.pop("mutations", [])
597
- console.print("\n[bold]State:[/bold]")
598
- console.print(json.dumps(state_data, indent=2, default=str))
599
- if mutations:
600
- console.print(f"\n[bold]Mutations ({len(mutations)}):[/bold]")
601
- console.print(json.dumps(mutations, indent=2, default=str))
602
- else:
603
- console.print("\n[yellow]No mutations recorded[/yellow]")
567
+ # v1 API: env.get_state() returns state dict directly
568
+ state_data = await env.get_state(merge_mutations=True)
569
+ console.print(f"\n[bold cyan]Environment {env.id}:[/bold cyan]")
570
+
571
+ if isinstance(state_data, dict):
572
+ # Check for error in state response (only if error has a truthy value)
573
+ if state_data.get("error"):
574
+ console.print("\n[bold red]❌ State API Error:[/bold red]")
575
+ console.print(f"[red]{state_data['error']}[/red]")
576
+ else:
577
+ mutations = state_data.pop("mutations", [])
578
+ console.print("\n[bold]State:[/bold]")
579
+ console.print(json.dumps(state_data, indent=2, default=str))
580
+ if mutations:
581
+ console.print(f"\n[bold]Mutations ({len(mutations)}):[/bold]")
582
+ console.print(json.dumps(mutations, indent=2, default=str))
604
583
  else:
605
- console.print(json.dumps(state_data, indent=2, default=str))
584
+ console.print("\n[yellow]No mutations recorded[/yellow]")
606
585
  else:
607
- console.print("[yellow]No state data available[/yellow]")
586
+ console.print(json.dumps(state_data, indent=2, default=str))
608
587
  console.print()
609
588
  except Exception as e:
610
589
  console.print(f"[red]❌ Error getting state: {e}[/red]")
@@ -645,56 +624,60 @@ def review_base(
645
624
  validate_status_transition(current_status, "env_review_requested", "review base reject")
646
625
  new_status = "env_in_progress"
647
626
 
648
- # Update status
649
- await update_simulator_status.asyncio(
650
- client=http_client,
651
- simulator_id=simulator_id,
652
- body=UpdateStatusRequest(status=new_status),
653
- x_api_key=api_key,
654
- )
655
-
656
- # Add review if rejecting
657
- if outcome == "reject":
658
- comments = ""
659
- while not comments:
660
- comments = typer.prompt("Comments (required for reject)").strip()
661
- if not comments:
662
- console.print("[yellow]Comments are required when rejecting. Please provide feedback.[/yellow]")
663
-
664
- await add_simulator_review.asyncio(
665
- client=http_client,
627
+ # Create httpx client for API calls
628
+ async with httpx.AsyncClient(base_url=base_url, timeout=60.0) as api_client:
629
+ # Update status
630
+ await update_simulator_status.asyncio(
631
+ client=api_client,
666
632
  simulator_id=simulator_id,
667
- body=AddReviewRequest(
668
- review_type=ReviewType.env,
669
- outcome=Outcome.reject,
670
- artifact_id=artifact_id,
671
- comments=comments,
672
- ),
633
+ body=UpdateStatusRequest(status=new_status),
673
634
  x_api_key=api_key,
674
635
  )
675
636
 
676
- console.print(f"[green]✅ Review submitted: {outcome}[/green]")
677
- console.print(f"[cyan]Status:[/cyan] {current_status} {new_status}")
678
-
679
- # If passed, automatically tag artifact as prod-latest
680
- if outcome == "pass" and artifact_id:
681
- console.print("\n[cyan]Tagging artifact as prod-latest...[/cyan]")
682
- try:
683
- # simulator_name and artifact_id are guaranteed to be set at this point
684
- assert simulator_name is not None
685
- await update_tag.asyncio(
686
- client=http_client,
687
- body=UpdateTagRequest(
688
- simulator_name=simulator_name,
637
+ # Add review if rejecting
638
+ if outcome == "reject":
639
+ comments = ""
640
+ while not comments:
641
+ comments = typer.prompt("Comments (required for reject)").strip()
642
+ if not comments:
643
+ console.print(
644
+ "[yellow]Comments are required when rejecting. Please provide feedback.[/yellow]"
645
+ )
646
+
647
+ await add_simulator_review.asyncio(
648
+ client=api_client,
649
+ simulator_id=simulator_id,
650
+ body=AddReviewRequest(
651
+ review_type=ReviewType.env,
652
+ outcome=Outcome.reject,
689
653
  artifact_id=artifact_id,
690
- tag_name="prod-latest",
691
- dataset="base",
654
+ comments=comments,
692
655
  ),
693
656
  x_api_key=api_key,
694
657
  )
695
- console.print(f"[green]✅ Tagged {artifact_id[:8]}... as prod-latest[/green]")
696
- except Exception as e:
697
- console.print(f"[yellow]⚠️ Could not tag as prod-latest: {e}[/yellow]")
658
+
659
+ console.print(f"[green]✅ Review submitted: {outcome}[/green]")
660
+ console.print(f"[cyan]Status:[/cyan] {current_status} {new_status}")
661
+
662
+ # If passed, automatically tag artifact as prod-latest
663
+ if outcome == "pass" and artifact_id:
664
+ console.print("\n[cyan]Tagging artifact as prod-latest...[/cyan]")
665
+ try:
666
+ # simulator_name and artifact_id are guaranteed to be set at this point
667
+ assert simulator_name is not None
668
+ await update_tag.asyncio(
669
+ client=api_client,
670
+ body=UpdateTagRequest(
671
+ simulator_name=simulator_name,
672
+ artifact_id=artifact_id,
673
+ tag_name="prod-latest",
674
+ dataset="base",
675
+ ),
676
+ x_api_key=api_key,
677
+ )
678
+ console.print(f"[green]✅ Tagged {artifact_id[:8]}... as prod-latest[/green]")
679
+ except Exception as e:
680
+ console.print(f"[yellow]⚠️ Could not tag as prod-latest: {e}[/yellow]")
698
681
 
699
682
  except typer.Exit:
700
683
  raise
@@ -705,8 +688,6 @@ def review_base(
705
688
  finally:
706
689
  # Cleanup
707
690
  try:
708
- if login_result and login_result.context:
709
- await login_result.context.close()
710
691
  if browser:
711
692
  await browser.close()
712
693
  if playwright:
@@ -714,13 +695,13 @@ def review_base(
714
695
  except Exception as e:
715
696
  console.print(f"[yellow]⚠️ Browser cleanup error: {e}[/yellow]")
716
697
 
717
- if session:
698
+ if env:
718
699
  try:
719
- console.print("[cyan]Shutting down session...[/cyan]")
720
- await session.close()
721
- console.print("[green]✅ Session shut down[/green]")
700
+ console.print("[cyan]Shutting down environment...[/cyan]")
701
+ await env.close()
702
+ console.print("[green]✅ Environment shut down[/green]")
722
703
  except Exception as e:
723
- console.print(f"[yellow]⚠️ Session cleanup error: {e}[/yellow]")
704
+ console.print(f"[yellow]⚠️ Environment cleanup error: {e}[/yellow]")
724
705
 
725
706
  try:
726
707
  await plato.close()
@@ -745,18 +726,25 @@ def review_data(
745
726
  help="Artifact UUID to review. If not provided, uses server's data_artifact_id.",
746
727
  ),
747
728
  ):
748
- """Launch browser with EnvGen Recorder extension for data review.
729
+ """
730
+ Launch browser with Data Review extension for data review.
749
731
 
750
- Opens Chrome with the EnvGen Recorder extension installed for reviewing
751
- data artifacts. The extension sidebar can be used to record and submit reviews.
752
- Press Control-C to exit when done.
732
+ Opens Chrome with the Data Review extension installed for reviewing
733
+ data artifacts. Close the browser when done.
753
734
 
754
- Requires simulator status: data_review_requested
735
+ SPECIFYING SIMULATOR AND ARTIFACT:
755
736
 
756
- Options:
757
- -s, --simulator: Simulator name. Supports colon notation for artifact:
758
- '-s sim' (uses server's data_artifact_id) or '-s sim:<uuid>'
759
- -a, --artifact: Explicit artifact UUID to review. Overrides server's value.
737
+ -s <simulator> Use server's data_artifact_id
738
+ -s <simulator> -a <artifact-uuid> Explicit artifact
739
+ -s <simulator>:<artifact-uuid> Colon notation (same as above)
740
+
741
+ EXAMPLES:
742
+
743
+ plato pm review data -s fathom
744
+ plato pm review data -s fathom -a e9c25ca5-1234-5678-9abc-def012345678
745
+ plato pm review data -s fathom:e9c25ca5-1234-5678-9abc-def012345678
746
+
747
+ Requires simulator status: data_review_requested
760
748
  """
761
749
  api_key = require_api_key()
762
750
 
@@ -809,13 +797,13 @@ def review_data(
809
797
  console.print(f"[cyan]Artifact:[/cyan] {artifact_id}")
810
798
 
811
799
  # Find Chrome extension source
812
- package_dir = Path(__file__).resolve().parent.parent # v1/
800
+ package_dir = Path(__file__).resolve().parent.parent # plato/
813
801
  is_installed = "site-packages" in str(package_dir)
814
802
 
815
803
  if is_installed:
816
804
  extension_source_path = package_dir / "extensions" / "data-review"
817
805
  else:
818
- repo_root = package_dir.parent.parent.parent # plato-client/
806
+ repo_root = package_dir.parent.parent # plato-client/
819
807
  extension_source_path = repo_root / "extensions" / "data-review"
820
808
 
821
809
  # Fallback to env var
@@ -833,7 +821,7 @@ def review_data(
833
821
 
834
822
  # Copy extension to temp directory
835
823
  temp_ext_dir = Path(tempfile.mkdtemp(prefix="plato-extension-"))
836
- extension_path = temp_ext_dir / "envgen-recorder"
824
+ extension_path = temp_ext_dir / "data-review"
837
825
 
838
826
  console.print("[cyan]Copying extension to temp directory...[/cyan]")
839
827
  shutil.copytree(extension_source_path, extension_path, dirs_exist_ok=False)
@@ -407,8 +407,9 @@ def sandbox_snapshot(
407
407
 
408
408
  Captures VM state and database for later restoration.
409
409
 
410
- Example:
411
- plato sandbox snapshot
410
+ Examples:
411
+ plato sandbox snapshot # Uses mode from state.json
412
+ plato sandbox snapshot --mode config # Override to pass local plato-config.yml and flows to artifact
412
413
  """
413
414
  with sandbox_context(working_dir, json_output, verbose) as (client, out):
414
415
  out.console.print("Creating snapshot...")
@@ -0,0 +1,14 @@
1
+ """Project Management CLI commands for Plato simulator workflow.
2
+
3
+ This module re-exports from plato.cli.pm for backwards compatibility.
4
+ """
5
+
6
+ # Re-export from main CLI for backwards compatibility
7
+ from plato.cli.pm import (
8
+ list_app,
9
+ pm_app,
10
+ review_app,
11
+ submit_app,
12
+ )
13
+
14
+ __all__ = ["pm_app", "list_app", "review_app", "submit_app"]