mainsequence 4.4.19__tar.gz → 4.4.20__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.
- {mainsequence-4.4.19/mainsequence.egg-info → mainsequence-4.4.20}/PKG-INFO +1 -1
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/agent_runtime_models.py +181 -36
- {mainsequence-4.4.19 → mainsequence-4.4.20/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-4.4.19 → mainsequence-4.4.20}/pyproject.toml +1 -1
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_filter_normalization.py +11 -21
- {mainsequence-4.4.19 → mainsequence-4.4.20}/LICENSE +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/README.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/widgets/app_components/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/widgets/tables/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/widgets/tabular_transform/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/ms-markets/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/project_builder/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/__main__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/bootstrap.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/api.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/cli.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/config.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/cli/ui.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/base.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/client.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/app_component.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/connections.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/adapter_from_api.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/response_mapping.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/table_visuals.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/tabular.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/ui.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/data_models.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/providers/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/providers/adapter_from_api.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/bindings.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/connection_query.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/registry.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/table.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/tabular_transform.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/workspace.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/workspaces/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/workspaces/documents.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/workspaces/mounted_widgets.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/fastapi/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/fastapi/auth.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/metatables/core.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/models_foundry.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/models_user.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/utils.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/defaults.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/logconf.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/models.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence.egg-info/SOURCES.txt +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/setup.cfg +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_auth_precedence.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_cli.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_cli_migrations.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_client.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_command_center_app_component_models.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_command_center_data_models.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_command_center_models.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_command_center_table_contracts.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_command_center_tabular_transform.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_data_access_mixin_dimension_audit.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_data_node_storage_dimension_queries.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_data_node_update_flow.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_dependency_extras.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_instrumentation.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_logconf.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_run_configuration.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_schema_names.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_secret_client_model.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_update_statistics.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_update_uid_guards.py +0 -0
- {mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_workspace_snapshot.py +0 -0
|
@@ -710,52 +710,198 @@ class Agent(ShareableObjectMixin, BaseObjectOrm, BasePydanticModel):
|
|
|
710
710
|
return AgentSession(**response.json())
|
|
711
711
|
|
|
712
712
|
|
|
713
|
-
class
|
|
714
|
-
ENDPOINT: ClassVar[str] = "agents/v1/
|
|
713
|
+
class CodingAgentService(BaseObjectOrm, BasePydanticModel):
|
|
714
|
+
ENDPOINT: ClassVar[str] = "agents/v1/coding-agent-services"
|
|
715
|
+
FILTERSET_FIELDS: ClassVar[dict[str, list[str]] | None] = {
|
|
716
|
+
"uid": ["exact", "in"],
|
|
717
|
+
"agent_uid": ["exact"],
|
|
718
|
+
"agent_type": ["exact"],
|
|
719
|
+
"scope_kind": ["exact"],
|
|
720
|
+
"user_uid": ["exact"],
|
|
721
|
+
"project_uid": ["exact"],
|
|
722
|
+
"automatic_deployment": ["exact"],
|
|
723
|
+
}
|
|
724
|
+
FILTER_VALUE_NORMALIZERS: ClassVar[dict[str, str]] = {
|
|
725
|
+
"uid": "uid",
|
|
726
|
+
"uid__in": "uid",
|
|
727
|
+
"agent_uid": "uid",
|
|
728
|
+
"agent_type": "str",
|
|
729
|
+
"scope_kind": "str",
|
|
730
|
+
"user_uid": "uid",
|
|
731
|
+
"project_uid": "uid",
|
|
732
|
+
"automatic_deployment": "bool",
|
|
733
|
+
}
|
|
715
734
|
|
|
716
|
-
uid: str | None = Field(None, description="Public UID of the
|
|
717
|
-
agent_uid: str | None = Field(None, description="Public UID of the
|
|
718
|
-
|
|
735
|
+
uid: str | None = Field(None, description="Public UID of the coding-agent service.")
|
|
736
|
+
agent_uid: str | None = Field(None, description="Public UID of the owning Agent.")
|
|
737
|
+
agent_type: str | None = Field(
|
|
738
|
+
None,
|
|
739
|
+
description="Agent runtime type, such as astro-orchestrator or project-executor.",
|
|
740
|
+
)
|
|
741
|
+
scope: dict[str, Any] = Field(
|
|
742
|
+
default_factory=dict,
|
|
743
|
+
description="Typed scope projection, for example {kind: user, user_uid} or {kind: project, project_uid}.",
|
|
744
|
+
)
|
|
719
745
|
is_ready: bool = Field(False, description="Whether the service runtime is routable.")
|
|
720
746
|
automatic_deployment: bool = Field(
|
|
721
747
|
False,
|
|
722
748
|
description="Whether this coding-agent service is eligible for automatic deployment flows.",
|
|
723
749
|
)
|
|
724
|
-
|
|
725
|
-
|
|
750
|
+
image_drift: dict[str, Any] | None = Field(
|
|
751
|
+
None, description="Runtime image drift status payload."
|
|
726
752
|
)
|
|
727
|
-
|
|
728
|
-
None, description="
|
|
753
|
+
related_job_uid: str | None = Field(
|
|
754
|
+
None, description="Public UID of the backing job, if attached."
|
|
729
755
|
)
|
|
730
|
-
|
|
731
|
-
None, description="
|
|
756
|
+
knative_service_runtime_uid: str | None = Field(
|
|
757
|
+
None, description="Public UID of the backing Knative service runtime, if attached."
|
|
732
758
|
)
|
|
733
|
-
subdomain: str = Field(
|
|
759
|
+
subdomain: str | None = Field(None, description="Public subdomain for the service.")
|
|
734
760
|
|
|
761
|
+
@classmethod
|
|
762
|
+
def _post_collection_action(
|
|
763
|
+
cls,
|
|
764
|
+
action_name: str,
|
|
765
|
+
body: dict[str, Any],
|
|
766
|
+
*,
|
|
767
|
+
timeout=None,
|
|
768
|
+
expected_statuses: tuple[int, ...] = (200,),
|
|
769
|
+
) -> Any:
|
|
770
|
+
payload = {"json": serialize_to_json(body)}
|
|
771
|
+
url = f"{cls.get_object_url().rstrip('/')}/{action_name.strip('/')}/"
|
|
772
|
+
response = make_request(
|
|
773
|
+
s=cls.build_session(),
|
|
774
|
+
loaders=cls.LOADERS,
|
|
775
|
+
r_type="POST",
|
|
776
|
+
url=url,
|
|
777
|
+
payload=payload,
|
|
778
|
+
time_out=timeout,
|
|
779
|
+
)
|
|
780
|
+
if response.status_code not in expected_statuses:
|
|
781
|
+
raise_for_response(response, payload=payload)
|
|
782
|
+
return response.json()
|
|
735
783
|
|
|
736
|
-
|
|
737
|
-
|
|
784
|
+
@classmethod
|
|
785
|
+
def resolve(
|
|
786
|
+
cls,
|
|
787
|
+
*,
|
|
788
|
+
agent_type: str,
|
|
789
|
+
user_uid: str | None = None,
|
|
790
|
+
project_uid: str | None = None,
|
|
791
|
+
timeout=None,
|
|
792
|
+
) -> CodingAgentService:
|
|
793
|
+
body: dict[str, Any] = {"agent_type": str(agent_type)}
|
|
794
|
+
if user_uid is not None:
|
|
795
|
+
body["user_uid"] = cls._coerce_filter_uid(user_uid, field_name="user_uid")
|
|
796
|
+
if project_uid is not None:
|
|
797
|
+
body["project_uid"] = cls._coerce_filter_uid(project_uid, field_name="project_uid")
|
|
798
|
+
return cls(**cls._post_collection_action("resolve", body, timeout=timeout))
|
|
738
799
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
)
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
800
|
+
@classmethod
|
|
801
|
+
def resolve_user_orchestrator(
|
|
802
|
+
cls,
|
|
803
|
+
*,
|
|
804
|
+
user_uid: str,
|
|
805
|
+
timeout=None,
|
|
806
|
+
) -> CodingAgentService:
|
|
807
|
+
return cls.resolve(
|
|
808
|
+
agent_type="astro-orchestrator",
|
|
809
|
+
user_uid=user_uid,
|
|
810
|
+
timeout=timeout,
|
|
811
|
+
)
|
|
812
|
+
|
|
813
|
+
@classmethod
|
|
814
|
+
def resolve_project_executor(
|
|
815
|
+
cls,
|
|
816
|
+
*,
|
|
817
|
+
project_uid: str,
|
|
818
|
+
timeout=None,
|
|
819
|
+
) -> CodingAgentService:
|
|
820
|
+
return cls.resolve(
|
|
821
|
+
agent_type="project-executor",
|
|
822
|
+
project_uid=project_uid,
|
|
823
|
+
timeout=timeout,
|
|
824
|
+
)
|
|
825
|
+
|
|
826
|
+
@classmethod
|
|
827
|
+
def deploy_current_project_version(
|
|
828
|
+
cls,
|
|
829
|
+
*,
|
|
830
|
+
project_uid: str,
|
|
831
|
+
timeout=None,
|
|
832
|
+
) -> dict[str, Any]:
|
|
833
|
+
resolved_project_uid = cls._coerce_filter_uid(project_uid, field_name="project_uid")
|
|
834
|
+
return cls._post_collection_action(
|
|
835
|
+
f"project/{resolved_project_uid}/deploy-current-version",
|
|
836
|
+
{},
|
|
837
|
+
timeout=timeout,
|
|
838
|
+
expected_statuses=(200, 201, 202),
|
|
839
|
+
)
|
|
840
|
+
|
|
841
|
+
@classmethod
|
|
842
|
+
def deploy_project(
|
|
843
|
+
cls,
|
|
844
|
+
*,
|
|
845
|
+
project_uid: str,
|
|
846
|
+
llm_provider: str | None = None,
|
|
847
|
+
llm_model: str | None = None,
|
|
848
|
+
llm_thinking: str | None = None,
|
|
849
|
+
automatic_deployment: bool | None = None,
|
|
850
|
+
cpu_request: str | None = None,
|
|
851
|
+
cpu_limit: str | None = None,
|
|
852
|
+
memory_request: str | None = None,
|
|
853
|
+
memory_limit: str | None = None,
|
|
854
|
+
gpu_request: str | None = None,
|
|
855
|
+
gpu_type: str | None = None,
|
|
856
|
+
spot: bool | None = None,
|
|
857
|
+
timeout=None,
|
|
858
|
+
**extra: Any,
|
|
859
|
+
) -> dict[str, Any]:
|
|
860
|
+
resolved_project_uid = cls._coerce_filter_uid(project_uid, field_name="project_uid")
|
|
861
|
+
body: dict[str, Any] = {
|
|
862
|
+
key: value
|
|
863
|
+
for key, value in {
|
|
864
|
+
"llm_provider": llm_provider,
|
|
865
|
+
"llm_model": llm_model,
|
|
866
|
+
"llm_thinking": llm_thinking,
|
|
867
|
+
"automatic_deployment": automatic_deployment,
|
|
868
|
+
"cpu_request": cpu_request,
|
|
869
|
+
"cpu_limit": cpu_limit,
|
|
870
|
+
"memory_request": memory_request,
|
|
871
|
+
"memory_limit": memory_limit,
|
|
872
|
+
"gpu_request": gpu_request,
|
|
873
|
+
"gpu_type": gpu_type,
|
|
874
|
+
"spot": spot,
|
|
875
|
+
**extra,
|
|
876
|
+
}.items()
|
|
877
|
+
if value is not None
|
|
878
|
+
}
|
|
879
|
+
return cls._post_collection_action(
|
|
880
|
+
f"project/{resolved_project_uid}/deploy",
|
|
881
|
+
body,
|
|
882
|
+
timeout=timeout,
|
|
883
|
+
expected_statuses=(200, 201, 202),
|
|
884
|
+
)
|
|
885
|
+
|
|
886
|
+
def reconcile_runtime(
|
|
887
|
+
self,
|
|
888
|
+
*,
|
|
889
|
+
reason: str | None = None,
|
|
890
|
+
timeout=None,
|
|
891
|
+
) -> dict[str, Any]:
|
|
892
|
+
body = {} if reason is None else {"reason": str(reason)}
|
|
893
|
+
payload = {"json": serialize_to_json(body)}
|
|
894
|
+
response = make_request(
|
|
895
|
+
s=type(self).build_session(),
|
|
896
|
+
loaders=type(self).LOADERS,
|
|
897
|
+
r_type="POST",
|
|
898
|
+
url=self.get_action_url("reconcile-runtime"),
|
|
899
|
+
payload=payload,
|
|
900
|
+
time_out=timeout,
|
|
901
|
+
)
|
|
902
|
+
if response.status_code not in (200, 202):
|
|
903
|
+
raise_for_response(response, payload=payload)
|
|
904
|
+
return response.json()
|
|
759
905
|
|
|
760
906
|
|
|
761
907
|
class AgentSession(BaseObjectOrm, BasePydanticModel):
|
|
@@ -1712,8 +1858,7 @@ __all__ = [
|
|
|
1712
1858
|
"AgentSessionA2ANormalizedResponse",
|
|
1713
1859
|
"AgentSessionRuntimeReady",
|
|
1714
1860
|
"AgentSessionRuntimeAccess",
|
|
1715
|
-
"
|
|
1716
|
-
"UserProjectExecutorAgentService",
|
|
1861
|
+
"CodingAgentService",
|
|
1717
1862
|
"AgentSession",
|
|
1718
1863
|
"AgentSessionStatus",
|
|
1719
1864
|
]
|
|
@@ -1436,35 +1436,25 @@ def test_agent_runtime_models_deserialize_backend_uid_payloads():
|
|
|
1436
1436
|
assert session.agent_uid == agent_uid
|
|
1437
1437
|
assert session.name == "Research follow-up"
|
|
1438
1438
|
|
|
1439
|
-
|
|
1440
|
-
{
|
|
1441
|
-
"uid": service_uid,
|
|
1442
|
-
"agent_uid": agent_uid,
|
|
1443
|
-
"is_ready": True,
|
|
1444
|
-
"orchestrator_image_has_drift": False,
|
|
1445
|
-
"user_uid": user_uid,
|
|
1446
|
-
"related_job": {"uid": "job-uid"},
|
|
1447
|
-
"knative_service_runtime": {"uid": "runtime-uid"},
|
|
1448
|
-
"subdomain": "astro-jose",
|
|
1449
|
-
}
|
|
1450
|
-
)
|
|
1451
|
-
assert orchestrator.uid == service_uid
|
|
1452
|
-
assert orchestrator.agent_uid == agent_uid
|
|
1453
|
-
|
|
1454
|
-
executor = agent_models_mod.UserProjectExecutorAgentService.model_validate(
|
|
1439
|
+
service = agent_models_mod.CodingAgentService.model_validate(
|
|
1455
1440
|
{
|
|
1456
1441
|
"uid": service_uid,
|
|
1457
1442
|
"agent_uid": agent_uid,
|
|
1443
|
+
"agent_type": "project-executor",
|
|
1444
|
+
"scope": {"kind": "project", "project_uid": "project-uid"},
|
|
1458
1445
|
"is_ready": True,
|
|
1459
1446
|
"image_drift": {"has_drift": False, "checks": []},
|
|
1460
|
-
"
|
|
1461
|
-
"
|
|
1462
|
-
"
|
|
1447
|
+
"related_job_uid": "job-uid",
|
|
1448
|
+
"knative_service_runtime_uid": "runtime-uid",
|
|
1449
|
+
"automatic_deployment": True,
|
|
1463
1450
|
"subdomain": "executor-project",
|
|
1464
1451
|
}
|
|
1465
1452
|
)
|
|
1466
|
-
assert
|
|
1467
|
-
assert
|
|
1453
|
+
assert service.uid == service_uid
|
|
1454
|
+
assert service.agent_uid == agent_uid
|
|
1455
|
+
assert service.agent_type == "project-executor"
|
|
1456
|
+
assert service.scope["project_uid"] == "project-uid"
|
|
1457
|
+
|
|
1468
1458
|
|
|
1469
1459
|
|
|
1470
1460
|
def test_agent_session_runtime_access_uses_session_uid_route(monkeypatch):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/a2a_communication/SKILL.md
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
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/dashboards/streamlit/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md
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
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/app_component.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/connections.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/tabular.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/contracts/ui.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/data_models.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/__init__.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/bindings.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/registry.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/widgets/table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/command_center/workspace_snapshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/__init__.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/duckdb.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/client/data_sources_interfaces/sqlite.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
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/compiled_sql/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/build_operations.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/data_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/namespacing.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/persist_managers.py
RENAMED
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/data_nodes/run_operations.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
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/mainsequence/meta_tables/sqlalchemy_contracts.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
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_command_center_app_component_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.19 → mainsequence-4.4.20}/tests/test_data_node_storage_dimension_queries.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
|