mainsequence 8.0.5__tar.gz → 8.0.7__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-8.0.5/mainsequence.egg-info → mainsequence-8.0.7}/PKG-INFO +4 -4
- {mainsequence-8.0.5 → mainsequence-8.0.7}/README.md +3 -3
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/AGENTS.md +7 -17
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -4
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -4
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +2 -5
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +8 -42
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +2 -6
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/api.py +7 -16
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/cli.py +5 -106
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/models_helpers.py +31 -39
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/models_user.py +3 -11
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/observability.py +3 -1
- {mainsequence-8.0.5 → mainsequence-8.0.7/mainsequence.egg-info}/PKG-INFO +4 -4
- {mainsequence-8.0.5 → mainsequence-8.0.7}/pyproject.toml +1 -2
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_cli.py +22 -243
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_documentation_contract.py +31 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_dependency_extras.py +16 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_filter_normalization.py +54 -39
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_models_user_request_bound_auth.py +16 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_observability_client.py +47 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/LICENSE +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/MANIFEST.in +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_publishing/time_index_table_updates/SKILL.md +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/__main__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/bootstrap.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/code_repository_status.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/config.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/ui.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/base.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/client.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/metatables/core.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/models_foundry.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/code_repository_context.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/code_repository_skills.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/defaults.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/logconf.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_refs.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/__init__.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/configuration.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/dependencies.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/managers.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/namespacing.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/runner.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/updaters.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/repository_identity_security.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/SOURCES.txt +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/setup.cfg +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/fixtures/time_index_table_update_hash_v2_golden.json +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_auth_precedence.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_canonical_api_route_contract.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_cli_migrations.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_client.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_batch_jobs_from_file.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_branch_contract.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_runtime_context.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_skills.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_environment_resource_context.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_environment_response_contracts.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_instrumentation.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_local_ops.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_logconf.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_notification_uid_contract.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_scheduler_client_model.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_schema_names.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_secret_client_model.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_ssh_utils.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_access_dimension_audit.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_dimension_queries.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_configuration.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_configuration_client.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_flow.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_hard_cut.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_update_statistics.py +0 -0
- {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_update_uid_guards.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence
|
|
3
|
-
Version: 8.0.
|
|
3
|
+
Version: 8.0.7
|
|
4
4
|
Summary: Main Sequence SDK
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: LicenseRef-MainSequence-Proprietary
|
|
@@ -56,7 +56,7 @@ The Main Sequence Python SDK is the client and development toolkit for the Main
|
|
|
56
56
|
The Main Sequence platform allows you to:
|
|
57
57
|
|
|
58
58
|
1. rapidly build and deploy data products with normalized `MetaTable` contracts and `TimeIndexTableUpdater` producer workflows
|
|
59
|
-
2.
|
|
59
|
+
2. deploy FastAPI services and supported application surfaces on the platform
|
|
60
60
|
3. rapidly deploy agents using the Google Agent SDK
|
|
61
61
|
|
|
62
62
|
The key idea is that you can focus on development and deployment, while the platform handles the DevOps layer.
|
|
@@ -103,8 +103,8 @@ Recommended entry points:
|
|
|
103
103
|
- [MetaTables](docs/knowledge/meta_tables/index.md)
|
|
104
104
|
- [Constants and Secrets](docs/knowledge/infrastructure/constants_and_secrets.md)
|
|
105
105
|
- [Scheduling Jobs](docs/knowledge/infrastructure/scheduling_jobs.md)
|
|
106
|
-
- [Streamlit Dashboards](docs/knowledge/dashboards/streamlit/index.md)
|
|
107
106
|
- Migrations:
|
|
107
|
+
- [Streamlit dashboard support removal](docs/migrations/streamlit-dashboard-removal.md)
|
|
108
108
|
- [7.x to 8.0: CodeRepository ontology hard cut](docs/migrations/v8-code-repository-ontology.md)
|
|
109
109
|
- [6.x to 7.0: Time-Index Table Updater hard cut](docs/migrations/v7-time-index-table-updater-hard-cut.md)
|
|
110
110
|
- CLI:
|
|
@@ -157,7 +157,7 @@ From there, the normal learning path is:
|
|
|
157
157
|
3. understand sharing and RBAC for published tables
|
|
158
158
|
4. add an API or another application surface
|
|
159
159
|
5. schedule jobs
|
|
160
|
-
6. build
|
|
160
|
+
6. build supported application surfaces or downstream consumers
|
|
161
161
|
7. package the CodeRepository as an agent-facing surface when it is ready
|
|
162
162
|
|
|
163
163
|
## Installation for development
|
|
@@ -14,7 +14,7 @@ The Main Sequence Python SDK is the client and development toolkit for the Main
|
|
|
14
14
|
The Main Sequence platform allows you to:
|
|
15
15
|
|
|
16
16
|
1. rapidly build and deploy data products with normalized `MetaTable` contracts and `TimeIndexTableUpdater` producer workflows
|
|
17
|
-
2.
|
|
17
|
+
2. deploy FastAPI services and supported application surfaces on the platform
|
|
18
18
|
3. rapidly deploy agents using the Google Agent SDK
|
|
19
19
|
|
|
20
20
|
The key idea is that you can focus on development and deployment, while the platform handles the DevOps layer.
|
|
@@ -61,8 +61,8 @@ Recommended entry points:
|
|
|
61
61
|
- [MetaTables](docs/knowledge/meta_tables/index.md)
|
|
62
62
|
- [Constants and Secrets](docs/knowledge/infrastructure/constants_and_secrets.md)
|
|
63
63
|
- [Scheduling Jobs](docs/knowledge/infrastructure/scheduling_jobs.md)
|
|
64
|
-
- [Streamlit Dashboards](docs/knowledge/dashboards/streamlit/index.md)
|
|
65
64
|
- Migrations:
|
|
65
|
+
- [Streamlit dashboard support removal](docs/migrations/streamlit-dashboard-removal.md)
|
|
66
66
|
- [7.x to 8.0: CodeRepository ontology hard cut](docs/migrations/v8-code-repository-ontology.md)
|
|
67
67
|
- [6.x to 7.0: Time-Index Table Updater hard cut](docs/migrations/v7-time-index-table-updater-hard-cut.md)
|
|
68
68
|
- CLI:
|
|
@@ -115,7 +115,7 @@ From there, the normal learning path is:
|
|
|
115
115
|
3. understand sharing and RBAC for published tables
|
|
116
116
|
4. add an API or another application surface
|
|
117
117
|
5. schedule jobs
|
|
118
|
-
6. build
|
|
118
|
+
6. build supported application surfaces or downstream consumers
|
|
119
119
|
7. package the CodeRepository as an agent-facing surface when it is ready
|
|
120
120
|
|
|
121
121
|
## Installation for development
|
|
@@ -65,9 +65,8 @@ Core responsibilities:
|
|
|
65
65
|
- for data publishing and data pipelines, use `TimeIndexTableUpdater`s and `MetaTable`s
|
|
66
66
|
- for APIs serving the Command Center frontend, use the contract-authoritative
|
|
67
67
|
FastAPI release workflow
|
|
68
|
-
- for visualization, confirm the delivery target with the user
|
|
69
|
-
|
|
70
|
-
use Main Sequence skills only for platform deployment and release verification
|
|
68
|
+
- for visualization, confirm the supported delivery target with the user, such as a Command
|
|
69
|
+
Center frontend backed by FastAPI or a static site
|
|
71
70
|
- for scheduled execution, releases, and backend operations, use jobs, images, resources, and
|
|
72
71
|
other platform objects through the proper platform skills
|
|
73
72
|
- break work into independent executions according to the skill each part requires
|
|
@@ -85,8 +84,7 @@ Typical outcomes include:
|
|
|
85
84
|
- build and release a `FastAPI` API whose Command Center contract-bearing
|
|
86
85
|
responses conform to a recorded revision of the canonical Command Center SDK
|
|
87
86
|
GitHub contracts
|
|
88
|
-
- confirm
|
|
89
|
-
Center surface before building or deploying it
|
|
87
|
+
- confirm which supported application surface should deliver a visualization before building it
|
|
90
88
|
- build reusable business logic in `src/` and keep thin integration layers in APIs, jobs, and
|
|
91
89
|
dashboards
|
|
92
90
|
- assess blockers and suspected SDK or platform issues from concrete repository and runtime evidence
|
|
@@ -107,7 +105,6 @@ Working rules for this role:
|
|
|
107
105
|
User-resolution rule for agents:
|
|
108
106
|
|
|
109
107
|
- use `User.get_logged_user()` only when code is running with request-bound identity context:
|
|
110
|
-
- Streamlit
|
|
111
108
|
- code that explicitly binds `_CURRENT_AUTH_HEADERS`
|
|
112
109
|
- treat its result as `RequestUserIdentity`: the human caller's canonical `uid` and optional
|
|
113
110
|
`username`, never a numeric id or a full account profile
|
|
@@ -140,7 +137,7 @@ Delegation rules:
|
|
|
140
137
|
|
|
141
138
|
## Main Sequence Source-Of-Truth Rule
|
|
142
139
|
|
|
143
|
-
For any task involving Main Sequence code, CLI usage, TimeIndexTableUpdaters, orchestration, jobs,
|
|
140
|
+
For any task involving Main Sequence code, CLI usage, TimeIndexTableUpdaters, orchestration, jobs, application surfaces,
|
|
144
141
|
agents, releases, artifacts, RBAC, or platform
|
|
145
142
|
validation, always consult the latest relevant Main Sequence documentation before acting.
|
|
146
143
|
|
|
@@ -158,7 +155,7 @@ Before implementation, debugging, or validation, make the success condition expl
|
|
|
158
155
|
|
|
159
156
|
At minimum, define:
|
|
160
157
|
|
|
161
|
-
- what artifact, behavior, dataset, job,
|
|
158
|
+
- what artifact, behavior, dataset, job, application surface, release, or document should exist at the end
|
|
162
159
|
- what checks will prove it worked
|
|
163
160
|
- what platform objects must be verified
|
|
164
161
|
- what is in scope and what is intentionally not being claimed
|
|
@@ -172,7 +169,7 @@ Examples:
|
|
|
172
169
|
- job or schedule success:
|
|
173
170
|
the job exists with the intended configuration, the run executes successfully, and logs confirm
|
|
174
171
|
expected behavior
|
|
175
|
-
-
|
|
172
|
+
- application-surface or release success:
|
|
176
173
|
the resource is present, the release exists for the intended image or commit, and the deployed
|
|
177
174
|
behavior is verified
|
|
178
175
|
- documentation success:
|
|
@@ -210,13 +207,6 @@ Typical routing:
|
|
|
210
207
|
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
211
208
|
- RBAC, sharing, constants, secrets, and access verification:
|
|
212
209
|
`.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`
|
|
213
|
-
- Streamlit dashboard deployment and release verification:
|
|
214
|
-
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
215
|
-
|
|
216
|
-
Streamlit dashboard design and implementation are app-owned repository work, not a separate Main
|
|
217
|
-
Sequence scaffold skill. Route only deployment of an already-authored Streamlit dashboard to
|
|
218
|
-
orchestration and releases.
|
|
219
|
-
|
|
220
210
|
## Mandatory Startup Sequence
|
|
221
211
|
|
|
222
212
|
For any non-trivial Main Sequence task:
|
|
@@ -297,7 +287,7 @@ At minimum, verify relevant:
|
|
|
297
287
|
- jobs
|
|
298
288
|
- job runs and logs
|
|
299
289
|
- code repository images
|
|
300
|
-
-
|
|
290
|
+
- application or agent resources/releases
|
|
301
291
|
- data assets
|
|
302
292
|
- related platform objects used by the CodeRepository
|
|
303
293
|
|
{mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
@@ -51,13 +51,9 @@ This skill discovers and identifies data. It does not publish, redesign, or defi
|
|
|
51
51
|
`.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
|
|
52
52
|
- FastAPI providers serving the Command Center frontend:
|
|
53
53
|
`.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
|
|
54
|
-
- Streamlit dashboard deployment:
|
|
55
|
-
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
56
54
|
- blocker and failure analysis:
|
|
57
55
|
`.agents/skills/mainsequence/maintenance/bug_auditor/SKILL.md`
|
|
58
56
|
|
|
59
|
-
Streamlit dashboard implementation is app-owned repository code, not a Main Sequence scaffold skill.
|
|
60
|
-
|
|
61
57
|
## Read First
|
|
62
58
|
|
|
63
59
|
1. `AGENTS.md`
|
{mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md
RENAMED
|
@@ -59,14 +59,10 @@ This skill audits. It does not implement by default.
|
|
|
59
59
|
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
60
60
|
- RBAC and access issues:
|
|
61
61
|
`.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`
|
|
62
|
-
- Streamlit dashboard deployment or release issues:
|
|
63
|
-
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
64
62
|
- environment repair, authentication refresh, SDK updates, managed skill
|
|
65
63
|
refresh, and CodeRepository sync after the failure is classified:
|
|
66
64
|
`.agents/skills/mainsequence/maintenance/code_repository_maintenance/SKILL.md`
|
|
67
65
|
|
|
68
|
-
Streamlit dashboard design and implementation failures are target-repository application code issues unless the evidence points to Main Sequence deployment, resource discovery, image selection, release creation, or platform runtime behavior.
|
|
69
|
-
|
|
70
66
|
## Read First
|
|
71
67
|
|
|
72
68
|
1. `AGENTS.md`
|
|
@@ -45,7 +45,7 @@ This skill must not claim ownership of:
|
|
|
45
45
|
- TimeIndexTableUpdater producer implementation
|
|
46
46
|
- MetaTable schema design
|
|
47
47
|
- FastAPI route design
|
|
48
|
-
-
|
|
48
|
+
- application UI design or implementation
|
|
49
49
|
- workspace document structure
|
|
50
50
|
|
|
51
51
|
## Route Adjacent Work
|
|
@@ -58,10 +58,7 @@ This skill must not claim ownership of:
|
|
|
58
58
|
`.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
|
|
59
59
|
- Command Center-serving FastAPI providers:
|
|
60
60
|
`.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
|
|
61
|
-
|
|
62
|
-
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
63
|
-
|
|
64
|
-
Streamlit dashboard implementation is app-owned repository code. This skill only reasons about access to deployed resources such as `ResourceRelease`.
|
|
61
|
+
This skill only reasons about access to deployed resources such as `ResourceRelease`.
|
|
65
62
|
|
|
66
63
|
## Read First
|
|
67
64
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mainsequence-orchestration-and-releases
|
|
3
|
-
description: Use this skill for Main Sequence jobs, schedules, backend-managed code-repository workflow files, code repository images, run inspection, resources, releases,
|
|
3
|
+
description: Use this skill for Main Sequence jobs, schedules, backend-managed code-repository workflow files, code repository images, run inspection, resources, releases, and operational Artifacts. It does not own TimeIndexTableUpdater behavior, MetaTable schemas, API contracts, application UI design, or RBAC policy.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Main Sequence Orchestration And Releases
|
|
@@ -16,7 +16,6 @@ This skill is for:
|
|
|
16
16
|
- images
|
|
17
17
|
- code repository resources
|
|
18
18
|
- releases
|
|
19
|
-
- Streamlit dashboard deployment as `streamlit_dashboard` releases
|
|
20
19
|
- operational logs and run inspection
|
|
21
20
|
- Artifacts as job inputs or outputs
|
|
22
21
|
|
|
@@ -33,7 +32,6 @@ This skill is for:
|
|
|
33
32
|
- reason about code repository resources and resource releases
|
|
34
33
|
- decide whether a `ResourceRelease` should opt into `automatic_deployment`
|
|
35
34
|
- inspect automatic deployment run state for release rotations
|
|
36
|
-
- create or review Streamlit dashboard deployment through code repository resources and `streamlit_dashboard` releases
|
|
37
35
|
- review Artifact-based workflows in operational pipelines
|
|
38
36
|
|
|
39
37
|
## This Skill Must Not Claim
|
|
@@ -44,8 +42,7 @@ This skill must not claim ownership of:
|
|
|
44
42
|
- MetaTable schema and row semantics
|
|
45
43
|
- Command Center FastAPI wire contracts
|
|
46
44
|
- RBAC or sharing policy
|
|
47
|
-
-
|
|
48
|
-
- Streamlit layout, styling, sidebar/session behavior, page structure, or UI helper design
|
|
45
|
+
- application UI implementation details
|
|
49
46
|
|
|
50
47
|
## Route Adjacent Work
|
|
51
48
|
|
|
@@ -64,13 +61,8 @@ This skill must not claim ownership of:
|
|
|
64
61
|
2. `docs/knowledge/infrastructure/scheduling_jobs.md`
|
|
65
62
|
3. `docs/knowledge/infrastructure/artifacts.md`
|
|
66
63
|
4. `docs/knowledge/infrastructure/owner_observability.md` when inspecting logs or resource usage
|
|
67
|
-
5. `docs/tutorial/dashboards/streamlit/streamlit_integration_2.md` when deploying or verifying a Streamlit dashboard
|
|
68
|
-
6. `docs/knowledge/dashboards/streamlit/index.md` when deployment metadata or SDK/dashboard boundary questions matter
|
|
69
|
-
|
|
70
64
|
If the task touches deployed FastAPI APIs, also read the relevant API skill/docs before changing the operational workflow.
|
|
71
65
|
|
|
72
|
-
If the task asks to design, build, style, or restructure a Streamlit app, do not treat that as Main Sequence platform skill work. Streamlit implementation is app-owned repository code. This skill only owns deployment and verification of an already-authored dashboard.
|
|
73
|
-
|
|
74
66
|
## Inputs This Skill Needs
|
|
75
67
|
|
|
76
68
|
Before changing orchestration or release behavior, collect or infer:
|
|
@@ -78,7 +70,6 @@ Before changing orchestration or release behavior, collect or infer:
|
|
|
78
70
|
- the execution target:
|
|
79
71
|
- `execution_path`
|
|
80
72
|
- app entrypoint
|
|
81
|
-
- Streamlit `app.py` resource path when deploying a dashboard
|
|
82
73
|
- whether the job is:
|
|
83
74
|
- manual
|
|
84
75
|
- interval
|
|
@@ -90,13 +81,11 @@ Before changing orchestration or release behavior, collect or infer:
|
|
|
90
81
|
- whether the workflow is:
|
|
91
82
|
- direct CLI/client job creation
|
|
92
83
|
- backend-managed code-repository workflow declarations
|
|
93
|
-
- Streamlit dashboard release creation
|
|
94
84
|
- whether a `ResourceRelease` should be manually pinned or opted into repository-sync automatic deployment
|
|
95
85
|
- whether Artifact inputs or outputs are part of the run
|
|
96
86
|
- who owns the exact initial image: the caller for manual pinning or the
|
|
97
87
|
backend for automatic deployment
|
|
98
88
|
- whether future qualifying immutable repository events may promote a standalone Job
|
|
99
|
-
- for Streamlit dashboard deployment, the `README.md` resource next to `app.py`
|
|
100
89
|
|
|
101
90
|
If the execution target or image strategy is unclear, stop before scheduling anything.
|
|
102
91
|
|
|
@@ -110,8 +99,7 @@ For every non-trivial orchestration task, decide:
|
|
|
110
99
|
automatic deployment make the backend derive it from the synchronized commit?
|
|
111
100
|
4. Does the workflow depend on Artifacts?
|
|
112
101
|
5. Is the task actually a release/resource problem instead of only a job problem?
|
|
113
|
-
6. For
|
|
114
|
-
7. For a `ResourceRelease`, should repository sync be allowed to rotate the release automatically through `automatic_deployment`?
|
|
102
|
+
6. For a `ResourceRelease`, should repository sync be allowed to rotate the release automatically through `automatic_deployment`?
|
|
115
103
|
|
|
116
104
|
## Build Rules
|
|
117
105
|
|
|
@@ -235,32 +223,14 @@ Do not force a file workflow into a table workflow too early.
|
|
|
235
223
|
|
|
236
224
|
### 6. Resources and releases are part of deployment, not just code
|
|
237
225
|
|
|
238
|
-
For deployed
|
|
226
|
+
For deployed APIs, agents, or other supported resources:
|
|
239
227
|
|
|
240
228
|
- the local file is not enough
|
|
241
229
|
- the code repository resource must exist
|
|
242
230
|
- the release must exist
|
|
243
231
|
- the release must point at the intended image or resource version
|
|
244
232
|
|
|
245
|
-
### 6.1
|
|
246
|
-
|
|
247
|
-
Main Sequence owns the deployment boundary for Streamlit dashboards, not the dashboard UI design.
|
|
248
|
-
|
|
249
|
-
For Streamlit dashboard deployment:
|
|
250
|
-
|
|
251
|
-
- the dashboard `app.py` must already exist in the repository
|
|
252
|
-
- the dashboard `README.md` must exist next to `app.py`
|
|
253
|
-
- both files must be committed and pushed
|
|
254
|
-
- the code repository image must be built from the intended pushed commit
|
|
255
|
-
- `mainsequence code-repository resources list` must discover the dashboard app and README resources
|
|
256
|
-
- create the release with `mainsequence code-repository resources create_dashboard`
|
|
257
|
-
- the dashboard release kind is `streamlit_dashboard`
|
|
258
|
-
|
|
259
|
-
Do not prescribe Streamlit page layout, styling, sidebar/session patterns, or helper/component architecture. Those are application-owned implementation details.
|
|
260
|
-
|
|
261
|
-
Validate the deployment path, not the Streamlit design.
|
|
262
|
-
|
|
263
|
-
### 6.2 Automatic ResourceRelease deployment
|
|
233
|
+
### 6.1 Automatic ResourceRelease deployment
|
|
264
234
|
|
|
265
235
|
`automatic_deployment` is the automated deployment opt-in flag on a `ResourceRelease`. It means repository synchronization can rotate an existing release to the latest synced CodeRepository commit for the same resource path.
|
|
266
236
|
|
|
@@ -268,7 +238,7 @@ When `automatic_deployment=True`, repository-sync events may create a unified `D
|
|
|
268
238
|
|
|
269
239
|
- reads the CodeRepository's current synced commit
|
|
270
240
|
- resolves the current code repository resource at the release's existing resource path
|
|
271
|
-
- resolves
|
|
241
|
+
- resolves supporting resources required by the release kind
|
|
272
242
|
- creates or resolves the code repository image for that commit
|
|
273
243
|
- redeploys the existing release to the current resource, README, and code repository image
|
|
274
244
|
- records state, phase, outcome, revision context, artifact context, steps, logs, result, and errors on the deployment run
|
|
@@ -280,7 +250,7 @@ Enable `automatic_deployment` only when:
|
|
|
280
250
|
- the release should track the CodeRepository's synced version
|
|
281
251
|
- the resource path is stable across commits
|
|
282
252
|
- the current synced branch/version is an acceptable deployment source for that release
|
|
283
|
-
-
|
|
253
|
+
- required supporting resources are available for the current commit
|
|
284
254
|
- the team accepts CI/CD-style rotation for this release
|
|
285
255
|
|
|
286
256
|
Keep `automatic_deployment` disabled when:
|
|
@@ -293,13 +263,11 @@ Keep `automatic_deployment` disabled when:
|
|
|
293
263
|
|
|
294
264
|
Create opted-in releases with the CLI flags that exist:
|
|
295
265
|
|
|
296
|
-
- `mainsequence code-repository resources create_dashboard --automatic-deployment`
|
|
297
266
|
- `mainsequence code-repository resources create_fastapi --automatic-deployment`
|
|
298
267
|
- use `--no-automatic-deployment` when the decision is explicitly to keep the release pinned/manual
|
|
299
268
|
|
|
300
269
|
The SDK surface also accepts:
|
|
301
270
|
|
|
302
|
-
- `CodeRepositoryResource.create_dashboard(..., automatic_deployment=True)`
|
|
303
271
|
- `CodeRepositoryResource.create_fastapi(..., automatic_deployment=True)`
|
|
304
272
|
- `ResourceRelease.create(..., automatic_deployment=True)`
|
|
305
273
|
- `ResourceRelease.deploy_current_version()` for an SDK-triggered manual deployment run; it returns `DeploymentRun`
|
|
@@ -336,8 +304,7 @@ When reviewing an orchestration task, look for:
|
|
|
336
304
|
- workflows depending on laptop-specific file paths instead of Artifacts
|
|
337
305
|
- `automatic_deployment` enabled without an explicit decision about repository-sync CI/CD rotation
|
|
338
306
|
- assumptions that automatic deployment will deploy local unpushed changes
|
|
339
|
-
- automatic release rotation where the resource path or
|
|
340
|
-
- Streamlit dashboard deployment work drifting into app design or UI implementation ownership
|
|
307
|
+
- automatic release rotation where the resource path or required supporting resources are not stable
|
|
341
308
|
- tasks that are really resource/release problems rather than simple job problems
|
|
342
309
|
|
|
343
310
|
## Validation Checklist
|
|
@@ -355,7 +322,6 @@ Do not claim success until you have checked:
|
|
|
355
322
|
- the job exists after direct creation or repository workflow application
|
|
356
323
|
- runs and logs were inspected when execution success matters
|
|
357
324
|
- resources and releases were verified when deployment success matters
|
|
358
|
-
- Streamlit dashboard releases use the intended app resource, README resource, image, and `streamlit_dashboard` release kind
|
|
359
325
|
- `automatic_deployment` is intentionally enabled or disabled on each release
|
|
360
326
|
- automatic deployment runs were inspected when repository-sync rotation matters
|
|
361
327
|
- automatic deployment results match the intended commit, resource, README, image, and terminal status
|
|
@@ -42,7 +42,7 @@ This skill must not claim ownership of:
|
|
|
42
42
|
- jobs, schedules, images, resources, or releases
|
|
43
43
|
- RBAC or sharing semantics
|
|
44
44
|
- domain assets, translation tables, or construction logic
|
|
45
|
-
-
|
|
45
|
+
- unsupported application deployment targets
|
|
46
46
|
- pricing-runtime semantics
|
|
47
47
|
|
|
48
48
|
Do not let this skill become a domain manual.
|
|
@@ -62,13 +62,11 @@ Do not let this skill become a domain manual.
|
|
|
62
62
|
- local environment repair, CodeRepository authentication refresh, SDK updates,
|
|
63
63
|
managed skill refresh, and canonical CodeRepository sync:
|
|
64
64
|
`.agents/skills/mainsequence/maintenance/code_repository_maintenance/SKILL.md`
|
|
65
|
-
- jobs, schedules, artifacts, images, resources,
|
|
65
|
+
- jobs, schedules, artifacts, images, resources, and releases:
|
|
66
66
|
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
67
67
|
- RBAC and sharing:
|
|
68
68
|
`.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`
|
|
69
69
|
|
|
70
|
-
Streamlit dashboard design and implementation are app-owned repository work, not a separate Main Sequence scaffold skill. Route only platform deployment of an already-authored Streamlit dashboard to orchestration and releases.
|
|
71
|
-
|
|
72
70
|
## Read First
|
|
73
71
|
|
|
74
72
|
1. `AGENTS.md`
|
|
@@ -149,8 +147,6 @@ Also maintain these standard repository areas when relevant:
|
|
|
149
147
|
- `tests/`
|
|
150
148
|
- `docs/`
|
|
151
149
|
- `api/`
|
|
152
|
-
- `dashboards/`
|
|
153
|
-
- `dashboards/components/`
|
|
154
150
|
|
|
155
151
|
If the CodeRepository has recurring scheduled jobs or repository-managed releases,
|
|
156
152
|
keep backend-managed declarations as direct `.yaml` or `.yml` children of
|
|
@@ -2861,10 +2861,13 @@ def create_code_repository_resource_release(
|
|
|
2861
2861
|
Create a resource release via SDK client model.
|
|
2862
2862
|
|
|
2863
2863
|
Single source of truth:
|
|
2864
|
-
- delegates to `CodeRepositoryResource.
|
|
2865
|
-
`CodeRepositoryResource.create_fastapi()`
|
|
2864
|
+
- delegates to `CodeRepositoryResource.create_fastapi()`
|
|
2866
2865
|
- which in turn use `ResourceRelease.create()`
|
|
2867
2866
|
"""
|
|
2867
|
+
normalized_release_kind = str(release_kind).strip()
|
|
2868
|
+
if normalized_release_kind != "fastapi":
|
|
2869
|
+
raise ApiError("release_kind must be 'fastapi'.")
|
|
2870
|
+
|
|
2868
2871
|
tokens = get_tokens()
|
|
2869
2872
|
access = (tokens.get("access") or "").strip()
|
|
2870
2873
|
refresh = (tokens.get("refresh") or "").strip()
|
|
@@ -2924,16 +2927,9 @@ def create_code_repository_resource_release(
|
|
|
2924
2927
|
"timeout": timeout,
|
|
2925
2928
|
}
|
|
2926
2929
|
|
|
2927
|
-
|
|
2928
|
-
"streamlit_dashboard": "create_dashboard",
|
|
2929
|
-
"fastapi": "create_fastapi",
|
|
2930
|
-
}.get(str(release_kind).strip())
|
|
2931
|
-
if not create_method_name:
|
|
2932
|
-
raise ApiError("release_kind must be one of: 'streamlit_dashboard', 'fastapi'.")
|
|
2933
|
-
|
|
2934
|
-
create_method = getattr(resource, create_method_name, None)
|
|
2930
|
+
create_method = getattr(resource, "create_fastapi", None)
|
|
2935
2931
|
if not callable(create_method):
|
|
2936
|
-
raise ApiError(
|
|
2932
|
+
raise ApiError("CodeRepositoryResource does not implement create_fastapi().")
|
|
2937
2933
|
created = create_method(**create_kwargs)
|
|
2938
2934
|
|
|
2939
2935
|
if isinstance(created, dict):
|
|
@@ -4532,7 +4528,6 @@ def create_code_repository_job(
|
|
|
4532
4528
|
name: str,
|
|
4533
4529
|
code_repository_branch_uid: str,
|
|
4534
4530
|
execution_path: str | None = None,
|
|
4535
|
-
app_name: str | None = None,
|
|
4536
4531
|
task_schedule: dict[str, Any] | str | None = None,
|
|
4537
4532
|
cpu_request: str | int | float | None = None,
|
|
4538
4533
|
memory_request: str | int | float | None = None,
|
|
@@ -4601,7 +4596,6 @@ def create_code_repository_job(
|
|
|
4601
4596
|
name=name,
|
|
4602
4597
|
code_repository_branch_uid=resolved_branch_uid,
|
|
4603
4598
|
execution_path=execution_path,
|
|
4604
|
-
app_name=app_name,
|
|
4605
4599
|
task_schedule=task_schedule,
|
|
4606
4600
|
cpu_request=cpu_request,
|
|
4607
4601
|
memory_request=memory_request,
|
|
@@ -4742,11 +4736,8 @@ def run_code_repository_job(
|
|
|
4742
4736
|
payload = job.run_job(timeout=timeout, command_args=command_args)
|
|
4743
4737
|
effective_tokens: list[str] = []
|
|
4744
4738
|
execution_path = str(getattr(job, "execution_path", "") or "").strip()
|
|
4745
|
-
app_name = str(getattr(job, "app_name", "") or "").strip()
|
|
4746
4739
|
if execution_path:
|
|
4747
4740
|
effective_tokens.append(execution_path)
|
|
4748
|
-
elif app_name:
|
|
4749
|
-
effective_tokens.append(f"app:{app_name}")
|
|
4750
4741
|
if command_args:
|
|
4751
4742
|
effective_tokens.extend(str(arg) for arg in command_args)
|
|
4752
4743
|
effective_run = shlex.join(effective_tokens) if effective_tokens else None
|