mainsequence 4.4.5__tar.gz → 4.4.10__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.5/mainsequence.egg-info → mainsequence-4.4.10}/PKG-INFO +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/AGENTS.md +29 -6
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +14 -6
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +107 -3
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +4 -2
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/connections/SKILL.md +26 -1
- {mainsequence-4.4.5/agent_scaffold/skills/command_center → mainsequence-4.4.10/agent_scaffold/skills/command_center/widgets}/app_components/SKILL.md +9 -5
- mainsequence-4.4.10/agent_scaffold/skills/command_center/widgets/tables/SKILL.md +333 -0
- mainsequence-4.4.10/agent_scaffold/skills/command_center/widgets/tabular_transform/SKILL.md +232 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +37 -3
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +11 -2
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/project_builder/SKILL.md +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/api.py +279 -2
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/cli.py +585 -31
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/agent_runtime_models.py +3 -3
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/command_center/__init__.py +4 -0
- mainsequence-4.4.10/mainsequence/client/command_center/connections.py +680 -0
- mainsequence-4.4.10/mainsequence/client/command_center/contracts/__init__.py +5 -0
- mainsequence-4.4.10/mainsequence/client/command_center/contracts/adapter_from_api.py +204 -0
- mainsequence-4.4.10/mainsequence/client/command_center/contracts/response_mapping.py +79 -0
- mainsequence-4.4.10/mainsequence/client/command_center/contracts/table_visuals.py +180 -0
- mainsequence-4.4.10/mainsequence/client/command_center/contracts/tabular.py +284 -0
- mainsequence-4.4.10/mainsequence/client/command_center/contracts/ui.py +23 -0
- mainsequence-4.4.10/mainsequence/client/command_center/providers/__init__.py +1 -0
- mainsequence-4.4.10/mainsequence/client/command_center/providers/adapter_from_api.py +153 -0
- mainsequence-4.4.10/mainsequence/client/command_center/widgets/__init__.py +5 -0
- mainsequence-4.4.10/mainsequence/client/command_center/widgets/bindings.py +78 -0
- mainsequence-4.4.10/mainsequence/client/command_center/widgets/connection_query.py +120 -0
- mainsequence-4.4.10/mainsequence/client/command_center/widgets/registry.py +46 -0
- mainsequence-4.4.10/mainsequence/client/command_center/widgets/table.py +455 -0
- mainsequence-4.4.10/mainsequence/client/command_center/widgets/tabular_transform.py +410 -0
- mainsequence-4.4.10/mainsequence/client/command_center/workspaces/__init__.py +2 -0
- mainsequence-4.4.10/mainsequence/client/command_center/workspaces/documents.py +43 -0
- mainsequence-4.4.10/mainsequence/client/command_center/workspaces/mounted_widgets.py +40 -0
- mainsequence-4.4.10/mainsequence/scaffold_skills.py +260 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence.egg-info/SOURCES.txt +24 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/pyproject.toml +1 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_cli.py +284 -1
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_command_center_models.py +201 -0
- mainsequence-4.4.10/tests/test_command_center_table_contracts.py +177 -0
- mainsequence-4.4.10/tests/test_command_center_tabular_transform.py +212 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_filter_normalization.py +12 -14
- mainsequence-4.4.10/tests/test_scaffold_skills.py +179 -0
- mainsequence-4.4.5/mainsequence/client/command_center/connections.py +0 -274
- {mainsequence-4.4.5 → mainsequence-4.4.10}/LICENSE +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/README.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/ms-markets/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/__main__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/bootstrap.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/config.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/cli/ui.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/base.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/client.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/command_center/app_component.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/command_center/data_models.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/command_center/workspace.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/fastapi/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/fastapi/auth.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/metatables/core.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/models_foundry.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/models_user.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/client/utils.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/defaults.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/logconf.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/models.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/setup.cfg +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_auth_precedence.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_cli_migrations.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_client.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_command_center_app_component_models.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_command_center_data_models.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_data_access_mixin_dimension_audit.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_data_node_storage_dimension_queries.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_data_node_update_flow.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_dependency_extras.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_instrumentation.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_logconf.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_run_configuration.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_schema_names.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_secret_client_model.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_update_statistics.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_update_uid_guards.py +0 -0
- {mainsequence-4.4.5 → mainsequence-4.4.10}/tests/test_workspace_snapshot.py +0 -0
|
@@ -17,14 +17,26 @@ uses them to update only the Main Sequence section below.
|
|
|
17
17
|
<!-- mainsequence-agent-scaffold:start schema=1 source=agent_scaffold -->
|
|
18
18
|
## Main Sequence Instructions
|
|
19
19
|
|
|
20
|
-
Before any non-trivial Main Sequence work, update the project SDK first
|
|
21
|
-
installed
|
|
22
|
-
`.agents/skills/mainsequence/` match the installed SDK version:
|
|
20
|
+
Before any non-trivial Main Sequence work, update the project SDK first, then compare the
|
|
21
|
+
installed SDK version with the managed skills pin:
|
|
23
22
|
|
|
24
23
|
- `mainsequence project update-sdk --path .`
|
|
24
|
+
|
|
25
|
+
After the SDK update, inspect `.agents/skills/mainsequence/PINNED_FROM.txt`.
|
|
26
|
+
Its `pinned_version=...` value records the SDK version that supplied the copied
|
|
27
|
+
Main Sequence skills. Compare that value with the installed SDK version reported
|
|
28
|
+
by `mainsequence --version`.
|
|
29
|
+
|
|
30
|
+
Refresh the managed scaffold only when `PINNED_FROM.txt` is missing or its
|
|
31
|
+
`pinned_version` differs from the installed SDK version:
|
|
32
|
+
|
|
25
33
|
- `mainsequence project update AGENTS.md --path .`
|
|
26
34
|
- `mainsequence project update_agent_skills --path .`
|
|
27
35
|
|
|
36
|
+
If `pinned_version` already matches the installed SDK version, do not refresh
|
|
37
|
+
`AGENTS.md` or `.agents/skills/mainsequence/` as a startup ritual; continue with
|
|
38
|
+
the task.
|
|
39
|
+
|
|
28
40
|
Canonical Main Sequence documentation root:
|
|
29
41
|
`https://mainsequence-sdk.github.io/mainsequence-sdk/`
|
|
30
42
|
|
|
@@ -179,7 +191,13 @@ Typical routing:
|
|
|
179
191
|
- Command Center workspace JSON creation/update and mounted widget mutation:
|
|
180
192
|
`.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
181
193
|
- AppComponents, custom forms, and widget input or output contracts:
|
|
182
|
-
`.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
194
|
+
`.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
195
|
+
- Command Center table/pro-table widgets, tabular frames, table visual metadata, formulas,
|
|
196
|
+
selections, and live merge mappings:
|
|
197
|
+
`.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md`
|
|
198
|
+
- Command Center tabular transform widgets, projection, filtering, aggregate, pivot, unpivot,
|
|
199
|
+
computed columns, and seed/live update bindings:
|
|
200
|
+
`.agents/skills/mainsequence/command_center/widgets/tabular_transform/SKILL.md`
|
|
183
201
|
- predeployment AppComponent/API contract testing through `apiTargetMode: "mock-json"`:
|
|
184
202
|
`.agents/skills/mainsequence/command_center/api_mock_prototyping/SKILL.md`
|
|
185
203
|
- jobs, schedules, images, project resources, releases, and Artifacts:
|
|
@@ -207,10 +225,15 @@ For any non-trivial Main Sequence task:
|
|
|
207
225
|
`mainsequence project open-signed-terminal <PROJECT_ID>`
|
|
208
226
|
11. Before proceeding with non-trivial Main Sequence work, update the project SDK:
|
|
209
227
|
`mainsequence project update-sdk --path .`
|
|
210
|
-
12. After updating the SDK,
|
|
228
|
+
12. After updating the SDK, compare `mainsequence --version` with
|
|
229
|
+
`.agents/skills/mainsequence/PINNED_FROM.txt` field `pinned_version=...`.
|
|
230
|
+
13. If `PINNED_FROM.txt` is missing or `pinned_version` differs from the installed
|
|
231
|
+
SDK version, refresh the managed scaffold files:
|
|
211
232
|
`mainsequence project update AGENTS.md --path .`
|
|
212
233
|
`mainsequence project update_agent_skills --path .`
|
|
213
|
-
|
|
234
|
+
14. If `pinned_version` already matches the installed SDK version, do not refresh
|
|
235
|
+
`AGENTS.md` or `.agents/skills/mainsequence/` as a startup ritual.
|
|
236
|
+
15. Verify platform state with the CLI or platform tooling instead of guessing.
|
|
214
237
|
|
|
215
238
|
## Orchestrator Rule
|
|
216
239
|
|
|
@@ -51,7 +51,11 @@ This skill must not claim ownership of:
|
|
|
51
51
|
- Command Center workspaces:
|
|
52
52
|
`.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
53
53
|
- AppComponents and custom forms:
|
|
54
|
-
`.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
54
|
+
`.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
55
|
+
- Command Center table/pro-table response contracts:
|
|
56
|
+
`.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md`
|
|
57
|
+
- Command Center tabular transform consumers:
|
|
58
|
+
`.agents/skills/mainsequence/command_center/widgets/tabular_transform/SKILL.md`
|
|
55
59
|
- Adapter from API provider-side Command Center connection endpoints:
|
|
56
60
|
`.agents/skills/mainsequence/command_center/adapter_from_api/SKILL.md`
|
|
57
61
|
- predeployment mock API contract validation:
|
|
@@ -69,14 +73,18 @@ This skill must not claim ownership of:
|
|
|
69
73
|
4. `docs/knowledge/fastapi/index.md`
|
|
70
74
|
5. `docs/knowledge/command_center/widget_data_contracts.md`
|
|
71
75
|
6. `docs/knowledge/command_center/forms.md`
|
|
72
|
-
7. `.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
76
|
+
7. `.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
73
77
|
|
|
74
78
|
Also load:
|
|
75
79
|
|
|
76
80
|
8. `.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md` when the API is tied to mounted widgets, workspace payloads, or workspace mutation
|
|
77
|
-
9. `.agents/skills/mainsequence/command_center/
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
9. `.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md` when the API returns
|
|
82
|
+
`core.tabular_frame@v1`, `meta.tableVisuals`, or table/pro-table widget-facing data
|
|
83
|
+
10. `.agents/skills/mainsequence/command_center/widgets/tabular_transform/SKILL.md` when the API
|
|
84
|
+
response will be reshaped by `core__tabular-transform`
|
|
85
|
+
11. `.agents/skills/mainsequence/command_center/adapter_from_api/SKILL.md` when the API must be consumed through a Command Center Adapter from API connection
|
|
86
|
+
12. `.agents/skills/mainsequence/command_center/api_mock_prototyping/SKILL.md` when the contract should be validated in AppComponent mock mode before backend deployment
|
|
87
|
+
13. `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md` when the API must become usable from Command Center or an AppComponent
|
|
80
88
|
|
|
81
89
|
Do not wait for the user to say "Command Center" explicitly if the API is being built as a platform UI surface. That is the default assumption in Main Sequence projects.
|
|
82
90
|
|
|
@@ -138,7 +146,7 @@ In a Main Sequence project, assume API work is for Command Center unless the use
|
|
|
138
146
|
That means:
|
|
139
147
|
|
|
140
148
|
- prefer widget-facing contracts by default
|
|
141
|
-
- load `.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
149
|
+
- load `.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
142
150
|
- also load `.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md` when the API is coupled to mounted workspace widgets or workspace payloads
|
|
143
151
|
- load `.agents/skills/mainsequence/command_center/adapter_from_api/SKILL.md` when the API will be consumed by connection-first workspace dataflow
|
|
144
152
|
- try to use the existing Command Center SDK response model before inventing a new response shape
|
|
@@ -33,6 +33,105 @@ frontend/editor tooling or a future explicit transform, but the current backend
|
|
|
33
33
|
hot-path validate, extract JSONPath rows, coerce schemas, or reshape provider responses because a
|
|
34
34
|
mapping exists.
|
|
35
35
|
|
|
36
|
+
## Connection CLI And Transport Modes
|
|
37
|
+
|
|
38
|
+
Use the Main Sequence CLI to create or update the Adapter from API connection instance that points
|
|
39
|
+
Command Center at the provider API.
|
|
40
|
+
|
|
41
|
+
Backend/deployed API mode:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
mainsequence cc connection create-adapter-from-api \
|
|
45
|
+
--name "Provider API" \
|
|
46
|
+
--api-base-url https://api.example.com \
|
|
47
|
+
--workspace-uid <workspace-uid> \
|
|
48
|
+
--default
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Direct local/tunnel development mode:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
cloudflared tunnel --url http://127.0.0.1:8021
|
|
55
|
+
|
|
56
|
+
mainsequence cc connection create-adapter-from-api \
|
|
57
|
+
--name "Provider API local" \
|
|
58
|
+
--debug-api-base-url https://example.trycloudflare.com \
|
|
59
|
+
--workspace-uid <workspace-uid> \
|
|
60
|
+
--default
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Patch an existing Adapter from API connection:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
mainsequence cc connection patch-adapter-from-api <connection-uid> \
|
|
67
|
+
--api-base-url https://api.example.com
|
|
68
|
+
|
|
69
|
+
mainsequence cc connection patch-adapter-from-api <connection-uid> \
|
|
70
|
+
--debug-api-base-url https://example.trycloudflare.com
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Inspect connection state:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
mainsequence cc connection list --filter type_id=command_center.adapter_from_api
|
|
77
|
+
mainsequence cc connection detail <connection-uid>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
CLI characteristics:
|
|
81
|
+
|
|
82
|
+
- `--api-base-url` creates backend mode public config with `apiBaseUrl`.
|
|
83
|
+
- `--debug-api-base-url` creates direct mode public config with `transportMode=direct`,
|
|
84
|
+
`debugApiBaseUrl`, `compiledContractSource=direct`, and derived contract/OpenAPI URLs.
|
|
85
|
+
- `--public-config-json` and `--public-config-file` accept a full publicConfig object when URL
|
|
86
|
+
options are not enough.
|
|
87
|
+
- `--config-json` and `--config-file` set public non-secret `configValues`.
|
|
88
|
+
- `--secure-config-json` and `--secure-config-file` send secret values as `secureConfig`; returned
|
|
89
|
+
connection details expose only `secureFields`, not the raw secret values.
|
|
90
|
+
- `patch-adapter-from-api` must target an existing `command_center.adapter_from_api` connection; do
|
|
91
|
+
not use it for other connection types.
|
|
92
|
+
- Do not include `applicationBindings` in Adapter from API public config. The
|
|
93
|
+
`AdapterFromApiConnectionPublicConfig` model rejects it.
|
|
94
|
+
|
|
95
|
+
Direct mode is critical during development. It lets a workspace test the connection against a local
|
|
96
|
+
API before any resource release or API deployment. Run the local API, expose it with a Cloudflare
|
|
97
|
+
tunnel, create or patch the connection with `--debug-api-base-url`, and validate the workspace
|
|
98
|
+
connection/query flow directly. This avoids constant API deployments while iterating on the
|
|
99
|
+
contract, operation metadata, response shape, and widget behavior. Switch to `--api-base-url` only
|
|
100
|
+
when the deployed API is ready to be the stable backend target.
|
|
101
|
+
|
|
102
|
+
## SDK Helper Modules
|
|
103
|
+
|
|
104
|
+
Provider code should use the Command Center SDK helpers instead of hand-building the well-known
|
|
105
|
+
contract when the project can depend on `mainsequence-sdk`:
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
from mainsequence.client.command_center.contracts.adapter_from_api import (
|
|
109
|
+
AdapterFromApiConfigVariable,
|
|
110
|
+
AdapterFromApiParameter,
|
|
111
|
+
AdapterFromApiSecretInjection,
|
|
112
|
+
AdapterFromApiSecretVariable,
|
|
113
|
+
)
|
|
114
|
+
from mainsequence.client.command_center.contracts.response_mapping import (
|
|
115
|
+
make_tabular_response_mapping,
|
|
116
|
+
)
|
|
117
|
+
from mainsequence.client.command_center.contracts.tabular import make_tabular_frame
|
|
118
|
+
from mainsequence.client.command_center.providers.adapter_from_api import (
|
|
119
|
+
make_health_operation,
|
|
120
|
+
make_provider_contract,
|
|
121
|
+
make_query_operation,
|
|
122
|
+
)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Use:
|
|
126
|
+
|
|
127
|
+
- `contracts.adapter_from_api` for strict provider contract, operation, config variable, and secret
|
|
128
|
+
variable models
|
|
129
|
+
- `providers.adapter_from_api` for `make_health_operation`, `make_query_operation`, and
|
|
130
|
+
`make_provider_contract`
|
|
131
|
+
- `contracts.response_mapping` for optional `responseMappings` metadata
|
|
132
|
+
- `contracts.tabular` for canonical `core.tabular_frame@v1` response helpers such as
|
|
133
|
+
`make_tabular_frame`
|
|
134
|
+
|
|
36
135
|
## Scope
|
|
37
136
|
|
|
38
137
|
This skill owns:
|
|
@@ -50,7 +149,7 @@ This skill does not own:
|
|
|
50
149
|
|
|
51
150
|
- general FastAPI project structure
|
|
52
151
|
- unrelated API routes for non-Command Center clients
|
|
53
|
-
- Command Center connection
|
|
152
|
+
- general Command Center connection management beyond the Adapter from API CLI workflow above
|
|
54
153
|
- workspace layout or widget mounting
|
|
55
154
|
- backend adapter runtime internals
|
|
56
155
|
- resource release or deployment orchestration
|
|
@@ -65,8 +164,10 @@ Route those concerns to the adjacent skills below.
|
|
|
65
164
|
`.agents/skills/mainsequence/command_center/connections/SKILL.md`
|
|
66
165
|
- Workspace widgets and binding:
|
|
67
166
|
`.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
167
|
+
- Table/pro-table output contracts and `meta.tableVisuals` metadata:
|
|
168
|
+
`.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md`
|
|
68
169
|
- AppComponent form-driven actions:
|
|
69
|
-
`.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
170
|
+
`.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
70
171
|
- API mock/prototype validation before deployment:
|
|
71
172
|
`.agents/skills/mainsequence/command_center/api_mock_prototyping/SKILL.md`
|
|
72
173
|
- FastAPI resources, images, jobs, and releases:
|
|
@@ -264,6 +365,7 @@ For FastAPI providers in Main Sequence repos, full canonical frame endpoints mus
|
|
|
264
365
|
|
|
265
366
|
```python
|
|
266
367
|
from mainsequence.client.command_center.data_models import TabularFrameResponse
|
|
368
|
+
from mainsequence.client.command_center.contracts.tabular import make_tabular_frame
|
|
267
369
|
```
|
|
268
370
|
|
|
269
371
|
Declare `response_model=TabularFrameResponse` instead of recreating the canonical frame shape
|
|
@@ -354,7 +456,9 @@ Before implementing or revising an API for Adapter from API consumption, decide:
|
|
|
354
456
|
|
|
355
457
|
For a FastAPI provider:
|
|
356
458
|
|
|
357
|
-
-
|
|
459
|
+
- use the SDK provider helpers in `mainsequence.client.command_center.providers.adapter_from_api`
|
|
460
|
+
and strict models in `mainsequence.client.command_center.contracts.adapter_from_api` when the
|
|
461
|
+
dependency is available
|
|
358
462
|
- set explicit `operation_id` values on routes
|
|
359
463
|
- expose `GET /.well-known/command-center/connection-contract`
|
|
360
464
|
- expose a zero-argument health route
|
|
@@ -44,9 +44,11 @@ This skill must not claim ownership of:
|
|
|
44
44
|
## Route Adjacent Work
|
|
45
45
|
|
|
46
46
|
- AppComponents and custom forms:
|
|
47
|
-
`.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
47
|
+
`.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
48
48
|
- Command Center workspaces and widget mutation:
|
|
49
49
|
`.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
50
|
+
- Tabular transform widgets for downstream reshaping in mock validation:
|
|
51
|
+
`.agents/skills/mainsequence/command_center/widgets/tabular_transform/SKILL.md`
|
|
50
52
|
- APIs and FastAPI:
|
|
51
53
|
`.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
|
|
52
54
|
- Jobs, images, resources, and releases:
|
|
@@ -61,7 +63,7 @@ This skill must not claim ownership of:
|
|
|
61
63
|
2. The SDK client models:
|
|
62
64
|
- `mainsequence/client/command_center/app_component.py`
|
|
63
65
|
- `mainsequence/client/command_center/workspace.py`
|
|
64
|
-
3. `.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
66
|
+
3. `.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
65
67
|
4. `.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
66
68
|
|
|
67
69
|
Only after the mock contract is stable:
|
{mainsequence-4.4.5 → mainsequence-4.4.10}/agent_scaffold/skills/command_center/connections/SKILL.md
RENAMED
|
@@ -24,6 +24,11 @@ connection instance and query model are known.
|
|
|
24
24
|
## This Skill Can Do
|
|
25
25
|
|
|
26
26
|
- discover connection types and instances through `mainsequence.client.command_center.connections`
|
|
27
|
+
- use `mainsequence.client.command_center.widgets.connection_query` for connection-query source
|
|
28
|
+
widget payload drafts
|
|
29
|
+
- use `mainsequence.client.command_center.contracts.*` and
|
|
30
|
+
`mainsequence.client.command_center.providers.*` when validating Adapter from API provider
|
|
31
|
+
contracts
|
|
27
32
|
- decide whether an existing connection instance can support the requested workspace data
|
|
28
33
|
- inspect `ConnectionType.queryModels` and `usageGuidance`
|
|
29
34
|
- verify that a query model can publish the required output contract
|
|
@@ -48,10 +53,14 @@ This skill must not claim ownership of:
|
|
|
48
53
|
`.agents/skills/mainsequence/command_center/workspace_design/SKILL.md`
|
|
49
54
|
- Workspace JSON creation and widget mutation:
|
|
50
55
|
`.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
56
|
+
- Table/pro-table consumer contracts, table visual metadata, selection, and live update behavior:
|
|
57
|
+
`.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md`
|
|
58
|
+
- Tabular transform consumer contracts and source/live update bindings:
|
|
59
|
+
`.agents/skills/mainsequence/command_center/widgets/tabular_transform/SKILL.md`
|
|
51
60
|
- Adapter from API connection workflow:
|
|
52
61
|
`.agents/skills/mainsequence/command_center/adapter_from_api/SKILL.md`
|
|
53
62
|
- AppComponent forms and action API contracts:
|
|
54
|
-
`.agents/skills/mainsequence/command_center/app_components/SKILL.md`
|
|
63
|
+
`.agents/skills/mainsequence/command_center/widgets/app_components/SKILL.md`
|
|
55
64
|
- API implementation:
|
|
56
65
|
`.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
|
|
57
66
|
- Jobs, images, resources, and releases:
|
|
@@ -63,6 +72,22 @@ This skill must not claim ownership of:
|
|
|
63
72
|
- `mainsequence/client/command_center/connections.py`
|
|
64
73
|
- `mainsequence/client/command_center/data_models.py` when validating `core.tabular_frame@v1`
|
|
65
74
|
output shape
|
|
75
|
+
- `mainsequence/client/command_center/contracts/adapter_from_api.py` when validating provider
|
|
76
|
+
discovery contracts
|
|
77
|
+
- `mainsequence/client/command_center/contracts/response_mapping.py` when validating
|
|
78
|
+
response-mapping metadata
|
|
79
|
+
- `mainsequence/client/command_center/contracts/tabular.py` when building or checking canonical
|
|
80
|
+
tabular frames
|
|
81
|
+
- `mainsequence/client/command_center/contracts/table_visuals.py` when table-specific visual
|
|
82
|
+
defaults travel with `meta.tableVisuals`
|
|
83
|
+
- `mainsequence/client/command_center/providers/adapter_from_api.py` when a provider should use
|
|
84
|
+
SDK contract builders
|
|
85
|
+
- `mainsequence/client/command_center/widgets/connection_query.py` when creating
|
|
86
|
+
connection-query source widget payloads
|
|
87
|
+
- `mainsequence/client/command_center/widgets/tabular_transform.py` when a connection-backed
|
|
88
|
+
flow needs a `core__tabular-transform` widget
|
|
89
|
+
- `mainsequence/client/command_center/widgets/bindings.py` when binding seed data or live updates
|
|
90
|
+
into the transform
|
|
66
91
|
2. Widget registry detail for the source and consumer widgets:
|
|
67
92
|
- `mainsequence cc registered_widget_type list --json`
|
|
68
93
|
- `mainsequence cc registered_widget_type detail <WIDGET_ID> --json`
|
|
@@ -47,6 +47,8 @@ This skill must not claim ownership of:
|
|
|
47
47
|
|
|
48
48
|
- Command Center workspaces:
|
|
49
49
|
`.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
|
|
50
|
+
- Command Center table/pro-table output contracts and table visual metadata:
|
|
51
|
+
`.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md`
|
|
50
52
|
- predeployment mock API contract validation:
|
|
51
53
|
`.agents/skills/mainsequence/command_center/api_mock_prototyping/SKILL.md`
|
|
52
54
|
- APIs and FastAPI:
|
|
@@ -71,17 +73,19 @@ This skill must not claim ownership of:
|
|
|
71
73
|
2. `docs/knowledge/command_center/forms.md`
|
|
72
74
|
3. `docs/knowledge/command_center/widget_data_contracts.md`
|
|
73
75
|
4. `mainsequence/client/command_center/app_component.py`
|
|
74
|
-
5. `.agents/skills/mainsequence/command_center/
|
|
75
|
-
|
|
76
|
+
5. `.agents/skills/mainsequence/command_center/widgets/tables/SKILL.md` when AppComponent output will feed
|
|
77
|
+
a table/pro-table widget or needs `core.tabular_frame@v1` plus table visual metadata
|
|
78
|
+
6. `.agents/skills/mainsequence/command_center/adapter_from_api/SKILL.md` when API-shaped data must become a connection-backed tabular dataset
|
|
79
|
+
7. `.agents/skills/mainsequence/command_center/connections/SKILL.md` when AppComponent output will be consumed by generic tabular widgets or must align with connection-first dataflow
|
|
76
80
|
|
|
77
81
|
If the AppComponent is backed by project APIs, also read:
|
|
78
82
|
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
8. `.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
|
|
84
|
+
9. `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
81
85
|
|
|
82
86
|
If the task is about validating the API contract before deployment, also read:
|
|
83
87
|
|
|
84
|
-
|
|
88
|
+
10. `.agents/skills/mainsequence/command_center/api_mock_prototyping/SKILL.md`
|
|
85
89
|
|
|
86
90
|
## Inputs This Skill Needs
|
|
87
91
|
|