mainsequence-metatable 0.1.21.dev33__tar.gz → 0.1.22.dev35__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 (554) hide show
  1. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-meta-tables/SKILL.md +9 -6
  2. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-migrations/SKILL.md +4 -1
  3. mainsequence_metatable-0.1.22.dev35/.agents/skills/client/metatables-table-discovery/SKILL.md +244 -0
  4. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +3 -1
  5. {mainsequence_metatable-0.1.21.dev33/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.22.dev35}/PKG-INFO +3 -1
  6. mainsequence_metatable-0.1.22.dev35/docs/adr/api/0018-search-document-pipeline.svg +105 -0
  7. mainsequence_metatable-0.1.22.dev35/docs/adr/api/0018-table-search.md +229 -0
  8. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/index.md +1 -0
  9. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/data-sources.md +13 -3
  10. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/openapi.json +120 -7
  11. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/reference.md +3 -0
  12. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/tables-and-migrations.md +30 -7
  13. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/time-index-and-updates.md +2 -2
  14. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/query-and-mutate.md +7 -3
  15. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/documentation.md +1 -0
  16. {mainsequence_metatable-0.1.21.dev33/src/metatables → mainsequence_metatable-0.1.22.dev35/docs}/examples/tables.py +14 -6
  17. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/reference/capabilities.md +7 -6
  18. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/reference/cli.md +2 -1
  19. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/reference/python.md +2 -0
  20. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/mkdocs.yml +1 -0
  21. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/pyproject.toml +3 -1
  22. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35/src/mainsequence_metatable.egg-info}/PKG-INFO +3 -1
  23. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/SOURCES.txt +15 -1
  24. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/requires.txt +2 -0
  25. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/__init__.py +2 -0
  26. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/auth/local_actor.py +9 -0
  27. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/main.py +8 -2
  28. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/namespaces.py +23 -1
  29. mainsequence_metatable-0.1.22.dev35/src/metatables/api/app/routes/table_search.py +57 -0
  30. mainsequence_metatable-0.1.22.dev35/src/metatables/api/app/routes/table_search_document.py +35 -0
  31. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/relation_tables.py +14 -2
  32. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/migrations/versions/0011_table_search.py +51 -0
  33. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/import_relations.py +15 -2
  34. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/register_catalog.py +49 -2
  35. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/catalog.py +6 -5
  36. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/labels.py +3 -0
  37. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/models.py +40 -0
  38. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/table_body_filter.py +27 -9
  39. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/__init__.py +1 -0
  40. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/documents.py +176 -0
  41. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/embeddings.py +84 -0
  42. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/index.py +179 -0
  43. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/ranking.py +204 -0
  44. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/text.py +34 -0
  45. mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/worker.py +53 -0
  46. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/app.py +52 -65
  47. {mainsequence_metatable-0.1.21.dev33/docs → mainsequence_metatable-0.1.22.dev35/src/metatables}/examples/tables.py +14 -6
  48. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/models.py +62 -69
  49. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/runtime_contract.py +10 -5
  50. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/sqlalchemy_contracts.py +7 -6
  51. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/transfer_contract.py +1 -1
  52. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_bootstrap.py +8 -8
  53. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_migration.py +2 -2
  54. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/conftest.py +3 -0
  55. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/capabilities.json +64 -45
  56. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/client_signatures.json +4 -8
  57. mainsequence_metatable-0.1.22.dev35/tests/contracts/test_runtime_contract_compat.py +26 -0
  58. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_table_contracts.py +33 -0
  59. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_catalog_contract.py +1 -1
  60. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_package.py +26 -11
  61. mainsequence_metatable-0.1.22.dev35/tests/e2e/test_table_search_api.py +251 -0
  62. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_search_document_api.py +7 -6
  63. mainsequence_metatable-0.1.22.dev35/tests/e2e/test_table_search_scale.py +163 -0
  64. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_register_catalog.py +56 -1
  65. mainsequence_metatable-0.1.22.dev35/tests/operations/test_search_documents.py +120 -0
  66. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_client_skills.py +1 -0
  67. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_installed_distribution.py +3 -1
  68. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/uv.lock +375 -1
  69. mainsequence_metatable-0.1.21.dev33/src/metatables/api/app/routes/table_search_document.py +0 -54
  70. mainsequence_metatable-0.1.21.dev33/src/metatables/api/backend/operations/search_documents.py +0 -65
  71. mainsequence_metatable-0.1.21.dev33/tests/operations/test_search_documents.py +0 -30
  72. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  73. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
  74. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.mainsequence/workflows/metatables-api.yaml +0 -0
  75. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/LICENSE +0 -0
  76. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/MANIFEST.in +0 -0
  77. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/README.md +0 -0
  78. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/alembic.ini +0 -0
  79. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/api/metatables/main.py +0 -0
  80. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/compose.database-tests.yml +0 -0
  81. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
  82. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  83. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  84. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  85. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  86. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
  87. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  88. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  89. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
  90. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0009-shared-credential-store.md +0 -0
  91. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  92. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  93. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  94. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
  95. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
  96. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0016-impact-preflight.md +0 -0
  97. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0017-hosted-request-identity.md +0 -0
  98. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  99. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  100. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/authentication-and-errors.md +0 -0
  101. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/overview.md +0 -0
  102. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/assets/branding/metatables.svg +0 -0
  103. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/assets/diagrams/local-client-experience.svg +0 -0
  104. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/bounded-transfers.md +0 -0
  105. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/build-an-updater.md +0 -0
  106. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/define-and-migrate-tables.md +0 -0
  107. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/deploy-application-migrations.md +0 -0
  108. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/installation-and-connection.md +0 -0
  109. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/local-storage.md +0 -0
  110. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/quickstart.md +0 -0
  111. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/read-existing-time-index-tables.md +0 -0
  112. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/register-existing-tables.md +0 -0
  113. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/tutorial.md +0 -0
  114. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/upgrade-legacy-app.md +0 -0
  115. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/architecture.md +0 -0
  116. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/data-sources.md +0 -0
  117. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/identity-and-scope.md +0 -0
  118. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/permissions-namespaces-labels.md +0 -0
  119. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/runs-and-execution-graphs.md +0 -0
  120. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  121. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/time-index-tables-and-updates.md +0 -0
  122. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/architecture-and-boundaries.md +0 -0
  123. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/database-backends.md +0 -0
  124. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/releasing.md +0 -0
  125. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/testing.md +0 -0
  126. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/README.md +0 -0
  127. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/__init__.py +0 -0
  128. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/bounded_reader.py +0 -0
  129. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/README.md +0 -0
  130. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/mssql.json +0 -0
  131. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/mysql.json +0 -0
  132. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/postgresql.json +0 -0
  133. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/register.py +0 -0
  134. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/external_table.py +0 -0
  135. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/README.md +0 -0
  136. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/__init__.py +0 -0
  137. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/__main__.py +0 -0
  138. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/__init__.py +0 -0
  139. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/env.py +0 -0
  140. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/script.py.mako +0 -0
  141. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  142. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/tables.py +0 -0
  143. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/query.py +0 -0
  144. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/quickstart.py +0 -0
  145. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/reader.py +0 -0
  146. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/scripts/__init__.py +0 -0
  147. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/scripts/setup_metatables.py +0 -0
  148. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/README.md +0 -0
  149. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/__init__.py +0 -0
  150. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/__main__.py +0 -0
  151. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/data/README.md +0 -0
  152. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  153. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/frames.py +0 -0
  154. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/__init__.py +0 -0
  155. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/env.py +0 -0
  156. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/registry.py +0 -0
  157. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  158. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  159. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  160. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  161. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  162. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/operations.py +0 -0
  163. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/tables.py +0 -0
  164. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/updaters.py +0 -0
  165. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/updater.py +0 -0
  166. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/index.md +0 -0
  167. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/catalog-migrations.md +0 -0
  168. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/configuration.md +0 -0
  169. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/hosted-runtime.md +0 -0
  170. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/local-runtime.md +0 -0
  171. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/recovery-and-observability.md +0 -0
  172. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/run-history.md +0 -0
  173. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/run-logs.md +0 -0
  174. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/security/index.md +0 -0
  175. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/security/ownership-and-sharing.md +0 -0
  176. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/security/permissions.md +0 -0
  177. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/__init__.py +0 -0
  178. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/build_reference.py +0 -0
  179. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_boundaries.py +0 -0
  180. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_client_api_coverage.py +0 -0
  181. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_distribution_sources.py +0 -0
  182. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_docs.py +0 -0
  183. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_examples_debug.py +0 -0
  184. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_project.py +0 -0
  185. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/dev_release_version.py +0 -0
  186. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/test_databases.py +0 -0
  187. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/test_postgresql.py +0 -0
  188. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/setup.cfg +0 -0
  189. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  190. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  191. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  192. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/_admin_source.json +0 -0
  193. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/_build.py +0 -0
  194. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/_skill_bundle.py +0 -0
  195. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/__init__.py +0 -0
  196. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/__init__.py +0 -0
  197. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/auth/__init__.py +0 -0
  198. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/auth/boundary.py +0 -0
  199. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/bootstrap.py +0 -0
  200. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/configuration.py +0 -0
  201. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/credential_admin.py +0 -0
  202. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/development.py +0 -0
  203. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/development_client.py +0 -0
  204. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/error_logging.py +0 -0
  205. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/platform_cache.py +0 -0
  206. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/__init__.py +0 -0
  207. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/column_search.py +0 -0
  208. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/contract_validation.py +0 -0
  209. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/data_sources.py +0 -0
  210. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  211. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/migration_connection.py +0 -0
  212. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/run_logs.py +0 -0
  213. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/runtime_context.py +0 -0
  214. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/schema_graph.py +0 -0
  215. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/security.py +0 -0
  216. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_cascade.py +0 -0
  217. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_crud.py +0 -0
  218. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_delete.py +0 -0
  219. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_filter.py +0 -0
  220. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_import.py +0 -0
  221. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_introspection.py +0 -0
  222. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_patch.py +0 -0
  223. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_registration.py +0 -0
  224. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_response.py +0 -0
  225. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_sql.py +0 -0
  226. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  227. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  228. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  229. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  230. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/timescale_policies.py +0 -0
  231. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_batch.py +0 -0
  232. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  233. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_constants.py +0 -0
  234. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_crud.py +0 -0
  235. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_details.py +0 -0
  236. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_graph.py +0 -0
  237. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  238. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_registration.py +0 -0
  239. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_runs.py +0 -0
  240. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_statistics.py +0 -0
  241. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/runtime.py +0 -0
  242. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/runtime_control.py +0 -0
  243. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/runtime_database.py +0 -0
  244. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/source_passwords.py +0 -0
  245. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/transfer.py +0 -0
  246. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/__init__.py +0 -0
  247. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/__init__.py +0 -0
  248. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/access.py +0 -0
  249. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  250. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  251. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  252. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  253. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  254. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  255. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  256. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  257. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  258. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  259. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  260. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  261. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  262. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  263. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  264. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  265. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  266. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  267. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  268. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  269. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  270. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/catalog.py +0 -0
  271. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  272. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  273. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/contracts.py +0 -0
  274. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/hosted.py +0 -0
  275. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  276. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  277. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/native.py +0 -0
  278. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/operations.py +0 -0
  279. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/pages.py +0 -0
  280. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  281. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/registry.py +0 -0
  282. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/relational.py +0 -0
  283. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  284. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  285. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/streaming.py +0 -0
  286. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/timescale.py +0 -0
  287. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/__init__.py +0 -0
  288. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  289. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  290. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  291. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/values.py +0 -0
  292. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/__init__.py +0 -0
  293. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  294. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  295. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  296. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/label_rules.py +0 -0
  297. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  298. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/update_constants.py +0 -0
  299. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/__init__.py +0 -0
  300. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  301. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  302. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  303. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  304. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  305. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  306. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
  307. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  308. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  309. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  310. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  311. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/__init__.py +0 -0
  312. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/env.py +0 -0
  313. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  314. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  315. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  316. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  317. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  318. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  319. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  320. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  321. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  322. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
  323. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
  324. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  325. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/__init__.py +0 -0
  326. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  327. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  328. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/create_table.py +0 -0
  329. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  330. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  331. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  332. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/__init__.py +0 -0
  333. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/cascade.py +0 -0
  334. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/database.py +0 -0
  335. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/grants.py +0 -0
  336. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/impact.py +0 -0
  337. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/locking.py +0 -0
  338. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  339. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/projections.py +0 -0
  340. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  341. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  342. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  343. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  344. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/table_response.py +0 -0
  345. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  346. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  347. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/updates.py +0 -0
  348. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  349. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  350. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/metatables/__init__.py +0 -0
  351. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/metatables/configuration.yaml +0 -0
  352. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/metatables/main.py +0 -0
  353. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/__init__.py +0 -0
  354. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/admin_install.py +0 -0
  355. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/filters.py +0 -0
  356. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/local.py +0 -0
  357. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/migrations.py +0 -0
  358. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/project.py +0 -0
  359. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/skills.py +0 -0
  360. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/compiled_sql/__init__.py +0 -0
  361. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/compiled_sql/mssql.py +0 -0
  362. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/compiled_sql/v1.py +0 -0
  363. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/dtype_codec.py +0 -0
  364. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/endpoint.py +0 -0
  365. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/README.md +0 -0
  366. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/__init__.py +0 -0
  367. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/bounded_reader.py +0 -0
  368. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/README.md +0 -0
  369. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/mssql.json +0 -0
  370. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/mysql.json +0 -0
  371. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/postgresql.json +0 -0
  372. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/register.py +0 -0
  373. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/external_table.py +0 -0
  374. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/README.md +0 -0
  375. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/__init__.py +0 -0
  376. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/__main__.py +0 -0
  377. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  378. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/env.py +0 -0
  379. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  380. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  381. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/tables.py +0 -0
  382. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/query.py +0 -0
  383. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/quickstart.py +0 -0
  384. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/reader.py +0 -0
  385. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/scripts/__init__.py +0 -0
  386. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  387. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/README.md +0 -0
  388. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/__init__.py +0 -0
  389. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/__main__.py +0 -0
  390. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/data/README.md +0 -0
  391. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  392. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/frames.py +0 -0
  393. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  394. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  395. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  396. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  397. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  398. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  399. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  400. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  401. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/operations.py +0 -0
  402. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/tables.py +0 -0
  403. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/updaters.py +0 -0
  404. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/updater.py +0 -0
  405. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/future_registry.py +0 -0
  406. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/hashing.py +0 -0
  407. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/instrumentation.py +0 -0
  408. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/local_connection.py +0 -0
  409. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/local_files.py +0 -0
  410. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/local_run_logs.py +0 -0
  411. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/log_contract.py +0 -0
  412. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/__init__.py +0 -0
  413. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/alembic.py +0 -0
  414. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/connection.py +0 -0
  415. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/env.py +0 -0
  416. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/provider.py +0 -0
  417. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/registry.py +0 -0
  418. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/runner.py +0 -0
  419. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/scaffold.py +0 -0
  420. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/sqlite.py +0 -0
  421. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/templates/__init__.py +0 -0
  422. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/templates/env.py.mako +0 -0
  423. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/templates/script.py.mako +0 -0
  424. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/tls.py +0 -0
  425. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/pydantic_metadata.py +0 -0
  426. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/run_logging.py +0 -0
  427. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/runtime.py +0 -0
  428. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/runtime_context.py +0 -0
  429. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/schema_names.py +0 -0
  430. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/sdk_compat.py +0 -0
  431. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/storage_layout_contract.py +0 -0
  432. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/time_index_table_refs.py +0 -0
  433. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/transfer.py +0 -0
  434. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/transport.py +0 -0
  435. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/update_configuration_contract.py +0 -0
  436. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/__init__.py +0 -0
  437. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/configuration.py +0 -0
  438. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/dependencies.py +0 -0
  439. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/managers.py +0 -0
  440. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/namespacing.py +0 -0
  441. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/runner.py +0 -0
  442. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/updaters.py +0 -0
  443. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/utils.py +0 -0
  444. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/upload.py +0 -0
  445. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_bootstrap_failure_cause.py +0 -0
  446. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_data_source_identity.py +0 -0
  447. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_development_client.py +0 -0
  448. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_hosted_environment_target.py +0 -0
  449. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_local_mode.py +0 -0
  450. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_platform_fact_cache.py +0 -0
  451. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_request_identity.py +0 -0
  452. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_database.py +0 -0
  453. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_scaffold.py +0 -0
  454. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_selection.py +0 -0
  455. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_storage_binding.py +0 -0
  456. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_source_passwords.py +0 -0
  457. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_catalog_foundation.py +0 -0
  458. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_contract_projection.py +0 -0
  459. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_database_config.py +0 -0
  460. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_index_statistics.py +0 -0
  461. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/database_operations.json +0 -0
  462. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_bounded_transfer.py +0 -0
  463. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_compiler_runtime_source.py +0 -0
  464. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_relation_batching.py +0 -0
  465. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_relation_import.py +0 -0
  466. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_storage_layouts.py +0 -0
  467. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/Dockerfile +0 -0
  468. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/Dockerfile.dockerignore +0 -0
  469. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/__init__.py +0 -0
  470. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/conftest.py +0 -0
  471. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/provider/__init__.py +0 -0
  472. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/provider/env.py +0 -0
  473. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  474. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_api_contract.py +0 -0
  475. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_application_migration.py +0 -0
  476. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  477. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_credential_catalog.py +0 -0
  478. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_physical_contract.py +0 -0
  479. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_relation_import.py +0 -0
  480. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  481. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_sql_security.py +0 -0
  482. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_update_client.py +0 -0
  483. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_operations/test_physical_operations.py +0 -0
  484. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_operations/test_postgresql_operations.py +0 -0
  485. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  486. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/documentation/test_project_checks.py +0 -0
  487. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_admin_installation.py +0 -0
  488. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_api_endpoint.py +0 -0
  489. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_application_owned_migrations.py +0 -0
  490. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_catalog_outage.py +0 -0
  491. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_api_contract.py +0 -0
  492. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_api_coverage.py +0 -0
  493. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_migration_scaffold.py +0 -0
  494. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_migration_tls.py +0 -0
  495. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_signatures.py +0 -0
  496. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_value_behaviors.py +0 -0
  497. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_data_source_registry.py +0 -0
  498. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_local_actor_client_api.py +0 -0
  499. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_local_cli_workflow.py +0 -0
  500. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_local_client_selection.py +0 -0
  501. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  502. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_namespaces_admin_http.py +0 -0
  503. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_public_imports.py +0 -0
  504. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_remaining_client_routes.py +0 -0
  505. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_run_graphs.py +0 -0
  506. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_run_logs.py +0 -0
  507. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_runtime_upgrade.py +0 -0
  508. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_sdk_local_startup.py +0 -0
  509. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_sqlite_runtime.py +0 -0
  510. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_delete_client_api.py +0 -0
  511. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_filter_client_api.py +0 -0
  512. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_introspection_client_api.py +0 -0
  513. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_patch_client_api.py +0 -0
  514. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_stats_api.py +0 -0
  515. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_update_pipeline.py +0 -0
  516. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_updates_http.py +0 -0
  517. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  518. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  519. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_timescale_policies_client_api.py +0 -0
  520. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_batch_client_api.py +0 -0
  521. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  522. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  523. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  524. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_registration_client_api.py +0 -0
  525. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_documented_examples.py +0 -0
  526. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_postgresql_examples.py +0 -0
  527. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_setup_launch.py +0 -0
  528. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_tutorial.py +0 -0
  529. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_credential_store.py +0 -0
  530. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_data_source_rules.py +0 -0
  531. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_local_data_sources.py +0 -0
  532. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_local_run_logs.py +0 -0
  533. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_connection.py +0 -0
  534. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_sql.py +0 -0
  535. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_tables.py +0 -0
  536. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  537. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_source_validation.py +0 -0
  538. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_sqlite_operations.py +0 -0
  539. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/labels/test_labels.py +0 -0
  540. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_create_table_operation.py +0 -0
  541. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_create_table_postgres.py +0 -0
  542. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_physical_operation_journal.py +0 -0
  543. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_timescale_policies.py +0 -0
  544. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_dev_release_version.py +0 -0
  545. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_distribution_sources.py +0 -0
  546. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_editable_build.py +0 -0
  547. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_governed_sql_scope.py +0 -0
  548. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_local_actor_membership.py +0 -0
  549. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_migration_boundary.py +0 -0
  550. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_namespace_grants.py +0 -0
  551. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_security_api.py +0 -0
  552. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_table_body_filter.py +0 -0
  553. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_table_grants.py +0 -0
  554. {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_table_queries.py +0 -0
@@ -64,10 +64,12 @@ are fingerprints, not table identity. See `docs/concepts/identity-and-scope.md`.
64
64
  ## SQLAlchemy contract rules
65
65
 
66
66
  Use `src/metatables/examples/tables.py` as the tested pattern. Declare an explicit
67
- application-prefixed physical name with `schema_table_name(app, concept)`, a
68
- stable logical identifier, and an intention-rich `__metatable_description__`.
69
- Give columns useful `info={"label": ..., "description": ...}` metadata. Explain
70
- row grain and downstream meaning rather than repeating types.
67
+ application-prefixed physical name with `schema_table_name(app, concept)` and a
68
+ stable logical identifier. Write the table description, labels and every column's
69
+ `info={"label": ..., "description": ...}` by the rules in the
70
+ [table discovery skill](../metatables-table-discovery/SKILL.md), which is
71
+ authoritative for that metadata. Before authoring a new table, search for an
72
+ existing one with that skill.
71
73
 
72
74
  Keep foreign keys and indexes in SQLAlchemy metadata. Reference explicit physical
73
75
  names using `ForeignKey`/`ForeignKeyConstraint`; do not ask users to hand-author
@@ -126,8 +128,9 @@ access; row/time limits and transaction handling remain in the API. Refer to the
126
128
  query guide for engine-specific statement/batch behavior. Application DDL belongs
127
129
  to the separate migration-provider workflow.
128
130
 
129
- Column search is supported. Description search, search-index refresh, and
130
- legacy convenience sharing/label actions are not supported API workflows.
131
+ To find tables, use `MetaTable.search` as described in the
132
+ [table discovery skill](../metatables-table-discovery/SKILL.md). Legacy convenience
133
+ sharing/label actions are not supported API workflows.
131
134
  Use `get_access`, `set_access` and `revoke_access` for supported Reader/Writer
132
135
  sharing. Labels can be changed through the documented table PATCH path. Authorization is
133
136
  owned by the API catalog; see `docs/concepts/permissions-namespaces-labels.md`.
@@ -31,7 +31,10 @@ Read `docs/client/define-and-migrate-tables.md`,
31
31
  `src/metatables/examples/tables.py`. Managed authoring is migration-first: define SQLAlchemy
32
32
  models, select a provider, author and apply a revision with the client, then
33
33
  finalize catalog bindings through the API. Use the
34
- [table skill](../metatables-meta-tables/SKILL.md) for contract design.
34
+ [table skill](../metatables-meta-tables/SKILL.md) for contract design. The catalog
35
+ sync in `metatables migrations upgrade` also copies changed table descriptions,
36
+ labels and column metadata to existing tables; a metadata-only change needs no
37
+ revision (see the [table discovery skill](../metatables-table-discovery/SKILL.md)).
35
38
 
36
39
  Check `docs/reference/capabilities.md` and `metatables migrations --help` before
37
40
  promising a command. The API's own catalog migrations are a separate history: a
@@ -0,0 +1,244 @@
1
+ ---
2
+ name: metatables-table-discovery
3
+ description: "Find existing MetaTables and time-index tables by meaning with table search, and write the table descriptions, labels and column metadata that make tables findable. Authoritative for every description, label and column `info` authored on MetaTables SQLAlchemy models in consuming applications. Excludes API/server changes, client-library implementation and table storage design."
4
+ ---
5
+
6
+ # Finding tables and writing findable metadata
7
+
8
+ Table search ranks the tables you can read using one document per table, built
9
+ from the table's own metadata: identifier, description, labels, namespace, time
10
+ index and cadence, and every column's name, type, label, description and logical
11
+ name. What you write on a model is exactly what search reads. The decision is
12
+ `docs/adr/api/0018-table-search.md`.
13
+
14
+ This skill is authoritative for descriptions, labels and column metadata. Other
15
+ MetaTables skills defer to it. Storage design (physical names, grain, foreign
16
+ keys, indexes) stays with the [table skill](../metatables-meta-tables/SKILL.md);
17
+ schema evolution with the [migrations skill](../metatables-migrations/SKILL.md).
18
+
19
+ In a copied skill, resolve `docs/` paths relative to this skill's `references/`
20
+ directory.
21
+
22
+ ## Part 1: Find a table
23
+
24
+ Search before writing code that reads data the user describes in words, and
25
+ before authoring a new table. Reusing a table beats creating a near-duplicate,
26
+ which also splits future search results.
27
+
28
+ ```python
29
+ from metatables import MetaTable, TimeIndexMetaTable
30
+
31
+ result = TimeIndexMetaTable.search("bond prices", limit=10)
32
+ for hit in result.hits:
33
+ print(hit.table.identifier, hit.score, hit.matched_columns)
34
+ ```
35
+
36
+ ```bash
37
+ metatables time-index-table search "bond prices"
38
+ metatables meta-table search "account balances" --filter namespace=ledger
39
+ ```
40
+
41
+ `MetaTable.search` covers every table; `TimeIndexMetaTable.search` only
42
+ time-index tables. Both accept the list filters (`namespace`, `labels__in`,
43
+ `data_source_uid`, ...) to narrow a search you have already started.
44
+
45
+ ### Write the query
46
+
47
+ - Use a short English noun phrase of domain words: what the rows are and the key
48
+ measure. `bond prices`, `fx spot rates`, `portfolio positions`. Not a question,
49
+ not SQL, not a physical table name.
50
+ - Run two to four variants before concluding anything: a synonym (`sovereign
51
+ debt`), a market or vendor term (`M Bonos`, `CETES`, `Valmer`), and column words
52
+ (`clean price`, `yield`).
53
+
54
+ ### Read the results
55
+
56
+ - `matched_columns` lists the columns whose name or logical name contains a query
57
+ word. A table that matches both in its description and in its columns is usually
58
+ the right one.
59
+ - `result.semantic` is `false` while the embedding model is unavailable; ranking
60
+ is then by keywords only, so try the exact words likely to appear in names and
61
+ descriptions.
62
+ - Before using a candidate, read its `description` and columns in the hit to
63
+ confirm the grain, the time index, the cadence and the units.
64
+ - Results contain only tables you can read. When the data surely exists but
65
+ nothing matches, ask the user for the owner or identifier. Do not create a
66
+ duplicate table.
67
+ - Use `MetaTable.column_search(q)` only for a pure column-name lookup.
68
+
69
+ Do not list every table and scan it, use the list filter `q` for meaning (it
70
+ matches identifier and physical name only), or conclude a table is absent from
71
+ one query.
72
+
73
+ ## Part 2: Write findable metadata
74
+
75
+ These rules apply to every `PlatformManagedMetaTable`,
76
+ `PlatformTimeIndexMetaTable` and externally registered SQLAlchemy model.
77
+
78
+ | Search reads | Write it in |
79
+ | --- | --- |
80
+ | Table description | `__metatable_description__` |
81
+ | Labels | `__metatable_labels__` |
82
+ | Identifier | `__metatable_identifier__` |
83
+ | Namespace | `__metatable_namespace__` |
84
+ | Column label, description, logical name | `mapped_column(..., info={"label": ..., "description": ..., "logical_name": ...})` |
85
+ | Time index and cadence | `__time_index_name__`, `__index_names__`, `__cadence__` |
86
+
87
+ Use only these attributes. Do not put metadata in SQLAlchemy `comment=` or `doc=`:
88
+ they are fallbacks for imported tables, and `info` wins over them.
89
+
90
+ ### Table description
91
+
92
+ Required on every table. One to three sentences, at most 500 characters, in
93
+ English, in this order:
94
+
95
+ 1. **Grain.** What one row is: "One row per ISIN per valuation date."
96
+ 2. **Subject.** The plain English words a searcher would type, then the domain or
97
+ vendor terms: "End-of-day prices and yields of Mexican government bonds (M
98
+ Bonos, Udibonos and CETES)". Always include the plain English noun even when a
99
+ vendor term is standard: keyword search matches words, and "Bonos" does not
100
+ match "bond".
101
+ 3. **Source and coverage.** Who produces it and from what: "from the Valmer daily
102
+ price vector".
103
+ 4. **Timing,** for time-index tables: when rows arrive, in words: "published after
104
+ the Mexican market close".
105
+
106
+ Never:
107
+
108
+ - start with "Table of", "This table contains" or "Data for";
109
+ - repeat the identifier, the physical name or the column list;
110
+ - name another table. Say what the related thing is ("the asset each valuation
111
+ belongs to"). A table name in prose can reveal a table the reader may not see;
112
+ - write placeholders (TBD, Unknown, n/a), ticket numbers, people's or customers'
113
+ names, credentials or URLs carrying tokens;
114
+ - describe implementation: updater classes, hashes, Alembic.
115
+
116
+ ### Columns
117
+
118
+ Every column gets `info` with `label` and `description`, including the primary
119
+ key, the time index and the identity dimensions.
120
+
121
+ - `label`: one to four words, sentence case, no units: `"Clean price"`.
122
+ - `description`: one sentence giving the meaning plus whatever a reader needs to
123
+ use the value correctly:
124
+ - unit, currency or scale: "per 100 of nominal", "in MXN", "in percent: 5.25
125
+ means 5.25%";
126
+ - identifier scheme: "ISIN", "Main Sequence asset UID";
127
+ - allowed values of a code: "M Bono, Udibono or CETE";
128
+ - for times, which moment and timezone: "valuation business day at 00:00 UTC";
129
+ - what null means, when the column is nullable;
130
+ - the sign convention, where one applies.
131
+ - Foreign-key columns describe what the referenced thing is, never the referenced
132
+ table's name.
133
+ - Name new columns in full snake_case words (`clean_price`, not `cln_px`). Search
134
+ splits names into words, so each word becomes searchable.
135
+ - `logical_name` only when the physical name is an abbreviation or vendor code you
136
+ cannot change, typically on an external table: a column `ytm` gets
137
+ `info={"logical_name": "yield_to_maturity", ...}`.
138
+
139
+ ### Labels
140
+
141
+ - Two to six labels, lowercase and hyphenated: `fixed-income`.
142
+ - Draw them from these facets: domain or asset class (`fixed-income`, `fx`,
143
+ `equities`, `accounting`), geography (`mexico`, `global`), data kind (`prices`,
144
+ `reference-data`, `positions`, `transactions`, `risk`), and source (`valmer`,
145
+ `banxico`) when the source is not the namespace.
146
+ - Reuse labels you see on existing tables in search results instead of creating
147
+ near-duplicates (`fixed_income` next to `fixed-income`).
148
+ - Do not repeat the namespace or the cadence as a label.
149
+
150
+ ### Identifier and namespace
151
+
152
+ - `__metatable_identifier__` is `<namespace>.<concept>` in full words:
153
+ `valmer.mx_sovereign_bond_prices`. It is identity and never changes after the
154
+ table is published.
155
+ - `__metatable_namespace__` is the owning application or source, not a SQL schema.
156
+ Its description (one or two sentences about the application or source) is
157
+ written once by the namespace's Writer; do not repeat it in table descriptions.
158
+
159
+ ### Time-index tables, in addition
160
+
161
+ - The grain sentence matches `__index_names__`: `["time_index", "isin"]` → "One
162
+ row per ISIN per valuation date."
163
+ - Declare `__cadence__` whenever the interval is stable.
164
+ - The time index column's description says which moment it is (observation,
165
+ valuation, publication or effective date), its timezone and, for daily data,
166
+ the day convention.
167
+
168
+ ### Example
169
+
170
+ ```python
171
+ from datetime import datetime
172
+
173
+ from sqlalchemy import DateTime, Float, MetaData, String
174
+ from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
175
+
176
+ from metatables import PlatformTimeIndexMetaTable, schema_table_name
177
+
178
+
179
+ class Base(DeclarativeBase):
180
+ metadata = MetaData()
181
+
182
+
183
+ class SovereignBondPrice(PlatformTimeIndexMetaTable, Base):
184
+ __tablename__ = schema_table_name("valmer", "mx_sovereign_bond_prices")
185
+ __metatable_namespace__ = "valmer"
186
+ __metatable_identifier__ = "valmer.mx_sovereign_bond_prices"
187
+ __metatable_description__ = (
188
+ "One row per ISIN per valuation date. End-of-day prices and yields of "
189
+ "Mexican government bonds (M Bonos, Udibonos and CETES) from the Valmer "
190
+ "daily price vector, published after the Mexican market close."
191
+ )
192
+ __metatable_labels__ = ["fixed-income", "mexico", "prices"]
193
+ __time_index_name__ = "time_index"
194
+ __index_names__ = ["time_index", "isin"]
195
+ __cadence__ = "1d"
196
+
197
+ time_index: Mapped[datetime] = mapped_column(
198
+ DateTime(timezone=True), nullable=False,
199
+ info={"label": "Valuation date",
200
+ "description": "Business day the prices apply to, at 00:00 UTC."},
201
+ )
202
+ isin: Mapped[str] = mapped_column(
203
+ String(12), nullable=False,
204
+ info={"label": "ISIN", "description": "ISIN of the bond."},
205
+ )
206
+ instrument_type: Mapped[str] = mapped_column(
207
+ String(16), nullable=False,
208
+ info={"label": "Instrument type",
209
+ "description": "Bond family: M Bono, Udibono or CETE."},
210
+ )
211
+ clean_price: Mapped[float] = mapped_column(
212
+ Float, nullable=False,
213
+ info={"label": "Clean price",
214
+ "description": "Price excluding accrued interest, per 100 of nominal, in MXN."},
215
+ )
216
+ dirty_price: Mapped[float] = mapped_column(
217
+ Float, nullable=False,
218
+ info={"label": "Dirty price",
219
+ "description": "Clean price plus accrued interest, per 100 of nominal, in MXN."},
220
+ )
221
+ yield_to_maturity: Mapped[float | None] = mapped_column(
222
+ Float, nullable=True,
223
+ info={"label": "Yield to maturity",
224
+ "description": "Annual yield to maturity in percent; null when Valmer publishes no yield."},
225
+ )
226
+ ```
227
+
228
+ ### When metadata changes
229
+
230
+ The model is the source of truth. Edit the model and run `metatables migrations
231
+ upgrade`: its catalog sync updates the description, labels and column metadata of
232
+ tables that already exist. A metadata-only change needs no Alembic revision.
233
+ Re-run the registration of an external table after changing its model. Do not
234
+ `patch` the description of a table that has a model; the next sync replaces it.
235
+ Use `table.patch(description=..., labels=[...])` only for imported tables with no
236
+ model.
237
+
238
+ ## Validation
239
+
240
+ Before finishing, check every table and column you authored against Part 2:
241
+ four-part description, two to six labels, `label` and `description` on every
242
+ column. After `metatables migrations upgrade`, search for each new table with two
243
+ phrases a user would type; it should appear among the first results. State
244
+ whether you ran that search or only checked the model.
@@ -41,7 +41,9 @@ choices, first-run/backfill bounds, and whether identity must be preserved from
41
41
  the task and existing code. Clarify only unresolved choices that change the
