mainsequence-metatable 0.1.23.dev36__tar.gz → 0.1.23.dev38__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 (567) hide show
  1. mainsequence_metatable-0.1.23.dev38/.agents/skills/analyze-with-sql/SKILL.md +22 -0
  2. mainsequence_metatable-0.1.23.dev38/.agents/skills/discover-tables/SKILL.md +24 -0
  3. mainsequence_metatable-0.1.23.dev38/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +7 -0
  4. mainsequence_metatable-0.1.23.dev38/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +100 -0
  5. mainsequence_metatable-0.1.23.dev38/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +233 -0
  6. mainsequence_metatable-0.1.23.dev38/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +110 -0
  7. mainsequence_metatable-0.1.23.dev38/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +112 -0
  8. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/MANIFEST.in +1 -1
  9. {mainsequence_metatable-0.1.23.dev36/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.23.dev38}/PKG-INFO +4 -2
  10. mainsequence_metatable-0.1.23.dev38/docs/adr/agent/0019-metatables-analyst-agent.md +154 -0
  11. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0002-application-administration-and-table-ownership.md +37 -0
  12. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0017-hosted-request-identity.md +22 -0
  13. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/index.md +2 -2
  14. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/authentication-and-errors.md +11 -9
  15. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/openapi.json +43 -0
  16. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/reference.md +1 -0
  17. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/installation-and-connection.md +5 -5
  18. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/contributing/releasing.md +11 -3
  19. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/contributing/testing.md +1 -1
  20. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/security/index.md +16 -13
  21. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/security/ownership-and-sharing.md +33 -3
  22. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/pyproject.toml +3 -2
  23. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/check_boundaries.py +2 -0
  24. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38/src/mainsequence_metatable.egg-info}/PKG-INFO +4 -2
  25. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/mainsequence_metatable.egg-info/SOURCES.txt +14 -1
  26. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/mainsequence_metatable.egg-info/requires.txt +4 -1
  27. mainsequence_metatable-0.1.23.dev38/src/metatables/analyst/__init__.py +12 -0
  28. mainsequence_metatable-0.1.23.dev38/src/metatables/analyst/tools.py +272 -0
  29. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/auth/boundary.py +12 -13
  30. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/security.py +56 -12
  31. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/runtime.py +2 -2
  32. mainsequence_metatable-0.1.23.dev38/src/metatables/api/backend/integrations/platform_principals.py +136 -0
  33. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/models.py +16 -1
  34. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/sdk_compat.py +12 -0
  35. mainsequence_metatable-0.1.23.dev38/tests/analyst/test_agent_surface.py +83 -0
  36. mainsequence_metatable-0.1.23.dev38/tests/analyst/test_api_search.py +54 -0
  37. mainsequence_metatable-0.1.23.dev38/tests/analyst/test_tools.py +155 -0
  38. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_local_mode.py +1 -1
  39. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_platform_fact_cache.py +40 -36
  40. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_request_identity.py +42 -9
  41. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_runtime_bootstrap.py +1 -1
  42. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_runtime_scaffold.py +2 -2
  43. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_runtime_selection.py +1 -1
  44. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_runtime_storage_binding.py +1 -1
  45. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/conftest.py +2 -0
  46. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/client_signatures.json +1 -1
  47. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_run_logs.py +1 -1
  48. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_sqlite_runtime.py +2 -3
  49. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_local_actor_membership.py +4 -6
  50. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_security_api.py +85 -2
  51. mainsequence_metatable-0.1.23.dev38/tests/permissions/test_workload_principals.py +151 -0
  52. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/uv.lock +559 -5
  53. mainsequence_metatable-0.1.23.dev36/docs/adr/agent/0019-metatables-analyst-agent.md +0 -118
  54. mainsequence_metatable-0.1.23.dev36/src/metatables/api/backend/integrations/platform_principals.py +0 -36
  55. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  56. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
  57. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
  58. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
  59. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
  60. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
  61. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/.mainsequence/workflows/metatables-api.yaml +0 -0
  62. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/LICENSE +0 -0
  63. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/README.md +0 -0
  64. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/alembic.ini +0 -0
  65. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/api/metatables/main.py +0 -0
  66. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/compose.database-tests.yml +0 -0
  67. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
  68. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  69. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  70. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  71. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
  72. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  73. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  74. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
  75. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0009-shared-credential-store.md +0 -0
  76. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  77. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  78. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  79. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
  80. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
  81. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0016-impact-preflight.md +0 -0
  82. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
  83. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/api/0018-table-search.md +0 -0
  84. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  85. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  86. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/data-sources.md +0 -0
  87. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/overview.md +0 -0
  88. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/tables-and-migrations.md +0 -0
  89. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/api/time-index-and-updates.md +0 -0
  90. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/assets/branding/metatables.svg +0 -0
  91. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/assets/diagrams/local-client-experience.svg +0 -0
  92. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/bounded-transfers.md +0 -0
  93. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/build-an-updater.md +0 -0
  94. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/define-and-migrate-tables.md +0 -0
  95. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/deploy-application-migrations.md +0 -0
  96. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/local-storage.md +0 -0
  97. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/query-and-mutate.md +0 -0
  98. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/quickstart.md +0 -0
  99. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/read-existing-time-index-tables.md +0 -0
  100. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/register-existing-tables.md +0 -0
  101. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/tutorial.md +0 -0
  102. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/client/upgrade-legacy-app.md +0 -0
  103. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/architecture.md +0 -0
  104. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/data-sources.md +0 -0
  105. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/identity-and-scope.md +0 -0
  106. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/permissions-namespaces-labels.md +0 -0
  107. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/runs-and-execution-graphs.md +0 -0
  108. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  109. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/concepts/time-index-tables-and-updates.md +0 -0
  110. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/contributing/architecture-and-boundaries.md +0 -0
  111. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/contributing/database-backends.md +0 -0
  112. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/contributing/documentation.md +0 -0
  113. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/README.md +0 -0
  114. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/__init__.py +0 -0
  115. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/bounded_reader.py +0 -0
  116. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/data_sources/README.md +0 -0
  117. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/data_sources/mssql.json +0 -0
  118. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/data_sources/mysql.json +0 -0
  119. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/data_sources/postgresql.json +0 -0
  120. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/data_sources/register.py +0 -0
  121. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/external_table.py +0 -0
  122. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/README.md +0 -0
  123. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/__init__.py +0 -0
  124. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/__main__.py +0 -0
  125. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/migrations/__init__.py +0 -0
  126. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/migrations/env.py +0 -0
  127. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/migrations/script.py.mako +0 -0
  128. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  129. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/local_app/tables.py +0 -0
  130. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/query.py +0 -0
  131. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/quickstart.py +0 -0
  132. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/reader.py +0 -0
  133. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/scripts/__init__.py +0 -0
  134. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/scripts/setup_metatables.py +0 -0
  135. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tables.py +0 -0
  136. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/README.md +0 -0
  137. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/__init__.py +0 -0
  138. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/__main__.py +0 -0
  139. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/data/README.md +0 -0
  140. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  141. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/frames.py +0 -0
  142. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/__init__.py +0 -0
  143. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/env.py +0 -0
  144. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/registry.py +0 -0
  145. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  146. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  147. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  148. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  149. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  150. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/operations.py +0 -0
  151. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/tables.py +0 -0
  152. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/tutorial/updaters.py +0 -0
  153. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/examples/updater.py +0 -0
  154. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/index.md +0 -0
  155. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/catalog-migrations.md +0 -0
  156. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/configuration.md +0 -0
  157. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/hosted-runtime.md +0 -0
  158. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/local-runtime.md +0 -0
  159. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/recovery-and-observability.md +0 -0
  160. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/run-history.md +0 -0
  161. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/operations/run-logs.md +0 -0
  162. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/reference/capabilities.md +0 -0
  163. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/reference/cli.md +0 -0
  164. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/reference/python.md +0 -0
  165. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/docs/security/permissions.md +0 -0
  166. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/mkdocs.yml +0 -0
  167. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/__init__.py +0 -0
  168. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/build_reference.py +0 -0
  169. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/check_client_api_coverage.py +0 -0
  170. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/check_distribution_sources.py +0 -0
  171. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/check_docs.py +0 -0
  172. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/check_examples_debug.py +0 -0
  173. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/check_project.py +0 -0
  174. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/dev_release_version.py +0 -0
  175. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/test_databases.py +0 -0
  176. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/scripts/test_postgresql.py +0 -0
  177. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/setup.cfg +0 -0
  178. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  179. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  180. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  181. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/__init__.py +0 -0
  182. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/_admin_source.json +0 -0
  183. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/_build.py +0 -0
  184. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/_skill_bundle.py +0 -0
  185. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/__init__.py +0 -0
  186. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/__init__.py +0 -0
  187. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/auth/__init__.py +0 -0
  188. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/auth/local_actor.py +0 -0
  189. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/bootstrap.py +0 -0
  190. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/configuration.py +0 -0
  191. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/credential_admin.py +0 -0
  192. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/development.py +0 -0
  193. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/development_client.py +0 -0
  194. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/error_logging.py +0 -0
  195. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/main.py +0 -0
  196. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/platform_cache.py +0 -0
  197. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/__init__.py +0 -0
  198. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/column_search.py +0 -0
  199. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/contract_validation.py +0 -0
  200. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/data_sources.py +0 -0
  201. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  202. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/migration_connection.py +0 -0
  203. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/namespaces.py +0 -0
  204. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/run_logs.py +0 -0
  205. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/runtime_context.py +0 -0
  206. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/schema_graph.py +0 -0
  207. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_cascade.py +0 -0
  208. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_crud.py +0 -0
  209. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_delete.py +0 -0
  210. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_filter.py +0 -0
  211. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_import.py +0 -0
  212. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_introspection.py +0 -0
  213. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_patch.py +0 -0
  214. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_registration.py +0 -0
  215. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_response.py +0 -0
  216. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_search.py +0 -0
  217. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_search_document.py +0 -0
  218. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_sql.py +0 -0
  219. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  220. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  221. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  222. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  223. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/timescale_policies.py +0 -0
  224. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_batch.py +0 -0
  225. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  226. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_constants.py +0 -0
  227. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_crud.py +0 -0
  228. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_details.py +0 -0
  229. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_graph.py +0 -0
  230. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  231. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_registration.py +0 -0
  232. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_runs.py +0 -0
  233. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/routes/update_statistics.py +0 -0
  234. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/runtime_control.py +0 -0
  235. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/runtime_database.py +0 -0
  236. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/source_passwords.py +0 -0
  237. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/app/transfer.py +0 -0
  238. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/__init__.py +0 -0
  239. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/__init__.py +0 -0
  240. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/access.py +0 -0
  241. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  242. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  243. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  244. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  245. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  246. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  247. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  248. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  249. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  250. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  251. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  252. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  253. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  254. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  255. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  256. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  257. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  258. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  259. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  260. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  261. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  262. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/catalog.py +0 -0
  263. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  264. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  265. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/contracts.py +0 -0
  266. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/hosted.py +0 -0
  267. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  268. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  269. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/native.py +0 -0
  270. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/operations.py +0 -0
  271. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/pages.py +0 -0
  272. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  273. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/registry.py +0 -0
  274. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  275. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/relational.py +0 -0
  276. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  277. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  278. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/streaming.py +0 -0
  279. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/backends/timescale.py +0 -0
  280. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/contracts/__init__.py +0 -0
  281. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  282. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  283. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  284. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/contracts/values.py +0 -0
  285. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/__init__.py +0 -0
  286. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  287. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  288. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  289. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/label_rules.py +0 -0
  290. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  291. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/domain/update_constants.py +0 -0
  292. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/__init__.py +0 -0
  293. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  294. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  295. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  296. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  297. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  298. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  299. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  300. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  301. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  302. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  303. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/__init__.py +0 -0
  304. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/env.py +0 -0
  305. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  306. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  307. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  308. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  309. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  310. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  311. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  312. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  313. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  314. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
  315. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
  316. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
  317. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  318. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/__init__.py +0 -0
  319. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  320. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  321. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/create_table.py +0 -0
  322. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  323. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/import_relations.py +0 -0
  324. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  325. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  326. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/operations/register_catalog.py +0 -0
  327. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/__init__.py +0 -0
  328. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/cascade.py +0 -0
  329. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/catalog.py +0 -0
  330. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/database.py +0 -0
  331. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/grants.py +0 -0
  332. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/impact.py +0 -0
  333. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/labels.py +0 -0
  334. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/locking.py +0 -0
  335. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/models.py +0 -0
  336. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  337. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/projections.py +0 -0
  338. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  339. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  340. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  341. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  342. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  343. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/table_response.py +0 -0
  344. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  345. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  346. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/updates.py +0 -0
  347. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  348. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  349. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/__init__.py +0 -0
  350. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/documents.py +0 -0
  351. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/embeddings.py +0 -0
  352. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/index.py +0 -0
  353. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/ranking.py +0 -0
  354. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/text.py +0 -0
  355. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/backend/search/worker.py +0 -0
  356. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/metatables/__init__.py +0 -0
  357. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/metatables/configuration.yaml +0 -0
  358. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/api/metatables/main.py +0 -0
  359. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/__init__.py +0 -0
  360. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/admin_install.py +0 -0
  361. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/app.py +0 -0
  362. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/filters.py +0 -0
  363. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/local.py +0 -0
  364. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/migrations.py +0 -0
  365. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/project.py +0 -0
  366. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/cli/skills.py +0 -0
  367. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/compiled_sql/__init__.py +0 -0
  368. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/compiled_sql/mssql.py +0 -0
  369. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/compiled_sql/v1.py +0 -0
  370. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/dtype_codec.py +0 -0
  371. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/endpoint.py +0 -0
  372. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/README.md +0 -0
  373. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/__init__.py +0 -0
  374. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/bounded_reader.py +0 -0
  375. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/data_sources/README.md +0 -0
  376. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/data_sources/mssql.json +0 -0
  377. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/data_sources/mysql.json +0 -0
  378. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/data_sources/postgresql.json +0 -0
  379. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/data_sources/register.py +0 -0
  380. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/external_table.py +0 -0
  381. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/README.md +0 -0
  382. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/__init__.py +0 -0
  383. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/__main__.py +0 -0
  384. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  385. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/migrations/env.py +0 -0
  386. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  387. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  388. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/local_app/tables.py +0 -0
  389. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/query.py +0 -0
  390. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/quickstart.py +0 -0
  391. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/reader.py +0 -0
  392. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/scripts/__init__.py +0 -0
  393. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  394. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tables.py +0 -0
  395. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/README.md +0 -0
  396. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/__init__.py +0 -0
  397. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/__main__.py +0 -0
  398. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/data/README.md +0 -0
  399. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  400. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/frames.py +0 -0
  401. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  402. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  403. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  404. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  405. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  406. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  407. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  408. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  409. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/operations.py +0 -0
  410. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/tables.py +0 -0
  411. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/tutorial/updaters.py +0 -0
  412. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/examples/updater.py +0 -0
  413. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/future_registry.py +0 -0
  414. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/hashing.py +0 -0
  415. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/instrumentation.py +0 -0
  416. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/local_connection.py +0 -0
  417. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/local_files.py +0 -0
  418. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/local_run_logs.py +0 -0
  419. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/log_contract.py +0 -0
  420. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/__init__.py +0 -0
  421. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/alembic.py +0 -0
  422. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/connection.py +0 -0
  423. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/env.py +0 -0
  424. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/provider.py +0 -0
  425. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/registry.py +0 -0
  426. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/runner.py +0 -0
  427. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/scaffold.py +0 -0
  428. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/sqlite.py +0 -0
  429. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/templates/__init__.py +0 -0
  430. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/templates/env.py.mako +0 -0
  431. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/templates/script.py.mako +0 -0
  432. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/migrations/tls.py +0 -0
  433. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/pydantic_metadata.py +0 -0
  434. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/run_logging.py +0 -0
  435. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/runtime.py +0 -0
  436. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/runtime_context.py +0 -0
  437. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/runtime_contract.py +0 -0
  438. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/schema_names.py +0 -0
  439. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/sqlalchemy_contracts.py +0 -0
  440. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/storage_layout_contract.py +0 -0
  441. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/time_index_table_refs.py +0 -0
  442. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/transfer.py +0 -0
  443. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/transfer_contract.py +0 -0
  444. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/transport.py +0 -0
  445. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/update_configuration_contract.py +0 -0
  446. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/__init__.py +0 -0
  447. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/configuration.py +0 -0
  448. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/dependencies.py +0 -0
  449. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/managers.py +0 -0
  450. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/namespacing.py +0 -0
  451. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/runner.py +0 -0
  452. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/updaters.py +0 -0
  453. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/updaters/utils.py +0 -0
  454. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/src/metatables/upload.py +0 -0
  455. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_bootstrap_failure_cause.py +0 -0
  456. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_data_source_identity.py +0 -0
  457. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_development_client.py +0 -0
  458. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_hosted_environment_target.py +0 -0
  459. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_runtime_database.py +0 -0
  460. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/auth/test_source_passwords.py +0 -0
  461. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/catalog/test_catalog_foundation.py +0 -0
  462. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/catalog/test_contract_projection.py +0 -0
  463. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/catalog/test_database_config.py +0 -0
  464. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/catalog/test_index_statistics.py +0 -0
  465. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/catalog/test_migration.py +0 -0
  466. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/capabilities.json +0 -0
  467. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/database_operations.json +0 -0
  468. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_bounded_transfer.py +0 -0
  469. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_compiler_runtime_source.py +0 -0
  470. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_relation_batching.py +0 -0
  471. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_relation_import.py +0 -0
  472. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_runtime_contract_compat.py +0 -0
  473. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_storage_layouts.py +0 -0
  474. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/contracts/test_table_contracts.py +0 -0
  475. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/Dockerfile +0 -0
  476. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/Dockerfile.dockerignore +0 -0
  477. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/__init__.py +0 -0
  478. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/conftest.py +0 -0
  479. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/provider/__init__.py +0 -0
  480. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/provider/env.py +0 -0
  481. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  482. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_api_contract.py +0 -0
  483. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_application_migration.py +0 -0
  484. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  485. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_catalog_contract.py +0 -0
  486. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_credential_catalog.py +0 -0
  487. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_physical_contract.py +0 -0
  488. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_relation_import.py +0 -0
  489. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  490. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_sql_security.py +0 -0
  491. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_backend/test_update_client.py +0 -0
  492. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_operations/test_physical_operations.py +0 -0
  493. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_operations/test_postgresql_operations.py +0 -0
  494. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  495. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/documentation/test_project_checks.py +0 -0
  496. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_admin_installation.py +0 -0
  497. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_api_endpoint.py +0 -0
  498. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_application_owned_migrations.py +0 -0
  499. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_catalog_outage.py +0 -0
  500. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_api_contract.py +0 -0
  501. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_api_coverage.py +0 -0
  502. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_migration_scaffold.py +0 -0
  503. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_migration_tls.py +0 -0
  504. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_package.py +0 -0
  505. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_signatures.py +0 -0
  506. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_client_value_behaviors.py +0 -0
  507. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_data_source_registry.py +0 -0
  508. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_local_actor_client_api.py +0 -0
  509. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_local_cli_workflow.py +0 -0
  510. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_local_client_selection.py +0 -0
  511. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  512. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_namespaces_admin_http.py +0 -0
  513. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_public_imports.py +0 -0
  514. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_remaining_client_routes.py +0 -0
  515. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_run_graphs.py +0 -0
  516. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_runtime_upgrade.py +0 -0
  517. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_sdk_local_startup.py +0 -0
  518. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_delete_client_api.py +0 -0
  519. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_filter_client_api.py +0 -0
  520. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_introspection_client_api.py +0 -0
  521. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_patch_client_api.py +0 -0
  522. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_search_api.py +0 -0
  523. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_search_document_api.py +0 -0
  524. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_search_scale.py +0 -0
  525. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_stats_api.py +0 -0
  526. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_update_pipeline.py +0 -0
  527. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_table_updates_http.py +0 -0
  528. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  529. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  530. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_timescale_policies_client_api.py +0 -0
  531. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_update_batch_client_api.py +0 -0
  532. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  533. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  534. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  535. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/e2e/test_update_registration_client_api.py +0 -0
  536. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/examples/test_documented_examples.py +0 -0
  537. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/examples/test_postgresql_examples.py +0 -0
  538. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/examples/test_setup_launch.py +0 -0
  539. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/examples/test_tutorial.py +0 -0
  540. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_credential_store.py +0 -0
  541. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_data_source_rules.py +0 -0
  542. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_local_data_sources.py +0 -0
  543. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_local_run_logs.py +0 -0
  544. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_postgresql_connection.py +0 -0
  545. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_postgresql_sql.py +0 -0
  546. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_postgresql_tables.py +0 -0
  547. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  548. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_source_validation.py +0 -0
  549. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/integrations/test_sqlite_operations.py +0 -0
  550. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/labels/test_labels.py +0 -0
  551. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/operations/test_create_table_operation.py +0 -0
  552. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/operations/test_create_table_postgres.py +0 -0
  553. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/operations/test_physical_operation_journal.py +0 -0
  554. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/operations/test_register_catalog.py +0 -0
  555. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/operations/test_search_documents.py +0 -0
  556. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/operations/test_timescale_policies.py +0 -0
  557. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/packaging/test_client_skills.py +0 -0
  558. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/packaging/test_dev_release_version.py +0 -0
  559. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/packaging/test_distribution_sources.py +0 -0
  560. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/packaging/test_editable_build.py +0 -0
  561. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/packaging/test_installed_distribution.py +0 -0
  562. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_governed_sql_scope.py +0 -0
  563. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_migration_boundary.py +0 -0
  564. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_namespace_grants.py +0 -0
  565. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_table_body_filter.py +0 -0
  566. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_table_grants.py +0 -0
  567. {mainsequence_metatable-0.1.23.dev36 → mainsequence_metatable-0.1.23.dev38}/tests/permissions/test_table_queries.py +0 -0
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: analyze-with-sql
3
+ description: Answer a data question by running read-only SQL on MetaTables and reporting the result with the SQL that produced it. Use when someone asks for numbers, trends, comparisons or rows from MetaTables data.
4
+ ---
5
+
6
+ # Analyze with SQL
7
+
8
+ Input: a data question. Output: the answer, the SQL that ran and the tables it read.
9
+
10
+ 1. Find the tables with the `discover-tables` workflow first; never guess names.
11
+ 2. Write one query in the dialect of the table's `engine`, using its physical name.
12
+ Establish the grain and join keys, filter time-index tables on their time index
13
+ within the covered range, and aggregate or `LIMIT` the query.
14
+ 3. Run it with `run_sql`, passing the uid of a table it reads. All tables in a query
15
+ must share that table's DataSource. If the DataSource does not accept SQL, use
16
+ `preview_rows`.
17
+ 4. Fix failing SQL from the error message; never invent numbers.
18
+
19
+ Report what the data shows, what you infer and what remains unresolved, and say when
20
+ results were truncated. End with the SQL and the tables it read.
21
+
22
+ Side effects: none. The database enforces the agent's Reader grants and refuses writes.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: discover-tables
3
+ description: Find, list and explain the MetaTables that hold some data, with their columns, time coverage and join keys. Use when someone asks where data lives or what a table or column means.
4
+ ---
5
+
6
+ # Discover tables
7
+
8
+ Input: a question or topic, optionally a namespace. Output: the tables that fit, why
9
+ they fit, and how they join.
10
+
11
+ 1. Call `deep_search` with 3-6 short noun phrases that describe the data in different
12
+ words: the business concept, synonyms and likely column names. Search again with
13
+ more synonyms when phrases come back keyword-only.
14
+ 2. Read the described candidates: description, matched columns, time index and covered
15
+ range, and foreign keys. Use `describe_table` for any table you name that was not
16
+ described, including `related` tables that supply join keys.
17
+ 3. To show what data exists, use `list_namespaces` for the data areas and their table
18
+ counts, then `list_tables` for one namespace.
19
+
20
+ Answer with each table's identifier, namespace, uid and physical name, the columns that
21
+ matter, and the join keys between them. When candidates compete, say which you would use
22
+ and why. When nothing fits, say so.
23
+
24
+ Side effects: none; every tool reads under the agent's own Reader grants.
@@ -0,0 +1,7 @@
1
+ schema=1
2
+ library_name=ms-tau-sdk
3
+ namespace=ms_tau_sdk
4
+ pinned_version=1.3.0
5
+ skills_path=src/ms_tau_sdk/agent_skills
6
+ skills=tau_a2a_runtime_adapter,tau_local_development,tau_project_customization,tau_repository_integration
7
+ command=ms-tau skills sync --path .
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: tau-a2a-runtime-adapter
3
+ description: Implement and diagnose the TAU host side of Main Sequence A2A without duplicating the Django-owned protocol, authorization, discovery, and task-lifecycle contract.
4
+ ---
5
+
6
+ # TAU A2A Runtime Adapter
7
+
8
+ Use this skill only for `ms-tau-sdk` host behavior. Read the platform-owned `a2a_communication`
9
+ skill first for canonical tool inputs, discovery, authorization, wire envelopes, task lifecycle,
10
+ idempotency, and retry semantics.
11
+
12
+ ## Ownership boundary
13
+
14
+ Django owns:
15
+
16
+ - canonical `a2a.*` MCP schemas and platform discovery;
17
+ - AgentSession and AgentTask lifecycle;
18
+ - exact runtime-access authorization;
19
+ - caller-session proof validation; and
20
+ - direct-runtime protocol and response-kind semantics.
21
+
22
+ The SDK owns:
23
+
24
+ - projecting the authenticated Main Sequence MCP catalog into a TAU session;
25
+ - preserving each tool's canonical name and metadata through host normalization;
26
+ - privately attaching active caller-session proof when a tool advertises
27
+ `mainsequence.ai/requires-caller-session-proof/v1: true`;
28
+ - translating inbound A2A requests into the shared TAU runtime; and
29
+ - translating runtime events and results into validated A2A responses.
30
+
31
+ Do not hard-code behavior from a rendered host-tool name. Inspect the canonical tool record and its
32
+ `_meta` marker. The proof belongs under request `_meta` key
33
+ `mainsequence.ai/caller-session-proof/v1`; it is never a model-visible argument.
34
+
35
+ ## Managed runtime behavior
36
+
37
+ For a protected call, the active session must provide its exact UID, lease holder, and lease token.
38
+ The SDK attaches that proof only to the individual MCP call that requested it. It must not expose,
39
+ log, persist, or reuse the proof as general authorization.
40
+
41
+ ## Send Work To Another Agent
42
+
43
+ For a deployed Agent, use the projected `a2a.send_message` MCP operation. Django creates or
44
+ resolves the target `AgentSession`, waits for its runtime to become ready, and dispatches the
45
+ message. For asynchronous work, use the returned Task handle with `a2a.wait_task`.
46
+
47
+ For local Tau development, start `ms-tau` and wait for its local `/ready` result. The public A2A
48
+ REST and JSON-RPC surfaces support Message and Task execution against the workspace-local SQLite
49
+ store, including streaming, list/get/cancel/subscribe, and continuation. An A2A protocol Task does
50
+ not require a platform AgentSession.
51
+
52
+ Outbound work to a deployed Agent still uses `a2a.send_message` through Main Sequence MCP. Message
53
+ and Task-with-polling flows use the authenticated user. `resume_caller` requires a registered
54
+ platform callback target and is therefore unavailable to an unregistered local process.
55
+
56
+ If proof is unavailable or stale, surface the platform error. Never fabricate an AgentSession,
57
+ lease, target identity, or Environment selection. The SDK does not reinterpret requester/responder
58
+ wire direction as caller identity.
59
+
60
+ ## Local-mode behavior
61
+
62
+ Local mode has no registered Agent or AgentSession and therefore cannot supply deployed caller
63
+ proof or appear in platform discovery. Public local Message and Task coordination is nevertheless
64
+ supported through local context identities and SQLite persistence. Only internal backend dispatch,
65
+ caller delivery, push notifications, platform discovery, and `resume_caller` retain the documented
66
+ capability boundary. Main Sequence MCP remains available for authenticated-user A2A semantics.
67
+
68
+ ## Diagnostics
69
+
70
+ When an A2A operation fails, identify the boundary before changing code:
71
+
72
+ 1. Catalog projection: canonical tool or `_meta` marker missing.
73
+ 2. Host adaptation: private proof not attached to the marked call.
74
+ 3. Platform authorization: proof rejected, target disallowed, or Environment mismatch.
75
+ 4. Runtime access: endpoint, token, or release bundle stale.
76
+ 5. Wire validation: request/response role, context, extension, or payload invalid.
77
+ 6. Task lifecycle: fence, lease, cancellation, event order, or retry semantics violated.
78
+
79
+ For Task lifecycle diagnosis, derive terminality from the Task state; never introduce a second
80
+ terminal flag. Normal execution errors must settle `failed` and streaming must emit that
81
+ authoritative terminal status update. `task_terminalization_unknown` means settlement durability
82
+ is unknown and belongs to the recovery owner. Local SQLite recovery is SDK-owned; managed dispatch
83
+ recovery is backend-owned. Do not retry a stale working attempt when project or MCP side effects may
84
+ have occurred unless a checkpoint or idempotency contract proves replay safe.
85
+
86
+ Treat Task Messages, Artifacts, Tau entries, Task events, and logs as separate ontologies. Use
87
+ `historyLength` only for the bounded durable Message tail. Omission means the SDK default of 100,
88
+ zero omits history without a tail read, and positive values return the latest bounded tail in
89
+ oldest-to-newest order. Public A2A v1 roles are `ROLE_USER` and `ROLE_AGENT`; persistence uses the
90
+ Main Sequence requester/responder direction values. Never expose internal Tau entries, reasoning,
91
+ tool traffic, prompts, or logs as public Task history.
92
+
93
+ Allocate the Tau turn UID before attempt start and pass that exact UID to the runtime prompt. A
94
+ Task attempt owns one turn and one half-open entry interval with a `committed` or `abandoned`
95
+ resolution. Do not correlate by timestamps. A status settlement is absent or one complete durable
96
+ responder Message; never send the removed ad hoc status-detail shape. Status events reference that
97
+ Message and consumers reload the Task snapshot.
98
+
99
+ Change this SDK only for catalog projection, proof attachment, runtime execution, or transport
100
+ translation defects. Platform contract changes belong to Django.
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: tau-local-development
3
+ description: Run and diagnose Main Sequence TAU SDK local mode, including live provider and MCP access, workspace SQLite persistence, and public local A2A Message and Task workflows.
4
+ ---
5
+
6
+ # TAU Local Development
7
+
8
+ Use this skill when developing a repository that embeds `ms-tau-sdk` without creating platform
9
+ Agent or AgentSession runtime records. Local mode changes where runtime state is stored. It is not
10
+ an offline, mock-provider, or mock-MCP mode.
11
+
12
+ ## Start the process
13
+
14
+ The user logs in once with a Main Sequence CLI that provides `mainsequence auth token`. Local mode
15
+ then asks that CLI for a short-lived access token, at startup and again when the token is about to
16
+ expire. No token is exported and none is written to the project `.env`. The SDK does not install or
17
+ import the `mainsequence` Python package and does not read the CLI's private credential store.
18
+
19
+ ```bash
20
+ mainsequence login # once; the session is kept by the CLI, not in .env
21
+
22
+ export MAINSEQUENCE_AUTH_MODE=jwt
23
+ export TAU_LOCAL_MODE=true
24
+ export TAU_LOCAL_PROVIDER="<provider>"
25
+ export TAU_LOCAL_MODEL="<model>"
26
+ # Optional:
27
+ export TAU_LOCAL_THINKING="<thinking-level>"
28
+
29
+ uv run ms-tau
30
+ ```
31
+
32
+ The SDK looks for the CLI in `MAINSEQUENCE_CLI`, then beside the Python interpreter that runs
33
+ `ms-tau`, then on `PATH`. Launchers and CI can export `MAINSEQUENCE_ACCESS_TOKEN` and
34
+ `MAINSEQUENCE_REFRESH_TOKEN` instead. With both set, the SDK uses that pair and never runs the
35
+ CLI. Do not add token lines to `.env`. A pair found there still works, but it is deprecated and
36
+ startup logs a warning. `mainsequence refresh-token` run in that directory removes the lines.
37
+
38
+ Set `MAINSEQUENCE_ENDPOINT` only for a non-default platform endpoint. The CLI session must be for
39
+ the same endpoint. Local mode binds to `127.0.0.1:8787` by default. Treat an explicit public bind
40
+ as privileged exposure: each accepted request can use the authenticated user's live Main Sequence
41
+ permissions.
42
+
43
+ Never place JWTs or provider credentials in source control, `.tau`, copied skills, command output,
44
+ or debugging artifacts. Do not run `mainsequence auth token` to read its output: it prints the
45
+ access token. The user JWT is sent only to Main Sequence. Main Sequence validates the
46
+ explicit `TAU_LOCAL_PROVIDER` and `TAU_LOCAL_MODEL`, returns provider-control evidence, and hydrates
47
+ the provider credential used for inference. Provider secrets are neither environment settings nor
48
+ local state.
49
+
50
+ ## Exact local/remote boundary
51
+
52
+ | Concern | Local-mode behavior |
53
+ | --- | --- |
54
+ | Agent or AgentSession registration | Never created or updated |
55
+ | Chat history, snapshots, leases, activity, and cancellation | Workspace SQLite |
56
+ | Public A2A Message and Task state | Workspace SQLite |
57
+ | Main Sequence authentication and token refresh | Remote. The token comes from the Main Sequence CLI session, or from an exported JWT pair |
58
+ | Provider authorization, hydration, and inference | Remote and real |
59
+ | Main Sequence MCP catalog and tool calls | Remote and real; platform mutations remain possible |
60
+ | Project instructions, skills, hooks, and extensions | Normal repository `.tau` composition |
61
+
62
+ The database defaults to `~/.tau/mainsequence/<workspace-hash>/runtime.sqlite3`; override its
63
+ parent only with `TAU_LOCAL_STATE_ROOT`. Local state is never uploaded or attached to a platform
64
+ AgentSession when local mode is disabled. Stop all processes for the workspace before moving or
65
+ deleting its workspace-hash directory.
66
+
67
+ Local operational events are also written as structured JSON Lines to
68
+ `~/.tau/mainsequence/<workspace-hash>/logs/tau.jsonl` (or beneath `TAU_LOCAL_STATE_ROOT`). The
69
+ file sink is mandatory in local mode even when console logging is enabled. Read the current file
70
+ and its five rotated backups when diagnosing startup, provider, MCP, A2A, or project-extension
71
+ failures. The SDK log does not capture arbitrary extension `print()` output; project-owned code
72
+ must use propagating Python logging and must not log secrets or prompt/tool payloads. A failure to
73
+ open the file stops startup; the logs are never uploaded to an AgentSession.
74
+
75
+ ## Public local A2A contract
76
+
77
+ An A2A protocol Task is local coordination state, not a platform `AgentTask`, and does not require
78
+ a platform AgentSession. Local mode supports:
79
+
80
+ - REST `POST /api/a2a/v1/message:send` and JSON-RPC `message/send` for Message or Task execution;
81
+ - REST `POST /api/a2a/v1/message:stream` and JSON-RPC `message/stream` for SSE Task execution;
82
+ - REST `GET /api/a2a/v1/tasks`, `GET /api/a2a/v1/tasks/{task_id}`,
83
+ `POST /api/a2a/v1/tasks/{task_id}:cancel`, and
84
+ `GET /api/a2a/v1/tasks/{task_id}:subscribe`;
85
+ - JSON-RPC `tasks/list`, `tasks/get`, `tasks/cancel`, and `tasks/subscribe`;
86
+ - subscription resumption with `afterSequence`;
87
+ - continuation of a Task in `input_required` or `auth_required` by sending a new Message carrying
88
+ that `taskId`; and
89
+ - Task status, messages, artifacts, attempts, and events surviving process restart, with the SDK
90
+ rescheduling safe unclaimed work and terminalizing stale uncertain work rather than replaying
91
+ possible side effects.
92
+
93
+ For a chat UI over `POST /api/chat`, do not read `runtime.sqlite3` or keep a browser-only
94
+ transcript either. List sessions with `GET /api/local/v1/chat-sessions?limit=<n>&cursor=<opaque>`
95
+ and hydrate one with `GET /api/local/v1/chat-sessions/{sessionUid}/history`. The history has the
96
+ platform's `GET /api/v1/agent-sessions/{uid}/history/` shape, including reasoning, tool calls with
97
+ results, and a running turn in `inProgressMessage`, so one reader serves local and deployed
98
+ Agents. Reuse the listed `sessionUid` in `POST /api/chat`. A local chat turn keeps running when
99
+ the client disconnects or reloads; stop it only with `POST /api/chat/session/cancel`, and queue a
100
+ new message while a session is `working` (`POST /api/chat` returns 409 `session_busy`). Title the
101
+ UI from `GET /api/local/v1/agent`, which reads the workspace's `.agents/agent_card.json`.
102
+
103
+ For the default direct Message flow, do not read `runtime.sqlite3` or keep a browser-only source of
104
+ truth. Discover conversations with `GET /api/local/v1/conversations?limit=<n>&cursor=<opaque>` and
105
+ hydrate the latest bounded Message tail with
106
+ `GET /api/local/v1/conversations/{contextId}/messages?limit=<n>&beforeSequence=<n>`. Reuse the
107
+ listed canonical `contextId` in `message:send`. These are Main Sequence local SDK extensions, not
108
+ A2A v1 methods. They contain only persisted public `ROLE_USER`/`ROLE_AGENT` Messages and are
109
+ separate from `Task.history`, Tau entries, tools, reasoning, events, and logs.
110
+
111
+ To request a Task from `message:send`, send the response-kind extension header
112
+ `A2A-Extensions: https://mainsequence.ai/a2a/extensions/response-kind/v1` together with
113
+ `configuration.responseKind: "task"`. Omit that selection for the default completed Message
114
+ response. `message:stream` is always Task-oriented and does not accept `responseKind` or
115
+ `returnImmediately`.
116
+
117
+ Task terminality is derived only from its A2A state. `completed`, `failed`, `canceled`, and
118
+ `rejected` are terminal; `input_required` and `auth_required` are resumable. A normal execution
119
+ failure produces a durable failed Task and a standard responder `status.message`. A
120
+ `task_terminalization_unknown` stream error means the terminal write itself could not be proven;
121
+ retrieve or subscribe to the Task while recovery resolves it. Never treat an HTTP disconnect or
122
+ bounded wait expiry as Task cancellation.
123
+
124
+ Task responses include a bounded Message tail by default. Set `configuration.historyLength` on
125
+ Message send/stream or `historyLength` on Task get/list: zero omits history and performs no tail
126
+ read, while a positive value returns the latest Messages oldest-to-newest, capped at 100. History
127
+ contains requester and deliberately durable responder/status Messages only. Final output remains
128
+ under `artifacts`; Tau entries, tool activity, events, and logs never become public history. Public
129
+ roles are `ROLE_USER`/`ROLE_AGENT`; the local SQLite binding stores requester/responder directions.
130
+
131
+ Each local Task attempt reserves one immutable Tau turn. Its entries share that turn UID and remain
132
+ inside the recorded half-open sequence interval. Completed and interrupted settlement requires a
133
+ committed turn; failed, rejected, or canceled settlement can abandon a pending turn, after which
134
+ late append or commit is rejected. An unresolved Task-owned turn prevents lease replacement until
135
+ the local Task reconciler records its recovery outcome. Ordinary chat/direct-Message turns have no
136
+ Task owner and retain normal lease cleanup.
137
+
138
+ After restart, the local reconciler schedules an unclaimed `submitted` Task from its persisted
139
+ request. It does not blindly rerun a stale `working` Task: once the old lease and stale interval
140
+ expire, an attempt without replay-safe checkpoint evidence becomes failed with
141
+ `ambiguous_execution_outcome`. Inspect the failure code, attempt, recovery owner, and correlation ID
142
+ in Tau Board and the structured log.
143
+
144
+ Incoming local A2A requests do not need managed-gateway `X-Caller-*` headers. TAU assigns
145
+ workspace-local provenance and maps each supplied `contextId` into the same workspace-scoped local
146
+ session namespace used by chat. A supplied `taskId` remains the public Task identifier. The local
147
+ `GET /api/a2a/v1/extendedAgentCard` response advertises Message, Task, and streaming support while
148
+ disabling push notifications.
149
+
150
+ The following remain unavailable because they require registered platform routing or callback
151
+ identity:
152
+
153
+ - platform discovery of the unregistered local process;
154
+ - `/internal/a2a` backend dispatch and caller-delivery hooks;
155
+ - A2A push-notification configuration; and
156
+ - `resume_caller` Task completion.
157
+
158
+ These are the only A2A-adjacent capability boundaries; public local Message and Task requests must not return
159
+ `local_mode_capability_unsupported`.
160
+
161
+ Each standard A2A Task carries the time its current state was recorded in
162
+ `task.status.timestamp`. For `TASK_STATE_COMPLETED`, that is the completion time. The A2A Task
163
+ object has no standard top-level creation timestamp; Tau persists `created_at` in local SQLite,
164
+ and Tau Board joins that local row when it displays the A2A Task list. Do not invent extra A2A
165
+ wire fields for Board presentation.
166
+
167
+ ## Inspect and test with Tau Board
168
+
169
+ Install `ms-tau-sdk[tau-board]`, run `tau-board` as a separate process, and connect it to the
170
+ loopback local-mode Tau endpoint. The Agent tab requires an already loaded session: first send a
171
+ Chat or A2A request, then select that session. It shows the effective Agent Card, loaded tools by
172
+ source, project extension diagnostics, and registered project extension entry source.
173
+
174
+ Only project-extension tools with an object JSON Schema are runnable in the workbench. Select the
175
+ tool, fill its generated form or raw JSON, validate the exact canonical arguments, acknowledge
176
+ the side-effect warning, then run it. Validation never calls the tool. Run invokes the exact
177
+ loaded tool without a model call and without adding chat entries, A2A Tasks, or artifacts. The
178
+ tool still has the Tau process's real filesystem, network, environment, and credential access;
179
+ there is no automatic rollback. A busy session, stale catalog, expired confirmation, non-project
180
+ tool, oversized output, timeout, or cancellation must fail explicitly.
181
+
182
+ The Tasks tab is the primary inspection surface: Overview states the lifecycle, Conversation shows
183
+ durable Messages, Result shows complete Artifacts, Execution uses exact attempt/turn correlation,
184
+ and Technical retains mutation events and logs. **Open in A2A Console** is an action shortcut, not
185
+ the Task explanation. Many `output_updated` records represent revisions of one Artifact and must
186
+ not be interpreted as many agent responses.
187
+
188
+ ## Outbound A2A through Main Sequence MCP
189
+
190
+ Keep the projected `a2a.send_message` tool available. A local agent may send a Message or create a
191
+ Task for a deployed Agent using authenticated-user semantics. For a Task, use
192
+ `completion_policy: "poll"` and use the returned Task handle with `a2a.wait_task`. Local mode rejects
193
+ `completion_policy: "resume_caller"` because it has no registered callback target and never
194
+ fabricates caller-session proof. Other live MCP tools remain available and can read or mutate real
195
+ platform resources under the authenticated user's permissions.
196
+
197
+ ## Verify the runtime
198
+
199
+ Check the process in this order:
200
+
201
+ 1. `GET /health` reports `mode: local`, safe composition diagnostics, and
202
+ `mainsequence_auth_source`: `cli`, `environment`, or `env_file`.
203
+ 2. `GET /ready` confirms user authentication, provider control, local storage, and MCP readiness.
204
+ 3. `GET /version` reports the expected installed SDK release.
205
+ 4. A chat request without `sessionUid` returns an effective identifier in
206
+ `X-Agent-Session-Uid`; reuse it to resume the conversation.
207
+ 5. A REST `POST /api/a2a/v1/message:send` without gateway caller headers returns a Message.
208
+ 6. Repeat it with the response-kind extension and `configuration.responseKind: "task"`; verify
209
+ the Task through `GET /api/a2a/v1/tasks/{task_id}` and after a process restart.
210
+ 7. Verify `POST /api/a2a/v1/message:stream`, cancellation, subscription, and continuation for the
211
+ project workflow being developed.
212
+
213
+ ## Classify failures
214
+
215
+ - Startup setting failure: inspect the exact missing or conflicting environment variable.
216
+ - Authentication failure: read the error, which names its remedy. The user runs
217
+ `mainsequence login`, upgrades a Main Sequence CLI that is too old for `auth token`, sets
218
+ `MAINSEQUENCE_CLI`, or provides the JWT pair. With an exported pair, export a fresh one. Do not
219
+ substitute a runtime credential in local mode.
220
+ - Provider/model rejection: verify the exact configured names against the authenticated live
221
+ catalog; do not silently select a different model.
222
+ - OpenAI-compatible transport failure: open the Task's failure incident in Tau Board. Use its
223
+ concrete HTTPX type, transport phase, attempt count, provider duration, failure UID, and bounded
224
+ traceback frames; expand raw JSON only for additional correlation fields. Do not infer a timeout
225
+ when the dependency explicitly reports that its cause was unavailable.
226
+ - MCP failure: distinguish catalog/connectivity failure from server-side authorization. A tool
227
+ genuinely requiring caller AgentSession proof must fail explicitly without causing registration.
228
+ - Session conflict: keep one provider/model/thinking selection for an existing local session or
229
+ intentionally use a new local state namespace.
230
+ - Public local A2A capability error: treat it as a stale or defective SDK. Capability errors are
231
+ valid only at the unsupported routing/callback boundaries listed above.
232
+ - Project behavior failure: inspect `.tau` resources and extension diagnostics using
233
+ `tau-project-customization`.
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: tau-project-customization
3
+ description: Customize project-owned TAU instructions, skills, prompts, hooks, and extension tools while preserving SDK-owned transport and protocol invariants.
4
+ ---
5
+
6
+ # TAU Project Customization
7
+
8
+ Use this skill when changing the effective agent behavior of a repository that runs
9
+ `ms-tau-sdk`. The project already executes arbitrary code in the runtime process, so the project
10
+ owns and is responsible for its TAU resources and extensions.
11
+
12
+ ## One configuration boundary
13
+
14
+ The workspace `.tau/` directory is the project behavior boundary:
15
+
16
+ ```text
17
+ .tau/
18
+ ├── SYSTEM.md
19
+ ├── prompts/
20
+ ├── skills/
21
+ └── extensions/
22
+ ```
23
+
24
+ Creating `.tau/SYSTEM.md` replaces the packaged default general system instructions. There is no
25
+ second SDK-specific prompt override or companion append file. Other resources follow the TAU
26
+ version pinned by the installed SDK.
27
+
28
+ `.agents/skills/ms_tau_sdk/` is different: it contains managed development instructions for coding
29
+ agents working on the repository. It is not loaded as the runtime's `.tau` behavior and must not be
30
+ used as application configuration.
31
+
32
+ ## Extension ownership
33
+
34
+ Project extensions belong under `.tau/extensions/` and may add tools, hooks, and lifecycle
35
+ behavior. Keep reusable business logic in the normal application package and make extension
36
+ adapters thin and structured.
37
+
38
+ The project author owns:
39
+
40
+ - extension source, behavior, and tests;
41
+ - Python and operating-system dependencies;
42
+ - outbound network access and third-party credentials;
43
+ - compatibility with the pinned SDK and TAU versions; and
44
+ - reload, cancellation, and shutdown behavior.
45
+
46
+ The SDK does not sandbox these extensions. Web, fetch, search, browser, video, and other optional
47
+ tools are project choices and are not part of the base SDK.
48
+
49
+ ## Runtime tool composition
50
+
51
+ Two independent process settings select the host-provided tools. Both default to `false`:
52
+
53
+ | Setting | Effect when `true` |
54
+ | --- | --- |
55
+ | `TAU_EXCLUDE_BASE_TOOLS` | Replace Tau's `read`, `write`, `edit`, and `bash` with a skill-scoped `read`. |
56
+ | `TAU_EXCLUDE_MAINSEQUENCE_MCP` | Skip Main Sequence MCP connection, tools, resources, and resource prompt. |
57
+
58
+ Set them in `harness_agent.spec.env_vars` in a managed repository workflow, in the process
59
+ environment for local `ms-tau`, or through explicit `TauSDKSettings` fields in a Python host. They
60
+ apply to all sessions in that process; neither Agent Card skills nor prompt text removes tools.
61
+
62
+ The accepted, pending job-hosted batch entry point uses these same two settings. It must not
63
+ start Main Sequence MCP or add coding tools when the corresponding source is excluded. The table
64
+ below describes the currently implemented service and local modes; batch behavior for A2A-only
65
+ Task controls requires an actual Task context and is specified by ADR 0015.
66
+
67
+ | Exclude base tools | Exclude Main Sequence MCP | Model-facing sources |
68
+ | --- | --- | --- |
69
+ | `false` | `false` | Coding tools, Main Sequence MCP, project extension tools, A2A Task controls. |
70
+ | `true` | `false` | Skill-scoped `read`, Main Sequence MCP, project extension tools, A2A Task controls. |
71
+ | `false` | `true` | Coding tools, project extension tools, A2A Task controls. |
72
+ | `true` | `true` | Skill-scoped `read`, project extension tools, and A2A Task controls. |
73
+
74
+ The A2A Task controls are `task_request_input` and `task_request_authorization`. They remain
75
+ available in every mode for the agent's own Task; extensions must not register those names.
76
+ Register project tools under `.tau/extensions/` and verify the effective catalog after loading.
77
+ With base tools excluded, the skill-scoped `read` keeps `.tau/skills/` available: it opens a
78
+ discovered skill's `SKILL.md` and the files in its directory, such as `references/*.md`, and
79
+ rejects every other path, including symlinks that resolve outside the skill. Tau lists the skills
80
+ in the system prompt because a tool named `read` exists. Extensions must not register `read` in
81
+ this mode.
82
+ Excluding coding tools does not sandbox extension Python code.
83
+
84
+ ## Invariants extensions must not replace
85
+
86
+ Extensions may change effective agent capabilities, but they must not replace or bypass:
87
+
88
+ - Main Sequence runtime or user authentication;
89
+ - provider-control evidence and credential hydration;
90
+ - caller identity and active-session proof;
91
+ - persistence ordering, leases, cancellation, or task settlement;
92
+ - secret redaction and payload limits; or
93
+ - HTTP, SSE, Responses, and A2A wire validation.
94
+
95
+ When Main Sequence MCP is enabled, use its canonical operations for live platform state. Project
96
+ tools do not grant new platform permissions merely because they run inside TAU.
97
+
98
+ ## Validation
99
+
100
+ Verify each project-owned capability through its observable interface and focused tests. Check
101
+ that documented tool names and schemas match the loaded catalog, lifecycle hooks clean up their
102
+ resources, and health diagnostics report extension load errors without exposing prompt content or
103
+ secrets.
104
+
105
+ For interactive local verification, start Tau in local mode, load a session through Chat or A2A,
106
+ then open Tau Board's Agent tab. Inspect the effective tool category, JSON Schema, extension entry
107
+ source, and diagnostics. For a project-owned tool, fill the generated form or raw JSON, validate
108
+ the canonical arguments, explicitly acknowledge the side-effect warning, and run it. This invokes
109
+ the exact loaded tool without a model turn or conversation/Task-history entry. It is not a sandbox:
110
+ filesystem, network, credential, and external-system side effects are the project's responsibility.
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: tau-repository-integration
3
+ description: Install, run, and validate the version-matched Main Sequence TAU SDK in a project repository, including service entry points and job-hosted batch integration.
4
+ ---
5
+
6
+ # TAU Repository Integration
7
+
8
+ Use this skill when adding or repairing the TAU runtime inside a repository. It owns SDK and
9
+ workspace mechanics. The platform-owned `code_repository_to_agent` and
10
+ `code_repository_workflows` skills remain authoritative for Agent identity, source cards,
11
+ ResourceReleases, workflow declarations, authorization, and deployment.
12
+
13
+ ## Synchronize these instructions
14
+
15
+ The consuming project must pin `ms-tau-sdk` through its normal dependency manager. After the
16
+ dependency is installed, explicitly synchronize the instructions supplied by that installed
17
+ version:
18
+
19
+ ```bash
20
+ uv run ms-tau skills sync --path .
21
+ ```
22
+
23
+ This command atomically owns only `.agents/skills/ms_tau_sdk/`. Do not copy these files manually,
24
+ edit the managed copies, or make installation and runtime startup synchronize them implicitly.
25
+
26
+ ## Service entry points
27
+
28
+ The normal process entry point is:
29
+
30
+ ```bash
31
+ uv run ms-tau
32
+ ```
33
+
34
+ With no subcommand, `ms-tau` starts the SDK application in the current workspace. A project that
35
+ needs an importable ASGI module may create a thin module such as `api/tau/main.py`:
36
+
37
+ ```python
38
+ from ms_tau_sdk import create_app
39
+
40
+ app = create_app()
41
+ ```
42
+
43
+ Both paths construct the same application. The project owns the dependency lock, workspace,
44
+ deployable artifact, system packages, and any surrounding ASGI composition. There is no separate
45
+ TAU image, overlay, or SDK-owned deployment.
46
+
47
+ ## Job-hosted batch execution
48
+
49
+ ADR 0015 accepts a Python batch entry point, but it is **not implemented in this SDK version**.
50
+ Do not describe the example below as executable until the installed SDK exports `run_batch` and
51
+ its backend authorization dependency is available. The current `ms-tau` command starts the ASGI
52
+ service; upstream `tau --print` does not construct this SDK's authenticated runtime.
53
+
54
+ The intended project Job script supplies its work instruction and normal `TauSDKSettings`:
55
+
56
+ ```python
57
+ import asyncio
58
+ from pathlib import Path
59
+
60
+ from ms_tau_sdk import TauSDKSettings, run_batch # planned API
61
+
62
+
63
+ async def main() -> None:
64
+ answer = await run_batch(
65
+ "Inspect this project's ingestion pipeline and fix the failing validation.",
66
+ settings=TauSDKSettings(workspace=Path.cwd()),
67
+ )
68
+ print(answer)
69
+
70
+
71
+ if __name__ == "__main__":
72
+ asyncio.run(main())
73
+ ```
74
+
75
+ The project and Main Sequence Job own instruction selection, credentials and settings delivery,
76
+ JobRun lifecycle, status, logs, and any output record. The SDK batch entry point must use the same
77
+ effective `.tau` resources, provider, and configured tool composition as the service, then close
78
+ and exit. `TAU_EXCLUDE_BASE_TOOLS` and `TAU_EXCLUDE_MAINSEQUENCE_MCP` retain their existing
79
+ meanings; batch execution must not force either source on. It does not start Uvicorn or require a
80
+ JobRun UID in the SDK.
81
+
82
+ ## Repository integration procedure
83
+
84
+ 1. Inspect the project's Python constraint, dependency manager, lockfile, and application layout.
85
+ 2. Add and pin `ms-tau-sdk` through that existing dependency workflow.
86
+ 3. Synchronize these skills explicitly with `uv run ms-tau skills sync --path .`.
87
+ 4. For a service, use `uv run ms-tau` unless the repository needs an importable ASGI module.
88
+ For a finite Job, follow the batch design only after the installed SDK supports it.
89
+ 5. Keep the application module thin; business behavior and project tools belong to project code.
90
+ 6. Read `tau-project-customization` before changing `.tau`.
91
+ 7. Read `tau-local-development` before running an authenticated local conversation.
92
+ 8. Return to the platform-owned skills for source-card, workflow, synchronization, deployment,
93
+ and runtime-log operations.
94
+
95
+ ## Validation
96
+
97
+ From the project root:
98
+
99
+ ```bash
100
+ uv sync --locked
101
+ uv run python -c "import ms_tau_sdk; print(ms_tau_sdk.__version__)"
102
+ uv run ms-tau skills list
103
+ ```
104
+
105
+ When an ASGI shim exists, also import it without starting a second application implementation:
106
+
107
+ ```bash
108
+ uv run python -c "from api.tau.main import app; print(type(app).__name__)"
109
+ ```
110
+
111
+ Do not require the `mainsequence` Python distribution in the TAU dependency graph. Authentication
112
+ and Main Sequence transport are implemented directly by `ms-tau-sdk`.
@@ -6,5 +6,5 @@ recursive-include docs *.md *.json *.py *.csv *.mako *.svg
6
6
  recursive-include src/metatables/examples *.md *.json *.py *.csv *.mako
7
7
  recursive-include scripts *.py
8
8
  recursive-include tests *.py *.json Dockerfile Dockerfile.dockerignore
9
- graft .agents/skills/client
9
+ graft .agents/skills
10
10
  global-exclude __pycache__ *.py[cod]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.23.dev36
3
+ Version: 0.1.23.dev38
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
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: mainsequence<10,>=9.0.6
17
+ Requires-Dist: mainsequence<10,>=9.0.14
18
18
  Requires-Dist: alembic<2,>=1.18
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: cryptography<51,>=46
@@ -50,6 +50,8 @@ Requires-Dist: packaging>=24.2; extra == "dev"
50
50
  Requires-Dist: twine<7,>=6; extra == "dev"
51
51
  Provides-Extra: docs
52
52
  Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
53
+ Provides-Extra: agent
54
+ Requires-Dist: ms-tau-sdk==1.3.0; extra == "agent"
53
55
  Provides-Extra: mysql
54
56
  Requires-Dist: PyMySQL[rsa]<1.2,>=1.1.1; extra == "mysql"
55
57
  Provides-Extra: mssql