mainsequence 4.0.6__tar.gz → 4.0.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.
Files changed (127) hide show
  1. {mainsequence-4.0.6 → mainsequence-4.0.10}/PKG-INFO +1 -1
  2. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +20 -0
  3. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/api.py +182 -136
  4. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/cli.py +1137 -472
  5. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/agent_runtime_models.py +111 -32
  6. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/base.py +26 -6
  7. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/command_center/connections.py +14 -15
  8. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/command_center/workspace.py +38 -25
  9. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/command_center/workspace_snapshot.py +21 -22
  10. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/models_helpers.py +163 -154
  11. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/models_metatables.py +2 -4
  12. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/models_tdag.py +247 -135
  13. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/models_user.py +109 -35
  14. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/base_persist_managers.py +19 -7
  15. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/build_operations.py +26 -25
  16. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/data_nodes.py +101 -8
  17. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/models.py +8 -1
  18. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/persist_managers.py +12 -4
  19. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/run_operations.py +161 -8
  20. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence.egg-info/PKG-INFO +1 -1
  21. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence.egg-info/SOURCES.txt +1 -0
  22. {mainsequence-4.0.6 → mainsequence-4.0.10}/pyproject.toml +1 -1
  23. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_cli.py +1025 -367
  24. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_command_center_models.py +115 -27
  25. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_data_node_storage_dimension_queries.py +13 -18
  26. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_data_node_update_flow.py +51 -0
  27. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_duckdb_interface_dimensions.py +34 -0
  28. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_filter_normalization.py +605 -28
  29. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_pod_project_resolution.py +47 -2
  30. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_project_batch_jobs_from_file.py +32 -15
  31. mainsequence-4.0.10/tests/test_run_configuration.py +370 -0
  32. mainsequence-4.0.10/tests/test_secret_client_model.py +11 -0
  33. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_source_table_configuration.py +68 -0
  34. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_sqlite_interface_dimensions.py +19 -0
  35. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_update_uid_guards.py +1 -1
  36. mainsequence-4.0.6/tests/test_run_configuration.py +0 -134
  37. {mainsequence-4.0.6 → mainsequence-4.0.10}/LICENSE +0 -0
  38. {mainsequence-4.0.6 → mainsequence-4.0.10}/README.md +0 -0
  39. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/AGENTS.md +0 -0
  40. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
  41. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
  42. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
  43. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
  44. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/app_components/SKILL.md +0 -0
  45. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
  46. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
  47. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
  48. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
  49. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +0 -0
  50. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
  51. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
  52. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
  53. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/maintenance/local_journal/SKILL.md +0 -0
  54. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
  55. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
  56. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/project_builder/SKILL.md +0 -0
  57. {mainsequence-4.0.6 → mainsequence-4.0.10}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
  58. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/__init__.py +0 -0
  59. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/__main__.py +0 -0
  60. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/bootstrap.py +0 -0
  61. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/__init__.py +0 -0
  62. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/browser_auth.py +0 -0
  63. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/config.py +0 -0
  64. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/docker_utils.py +0 -0
  65. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/doctor.py +0 -0
  66. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/local_ops.py +0 -0
  67. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/model_filters.py +0 -0
  68. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/project_status.py +0 -0
  69. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/pydantic_cli.py +0 -0
  70. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/sdk_utils.py +0 -0
  71. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/ssh_utils.py +0 -0
  72. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/cli/ui.py +0 -0
  73. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/__init__.py +0 -0
  74. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/client.py +0 -0
  75. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/command_center/__init__.py +0 -0
  76. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/command_center/app_component.py +0 -0
  77. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/command_center/data_models.py +0 -0
  78. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
  79. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  80. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
  81. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/exceptions.py +0 -0
  82. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/fastapi/__init__.py +0 -0
  83. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/fastapi/auth.py +0 -0
  84. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/client/utils.py +0 -0
  85. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/compute_validation.py +0 -0
  86. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/defaults.py +0 -0
  87. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/instrumentation/__init__.py +0 -0
  88. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/instrumentation/utils.py +0 -0
  89. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/logconf.py +0 -0
  90. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/runtime_flags.py +0 -0
  91. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/__init__.py +0 -0
  92. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/__main__.py +0 -0
  93. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/config.py +0 -0
  94. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/configuration_models.py +0 -0
  95. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/__init__.py +0 -0
  96. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/filters.py +0 -0
  97. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/namespacing.py +0 -0
  98. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/data_nodes/utils.py +0 -0
  99. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/filters.py +0 -0
  100. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/future_registry.py +0 -0
  101. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/meta_tables/__init__.py +0 -0
  102. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/meta_tables/compiled_sql.py +0 -0
  103. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/meta_tables/hashing.py +0 -0
  104. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/meta_tables/sqlalchemy_contracts.py +0 -0
  105. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/pydantic_metadata.py +0 -0
  106. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence/tdag/utils.py +0 -0
  107. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence.egg-info/dependency_links.txt +0 -0
  108. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence.egg-info/entry_points.txt +0 -0
  109. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence.egg-info/requires.txt +0 -0
  110. {mainsequence-4.0.6 → mainsequence-4.0.10}/mainsequence.egg-info/top_level.txt +0 -0
  111. {mainsequence-4.0.6 → mainsequence-4.0.10}/setup.cfg +0 -0
  112. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_auth_precedence.py +0 -0
  113. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_build_operations_hashing.py +0 -0
  114. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_cli_browser_auth.py +0 -0
  115. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_client.py +0 -0
  116. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_command_center_app_component_models.py +0 -0
  117. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_command_center_data_models.py +0 -0
  118. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_data_access_mixin_dimension_audit.py +0 -0
  119. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_data_node_search_join_filters.py +0 -0
  120. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_dependency_extras.py +0 -0
  121. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_logconf.py +0 -0
  122. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_meta_tables_client_models.py +0 -0
  123. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
  124. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_models_user_request_bound_auth.py +0 -0
  125. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_update_runner_uid_runtime.py +0 -0
  126. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_update_statistics.py +0 -0
  127. {mainsequence-4.0.6 → mainsequence-4.0.10}/tests/test_workspace_snapshot.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 4.0.6
3
+ Version: 4.0.10
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
@@ -179,6 +179,26 @@ Rules:
179
179
  - Do not invent another schema object or parallel record declaration.
180
180
  - Prefer `DataNodeConfiguration.records` over overriding `get_column_metadata()` for normal nodes.
181
181
 
182
+ ### DataNode table metadata is discovery-critical
183
+
184
+ Every production `DataNodeConfiguration` should set `node_metadata` with
185
+ `DataNodeMetaData`. This is not decorative metadata. The `description` is used
186
+ for embedding-based data discovery, so it must be written as a useful dataset
187
+ description rather than a vague one-line label.
188
+
189
+ Good `DataNodeMetaData.description` values should describe:
190
+
191
+ - what real-world entity or process the dataset represents
192
+ - the row grain and identity dimensions
193
+ - the important measures or columns
194
+ - the time coverage and expected update cadence when known
195
+ - the source, assumptions, caveats, and intended analytical use
196
+ - common search terms a user might use to find this dataset
197
+
198
+ Keep `identifier` short and stable. Make `description` rich enough that a user
199
+ searching semantically for the dataset can find it through the embedding model.
200
+ Do not use the description for runtime controls or configuration.
201
+
182
202
  ### 8. Use `SourceTableForeignKey` when a DataNode references a MetaTable
183
203
 
184
204
  When a DataNode source table has a column that should reference a registered