synth-ai 0.18.2.dev609__tar.gz → 0.18.2.dev611__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {synth_ai-0.18.2.dev609/synth_ai.egg-info → synth_ai-0.18.2.dev611}/PKG-INFO +1 -1
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/pyproject.toml +1 -1
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/workspace_inputs.py +1 -2
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/__init__.py +6 -16
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/research_intern.py +51 -99
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/public.py +6 -16
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611/synth_ai.egg-info}/PKG-INFO +1 -1
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/LICENSE +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/MANIFEST.in +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/setup.cfg +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/__main__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/AGENTS.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/__main__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/main.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/research.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/research_environments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/research_image_releases.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/cli/research_projects.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/client.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/auth/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/auth/credentials.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/contracts/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/contracts/json_value.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/contracts/pagination.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/errors.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/http/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/http/async_transport.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/http/request.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/http/retry.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/http/streaming.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/http/transport.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/research/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/env.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/log_filter.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/paths.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/core/utils/urls.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/__main__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/objective_tools.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/registry.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/request_models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/server.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/approvals.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/artifacts.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/datasets.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/environments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/exports.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/factories.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/factory_results.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/files.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/image_releases.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/integrations.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/logs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/outputs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/progress.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/project_data.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/projects.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/prs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/readiness.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/repos.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/research_intern.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/resources.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/runs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/trained_models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/usage.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/visuals.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/py.typed +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/pagination.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/crypto.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/env.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/_internal/urls.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/account.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/advanced.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/advanced_factories.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/advanced_swarms.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/artifacts.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/auth.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/client.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_wire.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/activity.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/billing.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/common.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/economics.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/environments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factories.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/failure.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_data.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/projects.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/promotions.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_control.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_events.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_state.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_agent_models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_providers.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/status.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/swarms.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/tag.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/traces.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/transcript.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/types.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/usage.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/visuals.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/work_products.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/workspaces.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/economics.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/efforts.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/environments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/errors.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/events.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/experiments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/facade.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/factories.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/factory_storage.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/image_releases.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/knowledge.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/operations.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/project_data.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/project_deliveries.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/project_workspaces.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/projects.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/readouts.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/research_intern.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/secrets.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/README.md +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/_base.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/approvals.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/billing.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/client.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/config.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/cost.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/datasets.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/dev_environments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/environments.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/exports.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/factories.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/files.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/github.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/image_releases.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/images.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/logs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/outputs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/progress.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/project.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/projects.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/prs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/readiness.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/repositories.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/runs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/secrets.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/setup.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/tag.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/trained_models.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/transport.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/usage.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/work_products.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/swarms.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/traces.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/transport/__init__.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/transport/http.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/transport/pagination.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/version.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/visuals.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/wiki.py +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/SOURCES.txt +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/requires.txt +0 -0
- {synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai.egg-info/top_level.txt +0 -0
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/workspace_inputs.py
RENAMED
|
@@ -212,8 +212,7 @@ def build_workspace_input_tools(
|
|
|
212
212
|
"Confirm an already-pushed workspace commit through project "
|
|
213
213
|
"authority and return the typed WorkspacePushConfirmationReceipt "
|
|
214
214
|
"-- the done signal for coding agents driving workspace ingress "
|
|
215
|
-
"over MCP.
|
|
216
|
-
"backend also auto-records a kit-association receipt server-side."
|
|
215
|
+
"over MCP."
|
|
217
216
|
),
|
|
218
217
|
input_schema=tool_schema(
|
|
219
218
|
{
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/__init__.py
RENAMED
|
@@ -350,15 +350,10 @@ from synth_ai.sdk.research.contracts.research_intern import (
|
|
|
350
350
|
ResearchInternTurnRequest,
|
|
351
351
|
ResearchInternTurnResponse,
|
|
352
352
|
ResearchInternTurnStatus,
|
|
353
|
-
SyncKitAssociatedFile,
|
|
354
|
-
SyncKitAssociationReceipt,
|
|
355
|
-
SyncKitIngressKind,
|
|
356
|
-
SyncKitIngressObservation,
|
|
357
|
-
SyncKitIngressSource,
|
|
358
|
-
SyncKitReadiness,
|
|
359
|
-
SyncTemplateProvisionedResource,
|
|
360
|
-
SyncTemplateProvisioningReceipt,
|
|
361
353
|
SyncTracePublicationReceipt,
|
|
354
|
+
SyncWorkspaceRunReceipt,
|
|
355
|
+
SyncWorkspaceSnapshotIdentity,
|
|
356
|
+
SyncWorkspaceSnapshotKind,
|
|
362
357
|
)
|
|
363
358
|
from synth_ai.sdk.research.contracts.runtime_stream import (
|
|
364
359
|
SwarmEvent,
|
|
@@ -934,15 +929,10 @@ __all__ = [
|
|
|
934
929
|
"SwarmTerminalOutcomeMissingError",
|
|
935
930
|
"SwarmEnvironment",
|
|
936
931
|
"SwarmUsage",
|
|
937
|
-
"SyncKitAssociatedFile",
|
|
938
|
-
"SyncKitAssociationReceipt",
|
|
939
|
-
"SyncKitIngressKind",
|
|
940
|
-
"SyncKitIngressObservation",
|
|
941
|
-
"SyncKitIngressSource",
|
|
942
|
-
"SyncKitReadiness",
|
|
943
|
-
"SyncTemplateProvisionedResource",
|
|
944
|
-
"SyncTemplateProvisioningReceipt",
|
|
945
932
|
"SyncTracePublicationReceipt",
|
|
933
|
+
"SyncWorkspaceRunReceipt",
|
|
934
|
+
"SyncWorkspaceSnapshotIdentity",
|
|
935
|
+
"SyncWorkspaceSnapshotKind",
|
|
946
936
|
"TaskId",
|
|
947
937
|
"TranscriptCursor",
|
|
948
938
|
"TranscriptCursorKind",
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/research_intern.py
RENAMED
|
@@ -188,40 +188,9 @@ class InternSyncSessionCreateRequest(_StrictContract):
|
|
|
188
188
|
binding: InternRuntimeBinding = Field(default_factory=InternRuntimeBinding)
|
|
189
189
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
190
190
|
execution_mode: Literal["fast", "standard", "deep"] = "standard"
|
|
191
|
-
task_template: str | None = Field(default=None, min_length=1, max_length=128)
|
|
192
191
|
objective_bounds: dict[str, Any] | None = None
|
|
193
192
|
|
|
194
193
|
|
|
195
|
-
class SyncTemplateProvisionedResource(_StrictContract):
|
|
196
|
-
"""One resource decision made while provisioning a task template."""
|
|
197
|
-
|
|
198
|
-
resource_kind: Literal[
|
|
199
|
-
"project",
|
|
200
|
-
"factory",
|
|
201
|
-
"factory_project_link",
|
|
202
|
-
"effort",
|
|
203
|
-
"intern_factory_membership",
|
|
204
|
-
"run",
|
|
205
|
-
]
|
|
206
|
-
status: Literal["created", "reused", "unsupported"]
|
|
207
|
-
resource_id: str | None = None
|
|
208
|
-
error_code: str | None = None
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
class SyncTemplateProvisioningReceipt(_StrictContract):
|
|
212
|
-
"""Durable record of what starting from a task template provisioned.
|
|
213
|
-
|
|
214
|
-
The backend mints this receipt inside the session-create transaction and
|
|
215
|
-
stamps it into the session projection; the SDK only ever observes it.
|
|
216
|
-
"""
|
|
217
|
-
|
|
218
|
-
schema_version: Literal["smr.intern-sync-template-provisioning.v1"]
|
|
219
|
-
task_template: str
|
|
220
|
-
binding: InternRuntimeBinding
|
|
221
|
-
resources: tuple[SyncTemplateProvisionedResource, ...]
|
|
222
|
-
provisioned_at: datetime
|
|
223
|
-
|
|
224
|
-
|
|
225
194
|
class SyncTracePublicationReceipt(_StrictContract):
|
|
226
195
|
"""Read-only receipt for the server-side terminal Trace V5 publication.
|
|
227
196
|
|
|
@@ -247,76 +216,59 @@ class SyncTracePublicationReceipt(_StrictContract):
|
|
|
247
216
|
published_at: datetime | None = None
|
|
248
217
|
|
|
249
218
|
|
|
250
|
-
|
|
251
|
-
"
|
|
252
|
-
"
|
|
253
|
-
"
|
|
254
|
-
"project_files",
|
|
219
|
+
SyncWorkspaceSnapshotKind = Literal[
|
|
220
|
+
"internal_git_head",
|
|
221
|
+
"stored_file_digest_set",
|
|
222
|
+
"internal_git_head_with_stored_files",
|
|
255
223
|
]
|
|
256
224
|
|
|
257
|
-
SyncKitIngressObservation = Literal[
|
|
258
|
-
"stored_file_write",
|
|
259
|
-
"push_confirmation",
|
|
260
|
-
"upload_url_issuance",
|
|
261
|
-
]
|
|
262
225
|
|
|
226
|
+
class SyncWorkspaceSnapshotIdentity(_StrictContract):
|
|
227
|
+
"""Provable project workspace identity captured when a run is triggered."""
|
|
263
228
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
digest: str | None = Field(default=None, pattern=r"^sha256:[0-9a-f]{64}$")
|
|
269
|
-
size_bytes: int | None = Field(default=None, ge=0)
|
|
270
|
-
stored_file_id: str | None = None
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
class SyncKitIngressSource(_StrictContract):
|
|
274
|
-
"""Source identity of one kit ingress, per ingress kind."""
|
|
275
|
-
|
|
229
|
+
schema_version: Literal["smr.intern-sync-workspace-snapshot.v1"] = (
|
|
230
|
+
"smr.intern-sync-workspace-snapshot.v1"
|
|
231
|
+
)
|
|
232
|
+
kind: SyncWorkspaceSnapshotKind
|
|
276
233
|
commit_sha: str | None = None
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
upload_batch_id: str | None = None
|
|
281
|
-
dataset_ref: str | None = None
|
|
282
|
-
stored_file_ids: tuple[str, ...] = ()
|
|
234
|
+
inventory_digest: str | None = Field(default=None, pattern=r"^sha256:[0-9a-f]{64}$")
|
|
235
|
+
file_count: int | None = Field(default=None, ge=1)
|
|
236
|
+
captured_at: datetime
|
|
283
237
|
|
|
238
|
+
@model_validator(mode="after")
|
|
239
|
+
def require_identity_per_kind(self) -> SyncWorkspaceSnapshotIdentity:
|
|
240
|
+
if self.kind == "internal_git_head" and not self.commit_sha:
|
|
241
|
+
raise ValueError("internal_git_head snapshot requires commit_sha")
|
|
242
|
+
if self.kind == "stored_file_digest_set" and (
|
|
243
|
+
not self.inventory_digest or not self.file_count
|
|
244
|
+
):
|
|
245
|
+
raise ValueError(
|
|
246
|
+
"stored_file_digest_set snapshot requires the inventory digest and file count"
|
|
247
|
+
)
|
|
248
|
+
if self.kind == "internal_git_head_with_stored_files" and (
|
|
249
|
+
not self.commit_sha or not self.inventory_digest or not self.file_count
|
|
250
|
+
):
|
|
251
|
+
raise ValueError(
|
|
252
|
+
"internal_git_head_with_stored_files snapshot requires commit_sha, "
|
|
253
|
+
"the inventory digest, and file count"
|
|
254
|
+
)
|
|
255
|
+
return self
|
|
284
256
|
|
|
285
|
-
class SyncKitAssociationReceipt(_StrictContract):
|
|
286
|
-
"""Durable record that a kit ingress landed while this session was open.
|
|
287
257
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
Clients never mint it; they observe it on the session projection.
|
|
291
|
-
"""
|
|
258
|
+
class SyncWorkspaceRunReceipt(_StrictContract):
|
|
259
|
+
"""Server-minted proof of the project workspace used to trigger one run."""
|
|
292
260
|
|
|
293
|
-
schema_version: Literal["smr.intern-sync-
|
|
294
|
-
|
|
261
|
+
schema_version: Literal["smr.intern-sync-workspace-run.v1"] = "smr.intern-sync-workspace-run.v1"
|
|
262
|
+
run_id: str
|
|
295
263
|
sync_session_id: str
|
|
296
264
|
project_id: str
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
source: SyncKitIngressSource
|
|
301
|
-
open_session_count: int = Field(ge=1)
|
|
302
|
-
associated_at: datetime
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
class SyncKitReadiness(_StrictContract):
|
|
306
|
-
"""Read-only kit completeness projection for a template-bound session."""
|
|
307
|
-
|
|
308
|
-
schema_version: Literal["smr.intern-sync-kit-readiness.v1"]
|
|
309
|
-
status: Literal["ready", "incomplete"]
|
|
310
|
-
task_template: str
|
|
311
|
-
kit_contract: str
|
|
312
|
-
required_files: tuple[str, ...]
|
|
313
|
-
present_files: tuple[str, ...] = ()
|
|
314
|
-
missing_files: tuple[str, ...] = ()
|
|
315
|
-
checked_at: datetime
|
|
265
|
+
experiment_id: str | None = None
|
|
266
|
+
workspace: SyncWorkspaceSnapshotIdentity
|
|
267
|
+
recorded_at: datetime
|
|
316
268
|
|
|
317
269
|
|
|
318
270
|
class InternSyncSession(_StrictContract):
|
|
319
|
-
schema_version: Literal["smr.intern-sync-session.v1"]
|
|
271
|
+
schema_version: Literal["smr.intern-sync-session.v1"] = "smr.intern-sync-session.v1"
|
|
320
272
|
sync_session_id: str
|
|
321
273
|
research_intern_id: str
|
|
322
274
|
org_id: str
|
|
@@ -333,18 +285,11 @@ class InternSyncSession(_StrictContract):
|
|
|
333
285
|
outcome: InternRuntimeOutcome | None = None
|
|
334
286
|
failure_code: str | None = None
|
|
335
287
|
temporal_workflow_id: str
|
|
336
|
-
execution_mode: Literal["fast", "standard", "deep"]
|
|
288
|
+
execution_mode: Literal["fast", "standard", "deep"]
|
|
337
289
|
execution_profile_id: Literal["intern_sync"] = "intern_sync"
|
|
338
|
-
# Server-minted projection stamps. Old backends omit them entirely; new
|
|
339
|
-
# backends stamp them once the corresponding effect lands. The SDK only
|
|
340
|
-
# observes these receipts — the backend remains the minting authority.
|
|
341
|
-
task_template: str | None = None
|
|
342
|
-
provisioning: SyncTemplateProvisioningReceipt | None = None
|
|
343
290
|
trace_publication: SyncTracePublicationReceipt | None = None
|
|
344
|
-
kit_associations: tuple[SyncKitAssociationReceipt, ...] = ()
|
|
345
|
-
kit_readiness: SyncKitReadiness | None = None
|
|
346
291
|
visuals: tuple[dict[str, Any], ...] = ()
|
|
347
|
-
|
|
292
|
+
workspace_run_receipts: tuple[SyncWorkspaceRunReceipt, ...] = ()
|
|
348
293
|
experiments: tuple[dict[str, Any], ...] = ()
|
|
349
294
|
harness_bundle_available: bool = False
|
|
350
295
|
created_at: datetime
|
|
@@ -406,13 +351,11 @@ class InternSyncDeployPacket(_StrictContract):
|
|
|
406
351
|
schema_version: Literal["smr.intern-sync-deploy-packet.v1"]
|
|
407
352
|
sync_session_id: str
|
|
408
353
|
project_id: str
|
|
409
|
-
task_template: str | None = None
|
|
410
354
|
auth_scheme: Literal["bearer"]
|
|
411
355
|
auth_env_var: Literal["SYNTH_API_KEY"]
|
|
412
|
-
required_paths: tuple[str, ...] = ()
|
|
413
356
|
endpoints: tuple[InternSyncDeployPacketEndpoint, ...]
|
|
414
357
|
done_signal: Literal["workspace_confirm_push"]
|
|
415
|
-
image_kind: Literal["
|
|
358
|
+
image_kind: Literal["project_default"]
|
|
416
359
|
instructions: str
|
|
417
360
|
|
|
418
361
|
|
|
@@ -560,6 +503,10 @@ class InternAsyncRuntime(_StrictContract):
|
|
|
560
503
|
pending_interaction_id: str | None = None
|
|
561
504
|
pending_action_id: str | None = None
|
|
562
505
|
pending_actor_message_id: str | None = None
|
|
506
|
+
# A successful Manderqueue publish is not an actor reply. These identities
|
|
507
|
+
# stay projected until reconciliation observes a correlated response.
|
|
508
|
+
awaiting_actor_reply_message_id: str | None = None
|
|
509
|
+
awaiting_actor_reply_thread_id: str | None = None
|
|
563
510
|
pending_instruction_count: int = Field(default=0, ge=0, le=32)
|
|
564
511
|
binding: InternRuntimeBinding
|
|
565
512
|
external_execution_status: InternAsyncExternalExecutionStatus
|
|
@@ -583,6 +530,11 @@ class InternAsyncRuntime(_StrictContract):
|
|
|
583
530
|
and self.evidence_readiness is not InternAsyncEvidenceReadiness.READY
|
|
584
531
|
):
|
|
585
532
|
raise ValueError("completed Async Intern requires ready evidence")
|
|
533
|
+
if self.status is InternAsyncStatus.COMPLETED and (
|
|
534
|
+
self.awaiting_actor_reply_message_id is not None
|
|
535
|
+
or self.awaiting_actor_reply_thread_id is not None
|
|
536
|
+
):
|
|
537
|
+
raise ValueError("completed Async Intern cannot await an actor reply")
|
|
586
538
|
return self
|
|
587
539
|
|
|
588
540
|
|
|
@@ -299,15 +299,10 @@ from synth_ai.sdk.research.contracts import (
|
|
|
299
299
|
SwarmTranscriptEvent,
|
|
300
300
|
SwarmTranscriptPage,
|
|
301
301
|
SwarmUsage,
|
|
302
|
-
SyncKitAssociatedFile,
|
|
303
|
-
SyncKitAssociationReceipt,
|
|
304
|
-
SyncKitIngressKind,
|
|
305
|
-
SyncKitIngressObservation,
|
|
306
|
-
SyncKitIngressSource,
|
|
307
|
-
SyncKitReadiness,
|
|
308
|
-
SyncTemplateProvisionedResource,
|
|
309
|
-
SyncTemplateProvisioningReceipt,
|
|
310
302
|
SyncTracePublicationReceipt,
|
|
303
|
+
SyncWorkspaceRunReceipt,
|
|
304
|
+
SyncWorkspaceSnapshotIdentity,
|
|
305
|
+
SyncWorkspaceSnapshotKind,
|
|
311
306
|
TaskId,
|
|
312
307
|
TokenCounts,
|
|
313
308
|
TokenUsage,
|
|
@@ -769,15 +764,10 @@ __all__ = [
|
|
|
769
764
|
"SwarmTranscriptEvent",
|
|
770
765
|
"SwarmTranscriptPage",
|
|
771
766
|
"SwarmUsage",
|
|
772
|
-
"SyncKitAssociatedFile",
|
|
773
|
-
"SyncKitAssociationReceipt",
|
|
774
|
-
"SyncKitIngressKind",
|
|
775
|
-
"SyncKitIngressObservation",
|
|
776
|
-
"SyncKitIngressSource",
|
|
777
|
-
"SyncKitReadiness",
|
|
778
|
-
"SyncTemplateProvisionedResource",
|
|
779
|
-
"SyncTemplateProvisioningReceipt",
|
|
780
767
|
"SyncTracePublicationReceipt",
|
|
768
|
+
"SyncWorkspaceRunReceipt",
|
|
769
|
+
"SyncWorkspaceSnapshotIdentity",
|
|
770
|
+
"SyncWorkspaceSnapshotKind",
|
|
781
771
|
"TaskId",
|
|
782
772
|
"ToolProvider",
|
|
783
773
|
"TokenCounts",
|
|
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.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/environments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/factory_results.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/image_releases.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/policy_schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/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.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/research_intern.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/mcp/research/tools/trained_models.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
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/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.18.2.dev609 → synth_ai-0.18.2.dev611}/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.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/_activity_wire.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/activity.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/activity_items.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/actor_images.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/billing.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/canonical_usage.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/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.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/deliveries.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/economics.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/environments.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/evidence.py
RENAMED
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factories.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/factory_lenses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.18.2.dev609 → synth_ai-0.18.2.dev611}/synth_ai/sdk/research/contracts/failure.py
RENAMED
|
File without changes
|