mainsequence 3.21.0__tar.gz → 4.0.0__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 (211) hide show
  1. {mainsequence-3.21.0/mainsequence.egg-info → mainsequence-4.0.0}/PKG-INFO +5 -20
  2. {mainsequence-3.21.0 → mainsequence-4.0.0}/README.md +4 -8
  3. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/AGENTS.md +6 -13
  4. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +8 -8
  5. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/app_components/SKILL.md +3 -3
  6. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +2 -2
  7. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +14 -14
  8. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +7 -12
  9. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +12 -15
  10. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/data_access/exploration/SKILL.md +18 -22
  11. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +7 -14
  12. mainsequence-4.0.0/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +155 -0
  13. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +4 -4
  14. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/maintenance/local_journal/SKILL.md +4 -10
  15. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +3 -3
  16. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +4 -4
  17. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/project_builder/SKILL.md +5 -11
  18. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/api.py +0 -465
  19. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/cli.py +4 -646
  20. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/__init__.py +1 -2
  21. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/base.py +0 -23
  22. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/command_center/data_models.py +1 -1
  23. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/data_sources_interfaces/timescale.py +1 -1
  24. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/models_helpers.py +32 -24
  25. mainsequence-4.0.0/mainsequence/client/models_metatables.py +405 -0
  26. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/models_tdag.py +89 -506
  27. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/models_user.py +2 -1
  28. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/__init__.py +0 -2
  29. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/base_persist_managers.py +24 -16
  30. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/__init__.py +0 -2
  31. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/build_operations.py +3 -1
  32. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/data_nodes.py +39 -606
  33. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/filters.py +2 -3
  34. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/models.py +2 -7
  35. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/persist_managers.py +11 -8
  36. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/run_operations.py +0 -3
  37. mainsequence-4.0.0/mainsequence/tdag/meta_tables/__init__.py +55 -0
  38. mainsequence-4.0.0/mainsequence/tdag/meta_tables/compiled_sql.py +128 -0
  39. mainsequence-4.0.0/mainsequence/tdag/meta_tables/hashing.py +118 -0
  40. mainsequence-4.0.0/mainsequence/tdag/meta_tables/sqlalchemy_contracts.py +476 -0
  41. {mainsequence-3.21.0 → mainsequence-4.0.0/mainsequence.egg-info}/PKG-INFO +5 -20
  42. mainsequence-4.0.0/mainsequence.egg-info/SOURCES.txt +121 -0
  43. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence.egg-info/requires.txt +0 -14
  44. {mainsequence-3.21.0 → mainsequence-4.0.0}/pyproject.toml +2 -16
  45. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_cli.py +43 -612
  46. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_client.py +0 -49
  47. mainsequence-4.0.0/tests/test_data_access_mixin_dimension_audit.py +173 -0
  48. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_data_node_search_join_filters.py +5 -6
  49. mainsequence-4.0.0/tests/test_data_node_storage_dimension_queries.py +361 -0
  50. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_data_node_update_flow.py +10 -73
  51. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_filter_normalization.py +46 -86
  52. mainsequence-4.0.0/tests/test_meta_tables_client_models.py +264 -0
  53. mainsequence-4.0.0/tests/test_meta_tables_sqlalchemy_contracts.py +209 -0
  54. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_project_batch_jobs_from_file.py +0 -5
  55. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_run_configuration.py +9 -45
  56. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_source_table_configuration.py +21 -30
  57. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_update_statistics.py +59 -18
  58. mainsequence-4.0.0/tests/test_update_uid_guards.py +41 -0
  59. mainsequence-3.21.0/agent_scaffold/skills/data_publishing/simple_tables/SKILL.md +0 -168
  60. mainsequence-3.21.0/agent_scaffold/skills/markets_platform/assets_and_translation/SKILL.md +0 -223
  61. mainsequence-3.21.0/agent_scaffold/skills/markets_platform/instruments_and_pricing/SKILL.md +0 -223
  62. mainsequence-3.21.0/agent_scaffold/skills/markets_platform/virtualfundbuilder/SKILL.md +0 -225
  63. mainsequence-3.21.0/mainsequence/client/markets/__init__.py +0 -2
  64. mainsequence-3.21.0/mainsequence/client/markets/models/__init__.py +0 -5
  65. mainsequence-3.21.0/mainsequence/client/markets/models/accounts_and_portfolios.py +0 -1047
  66. mainsequence-3.21.0/mainsequence/client/markets/models/assets.py +0 -1076
  67. mainsequence-3.21.0/mainsequence/client/markets/models/core.py +0 -72
  68. mainsequence-3.21.0/mainsequence/client/models_simple_tables.py +0 -1263
  69. mainsequence-3.21.0/mainsequence/markets/__init__.py +0 -6
  70. mainsequence-3.21.0/mainsequence/markets/accounts/__init__.py +0 -25
  71. mainsequence-3.21.0/mainsequence/markets/accounts/data_nodes.py +0 -1163
  72. mainsequence-3.21.0/mainsequence/markets/instruments/__init__.py +0 -31
  73. mainsequence-3.21.0/mainsequence/markets/instruments/data_interface/__init__.py +0 -10
  74. mainsequence-3.21.0/mainsequence/markets/instruments/data_interface/data_interface.py +0 -164
  75. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/__init__.py +0 -10
  76. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/base_instrument.py +0 -104
  77. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/bond.py +0 -2042
  78. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/callability.py +0 -151
  79. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/interest_rate_swap.py +0 -214
  80. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/json_codec.py +0 -631
  81. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/position.py +0 -499
  82. mainsequence-3.21.0/mainsequence/markets/instruments/instruments/ql_fields.py +0 -347
  83. mainsequence-3.21.0/mainsequence/markets/instruments/interest_rates/__init__.py +0 -0
  84. mainsequence-3.21.0/mainsequence/markets/instruments/interest_rates/etl/__init__.py +0 -0
  85. mainsequence-3.21.0/mainsequence/markets/instruments/interest_rates/etl/curve_codec.py +0 -57
  86. mainsequence-3.21.0/mainsequence/markets/instruments/interest_rates/etl/nodes.py +0 -162
  87. mainsequence-3.21.0/mainsequence/markets/instruments/interest_rates/etl/registry.py +0 -83
  88. mainsequence-3.21.0/mainsequence/markets/instruments/pricing_models/__init__.py +0 -0
  89. mainsequence-3.21.0/mainsequence/markets/instruments/pricing_models/bond_pricer.py +0 -226
  90. mainsequence-3.21.0/mainsequence/markets/instruments/pricing_models/indices.py +0 -448
  91. mainsequence-3.21.0/mainsequence/markets/instruments/pricing_models/indices_builders.py +0 -84
  92. mainsequence-3.21.0/mainsequence/markets/instruments/pricing_models/swap_pricer.py +0 -542
  93. mainsequence-3.21.0/mainsequence/markets/instruments/settings.py +0 -14
  94. mainsequence-3.21.0/mainsequence/markets/instruments/streamlit/__init__.py +0 -24
  95. mainsequence-3.21.0/mainsequence/markets/instruments/streamlit/streamlit_form_factory.py +0 -837
  96. mainsequence-3.21.0/mainsequence/markets/instruments/utils.py +0 -30
  97. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/__init__.py +0 -85
  98. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/__init__.py +0 -0
  99. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/prices/__init__.py +0 -1
  100. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/prices/data_nodes.py +0 -882
  101. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/prices/utils.py +0 -11
  102. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/rebalance_strategies/__init__.py +0 -1
  103. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/rebalance_strategies/rebalance_strategies.py +0 -428
  104. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/signals/__init__.py +0 -5
  105. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/signals/external_weights.py +0 -78
  106. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/signals/fixed_weights.py +0 -78
  107. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/signals/intraday_trend.py +0 -203
  108. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/signals/market_cap.py +0 -309
  109. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/contrib/signals/portfolio_replicator.py +0 -303
  110. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/__init__.py +0 -118
  111. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/base.py +0 -592
  112. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/constants.py +0 -207
  113. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/portfolio_identity.py +0 -135
  114. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/portfolio_metadata.py +0 -140
  115. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/portfolio_weights.py +0 -222
  116. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/portfolios.py +0 -208
  117. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/rebalance_metadata.py +0 -161
  118. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/signal_metadata.py +0 -111
  119. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/signal_weights.py +0 -498
  120. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/data_nodes/storage_initialization.py +0 -215
  121. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/enums.py +0 -20
  122. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/models.py +0 -465
  123. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/portfolio_nodes.py +0 -840
  124. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/resource_factory/__init__.py +0 -0
  125. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/resource_factory/rebalance_factory.py +0 -80
  126. mainsequence-3.21.0/mainsequence/markets/virtualfundbuilder/utils.py +0 -429
  127. mainsequence-3.21.0/mainsequence/tdag/simple_tables/__init__.py +0 -15
  128. mainsequence-3.21.0/mainsequence/tdag/simple_tables/filters.py +0 -329
  129. mainsequence-3.21.0/mainsequence/tdag/simple_tables/models.py +0 -115
  130. mainsequence-3.21.0/mainsequence/tdag/simple_tables/persist_managers.py +0 -186
  131. mainsequence-3.21.0/mainsequence/tdag/simple_tables/schema.py +0 -285
  132. mainsequence-3.21.0/mainsequence/tdag/simple_tables/table_nodes.py +0 -484
  133. mainsequence-3.21.0/mainsequence.egg-info/SOURCES.txt +0 -197
  134. mainsequence-3.21.0/tests/test_account_data_nodes.py +0 -808
  135. mainsequence-3.21.0/tests/test_client_account_models.py +0 -273
  136. mainsequence-3.21.0/tests/test_client_asset_models.py +0 -80
  137. mainsequence-3.21.0/tests/test_client_markets_models_compat.py +0 -30
  138. mainsequence-3.21.0/tests/test_data_access_mixin_dimension_audit.py +0 -105
  139. mainsequence-3.21.0/tests/test_data_node_storage_dimension_queries.py +0 -688
  140. mainsequence-3.21.0/tests/test_instruments.py +0 -335
  141. mainsequence-3.21.0/tests/test_markets_package_compat.py +0 -17
  142. mainsequence-3.21.0/tests/test_simple_tables_configuration_hashing.py +0 -145
  143. mainsequence-3.21.0/tests/test_simple_tables_persistence.py +0 -1477
  144. mainsequence-3.21.0/tests/test_update_uid_guards.py +0 -79
  145. mainsequence-3.21.0/tests/test_vfb_canonical_data_nodes.py +0 -1373
  146. mainsequence-3.21.0/tests/test_vfb_contrib_signals.py +0 -220
  147. {mainsequence-3.21.0 → mainsequence-4.0.0}/LICENSE +0 -0
  148. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
  149. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
  150. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
  151. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
  152. {mainsequence-3.21.0 → mainsequence-4.0.0}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
  153. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/__init__.py +0 -0
  154. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/__main__.py +0 -0
  155. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/bootstrap.py +0 -0
  156. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/__init__.py +0 -0
  157. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/browser_auth.py +0 -0
  158. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/config.py +0 -0
  159. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/docker_utils.py +0 -0
  160. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/doctor.py +0 -0
  161. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/local_ops.py +0 -0
  162. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/model_filters.py +0 -0
  163. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/project_status.py +0 -0
  164. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/pydantic_cli.py +0 -0
  165. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/sdk_utils.py +0 -0
  166. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/ssh_utils.py +0 -0
  167. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/cli/ui.py +0 -0
  168. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/agent_runtime_models.py +0 -0
  169. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/client.py +0 -0
  170. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/command_center/__init__.py +0 -0
  171. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/command_center/app_component.py +0 -0
  172. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/command_center/connections.py +0 -0
  173. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/command_center/workspace.py +0 -0
  174. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
  175. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
  176. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  177. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/exceptions.py +0 -0
  178. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/fastapi/__init__.py +0 -0
  179. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/fastapi/auth.py +0 -0
  180. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/client/utils.py +0 -0
  181. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/compute_validation.py +0 -0
  182. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/defaults.py +0 -0
  183. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/instrumentation/__init__.py +0 -0
  184. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/instrumentation/utils.py +0 -0
  185. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/logconf.py +0 -0
  186. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/runtime_flags.py +0 -0
  187. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/__main__.py +0 -0
  188. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/config.py +0 -0
  189. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/configuration_models.py +0 -0
  190. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/namespacing.py +0 -0
  191. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/data_nodes/utils.py +0 -0
  192. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/filters.py +0 -0
  193. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/future_registry.py +0 -0
  194. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/pydantic_metadata.py +0 -0
  195. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence/tdag/utils.py +0 -0
  196. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence.egg-info/dependency_links.txt +0 -0
  197. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence.egg-info/entry_points.txt +0 -0
  198. {mainsequence-3.21.0 → mainsequence-4.0.0}/mainsequence.egg-info/top_level.txt +0 -0
  199. {mainsequence-3.21.0 → mainsequence-4.0.0}/setup.cfg +0 -0
  200. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_auth_precedence.py +0 -0
  201. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_build_operations_hashing.py +0 -0
  202. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_cli_browser_auth.py +0 -0
  203. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_command_center_app_component_models.py +0 -0
  204. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_command_center_data_models.py +0 -0
  205. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_command_center_models.py +0 -0
  206. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_dependency_extras.py +0 -0
  207. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_logconf.py +0 -0
  208. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_models_user_request_bound_auth.py +0 -0
  209. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_pod_project_resolution.py +0 -0
  210. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_update_runner_uid_runtime.py +0 -0
  211. {mainsequence-3.21.0 → mainsequence-4.0.0}/tests/test_workspace_snapshot.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 3.21.0
