synth-ai 0.22.0.dev664__tar.gz → 0.22.1.dev668__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 (325) hide show
  1. {synth_ai-0.22.0.dev664/synth_ai.egg-info → synth_ai-0.22.1.dev668}/PKG-INFO +3 -3
  2. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/README.md +2 -2
  3. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/openapi/index-v1.json +325 -0
  4. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/pyproject.toml +1 -1
  5. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/client.py +90 -1
  6. synth_ai-0.22.1.dev668/synth_ai/sdk/index/rights.py +65 -0
  7. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668/synth_ai.egg-info}/PKG-INFO +3 -3
  8. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai.egg-info/SOURCES.txt +1 -0
  9. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/LICENSE +0 -0
  10. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/MANIFEST.in +0 -0
  11. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/openapi/messaging-v1.json +0 -0
  12. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/openapi/research-v1.json +0 -0
  13. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/setup.cfg +0 -0
  14. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/setup.py +0 -0
  15. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/README.md +0 -0
  16. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/__init__.py +0 -0
  17. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/__main__.py +0 -0
  18. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/AGENTS.md +0 -0
  19. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/README.md +0 -0
  20. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/__init__.py +0 -0
  21. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/__main__.py +0 -0
  22. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/index.py +0 -0
  23. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/main.py +0 -0
  24. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/research.py +0 -0
  25. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/research_environments.py +0 -0
  26. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/research_image_releases.py +0 -0
  27. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/cli/research_projects.py +0 -0
  28. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/client.py +0 -0
  29. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/README.md +0 -0
  30. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/__init__.py +0 -0
  31. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/auth/__init__.py +0 -0
  32. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/auth/credentials.py +0 -0
  33. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/contracts/__init__.py +0 -0
  34. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/contracts/json_value.py +0 -0
  35. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/contracts/pagination.py +0 -0
  36. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/errors.py +0 -0
  37. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/http/__init__.py +0 -0
  38. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/http/async_transport.py +0 -0
  39. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/http/request.py +0 -0
  40. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/http/retry.py +0 -0
  41. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/http/streaming.py +0 -0
  42. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/http/transport.py +0 -0
  43. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/research/__init__.py +0 -0
  44. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/utils/__init__.py +0 -0
  45. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/utils/env.py +0 -0
  46. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/utils/log_filter.py +0 -0
  47. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/utils/paths.py +0 -0
  48. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/core/utils/urls.py +0 -0
  49. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/README.md +0 -0
  50. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/__init__.py +0 -0
  51. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/__main__.py +0 -0
  52. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/objective_tools.py +0 -0
  53. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/registry.py +0 -0
  54. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/request_models.py +0 -0
  55. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/server.py +0 -0
  56. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/__init__.py +0 -0
  57. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/approvals.py +0 -0
  58. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/artifacts.py +0 -0
  59. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/datasets.py +0 -0
  60. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/environments.py +0 -0
  61. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/exports.py +0 -0
  62. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/factories.py +0 -0
  63. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/factory_results.py +0 -0
  64. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/files.py +0 -0
  65. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/image_releases.py +0 -0
  66. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/index.py +0 -0
  67. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/index_qa.py +0 -0
  68. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/integrations.py +0 -0
  69. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/intern_program.py +0 -0
  70. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/local_files.py +0 -0
  71. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/logs.py +0 -0
  72. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/models.py +0 -0
  73. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/outputs.py +0 -0
  74. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
  75. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/progress.py +0 -0
  76. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/project_data.py +0 -0
  77. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/projects.py +0 -0
  78. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/prs.py +0 -0
  79. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/readiness.py +0 -0
  80. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/repos.py +0 -0
  81. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/research_intern.py +0 -0
  82. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/resources.py +0 -0
  83. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/runs.py +0 -0
  84. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/trained_models.py +0 -0
  85. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/usage.py +0 -0
  86. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/visuals.py +0 -0
  87. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/mcp/research/tools/workspace_inputs.py +0 -0
  88. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/pools.py +0 -0
  89. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/py.typed +0 -0
  90. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/README.md +0 -0
  91. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/__init__.py +0 -0
  92. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/AGENT_SETUP_PROMPT.md +0 -0
  93. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/README.md +0 -0
  94. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/__init__.py +0 -0
  95. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/agent_policy.py +0 -0
  96. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/artifacts.py +0 -0
  97. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/catalog.py +0 -0
  98. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/classification.py +0 -0
  99. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/contracts.py +0 -0
  100. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/contributions.py +0 -0
  101. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/errors.py +0 -0
  102. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/intake.py +0 -0
  103. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/lifecycle.py +0 -0
  104. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/manifest.py +0 -0
  105. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/oauth.py +0 -0
  106. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/package.py +0 -0
  107. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/public.py +0 -0
  108. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/public_search.py +0 -0
  109. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/qa.py +0 -0
  110. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/qa_checks.py +0 -0
  111. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/qa_preflight.py +0 -0
  112. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/qa_reviews.py +0 -0
  113. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research/__init__.py +0 -0
  114. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research/build.py +0 -0
  115. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research/capture.py +0 -0
  116. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research/contracts.py +0 -0
  117. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research/files.py +0 -0
  118. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research/release.py +0 -0
  119. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/research_intake.py +0 -0
  120. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/retry.py +0 -0
  121. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/scope_errors.py +0 -0
  122. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/scopes.py +0 -0
  123. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/search.py +0 -0
  124. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/submission.py +0 -0
  125. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/timeouts.py +0 -0
  126. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/transfer.py +0 -0
  127. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/upload_session.py +0 -0
  128. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/usage_accounting.py +0 -0
  129. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/value.py +0 -0
  130. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/index/wallet_search.py +0 -0
  131. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/messaging/README.md +0 -0
  132. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/messaging/__init__.py +0 -0
  133. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/messaging/client.py +0 -0
  134. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/messaging/contracts.py +0 -0
  135. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/optimizers/__init__.py +0 -0
  136. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/optimizers/client.py +0 -0
  137. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/optimizers/contracts.py +0 -0
  138. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/pagination.py +0 -0
  139. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/__init__.py +0 -0
  140. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/_internal/__init__.py +0 -0
  141. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/_internal/crypto.py +0 -0
  142. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/_internal/env.py +0 -0
  143. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/_internal/urls.py +0 -0
  144. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/account.py +0 -0
  145. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/advanced.py +0 -0
  146. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/advanced_factories.py +0 -0
  147. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/advanced_swarms.py +0 -0
  148. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/artifacts.py +0 -0
  149. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/auth.py +0 -0
  150. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/client.py +0 -0
  151. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/container_pools/__init__.py +0 -0
  152. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/container_pools/api.py +0 -0
  153. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/container_pools/contracts.py +0 -0
  154. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/container_pools/operations.py +0 -0
  155. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/container_pools/packaging.py +0 -0
  156. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/__init__.py +0 -0
  157. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
  158. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
  159. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
  160. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/_wire.py +0 -0
  161. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/activity.py +0 -0
  162. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
  163. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
  164. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/billing.py +0 -0
  165. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
  166. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
  167. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
  168. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
  169. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/common.py +0 -0
  170. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
  171. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
  172. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
  173. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/economics.py +0 -0
  174. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
  175. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/environments.py +0 -0
  176. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/evidence.py +0 -0
  177. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/factories.py +0 -0
  178. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
  179. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
  180. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
  181. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
  182. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/failure.py +0 -0
  183. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
  184. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/intern_blockers.py +0 -0
  185. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/intern_grants.py +0 -0
  186. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/intern_program.py +0 -0
  187. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/intern_resources.py +0 -0
  188. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/intern_usage.py +0 -0
  189. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
  190. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
  191. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
  192. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/project.py +0 -0
  193. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/project_data.py +0 -0
  194. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
  195. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
  196. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
  197. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/projects.py +0 -0
  198. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/promotions.py +0 -0
  199. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/research_intern.py +0 -0
  200. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/resource_settlement.py +0 -0
  201. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
  202. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_control.py +0 -0
  203. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
  204. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_events.py +0 -0
  205. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
  206. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
  207. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
  208. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_state.py +0 -0
  209. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
  210. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
  211. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
  212. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
  213. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
  214. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
  215. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
  216. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +0 -0
  217. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
  218. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
  219. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_agent_models.py +0 -0
  220. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
  221. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -0
  222. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
  223. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
  224. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
  225. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
  226. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
  227. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -0
  228. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
  229. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_providers.py +0 -0
  230. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
  231. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
  232. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
  233. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
  234. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
  235. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
  236. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
  237. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
  238. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/status.py +0 -0
  239. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/swarm_rollouts.py +0 -0
  240. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/swarms.py +0 -0
  241. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/tag.py +0 -0
  242. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/traces.py +0 -0
  243. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/transcript.py +0 -0
  244. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/types.py +0 -0
  245. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/usage.py +0 -0
  246. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/visuals.py +0 -0
  247. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
  248. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
  249. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/work_products.py +0 -0
  250. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/contracts/workspaces.py +0 -0
  251. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/economics.py +0 -0
  252. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/efforts.py +0 -0
  253. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/environments.py +0 -0
  254. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/errors.py +0 -0
  255. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/events.py +0 -0
  256. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/experiments.py +0 -0
  257. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/facade.py +0 -0
  258. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/factories.py +0 -0
  259. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/factory_storage.py +0 -0
  260. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/image_releases.py +0 -0
  261. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/intern_blockers.py +0 -0
  262. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/intern_program.py +0 -0
  263. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/knowledge.py +0 -0
  264. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/models.py +0 -0
  265. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/operations.py +0 -0
  266. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/project_data.py +0 -0
  267. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/project_deliveries.py +0 -0
  268. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/project_workspaces.py +0 -0
  269. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/projects.py +0 -0
  270. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/public.py +0 -0
  271. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/readouts.py +0 -0
  272. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/research_intern.py +0 -0
  273. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/secrets.py +0 -0
  274. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/README.md +0 -0
  275. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/__init__.py +0 -0
  276. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/_base.py +0 -0
  277. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
  278. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
  279. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/approvals.py +0 -0
  280. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/billing.py +0 -0
  281. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/client.py +0 -0
  282. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
  283. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/config.py +0 -0
  284. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/cost.py +0 -0
  285. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/datasets.py +0 -0
  286. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/dev_environments.py +0 -0
  287. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/environments.py +0 -0
  288. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/exports.py +0 -0
  289. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/factories.py +0 -0
  290. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
  291. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/files.py +0 -0
  292. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/github.py +0 -0
  293. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/image_releases.py +0 -0
  294. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/images.py +0 -0
  295. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/logs.py +0 -0
  296. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/models.py +0 -0
  297. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/outputs.py +0 -0
  298. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/progress.py +0 -0
  299. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/project.py +0 -0
  300. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/projects.py +0 -0
  301. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/prs.py +0 -0
  302. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/readiness.py +0 -0
  303. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/repositories.py +0 -0
  304. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/runs.py +0 -0
  305. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/secrets.py +0 -0
  306. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/setup.py +0 -0
  307. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/tag.py +0 -0
  308. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/trained_models.py +0 -0
  309. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/transport.py +0 -0
  310. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/usage.py +0 -0
  311. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/work_products.py +0 -0
  312. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
  313. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/surface_parity.py +0 -0
  314. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/swarms.py +0 -0
  315. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/traces.py +0 -0
  316. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/transport/__init__.py +0 -0
  317. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/transport/http.py +0 -0
  318. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/transport/pagination.py +0 -0
  319. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/version.py +0 -0
  320. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/visuals.py +0 -0
  321. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai/sdk/research/wiki.py +0 -0
  322. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai.egg-info/dependency_links.txt +0 -0
  323. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai.egg-info/entry_points.txt +0 -0
  324. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/synth_ai.egg-info/requires.txt +0 -0
  325. {synth_ai-0.22.0.dev664 → synth_ai-0.22.1.dev668}/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.22.0.dev664
3
+ Version: 0.22.1.dev668
4
4
  Summary: Python SDK, CLI and MCP servers for Synth Index search and Swarms
5
5
  Author-email: Synth AI <josh@usesynth.ai>
6
6
  License-Expression: MIT
@@ -30,9 +30,9 @@ Dynamic: license-file
30
30
 
31
31
  # Synth AI SDK
32
32
 
33
- <!-- CI release pins: PyPI-0.22.0-orange synth-ai==0.22.0 -->
33
+ <!-- CI release pins: PyPI-0.22.1-orange synth-ai==0.22.1 -->
34
34
 
35
- > 0.22.0 is the Index v0.2 release (typed QA/lifecycle APIs, CLI and MCP tools).
35
+ > The 0.22.1 development candidate completes Index v0.2 client coverage for revision rights and research corrections. Stable 0.22.0 remains published.
36
36
 
37
37
  [![PyPI version](https://img.shields.io/pypi/v/synth-ai.svg)](https://pypi.org/project/synth-ai/)
38
38
  [![License](https://img.shields.io/pypi/l/synth-ai.svg)](https://pypi.org/project/synth-ai/)
@@ -1,8 +1,8 @@
1
1
  # Synth AI SDK
2
2
 
3
- <!-- CI release pins: PyPI-0.22.0-orange synth-ai==0.22.0 -->
3
+ <!-- CI release pins: PyPI-0.22.1-orange synth-ai==0.22.1 -->
4
4
 
5
- > 0.22.0 is the Index v0.2 release (typed QA/lifecycle APIs, CLI and MCP tools).
5
+ > The 0.22.1 development candidate completes Index v0.2 client coverage for revision rights and research corrections. Stable 0.22.0 remains published.
6
6
 
7
7
  [![PyPI version](https://img.shields.io/pypi/v/synth-ai.svg)](https://pypi.org/project/synth-ai/)
8
8
  [![License](https://img.shields.io/pypi/l/synth-ai.svg)](https://pypi.org/project/synth-ai/)
@@ -7756,6 +7756,164 @@
7756
7756
  "title": "RewardReverseSpec",
7757
7757
  "type": "object"
7758
7758
  },
7759
+ "RightsAttestationSpec": {
7760
+ "additionalProperties": false,
7761
+ "description": "Rights owner's exact claim; every digest must match the sealed revision.",
7762
+ "properties": {
7763
+ "descriptor_digest": {
7764
+ "pattern": "^[0-9a-f]{64}$",
7765
+ "title": "Descriptor Digest",
7766
+ "type": "string"
7767
+ },
7768
+ "licenses": {
7769
+ "items": {
7770
+ "maxLength": 256,
7771
+ "minLength": 1,
7772
+ "type": "string"
7773
+ },
7774
+ "maxItems": 64,
7775
+ "minItems": 1,
7776
+ "title": "Licenses",
7777
+ "type": "array"
7778
+ },
7779
+ "manifest_digest": {
7780
+ "pattern": "^[0-9a-f]{64}$",
7781
+ "title": "Manifest Digest",
7782
+ "type": "string"
7783
+ },
7784
+ "notices_digest": {
7785
+ "pattern": "^[0-9a-f]{64}$",
7786
+ "title": "Notices Digest",
7787
+ "type": "string"
7788
+ },
7789
+ "rights_decision_ref": {
7790
+ "maxLength": 512,
7791
+ "minLength": 1,
7792
+ "title": "Rights Decision Ref",
7793
+ "type": "string"
7794
+ }
7795
+ },
7796
+ "required": [
7797
+ "manifest_digest",
7798
+ "descriptor_digest",
7799
+ "rights_decision_ref",
7800
+ "licenses",
7801
+ "notices_digest"
7802
+ ],
7803
+ "title": "RightsAttestationSpec",
7804
+ "type": "object"
7805
+ },
7806
+ "RightsAttestationView": {
7807
+ "additionalProperties": false,
7808
+ "properties": {
7809
+ "attested_at": {
7810
+ "format": "date-time",
7811
+ "title": "Attested At",
7812
+ "type": "string"
7813
+ },
7814
+ "attester_org_id": {
7815
+ "anyOf": [
7816
+ {
7817
+ "format": "uuid",
7818
+ "type": "string"
7819
+ },
7820
+ {
7821
+ "type": "null"
7822
+ }
7823
+ ],
7824
+ "title": "Attester Org Id"
7825
+ },
7826
+ "attester_user_id": {
7827
+ "format": "uuid",
7828
+ "title": "Attester User Id",
7829
+ "type": "string"
7830
+ },
7831
+ "authority": {
7832
+ "$ref": "#/components/schemas/RightsAuthority"
7833
+ },
7834
+ "descriptor_digest": {
7835
+ "pattern": "^[0-9a-f]{64}$",
7836
+ "title": "Descriptor Digest",
7837
+ "type": "string"
7838
+ },
7839
+ "licenses": {
7840
+ "items": {
7841
+ "maxLength": 256,
7842
+ "minLength": 1,
7843
+ "type": "string"
7844
+ },
7845
+ "title": "Licenses",
7846
+ "type": "array"
7847
+ },
7848
+ "manifest_digest": {
7849
+ "pattern": "^[0-9a-f]{64}$",
7850
+ "title": "Manifest Digest",
7851
+ "type": "string"
7852
+ },
7853
+ "notices_digest": {
7854
+ "pattern": "^[0-9a-f]{64}$",
7855
+ "title": "Notices Digest",
7856
+ "type": "string"
7857
+ },
7858
+ "queue": {
7859
+ "anyOf": [
7860
+ {
7861
+ "$ref": "#/components/schemas/RightsQueue"
7862
+ },
7863
+ {
7864
+ "type": "null"
7865
+ }
7866
+ ]
7867
+ },
7868
+ "revision_id": {
7869
+ "title": "Revision Id",
7870
+ "type": "string"
7871
+ },
7872
+ "rights_decision_ref": {
7873
+ "maxLength": 512,
7874
+ "minLength": 1,
7875
+ "title": "Rights Decision Ref",
7876
+ "type": "string"
7877
+ },
7878
+ "schema_version": {
7879
+ "default": "research-rights-attestation-v1",
7880
+ "title": "Schema Version",
7881
+ "type": "string"
7882
+ }
7883
+ },
7884
+ "required": [
7885
+ "revision_id",
7886
+ "authority",
7887
+ "queue",
7888
+ "attester_user_id",
7889
+ "attester_org_id",
7890
+ "manifest_digest",
7891
+ "descriptor_digest",
7892
+ "rights_decision_ref",
7893
+ "licenses",
7894
+ "notices_digest",
7895
+ "attested_at"
7896
+ ],
7897
+ "title": "RightsAttestationView",
7898
+ "type": "object"
7899
+ },
7900
+ "RightsAuthority": {
7901
+ "description": "Who may attest; mirrors ``index_rights_attestations.authority`` (SYN-3437).\n\nSynth-origin work is attested by the queue rights owner. Any other origin is\nattested by an OWNER/ADMIN of the contributing org, who holds the rights.",
7902
+ "enum": [
7903
+ "queue_rights_owner",
7904
+ "contributing_org_admin"
7905
+ ],
7906
+ "title": "RightsAuthority",
7907
+ "type": "string"
7908
+ },
7909
+ "RightsQueue": {
7910
+ "description": "Queues whose owner may attest rights; mirrors ``index_rights_owners.queue``.",
7911
+ "enum": [
7912
+ "index-corpus-qa"
7913
+ ],
7914
+ "title": "RightsQueue",
7915
+ "type": "string"
7916
+ },
7759
7917
  "RunPreflightSpec": {
7760
7918
  "additionalProperties": false,
7761
7919
  "properties": {
@@ -11958,6 +12116,109 @@
11958
12116
  ]
11959
12117
  }
11960
12118
  },
12119
+ "/api/v1/index/contributions/{contribution_id}/revisions/{revision_id}/research-registration": {
12120
+ "post": {
12121
+ "description": "Bind a resealed export bundle to a research correction child draft.",
12122
+ "operationId": "index.contributions.research.correction_registration",
12123
+ "parameters": [
12124
+ {
12125
+ "in": "path",
12126
+ "name": "contribution_id",
12127
+ "required": true,
12128
+ "schema": {
12129
+ "maxLength": 128,
12130
+ "minLength": 1,
12131
+ "title": "Contribution Id",
12132
+ "type": "string"
12133
+ }
12134
+ },
12135
+ {
12136
+ "in": "path",
12137
+ "name": "revision_id",
12138
+ "required": true,
12139
+ "schema": {
12140
+ "maxLength": 128,
12141
+ "minLength": 1,
12142
+ "title": "Revision Id",
12143
+ "type": "string"
12144
+ }
12145
+ },
12146
+ {
12147
+ "in": "header",
12148
+ "name": "Idempotency-Key",
12149
+ "required": true,
12150
+ "schema": {
12151
+ "maxLength": 128,
12152
+ "minLength": 1,
12153
+ "pattern": "^[a-zA-Z0-9_.-]+$",
12154
+ "title": "Idempotency-Key",
12155
+ "type": "string"
12156
+ }
12157
+ },
12158
+ {
12159
+ "in": "header",
12160
+ "name": "Synth-Acceptance-Context",
12161
+ "required": false,
12162
+ "schema": {
12163
+ "anyOf": [
12164
+ {
12165
+ "type": "string"
12166
+ },
12167
+ {
12168
+ "type": "null"
12169
+ }
12170
+ ],
12171
+ "title": "Synth-Acceptance-Context"
12172
+ }
12173
+ },
12174
+ {
12175
+ "in": "header",
12176
+ "name": "Synth-Acceptance-Signature",
12177
+ "required": false,
12178
+ "schema": {
12179
+ "anyOf": [
12180
+ {
12181
+ "type": "string"
12182
+ },
12183
+ {
12184
+ "type": "null"
12185
+ }
12186
+ ],
12187
+ "title": "Synth-Acceptance-Signature"
12188
+ }
12189
+ }
12190
+ ],
12191
+ "requestBody": {
12192
+ "content": {
12193
+ "application/json": {
12194
+ "schema": {
12195
+ "$ref": "#/components/schemas/CreateResearchContributionSpec"
12196
+ }
12197
+ }
12198
+ },
12199
+ "required": true
12200
+ },
12201
+ "responses": {
12202
+ "204": {
12203
+ "description": "Successful Response"
12204
+ },
12205
+ "422": {
12206
+ "content": {
12207
+ "application/json": {
12208
+ "schema": {
12209
+ "$ref": "#/components/schemas/HTTPValidationError"
12210
+ }
12211
+ }
12212
+ },
12213
+ "description": "Validation Error"
12214
+ }
12215
+ },
12216
+ "summary": "Register Correction",
12217
+ "tags": [
12218
+ "index-contributions"
12219
+ ]
12220
+ }
12221
+ },
11961
12222
  "/api/v1/index/contributions/{contribution_id}/revisions/{revision_id}/reviews": {
11962
12223
  "post": {
11963
12224
  "operationId": "index.contributions.reviews.create",
@@ -12065,6 +12326,70 @@
12065
12326
  ]
12066
12327
  }
12067
12328
  },
12329
+ "/api/v1/index/contributions/{contribution_id}/revisions/{revision_id}/rights-attestation": {
12330
+ "post": {
12331
+ "description": "The rights holder attests one exact sealed revision; separate from consent.\n\nSynth-origin: this environment's current ``index_queue_policies`` rights\nowner, read in the same transaction; an unset queue refuses\n(``queue_policy_unset``). Other origins: an OWNER/ADMIN of the\ncontributing org (SYN-3437), which needs no queue policy.",
12332
+ "operationId": "index.research.rights_attestation.create",
12333
+ "parameters": [
12334
+ {
12335
+ "in": "path",
12336
+ "name": "contribution_id",
12337
+ "required": true,
12338
+ "schema": {
12339
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$",
12340
+ "title": "Contribution Id",
12341
+ "type": "string"
12342
+ }
12343
+ },
12344
+ {
12345
+ "in": "path",
12346
+ "name": "revision_id",
12347
+ "required": true,
12348
+ "schema": {
12349
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$",
12350
+ "title": "Revision Id",
12351
+ "type": "string"
12352
+ }
12353
+ }
12354
+ ],
12355
+ "requestBody": {
12356
+ "content": {
12357
+ "application/json": {
12358
+ "schema": {
12359
+ "$ref": "#/components/schemas/RightsAttestationSpec"
12360
+ }
12361
+ }
12362
+ },
12363
+ "required": true
12364
+ },
12365
+ "responses": {
12366
+ "200": {
12367
+ "content": {
12368
+ "application/json": {
12369
+ "schema": {
12370
+ "$ref": "#/components/schemas/RightsAttestationView"
12371
+ }
12372
+ }
12373
+ },
12374
+ "description": "Successful Response"
12375
+ },
12376
+ "422": {
12377
+ "content": {
12378
+ "application/json": {
12379
+ "schema": {
12380
+ "$ref": "#/components/schemas/HTTPValidationError"
12381
+ }
12382
+ }
12383
+ },
12384
+ "description": "Validation Error"
12385
+ }
12386
+ },
12387
+ "summary": "Attest Revision Rights",
12388
+ "tags": [
12389
+ "index-research"
12390
+ ]
12391
+ }
12392
+ },
12068
12393
  "/api/v1/index/contributions/{contribution_id}/revisions/{revision_id}/submit": {
12069
12394
  "post": {
12070
12395
  "operationId": "index.contributions.submit",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "synth-ai"
3
- version = "0.22.0.dev664"
3
+ version = "0.22.1.dev668"
4
4
  description = "Python SDK, CLI and MCP servers for Synth Index search and Swarms"
5
5
  keywords = ["synth", "index", "search", "citations", "research", "swarms", "mcp", "sdk"]
6
6
  authors = [{name = "Synth AI", email = "josh@usesynth.ai"}]
@@ -13,7 +13,7 @@ from collections.abc import Callable, Mapping, Sequence
13
13
  from dataclasses import dataclass
14
14
  from datetime import datetime
15
15
  from hashlib import sha256
16
- from typing import Awaitable, Any
16
+ from typing import Any, Awaitable
17
17
  from uuid import UUID, uuid4
18
18
 
19
19
  from synth_ai.core.errors import SynthError
@@ -117,6 +117,7 @@ from .retry import (
117
117
  is_transient_search_failure,
118
118
  search_id_from_error,
119
119
  )
120
+ from .rights import RightsAttestationSpec, RightsAttestationView
120
121
  from .search import (
121
122
  ContentsResult,
122
123
  ContentsSpec,
@@ -164,6 +165,9 @@ OPERATIONS: Mapping[str, tuple[str, str]] = {
164
165
  "index.contents.retrieve": ("POST", f"{_P}/contents"),
165
166
  "index.contributions.create": ("POST", f"{_P}/contributions"),
166
167
  "index.contributions.research.create": ("POST", f"{_P}/contributions/research"),
168
+ "index.contributions.research.correction_registration": (
169
+ "POST", f"{_R}/research-registration"
170
+ ),
167
171
  "index.qa.cases.create": ("POST", _P + "/qa/cases"),
168
172
  "index.qa.cases.get": ("GET", _P + "/qa/cases/{case_id}"),
169
173
  "index.qa.events.list": ("GET", _P + "/qa/cases/{case_id}/events"),
@@ -217,6 +221,7 @@ OPERATIONS: Mapping[str, tuple[str, str]] = {
217
221
  "index.research.binding.create": ("POST", f"{_R}/research-binding"),
218
222
  "index.research.consent.create": ("POST", f"{_R}/release-consent"),
219
223
  "index.research.reproduction.create": ("POST", f"{_R}/reproduction-attestations"),
224
+ "index.research.rights_attestation.create": ("POST", f"{_R}/rights-attestation"),
220
225
  "index.research.disclosure.revoke": ("POST", f"{_R}/disclosure-revocation"),
221
226
  "index.reviews.list": ("GET", f"{_P}/reviews"),
222
227
  "index.tags.list": ("GET", f"{_P}/tags"),
@@ -1530,6 +1535,52 @@ class ContributionsAPI(_Resource):
1530
1535
  )
1531
1536
  )
1532
1537
 
1538
+ def register_research_correction(
1539
+ self,
1540
+ reference: ContributionReference,
1541
+ spec: ResearchDraftSpec,
1542
+ *,
1543
+ idempotency_key: str,
1544
+ ) -> None | Awaitable[None]:
1545
+ """Bind a resealed export bundle to an existing private correction draft.
1546
+
1547
+ See sibling backend/notes/specifications/synth-index/research-export-bundle.md.
1548
+
1549
+ Args:
1550
+ reference: Exact existing child Contribution revision to register.
1551
+ spec: Resealed bundle digest and immutable research source proof.
1552
+ idempotency_key: Explicit key reused only with the identical request.
1553
+
1554
+ Returns:
1555
+ None on acknowledgement, or an awaitable for an async client.
1556
+
1557
+ The backend requires research-import authority and verifies the child's
1558
+ parent/source lineage. This operation grants no rights, consent, QA
1559
+ approval or publication; those remain separate backend decisions.
1560
+
1561
+ Raises:
1562
+ ValueError: Request identifiers/key or acknowledgement are invalid.
1563
+
1564
+ Example:
1565
+ client.index.contributions.register_research_correction(
1566
+ reference, spec, idempotency_key="repair-registration-1"
1567
+ )
1568
+ """
1569
+
1570
+ def acknowledge(payload: object) -> None:
1571
+ if payload != {}:
1572
+ raise ValueError("Research correction acknowledgement must be empty")
1573
+
1574
+ return self._run(
1575
+ _Call(
1576
+ "index.contributions.research.correction_registration",
1577
+ acknowledge,
1578
+ path_parameters=_revision(reference),
1579
+ json_body=_body(spec),
1580
+ headers=_key(idempotency_key, required="Research correction registration"),
1581
+ )
1582
+ )
1583
+
1533
1584
  def retrieve(self, contribution_id: str) -> Any:
1534
1585
  """Contribution, its current revision and revision history (404 when hidden)."""
1535
1586
  return self._run(
@@ -1544,6 +1595,44 @@ class ContributionsAPI(_Resource):
1544
1595
  )
1545
1596
  )
1546
1597
 
1598
+ def attest_rights(
1599
+ self, reference: ContributionReference, spec: RightsAttestationSpec
1600
+ ) -> RightsAttestationView | Awaitable[RightsAttestationView]:
1601
+ """Record a rights claim for the exact sealed revision.
1602
+
1603
+ Args:
1604
+ reference: Contribution and revision whose immutable bytes are attested.
1605
+ spec: Manifest, descriptor, licenses and notices supporting this claim.
1606
+
1607
+ Returns:
1608
+ The exact stored rights fact, or its awaitable for an async client.
1609
+
1610
+ The backend requires the configured queue owner for Synth-origin work,
1611
+ or a contributing-org owner/admin without QA staff authority for external
1612
+ work. This records neither release consent nor QA/publication approval.
1613
+ Repeating the identical claim is safe; a changed claim conflicts.
1614
+
1615
+ Example:
1616
+ fact = client.index.contributions.attest_rights(reference, spec)
1617
+ """
1618
+ return self._run(
1619
+ _Call(
1620
+ "index.research.rights_attestation.create",
1621
+ _bound(
1622
+ RightsAttestationView,
1623
+ lambda view: view.revision_id == reference.revision_id
1624
+ and view.manifest_digest == spec.manifest_digest
1625
+ and view.descriptor_digest == spec.descriptor_digest
1626
+ and view.notices_digest == spec.notices_digest
1627
+ and view.licenses == spec.licenses
1628
+ and view.rights_decision_ref == spec.rights_decision_ref,
1629
+ "Rights response does not bind the requested sealed revision",
1630
+ ),
1631
+ path_parameters=_revision(reference),
1632
+ json_body=_body(spec),
1633
+ )
1634
+ )
1635
+
1547
1636
  def prepare_upload(self, draft: ContributionDraft, spec: ContributionUploadSpec) -> Any:
1548
1637
  """Prepare transfer instructions only; reuse the publication ID for retries."""
1549
1638
  reference = draft.reference
@@ -0,0 +1,65 @@
1
+ """Exact revision rights claims; the backend alone decides attester authority.
2
+
3
+ See backend notes/specifications/synth-index/research-rights-attestation.md.
4
+ Rights attestation is separate from consent, QA acceptance and publication.
5
+ """
6
+
7
+ from datetime import datetime
8
+ from enum import StrEnum
9
+ from typing import Annotated
10
+ from uuid import UUID
11
+
12
+ from pydantic import Field, StringConstraints, field_validator
13
+
14
+ from .contracts import IndexContract
15
+
16
+ Digest = Annotated[str, StringConstraints(pattern=r"^[0-9a-f]{64}$")]
17
+ LicenseExpression = Annotated[str, StringConstraints(min_length=1, max_length=256)]
18
+ DecisionReference = Annotated[str, StringConstraints(min_length=1, max_length=512)]
19
+
20
+
21
+ class RightsQueue(StrEnum):
22
+ """The configured queue for Synth-origin rights claims."""
23
+
24
+ INDEX_CORPUS_QA = "index-corpus-qa"
25
+
26
+
27
+ class RightsAuthority(StrEnum):
28
+ """Authority selected by the backend from the sealed contribution origin."""
29
+
30
+ QUEUE_RIGHTS_OWNER = "queue_rights_owner"
31
+ CONTRIBUTING_ORG_ADMIN = "contributing_org_admin"
32
+
33
+
34
+ class RightsAttestationSpec(IndexContract):
35
+ """Exact rights claim for sealed bytes, without granting publication permission."""
36
+
37
+ manifest_digest: Digest
38
+ descriptor_digest: Digest
39
+ rights_decision_ref: DecisionReference
40
+ licenses: tuple[LicenseExpression, ...] = Field(min_length=1, max_length=64)
41
+ notices_digest: Digest
42
+
43
+ @field_validator("licenses")
44
+ @classmethod
45
+ def _canonical_licenses(cls, value: tuple[str, ...]) -> tuple[str, ...]:
46
+ if len(set(value)) != len(value):
47
+ raise ValueError("licenses must be distinct")
48
+ return tuple(sorted(value))
49
+
50
+
51
+ class RightsAttestationView(IndexContract):
52
+ """A stored rights fact bound to one exact revision; never a publication decision."""
53
+
54
+ schema_version: str = "research-rights-attestation-v1"
55
+ revision_id: str
56
+ authority: RightsAuthority
57
+ queue: RightsQueue | None
58
+ attester_user_id: UUID
59
+ attester_org_id: UUID | None
60
+ manifest_digest: Digest
61
+ descriptor_digest: Digest
62
+ rights_decision_ref: DecisionReference
63
+ licenses: tuple[LicenseExpression, ...]
64
+ notices_digest: Digest
65
+ attested_at: datetime
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synth-ai
3
- Version: 0.22.0.dev664
3
+ Version: 0.22.1.dev668
4
4
  Summary: Python SDK, CLI and MCP servers for Synth Index search and Swarms
5
5
  Author-email: Synth AI <josh@usesynth.ai>
6
6
  License-Expression: MIT
@@ -30,9 +30,9 @@ Dynamic: license-file
30
30
 
31
31
  # Synth AI SDK
32
32
 
33
- <!-- CI release pins: PyPI-0.22.0-orange synth-ai==0.22.0 -->
33
+ <!-- CI release pins: PyPI-0.22.1-orange synth-ai==0.22.1 -->
34
34
 
35
- > 0.22.0 is the Index v0.2 release (typed QA/lifecycle APIs, CLI and MCP tools).
35
+ > The 0.22.1 development candidate completes Index v0.2 client coverage for revision rights and research corrections. Stable 0.22.0 remains published.
36
36
 
37
37
  [![PyPI version](https://img.shields.io/pypi/v/synth-ai.svg)](https://pypi.org/project/synth-ai/)
38
38
  [![License](https://img.shields.io/pypi/l/synth-ai.svg)](https://pypi.org/project/synth-ai/)
@@ -114,6 +114,7 @@ synth_ai/sdk/index/qa_preflight.py
114
114
  synth_ai/sdk/index/qa_reviews.py
115
115
  synth_ai/sdk/index/research_intake.py
116
116
  synth_ai/sdk/index/retry.py
117
+ synth_ai/sdk/index/rights.py
117
118
  synth_ai/sdk/index/scope_errors.py
118
119
  synth_ai/sdk/index/scopes.py
119
120
  synth_ai/sdk/index/search.py