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.
Files changed (139) hide show
  1. {mainsequence-8.0.5/mainsequence.egg-info → mainsequence-8.0.7}/PKG-INFO +4 -4
  2. {mainsequence-8.0.5 → mainsequence-8.0.7}/README.md +3 -3
  3. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/AGENTS.md +7 -17
  4. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -4
  5. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -4
  6. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +2 -5
  7. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +8 -42
  8. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +2 -6
  9. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/api.py +7 -16
  10. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/cli.py +5 -106
  11. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/models_helpers.py +31 -39
  12. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/models_user.py +3 -11
  13. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/observability.py +3 -1
  14. {mainsequence-8.0.5 → mainsequence-8.0.7/mainsequence.egg-info}/PKG-INFO +4 -4
  15. {mainsequence-8.0.5 → mainsequence-8.0.7}/pyproject.toml +1 -2
  16. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_cli.py +22 -243
  17. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_documentation_contract.py +31 -0
  18. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_dependency_extras.py +16 -0
  19. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_filter_normalization.py +54 -39
  20. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_models_user_request_bound_auth.py +16 -0
  21. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_observability_client.py +47 -0
  22. {mainsequence-8.0.5 → mainsequence-8.0.7}/LICENSE +0 -0
  23. {mainsequence-8.0.5 → mainsequence-8.0.7}/MANIFEST.in +0 -0
  24. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
  25. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
  26. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
  27. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
  28. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/data_publishing/time_index_table_updates/SKILL.md +0 -0
  29. {mainsequence-8.0.5 → mainsequence-8.0.7}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +0 -0
  30. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/__init__.py +0 -0
  31. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/__main__.py +0 -0
  32. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/bootstrap.py +0 -0
  33. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/__init__.py +0 -0
  34. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/browser_auth.py +0 -0
  35. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/code_repository_status.py +0 -0
  36. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/config.py +0 -0
  37. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/docker_utils.py +0 -0
  38. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/doctor.py +0 -0
  39. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/local_ops.py +0 -0
  40. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/migrations.py +0 -0
  41. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/model_filters.py +0 -0
  42. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/pydantic_cli.py +0 -0
  43. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/sdk_utils.py +0 -0
  44. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/ssh_utils.py +0 -0
  45. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/cli/ui.py +0 -0
  46. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/__init__.py +0 -0
  47. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/agent_runtime_models.py +0 -0
  48. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/base.py +0 -0
  49. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/client.py +0 -0
  50. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/compute_validation.py +0 -0
  51. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
  52. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  53. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
  54. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
  55. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/dtype_codec.py +0 -0
  56. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/exceptions.py +0 -0
  57. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/metatables/__init__.py +0 -0
  58. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/metatables/core.py +0 -0
  59. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/models_foundry.py +0 -0
  60. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/client/utils.py +0 -0
  61. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/code_repository_context.py +0 -0
  62. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/code_repository_skills.py +0 -0
  63. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/defaults.py +0 -0
  64. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/instrumentation/__init__.py +0 -0
  65. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/instrumentation/utils.py +0 -0
  66. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/logconf.py +0 -0
  67. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/__init__.py +0 -0
  68. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/__main__.py +0 -0
  69. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
  70. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
  71. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/future_registry.py +0 -0
  72. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/hashing.py +0 -0
  73. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/__init__.py +0 -0
  74. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/alembic.py +0 -0
  75. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/env.py +0 -0
  76. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/provider.py +0 -0
  77. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/registry.py +0 -0
  78. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
  79. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
  80. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
  81. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
  82. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
  83. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/schema_names.py +0 -0
  84. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
  85. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_refs.py +0 -0
  86. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/__init__.py +0 -0
  87. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/configuration.py +0 -0
  88. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/dependencies.py +0 -0
  89. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/managers.py +0 -0
  90. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/namespacing.py +0 -0
  91. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/runner.py +0 -0
  92. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/updaters.py +0 -0
  93. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/meta_tables/time_index_table_updates/utils.py +0 -0
  94. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/repository_identity_security.py +0 -0
  95. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/runtime_flags.py +0 -0
  96. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence/scaffold_skills.py +0 -0
  97. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/SOURCES.txt +0 -0
  98. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/dependency_links.txt +0 -0
  99. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/entry_points.txt +0 -0
  100. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/requires.txt +0 -0
  101. {mainsequence-8.0.5 → mainsequence-8.0.7}/mainsequence.egg-info/top_level.txt +0 -0
  102. {mainsequence-8.0.5 → mainsequence-8.0.7}/setup.cfg +0 -0
  103. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/fixtures/time_index_table_update_hash_v2_golden.json +0 -0
  104. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_auth_precedence.py +0 -0
  105. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_canonical_api_route_contract.py +0 -0
  106. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_cli_browser_auth.py +0 -0
  107. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_cli_migrations.py +0 -0
  108. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_client.py +0 -0
  109. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_batch_jobs_from_file.py +0 -0
  110. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_branch_contract.py +0 -0
  111. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_runtime_context.py +0 -0
  112. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_code_repository_skills.py +0 -0
  113. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_duckdb_interface_dimensions.py +0 -0
  114. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_environment_resource_context.py +0 -0
  115. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_environment_response_contracts.py +0 -0
  116. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_instrumentation.py +0 -0
  117. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_local_ops.py +0 -0
  118. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_logconf.py +0 -0
  119. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_meta_table_migrations.py +0 -0
  120. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_meta_tables_client_models.py +0 -0
  121. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
  122. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_notification_uid_contract.py +0 -0
  123. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_pod_project_resolution.py +0 -0
  124. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_scaffold_skills.py +0 -0
  125. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_scheduler_client_model.py +0 -0
  126. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_schema_names.py +0 -0
  127. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_secret_client_model.py +0 -0
  128. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_source_table_configuration.py +0 -0
  129. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_sqlite_interface_dimensions.py +0 -0
  130. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_ssh_utils.py +0 -0
  131. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_access_dimension_audit.py +0 -0
  132. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_dimension_queries.py +0 -0
  133. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_configuration.py +0 -0
  134. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_configuration_client.py +0 -0
  135. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_flow.py +0 -0
  136. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_time_index_table_update_hard_cut.py +0 -0
  137. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_update_runner_uid_runtime.py +0 -0
  138. {mainsequence-8.0.5 → mainsequence-8.0.7}/tests/test_update_statistics.py +0 -0
  139. {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.5
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. rapidly deploy RBAC-enabled dashboards on the platform
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 dashboards or downstream consumers
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. rapidly deploy RBAC-enabled dashboards on the platform
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 dashboards or downstream consumers
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
- - if they want a Streamlit app, treat app design and implementation as repository-owned code and
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 whether a visualization should be a repository-owned Streamlit app or a reusable Command
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, dashboards,
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, dashboard, release, or document should exist at the end
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
- - dashboard or release success:
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
- - dashboard or agent resources/releases
290
+ - application or agent resources/releases
301
291
  - data assets
302
292
  - related platform objects used by the CodeRepository
303
293
 
@@ -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`
@@ -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
- - Streamlit dashboard design or implementation
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
- - Streamlit dashboard deployment:
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, Streamlit deployment, and operational Artifacts. It does not own TimeIndexTableUpdater behavior, MetaTable schemas, API contracts, Streamlit design, or RBAC policy.
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
- - Streamlit dashboard implementation details
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 Streamlit dashboard deployment, do the selected app resource, README resource, and code repository image all refer to the intended pushed commit?
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 dashboards, APIs, or agents:
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 Streamlit dashboard deployment is a release workflow
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 the current adjacent `README.md` when the release kind requires one, such as Streamlit dashboards
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
- - dashboard README requirements are satisfied for the current commit
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 dashboard README is not stable
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
- - Streamlit dashboard design or implementation
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, releases, and Streamlit dashboard deployment:
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.create_dashboard()` or
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
- create_method_name = {
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(f"CodeRepositoryResource does not implement {create_method_name}().")
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