3
+ Version: 4.0.0
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License: MainSequence GmbH SDK License Agreement
@@ -73,17 +73,6 @@ Requires-Dist: urllib3
73
73
  Provides-Extra: local-data
74
74
  Requires-Dist: duckdb; extra == "local-data"
75
75
  Requires-Dist: pyarrow; extra == "local-data"
76
- Provides-Extra: virtualfundbuilder
77
- Requires-Dist: docstring-parser; extra == "virtualfundbuilder"
78
- Requires-Dist: joblib; extra == "virtualfundbuilder"
79
- Requires-Dist: pandas-market-calendars; extra == "virtualfundbuilder"
80
- Requires-Dist: scikit-learn; extra == "virtualfundbuilder"
81
- Provides-Extra: instruments
82
- Requires-Dist: matplotlib; extra == "instruments"
83
- Requires-Dist: QuantLib; extra == "instruments"
84
- Provides-Extra: instruments-streamlit
85
- Requires-Dist: streamlit; extra == "instruments-streamlit"
86
- Requires-Dist: streamlit-aggrid; extra == "instruments-streamlit"
87
76
  Provides-Extra: workspace-snapshots
88
77
  Requires-Dist: playwright; extra == "workspace-snapshots"
89
78
  Dynamic: license-file
@@ -125,9 +114,7 @@ This repository contains the SDK and the documentation used to build and operate
125
114
  Main package areas:
