mainsequence 4.4.32__tar.gz → 5.0.2__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.32/mainsequence.egg-info → mainsequence-5.0.2}/PKG-INFO +8 -47
- {mainsequence-4.4.32 → mainsequence-5.0.2}/README.md +1 -1
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/AGENTS.md +70 -57
- {mainsequence-4.4.32/agent_scaffold/skills/a2a_communication → mainsequence-5.0.2/agent_scaffold/skills/a2a_sdk_execution}/SKILL.md +8 -5
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/data_access/exploration/SKILL.md +1 -1
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +11 -17
- mainsequence-5.0.2/agent_scaffold/skills/maintenance/project-maintenance/SKILL.md +200 -0
- {mainsequence-4.4.32/agent_scaffold/skills/project_builder → mainsequence-5.0.2/agent_scaffold/skills/sdk_project_execution}/SKILL.md +16 -35
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/api.py +156 -65
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/cli.py +273 -190
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/local_ops.py +27 -2
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/base.py +1 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/metatables/core.py +5 -11
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/models_foundry.py +0 -26
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/models_helpers.py +157 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/utils.py +3 -4
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/data_nodes.py +1 -2
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/__init__.py +2 -4
- mainsequence-5.0.2/mainsequence/project_skills.py +620 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2/mainsequence.egg-info}/PKG-INFO +8 -47
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence.egg-info/SOURCES.txt +5 -3
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence.egg-info/requires.txt +3 -2
- {mainsequence-4.4.32 → mainsequence-5.0.2}/pyproject.toml +11 -10
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_cli.py +282 -215
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_filter_normalization.py +119 -0
- mainsequence-5.0.2/tests/test_project_skills.py +483 -0
- mainsequence-4.4.32/agent_scaffold/skills/project_to_agent/SKILL.md +0 -164
- {mainsequence-4.4.32 → mainsequence-5.0.2}/LICENSE +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/widgets/app_components/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/widgets/tables/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/widgets/tabular_transform/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/ms-markets/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/__main__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/bootstrap.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/config.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/cli/ui.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/client.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/app_component.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/connections.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/contracts/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/contracts/adapter_from_api.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/contracts/response_mapping.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/contracts/table_visuals.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/contracts/tabular.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/contracts/ui.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/data_models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/providers/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/providers/adapter_from_api.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/widgets/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/widgets/bindings.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/widgets/connection_query.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/widgets/registry.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/widgets/table.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/widgets/tabular_transform.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/workspace.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/workspaces/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/workspaces/documents.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/command_center/workspaces/mounted_widgets.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/fastapi/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/fastapi/auth.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/client/models_user.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/defaults.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/logconf.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/setup.cfg +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_auth_precedence.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_cli_migrations.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_client.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_command_center_app_component_models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_command_center_data_models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_command_center_models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_command_center_table_contracts.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_command_center_tabular_transform.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_data_access_mixin_dimension_audit.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_data_node_storage_dimension_queries.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_data_node_update_flow.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_dependency_extras.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_instrumentation.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_logconf.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_run_configuration.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_schema_names.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_secret_client_model.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_update_statistics.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_update_uid_guards.py +0 -0
- {mainsequence-4.4.32 → mainsequence-5.0.2}/tests/test_workspace_snapshot.py +0 -0
|
@@ -1,56 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence
|
|
3
|
-
Version:
|
|
3
|
+
Version: 5.0.2
|
|
4
4
|
Summary: Main Sequence SDK
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
|
-
License: MainSequence
|
|
7
|
-
This License Agreement (the "License") governs the use, modification, and distribution of the software provided by MainSequence GmbH (the "Licensor"). The software (the "Software") is provided to you under the terms of this License. By using the Software, you agree to the terms of this License.
|
|
8
|
-
|
|
9
|
-
TERMS AND CONDITIONS
|
|
10
|
-
0. Definitions
|
|
11
|
-
"Personal Use": Use by an individual for personal purposes that are not connected to any business, organization, or commercial activity.
|
|
12
|
-
"Internal Use": Use within a business, organization, or other entity, provided it is not made accessible to third parties or used for commercial purposes.
|
|
13
|
-
"Commercial Use": Use of the Software in exchange for monetary or other compensation, including hosting, offering Software as a service, selling the Software, or using it in a product or service for sale.
|
|
14
|
-
"License Agreement": The legally binding agreement between the Licensor and the licensee (you), subject to the terms outlined in this License.
|
|
15
|
-
1. Grant of License
|
|
16
|
-
1.1 Personal and Internal Use
|
|
17
|
-
The Licensor grants you a limited, non-exclusive, non-transferable, revocable license to use and modify the Software for personal or internal use only, provided that such use is strictly subject to this License Agreement and continues only while the License Agreement remains in effect.
|
|
18
|
-
Upon termination of this License Agreement, all rights to use the Software for personal or internal purposes shall be immediately revoked, and you must cease all use of the Software.
|
|
19
|
-
1.2 Modification
|
|
20
|
-
You are permitted to modify the Software solely for your own personal or internal use, subject to the restrictions outlined in this License Agreement.
|
|
21
|
-
You are not permitted to distribute, sublicense, or otherwise transfer modified or unmodified versions of the Software to any third party.
|
|
22
|
-
1.3 Prohibited Redistribution
|
|
23
|
-
You may not redistribute, sublicense, sell, lease, rent, or otherwise transfer the Software, whether in its original form or as modified by you, to any third party.
|
|
24
|
-
Any attempt to distribute or transfer the Software in any way, without explicit permission from MainSequence GmbH, is strictly prohibited.
|
|
25
|
-
2. Prohibition of Commercial Use
|
|
26
|
-
The Software may not be used for any commercial purposes without obtaining a separate commercial license from MainSequence GmbH.
|
|
27
|
-
Examples of prohibited commercial use include, but are not limited to:
|
|
28
|
-
Hosting or offering the Software as a service to others, either modified or unmodified.
|
|
29
|
-
Using the Software as part of a commercial product or service provided to customers for a fee.
|
|
30
|
-
Using the Software in any production environment that generates income, directly or indirectly, from its use.
|
|
31
|
-
3. Termination
|
|
32
|
-
This License Agreement will automatically terminate if you fail to comply with any of its terms.
|
|
33
|
-
Upon termination of this License, you must immediately cease all use of the Software, destroy all copies (modified or unmodified), and remove the Software from any devices or systems on which it is installed.
|
|
34
|
-
MainSequence GmbH reserves the right to terminate this License at its discretion for any violation of its terms or for any other reason.
|
|
35
|
-
4. Commercial License
|
|
36
|
-
If you wish to use the Software for commercial purposes, you must contact MainSequence GmbH to negotiate and obtain a separate commercial license. The terms of the commercial license, including any fees, will be negotiated separately from this License Agreement.
|
|
37
|
-
Without a valid commercial license, you are strictly prohibited from using the Software for any commercial activity.
|
|
38
|
-
5. Disclaimer of Warranty
|
|
39
|
-
THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL MAINSEQUENCE GMBH OR THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
40
|
-
|
|
41
|
-
6. Limitation of Liability
|
|
42
|
-
IN NO EVENT SHALL MAINSEQUENCE GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
43
|
-
|
|
44
|
-
7. Governing Law
|
|
45
|
-
This License Agreement shall be governed by and construed in accordance with the laws of the jurisdiction where MainSequence GmbH is located, without regard to its conflict of law provisions.
|
|
6
|
+
License-Expression: LicenseRef-MainSequence-Proprietary
|
|
46
7
|
Project-URL: Homepage, https://github.com/mainsequence-sdk/mainsequence-sdk
|
|
47
8
|
Project-URL: Issues, https://github.com/mainsequence-sdk/mainsequence-sdk/issues
|
|
48
9
|
Classifier: Programming Language :: Python :: 3
|
|
49
10
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
50
|
-
Classifier: Programming Language :: Python :: 3.
|
|
51
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
52
12
|
Classifier: Operating System :: OS Independent
|
|
53
|
-
Requires-Python: >=3.
|
|
13
|
+
Requires-Python: >=3.13
|
|
54
14
|
Description-Content-Type: text/markdown
|
|
55
15
|
License-File: LICENSE
|
|
56
16
|
Requires-Dist: alembic>=1.18.4
|
|
@@ -61,14 +21,15 @@ Requires-Dist: numpy
|
|
|
61
21
|
Requires-Dist: opentelemetry-api
|
|
62
22
|
Requires-Dist: opentelemetry-exporter-otlp
|
|
63
23
|
Requires-Dist: opentelemetry-sdk
|
|
24
|
+
Requires-Dist: packaging>=24.2
|
|
64
25
|
Requires-Dist: pandas
|
|
65
26
|
Requires-Dist: psutil
|
|
66
27
|
Requires-Dist: psycopg2>=2.9.12
|
|
67
|
-
Requires-Dist: pydantic
|
|
68
|
-
Requires-Dist: pytz
|
|
28
|
+
Requires-Dist: pydantic<3,>=2.11
|
|
69
29
|
Requires-Dist: pyyaml
|
|
70
30
|
Requires-Dist: requests
|
|
71
31
|
Requires-Dist: sqlalchemy<3,>=2
|
|
32
|
+
Requires-Dist: starlette
|
|
72
33
|
Requires-Dist: structlog
|
|
73
34
|
Requires-Dist: tqdm
|
|
74
35
|
Requires-Dist: typer
|
|
@@ -270,7 +231,7 @@ If you need the exact SDK surface:
|
|
|
270
231
|
## Package metadata
|
|
271
232
|
|
|
272
233
|
- Package name: `mainsequence`
|
|
273
|
-
- Python: `>=3.
|
|
234
|
+
- Python: `>=3.13`
|
|
274
235
|
- CLI entry point: `mainsequence`
|
|
275
236
|
|
|
276
237
|
Project metadata is defined in [pyproject.toml](pyproject.toml).
|
|
@@ -188,7 +188,7 @@ If you need the exact SDK surface:
|
|
|
188
188
|
## Package metadata
|
|
189
189
|
|
|
190
190
|
- Package name: `mainsequence`
|
|
191
|
-
- Python: `>=3.
|
|
191
|
+
- Python: `>=3.13`
|
|
192
192
|
- CLI entry point: `mainsequence`
|
|
193
193
|
|
|
194
194
|
Project metadata is defined in [pyproject.toml](pyproject.toml).
|
|
@@ -23,29 +23,41 @@ installed SDK version with the managed skills pin:
|
|
|
23
23
|
- `mainsequence project update-sdk --path .`
|
|
24
24
|
|
|
25
25
|
After the SDK update, inspect `.agents/skills/mainsequence/PINNED_FROM.txt`.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
The schema-2 record describes both sources installed by
|
|
27
|
+
`mainsequence project update_agent_skills`:
|
|
28
|
+
|
|
29
|
+
- `sdk_version=...` and `sdk_skills_path=...` identify the SDK-owned execution
|
|
30
|
+
skills copied from the target project's installed SDK;
|
|
31
|
+
- `platform_manifest_version=...`, `platform_manifest_sha256=...`,
|
|
32
|
+
`platform_ontology_sha256=...`, and the
|
|
33
|
+
`platform_resource.<name>.*` fields identify the platform-owned ontology and
|
|
34
|
+
skills retrieved from authenticated MCP resources.
|
|
35
|
+
|
|
36
|
+
`pinned_version=...` remains as a backward-readable alias of `sdk_version`.
|
|
37
|
+
Compare the SDK value with the installed version reported by
|
|
38
|
+
`mainsequence --version`.
|
|
29
39
|
|
|
30
40
|
Refresh the managed scaffold only when `PINNED_FROM.txt` is missing or its
|
|
31
41
|
`pinned_version` differs from the installed SDK version:
|
|
32
42
|
|
|
33
|
-
- `mainsequence project update AGENTS.md --path .`
|
|
34
43
|
- `mainsequence project update_agent_skills --path .`
|
|
44
|
+
- `mainsequence project update AGENTS.md --path .`
|
|
35
45
|
|
|
36
|
-
If `
|
|
37
|
-
|
|
38
|
-
the task.
|
|
46
|
+
If `sdk_version` already matches the installed SDK version and no explicit
|
|
47
|
+
platform-skill refresh is needed, do not refresh `AGENTS.md` or
|
|
48
|
+
`.agents/skills/mainsequence/` as a startup ritual; continue with the task.
|
|
39
49
|
|
|
40
50
|
Canonical Main Sequence documentation root:
|
|
41
51
|
`https://mainsequence-sdk.github.io/mainsequence-sdk/`
|
|
42
52
|
|
|
43
53
|
## Agent Job
|
|
44
54
|
|
|
45
|
-
You are the
|
|
55
|
+
You are the SDK execution orchestrator for a Main Sequence repository.
|
|
46
56
|
|
|
47
|
-
|
|
48
|
-
|
|
57
|
+
The platform-owned `project_design` establishes intent, project ontology, the
|
|
58
|
+
connected Project Blueprint, and success criteria. Your SDK-owned
|
|
59
|
+
responsibility is to translate that accepted Blueprint into repository changes,
|
|
60
|
+
CLI/SDK operations, and validation steps.
|
|
49
61
|
|
|
50
62
|
Core responsibilities:
|
|
51
63
|
|
|
@@ -64,8 +76,7 @@ Core responsibilities:
|
|
|
64
76
|
- translate user business logic into reusable code under `src/` so it can be reused by APIs,
|
|
65
77
|
dashboards, jobs, and other project components instead of duplicating logic in integration
|
|
66
78
|
layers
|
|
67
|
-
-
|
|
68
|
-
for blocker and SDK/platform issue assessment
|
|
79
|
+
- use the bug auditor skill for blocker and SDK/platform issue assessment
|
|
69
80
|
|
|
70
81
|
Typical outcomes include:
|
|
71
82
|
|
|
@@ -77,7 +88,7 @@ Typical outcomes include:
|
|
|
77
88
|
Center surface before building or deploying it
|
|
78
89
|
- build reusable business logic in `src/` and keep thin integration layers in APIs, jobs, and
|
|
79
90
|
dashboards
|
|
80
|
-
-
|
|
91
|
+
- assess blockers and suspected SDK or platform issues from concrete repository and runtime evidence
|
|
81
92
|
|
|
82
93
|
Working rules for this role:
|
|
83
94
|
|
|
@@ -105,13 +116,6 @@ User-resolution rule for agents:
|
|
|
105
116
|
|
|
106
117
|
Delegation rules:
|
|
107
118
|
|
|
108
|
-
- when work is delegated or queued for later, write the task in `.agents/tasks.md` according to
|
|
109
|
-
the skill that should execute it
|
|
110
|
-
- each delegated or queued task in `.agents/tasks.md` must state:
|
|
111
|
-
- the exact task scope
|
|
112
|
-
- the owning skill
|
|
113
|
-
- the expected output, decision, or artifact
|
|
114
|
-
- the validation or evidence required before it can be marked complete
|
|
115
119
|
- if delegation is available, declare for each sub-agent:
|
|
116
120
|
- the exact task it owns
|
|
117
121
|
- the exact skill or skills it must use
|
|
@@ -173,10 +177,17 @@ Use the latest relevant documentation or specialized skill for the task at hand.
|
|
|
173
177
|
|
|
174
178
|
Typical routing:
|
|
175
179
|
|
|
176
|
-
- project
|
|
177
|
-
`.agents/skills/mainsequence/
|
|
178
|
-
- project
|
|
179
|
-
|
|
180
|
+
- project architecture, ontology, and Project Blueprint:
|
|
181
|
+
`.agents/skills/mainsequence/project_design/SKILL.md`
|
|
182
|
+
- project setup, local checkout, CLI environment, scaffolding, and standard
|
|
183
|
+
repository layout:
|
|
184
|
+
`.agents/skills/mainsequence/sdk_project_execution/SKILL.md`
|
|
185
|
+
- local environment repair, project authentication refresh, SDK updates,
|
|
186
|
+
managed skill refresh, and canonical project sync:
|
|
187
|
+
`.agents/skills/mainsequence/maintenance/project-maintenance/SKILL.md`
|
|
188
|
+
- turning an existing project into a project-backed coding agent, defining
|
|
189
|
+
project-owned skills, and authoring `.agents/agent_card.json`:
|
|
190
|
+
`.agents/skills/mainsequence/project_to_agent/SKILL.md`
|
|
180
191
|
- project status audits, blocker analysis, failure classification, and upstream SDK assessment:
|
|
181
192
|
`.agents/skills/mainsequence/maintenance/bug_auditor/SKILL.md`
|
|
182
193
|
- DataNodes, updates, identifiers, schema, metadata:
|
|
@@ -218,27 +229,28 @@ For any non-trivial Main Sequence task:
|
|
|
218
229
|
|
|
219
230
|
1. Read the latest relevant Main Sequence documentation.
|
|
220
231
|
2. Compare the implementation against the latest documented behavior.
|
|
221
|
-
|
|
222
|
-
4.
|
|
223
|
-
|
|
224
|
-
7. Confirm you are in the correct project checkout, or use `--path` explicitly.
|
|
225
|
-
8. Confirm platform context with:
|
|
232
|
+
3. Confirm you are in the correct project checkout, or use `--path` explicitly.
|
|
233
|
+
4. Confirm platform context with:
|
|
226
234
|
`mainsequence project current --debug`
|
|
227
|
-
|
|
235
|
+
5. Before validations or live checks, run:
|
|
228
236
|
`mainsequence project refresh_token --path .`
|
|
229
|
-
|
|
237
|
+
6. If git push or pull is required, use:
|
|
230
238
|
`mainsequence project open-signed-terminal <PROJECT_ID>`
|
|
231
|
-
|
|
239
|
+
7. Before proceeding with non-trivial Main Sequence work, update the project SDK:
|
|
232
240
|
`mainsequence project update-sdk --path .`
|
|
233
|
-
|
|
234
|
-
`.agents/skills/mainsequence/PINNED_FROM.txt` field `
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
241
|
+
8. After updating the SDK, compare `mainsequence --version` with
|
|
242
|
+
`.agents/skills/mainsequence/PINNED_FROM.txt` field `sdk_version=...`
|
|
243
|
+
(`pinned_version=...` is its compatibility alias), and verify that the
|
|
244
|
+
sentinel contains platform manifest and resource hashes.
|
|
245
|
+
9. If `PINNED_FROM.txt` is missing, `sdk_version` differs from the installed
|
|
246
|
+
SDK version, or a platform-skill refresh is explicitly required, refresh
|
|
247
|
+
the managed scaffold files:
|
|
238
248
|
`mainsequence project update_agent_skills --path .`
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
249
|
+
`mainsequence project update AGENTS.md --path .`
|
|
250
|
+
10. If `sdk_version` already matches the installed SDK version and no platform
|
|
251
|
+
refresh is required, do not refresh `AGENTS.md` or
|
|
252
|
+
`.agents/skills/mainsequence/` as a startup ritual.
|
|
253
|
+
11. Verify platform state with the CLI or platform tooling instead of guessing.
|
|
242
254
|
|
|
243
255
|
## Orchestrator Rule
|
|
244
256
|
|
|
@@ -246,16 +258,23 @@ Use the skills as an orchestrated sequence, not as isolated documents.
|
|
|
246
258
|
|
|
247
259
|
Default pattern:
|
|
248
260
|
|
|
249
|
-
1. `.agents/skills/mainsequence/
|
|
250
|
-
2.
|
|
251
|
-
|
|
252
|
-
Before the final response:
|
|
261
|
+
1. `.agents/skills/mainsequence/project_design/SKILL.md`
|
|
262
|
+
2. `.agents/skills/mainsequence/sdk_project_execution/SKILL.md`
|
|
263
|
+
3. the relevant domain skill
|
|
253
264
|
|
|
254
|
-
|
|
255
|
-
|
|
265
|
+
When the intended project surface is a project-backed coding agent, apply
|
|
266
|
+
`.agents/skills/mainsequence/project_to_agent/SKILL.md` after the relevant
|
|
267
|
+
project behavior exists and has been verified. The repository source card is
|
|
268
|
+
not the runtime A2A Agent Card; the deployed runtime supplies its concrete
|
|
269
|
+
interfaces and security declarations.
|
|
256
270
|
|
|
257
|
-
|
|
258
|
-
|
|
271
|
+
Use `.agents/skills/mainsequence/project_design/SKILL.md` as the platform
|
|
272
|
+
source of truth for intent and ontology. Use
|
|
273
|
+
`.agents/skills/mainsequence/sdk_project_execution/SKILL.md` for installed-SDK,
|
|
274
|
+
CLI, filesystem, and local repository execution mechanics. Use
|
|
275
|
+
`.agents/skills/mainsequence/maintenance/project-maintenance/SKILL.md` for
|
|
276
|
+
repeatable environment, authentication, SDK, scaffold-refresh, and project-sync
|
|
277
|
+
routines.
|
|
259
278
|
|
|
260
279
|
## Core Working Rules
|
|
261
280
|
|
|
@@ -266,8 +285,8 @@ scaffolding, folder structure, and standard repository layout.
|
|
|
266
285
|
- do not hide failures
|
|
267
286
|
- record the exact failing step, command, or workflow
|
|
268
287
|
- when hitting a roadblock, blocker, or error, report it back to the user clearly and promptly
|
|
269
|
-
- if local code or local docs conflict with the latest Main Sequence docs,
|
|
270
|
-
and
|
|
288
|
+
- if local code or local docs conflict with the latest Main Sequence docs, report the discrepancy
|
|
289
|
+
and the concrete next action
|
|
271
290
|
- when unsure, verify
|
|
272
291
|
- if the active virtual environment is missing libraries that are already declared in
|
|
273
292
|
`requirements.txt`, install those missing libraries into the virtual environment before
|
|
@@ -330,7 +349,7 @@ Rules:
|
|
|
330
349
|
|
|
331
350
|
If something may be a Main Sequence SDK, documentation, or platform issue:
|
|
332
351
|
|
|
333
|
-
-
|
|
352
|
+
- report what failed
|
|
334
353
|
- explain why it may be a Main Sequence issue
|
|
335
354
|
- suggest a concrete improvement
|
|
336
355
|
|
|
@@ -341,10 +360,4 @@ If something may be a Main Sequence SDK, documentation, or platform issue:
|
|
|
341
360
|
- prefer explicit facts over vague statements
|
|
342
361
|
- surface failures early
|
|
343
362
|
- distinguish verified facts from assumptions
|
|
344
|
-
|
|
345
|
-
## Project-State Files Under `.agents/`
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
Do not improvise their meaning in domain skills. Use the project bootstrap skill rules to reconcile
|
|
349
|
-
them after material work.
|
|
350
363
|
<!-- mainsequence-agent-scaffold:end -->
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
2
|
+
name: mainsequence-a2a-sdk-execution
|
|
3
|
+
description: Execute the platform A2A communication flow with the installed Main Sequence CLI or Python SDK after the platform-owned A2A skill has established the language-neutral protocol semantics.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# A2A
|
|
6
|
+
# Main Sequence A2A SDK Execution
|
|
7
7
|
|
|
8
|
-
Use this
|
|
9
|
-
|
|
8
|
+
Use this SDK-owned execution skill after reading the platform-owned
|
|
9
|
+
`a2a_communication` skill. It provides concrete CLI and Python mechanics for
|
|
10
|
+
discovering another agent, creating or resolving a target `AgentSession`, and
|
|
11
|
+
sending a bounded A2A request. It is not the canonical platform protocol
|
|
12
|
+
definition.
|
|
10
13
|
|
|
11
14
|
## Canonical CLI Path
|
|
12
15
|
|
{mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
@@ -44,7 +44,7 @@ This skill discovers and identifies data. It does not publish, redesign, or defi
|
|
|
44
44
|
## Route Adjacent Work
|
|
45
45
|
|
|
46
46
|
- project bootstrap, scaffolding, and routing:
|
|
47
|
-
`.agents/skills/mainsequence/
|
|
47
|
+
`.agents/skills/mainsequence/project_design/SKILL.md`
|
|
48
48
|
- `DataNode` creation or modification:
|
|
49
49
|
`.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
|
|
50
50
|
- `MetaTable` registration or operation work:
|
{mainsequence-4.4.32 → mainsequence-5.0.2}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md
RENAMED
|
@@ -20,8 +20,7 @@ This skill is for diagnosis and assessment. Default behavior is read-only unless
|
|
|
20
20
|
## This Skill Can Do
|
|
21
21
|
|
|
22
22
|
- inspect project state and summarize completion status
|
|
23
|
-
-
|
|
24
|
-
- use repo state, logs, test output, stderr, and task files as evidence
|
|
23
|
+
- use repo state, logs, test output, and stderr as evidence
|
|
25
24
|
- classify failures into:
|
|
26
25
|
- target-project issue
|
|
27
26
|
- environment or credentials issue
|
|
@@ -49,7 +48,7 @@ This skill audits. It does not implement by default.
|
|
|
49
48
|
## Route Adjacent Work
|
|
50
49
|
|
|
51
50
|
- bootstrap, routing, and repo structure:
|
|
52
|
-
`.agents/skills/mainsequence/
|
|
51
|
+
`.agents/skills/mainsequence/project_design/SKILL.md`
|
|
53
52
|
- DataNode implementation issues:
|
|
54
53
|
`.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
|
|
55
54
|
- MetaTable implementation issues:
|
|
@@ -62,18 +61,17 @@ This skill audits. It does not implement by default.
|
|
|
62
61
|
`.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`
|
|
63
62
|
- Streamlit dashboard deployment or release issues:
|
|
64
63
|
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
64
|
+
- environment repair, authentication refresh, SDK updates, managed skill
|
|
65
|
+
refresh, and project sync after the failure is classified:
|
|
66
|
+
`.agents/skills/mainsequence/maintenance/project-maintenance/SKILL.md`
|
|
65
67
|
|
|
66
68
|
Streamlit dashboard design and implementation failures are target-project application code issues unless the evidence points to Main Sequence deployment, resource discovery, image selection, release creation, or platform runtime behavior.
|
|
67
69
|
|
|
68
70
|
## Read First
|
|
69
71
|
|
|
70
72
|
1. `AGENTS.md`
|
|
71
|
-
2. `.agents/skills/mainsequence/
|
|
72
|
-
3.
|
|
73
|
-
4. `.agents/status.md` when it exists
|
|
74
|
-
5. `.agents/record.md` when stable references or project ids matter
|
|
75
|
-
6. `.agents/journal.md` when repeated failures or prior investigations may be relevant
|
|
76
|
-
7. the latest relevant Main Sequence docs for the failing workflow
|
|
73
|
+
2. `.agents/skills/mainsequence/project_design/SKILL.md`
|
|
74
|
+
3. the latest relevant Main Sequence docs for the failing workflow
|
|
77
75
|
|
|
78
76
|
## Inputs This Skill Needs
|
|
79
77
|
|
|
@@ -101,17 +99,15 @@ For every audit, decide:
|
|
|
101
99
|
|
|
102
100
|
### 1. Stay read-only unless edits were explicitly requested
|
|
103
101
|
|
|
104
|
-
Do not modify code
|
|
102
|
+
Do not modify code or docs unless the task explicitly asks for edits.
|
|
105
103
|
|
|
106
|
-
### 2. Start with
|
|
104
|
+
### 2. Start with current evidence
|
|
107
105
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Use them as hypotheses, not as proof.
|
|
106
|
+
Inspect the repository state, available logs, failing commands, stderr, and test output.
|
|
111
107
|
|
|
112
108
|
### 3. Use evidence, not impressions
|
|
113
109
|
|
|
114
|
-
Use repo state, logs, test output,
|
|
110
|
+
Use repo state, logs, test output, and stderr as evidence.
|
|
115
111
|
|
|
116
112
|
When reporting a blocker or failure, include:
|
|
117
113
|
|
|
@@ -127,7 +123,6 @@ Before each major investigation step, emit a short progress update that says wha
|
|
|
127
123
|
|
|
128
124
|
Especially announce when you are:
|
|
129
125
|
|
|
130
|
-
- reading `.agents/tasks.md` or `.agents/status.md`
|
|
131
126
|
- inspecting a failing command, traceback, or stderr excerpt
|
|
132
127
|
- checking the local `mainsequence` package or version
|
|
133
128
|
- inspecting or cloning the public `mainsequence-sdk` repository
|
|
@@ -184,7 +179,6 @@ When reviewing an audit, look for:
|
|
|
184
179
|
|
|
185
180
|
Do not claim audit completion until you have checked:
|
|
186
181
|
|
|
187
|
-
- `.agents/tasks.md` and `.agents/status.md` first when they exist
|
|
188
182
|
- the overall state is one of:
|
|
189
183
|
- `finished`
|
|
190
184
|
- `in_progress`
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-maintenance
|
|
3
|
+
description: Maintain an existing Main Sequence project checkout using the SDK-version-matched CLI. Use for inspecting project state, building or repairing .venv, refreshing local project authentication, updating the SDK, refreshing SDK and platform skills plus AGENTS.md, publishing changes with project sync, or diagnosing a partially completed maintenance workflow.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Main Sequence Project Maintenance
|
|
7
|
+
|
|
8
|
+
Maintain the local project through the installed Main Sequence CLI. Treat the
|
|
9
|
+
CLI as the canonical implementation of SDK-version-specific filesystem, `uv`,
|
|
10
|
+
authentication, scaffold, and Git behavior. Select and sequence commands here;
|
|
11
|
+
do not reproduce their Python implementation or replace them with ad hoc shell
|
|
12
|
+
workflows.
|
|
13
|
+
|
|
14
|
+
## Preserve The Boundary
|
|
15
|
+
|
|
16
|
+
Own:
|
|
17
|
+
|
|
18
|
+
- local project inspection and maintenance sequencing;
|
|
19
|
+
- `.venv`, SDK, managed skill, `AGENTS.md`, and Git-release workflows;
|
|
20
|
+
- precondition checks, explicit approval gates, and partial-failure diagnosis.
|
|
21
|
+
|
|
22
|
+
Do not own:
|
|
23
|
+
|
|
24
|
+
- platform ontology or Project Blueprint design;
|
|
25
|
+
- domain implementation for MetaTables, DataNodes, APIs, jobs, or releases;
|
|
26
|
+
- backend repository reconciliation;
|
|
27
|
+
- MCP authentication or access-token extraction;
|
|
28
|
+
- project-owned skills outside `.agents/skills/mainsequence/`.
|
|
29
|
+
|
|
30
|
+
Route architecture changes to `project_design`, implementation routing to
|
|
31
|
+
`sdk_project_execution`, and failure classification to
|
|
32
|
+
`maintenance/bug_auditor` when diagnosis extends beyond the maintenance
|
|
33
|
+
workflow itself.
|
|
34
|
+
|
|
35
|
+
## Inspect Before Changing State
|
|
36
|
+
|
|
37
|
+
1. Read `AGENTS.md` and the relevant repository skills.
|
|
38
|
+
2. Confirm the repository root and the user's requested maintenance outcome.
|
|
39
|
+
3. Inspect project and Git state:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
mainsequence project current --debug --json
|
|
43
|
+
mainsequence project sdk-status --path . --json
|
|
44
|
+
git status --short
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
4. Separate existing user changes from changes created by the maintenance
|
|
48
|
+
task. Never assume every uncommitted file belongs to the current task.
|
|
49
|
+
5. Read command help when the installed SDK differs from the instructions in
|
|
50
|
+
this skill. The installed CLI is authoritative for its version.
|
|
51
|
+
|
|
52
|
+
If `mainsequence` is unavailable, stop and report that the SDK CLI must be
|
|
53
|
+
installed or provided by the local development integration. Do not use an MCP
|
|
54
|
+
bearer token or an unpinned downloaded CLI as a substitute.
|
|
55
|
+
|
|
56
|
+
## Build Or Repair The Local Environment
|
|
57
|
+
|
|
58
|
+
Build the project environment with:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
mainsequence project build_local_venv --path .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The command reads the project Python requirement, resolves `uv`, creates
|
|
65
|
+
`.venv`, and synchronizes dependencies. Do not manually parse
|
|
66
|
+
`pyproject.toml` or reconstruct those steps.
|
|
67
|
+
|
|
68
|
+
When an existing `.venv` is incompatible, show the detected mismatch and ask
|
|
69
|
+
before replacing it. Only then run:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
mainsequence project build_local_venv --path . --recreate
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Treat `.venv` as generated state, never as source code or durable project
|
|
76
|
+
documentation.
|
|
77
|
+
|
|
78
|
+
## Refresh Project Authentication
|
|
79
|
+
|
|
80
|
+
Refresh only the CLI-managed runtime authentication entries in the project
|
|
81
|
+
`.env`:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
mainsequence project refresh_token --path .
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Require normal Main Sequence CLI login first. Never print, inspect, summarize,
|
|
88
|
+
copy, or return access and refresh token values. Do not attempt to extract the
|
|
89
|
+
calling MCP host's protected bearer token. If authentication is unavailable,
|
|
90
|
+
stop and request login through the normal CLI or development integration.
|
|
91
|
+
|
|
92
|
+
## Update The Project SDK
|
|
93
|
+
|
|
94
|
+
Inspect the current status, preview the update, and then update when requested
|
|
95
|
+
or required by repository instructions:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
mainsequence project sdk-status --path . --json
|
|
99
|
+
mainsequence project update-sdk --path . --dry-run
|
|
100
|
+
mainsequence project update-sdk --path .
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
`update-sdk` updates the lock and local environment. It does not publish the
|
|
104
|
+
working tree. After the SDK changes, refresh the managed agent context and run
|
|
105
|
+
the repository-specific validation required by `AGENTS.md`.
|
|
106
|
+
|
|
107
|
+
Do not automatically commit or push an SDK update unless the user also asked
|
|
108
|
+
to publish the project changes.
|
|
109
|
+
|
|
110
|
+
## Refresh Managed Skills And Instructions
|
|
111
|
+
|
|
112
|
+
Refresh the SDK-owned and platform-owned skills first, then update the managed
|
|
113
|
+
Main Sequence block in `AGENTS.md`:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
mainsequence project update_agent_skills --path .
|
|
117
|
+
mainsequence project update AGENTS.md --path .
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Verify `.agents/skills/mainsequence/PINNED_FROM.txt` after success:
|
|
121
|
+
|
|
122
|
+
- `sdk_version` must match the installed project SDK;
|
|
123
|
+
- platform manifest, ontology, and resource hashes must be present;
|
|
124
|
+
- project-owned skills outside `.agents/skills/mainsequence/` must remain
|
|
125
|
+
untouched.
|
|
126
|
+
|
|
127
|
+
The skill update is staged and atomic. If it fails, report the failing lane and
|
|
128
|
+
preserve the previous valid managed tree. Because this operation can update
|
|
129
|
+
this skill, reload the refreshed `project-maintenance/SKILL.md` before starting
|
|
130
|
+
another maintenance routine.
|
|
131
|
+
|
|
132
|
+
## Publish With Canonical Project Sync
|
|
133
|
+
|
|
134
|
+
Use project sync only when the user intends to commit, tag, and push all
|
|
135
|
+
reviewed project changes.
|
|
136
|
+
|
|
137
|
+
Before execution:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
git status --short
|
|
141
|
+
git diff --stat
|
|
142
|
+
mainsequence project sync --path . -m "<specific commit message>" --dry-run
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Review every pending file because the command stages with `git add -A`. Do not
|
|
146
|
+
continue when unrelated or unexplained changes would be included.
|
|
147
|
+
|
|
148
|
+
After review:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
mainsequence project sync --path . -m "<specific commit message>"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The canonical command always:
|
|
155
|
+
|
|
156
|
+
1. applies a patch version bump;
|
|
157
|
+
2. runs `uv lock`;
|
|
158
|
+
3. runs `uv sync`;
|
|
159
|
+
4. exports locked production requirements;
|
|
160
|
+
5. stages and commits the changes;
|
|
161
|
+
6. creates an annotated `v<version>` tag; and
|
|
162
|
+
7. pushes the branch and tag with `--follow-tags`.
|
|
163
|
+
|
|
164
|
+
Do not offer alternate bump modes, a no-push mode, or a hand-written sequence
|
|
165
|
+
of equivalent commands. Do not call `sync-after-commit` or any backend repair
|
|
166
|
+
endpoint. The GitHub branch-push webhook owns backend repository
|
|
167
|
+
reconciliation.
|
|
168
|
+
|
|
169
|
+
## Diagnose Partial Completion Before Retrying
|
|
170
|
+
|
|
171
|
+
Never rerun an entire mutating workflow blindly.
|
|
172
|
+
|
|
173
|
+
- After an environment failure, inspect `.venv`, the declared Python
|
|
174
|
+
requirement, and the exact failing `uv` output.
|
|
175
|
+
- After an SDK update failure, inspect `pyproject.toml`, `uv.lock`, the active
|
|
176
|
+
environment, and the failed command before retrying.
|
|
177
|
+
- After a skill refresh failure, keep the previous managed tree and identify
|
|
178
|
+
whether the SDK or platform lane failed.
|
|
179
|
+
- After a sync failure, inspect `git status`, `git log -1`, the current project
|
|
180
|
+
version, tags pointing at `HEAD`, the upstream branch, and remote tags before
|
|
181
|
+
deciding which step remains.
|
|
182
|
+
|
|
183
|
+
A blind sync retry may create another patch bump or collide with an existing
|
|
184
|
+
commit or tag.
|
|
185
|
+
|
|
186
|
+
## Validate And Report
|
|
187
|
+
|
|
188
|
+
Run only repository-relevant validation discovered from `AGENTS.md`, project
|
|
189
|
+
documentation, and the changed files. Report:
|
|
190
|
+
|
|
191
|
+
- the maintenance routine performed;
|
|
192
|
+
- the project path and installed SDK version;
|
|
193
|
+
- files or generated state changed;
|
|
194
|
+
- validation run and its result;
|
|
195
|
+
- whether changes remain local or were committed, tagged, and pushed;
|
|
196
|
+
- any remaining authentication, environment, Git, or webhook verification
|
|
197
|
+
gap.
|
|
198
|
+
|
|
199
|
+
Never claim backend reconciliation succeeded solely because the local push
|
|
200
|
+
succeeded. Verify backend state separately when the task requires that claim.
|