plato-sdk-v2 2.4.1__tar.gz → 2.5.0__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 (531) hide show
  1. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/PKG-INFO +1 -1
  2. plato_sdk_v2-2.5.0/VERSION +1 -0
  3. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/agent.py +7 -7
  4. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/chronos.py +49 -70
  5. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/world.py +10 -43
  6. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/worlds/__init__.py +12 -1
  7. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/worlds/config.py +55 -10
  8. plato_sdk_v2-2.4.1/VERSION +0 -1
  9. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/.claude/agents/sim-creator.md +0 -0
  10. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/.gitignore +0 -0
  11. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/BUILDING_SIMS.md +0 -0
  12. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/README.md +0 -0
  13. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/ci/CLAUDE.md +0 -0
  14. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/ci/deploy.sh +0 -0
  15. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/ci/lint.sh +0 -0
  16. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/ci/setup.sh +0 -0
  17. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/ci/version-bump.sh +0 -0
  18. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/AGENT_SPEC.md +0 -0
  19. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/CLI.md +0 -0
  20. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/GENERATING_SIM_SDKS.md +0 -0
  21. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/SIMULATOR_LIFECYCLE.md +0 -0
  22. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/SIM_CREATOR.md +0 -0
  23. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/cli/agent.md +0 -0
  24. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/cli/flows.md +0 -0
  25. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/cli/pm.md +0 -0
  26. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/cli/sandbox.md +0 -0
  27. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/cli/sims.md +0 -0
  28. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/cli/world.md +0 -0
  29. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/sim-creation-pipeline.md +0 -0
  30. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skill-restructure-plan.md +0 -0
  31. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/SIM-CREATION-ARCHITECTURE.md +0 -0
  32. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-config/SKILL.md +0 -0
  33. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-creator/SKILL.md +0 -0
  34. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-debugger/SKILL.md +0 -0
  35. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-flow-audit/SKILL.md +0 -0
  36. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-flow-clear/SKILL.md +0 -0
  37. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-flow-mutations/SKILL.md +0 -0
  38. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-flow-run/SKILL.md +0 -0
  39. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-research/SKILL.md +0 -0
  40. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-review/SKILL.md +0 -0
  41. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-sandbox-login/SKILL.md +0 -0
  42. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-sandbox-services/SKILL.md +0 -0
  43. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-sandbox-start/SKILL.md +0 -0
  44. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-sandbox-worker/SKILL.md +0 -0
  45. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-snapshot/SKILL.md +0 -0
  46. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-submit/SKILL.md +0 -0
  47. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/skills/sim-validate/SKILL.md +0 -0
  48. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/testcommit +0 -0
  49. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/docs/unit.sh +0 -0
  50. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/__init__.py +0 -0
  51. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/__init__.py +0 -0
  52. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/__init__.py +0 -0
  53. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/__init__.py +0 -0
  54. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/agent_artifacts/__init__.py +0 -0
  55. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/agent_artifacts/archive_agent_artifact.py +0 -0
  56. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/agent_artifacts/create_agent_artifact.py +0 -0
  57. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/agent_artifacts/get_agent_artifact_by_public_id.py +0 -0
  58. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/agent_artifacts/get_agent_artifacts.py +0 -0
  59. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/__init__.py +0 -0
  60. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/cleanup_stale_vms.py +0 -0
  61. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/get_dispatchers.py +0 -0
  62. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/get_nodes_status.py +0 -0
  63. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/get_snapshot_lineage.py +0 -0
  64. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/get_snapshots_status.py +0 -0
  65. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/pause_resume_dispatchers.py +0 -0
  66. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/cluster/prefetch_snapshot.py +0 -0
  67. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/__init__.py +0 -0
  68. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/backup.py +0 -0
  69. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/cleanup.py +0 -0
  70. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/close.py +0 -0
  71. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/close_async.py +0 -0
  72. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/create.py +0 -0
  73. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/create_batch.py +0 -0
  74. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/create_simulator.py +0 -0
  75. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/evaluate_session.py +0 -0
  76. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/generate_mutations.py +0 -0
  77. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/generate_mutations_single.py +0 -0
  78. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_active_session.py +0 -0
  79. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_app_sim_worker_info.py +0 -0
  80. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_cdp_url.py +0 -0
  81. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_flows.py +0 -0
  82. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_interface_worker_info.py +0 -0
  83. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_job_info.py +0 -0
  84. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_job_status.py +0 -0
  85. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_job_worker_info.py +0 -0
  86. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_proxy_url.py +0 -0
  87. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_public_url.py +0 -0
  88. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_simulator_by_name.py +0 -0
  89. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_simulators.py +0 -0
  90. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_state.py +0 -0
  91. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/get_worker_ready.py +0 -0
  92. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/log_state_mutation.py +0 -0
  93. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/rescore_simulator_sessions.py +0 -0
  94. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/reset.py +0 -0
  95. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/score.py +0 -0
  96. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/send_heartbeat.py +0 -0
  97. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/env/update_simulator.py +0 -0
  98. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/__init__.py +0 -0
  99. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/create_test_case_review.py +0 -0
  100. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/evaluate_python.py +0 -0
  101. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/get_all_test_case_reviews.py +0 -0
  102. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/get_scores_by_user.py +0 -0
  103. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/get_scoring.py +0 -0
  104. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/get_test_case_review.py +0 -0
  105. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/human_in_the_loop_scoring.py +0 -0
  106. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/evals/start_eval_from_git.py +0 -0
  107. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/__init__.py +0 -0
  108. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/create_gitea_repository.py +0 -0
  109. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/create_simulator_repository.py +0 -0
  110. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/delete_gitea_repository.py +0 -0
  111. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_accessible_simulators.py +0 -0
  112. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_gitea_credentials.py +0 -0
  113. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_gitea_repository.py +0 -0
  114. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_my_gitea_info.py +0 -0
  115. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_my_repositories.py +0 -0
  116. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_repository_branches.py +0 -0
  117. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_repository_contents.py +0 -0
  118. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_simulator_file_content.py +0 -0
  119. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_simulator_repository.py +0 -0
  120. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_simulator_repository_branches.py +0 -0
  121. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/gitea/get_simulator_repository_contents.py +0 -0
  122. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/jobs/__init__.py +0 -0
  123. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/jobs/get_job_by_id.py +0 -0
  124. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/jobs/get_jobs_by_group_id.py +0 -0
  125. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/jobs/get_keepalive_jobs.py +0 -0
  126. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/jobs/list_jobs.py +0 -0
  127. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/jobs/update_job_status.py +0 -0
  128. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/__init__.py +0 -0
  129. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/create_annotator_assignment.py +0 -0
  130. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/create_org_api_key.py +0 -0
  131. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/create_org_policy.py +0 -0
  132. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/delete_org_api_key.py +0 -0
  133. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/delete_org_policy.py +0 -0
  134. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/get_annotator_assignments.py +0 -0
  135. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/get_org_api_key_policies.py +0 -0
  136. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/get_org_api_keys.py +0 -0
  137. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/get_org_policies.py +0 -0
  138. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/get_organization_concurrency_status.py +0 -0
  139. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/get_organization_members.py +0 -0
  140. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/update_annotator_assignment_stage.py +0 -0
  141. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/organization/update_organization_concurrency_limit.py +0 -0
  142. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/queue/__init__.py +0 -0
  143. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/queue/get_queue_status.py +0 -0
  144. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/queue/get_vm_detail.py +0 -0
  145. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/queue/get_vms.py +0 -0
  146. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/queue/get_workers.py +0 -0
  147. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/__init__.py +0 -0
  148. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/checkpoint_vm.py +0 -0
  149. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/close_vm.py +0 -0
  150. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/create_vm.py +0 -0
  151. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/execute_ssh_command.py +0 -0
  152. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/get_operation_events.py +0 -0
  153. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/healthy_services.py +0 -0
  154. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/healthy_worker.py +0 -0
  155. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/save_vm_snapshot.py +0 -0
  156. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/setup_root_access.py +0 -0
  157. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/setup_sandbox.py +0 -0
  158. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/sandbox/start_worker.py +0 -0
  159. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/__init__.py +0 -0
  160. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/analyze_labels.py +0 -0
  161. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/archive_session.py +0 -0
  162. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/archive_session_logs_endpoint.py +0 -0
  163. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/create_from_labels.py +0 -0
  164. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/create_session_from_browser.py +0 -0
  165. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/create_session_from_env_recording.py +0 -0
  166. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/create_session_from_har.py +0 -0
  167. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_env_recording.py +0 -0
  168. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_grouped_replay_sessions.py +0 -0
  169. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_logs_status.py +0 -0
  170. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_network_requests.py +0 -0
  171. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_next_session_for_annotator.py +0 -0
  172. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_public_benchmark_sessions.py +0 -0
  173. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_replay_score_data.py +0 -0
  174. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_rrweb_actions.py +0 -0
  175. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_rrweb_events.py +0 -0
  176. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_screen_recording.py +0 -0
  177. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_session.py +0 -0
  178. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_session_replays.py +0 -0
  179. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_sessions.py +0 -0
  180. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_sessions_for_archival.py +0 -0
  181. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/get_ui_events.py +0 -0
  182. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/restore_session_logs.py +0 -0
  183. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/score_session_with_config.py +0 -0
  184. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/search_sessions_by_ids.py +0 -0
  185. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/set_session_output.py +0 -0
  186. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/update_session_public.py +0 -0
  187. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/session/update_session_testcase.py +0 -0
  188. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/__init__.py +0 -0
  189. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/add_simulator_review.py +0 -0
  190. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/batch_create_test_cases.py +0 -0
  191. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/batch_get_artifact_metadata.py +0 -0
  192. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_all_simulators_info.py +0 -0
  193. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_db_config.py +0 -0
  194. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_env_flows.py +0 -0
  195. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_plato_config.py +0 -0
  196. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_sessions_batch_by_job_groups.py +0 -0
  197. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_sessions_by_job_group.py +0 -0
  198. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_simulator_by_name.py +0 -0
  199. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_simulator_id.py +0 -0
  200. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_simulator_info.py +0 -0
  201. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_simulator_version_details.py +0 -0
  202. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_simulator_versions.py +0 -0
  203. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_start_path.py +0 -0
  204. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/get_version_by_tag.py +0 -0
  205. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/list_simulators.py +0 -0
  206. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/list_simulators_by_org.py +0 -0
  207. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/list_simulators_status.py +0 -0
  208. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/register.py +0 -0
  209. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/update_simulator.py +0 -0
  210. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/update_simulator_status.py +0 -0
  211. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/simulator/update_tag.py +0 -0
  212. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/__init__.py +0 -0
  213. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/archive_organization_test_case_assignments.py +0 -0
  214. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/archive_organization_testcase.py +0 -0
  215. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/archive_testcase.py +0 -0
  216. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/assign_testcase_to_organizations.py +0 -0
  217. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/auto_verify_testcase.py +0 -0
  218. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/bulk_archive_testcases.py +0 -0
  219. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/convert_text_to_structured_data.py +0 -0
  220. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/create_testcase.py +0 -0
  221. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/create_testcase_set.py +0 -0
  222. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/delete_testcase_set.py +0 -0
  223. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/filter_human_recorder_testcases.py +0 -0
  224. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/generate_outcome_schema.py +0 -0
  225. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/generate_prediction.py +0 -0
  226. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/generate_prediction_from_steps.py +0 -0
  227. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/generate_scoring_config_from_sessions.py +0 -0
  228. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/generate_state_mutations_config_route.py +0 -0
  229. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_human_recorder_tab_counts.py +0 -0
  230. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_human_recorder_testcases.py +0 -0
  231. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_merged_mutations.py +0 -0
  232. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_mutation_groups_for_testcase.py +0 -0
  233. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_next_testcase_for_scoring.py +0 -0
  234. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_organization_test_case_assignments.py +0 -0
  235. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_testcase.py +0 -0
  236. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py +0 -0
  237. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_testcase_sets.py +0 -0
  238. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_testcases.py +0 -0
  239. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/get_testcases_in_set.py +0 -0
  240. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/mark_organization_test_case_completed.py +0 -0
  241. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/update_testcase.py +0 -0
  242. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v1/testcases/version_bump_testcase.py +0 -0
  243. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/__init__.py +0 -0
  244. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/__init__.py +0 -0
  245. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/get_agent_ecr_token.py +0 -0
  246. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/get_agent_schema.py +0 -0
  247. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/get_agent_versions.py +0 -0
  248. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/import_agent.py +0 -0
  249. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/list_docker_agents.py +0 -0
  250. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/lookup_agent_version.py +0 -0
  251. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/agents/register_docker_agent.py +0 -0
  252. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/artifacts/__init__.py +0 -0
  253. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/artifacts/get_artifact.py +0 -0
  254. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos/__init__.py +0 -0
  255. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos/launch_job.py +0 -0
  256. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos_packages/__init__.py +0 -0
  257. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos_packages/get_package_versions.py +0 -0
  258. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos_packages/list_chronos_packages.py +0 -0
  259. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos_packages/lookup_package_version.py +0 -0
  260. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos_packages/register_chronos_package.py +0 -0
  261. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/chronos_packages/upload_chronos_package.py +0 -0
  262. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/cluster/__init__.py +0 -0
  263. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/cluster/get_node_config.py +0 -0
  264. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/__init__.py +0 -0
  265. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/checkpoint.py +0 -0
  266. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/close.py +0 -0
  267. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/connect_routing_info.py +0 -0
  268. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/connect_url.py +0 -0
  269. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/disk_snapshot.py +0 -0
  270. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/execute.py +0 -0
  271. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/get_flows.py +0 -0
  272. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/get_plato_config.py +0 -0
  273. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/log_for_job.py +0 -0
  274. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/make.py +0 -0
  275. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/public_url.py +0 -0
  276. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/reset.py +0 -0
  277. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/set_date.py +0 -0
  278. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/setup_sandbox.py +0 -0
  279. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/snapshot.py +0 -0
  280. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/snapshot_store.py +0 -0
  281. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/state.py +0 -0
  282. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/jobs/wait_for_ready.py +0 -0
  283. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/pypi/__init__.py +0 -0
  284. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/pypi/download_package.py +0 -0
  285. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/pypi/get_package_schema.py +0 -0
  286. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/pypi/package_index.py +0 -0
  287. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/pypi/simple_index.py +0 -0
  288. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/pypi/upload_package.py +0 -0
  289. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/__init__.py +0 -0
  290. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/create.py +0 -0
  291. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/deploy.py +0 -0
  292. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/get.py +0 -0
  293. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/handle_get_existing_public_ids.py +0 -0
  294. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/handle_import.py +0 -0
  295. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/list_releases.py +0 -0
  296. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/prep_release_assigned_testcases.py +0 -0
  297. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/releases/update.py +0 -0
  298. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/__init__.py +0 -0
  299. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/checkpoint.py +0 -0
  300. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/close.py +0 -0
  301. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/disk_snapshot.py +0 -0
  302. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/evaluate.py +0 -0
  303. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/execute.py +0 -0
  304. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_connect_url.py +0 -0
  305. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_presigned_url.py +0 -0
  306. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_public_url.py +0 -0
  307. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_s3_content.py +0 -0
  308. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_session_details.py +0 -0
  309. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_session_documents.py +0 -0
  310. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_session_flows.py +0 -0
  311. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_session_logs.py +0 -0
  312. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/get_session_plato_config.py +0 -0
  313. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/heartbeat.py +0 -0
  314. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/list_jobs.py +0 -0
  315. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/list_sessions.py +0 -0
  316. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/log_job_mutation.py +0 -0
  317. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/make.py +0 -0
  318. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/reset.py +0 -0
  319. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/set_date.py +0 -0
  320. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/setup_sandbox.py +0 -0
  321. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/snapshot.py +0 -0
  322. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/snapshot_store.py +0 -0
  323. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/state.py +0 -0
  324. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/upload_session_documents.py +0 -0
  325. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/sessions/wait_for_ready.py +0 -0
  326. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/user/__init__.py +0 -0
  327. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/v2/user/get_current_user.py +0 -0
  328. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/version/__init__.py +0 -0
  329. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/api/version/check.py +0 -0
  330. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/client.py +0 -0
  331. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/errors.py +0 -0
  332. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/models/__init__.py +0 -0
  333. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_generated/py.typed +0 -0
  334. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/__init__.py +0 -0
  335. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/cli.py +0 -0
  336. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/instruction.py +0 -0
  337. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/parser.py +0 -0
  338. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/python.py +0 -0
  339. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/instruction/helpers.py.jinja +0 -0
  340. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/instruction/init.py.jinja +0 -0
  341. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/api_init.py.jinja +0 -0
  342. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/client.py.jinja +0 -0
  343. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/endpoint.py.jinja +0 -0
  344. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/errors.py.jinja +0 -0
  345. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/package_init.py.jinja +0 -0
  346. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/tag_init.py.jinja +0 -0
  347. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/_sims_generator/templates/python/version_init.py.jinja +0 -0
  348. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/__init__.py +0 -0
  349. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/artifacts.py +0 -0
  350. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/base.py +0 -0
  351. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/build.py +0 -0
  352. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/config.py +0 -0
  353. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/otel.py +0 -0
  354. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/runner.py +0 -0
  355. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/agents/trajectory.py +0 -0
  356. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/__init__.py +0 -0
  357. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/__init__.py +0 -0
  358. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/__init__.py +0 -0
  359. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/create_agent.py +0 -0
  360. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/delete_agent.py +0 -0
  361. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/get_agent.py +0 -0
  362. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/get_agent_schema.py +0 -0
  363. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/get_agent_versions.py +0 -0
  364. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/list_agents.py +0 -0
  365. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/agents/lookup_agent.py +0 -0
  366. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/auth/__init__.py +0 -0
  367. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/auth/debug_auth_api_auth_debug_get.py +0 -0
  368. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/auth/get_auth_status_api_auth_status_get.py +0 -0
  369. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/auth/get_current_user_route_api_auth_me_get.py +0 -0
  370. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/default/__init__.py +0 -0
  371. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/default/health.py +0 -0
  372. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/jobs/__init__.py +0 -0
  373. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/jobs/launch_job.py +0 -0
  374. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/__init__.py +0 -0
  375. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py +0 -0
  376. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py +0 -0
  377. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/get_world_schema_api_registry_worlds__package_name__schema_get.py +0 -0
  378. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/get_world_versions_api_registry_worlds__package_name__versions_get.py +0 -0
  379. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +0 -0
  380. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/registry/list_registry_worlds_api_registry_worlds_get.py +0 -0
  381. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/runtimes/__init__.py +0 -0
  382. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/runtimes/create_runtime.py +0 -0
  383. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/runtimes/delete_runtime.py +0 -0
  384. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/runtimes/get_runtime.py +0 -0
  385. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/runtimes/list_runtimes.py +0 -0
  386. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/runtimes/test_runtime.py +0 -0
  387. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/secrets/__init__.py +0 -0
  388. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/secrets/create_secret.py +0 -0
  389. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/secrets/delete_secret.py +0 -0
  390. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/secrets/get_secret.py +0 -0
  391. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/secrets/list_secrets.py +0 -0
  392. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/secrets/update_secret.py +0 -0
  393. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/sessions/__init__.py +0 -0
  394. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/sessions/get_session.py +0 -0
  395. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/sessions/get_session_logs.py +0 -0
  396. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/sessions/get_session_logs_download.py +0 -0
  397. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/sessions/list_sessions.py +0 -0
  398. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/status/__init__.py +0 -0
  399. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/status/get_status_api_status_get.py +0 -0
  400. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/status/get_version_info_api_version_get.py +0 -0
  401. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/templates/__init__.py +0 -0
  402. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/templates/create_template.py +0 -0
  403. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/templates/delete_template.py +0 -0
  404. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/templates/get_template.py +0 -0
  405. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/templates/list_templates.py +0 -0
  406. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/templates/update_template.py +0 -0
  407. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/trajectories/__init__.py +0 -0
  408. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/trajectories/get_trajectory.py +0 -0
  409. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/trajectories/list_trajectories.py +0 -0
  410. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/worlds/__init__.py +0 -0
  411. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/worlds/create_world.py +0 -0
  412. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/worlds/delete_world.py +0 -0
  413. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/worlds/get_world.py +0 -0
  414. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/api/worlds/list_worlds.py +0 -0
  415. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/client.py +0 -0
  416. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/errors.py +0 -0
  417. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/models/__init__.py +0 -0
  418. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/chronos/py.typed +0 -0
  419. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/py.typed +0 -0
  420. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/sims/README.md +0 -0
  421. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/sims/__init__.py +0 -0
  422. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/sims/agent_helpers.py +0 -0
  423. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/sims/cli.py +0 -0
  424. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/sims/generate_clients.py +0 -0
  425. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/sims/registry.py +0 -0
  426. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/__init__.py +0 -0
  427. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/audit_ui.py +0 -0
  428. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/__init__.py +0 -0
  429. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/main.py +0 -0
  430. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/pm.py +0 -0
  431. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/sandbox.py +0 -0
  432. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/ssh.py +0 -0
  433. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/templates/world-runner.Dockerfile +0 -0
  434. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/utils.py +0 -0
  435. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli/verify.py +0 -0
  436. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/cli.py +0 -0
  437. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/config.py +0 -0
  438. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/doordash_tasks.py +0 -0
  439. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/loadtest.py +0 -0
  440. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/test_env.py +0 -0
  441. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/test_env_custom_browser.py +0 -0
  442. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/test_env_sync.py +0 -0
  443. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/test_reuse_env.py +0 -0
  444. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/examples/test_run.py +0 -0
  445. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/exceptions.py +0 -0
  446. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/README.md +0 -0
  447. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/api-client.js +0 -0
  448. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/background.js +0 -0
  449. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/build-sdk.js +0 -0
  450. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/content.js +0 -0
  451. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/manifest.json +0 -0
  452. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/offscreen.html +0 -0
  453. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/offscreen.js +0 -0
  454. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/options.html +0 -0
  455. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/options.js +0 -0
  456. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/package-lock.json +0 -0
  457. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/package.json +0 -0
  458. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js +0 -0
  459. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/plato-sdk-bundle.js.map +0 -0
  460. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/popup.html +0 -0
  461. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/popup.js +0 -0
  462. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/review-panel.html +0 -0
  463. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/review-panel.js +0 -0
  464. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/review-success.html +0 -0
  465. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/review-success.js +0 -0
  466. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/session-active.html +0 -0
  467. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/session-active.js +0 -0
  468. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/session-ended.html +0 -0
  469. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/session-ended.js +0 -0
  470. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/session-setup.html +0 -0
  471. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/session-setup.js +0 -0
  472. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/sessions.html +0 -0
  473. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/sessions.js +0 -0
  474. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/extensions/envgen-recorder/styles.css +0 -0
  475. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/flow_executor.py +0 -0
  476. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/models/__init__.py +0 -0
  477. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/models/build_models.py +0 -0
  478. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/models/env.py +0 -0
  479. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/models/flow.py +0 -0
  480. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/models/sandbox.py +0 -0
  481. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/models/task.py +0 -0
  482. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/sandbox_sdk.py +0 -0
  483. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/sdk.py +0 -0
  484. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/sync_env.py +0 -0
  485. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/sync_flow_executor.py +0 -0
  486. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/sync_sdk.py +0 -0
  487. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v1/utils/proxytunnel.py +0 -0
  488. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/__init__.py +0 -0
  489. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/async_/__init__.py +0 -0
  490. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/async_/artifact.py +0 -0
  491. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/async_/client.py +0 -0
  492. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/async_/environment.py +0 -0
  493. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/async_/flow_executor.py +0 -0
  494. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/async_/session.py +0 -0
  495. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/models.py +0 -0
  496. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/sync/__init__.py +0 -0
  497. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/sync/artifact.py +0 -0
  498. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/sync/client.py +0 -0
  499. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/sync/environment.py +0 -0
  500. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/sync/flow_executor.py +0 -0
  501. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/sync/session.py +0 -0
  502. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/types.py +0 -0
  503. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/utils/__init__.py +0 -0
  504. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/utils/db_cleanup.py +0 -0
  505. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/utils/models.py +0 -0
  506. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/v2/utils/proxy_tunnel.py +0 -0
  507. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/worlds/README.md +0 -0
  508. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/worlds/base.py +0 -0
  509. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/worlds/build_hook.py +0 -0
  510. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/plato/worlds/runner.py +0 -0
  511. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/pyproject.toml +0 -0
  512. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/scripts/get_all_artifact_targets.py +0 -0
  513. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/__init__.py +0 -0
  514. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/__init__.py +0 -0
  515. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/conftest.py +0 -0
  516. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/test_browser_agent.py +0 -0
  517. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/test_chronos_callback.py +0 -0
  518. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/test_cleanup_snapshot.py +0 -0
  519. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/test_code_world.py +0 -0
  520. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/integration/test_harbor_agent_runner.py +0 -0
  521. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/sims/__init__.py +0 -0
  522. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/sims/conftest.py +0 -0
  523. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/sims/test_agent_helpers.py +0 -0
  524. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_heartbeat_keepalive.py +0 -0
  525. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_session_serialization.py +0 -0
  526. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_set_date.py +0 -0
  527. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_v2_imports.py +0 -0
  528. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_v2_multisim_integration.py +0 -0
  529. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_v2_session.py +0 -0
  530. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/tests/test_version.py +0 -0
  531. {plato_sdk_v2-2.4.1 → plato_sdk_v2-2.5.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.4.1
3
+ Version: 2.5.0
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.5.0
@@ -757,8 +757,8 @@ def agent_schema(
757
757
  console.print(json.dumps(schema, indent=2))
758
758
 
759
759
 
760
- @agent_app.command(name="push")
761
- def agent_push(
760
+ @agent_app.command(name="publish")
761
+ def agent_publish(
762
762
  target: str = typer.Argument(".", help="Path to agent directory OR Harbor agent name"),
763
763
  all_agents: bool = typer.Option(False, "--all", "-a", help="Publish all agents in directory"),
764
764
  dry_run: bool = typer.Option(False, "--dry-run", help="Build without pushing to ECR"),
@@ -776,10 +776,10 @@ def agent_push(
776
776
  - Harbor agents: from installed Harbor package version
777
777
 
778
778
  Examples:
779
- plato agent push ./agents/my-agent # Custom agent
780
- plato agent push claude-code # Harbor built-in
781
- plato agent push --all ./agents # All agents in directory
782
- plato agent push claude-code --dry-run # Dry run
779
+ plato agent publish ./agents/my-agent # Custom agent
780
+ plato agent publish claude-code # Harbor built-in
781
+ plato agent publish --all ./agents # All agents in directory
782
+ plato agent publish claude-code --dry-run # Dry run
783
783
  """
784
784
 
785
785
  # Handle --all flag with directory
@@ -964,7 +964,7 @@ def agent_images():
964
964
  agents = data.get("agents", [])
965
965
  if not agents:
966
966
  console.print("[yellow]No published agents found[/yellow]")
967
- console.print("\n[dim]Publish with: plato agent push <path-or-name>[/dim]")
967
+ console.print("\n[dim]Publish with: plato agent publish <path-or-name>[/dim]")
968
968
  return
969
969
 
970
970
  console.print("[bold]Published Agent Images:[/bold]\n")
@@ -51,41 +51,27 @@ def launch(
51
51
  """
52
52
  Launch a Chronos job from a config file.
53
53
 
54
- The config file should be a JSON file with the following structure:
55
-
56
54
  \b
57
- {
58
- "world_package": "plato-world-structured-execution",
59
- "world_version": "0.1.13", // optional, uses latest if not specified
60
- "world_config": { ... },
61
- "agent_configs": {
62
- "skill_runner": {
63
- "agent_id": "claude-code:2.1.5",
64
- "config": { ... }
55
+ Config format:
56
+ {
57
+ "world": {
58
+ "package": "plato-world-structured-execution:0.1.17",
59
+ "config": {
60
+ "skill_runner": {
61
+ "image": "computer-use:1.1.0",
62
+ "config": { ... }
63
+ },
64
+ "secrets": { ... }
65
+ }
66
+ },
67
+ "runtime": {
68
+ "artifact_id": "..." // optional
69
+ }
65
70
  }
66
- },
67
- "secret_ids": [1, 2, 3] // IDs of secrets from Chronos
68
- }
69
71
 
70
72
  Examples:
71
73
  plato chronos launch config.json
72
74
  plato chronos launch config.json --wait
73
- plato chronos launch config.json --url https://chronos.example.com
74
-
75
- Config format (simplified - agents/secrets embedded in world_config):
76
- {
77
- "world_package": "plato-world-structured-execution",
78
- "world_version": "latest", // optional
79
- "world_config": {
80
- "skill_runner": {
81
- "image": "claude-code:2.1.5",
82
- "config": { ... }
83
- },
84
- "plato_api_key": "pk_xxx", // secrets embedded
85
- ...
86
- },
87
- "runtime_artifact_id": "..." // optional
88
- }
89
75
  """
90
76
  import httpx
91
77
 
@@ -107,22 +93,19 @@ def launch(
107
93
  raise typer.Exit(1)
108
94
 
109
95
  # Validate required fields
110
- if "world_package" not in job_config:
111
- console.print("[red]❌ Missing required field: world_package[/red]")
96
+ if "world" not in job_config or "package" not in job_config.get("world", {}):
97
+ console.print("[red]❌ Missing required field: world.package[/red]")
112
98
  raise typer.Exit(1)
113
99
 
114
- # Build request - simplified format (agents/secrets in world_config)
100
+ # Build request
115
101
  request_body = {
116
- "world_package": job_config["world_package"],
117
- "world_version": job_config.get("world_version"),
118
- "world_config": job_config.get("world_config", {}),
119
- "runtime_artifact_id": job_config.get("runtime_artifact_id"),
102
+ "world": job_config["world"],
103
+ "runtime": job_config.get("runtime", {}),
120
104
  }
121
105
 
106
+ world_package = job_config["world"]["package"]
122
107
  console.print("[blue]🚀 Launching job...[/blue]")
123
- console.print(f" World: {request_body['world_package']}")
124
- if request_body.get("world_version"):
125
- console.print(f" Version: {request_body['world_version']}")
108
+ console.print(f" World: {world_package}")
126
109
 
127
110
  try:
128
111
  with httpx.Client(timeout=60) as client:
@@ -489,22 +472,22 @@ async def _run_dev_impl(
489
472
  with open(config_path) as f:
490
473
  raw_config = json.load(f)
491
474
 
492
- # Handle Chronos-style config format
493
- if "world_config" in raw_config:
494
- config_data = raw_config["world_config"].copy()
495
- top_level_secrets = raw_config.get("secrets", {})
496
- if top_level_secrets:
497
- config_data.setdefault("secrets", {})
498
- config_data["secrets"].update(top_level_secrets)
499
- else:
500
- config_data = raw_config.copy()
475
+ # Validate config format: { world: { package, config }, runtime: { artifact_id } }
476
+ if "world" not in raw_config or "package" not in raw_config.get("world", {}):
477
+ raise ValueError("Invalid config: missing world.package")
501
478
 
502
- # Determine world name from config
503
- world_package = raw_config.get("world_package", "")
504
- if world_package.startswith("plato-world-"):
505
- world_name = world_package[len("plato-world-") :]
479
+ world_package = raw_config["world"]["package"]
480
+ config_data = raw_config["world"].get("config", {}).copy()
481
+ runtime_artifact_id = raw_config.get("runtime", {}).get("artifact_id")
482
+ if runtime_artifact_id:
483
+ config_data["runtime_artifact_id"] = runtime_artifact_id
484
+
485
+ # Parse world name from package (e.g., "plato-world-structured-execution:0.1.17")
486
+ world_package_name = world_package.split(":")[0] if ":" in world_package else world_package
487
+ if world_package_name.startswith("plato-world-"):
488
+ world_name = world_package_name[len("plato-world-") :]
506
489
  else:
507
- world_name = world_package or "unknown"
490
+ world_name = world_package_name or "unknown"
508
491
 
509
492
  # Build local agent images if agents_dir is provided
510
493
  if agents_dir:
@@ -553,8 +536,8 @@ async def _run_dev_impl(
553
536
  plato_session_id = session.session_id
554
537
  console.print(f"[green]✅ Created Plato session: {plato_session_id}[/green]")
555
538
 
556
- # Add session to config
557
- config_data["plato_session"] = session.dump()
539
+ # Add session to config (convert Pydantic model to dict for JSON serialization)
540
+ config_data["plato_session"] = session.dump().model_dump()
558
541
 
559
542
  # Create Chronos session
560
543
  console.print("[blue]Creating Chronos session...[/blue]")
@@ -748,27 +731,23 @@ def dev(
748
731
  \b
749
732
  Config format (same as Chronos launch):
750
733
  {
751
- "world_package": "plato-world-structured-execution",
752
- "world_config": {
753
- "sim_name": "my-task",
754
- "steps": [...],
755
- "agents": {
734
+ "world": {
735
+ "package": "plato-world-structured-execution:0.1.17",
736
+ "config": {
756
737
  "skill_runner": {
757
- "image": "computer-use:latest",
758
- "config": {"model_name": "..."}
759
- }
738
+ "image": "computer-use:1.1.0",
739
+ "config": { ... }
740
+ },
741
+ "secrets": { ... }
760
742
  }
761
743
  },
762
- "secrets": {
763
- "gemini_api_key": "...",
764
- "plato_api_key": "..."
744
+ "runtime": {
745
+ "artifact_id": "..."
765
746
  }
766
747
  }
767
748
 
768
- Examples:
769
- plato chronos dev config.json --world-dir ~/worlds/my-world
770
- plato chronos dev config.json -w ~/worlds/my-world -a ~/agents
771
- plato chronos dev config.json -w ~/worlds/my-world --platform linux/amd64
749
+ Example:
750
+ plato chronos dev config.json -w ~/worlds/my-world -a ~/agents --platform linux/amd64
772
751
  """
773
752
  logging.basicConfig(
774
753
  level=logging.INFO,
@@ -62,41 +62,6 @@ def _extract_schema_from_wheel(wheel_path: Path, module_name: str) -> dict | Non
62
62
  return None
63
63
 
64
64
 
65
- def _register_world_schema(
66
- api_url: str,
67
- api_key: str,
68
- package_name: str,
69
- version: str,
70
- schema_data: dict,
71
- ) -> bool:
72
- """Register world schema with plato.so registry."""
73
- import httpx
74
-
75
- try:
76
- with httpx.Client(base_url=api_url, timeout=30.0) as client:
77
- response = client.post(
78
- f"/v2/pypi/worlds/packages/{package_name}/schema",
79
- json={
80
- "version": version,
81
- "config_schema": schema_data,
82
- },
83
- headers={"X-API-Key": api_key},
84
- )
85
-
86
- if response.status_code in (200, 201):
87
- return True
88
- elif response.status_code == 404:
89
- # Endpoint doesn't exist yet - that's ok
90
- console.print("[dim]Schema registration endpoint not available[/dim]")
91
- return False
92
- else:
93
- console.print(f"[yellow]Warning: Schema registration returned {response.status_code}[/yellow]")
94
- return False
95
- except Exception as e:
96
- console.print(f"[yellow]Warning: Could not register schema: {e}[/yellow]")
97
- return False
98
-
99
-
100
65
  @world_app.command(name="publish")
101
66
  def world_publish(
102
67
  path: str = typer.Argument(".", help="Path to the world package directory (default: current directory)"),
@@ -218,11 +183,19 @@ def world_publish(
218
183
  schema_data = _extract_schema_from_wheel(wheel_file, module_name)
219
184
  if schema_data:
220
185
  props = schema_data.get("properties", {})
221
- console.print(f"[green]Schema found:[/green] {len(props)} properties")
186
+ agents = schema_data.get("agents", [])
187
+ secrets = schema_data.get("secrets", [])
188
+ console.print(
189
+ f"[green]Schema found:[/green] {len(props)} properties, {len(agents)} agents, {len(secrets)} secrets"
190
+ )
222
191
  console.print(f"[dim] Properties: {', '.join(props.keys()) if props else 'none'}[/dim]")
192
+ if agents:
193
+ console.print(f"[dim] Agents: {', '.join(a.get('name', '?') for a in agents)}[/dim]")
223
194
  else:
224
- console.print("[yellow]Warning: No schema.json found in wheel[/yellow]")
195
+ console.print("[red]Error: No schema.json found in wheel[/red]")
225
196
  console.print("[dim] Add a hatch build hook to generate schema.json from get_schema()[/dim]")
197
+ console.print("[dim] See: https://docs.plato.so/worlds/publishing#schema-generation[/dim]")
198
+ raise SystemExit(1)
226
199
 
227
200
  if dry_run:
228
201
  console.print("\n[yellow]Dry run - skipping upload[/yellow]")
@@ -272,11 +245,5 @@ def world_publish(
272
245
  console.print(f"[red]Upload error: {e}[/red]")
273
246
  raise typer.Exit(1) from e
274
247
 
275
- # Register schema if we have one
276
- if schema_data:
277
- console.print("\n[cyan]Registering schema...[/cyan]")
278
- if _register_world_schema(api_url, api_key, package_name, version, schema_data):
279
- console.print("[green]Schema registered![/green]")
280
-
281
248
  console.print("\n[bold]Install with:[/bold]")
282
249
  console.print(f" uv add {package_name} --index-url {api_url}/v2/pypi/worlds/simple/")
@@ -52,7 +52,17 @@ from plato.worlds.base import (
52
52
  get_world,
53
53
  register_world,
54
54
  )
55
- from plato.worlds.config import Agent, AgentConfig, CheckpointConfig, Env, EnvConfig, RunConfig, Secret, StateConfig
55
+ from plato.worlds.config import (
56
+ Agent,
57
+ AgentConfig,
58
+ CheckpointConfig,
59
+ Env,
60
+ EnvConfig,
61
+ EnvList,
62
+ RunConfig,
63
+ Secret,
64
+ StateConfig,
65
+ )
56
66
  from plato.worlds.runner import run_world
57
67
 
58
68
  __all__ = [
@@ -72,6 +82,7 @@ __all__ = [
72
82
  "Agent",
73
83
  "Secret",
74
84
  "Env",
85
+ "EnvList",
75
86
  "EnvConfig",
76
87
  # Env types (re-exported from generated models)
77
88
  "EnvFromArtifact",
@@ -55,7 +55,7 @@ class Secret:
55
55
 
56
56
 
57
57
  class Env:
58
- """Annotation marker for environment fields.
58
+ """Annotation marker for single environment fields.
59
59
 
60
60
  Environments are VMs that run alongside the world's runtime.
61
61
  They can be specified by artifact ID, simulator name, or resource config.
@@ -72,6 +72,24 @@ class Env:
72
72
  self.required = required
73
73
 
74
74
 
75
+ class EnvList:
76
+ """Annotation marker for a list of arbitrary environments.
77
+
78
+ Use this when the world accepts a dynamic list of environments
79
+ rather than named, fixed environment fields.
80
+
81
+ Usage:
82
+ envs: Annotated[
83
+ list[EnvFromSimulator | EnvFromArtifact | EnvFromResource],
84
+ EnvList(description="Environments to create for this task"),
85
+ Field(discriminator="type"),
86
+ ] = []
87
+ """
88
+
89
+ def __init__(self, description: str = ""):
90
+ self.description = description
91
+
92
+
75
93
  class StateConfig(BaseModel):
76
94
  """Configuration for world state persistence.
77
95
 
@@ -92,12 +110,12 @@ class CheckpointConfig(BaseModel):
92
110
  """Configuration for automatic checkpointing during world execution.
93
111
 
94
112
  Attributes:
95
- enabled: Whether to enable automatic checkpoints after steps.
113
+ enabled: Whether to enable automatic checkpoints after steps (default: False).
96
114
  interval: Create checkpoint every N steps (default: 1 = every step).
97
115
  exclude_envs: Environment aliases to exclude from checkpoints (default: ["runtime"]).
98
116
  """
99
117
 
100
- enabled: bool = True
118
+ enabled: bool = False
101
119
  interval: int = 1
102
120
  exclude_envs: list[str] = Field(default_factory=lambda: ["runtime"])
103
121
 
@@ -150,16 +168,16 @@ class RunConfig(BaseModel):
150
168
  model_config = {"extra": "allow"}
151
169
 
152
170
  @classmethod
153
- def get_field_annotations(cls) -> dict[str, Agent | Secret | Env | None]:
154
- """Get Agent/Secret/Env annotations for each field."""
155
- result: dict[str, Agent | Secret | Env | None] = {}
171
+ def get_field_annotations(cls) -> dict[str, Agent | Secret | Env | EnvList | None]:
172
+ """Get Agent/Secret/Env/EnvList annotations for each field."""
173
+ result: dict[str, Agent | Secret | Env | EnvList | None] = {}
156
174
 
157
175
  for field_name, field_info in cls.model_fields.items():
158
176
  marker = None
159
177
 
160
178
  # Pydantic stores Annotated metadata in field_info.metadata
161
179
  for meta in field_info.metadata:
162
- if isinstance(meta, (Agent, Secret, Env)):
180
+ if isinstance(meta, (Agent, Secret, Env, EnvList)):
163
181
  marker = meta
164
182
  break
165
183
 
@@ -182,6 +200,7 @@ class RunConfig(BaseModel):
182
200
  agents = []
183
201
  secrets = []
184
202
  envs = []
203
+ env_list_field: dict | None = None # For EnvList marker (arbitrary envs)
185
204
 
186
205
  # Skip runtime fields
187
206
  runtime_fields = {"session_id", "otel_url", "upload_url", "all_secrets", "plato_session", "checkpoint", "state"}
@@ -228,6 +247,12 @@ class RunConfig(BaseModel):
228
247
  "default": default_value,
229
248
  }
230
249
  )
250
+ elif isinstance(marker, EnvList):
251
+ # Field marked as a list of arbitrary environments
252
+ env_list_field = {
253
+ "name": field_name,
254
+ "description": marker.description,
255
+ }
231
256
  else:
232
257
  world_properties[field_name] = prop_schema
233
258
 
@@ -236,7 +261,7 @@ class RunConfig(BaseModel):
236
261
  r for r in full_schema.get("required", []) if r not in runtime_fields and annotations.get(r) is None
237
262
  ]
238
263
 
239
- return {
264
+ result = {
240
265
  "properties": world_properties,
241
266
  "required": required,
242
267
  "agents": agents,
@@ -244,6 +269,16 @@ class RunConfig(BaseModel):
244
269
  "envs": envs,
245
270
  }
246
271
 
272
+ # Include $defs if present (for nested type references)
273
+ if "$defs" in full_schema:
274
+ result["$defs"] = full_schema["$defs"]
275
+
276
+ # Add env_list if present (for worlds with arbitrary environment lists)
277
+ if env_list_field:
278
+ result["env_list"] = env_list_field
279
+
280
+ return result
281
+
247
282
  def get_envs(self) -> list[EnvConfig]:
248
283
  """Get all environment configurations from this config.
249
284
 
@@ -287,8 +322,13 @@ class RunConfig(BaseModel):
287
322
  # Handle secrets dict -> individual secret fields
288
323
  secrets_dict = data.pop("secrets", {})
289
324
 
290
- # Handle envs dict -> individual env fields
291
- envs_dict = data.pop("envs", {})
325
+ # Check if there's an EnvList field - if so, don't pop envs as a dict
326
+ has_env_list = any(isinstance(m, EnvList) for m in annotations.values())
327
+
328
+ # Handle envs dict -> individual env fields (only for named Env pattern)
329
+ envs_dict: dict = {}
330
+ if not has_env_list:
331
+ envs_dict = data.pop("envs", {})
292
332
 
293
333
  # Merge world_config into top-level
294
334
  parsed.update(world_config)
@@ -310,6 +350,11 @@ class RunConfig(BaseModel):
310
350
  parsed[field_name] = _parse_env_config(env_data)
311
351
  else:
312
352
  parsed[field_name] = env_data
353
+ elif isinstance(marker, EnvList) and field_name in parsed:
354
+ # Parse list of env configs
355
+ env_list = parsed[field_name]
356
+ if isinstance(env_list, list):
357
+ parsed[field_name] = [_parse_env_config(e) if isinstance(e, dict) else e for e in env_list]
313
358
 
314
359
  # Store all secrets for agent use
315
360
  parsed["all_secrets"] = secrets_dict
@@ -1 +0,0 @@
1
- 2.4.1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes