synth-ai 0.19.0.dev623__tar.gz → 0.20.0.dev628__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.
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/MANIFEST.in +3 -0
- {synth_ai-0.19.0.dev623/synth_ai.egg-info → synth_ai-0.20.0.dev628}/PKG-INFO +30 -2
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/README.md +27 -1
- synth_ai-0.20.0.dev628/openapi/index-v1.json +9474 -0
- synth_ai-0.20.0.dev628/openapi/messaging-v1.json +1097 -0
- synth_ai-0.20.0.dev628/openapi/research-v1.json +53423 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/pyproject.toml +4 -1
- synth_ai-0.20.0.dev628/setup.py +33 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/__init__.py +0 -60
- synth_ai-0.20.0.dev628/synth_ai/cli/index.py +405 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/main.py +2 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/client.py +45 -19
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/errors.py +52 -3
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/http/transport.py +58 -24
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/server.py +12 -12
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/index.py +126 -6
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/progress.py +1 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/research_intern.py +83 -542
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/runs.py +2 -2
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/usage.py +13 -14
- synth_ai-0.20.0.dev628/synth_ai/pools.py +24 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/README.md +304 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/__init__.py +169 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/answer.py +140 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/catalog.py +74 -3
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/client.py +490 -13
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/contributions.py +117 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/errors.py +199 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/lifecycle.py +1 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/public.py +13 -2
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/research_intake.py +470 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/search.py +499 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/transfer.py +334 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/index/usage_accounting.py +183 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/client.py +4 -10
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/container_pools/__init__.py +55 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/container_pools/api.py +538 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/container_pools/contracts.py +205 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/container_pools/operations.py +168 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/container_pools/packaging.py +430 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/__init__.py +24 -42
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/evidence.py +114 -8
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/contracts/intern_blockers.py +86 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/intern_grants.py +9 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/intern_program.py +3 -2
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/contracts/intern_resources.py +91 -0
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/contracts/intern_usage.py +106 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/projects.py +6 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/research_intern.py +176 -325
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/contracts/resource_settlement.py +128 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_control.py +14 -2
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_state.py +5 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +26 -26
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_agent_models.py +5 -3
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_providers.py +7 -5
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/contracts/swarm_rollouts.py +344 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/swarms.py +180 -10
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/transcript.py +50 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/types.py +8 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/usage.py +15 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/workspaces.py +11 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/facade.py +11 -2
- synth_ai-0.20.0.dev628/synth_ai/sdk/research/intern_blockers.py +123 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/operations.py +103 -88
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/project_workspaces.py +2 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/public.py +18 -66
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/research_intern.py +478 -2372
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/client.py +45 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/files.py +31 -1
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/usage.py +30 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/swarms.py +97 -3
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628/synth_ai.egg-info}/PKG-INFO +30 -2
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai.egg-info/SOURCES.txt +20 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai.egg-info/requires.txt +3 -0
- synth_ai-0.19.0.dev623/synth_ai/sdk/index/README.md +0 -116
- synth_ai-0.19.0.dev623/synth_ai/sdk/index/__init__.py +0 -79
- synth_ai-0.19.0.dev623/synth_ai/sdk/index/contributions.py +0 -42
- synth_ai-0.19.0.dev623/synth_ai/sdk/index/errors.py +0 -35
- synth_ai-0.19.0.dev623/synth_ai/sdk/index/search.py +0 -203
- synth_ai-0.19.0.dev623/synth_ai/sdk/index/transfer.py +0 -109
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/LICENSE +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/setup.cfg +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/__main__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/AGENTS.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/__main__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/research.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/research_environments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/research_image_releases.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/cli/research_projects.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/auth/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/auth/credentials.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/contracts/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/contracts/json_value.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/contracts/pagination.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/http/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/http/async_transport.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/http/request.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/http/retry.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/http/streaming.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/research/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/utils/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/utils/env.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/utils/log_filter.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/utils/paths.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/core/utils/urls.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/__main__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/objective_tools.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/registry.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/request_models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/approvals.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/artifacts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/datasets.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/environments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/exports.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/factories.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/factory_results.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/files.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/image_releases.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/integrations.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/intern_program.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/local_files.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/logs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/outputs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/project_data.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/projects.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/prs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/readiness.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/repos.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/resources.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/trained_models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/visuals.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/mcp/research/tools/workspace_inputs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/py.typed +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/agent_policy.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/artifacts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/contracts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/package.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/index/submission.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/messaging/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/messaging/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/messaging/client.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/messaging/contracts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/optimizers/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/optimizers/client.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/optimizers/contracts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/pagination.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/_internal/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/_internal/crypto.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/_internal/env.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/_internal/urls.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/account.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/advanced.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/advanced_factories.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/advanced_swarms.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/artifacts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/auth.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/_wire.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/activity.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/billing.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/common.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/economics.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/environments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/factories.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/failure.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/project.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/project_data.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/promotions.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_events.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/status.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/tag.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/traces.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/visuals.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/contracts/work_products.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/economics.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/efforts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/environments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/errors.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/events.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/experiments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/factories.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/factory_storage.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/image_releases.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/intern_program.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/knowledge.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/project_data.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/project_deliveries.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/projects.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/readouts.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/secrets.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/README.md +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/_base.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/approvals.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/billing.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/config.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/cost.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/datasets.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/dev_environments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/environments.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/exports.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/factories.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/github.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/image_releases.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/images.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/logs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/outputs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/progress.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/project.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/projects.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/prs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/readiness.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/repositories.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/runs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/secrets.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/setup.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/tag.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/trained_models.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/transport.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/work_products.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/surface_parity.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/traces.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/transport/__init__.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/transport/http.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/transport/pagination.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/version.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/visuals.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai/sdk/research/wiki.py +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.19.0.dev623 → synth_ai-0.20.0.dev628}/synth_ai.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
include README.md
|
|
2
2
|
include LICENSE
|
|
3
|
+
include openapi/index-v1.json
|
|
4
|
+
include openapi/research-v1.json
|
|
5
|
+
include openapi/messaging-v1.json
|
|
3
6
|
recursive-include synth_ai *.py
|
|
4
7
|
recursive-include synth_ai *.md
|
|
5
8
|
# Prune heavy example/demo/test/data trees from the sdist (keep code)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synth-ai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.0.dev628
|
|
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
|
|
@@ -14,6 +14,8 @@ Requires-Dist: pydantic>=2.0.0
|
|
|
14
14
|
Requires-Dist: pynacl>=1.5.0
|
|
15
15
|
Requires-Dist: click<8.2,>=8.1.7
|
|
16
16
|
Requires-Dist: httpx>=0.28.1
|
|
17
|
+
Provides-Extra: pools
|
|
18
|
+
Requires-Dist: synth-containers<0.5,>=0.4.3.dev2026091126; extra == "pools"
|
|
17
19
|
Provides-Extra: dev
|
|
18
20
|
Requires-Dist: build>=1.2.2.post1; extra == "dev"
|
|
19
21
|
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
@@ -27,7 +29,7 @@ Dynamic: license-file
|
|
|
27
29
|
|
|
28
30
|
# Synth AI SDK
|
|
29
31
|
|
|
30
|
-
<!-- CI release pins: PyPI-0.
|
|
32
|
+
<!-- CI release pins: PyPI-0.20.0-orange synth-ai==0.20.0 -->
|
|
31
33
|
|
|
32
34
|
[](https://pypi.org/project/synth-ai/)
|
|
33
35
|
[](https://pypi.org/project/synth-ai/)
|
|
@@ -167,6 +169,32 @@ CLI discovery:
|
|
|
167
169
|
synth-ai research --help
|
|
168
170
|
```
|
|
169
171
|
|
|
172
|
+
Project creation also accepts the backend-owned `ProjectSpec.policy` mapping.
|
|
173
|
+
For example, a server-enabled fresh project can request
|
|
174
|
+
`policy={"host_resource_custody_mode": "horizons_docker_sessions_only"}`.
|
|
175
|
+
The backend validates this restricted mode and owns its immutable resource
|
|
176
|
+
binding; SDK serialization does not grant additional authority.
|
|
177
|
+
|
|
178
|
+
## Container pools
|
|
179
|
+
|
|
180
|
+
The optional `synth-ai[pools]` extra exposes the canonical `synth-containers`
|
|
181
|
+
client through `AsyncSynthClient.pools`. It uses the same configured backend
|
|
182
|
+
credential and keeps hosted admission, resource ownership, and recovery in the
|
|
183
|
+
backend. The enclosing async client closes the pool transport.
|
|
184
|
+
|
|
185
|
+
```python
|
|
186
|
+
from synth_ai import AsyncSynthClient
|
|
187
|
+
|
|
188
|
+
async def inspect_lease(lease_id: str, task_id: str):
|
|
189
|
+
async with AsyncSynthClient() as client:
|
|
190
|
+
return await client.pools.get_lease_interactive(lease_id, task_id=task_id)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
For explicit lifetime management, `from synth_ai.pools import PoolClient`
|
|
194
|
+
re-exports the same implementation. Research-only installations do not import
|
|
195
|
+
this optional dependency. Development candidates must install the exact pinned
|
|
196
|
+
containers wheel; an unpublished candidate extra is not a release claim.
|
|
197
|
+
|
|
170
198
|
## CLI
|
|
171
199
|
|
|
172
200
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Synth AI SDK
|
|
2
2
|
|
|
3
|
-
<!-- CI release pins: PyPI-0.
|
|
3
|
+
<!-- CI release pins: PyPI-0.20.0-orange synth-ai==0.20.0 -->
|
|
4
4
|
|
|
5
5
|
[](https://pypi.org/project/synth-ai/)
|
|
6
6
|
[](https://pypi.org/project/synth-ai/)
|
|
@@ -140,6 +140,32 @@ CLI discovery:
|
|
|
140
140
|
synth-ai research --help
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
+
Project creation also accepts the backend-owned `ProjectSpec.policy` mapping.
|
|
144
|
+
For example, a server-enabled fresh project can request
|
|
145
|
+
`policy={"host_resource_custody_mode": "horizons_docker_sessions_only"}`.
|
|
146
|
+
The backend validates this restricted mode and owns its immutable resource
|
|
147
|
+
binding; SDK serialization does not grant additional authority.
|
|
148
|
+
|
|
149
|
+
## Container pools
|
|
150
|
+
|
|
151
|
+
The optional `synth-ai[pools]` extra exposes the canonical `synth-containers`
|
|
152
|
+
client through `AsyncSynthClient.pools`. It uses the same configured backend
|
|
153
|
+
credential and keeps hosted admission, resource ownership, and recovery in the
|
|
154
|
+
backend. The enclosing async client closes the pool transport.
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
from synth_ai import AsyncSynthClient
|
|
158
|
+
|
|
159
|
+
async def inspect_lease(lease_id: str, task_id: str):
|
|
160
|
+
async with AsyncSynthClient() as client:
|
|
161
|
+
return await client.pools.get_lease_interactive(lease_id, task_id=task_id)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
For explicit lifetime management, `from synth_ai.pools import PoolClient`
|
|
165
|
+
re-exports the same implementation. Research-only installations do not import
|
|
166
|
+
this optional dependency. Development candidates must install the exact pinned
|
|
167
|
+
containers wheel; an unpublished candidate extra is not a release claim.
|
|
168
|
+
|
|
143
169
|
## CLI
|
|
144
170
|
|
|
145
171
|
```bash
|