synth-ai 0.20.1.dev641__tar.gz → 0.20.2.dev643__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.20.1.dev641/synth_ai.egg-info → synth_ai-0.20.2.dev643}/PKG-INFO +1 -1
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/pyproject.toml +1 -1
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/index.py +8 -3
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/client.py +27 -8
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643/synth_ai.egg-info}/PKG-INFO +1 -1
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/LICENSE +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/MANIFEST.in +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/openapi/index-v1.json +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/openapi/messaging-v1.json +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/openapi/research-v1.json +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/setup.cfg +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/setup.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/__main__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/AGENTS.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/__main__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/index.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/main.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/research.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/research_environments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/research_image_releases.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/cli/research_projects.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/client.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/auth/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/auth/credentials.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/contracts/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/contracts/json_value.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/contracts/pagination.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/errors.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/http/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/http/async_transport.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/http/request.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/http/retry.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/http/streaming.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/http/transport.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/research/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/utils/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/utils/env.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/utils/log_filter.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/utils/paths.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/core/utils/urls.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/__main__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/objective_tools.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/registry.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/request_models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/server.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/approvals.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/artifacts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/datasets.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/environments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/exports.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/factories.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/factory_results.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/files.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/image_releases.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/integrations.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/intern_program.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/local_files.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/logs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/outputs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/progress.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/project_data.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/projects.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/prs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/readiness.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/repos.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/research_intern.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/resources.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/runs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/trained_models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/usage.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/visuals.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/workspace_inputs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/pools.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/py.typed +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/AGENT_SETUP_PROMPT.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/agent_policy.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/answer.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/artifacts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/catalog.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/contracts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/contributions.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/errors.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/lifecycle.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/package.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/public.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/research_intake.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/retry.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/search.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/submission.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/timeouts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/transfer.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/index/usage_accounting.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/messaging/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/messaging/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/messaging/client.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/messaging/contracts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/optimizers/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/optimizers/client.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/optimizers/contracts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/pagination.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/_internal/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/_internal/crypto.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/_internal/env.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/_internal/urls.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/account.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/advanced.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/advanced_factories.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/advanced_swarms.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/artifacts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/auth.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/client.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/api.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/contracts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/operations.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/packaging.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/_wire.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/activity.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/billing.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/common.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/economics.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/environments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factories.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/failure.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_blockers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_grants.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_program.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_resources.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_usage.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project_data.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/projects.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/promotions.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/research_intern.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/resource_settlement.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_control.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_events.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_state.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_agent_models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_providers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/status.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/swarm_rollouts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/swarms.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/tag.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/traces.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/transcript.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/types.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/usage.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/visuals.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/work_products.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/workspaces.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/economics.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/efforts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/environments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/errors.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/events.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/experiments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/facade.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/factories.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/factory_storage.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/image_releases.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/intern_blockers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/intern_program.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/knowledge.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/operations.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/project_data.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/project_deliveries.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/project_workspaces.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/projects.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/public.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/readouts.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/research_intern.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/secrets.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/README.md +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/_base.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/approvals.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/billing.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/client.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/config.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/cost.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/datasets.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/dev_environments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/environments.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/exports.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/factories.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/files.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/github.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/image_releases.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/images.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/logs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/outputs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/progress.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/project.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/projects.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/prs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/readiness.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/repositories.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/runs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/secrets.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/setup.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/tag.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/trained_models.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/transport.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/usage.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/work_products.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/surface_parity.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/swarms.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/traces.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/transport/__init__.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/transport/http.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/transport/pagination.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/version.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/visuals.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/wiki.py +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai.egg-info/SOURCES.txt +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai.egg-info/requires.txt +0 -0
- {synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai.egg-info/top_level.txt +0 -0
|
@@ -21,7 +21,7 @@ from synth_ai.mcp.research.registry import (
|
|
|
21
21
|
)
|
|
22
22
|
from synth_ai.mcp.research.tools.local_files import SelectedFileReader
|
|
23
23
|
from synth_ai.sdk.index.answer import AnswerSpec
|
|
24
|
-
from synth_ai.sdk.index.client import IndexAPI
|
|
24
|
+
from synth_ai.sdk.index.client import STATUS_POLL_TIMEOUT_SECONDS, IndexAPI
|
|
25
25
|
from synth_ai.sdk.index.contracts import ContributionReference, Identifier, IndexContract
|
|
26
26
|
from synth_ai.sdk.index.contributions import ContributionDraft, ContributionUploadSpec
|
|
27
27
|
from synth_ai.sdk.index.search import ContentsSpec, SearchSpec
|
|
@@ -154,12 +154,17 @@ def build_index_tools(
|
|
|
154
154
|
def search_get(arguments: JSONDict) -> JSONDict:
|
|
155
155
|
request = SearchIdentityRequest.model_validate(arguments)
|
|
156
156
|
with client_factory() as client:
|
|
157
|
-
|
|
157
|
+
# One bounded status read: an agent polls again rather than hang.
|
|
158
|
+
return client.searches.get(
|
|
159
|
+
request.search_id, timeout_seconds=STATUS_POLL_TIMEOUT_SECONDS
|
|
160
|
+
).model_dump(mode="json")
|
|
158
161
|
|
|
159
162
|
def search_result(arguments: JSONDict) -> JSONDict:
|
|
160
163
|
request = SearchIdentityRequest.model_validate(arguments)
|
|
161
164
|
with client_factory() as client:
|
|
162
|
-
snapshot = client.searches.get(
|
|
165
|
+
snapshot = client.searches.get(
|
|
166
|
+
request.search_id, timeout_seconds=STATUS_POLL_TIMEOUT_SECONDS
|
|
167
|
+
)
|
|
163
168
|
return client.searches.result(request.search_id, snapshot.spec).model_dump(mode="json")
|
|
164
169
|
|
|
165
170
|
def search_events(arguments: JSONDict) -> JSONDict:
|
|
@@ -196,6 +196,8 @@ class _Call:
|
|
|
196
196
|
headers: dict[str, str] | None = None
|
|
197
197
|
params: dict[str, Any] | None = None
|
|
198
198
|
raw: bool = False
|
|
199
|
+
# Per-request transport timeout; None keeps the client's default.
|
|
200
|
+
timeout_seconds: float | None = None
|
|
199
201
|
|
|
200
202
|
def request(self) -> tuple[str, str, dict[str, Any]]:
|
|
201
203
|
operation = OPERATIONS.get(self.operation_id) or PUBLIC_OPERATIONS.get(self.operation_id)
|
|
@@ -208,6 +210,8 @@ class _Call:
|
|
|
208
210
|
kwargs: dict[str, Any] = {"operation_id": self.operation_id}
|
|
209
211
|
if self.params:
|
|
210
212
|
kwargs["params"] = self.params
|
|
213
|
+
if self.timeout_seconds is not None:
|
|
214
|
+
kwargs["timeout_seconds"] = self.timeout_seconds
|
|
211
215
|
if not self.raw:
|
|
212
216
|
if self.json_body is not None:
|
|
213
217
|
kwargs["json_body"] = self.json_body
|
|
@@ -449,6 +453,17 @@ class _Resource:
|
|
|
449
453
|
self._asynchronous = asynchronous
|
|
450
454
|
|
|
451
455
|
|
|
456
|
+
#: Upper bound for one lifecycle status read while waiting (prod 2026-09-27
|
|
457
|
+
#: P12: one poll response never arrived and the client sat on the 120 s
|
|
458
|
+
#: transport timeout, then reported the Search as failed). A slower read is
|
|
459
|
+
#: abandoned and retried; the overall wait deadline is unchanged.
|
|
460
|
+
STATUS_POLL_TIMEOUT_SECONDS = 20.0
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
def _poll_timeout(deadline: float) -> float:
|
|
464
|
+
return max(1.0, min(STATUS_POLL_TIMEOUT_SECONDS, deadline - time.monotonic()))
|
|
465
|
+
|
|
466
|
+
|
|
452
467
|
class SearchHandle:
|
|
453
468
|
"""Blocking durable Search handle; local timeout never mutates server state."""
|
|
454
469
|
|
|
@@ -468,9 +483,9 @@ class SearchHandle:
|
|
|
468
483
|
"""Stable server Search ID to retain for reconnects and receipts."""
|
|
469
484
|
return self.snapshot.search_id
|
|
470
485
|
|
|
471
|
-
def refresh(self) -> Search:
|
|
486
|
+
def refresh(self, *, timeout_seconds: float | None = None) -> Search:
|
|
472
487
|
"""Fetch the latest durable lifecycle state without creating another Search."""
|
|
473
|
-
self.snapshot = self._searches.get(self.search_id)
|
|
488
|
+
self.snapshot = self._searches.get(self.search_id, timeout_seconds=timeout_seconds)
|
|
474
489
|
return self.snapshot
|
|
475
490
|
|
|
476
491
|
def events(self, *, after: int = 0, limit: int = 200) -> SearchEventPage:
|
|
@@ -501,7 +516,7 @@ class SearchHandle:
|
|
|
501
516
|
raise SearchWaitTimeoutError(self.search_id)
|
|
502
517
|
time.sleep(min(poll_seconds, max(0, deadline - time.monotonic())))
|
|
503
518
|
try:
|
|
504
|
-
self.refresh()
|
|
519
|
+
self.refresh(timeout_seconds=_poll_timeout(deadline))
|
|
505
520
|
except SynthError as error:
|
|
506
521
|
# The Search keeps running server-side; a transient read
|
|
507
522
|
# failure is polled through until the local deadline.
|
|
@@ -535,9 +550,9 @@ class AsyncSearchHandle:
|
|
|
535
550
|
"""Stable server Search ID to retain for reconnects and receipts."""
|
|
536
551
|
return self.snapshot.search_id
|
|
537
552
|
|
|
538
|
-
async def refresh(self) -> Search:
|
|
553
|
+
async def refresh(self, *, timeout_seconds: float | None = None) -> Search:
|
|
539
554
|
"""Fetch the latest durable lifecycle state without creating another Search."""
|
|
540
|
-
self.snapshot = await self._searches.get(self.search_id)
|
|
555
|
+
self.snapshot = await self._searches.get(self.search_id, timeout_seconds=timeout_seconds)
|
|
541
556
|
return self.snapshot
|
|
542
557
|
|
|
543
558
|
async def events(self, *, after: int = 0, limit: int = 200) -> SearchEventPage:
|
|
@@ -570,7 +585,7 @@ class AsyncSearchHandle:
|
|
|
570
585
|
raise SearchWaitTimeoutError(self.search_id)
|
|
571
586
|
await asyncio.sleep(min(poll_seconds, max(0, deadline - time.monotonic())))
|
|
572
587
|
try:
|
|
573
|
-
await self.refresh()
|
|
588
|
+
await self.refresh(timeout_seconds=_poll_timeout(deadline))
|
|
574
589
|
except SynthError as error:
|
|
575
590
|
if not is_transient_search_failure(error):
|
|
576
591
|
raise
|
|
@@ -695,13 +710,17 @@ class SearchesAPI(_Resource):
|
|
|
695
710
|
waited += delay
|
|
696
711
|
attempt += 1
|
|
697
712
|
|
|
698
|
-
def get(self, search_id: str) -> Any:
|
|
699
|
-
"""Retrieve a Search's latest state by its stable server ID.
|
|
713
|
+
def get(self, search_id: str, *, timeout_seconds: float | None = None) -> Any:
|
|
714
|
+
"""Retrieve a Search's latest state by its stable server ID.
|
|
715
|
+
|
|
716
|
+
``timeout_seconds`` bounds this one read (default: the client timeout).
|
|
717
|
+
"""
|
|
700
718
|
return self._run(
|
|
701
719
|
_Call(
|
|
702
720
|
"index.searches.get",
|
|
703
721
|
_bound(Search, lambda item: item.search_id == search_id, "Search ID mismatch"),
|
|
704
722
|
path_parameters={"search_id": search_id},
|
|
723
|
+
timeout_seconds=timeout_seconds,
|
|
705
724
|
)
|
|
706
725
|
)
|
|
707
726
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/environments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/factory_results.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/image_releases.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/integrations.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/intern_program.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/local_files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/policy_schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/project_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/research_intern.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/trained_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/mcp/research/tools/workspace_inputs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/_internal/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/advanced_factories.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/api.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/contracts.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/container_pools/packaging.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/_activity_wire.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/activity.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/activity_items.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/actor_images.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/billing.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/canonical_usage.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/checkpoints.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/deliveries.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/economics.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/environments.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/evidence.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factories.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/factory_lenses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/failure.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/image_releases.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_blockers.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_grants.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_program.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/intern_usage.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/limit_evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project_data.py
RENAMED
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/project_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.1.dev641 → synth_ai-0.20.2.dev643}/synth_ai/sdk/research/contracts/projects.py
RENAMED
|
File without changes
|