synth-ai 0.18.2.dev610__tar.gz → 0.18.2.dev611__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. {synth_ai-0.18.2.dev610/synth_ai.egg-info → synth_ai-0.18.2.dev611}/PKG-INFO +1 -1
  2. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/pyproject.toml +1 -1
  3. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/workspace_inputs.py +1 -2
  4. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/__init__.py +6 -16
  5. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/research_intern.py +42 -99
  6. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/public.py +6 -16
  7. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611/synth_ai.egg-info}/PKG-INFO +1 -1
  8. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/LICENSE +0 -0
  9. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/MANIFEST.in +0 -0
  10. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/README.md +0 -0
  11. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/setup.cfg +0 -0
  12. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/README.md +0 -0
  13. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/__init__.py +0 -0
  14. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/__main__.py +0 -0
  15. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/AGENTS.md +0 -0
  16. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/README.md +0 -0
  17. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/__init__.py +0 -0
  18. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/__main__.py +0 -0
  19. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/main.py +0 -0
  20. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/research.py +0 -0
  21. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/research_environments.py +0 -0
  22. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/research_image_releases.py +0 -0
  23. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/cli/research_projects.py +0 -0
  24. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/client.py +0 -0
  25. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/README.md +0 -0
  26. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/__init__.py +0 -0
  27. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/auth/__init__.py +0 -0
  28. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/auth/credentials.py +0 -0
  29. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/contracts/__init__.py +0 -0
  30. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/contracts/json_value.py +0 -0
  31. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/contracts/pagination.py +0 -0
  32. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/errors.py +0 -0
  33. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/http/__init__.py +0 -0
  34. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/http/async_transport.py +0 -0
  35. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/http/request.py +0 -0
  36. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/http/retry.py +0 -0
  37. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/http/streaming.py +0 -0
  38. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/http/transport.py +0 -0
  39. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/research/__init__.py +0 -0
  40. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/__init__.py +0 -0
  41. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/env.py +0 -0
  42. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/log_filter.py +0 -0
  43. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/paths.py +0 -0
  44. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/urls.py +0 -0
  45. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/README.md +0 -0
  46. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/__init__.py +0 -0
  47. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/__main__.py +0 -0
  48. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/objective_tools.py +0 -0
  49. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/registry.py +0 -0
  50. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/request_models.py +0 -0
  51. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/server.py +0 -0
  52. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/__init__.py +0 -0
  53. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/approvals.py +0 -0
  54. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/artifacts.py +0 -0
  55. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/datasets.py +0 -0
  56. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/environments.py +0 -0
  57. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/exports.py +0 -0
  58. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/factories.py +0 -0
  59. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/factory_results.py +0 -0
  60. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/files.py +0 -0
  61. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/image_releases.py +0 -0
  62. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/integrations.py +0 -0
  63. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/logs.py +0 -0
  64. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/models.py +0 -0
  65. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/outputs.py +0 -0
  66. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
  67. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/progress.py +0 -0
  68. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/project_data.py +0 -0
  69. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/projects.py +0 -0
  70. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/prs.py +0 -0
  71. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/readiness.py +0 -0
  72. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/repos.py +0 -0
  73. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/research_intern.py +0 -0
  74. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/resources.py +0 -0
  75. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/runs.py +0 -0
  76. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/trained_models.py +0 -0
  77. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/usage.py +0 -0
  78. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/visuals.py +0 -0
  79. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/py.typed +0 -0
  80. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/README.md +0 -0
  81. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/__init__.py +0 -0
  82. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/pagination.py +0 -0
  83. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/__init__.py +0 -0
  84. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/__init__.py +0 -0
  85. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/crypto.py +0 -0
  86. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/env.py +0 -0
  87. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/urls.py +0 -0
  88. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/account.py +0 -0
  89. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/advanced.py +0 -0
  90. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/advanced_factories.py +0 -0
  91. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/advanced_swarms.py +0 -0
  92. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/artifacts.py +0 -0
  93. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/auth.py +0 -0
  94. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/client.py +0 -0
  95. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
  96. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
  97. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
  98. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_wire.py +0 -0
  99. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/activity.py +0 -0
  100. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
  101. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
  102. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/billing.py +0 -0
  103. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
  104. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
  105. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
  106. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
  107. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/common.py +0 -0
  108. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
  109. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
  110. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
  111. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/economics.py +0 -0
  112. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
  113. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/environments.py +0 -0
  114. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/evidence.py +0 -0
  115. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factories.py +0 -0
  116. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
  117. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
  118. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
  119. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
  120. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/failure.py +0 -0
  121. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
  122. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
  123. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
  124. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
  125. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project.py +0 -0
  126. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_data.py +0 -0
  127. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
  128. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
  129. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
  130. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/projects.py +0 -0
  131. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/promotions.py +0 -0
  132. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
  133. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_control.py +0 -0
  134. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
  135. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_events.py +0 -0
  136. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
  137. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
  138. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
  139. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_state.py +0 -0
  140. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
  141. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
  142. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
  143. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
  144. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
  145. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
  146. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
  147. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +0 -0
  148. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
  149. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
  150. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_agent_models.py +0 -0
  151. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
  152. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -0
  153. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
  154. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
  155. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
  156. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
  157. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
  158. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -0
  159. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
  160. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_providers.py +0 -0
  161. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
  162. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
  163. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
  164. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
  165. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
  166. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
  167. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
  168. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
  169. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/status.py +0 -0
  170. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/swarms.py +0 -0
  171. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/tag.py +0 -0
  172. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/traces.py +0 -0
  173. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/transcript.py +0 -0
  174. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/types.py +0 -0
  175. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/usage.py +0 -0
  176. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/visuals.py +0 -0
  177. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
  178. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
  179. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/work_products.py +0 -0
  180. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/workspaces.py +0 -0
  181. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/economics.py +0 -0
  182. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/efforts.py +0 -0
  183. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/environments.py +0 -0
  184. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/errors.py +0 -0
  185. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/events.py +0 -0
  186. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/experiments.py +0 -0
  187. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/facade.py +0 -0
  188. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/factories.py +0 -0
  189. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/factory_storage.py +0 -0
  190. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/image_releases.py +0 -0
  191. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/knowledge.py +0 -0
  192. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/models.py +0 -0
  193. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/operations.py +0 -0
  194. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/project_data.py +0 -0
  195. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/project_deliveries.py +0 -0
  196. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/project_workspaces.py +0 -0
  197. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/projects.py +0 -0
  198. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/readouts.py +0 -0
  199. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/research_intern.py +0 -0
  200. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/secrets.py +0 -0
  201. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/README.md +0 -0
  202. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/__init__.py +0 -0
  203. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/_base.py +0 -0
  204. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
  205. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
  206. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/approvals.py +0 -0
  207. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/billing.py +0 -0
  208. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/client.py +0 -0
  209. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
  210. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/config.py +0 -0
  211. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/cost.py +0 -0
  212. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/datasets.py +0 -0
  213. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/dev_environments.py +0 -0
  214. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/environments.py +0 -0
  215. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/exports.py +0 -0
  216. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/factories.py +0 -0
  217. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
  218. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/files.py +0 -0
  219. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/github.py +0 -0
  220. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/image_releases.py +0 -0
  221. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/images.py +0 -0
  222. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/logs.py +0 -0
  223. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/models.py +0 -0
  224. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/outputs.py +0 -0
  225. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/progress.py +0 -0
  226. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/project.py +0 -0
  227. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/projects.py +0 -0
  228. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/prs.py +0 -0
  229. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/readiness.py +0 -0
  230. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/repositories.py +0 -0
  231. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/runs.py +0 -0
  232. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/secrets.py +0 -0
  233. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/setup.py +0 -0
  234. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/tag.py +0 -0
  235. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/trained_models.py +0 -0
  236. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/transport.py +0 -0
  237. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/usage.py +0 -0
  238. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/work_products.py +0 -0
  239. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
  240. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/swarms.py +0 -0
  241. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/traces.py +0 -0
  242. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/transport/__init__.py +0 -0
  243. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/transport/http.py +0 -0
  244. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/transport/pagination.py +0 -0
  245. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/version.py +0 -0
  246. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/visuals.py +0 -0
  247. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/wiki.py +0 -0
  248. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/SOURCES.txt +0 -0
  249. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/dependency_links.txt +0 -0
  250. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/entry_points.txt +0 -0
  251. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/requires.txt +0 -0
  252. {synth_ai-0.18.2.dev610 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synth-ai
3
- Version: 0.18.2.dev610
3
+ Version: 0.18.2.dev611
4
4
  Summary: Python SDK and CLI for Synth Managed Research and Research Factory
5
5
  Author-email: Synth AI <josh@usesynth.ai>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "synth-ai"
3
- version = "0.18.2.dev610"
3
+ version = "0.18.2.dev611"
4
4
  description = "Python SDK and CLI for Synth Managed Research and Research Factory"
5
5
  authors = [{name = "Synth AI", email = "josh@usesynth.ai"}]
6
6
  license = "MIT"
@@ -212,8 +212,7 @@ def build_workspace_input_tools(
212
212
  "Confirm an already-pushed workspace commit through project "
213
213
  "authority and return the typed WorkspacePushConfirmationReceipt "
214
214
  "-- the done signal for coding agents driving workspace ingress "
215
- "over MCP. If the project is bound to an open Sync session, the "
216
- "backend also auto-records a kit-association receipt server-side."
215
+ "over MCP."
217
216
  ),
218
217
  input_schema=tool_schema(
219
218
  {
@@ -350,15 +350,10 @@ from synth_ai.sdk.research.contracts.research_intern import (
350
350
  ResearchInternTurnRequest,
351
351
  ResearchInternTurnResponse,
352
352
  ResearchInternTurnStatus,
353
- SyncKitAssociatedFile,
354
- SyncKitAssociationReceipt,
355
- SyncKitIngressKind,
356
- SyncKitIngressObservation,
357
- SyncKitIngressSource,
358
- SyncKitReadiness,
359
- SyncTemplateProvisionedResource,
360
- SyncTemplateProvisioningReceipt,
361
353
  SyncTracePublicationReceipt,
354
+ SyncWorkspaceRunReceipt,
355
+ SyncWorkspaceSnapshotIdentity,
356
+ SyncWorkspaceSnapshotKind,
362
357
  )
363
358
  from synth_ai.sdk.research.contracts.runtime_stream import (
364
359
  SwarmEvent,
@@ -934,15 +929,10 @@ __all__ = [
934
929
  "SwarmTerminalOutcomeMissingError",
935
930
  "SwarmEnvironment",
936
931
  "SwarmUsage",
937
- "SyncKitAssociatedFile",
938
- "SyncKitAssociationReceipt",
939
- "SyncKitIngressKind",
940
- "SyncKitIngressObservation",
941
- "SyncKitIngressSource",
942
- "SyncKitReadiness",
943
- "SyncTemplateProvisionedResource",
944
- "SyncTemplateProvisioningReceipt",
945
932
  "SyncTracePublicationReceipt",
933
+ "SyncWorkspaceRunReceipt",
934
+ "SyncWorkspaceSnapshotIdentity",
935
+ "SyncWorkspaceSnapshotKind",
946
936
  "TaskId",
947
937
  "TranscriptCursor",
948
938
  "TranscriptCursorKind",
@@ -188,40 +188,9 @@ class InternSyncSessionCreateRequest(_StrictContract):
188
188
  binding: InternRuntimeBinding = Field(default_factory=InternRuntimeBinding)
189
189
  metadata: dict[str, Any] = Field(default_factory=dict)
190
190
  execution_mode: Literal["fast", "standard", "deep"] = "standard"
191
- task_template: str | None = Field(default=None, min_length=1, max_length=128)
192
191
  objective_bounds: dict[str, Any] | None = None
193
192
 
194
193
 
195
- class SyncTemplateProvisionedResource(_StrictContract):
196
- """One resource decision made while provisioning a task template."""
197
-
198
- resource_kind: Literal[
199
- "project",
200
- "factory",
201
- "factory_project_link",
202
- "effort",
203
- "intern_factory_membership",
204
- "run",
205
- ]
206
- status: Literal["created", "reused", "unsupported"]
207
- resource_id: str | None = None
208
- error_code: str | None = None
209
-
210
-
211
- class SyncTemplateProvisioningReceipt(_StrictContract):
212
- """Durable record of what starting from a task template provisioned.
213
-
214
- The backend mints this receipt inside the session-create transaction and
215
- stamps it into the session projection; the SDK only ever observes it.
216
- """
217
-
218
- schema_version: Literal["smr.intern-sync-template-provisioning.v1"]
219
- task_template: str
220
- binding: InternRuntimeBinding
221
- resources: tuple[SyncTemplateProvisionedResource, ...]
222
- provisioned_at: datetime
223
-
224
-
225
194
  class SyncTracePublicationReceipt(_StrictContract):
226
195
  """Read-only receipt for the server-side terminal Trace V5 publication.
227
196
 
@@ -247,76 +216,59 @@ class SyncTracePublicationReceipt(_StrictContract):
247
216
  published_at: datetime | None = None
248
217
 
249
218
 
250
- SyncKitIngressKind = Literal[
251
- "website_upload",
252
- "sdk_upload",
253
- "git_push",
254
- "project_files",
255
- ]
256
-
257
- SyncKitIngressObservation = Literal[
258
- "stored_file_write",
259
- "push_confirmation",
260
- "upload_url_issuance",
219
+ SyncWorkspaceSnapshotKind = Literal[
220
+ "internal_git_head",
221
+ "stored_file_digest_set",
222
+ "internal_git_head_with_stored_files",
261
223
  ]
262
224
 
263
225
 
264
- class SyncKitAssociatedFile(_StrictContract):
265
- """One file observed in a kit ingress, with whatever identity was available."""
266
-
267
- path: str
268
- digest: str | None = Field(default=None, pattern=r"^sha256:[0-9a-f]{64}$")
269
- size_bytes: int | None = Field(default=None, ge=0)
270
- stored_file_id: str | None = None
271
-
272
-
273
- class SyncKitIngressSource(_StrictContract):
274
- """Source identity of one kit ingress, per ingress kind."""
226
+ class SyncWorkspaceSnapshotIdentity(_StrictContract):
227
+ """Provable project workspace identity captured when a run is triggered."""
275
228
 
229
+ schema_version: Literal["smr.intern-sync-workspace-snapshot.v1"] = (
230
+ "smr.intern-sync-workspace-snapshot.v1"
231
+ )
232
+ kind: SyncWorkspaceSnapshotKind
276
233
  commit_sha: str | None = None
277
- archive_key: str | None = None
278
- workspace_archive_id: str | None = None
279
- push_confirmation_receipt_id: str | None = None
280
- upload_batch_id: str | None = None
281
- dataset_ref: str | None = None
282
- stored_file_ids: tuple[str, ...] = ()
234
+ inventory_digest: str | None = Field(default=None, pattern=r"^sha256:[0-9a-f]{64}$")
235
+ file_count: int | None = Field(default=None, ge=1)
236
+ captured_at: datetime
283
237
 
238
+ @model_validator(mode="after")
239
+ def require_identity_per_kind(self) -> SyncWorkspaceSnapshotIdentity:
240
+ if self.kind == "internal_git_head" and not self.commit_sha:
241
+ raise ValueError("internal_git_head snapshot requires commit_sha")
242
+ if self.kind == "stored_file_digest_set" and (
243
+ not self.inventory_digest or not self.file_count
244
+ ):
245
+ raise ValueError(
246
+ "stored_file_digest_set snapshot requires the inventory digest and file count"
247
+ )
248
+ if self.kind == "internal_git_head_with_stored_files" and (
249
+ not self.commit_sha or not self.inventory_digest or not self.file_count
250
+ ):
251
+ raise ValueError(
252
+ "internal_git_head_with_stored_files snapshot requires commit_sha, "
253
+ "the inventory digest, and file count"
254
+ )
255
+ return self
284
256
 
285
- class SyncKitAssociationReceipt(_StrictContract):
286
- """Durable record that a kit ingress landed while this session was open.
287
257
 
288
- The backend mints this receipt as a server-side effect of observing an
289
- upload, push, or file write on a project bound to an open Sync session.
290
- Clients never mint it; they observe it on the session projection.
291
- """
258
+ class SyncWorkspaceRunReceipt(_StrictContract):
259
+ """Server-minted proof of the project workspace used to trigger one run."""
292
260
 
293
- schema_version: Literal["smr.intern-sync-kit-association.v1"]
294
- receipt_id: str
261
+ schema_version: Literal["smr.intern-sync-workspace-run.v1"] = "smr.intern-sync-workspace-run.v1"
262
+ run_id: str
295
263
  sync_session_id: str
296
264
  project_id: str
297
- ingress_kind: SyncKitIngressKind
298
- observed_via: SyncKitIngressObservation
299
- files: tuple[SyncKitAssociatedFile, ...] = ()
300
- source: SyncKitIngressSource
301
- open_session_count: int = Field(ge=1)
302
- associated_at: datetime
303
-
304
-
305
- class SyncKitReadiness(_StrictContract):
306
- """Read-only kit completeness projection for a template-bound session."""
307
-
308
- schema_version: Literal["smr.intern-sync-kit-readiness.v1"]
309
- status: Literal["ready", "incomplete"]
310
- task_template: str
311
- kit_contract: str
312
- required_files: tuple[str, ...]
313
- present_files: tuple[str, ...] = ()
314
- missing_files: tuple[str, ...] = ()
315
- checked_at: datetime
265
+ experiment_id: str | None = None
266
+ workspace: SyncWorkspaceSnapshotIdentity
267
+ recorded_at: datetime
316
268
 
317
269
 
318
270
  class InternSyncSession(_StrictContract):
319
- schema_version: Literal["smr.intern-sync-session.v1"]
271
+ schema_version: Literal["smr.intern-sync-session.v1"] = "smr.intern-sync-session.v1"
320
272
  sync_session_id: str
321
273
  research_intern_id: str
322
274
  org_id: str
@@ -333,18 +285,11 @@ class InternSyncSession(_StrictContract):
333
285
  outcome: InternRuntimeOutcome | None = None
334
286
  failure_code: str | None = None
335
287
  temporal_workflow_id: str
336
- execution_mode: Literal["fast", "standard", "deep"] = "standard"
288
+ execution_mode: Literal["fast", "standard", "deep"]
337
289
  execution_profile_id: Literal["intern_sync"] = "intern_sync"
338
- # Server-minted projection stamps. Old backends omit them entirely; new
339
- # backends stamp them once the corresponding effect lands. The SDK only
340
- # observes these receipts — the backend remains the minting authority.
341
- task_template: str | None = None
342
- provisioning: SyncTemplateProvisioningReceipt | None = None
343
290
  trace_publication: SyncTracePublicationReceipt | None = None
344
- kit_associations: tuple[SyncKitAssociationReceipt, ...] = ()
345
- kit_readiness: SyncKitReadiness | None = None
346
291
  visuals: tuple[dict[str, Any], ...] = ()
347
- kit_state_receipts: tuple[dict[str, Any], ...] = ()
292
+ workspace_run_receipts: tuple[SyncWorkspaceRunReceipt, ...] = ()
348
293
  experiments: tuple[dict[str, Any], ...] = ()
349
294
  harness_bundle_available: bool = False
350
295
  created_at: datetime
@@ -406,13 +351,11 @@ class InternSyncDeployPacket(_StrictContract):
406
351
  schema_version: Literal["smr.intern-sync-deploy-packet.v1"]
407
352
  sync_session_id: str
408
353
  project_id: str
409
- task_template: str | None = None
410
354
  auth_scheme: Literal["bearer"]
411
355
  auth_env_var: Literal["SYNTH_API_KEY"]
412
- required_paths: tuple[str, ...] = ()
413
356
  endpoints: tuple[InternSyncDeployPacketEndpoint, ...]
414
357
  done_signal: Literal["workspace_confirm_push"]
415
- image_kind: Literal["craftax_eval"]
358
+ image_kind: Literal["project_default"]
416
359
  instructions: str
417
360
 
418
361
 
@@ -299,15 +299,10 @@ from synth_ai.sdk.research.contracts import (
299
299
  SwarmTranscriptEvent,
300
300
  SwarmTranscriptPage,
301
301
  SwarmUsage,
302
- SyncKitAssociatedFile,
303
- SyncKitAssociationReceipt,
304
- SyncKitIngressKind,
305
- SyncKitIngressObservation,
306
- SyncKitIngressSource,
307
- SyncKitReadiness,
308
- SyncTemplateProvisionedResource,
309
- SyncTemplateProvisioningReceipt,
310
302
  SyncTracePublicationReceipt,
303
+ SyncWorkspaceRunReceipt,
304
+ SyncWorkspaceSnapshotIdentity,
305
+ SyncWorkspaceSnapshotKind,
311
306
  TaskId,
312
307
  TokenCounts,
313
308
  TokenUsage,
@@ -769,15 +764,10 @@ __all__ = [
769
764
  "SwarmTranscriptEvent",
770
765
  "SwarmTranscriptPage",
771
766
  "SwarmUsage",
772
- "SyncKitAssociatedFile",
773
- "SyncKitAssociationReceipt",
774
- "SyncKitIngressKind",
775
- "SyncKitIngressObservation",
776
- "SyncKitIngressSource",
777
- "SyncKitReadiness",
778
- "SyncTemplateProvisionedResource",
779
- "SyncTemplateProvisioningReceipt",
780
767
  "SyncTracePublicationReceipt",
768
+ "SyncWorkspaceRunReceipt",
769
+ "SyncWorkspaceSnapshotIdentity",
770
+ "SyncWorkspaceSnapshotKind",
781
771
  "TaskId",
782
772
  "ToolProvider",
783
773
  "TokenCounts",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synth-ai
3
- Version: 0.18.2.dev610
3
+ Version: 0.18.2.dev611
4
4
  Summary: Python SDK and CLI for Synth Managed Research and Research Factory
5
5
  Author-email: Synth AI <josh@usesynth.ai>
6
6
  License-Expression: MIT