126
115
 
127
116
  - `mainsequence.tdag`: data orchestration, `DataNode`s, update workflows, and persistence
128
- - `mainsequence.client`: API client models for projects, jobs, data node storages, assets, sharing, and platform resources
129
- - `mainsequence.markets.virtualfundbuilder`: portfolio construction and portfolio time series workflows
130
- - `mainsequence.markets.instruments`: pricing-oriented market data and instrument tooling
117
+ - `mainsequence.client`: API client models for projects, jobs, data node storages, sharing, and platform resources
131
118
  - `mainsequence.cli`: the `mainsequence` command-line interface
132
119
 
133
120
  Repository areas:
@@ -150,7 +137,7 @@ Recommended entry points:
150
137
  - Tutorial:
151
138
  - [Setting a Project (CLI)](docs/tutorial/setting_a_project.md)
152
139
  - [Creating a Data Node](docs/tutorial/creating_a_simple_data_node.md)
153
- - [Working With Simple Tables](docs/tutorial/working_with_simple_tables.md)
140
+ - [Working With MetaTables](docs/tutorial/working_with_meta_tables.md)
154
141
  - [Create Your First API](docs/tutorial/create_your_first_api.md)
155
142
  - [Role-Based Access Control](docs/tutorial/role_based_access_control.md)
156
143
  - [Turn Your Project Into an Agent](docs/tutorial/project_to_agent.md)
@@ -158,12 +145,10 @@ Recommended entry points:
158
145
  - [Data Nodes](docs/knowledge/data_nodes.md)
159
146
  - [Command Center](docs/knowledge/command_center/index.md)
160
147
  - [Command Center Widget Data Contracts](docs/knowledge/command_center/widget_data_contracts.md)
161
- - [Simple Tables](docs/knowledge/simple_tables/simple_table.md)
148
+ - [MetaTables](docs/knowledge/meta_tables/index.md)
162
149
  - [Constants and Secrets](docs/knowledge/infrastructure/constants_and_secrets.md)
163
150
  - [Scheduling Jobs](docs/knowledge/infrastructure/scheduling_jobs.md)
164
151
  - [Streamlit Dashboards](docs/knowledge/dashboards/streamlit/index.md)
165
- - [Virtual Fund Builder](docs/knowledge/virtualfundbuilder/index.md)
166
- - [Instruments](docs/knowledge/instruments/index.md)
167
152
  - CLI:
168
153
  - [CLI Overview](docs/cli/index.md)
169
154
 
@@ -204,7 +189,7 @@ mainsequence project build_local_venv --path .
204
189
  From there, the normal learning path is:
205
190
 
206
191
  1. create your first `DataNode`
207
- 2. model app-facing data with `SimpleTable` when needed
192
+ 2. model app-facing relational data with backend-managed `MetaTable`s when needed
208
193
  3. add an API or another application surface
209
194
  4. understand sharing and RBAC
210
195
  5. schedule jobs
@@ -35,9 +35,7 @@ This repository contains the SDK and the documentation used to build and operate
35
35
  Main package areas:
36
36
 
37
37
  - `mainsequence.tdag`: data orchestration, `DataNode`s, update workflows, and persistence
38
- - `mainsequence.client`: API client models for projects, jobs, data node storages, assets, sharing, and platform resources
39
- - `mainsequence.markets.virtualfundbuilder`: portfolio construction and portfolio time series workflows
40
- - `mainsequence.markets.instruments`: pricing-oriented market data and instrument tooling
38
+ - `mainsequence.client`: API client models for projects, jobs, data node storages, sharing, and platform resources
41
39
  - `mainsequence.cli`: the `mainsequence` command-line interface
42
40
 
43
41
  Repository areas:
@@ -60,7 +58,7 @@ Recommended entry points:
60
58
  - Tutorial:
61
59
  - [Setting a Project (CLI)](docs/tutorial/setting_a_project.md)
