mainsequence 6.0.41__tar.gz → 6.0.42__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.
Files changed (129) hide show
  1. {mainsequence-6.0.41/mainsequence.egg-info → mainsequence-6.0.42}/PKG-INFO +1 -1
  2. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/models_helpers.py +23 -4
  3. {mainsequence-6.0.41 → mainsequence-6.0.42/mainsequence.egg-info}/PKG-INFO +1 -1
  4. {mainsequence-6.0.41 → mainsequence-6.0.42}/pyproject.toml +1 -1
  5. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_cli.py +15 -1
  6. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_filter_normalization.py +28 -0
  7. {mainsequence-6.0.41 → mainsequence-6.0.42}/LICENSE +0 -0
  8. {mainsequence-6.0.41 → mainsequence-6.0.42}/README.md +0 -0
  9. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/AGENTS.md +0 -0
  10. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
  11. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
  12. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
  13. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
  14. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
  15. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
  16. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
  17. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/maintenance/project-maintenance/SKILL.md +0 -0
  18. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
  19. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
  20. {mainsequence-6.0.41 → mainsequence-6.0.42}/agent_scaffold/skills/sdk_project_execution/SKILL.md +0 -0
  21. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/__init__.py +0 -0
  22. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/__main__.py +0 -0
  23. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/bootstrap.py +0 -0
  24. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/__init__.py +0 -0
  25. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/api.py +0 -0
  26. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/browser_auth.py +0 -0
  27. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/cli.py +0 -0
  28. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/config.py +0 -0
  29. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/docker_utils.py +0 -0
  30. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/doctor.py +0 -0
  31. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/local_ops.py +0 -0
  32. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/migrations.py +0 -0
  33. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/model_filters.py +0 -0
  34. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/project_status.py +0 -0
  35. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/pydantic_cli.py +0 -0
  36. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/sdk_utils.py +0 -0
  37. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/ssh_utils.py +0 -0
  38. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/cli/ui.py +0 -0
  39. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/__init__.py +0 -0
  40. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/agent_runtime_models.py +0 -0
  41. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/base.py +0 -0
  42. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/client.py +0 -0
  43. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/compute_validation.py +0 -0
  44. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
  45. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  46. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
  47. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
  48. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/dtype_codec.py +0 -0
  49. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/exceptions.py +0 -0
  50. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/metatables/__init__.py +0 -0
  51. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/metatables/core.py +0 -0
  52. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/models_foundry.py +0 -0
  53. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/models_user.py +0 -0
  54. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/client/utils.py +0 -0
  55. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/defaults.py +0 -0
  56. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/instrumentation/__init__.py +0 -0
  57. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/instrumentation/utils.py +0 -0
  58. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/logconf.py +0 -0
  59. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/__init__.py +0 -0
  60. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/__main__.py +0 -0
  61. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
  62. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
  63. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
  64. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
  65. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
  66. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/models.py +0 -0
  67. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
  68. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
  69. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
  70. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
  71. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/future_registry.py +0 -0
  72. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/hashing.py +0 -0
  73. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/__init__.py +0 -0
  74. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/alembic.py +0 -0
  75. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/env.py +0 -0
  76. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/provider.py +0 -0
  77. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/registry.py +0 -0
  78. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
  79. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
  80. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
  81. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
  82. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
  83. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/schema_names.py +0 -0
  84. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
  85. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/project_context.py +0 -0
  86. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/project_skills.py +0 -0
  87. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/runtime_flags.py +0 -0
  88. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence/scaffold_skills.py +0 -0
  89. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence.egg-info/SOURCES.txt +0 -0
  90. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence.egg-info/dependency_links.txt +0 -0
  91. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence.egg-info/entry_points.txt +0 -0
  92. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence.egg-info/requires.txt +0 -0
  93. {mainsequence-6.0.41 → mainsequence-6.0.42}/mainsequence.egg-info/top_level.txt +0 -0
  94. {mainsequence-6.0.41 → mainsequence-6.0.42}/setup.cfg +0 -0
  95. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_auth_precedence.py +0 -0
  96. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_build_operations_hashing.py +0 -0
  97. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_canonical_api_route_contract.py +0 -0
  98. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_cli_browser_auth.py +0 -0
  99. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_cli_migrations.py +0 -0
  100. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_client.py +0 -0
  101. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_data_access_mixin_dimension_audit.py +0 -0
  102. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_data_node_storage_dimension_queries.py +0 -0
  103. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_data_node_update_flow.py +0 -0
  104. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_dependency_extras.py +0 -0
  105. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_duckdb_interface_dimensions.py +0 -0
  106. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_environment_resource_context.py +0 -0
  107. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_instrumentation.py +0 -0
  108. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_local_ops.py +0 -0
  109. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_logconf.py +0 -0
  110. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_meta_table_migrations.py +0 -0
  111. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_meta_tables_client_models.py +0 -0
  112. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
  113. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_models_user_request_bound_auth.py +0 -0
  114. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_notification_uid_contract.py +0 -0
  115. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_pod_project_resolution.py +0 -0
  116. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_project_batch_jobs_from_file.py +0 -0
  117. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_project_branch_contract.py +0 -0
  118. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_project_runtime_context.py +0 -0
  119. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_project_skills.py +0 -0
  120. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_run_configuration.py +0 -0
  121. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_scaffold_skills.py +0 -0
  122. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_schema_names.py +0 -0
  123. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_secret_client_model.py +0 -0
  124. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_source_table_configuration.py +0 -0
  125. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_sqlite_interface_dimensions.py +0 -0
  126. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_ssh_utils.py +0 -0
  127. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_update_runner_uid_runtime.py +0 -0
  128. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_update_statistics.py +0 -0
  129. {mainsequence-6.0.41 → mainsequence-6.0.42}/tests/test_update_uid_guards.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 6.0.41
3
+ Version: 6.0.42
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: LicenseRef-MainSequence-Proprietary
@@ -955,14 +955,33 @@ class ProjectResource(CurrentProjectBranchCollectionMixin, BaseObjectOrm, BasePy
955
955
  description="Display name of the resource discovered in the project's repository.",
956
956
  examples=["analytics_dashboard.py"],
957
957
  )
958
- resource_type: Literal["dashboard", "fastapi", "markdown", "agent"] | None = Field(
958
+ resource_type: Literal[
959
+ "configuration",
960
+ "notebook",
961
+ "script",
962
+ "dashboard",
963
+ "agent",
964
+ "fastapi",
965
+ "project_agent_card",
966
+ "markdown",
967
+ ] | None = Field(
959
968
  None,
960
969
  title="Resource Type",
961
970
  description=(
962
- "Type of the project resource. Allowed values are `dashboard`, `fastapi`, "
963
- "`markdown`, and `agent`."
971
+ "Canonical backend discriminator for the discovered project resource. "
972
+ "Allowed values are `configuration`, `notebook`, `script`, `dashboard`, "
973
+ "`agent`, `fastapi`, `project_agent_card`, and `markdown`."
964
974
  ),
965
- examples=["dashboard", "fastapi", "markdown", "agent"],
975
+ examples=[
976
+ "configuration",
977
+ "notebook",
978
+ "script",
979
+ "dashboard",
980
+ "agent",
981
+ "fastapi",
982
+ "project_agent_card",
983
+ "markdown",
984
+ ],
966
985
  )
967
986
  code: str | None = Field(
968
987
  None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 6.0.41
3
+ Version: 6.0.42
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: LicenseRef-MainSequence-Proprietary
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence"
7
- version = "6.0.41"
7
+ version = "6.0.42"
8
8
  description = "Main Sequence SDK "
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -4253,7 +4253,16 @@ def test_list_project_resources_uses_client_model(cli_mod, monkeypatch):
4253
4253
  "last_modified": "2026-03-15T10:30:00Z",
4254
4254
  "repo_commit_sha": "abc123",
4255
4255
  }
4256
- )
4256
+ ),
4257
+ types.SimpleNamespace(
4258
+ model_dump=lambda: {
4259
+ "uid": "12cc8937-2e90-45da-8326-9e09a46f32cb",
4260
+ "name": "Project Agent Card",
4261
+ "resource_type": "project_agent_card",
4262
+ "path": ".agents/agent_card.json",
4263
+ "repo_commit_sha": "abc123",
4264
+ }
4265
+ ),
4257
4266
  ]
4258
4267
 
4259
4268
  fake_base.BaseObjectOrm = FakeBaseObjectOrm
@@ -4280,6 +4289,11 @@ def test_list_project_resources_uses_client_model(cli_mod, monkeypatch):
4280
4289
  assert captured["env_project_uid"] is None
4281
4290
  assert captured["jwt"] == ("acc", "ref")
4282
4291
  assert out[0]["name"] == "analytics_dashboard.py"
4292
+ assert [resource["resource_type"] for resource in out] == [
4293
+ "script",
4294
+ "project_agent_card",
4295
+ ]
4296
+ assert out[1]["path"] == ".agents/agent_card.json"
4283
4297
  assert os.environ.get("MAIN_SEQUENCE_PROJECT_UID") is None
4284
4298
 
4285
4299
 
@@ -2640,6 +2640,34 @@ def test_project_resource_create_release_uses_related_image_uid(monkeypatch):
2640
2640
  assert captured["timeout"] == 7
2641
2641
 
2642
2642
 
2643
+ @pytest.mark.parametrize(
2644
+ "resource_type",
2645
+ [
2646
+ "configuration",
2647
+ "notebook",
2648
+ "script",
2649
+ "dashboard",
2650
+ "agent",
2651
+ "fastapi",
2652
+ "project_agent_card",
2653
+ "markdown",
2654
+ ],
2655
+ )
2656
+ def test_project_resource_accepts_canonical_backend_resource_types(resource_type):
2657
+ resource = models_helpers_mod.ProjectResource.model_validate(
2658
+ {
2659
+ "uid": "857bec7b-dd77-4272-aecd-13fc2138eacc",
2660
+ "project_branch_uid": PROJECT_BRANCH_UID,
2661
+ "name": ".agents/agent_card.json",
2662
+ "resource_type": resource_type,
2663
+ "path": ".agents/agent_card.json",
2664
+ "repo_commit_sha": "abc123",
2665
+ }
2666
+ )
2667
+
2668
+ assert resource.resource_type == resource_type
2669
+
2670
+
2643
2671
  def _resource_release_pipeline_payload(*, running_step: str | None = None):
2644
2672
  keys = (
2645
2673
  "resolve_revision",
File without changes
File without changes
File without changes