mainsequence-metatable 0.1.29.dev52__tar.gz → 0.1.30__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +1 -1
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +5 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/agent/0019-metatables-analyst-agent.md +11 -1
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +1 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/pyproject.toml +2 -2
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/mainsequence_metatable.egg-info/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/mainsequence_metatable.egg-info/requires.txt +1 -1
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/runtime_context.py +16 -14
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/runtime.py +6 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/runtime_database.py +6 -2
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_platform_fact_cache.py +6 -3
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_runtime_database.py +19 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_runtime_selection.py +1 -1
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/uv.lock +5 -5
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/analyze-with-sql/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/discover-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/LICENSE +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0017-hosted-request-identity.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0018-table-search.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/api/0022-concurrent-requests-and-connection-reuse.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/assets/diagrams/namespace-access.svg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/analysis.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/analyst/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/connection_count.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/mcp.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/access_map.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/caller.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_search.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/connection_pool.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/0012_table_creator.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/documents.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/embeddings.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/index.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/ranking.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/text.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/backend/search/worker.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/api/request_timing.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/analyst/test_agent_surface.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/analyst/test_api_search.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/analyst/test_mcp.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/analyst/test_tools.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_caller_endpoint.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_hosted_agent.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_request_identity.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_runtime_contract_compat.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_search_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_search_scale.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_connection_reuse.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_request_timing.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_serving_policy.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_access_map.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_incremental_security.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_table_queries.py +0 -0
- {mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/tests/permissions/test_workload_principals.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
schema=1
|
|
2
2
|
library_name=ms-tau-sdk
|
|
3
3
|
namespace=ms_tau_sdk
|
|
4
|
-
pinned_version=2.0.
|
|
4
|
+
pinned_version=2.0.10
|
|
5
5
|
skills_path=src/ms_tau_sdk/agent_skills
|
|
6
6
|
skills=tau_a2a_runtime_adapter,tau_local_development,tau_project_customization,tau_repository_integration,tau_security_and_access
|
|
7
7
|
command=ms-tau skills sync --path .
|
|
@@ -91,6 +91,11 @@ the application's tool, not in the Agent. A tool that declares nothing gets
|
|
|
91
91
|
`harness_agent.spec.env_vars`, the process environment, or
|
|
92
92
|
`TauSDKSettings(mcp_tool_timeout_seconds=...)`. No call outlives its turn.
|
|
93
93
|
|
|
94
|
+
Before MCP opens, an application's access may be `waking`. Tau waits according to the platform's
|
|
95
|
+
retry guidance for up to `TAU_MCP_APPLICATION_READY_TIMEOUT_SECONDS` (default `120`) or the remaining
|
|
96
|
+
turn time. This startup budget is separate from the tool's execution limit; an expired readiness
|
|
97
|
+
wait reports `readiness_timeout`. Cancellation, ended delegation and terminal refusals stop the wait.
|
|
98
|
+
|
|
94
99
|
## Invariants extensions must not replace
|
|
95
100
|
|
|
96
101
|
Extensions may change effective agent capabilities, but they must not replace or bypass:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.30
|
|
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
|
|
@@ -51,7 +51,7 @@ Requires-Dist: twine<7,>=6; extra == "dev"
|
|
|
51
51
|
Provides-Extra: docs
|
|
52
52
|
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
|
|
53
53
|
Provides-Extra: agent
|
|
54
|
-
Requires-Dist: ms-tau-sdk==2.0.
|
|
54
|
+
Requires-Dist: ms-tau-sdk==2.0.10; extra == "agent"
|
|
55
55
|
Provides-Extra: mysql
|
|
56
56
|
Requires-Dist: PyMySQL[rsa]<1.2,>=1.1.1; extra == "mysql"
|
|
57
57
|
Provides-Extra: mssql
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# ADR 0019: MetaTables Analyst agent
|
|
2
2
|
|
|
3
|
+
> Amendment (2026-10-09): Both Environment and Agent discovery allow 30 seconds for
|
|
4
|
+
> the platform lookup, including credential renewal. Environment lookup failures
|
|
5
|
+
> stay outside the one-hour cache, just like Agent lookup failures, so the next
|
|
6
|
+
> request can restore the Analyst after a temporary platform outage. Successful
|
|
7
|
+
> facts still expire normally; an expired verified result is never served on failure.
|
|
8
|
+
> A hosted API also fails startup when its declared database is unavailable,
|
|
9
|
+
> allowing the deployment's restart policy to retry instead of serving a replica
|
|
10
|
+
> whose failed bootstrap cannot recover. Secret lookup allows 30 seconds and
|
|
11
|
+
> distinguishes a missing Secret from a failed platform request in its message.
|
|
12
|
+
>
|
|
3
13
|
> Amendment (2026-10-08): The API names this branch's Analyst to applications.
|
|
4
14
|
> `GET /runtime-context/` returns `hosted_agent` (`uid`, `name`, `status`) beside
|
|
5
15
|
> `hosted_environment`: the Agent the API's own branch deploys, which the API finds with its
|
|
@@ -70,7 +80,7 @@ refuses anything else.
|
|
|
70
80
|
|
|
71
81
|
| Part | Rule |
|
|
72
82
|
| --- | --- |
|
|
73
|
-
| Runtime | `ms-tau-sdk` 2.0.
|
|
83
|
+
| Runtime | `ms-tau-sdk` 2.0.10, `openai-codex` / `gpt-5.6-luna`, thinking `medium`. |
|
|
74
84
|
| Identity | The person each turn serves (ADR 0020); the agent's own identity holds no grants. |
|
|
75
85
|
| Tools | The six tools below, served by the API over MCP when hosted (ADR 0021), and the SDK's skill-scoped `read`. No shell, file writes or Main Sequence MCP. |
|
|
76
86
|
| Instructions | `.tau/SYSTEM.md` covers MetaTables; vendored `pg-aiguide` skills cover PostgreSQL and TimescaleDB. |
|
|
@@ -35,6 +35,7 @@ The hosted API serves the read tools at `/mcp`, and the hosted Analyst uses them
|
|
|
35
35
|
| Analyst | The agent declares `mcp_applications: [{resource: metatables}]` and gets `metatables__list_tools` and `metatables__call_tool`. Its extension registers the tools only in a local `ms-tau` session, where they call the local API as the developer. |
|
|
36
36
|
| Key | The API's workflow key is `metatables`, because MCP keys become tool prefixes and must match `^[a-z][a-z0-9_]{0,39}$`. |
|
|
37
37
|
| Time limits | Each tool declares how long an Agent should wait in its MCP `_meta` under `mainsequence.ai/timeout-seconds/v1` (ms-tau-sdk 2.0.9): 120 s, the bound of one in-process API call, and 300 s for `deep_search`, which the release's 300 s request timeout bounds. An undeclared tool would get the Agent's default of 60 s. |
|
|
38
|
+
| Application readiness | The Analyst pins ms-tau-sdk 2.0.10, which waits when application access is `waking` before opening MCP ([SDK issue 87](https://github.com/mainsequence-sdk/ms-tau-sdk/issues/87)). The SDK's default readiness budget is 120 s, bounded by the remaining turn time; it honors retry guidance and cancellation. This wait is separate from each tool's execution limit, and expiry reports `readiness_timeout`. |
|
|
38
39
|
|
|
39
40
|
## Consequences
|
|
40
41
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mainsequence-metatable"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.30"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -59,7 +59,7 @@ Documentation = "https://potential-doodle-wn39mnm.pages.github.io/"
|
|
|
59
59
|
[project.optional-dependencies]
|
|
60
60
|
dev = ["pytest>=8,<10", "ruff>=0.14", "build>=1,<2", "packaging>=24.2", "twine>=6,<7"]
|
|
61
61
|
docs = ["mkdocs>=1.6,<2"]
|
|
62
|
-
agent = ["ms-tau-sdk==2.0.
|
|
62
|
+
agent = ["ms-tau-sdk==2.0.10"]
|
|
63
63
|
mysql = ["PyMySQL[rsa]>=1.1.1,<1.2"]
|
|
64
64
|
# Keep the published extra name for existing installers; pyodbc is required.
|
|
65
65
|
mssql = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.30
|
|
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
|
|
@@ -51,7 +51,7 @@ Requires-Dist: twine<7,>=6; extra == "dev"
|
|
|
51
51
|
Provides-Extra: docs
|
|
52
52
|
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
|
|
53
53
|
Provides-Extra: agent
|
|
54
|
-
Requires-Dist: ms-tau-sdk==2.0.
|
|
54
|
+
Requires-Dist: ms-tau-sdk==2.0.10; extra == "agent"
|
|
55
55
|
Provides-Extra: mysql
|
|
56
56
|
Requires-Dist: PyMySQL[rsa]<1.2,>=1.1.1; extra == "mysql"
|
|
57
57
|
Provides-Extra: mssql
|
|
@@ -20,19 +20,27 @@ router = APIRouter(tags=["Runtime"])
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
def verified_environment(uid: UUID | None) -> HostedEnvironment:
|
|
23
|
+
"""Load a verified fact; let failures escape so they cannot enter the cache."""
|
|
23
24
|
if uid is None:
|
|
24
25
|
return HostedEnvironment(uid=None, status="not_configured")
|
|
25
|
-
from mainsequence.client.exceptions import ApiError
|
|
26
26
|
from mainsequence.client.models_user import OrganizationEnvironment
|
|
27
|
+
|
|
28
|
+
environment = OrganizationEnvironment.get_by_uid(str(uid), timeout=30)
|
|
29
|
+
if environment.uid != str(uid):
|
|
30
|
+
raise ValueError("Platform returned a different Environment")
|
|
31
|
+
return HostedEnvironment(uid=str(uid), status="verified", name=environment.name,
|
|
32
|
+
is_production=environment.is_production,
|
|
33
|
+
required_repository_branch=environment.required_repository_branch)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def cached_environment(cache: PlatformCache[UUID, HostedEnvironment], uid: UUID | None) -> HostedEnvironment:
|
|
37
|
+
if uid is None:
|
|
38
|
+
return HostedEnvironment(uid=None, status="not_configured")
|
|
39
|
+
from mainsequence.client.exceptions import ApiError
|
|
27
40
|
from mainsequence.client.utils import DoesNotExist
|
|
28
41
|
|
|
29
42
|
try:
|
|
30
|
-
|
|
31
|
-
if environment.uid != str(uid):
|
|
32
|
-
return HostedEnvironment(uid=str(uid), status="unavailable")
|
|
33
|
-
return HostedEnvironment(uid=str(uid), status="verified", name=environment.name,
|
|
34
|
-
is_production=environment.is_production,
|
|
35
|
-
required_repository_branch=environment.required_repository_branch)
|
|
43
|
+
return cache.get(uid, lambda: verified_environment(uid))
|
|
36
44
|
except ApiError as exc:
|
|
37
45
|
logger.warning("Hosted environment lookup failed", exc_info=True)
|
|
38
46
|
return HostedEnvironment(uid=str(uid), status="not_found" if exc.status_code == 404 else "unavailable")
|
|
@@ -43,12 +51,6 @@ def verified_environment(uid: UUID | None) -> HostedEnvironment:
|
|
|
43
51
|
return HostedEnvironment(uid=str(uid), status="unavailable")
|
|
44
52
|
|
|
45
53
|
|
|
46
|
-
def cached_environment(cache: PlatformCache[UUID, HostedEnvironment], uid: UUID | None) -> HostedEnvironment:
|
|
47
|
-
if uid is None:
|
|
48
|
-
return HostedEnvironment(uid=None, status="not_configured")
|
|
49
|
-
return cache.get(uid, lambda: verified_environment(uid))
|
|
50
|
-
|
|
51
|
-
|
|
52
54
|
def branch_agent() -> HostedAgent:
|
|
53
55
|
"""The Harness Agent this API's branch deploys (ADR 0019); a branch deploys at most one.
|
|
54
56
|
|
|
@@ -58,7 +60,7 @@ def branch_agent() -> HostedAgent:
|
|
|
58
60
|
from mainsequence.code_repository_context import get_code_repository_context
|
|
59
61
|
|
|
60
62
|
branch_uid = get_code_repository_context().code_repository_branch_uid
|
|
61
|
-
agents = [agent for agent in Agent.filter(timeout=
|
|
63
|
+
agents = [agent for agent in Agent.filter(timeout=30)
|
|
62
64
|
if branch_uid and agent.code_repository_branch_uid == branch_uid]
|
|
63
65
|
if len(agents) != 1:
|
|
64
66
|
return HostedAgent(uid=None, status="not_found")
|
|
@@ -261,6 +261,12 @@ def initialize_runtime(config: RuntimeConfig) -> RuntimeState:
|
|
|
261
261
|
bootstrap.error = ("Saved runtime configuration is invalid. Configure the DataSource again in Settings."
|
|
262
262
|
if config.local_mode else "The declared runtime database configuration is invalid. "
|
|
263
263
|
"Fix runtime_database in the API's configuration.yaml, then deploy the API.")
|
|
264
|
+
if not (config.local_mode or config.developer_mode) and bootstrap.status == "unavailable":
|
|
265
|
+
# A hosted pod cannot repair its database through Settings. Fail startup
|
|
266
|
+
# so it never advertises readiness with a permanently failed bootstrap;
|
|
267
|
+
# the deployment's restart policy retries transient platform failures.
|
|
268
|
+
bootstrap.close()
|
|
269
|
+
raise RuntimeError(bootstrap.error or "The declared runtime database is unavailable.")
|
|
264
270
|
state = RuntimeState(config=config, identity=identity, bootstrap=bootstrap, credential_store=bootstrap.credential_store)
|
|
265
271
|
if identity is not None and identity.actor_facts is not None:
|
|
266
272
|
state.actor_facts_cache.seed(identity.user_uid, identity.actor_facts,
|
|
@@ -40,15 +40,19 @@ class RuntimeDatabaseError(RuntimeError):
|
|
|
40
40
|
def read_secret(name: str) -> tuple[UUID, str]:
|
|
41
41
|
"""Read one Secret of the caller's Environment by name."""
|
|
42
42
|
from mainsequence.client import Secret
|
|
43
|
+
from mainsequence.client.utils import DoesNotExist
|
|
43
44
|
try:
|
|
44
|
-
secret = Secret.get(name=name, timeout=
|
|
45
|
+
secret = Secret.get(name=name, timeout=30)
|
|
45
46
|
value = secret.value.get_secret_value() if secret.value is not None else ""
|
|
46
47
|
if not secret.uid or not value:
|
|
47
48
|
raise ValueError("Empty Secret")
|
|
48
49
|
return UUID(str(secret.uid)), value
|
|
49
|
-
except
|
|
50
|
+
except DoesNotExist as exc:
|
|
50
51
|
raise RuntimeDatabaseError("unavailable", f"Cannot read the Environment Secret {name}. Create it in this "
|
|
51
52
|
"Environment, then deploy the API.") from exc
|
|
53
|
+
except Exception as exc:
|
|
54
|
+
raise RuntimeDatabaseError("unavailable", f"Cannot read the Environment Secret {name}. Check platform "
|
|
55
|
+
"connectivity and the API's access to this Secret.") from exc
|
|
52
56
|
|
|
53
57
|
|
|
54
58
|
def declaration(config):
|
|
@@ -168,10 +168,13 @@ def test_environment_metadata_is_cached_and_expiry_does_not_preserve_verified_st
|
|
|
168
168
|
now[0], available[0] = 3600, False
|
|
169
169
|
for _ in range(3):
|
|
170
170
|
assert cached_environment(cache, uid).status == "unavailable"
|
|
171
|
-
assert len(calls) ==
|
|
172
|
-
|
|
171
|
+
assert len(calls) == 5
|
|
172
|
+
# Recovery must be visible immediately, without waiting another cache TTL.
|
|
173
|
+
available[0] = True
|
|
173
174
|
assert cached_environment(cache, uid).status == "verified"
|
|
174
|
-
assert len(calls) ==
|
|
175
|
+
assert len(calls) == 6
|
|
176
|
+
assert cached_environment(cache, uid).status == "verified"
|
|
177
|
+
assert len(calls) == 6
|
|
175
178
|
|
|
176
179
|
|
|
177
180
|
def test_cache_is_bounded_and_failed_lookup_can_recover():
|
|
@@ -128,3 +128,22 @@ def test_developer_launcher_uses_the_deployment_declaration(tmp_path, monkeypatc
|
|
|
128
128
|
def test_packaged_deployment_declares_its_runtime_database():
|
|
129
129
|
declared = DeploymentConfiguration.load(DEPLOYMENT_CONFIGURATION).runtime_database
|
|
130
130
|
assert declared.uri_secret == "METATABLES_RUNTIME_DATABASE" and declared.tls.mode == "require"
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def test_secret_timeout_fails_hosted_startup_instead_of_serving_a_broken_runtime(tmp_path, monkeypatch):
|
|
134
|
+
from mainsequence.client import Secret
|
|
135
|
+
from mainsequence.client.exceptions import TransportError
|
|
136
|
+
|
|
137
|
+
from metatables.api.app.runtime import initialize_runtime
|
|
138
|
+
|
|
139
|
+
path = tmp_path / "configuration.yaml"
|
|
140
|
+
path.write_text(POSTGRESQL)
|
|
141
|
+
|
|
142
|
+
def timed_out(cls, **kwargs):
|
|
143
|
+
raise TransportError("private upstream details")
|
|
144
|
+
|
|
145
|
+
monkeypatch.setattr(Secret, "get", classmethod(timed_out))
|
|
146
|
+
with pytest.raises(RuntimeError, match="Check platform connectivity") as raised:
|
|
147
|
+
initialize_runtime(RuntimeConfig(local_mode=False, configuration_path=path))
|
|
148
|
+
assert "Create it" not in str(raised.value)
|
|
149
|
+
assert "private upstream details" not in str(raised.value)
|
|
@@ -121,7 +121,7 @@ def test_hosted_mode_uses_the_deployment_declared_database(tmp_path, monkeypatch
|
|
|
121
121
|
reads.append(name)
|
|
122
122
|
return secret_uid, "postgresql://metatables:s3cr%40t@tunnel.example.invalid:20989/development"
|
|
123
123
|
monkeypatch.setattr("metatables.api.app.runtime_database.read_secret", read_secret)
|
|
124
|
-
def inspect_without_remote_connection(self):
|
|
124
|
+
def inspect_without_remote_connection(self, **kwargs):
|
|
125
125
|
self.status, self.error, self.current = "migration_required", None, []
|
|
126
126
|
monkeypatch.setattr(RuntimeBootstrap, "inspect", inspect_without_remote_connection)
|
|
127
127
|
monkeypatch.setattr(RuntimeBootstrap, "migration_descriptor", lambda self: dict(
|
|
@@ -825,7 +825,7 @@ mcp = [
|
|
|
825
825
|
|
|
826
826
|
[[package]]
|
|
827
827
|
name = "mainsequence-metatable"
|
|
828
|
-
version = "0.1.
|
|
828
|
+
version = "0.1.30"
|
|
829
829
|
source = { editable = "." }
|
|
830
830
|
dependencies = [
|
|
831
831
|
{ name = "alembic" },
|
|
@@ -888,7 +888,7 @@ requires-dist = [
|
|
|
888
888
|
{ name = "keyring", specifier = ">=25,<26" },
|
|
889
889
|
{ name = "mainsequence", extras = ["mcp"], specifier = ">=9.0.19,<10" },
|
|
890
890
|
{ name = "mkdocs", marker = "extra == 'docs'", specifier = ">=1.6,<2" },
|
|
891
|
-
{ name = "ms-tau-sdk", marker = "extra == 'agent'", specifier = "==2.0.
|
|
891
|
+
{ name = "ms-tau-sdk", marker = "extra == 'agent'", specifier = "==2.0.10" },
|
|
892
892
|
{ name = "numpy" },
|
|
893
893
|
{ name = "opentelemetry-api" },
|
|
894
894
|
{ name = "opentelemetry-exporter-otlp" },
|
|
@@ -1224,7 +1224,7 @@ wheels = [
|
|
|
1224
1224
|
|
|
1225
1225
|
[[package]]
|
|
1226
1226
|
name = "ms-tau-sdk"
|
|
1227
|
-
version = "2.0.
|
|
1227
|
+
version = "2.0.10"
|
|
1228
1228
|
source = { registry = "https://pypi.org/simple" }
|
|
1229
1229
|
dependencies = [
|
|
1230
1230
|
{ name = "anyio" },
|
|
@@ -1242,9 +1242,9 @@ dependencies = [
|
|
|
1242
1242
|
{ name = "tau-ai" },
|
|
1243
1243
|
{ name = "uvicorn", extra = ["standard"] },
|
|
1244
1244
|
]
|
|
1245
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1245
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ce/6c/1e5c39235dc1967d3200dc42ea907cd1ae5658aea8fb1bb308c0d386220a/ms_tau_sdk-2.0.10.tar.gz", hash = "sha256:f4de037535aaded8aaf83ea35a209eef8f5f8654268c3ea0dc204dc88d433eb6", size = 308370, upload-time = "2026-10-09T15:34:51.335Z" }
|
|
1246
1246
|
wheels = [
|
|
1247
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1247
|
+
{ url = "https://files.pythonhosted.org/packages/85/7c/2580ba420bf6d795647a9713d76b3d087a9a89158670a53a4fe525074b16/ms_tau_sdk-2.0.10-py3-none-any.whl", hash = "sha256:4e299eff3f477a08568374e6037b645b7512149427d0cd062ec278fcee268589", size = 334357, upload-time = "2026-10-09T15:34:49.885Z" },
|
|
1248
1248
|
]
|
|
1249
1249
|
|
|
1250
1250
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/api/metatables/main.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/compose.database-tests.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/api/data-sources.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/local-storage.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/quickstart.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/client/tutorial.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/architecture.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/concepts/data-sources.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/releasing.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/contributing/testing.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/README.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/query.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/quickstart.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.29.dev52 → mainsequence_metatable-0.1.30}/docs/examples/tables.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|