62
60
  - [Creating a Data Node](docs/tutorial/creating_a_simple_data_node.md)
63
- - [Working With Simple Tables](docs/tutorial/working_with_simple_tables.md)
61
+ - [Working With MetaTables](docs/tutorial/working_with_meta_tables.md)
64
62
  - [Create Your First API](docs/tutorial/create_your_first_api.md)
65
63
  - [Role-Based Access Control](docs/tutorial/role_based_access_control.md)
66
64
  - [Turn Your Project Into an Agent](docs/tutorial/project_to_agent.md)
@@ -68,12 +66,10 @@ Recommended entry points:
68
66
  - [Data Nodes](docs/knowledge/data_nodes.md)
69
67
  - [Command Center](docs/knowledge/command_center/index.md)
70
68
  - [Command Center Widget Data Contracts](docs/knowledge/command_center/widget_data_contracts.md)
71
- - [Simple Tables](docs/knowledge/simple_tables/simple_table.md)
69
+ - [MetaTables](docs/knowledge/meta_tables/index.md)
72
70
  - [Constants and Secrets](docs/knowledge/infrastructure/constants_and_secrets.md)
73
71
  - [Scheduling Jobs](docs/knowledge/infrastructure/scheduling_jobs.md)
74
72
  - [Streamlit Dashboards](docs/knowledge/dashboards/streamlit/index.md)
75
- - [Virtual Fund Builder](docs/knowledge/virtualfundbuilder/index.md)
76
- - [Instruments](docs/knowledge/instruments/index.md)
77
73
  - CLI:
78
74
  - [CLI Overview](docs/cli/index.md)
79
75
 
@@ -114,7 +110,7 @@ mainsequence project build_local_venv --path .
114
110
  From there, the normal learning path is:
115
111
 
116
112
  1. create your first `DataNode`
117
- 2. model app-facing data with `SimpleTable` when needed
113
+ 2. model app-facing relational data with backend-managed `MetaTable`s when needed
118
114
  3. add an API or another application surface
119
115
  4. understand sharing and RBAC
120
116
  5. schedule jobs
@@ -38,7 +38,7 @@ changes, and validation steps.
38
38
  Core responsibilities:
39
39
 
40
40
  - translate user intent into the correct Main Sequence implementation path:
41
- - for data publishing and data pipelines, use `DataNode`s and `SimpleTable`s
41
+ - for data publishing and data pipelines, use `DataNode`s and `MetaTable`s
42
42
  - for serving application or widget-facing surfaces, use `FastAPI`
43
43
  - for visualization, confirm the delivery target with the user:
44
44
  - if they want something quick for testing or iteration, use Streamlit
@@ -57,7 +57,7 @@ Core responsibilities:
57
57
  Typical outcomes include:
58
58
 
59
59
  - build a `DataNode` to publish a data pipeline
60
- - build a `SimpleTable` to record operational or application data
60
+ - build a `MetaTable` to record operational or application data
61
61
  - build a `FastAPI` API that reads project data and returns widget-ready or
62
62
  application-ready responses
63
63
  - confirm whether a visualization should be a quick Streamlit surface or a reusable Command Center
@@ -116,7 +116,7 @@ Delegation rules:
116
116
  ## Main Sequence Source-Of-Truth Rule
117
117
 
118
118
  For any task involving Main Sequence code, CLI usage, DataNodes, orchestration, jobs, dashboards,
119
- agents, releases, markets, assets, portfolios, instruments, artifacts, RBAC, or platform
119
+ agents, releases, artifacts, RBAC, or platform
120
120
  validation, always consult the latest relevant Main Sequence documentation before acting.
121
121
 
122
122
  Rules:
@@ -171,8 +171,8 @@ Typical routing:
171
171
  `.agents/skills/mainsequence/maintenance/bug_auditor/SKILL.md`
172
172
  - DataNodes, updates, identifiers, schema, metadata:
173
173
  `.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
174
- - SimpleTables, row ids, filtering, insert-only versus overwrite behavior:
175
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
174
+ - MetaTables, SQLAlchemy contracts, backend-managed registration, and governed operations:
175
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
176
176
  - platform data discovery, published table search, and object identification before implementation:
177
177
  `.agents/skills/mainsequence/data_access/exploration/SKILL.md`
178
178
  - APIs, FastAPI, request and response contracts, and widget-facing API responses:
@@ -189,14 +189,8 @@ Typical routing:
189
189
  `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
190
190
  - RBAC, sharing, constants, secrets, and access verification:
191
191
  `.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`
192
- - assets, public asset registration, custom assets, asset categories, and translation tables:
193
- `.agents/skills/mainsequence/markets_platform/assets_and_translation/SKILL.md`
194
192
  - dashboards:
195
193
  `.agents/skills/mainsequence/dashboards/streamlit/SKILL.md`
196
- - portfolios and Virtual Fund Builder:
197
- `.agents/skills/mainsequence/markets_platform/virtualfundbuilder/SKILL.md`
198
- - instruments and pricing:
199
- `.agents/skills/mainsequence/markets_platform/instruments_and_pricing/SKILL.md`
200
194
 
201
195
  ## Mandatory Startup Sequence
202
196
 
@@ -270,8 +264,7 @@ At minimum, verify relevant:
270
264
  - job runs and logs
271
265
  - project images
272
266
  - dashboard or agent resources/releases
273
- - assets
274
- - portfolios
267
+ - data assets
275
268
  - related platform objects used by the project
276
269
 
277
270
  Typical verification commands:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mainsequence-api-surfaces
3
- description: Use this skill when the task is about building or changing APIs in a Main Sequence repository. In a Main Sequence project, project APIs should be implemented as FastAPI project resources. Unless the user explicitly says the API is standalone or for a non-Command Center client, assume the API is meant to be Command Center integrated, load the related Command Center skills, and use Command Center SDK response models whenever the endpoint can reasonably match them. Main Sequence is platform-first: a Command Center-facing project API is not considered usable until it exists as a FastAPI project resource and has a corresponding FastAPI ResourceRelease. Resource and release creation belong to the orchestration-and-releases skill. This skill owns FastAPI structure, request and response contracts, request user binding, APIDataNode and SimpleTable consumption inside APIs, and exact widget-facing API response contracts. It does not own producer-side DataNode or SimpleTable design, workspace payloads, or scheduling and release workflows.
3
+ description: Use this skill when the task is about building or changing APIs in a Main Sequence repository. In a Main Sequence project, project APIs should be implemented as FastAPI project resources. Unless the user explicitly says the API is standalone or for a non-Command Center client, assume the API is meant to be Command Center integrated, load the related Command Center skills, and use Command Center SDK response models whenever the endpoint can reasonably match them. Main Sequence is platform-first: a Command Center-facing project API is not considered usable until it exists as a FastAPI project resource and has a corresponding FastAPI ResourceRelease. Resource and release creation belong to the orchestration-and-releases skill. This skill owns FastAPI structure, request and response contracts, request user binding, APIDataNode and MetaTable consumption inside APIs, and exact widget-facing API response contracts. It does not own producer-side DataNode or MetaTable design, workspace payloads, or scheduling and release workflows.
4
4
  ---
