synth-ai 0.20.0.dev634__tar.gz → 0.20.0.dev636__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.0.dev634/synth_ai.egg-info → synth_ai-0.20.0.dev636}/PKG-INFO +33 -5
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/README.md +31 -3
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/pyproject.toml +2 -2
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636/synth_ai.egg-info}/PKG-INFO +33 -5
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/LICENSE +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/MANIFEST.in +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/openapi/index-v1.json +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/openapi/messaging-v1.json +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/openapi/research-v1.json +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/setup.cfg +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/setup.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/__main__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/AGENTS.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/__main__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/index.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/main.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/research.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/research_environments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/research_image_releases.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/cli/research_projects.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/client.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/auth/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/auth/credentials.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/contracts/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/contracts/json_value.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/contracts/pagination.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/errors.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/http/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/http/async_transport.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/http/request.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/http/retry.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/http/streaming.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/http/transport.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/research/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/utils/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/utils/env.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/utils/log_filter.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/utils/paths.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/core/utils/urls.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/__main__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/objective_tools.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/registry.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/request_models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/server.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/approvals.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/artifacts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/datasets.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/environments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/exports.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/factories.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/factory_results.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/files.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/image_releases.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/index.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/integrations.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/intern_program.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/local_files.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/logs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/outputs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/progress.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/project_data.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/projects.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/prs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/readiness.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/repos.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/research_intern.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/resources.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/runs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/trained_models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/usage.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/visuals.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/workspace_inputs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/pools.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/py.typed +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/AGENT_SETUP_PROMPT.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/agent_policy.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/answer.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/artifacts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/catalog.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/client.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/contracts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/contributions.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/errors.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/lifecycle.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/package.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/public.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/research_intake.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/search.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/submission.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/timeouts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/transfer.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/index/usage_accounting.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/messaging/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/messaging/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/messaging/client.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/messaging/contracts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/optimizers/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/optimizers/client.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/optimizers/contracts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/pagination.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/_internal/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/_internal/crypto.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/_internal/env.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/_internal/urls.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/account.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/advanced.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/advanced_factories.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/advanced_swarms.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/artifacts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/auth.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/client.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/api.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/contracts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/operations.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/packaging.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/_wire.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/activity.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/billing.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/common.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/economics.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/environments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factories.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/failure.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_blockers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_grants.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_program.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_resources.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_usage.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project_data.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/projects.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/promotions.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/research_intern.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/resource_settlement.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_control.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_events.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_state.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_agent_models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_providers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/status.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/swarm_rollouts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/swarms.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/tag.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/traces.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/transcript.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/types.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/usage.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/visuals.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/work_products.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/workspaces.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/economics.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/efforts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/environments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/errors.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/events.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/experiments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/facade.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/factories.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/factory_storage.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/image_releases.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/intern_blockers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/intern_program.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/knowledge.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/operations.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/project_data.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/project_deliveries.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/project_workspaces.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/projects.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/public.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/readouts.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/research_intern.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/secrets.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/README.md +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/_base.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/approvals.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/billing.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/client.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/config.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/cost.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/datasets.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/dev_environments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/environments.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/exports.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/factories.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/files.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/github.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/image_releases.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/images.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/logs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/outputs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/progress.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/project.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/projects.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/prs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/readiness.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/repositories.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/runs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/secrets.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/setup.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/tag.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/trained_models.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/transport.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/usage.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/work_products.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/surface_parity.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/swarms.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/traces.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/transport/__init__.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/transport/http.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/transport/pagination.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/version.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/visuals.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/wiki.py +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai.egg-info/SOURCES.txt +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai.egg-info/requires.txt +0 -0
- {synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synth-ai
|
|
3
|
-
Version: 0.20.0.
|
|
4
|
-
Summary: Python SDK and CLI for Synth Managed Research and Research Factory
|
|
3
|
+
Version: 0.20.0.dev636
|
|
4
|
+
Summary: Python SDK and CLI for Synth Index, Managed Research, and Research Factory
|
|
5
5
|
Author-email: Synth AI <josh@usesynth.ai>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/synth-laboratories/synth-ai
|
|
@@ -208,11 +208,39 @@ Use `SynthClient` as the front door:
|
|
|
208
208
|
|
|
209
209
|
| Surface | Client namespace | Use it for |
|
|
210
210
|
| --- | --- | --- |
|
|
211
|
+
| **Index** | `client.index` | Authenticated, funded FAST/DEEP Search and Contribution lifecycle. |
|
|
211
212
|
| **Research / Factory** | `client.research` | Typed hosted projects, swarms, Factory lifecycles, and Efforts. |
|
|
212
|
-
| CLI | `synth-ai` | Terminal
|
|
213
|
+
| CLI / MCP | `synth-ai`, `synth-ai-index-mcp` | Terminal commands and an Index-only coding-agent server. |
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
Index is an API/MCP product, not a browser search page. Anonymous public
|
|
216
|
+
catalog and known-ID Contribution reads use `PublicIndexClient`; even a
|
|
217
|
+
public-scope Search requires an API key, an authorized organization, and
|
|
218
|
+
funding. An Index-only MCP server starts read-only, advertising public browse
|
|
219
|
+
without a key and Search only when a key is configured. Contribution writes
|
|
220
|
+
require a separate explicit opt-in and grant.
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
from uuid import uuid4
|
|
224
|
+
|
|
225
|
+
from synth_ai import SynthClient
|
|
226
|
+
from synth_ai.sdk.index import SearchBillingConstraints
|
|
227
|
+
|
|
228
|
+
request_key = str(uuid4()) # Persist this before sending; reuse it on uncertain retry.
|
|
229
|
+
with SynthClient() as synth: # Reads SYNTH_API_KEY.
|
|
230
|
+
result = synth.index.search(
|
|
231
|
+
query="What evidence supports the retrieval design?",
|
|
232
|
+
mode="fast",
|
|
233
|
+
billing=SearchBillingConstraints(allow_wallet=True, max_charge_cents=5),
|
|
234
|
+
idempotency_key=request_key,
|
|
235
|
+
)
|
|
236
|
+
print(result.response, result.usage)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
FAST's five-cent ceiling is explicit wallet consent, not a claim that DEEP has
|
|
240
|
+
the same price. See the [Index SDK guide](https://github.com/synth-laboratories/synth-ai/blob/main/synth_ai/sdk/index/README.md) for
|
|
241
|
+
DEEP's durable Search ID, reconnect/cancel, private collections, receipts, and
|
|
242
|
+
coding-agent MCP setup. These calls require a deployed Index API; installing
|
|
243
|
+
the SDK alone does not make a Search available.
|
|
216
244
|
|
|
217
245
|
Use [Managed Research](https://docs.usesynth.ai/managed-research/intro) when you
|
|
218
246
|
want hosted research workers, repo runs, evidence, checkpoints, MCP, or final
|
|
@@ -179,11 +179,39 @@ Use `SynthClient` as the front door:
|
|
|
179
179
|
|
|
180
180
|
| Surface | Client namespace | Use it for |
|
|
181
181
|
| --- | --- | --- |
|
|
182
|
+
| **Index** | `client.index` | Authenticated, funded FAST/DEEP Search and Contribution lifecycle. |
|
|
182
183
|
| **Research / Factory** | `client.research` | Typed hosted projects, swarms, Factory lifecycles, and Efforts. |
|
|
183
|
-
| CLI | `synth-ai` | Terminal
|
|
184
|
+
| CLI / MCP | `synth-ai`, `synth-ai-index-mcp` | Terminal commands and an Index-only coding-agent server. |
|
|
184
185
|
|
|
185
|
-
|
|
186
|
-
|
|
186
|
+
Index is an API/MCP product, not a browser search page. Anonymous public
|
|
187
|
+
catalog and known-ID Contribution reads use `PublicIndexClient`; even a
|
|
188
|
+
public-scope Search requires an API key, an authorized organization, and
|
|
189
|
+
funding. An Index-only MCP server starts read-only, advertising public browse
|
|
190
|
+
without a key and Search only when a key is configured. Contribution writes
|
|
191
|
+
require a separate explicit opt-in and grant.
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
from uuid import uuid4
|
|
195
|
+
|
|
196
|
+
from synth_ai import SynthClient
|
|
197
|
+
from synth_ai.sdk.index import SearchBillingConstraints
|
|
198
|
+
|
|
199
|
+
request_key = str(uuid4()) # Persist this before sending; reuse it on uncertain retry.
|
|
200
|
+
with SynthClient() as synth: # Reads SYNTH_API_KEY.
|
|
201
|
+
result = synth.index.search(
|
|
202
|
+
query="What evidence supports the retrieval design?",
|
|
203
|
+
mode="fast",
|
|
204
|
+
billing=SearchBillingConstraints(allow_wallet=True, max_charge_cents=5),
|
|
205
|
+
idempotency_key=request_key,
|
|
206
|
+
)
|
|
207
|
+
print(result.response, result.usage)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
FAST's five-cent ceiling is explicit wallet consent, not a claim that DEEP has
|
|
211
|
+
the same price. See the [Index SDK guide](https://github.com/synth-laboratories/synth-ai/blob/main/synth_ai/sdk/index/README.md) for
|
|
212
|
+
DEEP's durable Search ID, reconnect/cancel, private collections, receipts, and
|
|
213
|
+
coding-agent MCP setup. These calls require a deployed Index API; installing
|
|
214
|
+
the SDK alone does not make a Search available.
|
|
187
215
|
|
|
188
216
|
Use [Managed Research](https://docs.usesynth.ai/managed-research/intro) when you
|
|
189
217
|
want hosted research workers, repo runs, evidence, checkpoints, MCP, or final
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "synth-ai"
|
|
3
|
-
version = "0.20.0.
|
|
4
|
-
description = "Python SDK and CLI for Synth Managed Research and Research Factory"
|
|
3
|
+
version = "0.20.0.dev636"
|
|
4
|
+
description = "Python SDK and CLI for Synth Index, Managed Research, and Research Factory"
|
|
5
5
|
authors = [{name = "Synth AI", email = "josh@usesynth.ai"}]
|
|
6
6
|
license = "MIT"
|
|
7
7
|
license-files = ["LICENSE"]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synth-ai
|
|
3
|
-
Version: 0.20.0.
|
|
4
|
-
Summary: Python SDK and CLI for Synth Managed Research and Research Factory
|
|
3
|
+
Version: 0.20.0.dev636
|
|
4
|
+
Summary: Python SDK and CLI for Synth Index, Managed Research, and Research Factory
|
|
5
5
|
Author-email: Synth AI <josh@usesynth.ai>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/synth-laboratories/synth-ai
|
|
@@ -208,11 +208,39 @@ Use `SynthClient` as the front door:
|
|
|
208
208
|
|
|
209
209
|
| Surface | Client namespace | Use it for |
|
|
210
210
|
| --- | --- | --- |
|
|
211
|
+
| **Index** | `client.index` | Authenticated, funded FAST/DEEP Search and Contribution lifecycle. |
|
|
211
212
|
| **Research / Factory** | `client.research` | Typed hosted projects, swarms, Factory lifecycles, and Efforts. |
|
|
212
|
-
| CLI | `synth-ai` | Terminal
|
|
213
|
+
| CLI / MCP | `synth-ai`, `synth-ai-index-mcp` | Terminal commands and an Index-only coding-agent server. |
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
Index is an API/MCP product, not a browser search page. Anonymous public
|
|
216
|
+
catalog and known-ID Contribution reads use `PublicIndexClient`; even a
|
|
217
|
+
public-scope Search requires an API key, an authorized organization, and
|
|
218
|
+
funding. An Index-only MCP server starts read-only, advertising public browse
|
|
219
|
+
without a key and Search only when a key is configured. Contribution writes
|
|
220
|
+
require a separate explicit opt-in and grant.
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
from uuid import uuid4
|
|
224
|
+
|
|
225
|
+
from synth_ai import SynthClient
|
|
226
|
+
from synth_ai.sdk.index import SearchBillingConstraints
|
|
227
|
+
|
|
228
|
+
request_key = str(uuid4()) # Persist this before sending; reuse it on uncertain retry.
|
|
229
|
+
with SynthClient() as synth: # Reads SYNTH_API_KEY.
|
|
230
|
+
result = synth.index.search(
|
|
231
|
+
query="What evidence supports the retrieval design?",
|
|
232
|
+
mode="fast",
|
|
233
|
+
billing=SearchBillingConstraints(allow_wallet=True, max_charge_cents=5),
|
|
234
|
+
idempotency_key=request_key,
|
|
235
|
+
)
|
|
236
|
+
print(result.response, result.usage)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
FAST's five-cent ceiling is explicit wallet consent, not a claim that DEEP has
|
|
240
|
+
the same price. See the [Index SDK guide](https://github.com/synth-laboratories/synth-ai/blob/main/synth_ai/sdk/index/README.md) for
|
|
241
|
+
DEEP's durable Search ID, reconnect/cancel, private collections, receipts, and
|
|
242
|
+
coding-agent MCP setup. These calls require a deployed Index API; installing
|
|
243
|
+
the SDK alone does not make a Search available.
|
|
216
244
|
|
|
217
245
|
Use [Managed Research](https://docs.usesynth.ai/managed-research/intro) when you
|
|
218
246
|
want hosted research workers, repo runs, evidence, checkpoints, MCP, or final
|
|
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.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/environments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/factory_results.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/image_releases.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/integrations.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/intern_program.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/policy_schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/research_intern.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/mcp/research/tools/trained_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/api.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/contracts.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/container_pools/packaging.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/activity.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/activity_items.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/actor_images.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/billing.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/canonical_usage.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/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.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/deliveries.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/economics.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/environments.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/evidence.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factories.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/factory_lenses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/failure.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/image_releases.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_blockers.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_grants.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_program.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/intern_usage.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/limit_evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project.py
RENAMED
|
File without changes
|
{synth_ai-0.20.0.dev634 → synth_ai-0.20.0.dev636}/synth_ai/sdk/research/contracts/project_data.py
RENAMED
|
File without changes
|