42
42
  published contract. Keep storage description, namespace, identifier, cadence,
43
43
  columns, and FK/index metadata on the authoring model, not the updater config.
44
- Use intention-rich table and column descriptions; see `src/metatables/examples/tables.py`.
44
+ Write table and column descriptions by the rules in the
45
+ [table discovery skill](../metatables-table-discovery/SKILL.md); see
46
+ `src/metatables/examples/tables.py`.
45
47
 
46
48
  Migrate and bind the output class before constructing the producer. Pass explicit
47
49
  `config` and `output_table`; do not create/register tables inside `update()`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.21.dev33
3
+ Version: 0.1.22.dev35
4
4
  Summary: Main Sequence MetaTables Python client and standalone API
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -19,6 +19,7 @@ Requires-Dist: alembic<2,>=1.18
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: cryptography<51,>=46
21
21
  Requires-Dist: fastapi<1,>=0.110
22
+ Requires-Dist: fastembed<0.9,>=0.8.1
22
23
  Requires-Dist: httpx<1,>=0.28
23
24
  Requires-Dist: keyring<26,>=25
24
25
  Requires-Dist: numpy
@@ -29,6 +30,7 @@ Requires-Dist: pandas
29
30
  Requires-Dist: psutil
30
31
  Requires-Dist: platformdirs<5,>=4