5
5
 
6
6
  # Main Sequence API Surfaces
@@ -22,7 +22,7 @@ This skill is for FastAPI structure, request/response contracts, request user co
22
22
  - define request and response models
23
23
  - keep route handlers thin and contract-driven
24
24
  - use `APIDataNode` to read published DataNode tables
25
- - use `SimpleTableUpdater.execute_filter(...)` to read simple-table rows
25
+ - use `MetaTable.execute_operation(...)` to read governed MetaTable rows
26
26
  - add `LoggedUserContextMiddleware` when request-local user context is needed
27
27
  - assume Command Center is the default API consumer unless the user clearly says otherwise
28
28
  - load the related Command Center skills when the API feeds widgets, AppComponents, or workspaces
@@ -35,7 +35,7 @@ This skill is for FastAPI structure, request/response contracts, request user co
35
35
  This skill must not claim ownership of:
36
36
 
37
37
  - DataNode producer design
38
- - SimpleTable schema design
38
+ - MetaTable schema design
39
39
  - workspace document creation or mutation
40
40
  - AppComponent custom form design
41
41
  - job creation, scheduling, image pinning, or releases
@@ -46,8 +46,8 @@ This skill must not claim ownership of:
46
46
 
47
47
  - DataNodes:
48
48
  `.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
49
- - SimpleTables:
50
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
49
+ - MetaTables:
50
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
51
51
  - Command Center workspaces:
52
52
  `.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
53
53
  - AppComponents and custom forms:
@@ -105,7 +105,7 @@ If the upstream producer contract is unclear, stop and resolve that first.
105
105
  For every non-trivial API task, decide:
106
106
 
107
107
  1. Is this route exposing application logic or should the data stay as a producer table?
108
- 2. Should the route read from `APIDataNode`, `SimpleTable`, or something else?
108
+ 2. Should the route read from `APIDataNode`, `MetaTable`, or something else?
109
109
  3. Does the route need request-local user context?
110
110
  4. Is this API serving Command Center by default, or did the user explicitly ask for a different consumer?
111
111
  5. Does this task require the AppComponents skill, the workspace-builder skill, or both?
@@ -211,7 +211,7 @@ A route should mainly:
211
211
  When reading published data:
212
212
 
213
213
  - use `APIDataNode` for published DataNode tables
214
- - use `SimpleTableUpdater.execute_filter(...)` for simple-table rows
214
+ - use `MetaTable.execute_operation(...)` for governed MetaTable rows
215
215
 
216
216
  Do not rebuild producer logic just because the API needs the result.
217
217
 
@@ -353,7 +353,7 @@ Do not claim success until you have checked:
353
353
  - every structured route has an explicit `response_model`
354
354
  - route handlers are thin
355
355
  - `APIDataNode` is used when the route reads a published DataNode
356
- - `SimpleTableUpdater.execute_filter(...)` is used when the route reads simple-table rows
356
+ - `MetaTable.execute_operation(...)` is used when the route reads governed MetaTable rows
357
357
  - middleware is present when request-local user context is required
358
358
  - middleware is absent when the route does not consume `request.state.user`
359
359
  - endpoints built specifically for workspace visualizations live under `/workspace`
@@ -38,7 +38,7 @@ This skill must not claim ownership of:
38
38
  - workspace document creation or widget layout
39
39
  - generic FastAPI route architecture
40
40
  - tabular or operational data producer design
41
- - SimpleTable schema design
41
+ - MetaTable schema design
42
42
  - Streamlit dashboard implementation
43
43
  - scheduling, image pinning, resources, or releases
44
44
 
@@ -54,8 +54,8 @@ This skill must not claim ownership of:
54
54
  `.agents/skills/mainsequence/command_center/adapter_from_api/SKILL.md`
55
55
  - Connection-backed data access and query contract selection:
56
56
  `.agents/skills/mainsequence/command_center/connections/SKILL.md`
57
- - SimpleTables:
58
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
57
+ - MetaTables:
58
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
59
59
  - Jobs, images, resources, and releases:
60
60
  `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
61
61
  - Streamlit dashboards:
@@ -184,7 +184,7 @@ Good answers should:
184
184
 
185
185
  Better answer styles are:
186
186
 
187
- - "This workspace is showing current positions by instrument, so it can answer exposure questions but not execution-history questions."
187
+ - "This workspace is showing current positions by entity, so it can answer exposure questions but not execution-history questions."
188
188
  - "The chart indicates that the curve moves downward after the short end, so the interpretable takeaway is the shape of the discount curve, not the raw number of plotted points."
189
189
  - "The source widget is configured, but the user-facing table is empty, so the workspace does not currently support a business conclusion from the displayed data."
190
190
  - "This transform widget only prepares the dataset. The answer to the user's question comes from the downstream chart, which shows the filtered result."
@@ -202,7 +202,7 @@ The default goal is not to describe the dashboard mechanically. The goal is to e
202
202
 
203
203
  Prefer answers like:
204
204
 
205
- - "The workspace is showing the current composition of the portfolio, so the relevant interpretation is concentration by holding, not just the fact that a table exists."
205
+ - "The workspace is showing the current composition of the dataset, so the relevant interpretation is concentration by holding, not just the fact that a table exists."
206
206
  - "The dashboard is answering a pricing question through the downstream chart, which shows the resulting curve behavior. The transform and source widgets are only intermediate steps."
207
207
  - "This workspace can answer whether the strategy is long or short a given exposure, but it cannot answer why the position was created because no execution or rationale data is shown."
208
208
 
@@ -44,7 +44,7 @@ This skill must not claim ownership of:
44
44
  - generic FastAPI or backend API implementation
45
45
  - Streamlit dashboard implementation
46
46
  - tabular or operational data producer design
47
- - SimpleTable schema design
47
+ - MetaTable schema design
48
48
 
49
49
  ## Route Adjacent Work
50
50
 
@@ -62,8 +62,8 @@ This skill must not claim ownership of:
62
62
  `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
