synth-ai 0.18.2.dev611__tar.gz → 0.18.2.dev613__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.dev611/synth_ai.egg-info → synth_ai-0.18.2.dev613}/PKG-INFO +1 -1
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/pyproject.toml +1 -1
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/research_intern.py +126 -6
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/__init__.py +24 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/evidence.py +7 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/research_intern.py +122 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/operations.py +37 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/public.py +28 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/research_intern.py +249 -4
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613/synth_ai.egg-info}/PKG-INFO +1 -1
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/LICENSE +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/MANIFEST.in +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/setup.cfg +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/__main__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/AGENTS.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/__main__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/main.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/research.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/research_environments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/research_image_releases.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/cli/research_projects.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/client.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/auth/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/auth/credentials.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/contracts/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/contracts/json_value.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/contracts/pagination.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/errors.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/http/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/http/async_transport.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/http/request.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/http/retry.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/http/streaming.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/http/transport.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/research/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/utils/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/utils/env.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/utils/log_filter.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/utils/paths.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/core/utils/urls.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/__main__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/objective_tools.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/registry.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/request_models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/server.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/approvals.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/artifacts.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/datasets.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/environments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/exports.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/factories.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/factory_results.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/files.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/image_releases.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/integrations.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/logs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/outputs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/policy_schemas.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/progress.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/project_data.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/projects.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/prs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/readiness.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/repos.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/resources.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/runs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/trained_models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/usage.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/visuals.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/workspace_inputs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/py.typed +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/pagination.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/_internal/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/_internal/crypto.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/_internal/env.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/_internal/urls.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/account.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/advanced.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/advanced_factories.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/advanced_swarms.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/artifacts.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/auth.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/client.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/_activity_wire.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/_environment_wire.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/_transcript_wire.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/_wire.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/activity.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/activity_items.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/actor_images.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/billing.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/canonical_usage.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/checkpoints.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/cloud_deployment_claims.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/cloud_deployments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/common.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/dataset_revisions.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/deliveries.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/dev_environment_evidence.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/economics.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/environment_manifest.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/environments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/factories.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/factory_evidence.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/factory_lenses.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/factory_operations.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/factory_role_receipts.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/failure.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/image_releases.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/limit_evidence.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/local_execution_profile.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/operator_evidence.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/project.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/project_data.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/project_runtime.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/project_workspace.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/project_workspace_evidence.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/projects.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/promotions.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_authority.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_control.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_diagnostics.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_events.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_execution.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_launch.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_observability.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_state.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/run_timeline.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/runtime_image.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/runtime_intent.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/runtime_stream.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/runtime_stream_snapshot.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/scientific_integrity.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_actor_models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_actor_policy_data.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_agent_harnesses.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_agent_kinds.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_agent_models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_branching.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_credential_providers.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_environment_kinds.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_evidence_obligations.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_funding_sources.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_horizons.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_host_kinds.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_inference_providers.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_network_topology.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_providers.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_resource_kinds.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_roles.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_run_policy.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_runbooks.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_runnable_project.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_runtime_kinds.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_tool_providers.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/smr_work_modes.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/status.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/swarms.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/tag.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/traces.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/transcript.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/types.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/usage.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/visuals.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/wire_models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/wire_models_README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/work_products.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/workspaces.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/economics.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/efforts.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/environments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/errors.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/events.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/experiments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/facade.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/factories.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/factory_storage.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/image_releases.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/knowledge.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/project_data.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/project_deliveries.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/project_workspaces.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/projects.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/readouts.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/secrets.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/README.md +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/_base.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/_client_helpers.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/_run_authority_mixin.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/approvals.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/billing.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/client.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/cloud_deployments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/config.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/cost.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/datasets.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/dev_environments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/environments.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/exports.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/factories.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/factory_evidence.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/files.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/github.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/image_releases.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/images.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/logs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/outputs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/progress.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/project.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/projects.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/prs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/readiness.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/repositories.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/runs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/secrets.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/setup.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/tag.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/trained_models.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/transport.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/usage.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/work_products.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/session/workspace_inputs.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/swarms.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/traces.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/transport/__init__.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/transport/http.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/transport/pagination.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/version.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/visuals.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/wiki.py +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai.egg-info/SOURCES.txt +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai.egg-info/requires.txt +0 -0
- {synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai.egg-info/top_level.txt +0 -0
{synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/mcp/research/tools/research_intern.py
RENAMED
|
@@ -25,6 +25,7 @@ from synth_ai.sdk.research.contracts.research_intern import (
|
|
|
25
25
|
InternAsyncEnsureRequest,
|
|
26
26
|
InternAsyncInstructionKind,
|
|
27
27
|
InternAsyncInstructionRequest,
|
|
28
|
+
InternCrossMetaThreadMessageCreateRequest,
|
|
28
29
|
InternRuntimeOutcome,
|
|
29
30
|
InternSyncCommandKind,
|
|
30
31
|
InternSyncCommandRequest,
|
|
@@ -140,7 +141,52 @@ def build_research_intern_tools(
|
|
|
140
141
|
|
|
141
142
|
def intern_sync_list(args: JSONDict) -> list[JSONDict]:
|
|
142
143
|
with client_from_args(args) as client:
|
|
143
|
-
return _wire_list(client.intern.sync_.
|
|
144
|
+
return _wire_list(client.intern.sync_.branches())
|
|
145
|
+
|
|
146
|
+
def intern_sync_branches(args: JSONDict) -> list[JSONDict]:
|
|
147
|
+
with client_from_args(args) as client:
|
|
148
|
+
return _wire_list(client.intern.sync_.branches())
|
|
149
|
+
|
|
150
|
+
def intern_meta_threads(args: JSONDict) -> list[JSONDict]:
|
|
151
|
+
with client_from_args(args) as client:
|
|
152
|
+
return _wire_list(client.intern.meta_threads.list())
|
|
153
|
+
|
|
154
|
+
def intern_meta_segments(args: JSONDict) -> list[JSONDict]:
|
|
155
|
+
with client_from_args(args) as client:
|
|
156
|
+
return _wire_list(
|
|
157
|
+
client.intern.meta_threads.segments(require_string(args, "meta_thread_id"))
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
def intern_meta_messages(args: JSONDict) -> list[JSONDict]:
|
|
161
|
+
with client_from_args(args) as client:
|
|
162
|
+
return _wire_list(
|
|
163
|
+
client.intern.meta_threads.messages(
|
|
164
|
+
require_string(args, "meta_thread_id"),
|
|
165
|
+
limit=optional_int(args, "limit") or 200,
|
|
166
|
+
)
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
def intern_meta_send(args: JSONDict) -> JSONDict:
|
|
170
|
+
request = InternCrossMetaThreadMessageCreateRequest.model_validate(
|
|
171
|
+
_request_payload(
|
|
172
|
+
args,
|
|
173
|
+
(
|
|
174
|
+
"message_id",
|
|
175
|
+
"source_meta_thread_id",
|
|
176
|
+
"destination_meta_thread_id",
|
|
177
|
+
"kind",
|
|
178
|
+
"idempotency_key",
|
|
179
|
+
"payload",
|
|
180
|
+
"linked_message_id",
|
|
181
|
+
"sync_session_id",
|
|
182
|
+
"segment_id",
|
|
183
|
+
"resolution",
|
|
184
|
+
"summary",
|
|
185
|
+
),
|
|
186
|
+
)
|
|
187
|
+
)
|
|
188
|
+
with client_from_args(args) as client:
|
|
189
|
+
return client.intern.meta_threads.send(request).to_wire()
|
|
144
190
|
|
|
145
191
|
def intern_sync_get(args: JSONDict) -> JSONDict:
|
|
146
192
|
with client_from_args(args) as client:
|
|
@@ -755,6 +801,76 @@ def build_research_intern_tools(
|
|
|
755
801
|
"sync_session_id": {"type": "string", "minLength": 1},
|
|
756
802
|
}
|
|
757
803
|
tools = [
|
|
804
|
+
ToolDefinition(
|
|
805
|
+
name="intern_meta_threads",
|
|
806
|
+
description="List the Intern's one Sync and one Async meta-thread.",
|
|
807
|
+
input_schema=tool_schema({}, required=[]),
|
|
808
|
+
handler=intern_meta_threads,
|
|
809
|
+
required_scopes=READ_SCOPES,
|
|
810
|
+
),
|
|
811
|
+
ToolDefinition(
|
|
812
|
+
name="intern_meta_segments",
|
|
813
|
+
description="List head, live, and sealed segments for one meta-thread.",
|
|
814
|
+
input_schema=tool_schema(
|
|
815
|
+
{"meta_thread_id": {"type": "string", "minLength": 1}},
|
|
816
|
+
required=["meta_thread_id"],
|
|
817
|
+
),
|
|
818
|
+
handler=intern_meta_segments,
|
|
819
|
+
required_scopes=READ_SCOPES,
|
|
820
|
+
),
|
|
821
|
+
ToolDefinition(
|
|
822
|
+
name="intern_meta_messages",
|
|
823
|
+
description="List durable cross-lane messages visible to one meta-thread.",
|
|
824
|
+
input_schema=tool_schema(
|
|
825
|
+
{
|
|
826
|
+
"meta_thread_id": {"type": "string", "minLength": 1},
|
|
827
|
+
"limit": {"type": "integer", "minimum": 1, "maximum": 500},
|
|
828
|
+
},
|
|
829
|
+
required=["meta_thread_id"],
|
|
830
|
+
),
|
|
831
|
+
handler=intern_meta_messages,
|
|
832
|
+
required_scopes=READ_SCOPES,
|
|
833
|
+
),
|
|
834
|
+
ToolDefinition(
|
|
835
|
+
name="intern_meta_send",
|
|
836
|
+
description="Send one exact durable Sync-to-Async protocol object.",
|
|
837
|
+
input_schema=tool_schema(
|
|
838
|
+
{
|
|
839
|
+
"message_id": {"type": "string", "minLength": 1},
|
|
840
|
+
"source_meta_thread_id": {"type": "string", "minLength": 1},
|
|
841
|
+
"destination_meta_thread_id": {"type": "string", "minLength": 1},
|
|
842
|
+
"kind": {
|
|
843
|
+
"type": "string",
|
|
844
|
+
"enum": [
|
|
845
|
+
"request_decision",
|
|
846
|
+
"open_branch_ack",
|
|
847
|
+
"decision_resolved",
|
|
848
|
+
"steer",
|
|
849
|
+
"note",
|
|
850
|
+
],
|
|
851
|
+
},
|
|
852
|
+
"idempotency_key": {"type": "string", "minLength": 1},
|
|
853
|
+
"payload": {"type": "object"},
|
|
854
|
+
"linked_message_id": {"type": "string"},
|
|
855
|
+
"sync_session_id": {"type": "string"},
|
|
856
|
+
"segment_id": {"type": "string"},
|
|
857
|
+
"resolution": {
|
|
858
|
+
"type": "string",
|
|
859
|
+
"enum": ["completed", "denied", "superseded"],
|
|
860
|
+
},
|
|
861
|
+
"summary": {"type": "string", "maxLength": 4000},
|
|
862
|
+
},
|
|
863
|
+
required=[
|
|
864
|
+
"message_id",
|
|
865
|
+
"source_meta_thread_id",
|
|
866
|
+
"destination_meta_thread_id",
|
|
867
|
+
"kind",
|
|
868
|
+
"idempotency_key",
|
|
869
|
+
],
|
|
870
|
+
),
|
|
871
|
+
handler=intern_meta_send,
|
|
872
|
+
required_scopes=WRITE_SCOPES,
|
|
873
|
+
),
|
|
758
874
|
ToolDefinition(
|
|
759
875
|
name="intern_sync_create",
|
|
760
876
|
description="Create or replay one durable operator-present Sync session.",
|
|
@@ -774,13 +890,17 @@ def build_research_intern_tools(
|
|
|
774
890
|
handler=intern_sync_create,
|
|
775
891
|
required_scopes=WRITE_SCOPES,
|
|
776
892
|
),
|
|
893
|
+
ToolDefinition(
|
|
894
|
+
name="intern_sync_branches",
|
|
895
|
+
description="List the Sync head plus every live or sealed branch.",
|
|
896
|
+
input_schema=tool_schema({}, required=[]),
|
|
897
|
+
handler=intern_sync_branches,
|
|
898
|
+
required_scopes=READ_SCOPES,
|
|
899
|
+
),
|
|
777
900
|
ToolDefinition(
|
|
778
901
|
name="intern_sync_list",
|
|
779
|
-
description="
|
|
780
|
-
input_schema=tool_schema(
|
|
781
|
-
{"limit": {"type": "integer", "minimum": 1, "maximum": 500}},
|
|
782
|
-
required=[],
|
|
783
|
-
),
|
|
902
|
+
description="Compatibility alias of intern_sync_branches.",
|
|
903
|
+
input_schema=tool_schema({}, required=[]),
|
|
784
904
|
handler=intern_sync_list,
|
|
785
905
|
required_scopes=READ_SCOPES,
|
|
786
906
|
),
|
{synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/__init__.py
RENAMED
|
@@ -275,6 +275,7 @@ from synth_ai.sdk.research.contracts.research_intern import (
|
|
|
275
275
|
DataBindingResponse,
|
|
276
276
|
DatasetRevisionCreateRequest,
|
|
277
277
|
DatasetRevisionResponse,
|
|
278
|
+
InternAgentConfig,
|
|
278
279
|
InternAsyncBlocker,
|
|
279
280
|
InternAsyncCheckpoint,
|
|
280
281
|
InternAsyncCommandKind,
|
|
@@ -291,6 +292,17 @@ from synth_ai.sdk.research.contracts.research_intern import (
|
|
|
291
292
|
InternAsyncRuntime,
|
|
292
293
|
InternAsyncRuntimeBudget,
|
|
293
294
|
InternAsyncStatus,
|
|
295
|
+
InternCrossMetaThreadMessage,
|
|
296
|
+
InternCrossMetaThreadMessageCreateRequest,
|
|
297
|
+
InternCrossMetaThreadMessageKind,
|
|
298
|
+
InternCrossMetaThreadMessageResolution,
|
|
299
|
+
InternMetaHandoff,
|
|
300
|
+
InternMetaHandoffStatus,
|
|
301
|
+
InternMetaThread,
|
|
302
|
+
InternMetaThreadKind,
|
|
303
|
+
InternMetaThreadLifecycle,
|
|
304
|
+
InternMetaThreadSegment,
|
|
305
|
+
InternMetaThreadSegmentStatus,
|
|
294
306
|
InternRuntimeBinding,
|
|
295
307
|
InternRuntimeOutcome,
|
|
296
308
|
InternSyncCommandKind,
|
|
@@ -834,6 +846,18 @@ __all__ = [
|
|
|
834
846
|
"InternAsyncRuntime",
|
|
835
847
|
"InternAsyncRuntimeBudget",
|
|
836
848
|
"InternAsyncStatus",
|
|
849
|
+
"InternAgentConfig",
|
|
850
|
+
"InternCrossMetaThreadMessage",
|
|
851
|
+
"InternCrossMetaThreadMessageCreateRequest",
|
|
852
|
+
"InternCrossMetaThreadMessageKind",
|
|
853
|
+
"InternCrossMetaThreadMessageResolution",
|
|
854
|
+
"InternMetaHandoff",
|
|
855
|
+
"InternMetaHandoffStatus",
|
|
856
|
+
"InternMetaThread",
|
|
857
|
+
"InternMetaThreadKind",
|
|
858
|
+
"InternMetaThreadLifecycle",
|
|
859
|
+
"InternMetaThreadSegment",
|
|
860
|
+
"InternMetaThreadSegmentStatus",
|
|
837
861
|
"InternRuntimeBinding",
|
|
838
862
|
"InternRuntimeOutcome",
|
|
839
863
|
"InternSyncCommandKind",
|
{synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/evidence.py
RENAMED
|
@@ -326,6 +326,11 @@ class SwarmEvidence:
|
|
|
326
326
|
"project_id",
|
|
327
327
|
"artifacts",
|
|
328
328
|
"work_products",
|
|
329
|
+
# Backend may include inline selected contents / Trace V5
|
|
330
|
+
# publications; accept them without requiring callers to
|
|
331
|
+
# consume them yet.
|
|
332
|
+
"selected_artifact_contents",
|
|
333
|
+
"trace_publications",
|
|
329
334
|
"freshness",
|
|
330
335
|
}
|
|
331
336
|
),
|
|
@@ -359,6 +364,8 @@ class SwarmEvidence:
|
|
|
359
364
|
"project_id": self.project_id,
|
|
360
365
|
"artifacts": [artifact.to_wire() for artifact in self.artifacts],
|
|
361
366
|
"work_products": [item.to_wire() for item in self.work_products],
|
|
367
|
+
"selected_artifact_contents": [],
|
|
368
|
+
"trace_publications": [],
|
|
362
369
|
"freshness": self.freshness.to_wire(),
|
|
363
370
|
}
|
|
364
371
|
|
{synth_ai-0.18.2.dev611 → synth_ai-0.18.2.dev613}/synth_ai/sdk/research/contracts/research_intern.py
RENAMED
|
@@ -144,6 +144,128 @@ class ResearchInternResponse(_StrictContract):
|
|
|
144
144
|
updated_at: datetime
|
|
145
145
|
|
|
146
146
|
|
|
147
|
+
class InternMetaThreadKind(StrEnum):
|
|
148
|
+
SYNC = "sync"
|
|
149
|
+
ASYNC = "async"
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class InternMetaThreadLifecycle(StrEnum):
|
|
153
|
+
ACTIVE = "active"
|
|
154
|
+
ARCHIVED = "archived"
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
class InternMetaThreadSegmentStatus(StrEnum):
|
|
158
|
+
LIVE = "live"
|
|
159
|
+
SEALED = "sealed"
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
class InternMetaHandoffStatus(StrEnum):
|
|
163
|
+
SEALED = "sealed"
|
|
164
|
+
MERGED = "merged"
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class InternCrossMetaThreadMessageKind(StrEnum):
|
|
168
|
+
REQUEST_DECISION = "request_decision"
|
|
169
|
+
OPEN_BRANCH_ACK = "open_branch_ack"
|
|
170
|
+
DECISION_RESOLVED = "decision_resolved"
|
|
171
|
+
STEER = "steer"
|
|
172
|
+
NOTE = "note"
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class InternCrossMetaThreadMessageResolution(StrEnum):
|
|
176
|
+
COMPLETED = "completed"
|
|
177
|
+
DENIED = "denied"
|
|
178
|
+
SUPERSEDED = "superseded"
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class InternAgentConfig(_StrictContract):
|
|
182
|
+
agent_role: str
|
|
183
|
+
harness: str
|
|
184
|
+
model: str
|
|
185
|
+
reasoning_effort: str
|
|
186
|
+
segment_role: str | None = None
|
|
187
|
+
harness_command: str | None = None
|
|
188
|
+
workspace_root: str | None = None
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class InternMetaThread(_StrictContract):
|
|
192
|
+
schema_version: Literal["smr.meta-thread.v1"]
|
|
193
|
+
meta_thread_id: str
|
|
194
|
+
organization_id: str
|
|
195
|
+
research_intern_id: str
|
|
196
|
+
kind: InternMetaThreadKind
|
|
197
|
+
lifecycle: InternMetaThreadLifecycle
|
|
198
|
+
head_segment_id: str
|
|
199
|
+
created_at: datetime
|
|
200
|
+
updated_at: datetime
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
class InternMetaThreadSegment(_StrictContract):
|
|
204
|
+
schema_version: Literal["smr.meta-thread-segment.v1"]
|
|
205
|
+
segment_id: str
|
|
206
|
+
meta_thread_id: str
|
|
207
|
+
parent_segment_id: str | None = None
|
|
208
|
+
lane_runtime_id: str | None = None
|
|
209
|
+
agent_config: InternAgentConfig | None = None
|
|
210
|
+
status: InternMetaThreadSegmentStatus
|
|
211
|
+
opened_at: datetime
|
|
212
|
+
sealed_at: datetime | None = None
|
|
213
|
+
linked_message_id: str | None = None
|
|
214
|
+
handoff_id: str | None = None
|
|
215
|
+
is_head: bool = False
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
class InternMetaHandoff(_StrictContract):
|
|
219
|
+
schema_version: Literal["smr.meta-handoff.v1"]
|
|
220
|
+
handoff_id: str
|
|
221
|
+
meta_thread_id: str
|
|
222
|
+
source_segment_id: str
|
|
223
|
+
summary: str
|
|
224
|
+
evidence_references: tuple[str, ...] = ()
|
|
225
|
+
agent_config: InternAgentConfig | None = None
|
|
226
|
+
status: InternMetaHandoffStatus
|
|
227
|
+
created_at: datetime
|
|
228
|
+
sealed_at: datetime
|
|
229
|
+
merged_at: datetime | None = None
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class InternCrossMetaThreadMessageCreateRequest(_StrictContract):
|
|
233
|
+
schema_version: Literal["smr.cross-meta-thread-message-create.v1"] = (
|
|
234
|
+
"smr.cross-meta-thread-message-create.v1"
|
|
235
|
+
)
|
|
236
|
+
message_id: str = Field(min_length=1, max_length=512)
|
|
237
|
+
source_meta_thread_id: str = Field(min_length=1, max_length=512)
|
|
238
|
+
destination_meta_thread_id: str = Field(min_length=1, max_length=512)
|
|
239
|
+
kind: InternCrossMetaThreadMessageKind
|
|
240
|
+
idempotency_key: str = Field(min_length=1, max_length=512)
|
|
241
|
+
payload: dict[str, Any] = Field(default_factory=dict)
|
|
242
|
+
linked_message_id: str | None = None
|
|
243
|
+
sync_session_id: str | None = None
|
|
244
|
+
segment_id: str | None = None
|
|
245
|
+
resolution: InternCrossMetaThreadMessageResolution | None = None
|
|
246
|
+
summary: str | None = Field(default=None, max_length=4_000)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
class InternCrossMetaThreadMessage(_StrictContract):
|
|
250
|
+
schema_version: Literal["smr.cross-meta-thread-message.v1"]
|
|
251
|
+
message_id: str
|
|
252
|
+
organization_id: str
|
|
253
|
+
research_intern_id: str
|
|
254
|
+
source_meta_thread_id: str
|
|
255
|
+
source_kind: InternMetaThreadKind
|
|
256
|
+
destination_meta_thread_id: str
|
|
257
|
+
destination_kind: InternMetaThreadKind
|
|
258
|
+
kind: InternCrossMetaThreadMessageKind
|
|
259
|
+
idempotency_key: str
|
|
260
|
+
payload: dict[str, Any] = Field(default_factory=dict)
|
|
261
|
+
linked_message_id: str | None = None
|
|
262
|
+
sync_session_id: str | None = None
|
|
263
|
+
segment_id: str | None = None
|
|
264
|
+
resolution: InternCrossMetaThreadMessageResolution | None = None
|
|
265
|
+
summary: str | None = None
|
|
266
|
+
created_at: datetime
|
|
267
|
+
|
|
268
|
+
|
|
147
269
|
class InternRuntimeBinding(_StrictContract):
|
|
148
270
|
factory_id: str | None = None
|
|
149
271
|
project_id: str | None = None
|
|
@@ -97,6 +97,43 @@ RESEARCH_OPERATIONS = {
|
|
|
97
97
|
mutation=True,
|
|
98
98
|
idempotent=True,
|
|
99
99
|
),
|
|
100
|
+
_operation(
|
|
101
|
+
"list_intern_meta_threads",
|
|
102
|
+
HttpMethod.GET,
|
|
103
|
+
"/smr/research-intern/meta-threads",
|
|
104
|
+
idempotent=True,
|
|
105
|
+
),
|
|
106
|
+
_operation(
|
|
107
|
+
"get_intern_meta_thread",
|
|
108
|
+
HttpMethod.GET,
|
|
109
|
+
"/smr/research-intern/meta-threads/{meta_thread_id}",
|
|
110
|
+
idempotent=True,
|
|
111
|
+
),
|
|
112
|
+
_operation(
|
|
113
|
+
"list_intern_meta_thread_segments",
|
|
114
|
+
HttpMethod.GET,
|
|
115
|
+
"/smr/research-intern/meta-threads/{meta_thread_id}/segments",
|
|
116
|
+
idempotent=True,
|
|
117
|
+
),
|
|
118
|
+
_operation(
|
|
119
|
+
"list_intern_meta_thread_handoffs",
|
|
120
|
+
HttpMethod.GET,
|
|
121
|
+
"/smr/research-intern/meta-threads/{meta_thread_id}/handoffs",
|
|
122
|
+
idempotent=True,
|
|
123
|
+
),
|
|
124
|
+
_operation(
|
|
125
|
+
"list_intern_meta_thread_messages",
|
|
126
|
+
HttpMethod.GET,
|
|
127
|
+
"/smr/research-intern/meta-threads/{meta_thread_id}/messages",
|
|
128
|
+
idempotent=True,
|
|
129
|
+
),
|
|
130
|
+
_operation(
|
|
131
|
+
"create_intern_meta_thread_message",
|
|
132
|
+
HttpMethod.POST,
|
|
133
|
+
"/smr/research-intern/meta-threads/messages",
|
|
134
|
+
mutation=True,
|
|
135
|
+
idempotent=True,
|
|
136
|
+
),
|
|
100
137
|
_operation(
|
|
101
138
|
"list_intern_runtime_events",
|
|
102
139
|
HttpMethod.GET,
|
|
@@ -145,6 +145,7 @@ from synth_ai.sdk.research.contracts import (
|
|
|
145
145
|
ImageReleaseUploadResponse,
|
|
146
146
|
ImageUploadId,
|
|
147
147
|
InferenceProvider,
|
|
148
|
+
InternAgentConfig,
|
|
148
149
|
InternAsyncBlocker,
|
|
149
150
|
InternAsyncCheckpoint,
|
|
150
151
|
InternAsyncCommandKind,
|
|
@@ -161,6 +162,17 @@ from synth_ai.sdk.research.contracts import (
|
|
|
161
162
|
InternAsyncRuntime,
|
|
162
163
|
InternAsyncRuntimeBudget,
|
|
163
164
|
InternAsyncStatus,
|
|
165
|
+
InternCrossMetaThreadMessage,
|
|
166
|
+
InternCrossMetaThreadMessageCreateRequest,
|
|
167
|
+
InternCrossMetaThreadMessageKind,
|
|
168
|
+
InternCrossMetaThreadMessageResolution,
|
|
169
|
+
InternMetaHandoff,
|
|
170
|
+
InternMetaHandoffStatus,
|
|
171
|
+
InternMetaThread,
|
|
172
|
+
InternMetaThreadKind,
|
|
173
|
+
InternMetaThreadLifecycle,
|
|
174
|
+
InternMetaThreadSegment,
|
|
175
|
+
InternMetaThreadSegmentStatus,
|
|
164
176
|
InternRuntimeBinding,
|
|
165
177
|
InternRuntimeOutcome,
|
|
166
178
|
InternSyncCommandKind,
|
|
@@ -416,6 +428,7 @@ from synth_ai.sdk.research.research_intern import (
|
|
|
416
428
|
AsyncResearchInternAsyncRuntimeAPI,
|
|
417
429
|
AsyncResearchInternDecisionsAPI,
|
|
418
430
|
AsyncResearchInternFactoriesAPI,
|
|
431
|
+
AsyncResearchInternMetaThreadsAPI,
|
|
419
432
|
AsyncResearchInternReactiveSession,
|
|
420
433
|
AsyncResearchInternSessionsAPI,
|
|
421
434
|
AsyncResearchInternSyncRuntimeAPI,
|
|
@@ -431,6 +444,7 @@ from synth_ai.sdk.research.research_intern import (
|
|
|
431
444
|
ResearchInternEventStreamObservation,
|
|
432
445
|
ResearchInternExchange,
|
|
433
446
|
ResearchInternFactoriesAPI,
|
|
447
|
+
ResearchInternMetaThreadsAPI,
|
|
434
448
|
ResearchInternOperatorTurn,
|
|
435
449
|
ResearchInternPollingTimeoutError,
|
|
436
450
|
ResearchInternReactiveSession,
|
|
@@ -453,6 +467,7 @@ __all__ = [
|
|
|
453
467
|
"AsyncResearchInternSyncRuntimeAPI",
|
|
454
468
|
"AsyncResearchInternDecisionsAPI",
|
|
455
469
|
"AsyncResearchInternFactoriesAPI",
|
|
470
|
+
"AsyncResearchInternMetaThreadsAPI",
|
|
456
471
|
"AsyncResearchInternReactiveSession",
|
|
457
472
|
"AsyncResearchInternSessionsAPI",
|
|
458
473
|
"DataBindingCreateRequest",
|
|
@@ -713,6 +728,19 @@ __all__ = [
|
|
|
713
728
|
"ResearchInternEventStreamPayload",
|
|
714
729
|
"ResearchInternExchange",
|
|
715
730
|
"ResearchInternFactoriesAPI",
|
|
731
|
+
"ResearchInternMetaThreadsAPI",
|
|
732
|
+
"InternAgentConfig",
|
|
733
|
+
"InternCrossMetaThreadMessage",
|
|
734
|
+
"InternCrossMetaThreadMessageCreateRequest",
|
|
735
|
+
"InternCrossMetaThreadMessageKind",
|
|
736
|
+
"InternCrossMetaThreadMessageResolution",
|
|
737
|
+
"InternMetaHandoff",
|
|
738
|
+
"InternMetaHandoffStatus",
|
|
739
|
+
"InternMetaThread",
|
|
740
|
+
"InternMetaThreadKind",
|
|
741
|
+
"InternMetaThreadLifecycle",
|
|
742
|
+
"InternMetaThreadSegment",
|
|
743
|
+
"InternMetaThreadSegmentStatus",
|
|
716
744
|
"ResearchInternFactoryMembershipResponse",
|
|
717
745
|
"ResearchInternOperatorTurn",
|
|
718
746
|
"ResearchInternPatchRequest",
|