31
32
  Requires-Dist: psycopg2-binary<3,>=2.9
33
+ Requires-Dist: py-rust-stemmers<0.2,>=0.1.5
32
34
  Requires-Dist: pyodbc<6,>=5
33
35
  Requires-Dist: pydantic<3,>=2.11
34
36
  Requires-Dist: pyyaml
@@ -0,0 +1,105 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1240" height="680" viewBox="0 0 1240 680" role="img" aria-labelledby="f17-title f17-desc">
2
+ <title id="f17-title">How a table's search document is built</title>
3
+ <desc id="f17-desc">A metadata write rebuilds the table's search document in the same catalog transaction. The API reads the table, its labels, its namespace and every column, never other tables' names, writes the document and its hash to meta_table_search_document, and derives keyword terms from it at once. In the background the document is cut into chunks that fit 512 tokens, embedded with bge-small-en-v1.5 and stored in meta_table_search_vector, one row per chunk.</desc>
4
+ <style>
5
+ .sans { font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
6
+ .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
7
+ .title { font-size: 21px; font-weight: 700; fill: #0f172a; }
8
+ .sub { font-size: 13.5px; fill: #475569; }
9
+ .head { font-size: 15px; font-weight: 700; fill: #0f172a; }
10
+ .step { font-size: 13px; font-weight: 700; fill: #0f172a; }
11
+ .msg { font-size: 12.5px; font-weight: 600; fill: #0f172a; }
12
+ .note { font-size: 12.5px; fill: #475569; }
13
+ .code { font-size: 12px; fill: #0f172a; }
14
+ .deny { fill: #b91c1c; font-weight: 700; }
15
+ </style>
16
+ <defs>
17
+ <marker id="f17-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#334155"/></marker>
18
+ </defs>
19
+
20
+ <rect x="0" y="0" width="1240" height="680" rx="16" fill="#ffffff"/>
21
+
22
+ <text x="40" y="48" class="sans title">How a table's search document is built</text>
23
+ <text x="40" y="74" class="sans sub">A metadata write rebuilds the document in its catalog transaction. Vectors follow in the background.</text>
24
+
25
+ <!-- 1. Trigger -->
26
+ <rect x="40" y="96" width="1160" height="48" rx="10" fill="#f8fafc" stroke="#64748b" stroke-width="1.2"/>
27
+ <text x="56" y="125" class="sans step">1 · Any metadata write</text>
28
+ <text x="240" y="125" class="sans note">register · patch · label change · import · finalize · contract update · namespace description change</text>
29
+ <line x1="600" y1="144" x2="600" y2="210" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
30
+
31
+ <!-- Catalog rows -->
32
+ <text x="40" y="196" class="sans head">Read from the catalog</text>
33
+
34
+ <rect x="40" y="212" width="320" height="70" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
35
+ <text x="56" y="236" class="sans step">MetaTable</text>
36
+ <text x="56" y="256" class="sans note">identifier, physical name, description,</text>
37
+ <text x="56" y="274" class="sans note">time index and cadence</text>
38
+
39
+ <rect x="40" y="294" width="320" height="52" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
40
+ <text x="56" y="316" class="sans step">Labels</text>
41
+ <text x="56" y="336" class="sans note">label names</text>
42
+
43
+ <rect x="40" y="358" width="320" height="52" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
44
+ <text x="56" y="380" class="sans step">Namespace</text>
45
+ <text x="56" y="400" class="sans note">name, description</text>
46
+
47
+ <rect x="40" y="422" width="320" height="70" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
48
+ <text x="56" y="446" class="sans step">Columns, every one</text>
49
+ <text x="56" y="466" class="sans note">name, type, logical name, label,</text>
50
+ <text x="56" y="484" class="sans note">description</text>
51
+
52
+ <rect x="40" y="508" width="320" height="52" rx="10" fill="#ffffff" stroke="#b91c1c" stroke-width="1.1" stroke-dasharray="6 4"/>
53
+ <text x="56" y="530" class="sans step"><tspan class="deny">Never read</tspan></text>
54
+ <text x="56" y="550" class="sans note">names of other tables, which may be hidden</text>
55
+
56
+ <line x1="362" y1="330" x2="438" y2="330" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
57
+ <text x="400" y="321" text-anchor="middle" class="sans msg">read</text>
58
+
59
+ <!-- 2. Build -->
60
+ <rect x="440" y="212" width="320" height="196" rx="10" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.2"/>
61
+ <text x="456" y="236" class="sans step">2 · Build the document</text>
62
+ <text x="456" y="260" class="sans note">in the same catalog transaction</text>
63
+ <text x="456" y="282" class="sans note">sections in fixed order:</text>
64
+ <text x="456" y="302" class="mono code"># Table, # Namespace, # Columns</text>
65
+ <text x="456" y="324" class="sans note">one line per column, in column order</text>
66
+ <text x="456" y="346" class="sans note">empty fields are left out</text>
67
+ <text x="456" y="368" class="sans note">document hash: SHA-256 of the text</text>
68
+
69
+ <line x1="600" y1="408" x2="600" y2="444" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
70
+
71
+ <rect x="440" y="446" width="320" height="64" rx="10" fill="#eff6ff" stroke="#1d4ed8" stroke-width="1.2"/>
72
+ <text x="456" y="470" class="mono step">meta_table_search_document</text>
73
+ <text x="456" y="492" class="sans note">document, document hash, updated time</text>
74
+
75
+ <line x1="760" y1="468" x2="838" y2="300" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
76
+ <line x1="760" y1="488" x2="838" y2="470" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
77
+
78
+ <!-- 3a. Keyword terms -->
79
+ <rect x="840" y="212" width="360" height="150" rx="10" fill="#ffffff" stroke="#4f46e5" stroke-width="1.2"/>
80
+ <text x="856" y="236" class="sans step">3a · Keyword terms</text>
81
+ <text x="856" y="258" class="sans note">built by the API process from the document</text>
82
+ <text x="856" y="280" class="sans note">split identifiers: <tspan class="mono code">clean_price → clean, price</tspan></text>
83
+ <text x="856" y="302" class="sans note">stem words: <tspan class="mono code">prices → price</tspan></text>
84
+ <text x="856" y="324" class="sans note">table fields weigh more than column fields</text>
85
+ <text x="856" y="346" class="sans note">searchable as soon as the write commits</text>
86
+
87
+ <!-- 3b. Chunks and vectors -->
88
+ <rect x="840" y="388" width="360" height="176" rx="10" fill="#ffffff" stroke="#4f46e5" stroke-width="1.2" stroke-dasharray="6 4"/>
89
+ <text x="856" y="412" class="sans step">3b · Chunks and vectors, in the background</text>
90
+ <text x="856" y="436" class="sans note">chunk 0: the <tspan class="mono code"># Table</tspan> and <tspan class="mono code"># Namespace</tspan> sections</text>
91
+ <text x="856" y="458" class="sans note">chunks 1…n: table header + a group of columns</text>
92
+ <text x="856" y="480" class="sans note">each chunk fits the model's 512 tokens</text>
93
+ <text x="856" y="502" class="sans note">embedded with <tspan class="mono code">bge-small-en-v1.5</tspan>, 384 dims</text>
94
+ <text x="856" y="524" class="sans note">redone when the document hash or model changes</text>
95
+
96
+ <line x1="1020" y1="564" x2="1020" y2="590" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
97
+
98
+ <rect x="840" y="592" width="360" height="64" rx="10" fill="#eff6ff" stroke="#1d4ed8" stroke-width="1.2"/>
99
+ <text x="856" y="616" class="mono step">meta_table_search_vector</text>
100
+ <text x="856" y="638" class="sans note">one row per chunk: model, document hash, vector</text>
101
+
102
+ <!-- Footer -->
103
+ <text x="40" y="600" class="sans note">Search ranks the tables the caller can see with the keyword terms and the vectors.</text>
104
+ <text x="40" y="622" class="sans note">Until a table's vectors match its document hash, it is ranked by keywords only.</text>
105
+ </svg>