63
63
  - Streamlit dashboards:
64
64
  `.agents/skills/mainsequence/dashboards/streamlit/SKILL.md`
65
- - SimpleTables:
66
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
65
+ - MetaTables:
66
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
67
67
 
68
68
  ## Read First
69
69
 
@@ -411,11 +411,11 @@ Request/response source props:
411
411
 
412
412
  ```json
413
413
  {
414
- "connectionRef": { "id": 123, "typeId": "mainsequence.simple-table" },
415
- "queryModelId": "simple-table-sql",
414
+ "connectionRef": { "id": 123, "typeId": "mainsequence.metatable" },
415
+ "queryModelId": "metatable-sql",
416
416
  "query": {
417
- "kind": "simple-table-sql",
418
- "sql": "select * from {{simple_table}} limit 500"
417
+ "kind": "metatable-sql",
418
+ "sql": "select * from {{meta_table}} limit 500"
419
419
  },
420
420
  "timeRangeMode": "dashboard",
421
421
  "variables": {},
@@ -440,7 +440,7 @@ Stream source props:
440
440
 
441
441
  ```json
442
442
  {
443
- "connectionRef": { "id": 123, "typeId": "binance.market-data" },
443
+ "connectionRef": { "id": 123, "typeId": "example.stream-data" },
444
444
  "queryModelId": "ticker-stream",
445
445
  "query": {
446
446
  "kind": "ticker-stream",
@@ -740,9 +740,9 @@ Owner widget:
740
740
  "props": {
741
741
  "graphSourceMode": "connection",
742
742
  "embeddedConnectionQuery": {
743
- "connectionRef": { "id": 123, "typeId": "mainsequence.simple-table" },
744
- "queryModelId": "simple-table-sql",
745
- "query": { "kind": "simple-table-sql", "sql": "select * from {{simple_table}}" }
743
+ "connectionRef": { "id": 123, "typeId": "mainsequence.metatable" },
744
+ "queryModelId": "metatable-sql",
745
+ "query": { "kind": "metatable-sql", "sql": "select * from {{meta_table}}" }
746
746
  }
747
747
  },
748
748
  "bindings": {
@@ -762,9 +762,9 @@ Hidden source widget:
762
762
  "widgetId": "connection-query",
763
763
  "title": "Graph Source",
764
764
  "props": {
765
- "connectionRef": { "id": 123, "typeId": "mainsequence.simple-table" },
766
- "queryModelId": "simple-table-sql",
767
- "query": { "kind": "simple-table-sql", "sql": "select * from {{simple_table}}" }
765
+ "connectionRef": { "id": 123, "typeId": "mainsequence.metatable" },
766
+ "queryModelId": "metatable-sql",
767
+ "query": { "kind": "metatable-sql", "sql": "select * from {{meta_table}}" }
768
768
  },
769
769
  "managedBy": {
770
770
  "ownerInstanceId": "graph-1",
@@ -39,8 +39,8 @@ This skill must not claim ownership of:
39
39
  `.agents/skills/mainsequence/command_center/connections/SKILL.md`
40
40
  - APIs and FastAPI:
41
41
  `.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
42
- - SimpleTables:
43
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
42
+ - MetaTables:
43
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
44
44
  - Jobs, images, resources, and releases:
45
45
  `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
46
46
  - Streamlit dashboards:
@@ -66,9 +66,9 @@ Before producing a workspace design, collect or infer:
66
66
  - the business question or workflow the workspace should support
67
67
  - the intended users and their decisions
68
68
  - the primary data objects:
69
- - SimpleTables
70
- - assets
71
- - portfolios
69
+ - MetaTables
70
+ - data assets
71
+ - domain records
72
72
  - jobs
73
73
  - APIs
74
74
  - agents
@@ -181,12 +181,7 @@ mainsequence cc registered_widget_type detail <WIDGET_ID> --json
181
181
  - use the registered statistic widget for KPIs, single-value summaries, status metrics, and compact numerical cards derived from a bound tabular dataset
182
182
  - use statistic widgets when the user needs an at-a-glance answer rather than a full chart or table
183
183
  - use `echarts-spec` when the visualization is non-standard, needs richer chart semantics, and a general ECharts chart is the right fit; this chart normally needs an AppComponent or API-backed upstream binding
184
- - use `lightweight-chart-ts-spec` when the visualization is non-standard, time-series heavy, or financial-market oriented; this chart normally needs an AppComponent or API-backed upstream binding
185
-
186
- #### Markets and portfolio views:
187
-
188
- - use market widgets such as price, positions, curve, and zero-curve widgets when the workspace is about market data, portfolio inspection, or instrument analytics
189
- - verify the exact market widget ids and contracts from the registry before proposing them
184
+ - use `lightweight-chart-ts-spec` when the visualization is non-standard or time-series heavy; this chart normally needs an AppComponent or API-backed upstream binding
190
185
 
191
186
  #### Infrastructure and lineage:
192
187
 
@@ -259,7 +254,7 @@ If the design needs data or behavior that does not exist yet, route it explicitl
259
254
  - new or refreshed time-series/data pipeline:
260
255
  data publishing skill
261
256
  - operational/application records:
262
- SimpleTable skill
257
+ MetaTable skill
263
258
  - widget-facing backend endpoint:
264
259
  API surfaces skill
265
260
  - custom form or interaction:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mainsequence-dashboards-streamlit
3
- description: Use this skill when the task is about building a Streamlit dashboard in a Main Sequence project. This skill owns dashboard folder structure, app-owned page bootstrapping, sidebar and session patterns, optional instrument form usage, and dashboard-specific validation rules. It does not own FastAPI APIs, Command Center workspace documents, or release orchestration semantics.
3
+ description: Use this skill when the task is about building a Streamlit dashboard in a Main Sequence project. This skill owns dashboard folder structure, app-owned page bootstrapping, sidebar and session patterns, and dashboard-specific validation rules. It does not own FastAPI APIs, Command Center workspace documents, or release orchestration semantics.
4
4
  ---
5
5
 
6
6
  # Main Sequence Streamlit Dashboards
@@ -14,7 +14,6 @@ This skill is for:
14
14
  - dashboard folder structure
15
15
  - app-owned Streamlit page bootstrapping
16
16
  - app-owned Streamlit helpers and components
17
- - optional instrument form rendering through `mainsequence.markets.instruments.streamlit`
18
17
  - dashboard-side reads from platform data products
19
18
 
20
19
  ## This Skill Can Do
@@ -24,8 +23,8 @@ This skill is for:
24
23
  - `app.py`
25
24
  - `README.md`
26
25
  - choose a plain Streamlit page bootstrap using `st.set_page_config(...)`
27
- - review dashboard-owned helpers for asset selection, valuation date settings, and user display
28
- - use the instrument form factory when the dashboard edits rich Pydantic models
26
+ - review dashboard-owned helpers for entity selection, effective date settings, and user display
27
+ - use model-driven form helpers when the dashboard edits rich Pydantic models
29
28
  - review dashboard reads from `APIDataNode` and other platform objects from the dashboard side
30
29
  - keep dashboard implementation aligned with Main Sequence packaging and release expectations
31
30
 
@@ -38,7 +37,7 @@ This skill must not claim ownership of:
38
37
  - AppComponent contracts
39
38
  - project-resource or release orchestration semantics
40
39
  - DataNode producer implementation
41
- - SimpleTable schema design
40
+ - MetaTable schema design
42
41
 
43
42
  ## Route Adjacent Work
44
43
 
@@ -52,15 +51,14 @@ This skill must not claim ownership of:
52
51
  `.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
53
52
  - DataNodes:
54
53
  `.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
55
- - SimpleTables:
56
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
54
+ - MetaTables:
55
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
57
56
 
58
57
  ## Read First
59
58
 
60
59
  1. `docs/tutorial/dashboards/streamlit/streamlit_integration_1.md`
61
60
  2. `docs/tutorial/dashboards/streamlit/streamlit_integration_2.md`
62
61
  3. `docs/knowledge/dashboards/streamlit/index.md`
63
- 4. `docs/knowledge/dashboards/streamlit/instrument_forms.md`
64
62
 
65
63
  If the dashboard is being deployed or released, also read:
66
64
 
@@ -81,9 +79,9 @@ Before changing a Streamlit dashboard, collect or infer:
81
79
  - plain Streamlit only
82
80
  - app-owned helper components
83
81
  - whether the dashboard works with:
84
- - assets
82
+ - data assets
85
83
  - valuation dates
86
- - instrument configuration forms
84
+ - model configuration forms
87
85
  - which platform data products the dashboard reads
88
86
 
89
87
  If the dashboard root or entrypoint is unclear, stop before changing packaging-sensitive behavior.
@@ -96,7 +94,7 @@ For every non-trivial Streamlit dashboard task, decide:
96
94
  2. Does the root contain both `app.py` and `README.md`?
97
95
  3. What page setup and app-owned helper structure should the dashboard use?
98
96
  4. Which app-owned helper components should be reused instead of duplicating UI code?
99
- 5. Does the dashboard need model-driven instrument forms?
97
+ 5. Does the dashboard need model-driven forms?
100
98
  6. Is the task really dashboard implementation, or is it actually an API, AppComponent, or release problem?
101
99
 
102
100
  ## Build Rules
@@ -146,8 +144,7 @@ Do not push producer semantics, release orchestration, or unrelated API logic in
146
144
 
147
145
  Examples:
148
146
 
149
- - keep asset selection and logged-user display as app-owned Streamlit helpers
150
- - use `mainsequence.markets.instruments.streamlit` for rich model-driven instrument forms when the optional extra is installed
147
+ - keep logged-user display as app-owned Streamlit helpers
151
148
  - use `APIDataNode.build_from_identifier(...)` when a dashboard knows which published table it needs to read
152
149
 
153
150
  Do not push general-purpose dashboard UI helpers into the SDK.
@@ -169,7 +166,7 @@ When reviewing a Streamlit dashboard task, look for:
169
166
  - missing `README.md` next to `app.py`
170
167
  - stale imports from `mainsequence.dashboards.streamlit`
171
168
  - missing Streamlit dependencies in the dashboard project when the app imports Streamlit directly
172
- - hand-built model forms that should use the instrument form factory
169
+ - hand-built model forms that should use model-driven helpers
173
170
  - dashboard code taking on API or release responsibilities
174
171
  - inconsistent page structure across a multipage app
175
172
  - dashboard logic that reads platform objects in an unclear or fragile way
@@ -182,7 +179,7 @@ Do not claim success until you have checked:
182
179
  - `README.md` exists next to `app.py`
183
180
  - pages use clear app-owned Streamlit setup
184
181
  - shared UI helper reuse is intentional and local to the dashboard project
185
- - instrument forms use the model-driven helpers when rich finance models are involved
182
+ - model forms use the model-driven helpers when rich domain models are involved
186
183
  - the dashboard reads the intended published data products
187
184
  - the task did not confuse dashboard implementation with release orchestration or API design
188
185
 
@@ -1,31 +1,31 @@
1
1
  ---
2
2
  name: mainsequence-data-exploration
3
- description: Use this skill when the task is to discover what `DataNode` or `SimpleTable` data already exists on the Main Sequence platform before implementation starts.
3
+ description: Use this skill when the task is to discover what `DataNode` or `MetaTable` data already exists on the Main Sequence platform before implementation starts.
4
4
  ---
5
5
 
6
6
  # Main Sequence Data Exploration
7
7
 
8
8
  ## Overview
9
9
 
10
- Use this skill when the task is about discovering what `DataNode` or `SimpleTable` data is already available on the platform before implementation starts.
10
+ Use this skill when the task is about discovering what `DataNode` or `MetaTable` data is already available on the platform before implementation starts.
11
11
 
12
12
  This skill is for discovery only.
13
13
 
14
14
  It helps answer questions such as:
15
15
 
16
16
  - what published data already exists on this platform
17
- - whether the right surface is a `DataNode` or `SimpleTable`
18
- - which identifier, storage id, or object id should be used
17
+ - whether the right surface is a `DataNode` or `MetaTable`
18
+ - which identifier, storage UID, or object UID should be used
19
19
  - what metadata is available for those objects
20
20
  - what still needs to be clarified before implementation starts
21
21
 
22
22
  ## This Skill Can Do
23
23
 
24
24
  - discover published `DataNode` tables through the CLI
25
- - inspect published table identifiers, storage ids, and metadata
25
+ - inspect published table identifiers, storage UIDs, and metadata
26
26
  - search for tables by keyword, description, or column name
27
27
  - inspect organization-visible table identifiers
28
- - inspect `SimpleTable` objects through the CLI
28
+ - inspect registered `MetaTable` objects through the SDK client
29
29
  - summarize what data is available, what is missing, and what evidence supports that conclusion
30
30
 
31
31
  ## This Skill Must Not Claim
@@ -33,7 +33,7 @@ It helps answer questions such as:
33
33
  This skill must not claim ownership of:
34
34
 
35
35
  - producing or modifying `DataNode` pipelines
36
- - designing `SimpleTable` schemas or mutation behavior
36
+ - designing `MetaTable` registration or operation behavior
37
37
  - deciding code-level read patterns for discovered datasets
38
38
  - building APIs or dashboards
39
39
  - scheduling jobs, images, or releases
@@ -47,16 +47,14 @@ This skill discovers and identifies data. It does not publish, redesign, or defi
47
47
  `.agents/skills/mainsequence/project_builder/SKILL.md`
48
48
  - `DataNode` creation or modification:
49
49
  `.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
50
- - `SimpleTable` schema or updater work:
51
- `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
50
+ - `MetaTable` registration or operation work:
51
+ `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
52
52
  - FastAPI or application-facing implementation:
53
53
  `.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
54
54
  - Streamlit dashboards:
55
55
  `.agents/skills/mainsequence/dashboards/streamlit/SKILL.md`
56
56
  - Command Center surfaces:
57
57
  `.agents/skills/mainsequence/command_center/workspace_builder/SKILL.md`
58
- - market-specific object discovery:
59
- `.agents/skills/mainsequence/markets_platform/assets_and_translation/SKILL.md`
60
58
  - project-state reconciliation after exploration:
61
59
  `.agents/skills/mainsequence/maintenance/local_journal/SKILL.md`
62
60
  - blocker and failure analysis:
@@ -67,7 +65,7 @@ This skill discovers and identifies data. It does not publish, redesign, or defi
67
65
  1. `AGENTS.md`
68
66
  2. `docs/cli/index.md`
69
67
  3. `docs/knowledge/data_nodes.md`
70
- 4. `docs/knowledge/simple_tables/simple_table.md` when the exploration touches row-oriented storage
68
+ 4. `docs/knowledge/meta_tables/index.md` when the exploration touches row-oriented storage
71
69
 
72
70
  ## Inputs This Skill Needs
73
71
 
@@ -76,14 +74,14 @@ Before exploring, collect or infer:
76
74
  - the business question being asked
77
75
  - whether the user is exploring organization-wide data or project-scoped data
78
76
  - whether the target is a published table or a row-oriented table
79
- - whether the user already knows an identifier, keyword, or object id
77
+ - whether the user already knows an identifier, keyword, or object UID
80
78
  - whether metadata discovery alone answers the question
81
79
 
82
80
  ## Required Decisions
83
81
 
84
82
  For every non-trivial exploration task, decide:
85
83
 
86
- 1. Is the data surface a `DataNode` or `SimpleTable`?
84
+ 1. Is the data surface a `DataNode` or `MetaTable`?
87
85
  2. Do we know the identifier already, or do we need to search first?
88
86
  3. What metadata or object details are needed to complete the discovery?
89
87
  4. Which implementation skill should receive the handoff after discovery?
@@ -110,13 +108,11 @@ Typical commands include:
110
108
  - `mainsequence data-node list`
111
109
  - `mainsequence data-node list --show-filters`
112
110
  - `mainsequence data-node list --filter KEY=VALUE`
113
- - `mainsequence data-node detail <DATA_NODE_STORAGE_ID>`
114
- - `mainsequence simple_table list`
115
- - `mainsequence simple_table detail <SIMPLE_TABLE_ID>`
111
+ - `mainsequence data-node detail <DATA_NODE_STORAGE_UID>`
116
112
 
117
113
  ### 2. Stop at discovery boundaries
118
114
 
119
- Use the CLI to identify what exists and collect the relevant identifiers, object ids, and metadata.
115
+ Use the CLI or SDK client to identify what exists and collect the relevant identifiers, object UIDs, and metadata.
120
116
 
121
117
  Do not define code-level read patterns here.
122
118
 
@@ -131,7 +127,7 @@ For `DataNode` discovery specifically:
131
127
  When you say data exists, include the evidence you used:
132
128
 
133
129
  - identifier
134
- - storage id or object id
130
+ - storage UID or object UID
135
131
  - object type
136
132
  - command used to discover it
137
133
  - metadata or filter evidence when available
@@ -143,7 +139,7 @@ Once the discovery is complete, hand off to the correct implementation skill.
143
139
  Examples:
144
140
 
145
141
  - if the task is about publishing or modifying time-series data, hand off to `.agents/skills/mainsequence/data_publishing/data_nodes/SKILL.md`
146
- - if the task is about row-oriented operational data, hand off to `.agents/skills/mainsequence/data_publishing/simple_tables/SKILL.md`
142
+ - if the task is about row-oriented operational data, hand off to `.agents/skills/mainsequence/data_publishing/meta_tables/SKILL.md`
147
143
  - if the task is about APIs or dashboards, hand off to the relevant surface skill after discovery is complete
148
144
 
149
145
  ## Review Rules
@@ -151,7 +147,7 @@ Examples:
151
147
  When reviewing an exploration result, look for:
152
148
 
153
149
  - a discovery claim without CLI evidence
154
- - confusion between `DataNode` and `SimpleTable`
150
+ - confusion between `DataNode` and `MetaTable`
155
151
  - jumping into implementation work before discovery is complete
156
152
  - claiming implementation conclusions from a discovery-only pass
157
153
 
@@ -161,7 +157,7 @@ Do not claim exploration success until you have checked:
161
157
 
162
158
  - the correct platform surface was identified
163
159
  - CLI discovery was used first
164
- - existing identifiers or object ids were captured
160
+ - existing identifiers or object UIDs were captured
165
161
  - the result clearly distinguishes:
166
162
  - what exists
167
163
  - what is missing