mainsequence-metatable 0.1.26.dev43__tar.gz → 0.1.27.dev45__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.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.mainsequence/workflows/metatables-api.yaml +5 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/agent/0019-metatables-analyst-agent.md +10 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/mainsequence_metatable.egg-info/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/mainsequence_metatable.egg-info/SOURCES.txt +1 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/runtime_context.py +29 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/runtime.py +3 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/runtime_contract.py +9 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/analyst/test_agent_surface.py +2 -0
- mainsequence_metatable-0.1.27.dev45/tests/auth/test_hosted_agent.py +59 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_hosted_environment_target.py +6 -3
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/uv.lock +1 -1
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/analyze-with-sql/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/discover-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/LICENSE +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0017-hosted-request-identity.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/api/0018-table-search.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/analysis.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/analyst/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/mcp.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_search.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/documents.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/embeddings.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/index.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/ranking.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/text.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/backend/search/worker.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/analyst/test_api_search.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/analyst/test_mcp.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/analyst/test_tools.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_request_identity.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_runtime_contract_compat.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_search_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_search_scale.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_table_queries.py +0 -0
- {mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/tests/permissions/test_workload_principals.py +0 -0
|
@@ -17,12 +17,16 @@ resources:
|
|
|
17
17
|
secrets:
|
|
18
18
|
- name: METATABLES_RUNTIME_DATABASE
|
|
19
19
|
level: view
|
|
20
|
+
# /runtime-context/ tells applications this branch's Analyst (ADR 0019).
|
|
21
|
+
resources:
|
|
22
|
+
- key: metatables-analyst-agent
|
|
23
|
+
level: view
|
|
20
24
|
|
|
21
25
|
- key: metatables-analyst-agent
|
|
22
26
|
kind: harness_agent
|
|
23
27
|
spec:
|
|
24
28
|
source_path: api/tau/main.py
|
|
25
|
-
llm_provider: openai
|
|
29
|
+
llm_provider: openai-codex
|
|
26
30
|
llm_model: gpt-5.6-luna
|
|
27
31
|
llm_thinking: medium
|
|
28
32
|
automatic_deployment: true
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# ADR 0019: MetaTables Analyst agent
|
|
2
2
|
|
|
3
|
+
> Amendment (2026-10-08): The API names this branch's Analyst to applications.
|
|
4
|
+
> `GET /runtime-context/` returns `hosted_agent` (`uid`, `name`, `status`) beside
|
|
5
|
+
> `hosted_environment`: the Agent the API's own branch deploys, which the API finds with its
|
|
6
|
+
> workload credentials and caches for an hour like the Environment; a failed lookup is
|
|
7
|
+
> `unavailable` and is not cached. The API's `access` names the Analyst by its key so it can
|
|
8
|
+
> see it. An application's assistant, such as the MetaTables Admin rail, takes the Agent and
|
|
9
|
+
> the Environment from there instead of build values. A re-created Analyst reaches it at the
|
|
10
|
+
> API's next deployment, which the same push starts. Local mode reports neither.
|
|
11
|
+
>
|
|
3
12
|
> Amendment (2026-10-08): [ADR 0020](0020-analyst-reads-as-its-requester.md) replaces
|
|
4
13
|
> the agent's own Reader grants: each tool call is answered as the person the turn
|
|
5
14
|
> serves, so nobody reads more through the agent than they can read directly.
|
|
@@ -61,7 +70,7 @@ refuses anything else.
|
|
|
61
70
|
|
|
62
71
|
| Part | Rule |
|
|
63
72
|
| --- | --- |
|
|
64
|
-
| Runtime | `ms-tau-sdk` 2.0.8.dev44, `openai` / `gpt-5.6-luna`, thinking `medium`. |
|
|
73
|
+
| Runtime | `ms-tau-sdk` 2.0.8.dev44, `openai-codex` / `gpt-5.6-luna`, thinking `medium`. |
|
|
65
74
|
| Identity | The person each turn serves (ADR 0020); the agent's own identity holds no grants. |
|
|
66
75
|
| 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. |
|
|
67
76
|
| Instructions | `.tau/SYSTEM.md` covers MetaTables; vendored `pg-aiguide` skills cover PostgreSQL and TimescaleDB. |
|
|
@@ -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.27.dev45"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -443,6 +443,7 @@ tests/analyst/test_tools.py
|
|
|
443
443
|
tests/auth/test_bootstrap_failure_cause.py
|
|
444
444
|
tests/auth/test_data_source_identity.py
|
|
445
445
|
tests/auth/test_development_client.py
|
|
446
|
+
tests/auth/test_hosted_agent.py
|
|
446
447
|
tests/auth/test_hosted_environment_target.py
|
|
447
448
|
tests/auth/test_local_mode.py
|
|
448
449
|
tests/auth/test_platform_fact_cache.py
|
|
@@ -12,7 +12,7 @@ from metatables.api.app.runtime import data_source_provider
|
|
|
12
12
|
from metatables.api.app.runtime_control import runtime_instance_id
|
|
13
13
|
from metatables.api.backend.integrations.local_workspace import source_descriptor
|
|
14
14
|
from metatables.api.backend.integrations.runtime_data_sources import DataSourceIntegrationError
|
|
15
|
-
from metatables.runtime_contract import HostedEnvironment, RuntimeContext
|
|
15
|
+
from metatables.runtime_contract import HostedAgent, HostedEnvironment, RuntimeContext
|
|
16
16
|
|
|
17
17
|
logger = logging.getLogger(__name__)
|
|
18
18
|
|
|
@@ -49,6 +49,32 @@ def cached_environment(cache: PlatformCache[UUID, HostedEnvironment], uid: UUID
|
|
|
49
49
|
return cache.get(uid, lambda: verified_environment(uid))
|
|
50
50
|
|
|
51
51
|
|
|
52
|
+
def branch_agent() -> HostedAgent:
|
|
53
|
+
"""The Harness Agent this API's branch deploys (ADR 0019); a branch deploys at most one.
|
|
54
|
+
|
|
55
|
+
A failed lookup raises, so the cache keeps no failure.
|
|
56
|
+
"""
|
|
57
|
+
from mainsequence.client.agent_runtime_models import Agent
|
|
58
|
+
from mainsequence.code_repository_context import get_code_repository_context
|
|
59
|
+
|
|
60
|
+
branch_uid = get_code_repository_context().code_repository_branch_uid
|
|
61
|
+
agents = [agent for agent in Agent.filter(timeout=(2, 5))
|
|
62
|
+
if branch_uid and agent.code_repository_branch_uid == branch_uid]
|
|
63
|
+
if len(agents) != 1:
|
|
64
|
+
return HostedAgent(uid=None, status="not_found")
|
|
65
|
+
return HostedAgent(uid=agents[0].uid, status="verified", name=agents[0].name)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def cached_agent(cache: PlatformCache[UUID, HostedAgent], environment_uid: UUID | None) -> HostedAgent:
|
|
69
|
+
if environment_uid is None:
|
|
70
|
+
return HostedAgent(uid=None, status="not_configured")
|
|
71
|
+
try:
|
|
72
|
+
return cache.get(environment_uid, branch_agent)
|
|
73
|
+
except Exception:
|
|
74
|
+
logger.exception("Hosted agent lookup failed")
|
|
75
|
+
return HostedAgent(uid=None, status="unavailable")
|
|
76
|
+
|
|
77
|
+
|
|
52
78
|
@router.get("/runtime-context/", response_model=RuntimeContext, response_model_exclude_unset=True)
|
|
53
79
|
def runtime_context(
|
|
54
80
|
request: Request, response: Response,
|
|
@@ -73,6 +99,8 @@ def runtime_context(
|
|
|
73
99
|
"runtime_instance_id": runtime_instance_id(state) if control else None,
|
|
74
100
|
"api_endpoint": f"http://{state.config.expected_host}" if state.config.local_mode else str(request.base_url).rstrip("/"),
|
|
75
101
|
"hosted_environment": environment,
|
|
102
|
+
# The Analyst an application's assistant talks to, in the same Environment (ADR 0019).
|
|
103
|
+
"hosted_agent": None if state.config.local_mode else cached_agent(state.agent_cache, caller.environment_uid),
|
|
76
104
|
"git_source": source_descriptor(workspace.source) if workspace else None,
|
|
77
105
|
"data_source_selection": selection,
|
|
78
106
|
"bootstrap": state.bootstrap.descriptor(caller.user_uid, is_admin=caller.is_admin) if state.bootstrap else None,
|
|
@@ -37,7 +37,7 @@ from metatables.api.backend.integrations.runtime_binding import (
|
|
|
37
37
|
RuntimeBindingError,
|
|
38
38
|
RuntimeStorageBinding,
|
|
39
39
|
)
|
|
40
|
-
from metatables.runtime_contract import HostedEnvironment
|
|
40
|
+
from metatables.runtime_contract import HostedAgent, HostedEnvironment
|
|
41
41
|
|
|
42
42
|
logger = logging.getLogger(__name__)
|
|
43
43
|
|
|
@@ -221,6 +221,8 @@ class RuntimeState:
|
|
|
221
221
|
default_factory=PlatformCache, repr=False, compare=False)
|
|
222
222
|
environment_cache: PlatformCache[UUID, HostedEnvironment] = field(
|
|
223
223
|
default_factory=PlatformCache, repr=False, compare=False)
|
|
224
|
+
agent_cache: PlatformCache[UUID, HostedAgent] = field(
|
|
225
|
+
default_factory=PlatformCache, repr=False, compare=False)
|
|
224
226
|
|
|
225
227
|
@property
|
|
226
228
|
def workspace(self) -> LocalWorkspace | None:
|
|
@@ -23,6 +23,14 @@ class HostedEnvironment(BaseModel):
|
|
|
23
23
|
required_repository_branch: str | None = None
|
|
24
24
|
|
|
25
25
|
|
|
26
|
+
class HostedAgent(BaseModel):
|
|
27
|
+
"""The Harness Agent this API's branch deploys, as the API's workload sees it."""
|
|
28
|
+
model_config = ConfigDict(extra="ignore", frozen=True)
|
|
29
|
+
uid: str | None
|
|
30
|
+
status: Literal["verified", "not_found", "unavailable", "not_configured"]
|
|
31
|
+
name: str | None = None
|
|
32
|
+
|
|
33
|
+
|
|
26
34
|
class RuntimeBootstrapDescriptor(BaseModel):
|
|
27
35
|
model_config = ConfigDict(extra="ignore", frozen=True)
|
|
28
36
|
status: Literal["unconfigured", "migration_required", "registration_required", "migrating", "ready", "incompatible", "unavailable"]
|
|
@@ -62,6 +70,7 @@ class RuntimeContext(BaseModel):
|
|
|
62
70
|
runtime_instance_id: str | None = None
|
|
63
71
|
api_endpoint: str = ""
|
|
64
72
|
hosted_environment: HostedEnvironment | None = None
|
|
73
|
+
hosted_agent: HostedAgent | None = None
|
|
65
74
|
data_source_selection: Literal["local_workspace", "catalog_default", "runtime_override", "runtime_binding"] = "catalog_default"
|
|
66
75
|
data_source_error: str | None = None
|
|
67
76
|
bootstrap: RuntimeBootstrapDescriptor | None = None
|
|
@@ -57,6 +57,8 @@ def test_card_workflow_and_entrypoint_describe_one_read_only_agent():
|
|
|
57
57
|
# The API serves the read tools over MCP and the hosted agent uses them as the person
|
|
58
58
|
# each turn serves (ADR 0020, ADR 0021).
|
|
59
59
|
assert api["spec"]["mcp_enabled"] is True
|
|
60
|
+
# The API sees its branch's Analyst, to name it in /runtime-context/ (ADR 0019).
|
|
61
|
+
assert api["access"]["resources"] == [{"key": "metatables-analyst-agent", "level": "view"}]
|
|
60
62
|
assert resource["spec"]["mcp_applications"] == [{"resource": "metatables"}]
|
|
61
63
|
assert resource["acts_for_requester"] is True
|
|
62
64
|
steps = workflow["execution"]["steps"]
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""The API names the Harness Agent its own branch deploys (ADR 0019)."""
|
|
2
|
+
|
|
3
|
+
from types import SimpleNamespace
|
|
4
|
+
from uuid import uuid4
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
from metatables.api.app.platform_cache import PlatformCache
|
|
9
|
+
from metatables.api.app.routes import runtime_context as route
|
|
10
|
+
from metatables.runtime_contract import HostedAgent
|
|
11
|
+
|
|
12
|
+
BRANCH = "branch-uid"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.fixture
|
|
16
|
+
def platform(monkeypatch):
|
|
17
|
+
from mainsequence import code_repository_context
|
|
18
|
+
from mainsequence.client import agent_runtime_models
|
|
19
|
+
|
|
20
|
+
agents = []
|
|
21
|
+
monkeypatch.setattr(code_repository_context, "get_code_repository_context",
|
|
22
|
+
lambda: SimpleNamespace(code_repository_branch_uid=BRANCH))
|
|
23
|
+
monkeypatch.setattr(agent_runtime_models.Agent, "filter",
|
|
24
|
+
classmethod(lambda cls, timeout=None, **kwargs: list(agents)))
|
|
25
|
+
return agents
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def agent(branch, name="MetaTables Analyst"):
|
|
29
|
+
return SimpleNamespace(uid=str(uuid4()), name=name, code_repository_branch_uid=branch)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def test_the_agent_of_the_api_branch_is_named_and_others_are_ignored(platform):
|
|
33
|
+
own = agent(BRANCH)
|
|
34
|
+
platform.extend([agent("other-branch", name="Other"), own])
|
|
35
|
+
|
|
36
|
+
assert route.branch_agent() == HostedAgent(uid=own.uid, name=own.name, status="verified")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_no_agent_on_the_api_branch_is_not_found(platform):
|
|
40
|
+
platform.append(agent("other-branch"))
|
|
41
|
+
|
|
42
|
+
assert route.branch_agent() == HostedAgent(uid=None, status="not_found")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def test_a_failed_lookup_is_unavailable_and_not_cached(monkeypatch):
|
|
46
|
+
calls = []
|
|
47
|
+
|
|
48
|
+
def failing():
|
|
49
|
+
calls.append(1)
|
|
50
|
+
raise RuntimeError("platform unavailable")
|
|
51
|
+
|
|
52
|
+
monkeypatch.setattr(route, "branch_agent", failing)
|
|
53
|
+
cache = PlatformCache()
|
|
54
|
+
environment_uid = uuid4()
|
|
55
|
+
|
|
56
|
+
for _ in range(2):
|
|
57
|
+
assert route.cached_agent(cache, environment_uid) == HostedAgent(uid=None, status="unavailable")
|
|
58
|
+
assert len(calls) == 2
|
|
59
|
+
assert route.cached_agent(cache, None) == HostedAgent(uid=None, status="not_configured")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""The runtime descriptor reports only the active API's hosted Environment."""
|
|
1
|
+
"""The runtime descriptor reports only the active API's hosted Environment and Agent."""
|
|
2
2
|
|
|
3
3
|
from types import SimpleNamespace
|
|
4
4
|
from uuid import uuid4
|
|
@@ -9,7 +9,7 @@ from fastapi import Response
|
|
|
9
9
|
from metatables.api.app.auth.boundary import AdmittedCaller
|
|
10
10
|
from metatables.api.app.platform_cache import PlatformCache
|
|
11
11
|
from metatables.api.app.routes import runtime_context as route
|
|
12
|
-
from metatables.runtime_contract import HostedEnvironment, RuntimeContext
|
|
12
|
+
from metatables.runtime_contract import HostedAgent, HostedEnvironment, RuntimeContext
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.mark.parametrize("local", [True, False])
|
|
@@ -19,14 +19,16 @@ def test_runtime_descriptor_reports_the_active_environment_only_when_hosted(monk
|
|
|
19
19
|
|
|
20
20
|
uid = uuid4()
|
|
21
21
|
environment = HostedEnvironment(uid=str(uid), name="Development", status="verified")
|
|
22
|
+
agent = HostedAgent(uid=str(uuid4()), name="MetaTables Analyst", status="verified")
|
|
22
23
|
state = SimpleNamespace(config=SimpleNamespace(local_mode=local, developer_mode=True,
|
|
23
24
|
configuration_path=None, expected_host="127.0.0.1:18473"), workspace=None, bootstrap=None,
|
|
24
|
-
binding=SimpleNamespace(source_uid=None), environment_cache=PlatformCache(),
|
|
25
|
+
binding=SimpleNamespace(source_uid=None), environment_cache=PlatformCache(), agent_cache=PlatformCache(),
|
|
25
26
|
credential_store=SimpleNamespace(descriptor=lambda: dict(provider="unconfigured", status="uninitialized", error=None)))
|
|
26
27
|
request = SimpleNamespace(app=SimpleNamespace(state=SimpleNamespace(runtime=state, runtime_control=None)),
|
|
27
28
|
base_url="http://127.0.0.1:18473/")
|
|
28
29
|
monkeypatch.setattr(DeploymentConfiguration, "load", classmethod(lambda cls, path: SimpleNamespace(local_mode_available=True)))
|
|
29
30
|
monkeypatch.setattr(route, "verified_environment", lambda supplied_uid: environment)
|
|
31
|
+
monkeypatch.setattr(route, "branch_agent", lambda: agent)
|
|
30
32
|
def provider(state):
|
|
31
33
|
raise DataSourceIntegrationError("default_data_source_not_configured")
|
|
32
34
|
monkeypatch.setattr(route, "data_source_provider", provider)
|
|
@@ -35,4 +37,5 @@ def test_runtime_descriptor_reports_the_active_environment_only_when_hosted(monk
|
|
|
35
37
|
caller=AdmittedCaller(user_uid=uuid4(), environment_uid=uid)))
|
|
36
38
|
assert context.local_mode is local
|
|
37
39
|
assert context.hosted_environment == (None if local else environment)
|
|
40
|
+
assert context.hosted_agent == (None if local else agent)
|
|
38
41
|
assert response.headers["cache-control"] == "no-store"
|
|
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.26.dev43 → mainsequence_metatable-0.1.27.dev45}/api/metatables/main.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
|
|
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.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/adr/index.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/data-sources.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/api/reference.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
|
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/client/tutorial.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.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/README.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/query.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/docs/examples/reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.26.dev43 → mainsequence_metatable-0.1.27.dev45}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|