mainsequence-metatable 0.1.58.dev89__tar.gz → 0.1.59.dev90__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.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/client/metatables-meta-tables/SKILL.md +2 -2
- mainsequence_metatable-0.1.59.dev90/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +7 -0
- mainsequence_metatable-0.1.59.dev90/.agents/skills/ms_tau_sdk/design-agent-icons-and-motion/SKILL.md +42 -0
- mainsequence_metatable-0.1.59.dev90/.agents/skills/ms_tau_sdk/design-agent-icons-and-motion/agents/openai.yaml +4 -0
- mainsequence_metatable-0.1.59.dev90/.agents/skills/ms_tau_sdk/design-agent-icons-and-motion/references/metatables-example.html +146 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +3 -1
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +45 -19
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +30 -1
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +33 -29
- {mainsequence_metatable-0.1.58.dev89/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.59.dev90}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/agent/0019-metatables-analyst-agent.md +8 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/pyproject.toml +2 -2
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_boundaries.py +2 -1
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_docs.py +2 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90/src/mainsequence_metatable.egg-info}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/mainsequence_metatable.egg-info/SOURCES.txt +3 -2
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/mainsequence_metatable.egg-info/requires.txt +1 -1
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/analyst/test_agent_surface.py +67 -8
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/documentation/test_project_checks.py +13 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/uv.lock +6 -5
- mainsequence_metatable-0.1.58.dev89/.agents/skills/analyze-with-sql/SKILL.md +0 -26
- mainsequence_metatable-0.1.58.dev89/.agents/skills/discover-tables/SKILL.md +0 -31
- mainsequence_metatable-0.1.58.dev89/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +0 -7
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/LICENSE +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0017-hosted-request-identity.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0018-table-search.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0022-concurrent-requests-and-connection-reuse.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0023-daily-security-check.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/api/0024-namespace-and-table-access-roles.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/client/0025-application-encrypted-columns.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/assets/diagrams/namespace-access.svg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/analysis.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/analyst/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/auth/team_membership.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/connection_count.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/mcp.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/access_map.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/caller.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_search.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/batch_inspection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/connection_pool.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/access_roles.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/security_check_job.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0012_table_creator.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0013_security_check.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0014_access_roles.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/0015_namespace_creator.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/bootstrap_timing.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/operations/security_check.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/documents.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/embeddings.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/index.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/ranking.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/text.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/backend/search/worker.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/api/request_timing.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/encryption.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/encryption.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/envelope_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/analyst/test_api_search.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/analyst/test_mcp.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/analyst/test_tools.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_caller_endpoint.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_hosted_agent.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_request_identity.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/auth/test_team_membership.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/catalog/test_schema_validation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_encryption.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_runtime_contract_compat.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/contracts/test_update_configuration_hash.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_encrypted_columns.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_managed_finalize_unchanged.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_migration_metadata_and_downgrade.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_search_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_search_scale.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_batch_introspection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_connection_reuse.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_request_timing.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_serving_policy.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_bootstrap_lock.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/packaging/test_requirements_export.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_access_map.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_deployment_security.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_incremental_security.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_security_check.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_table_queries.py +0 -0
- {mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/tests/permissions/test_workload_principals.py +0 -0
|
@@ -108,8 +108,8 @@ revisions; do not recompute identity from columns or rewrite applied history.
|
|
|
108
108
|
|
|
109
109
|
A password, API key, token or similar value that an application stores in a table
|
|
110
110
|
is declared with `EncryptedString`, never with `String`
|
|
111
|
-
(
|
|
112
|
-
|
|
111
|
+
(ADR 0025, `docs/adr/client/0025-application-encrypted-columns.md`; guide section
|
|
112
|
+
"Protect a column with application encryption" in `docs/client/define-and-migrate-tables.md`).
|
|
113
113
|
Table grants decide who reads the row; the Secret decides who reads the value.
|
|
114
114
|
|
|
115
115
|
```python
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
schema=1
|
|
2
|
+
library_name=ms-tau-sdk
|
|
3
|
+
namespace=ms_tau_sdk
|
|
4
|
+
pinned_version=2.0.26
|
|
5
|
+
skills_path=src/ms_tau_sdk/agent_skills
|
|
6
|
+
skills=design-agent-icons-and-motion,tau_a2a_runtime_adapter,tau_local_development,tau_project_customization,tau_repository_integration,tau_security_and_access
|
|
7
|
+
command=ms-tau skills sync --path .
|
mainsequence_metatable-0.1.59.dev90/.agents/skills/ms_tau_sdk/design-agent-icons-and-motion/SKILL.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-agent-icons-and-motion
|
|
3
|
+
description: Offer general composition and motion guidance when designing or reviewing agent icons. Use for visual identity work, not conversation or session implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Icon Composition and Motion
|
|
7
|
+
|
|
8
|
+
These are suggestions. Adapt them to the user's direction, the project's identity and the host.
|
|
9
|
+
|
|
10
|
+
Keep each agent's artwork, animations and build files in its owning project. `ms-tau-sdk`
|
|
11
|
+
distributes general guidance and this worked example; it does not own project or provider assets.
|
|
12
|
+
|
|
13
|
+
## Composition
|
|
14
|
+
|
|
15
|
+
- Start with the project's or provider's actual logo and preserve its recognisable shape.
|
|
16
|
+
- Keep one clear visual focus, balanced spacing and enough empty space for motion.
|
|
17
|
+
- Use consistent proportions, stroke weight and restrained accents to relate a family without
|
|
18
|
+
making its members indistinguishable. Avoid adding detail that disappears at display size.
|
|
19
|
+
- Fit the host's typography, colours and surfaces; check contrast in both themes.
|
|
20
|
+
|
|
21
|
+
## Motion
|
|
22
|
+
|
|
23
|
+
- Consider animation for every agent, with quiet idle motion and distinct activity motion.
|
|
24
|
+
- Keep the identity readable while a supporting element communicates activity.
|
|
25
|
+
- Let motion reflect the agent's purpose and reported state; never imply unreported progress
|
|
26
|
+
or success. Prefer restrained movement and smooth loop seams.
|
|
27
|
+
- Provide a useful still and respect reduced motion.
|
|
28
|
+
|
|
29
|
+
## Worked Example: MetaTables
|
|
30
|
+
|
|
31
|
+
Read or open [the visual walkthrough and editable source](references/metatables-example.html).
|
|
32
|
+
It builds the real logo into three layers, shows four animated states and actual display sizes,
|
|
33
|
+
and includes light/dark and reduced-motion checks. Expand its source section to see the SVG
|
|
34
|
+
composition and CSS that draw those same previews.
|
|
35
|
+
|
|
36
|
+
Follow the walkthrough's adaptation steps: preserve the next project's identity, reserve space
|
|
37
|
+
for activity, and design an accent that reflects its purpose. The example's coordinates and
|
|
38
|
+
row-scanning motif explain one solution; they are not a template every agent must copy.
|
|
39
|
+
|
|
40
|
+
Review at the actual display size, checking recognition, spacing, clipping and both themes.
|
|
41
|
+
Check the target renderer's supported formats, size limits and states before integration. Keep
|
|
42
|
+
this design work within the requested scope; it does not itself publish or replace live icons.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Agent Icons and Motion"
|
|
3
|
+
short_description: "Optional guidance for agent logos and action motion"
|
|
4
|
+
default_prompt: "Use $design-agent-icons-and-motion to suggest an agent icon family using existing logos and action-specific motion, adapted to the host and the user's preferences."
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>MetaTables — a worked icon composition</title>
|
|
7
|
+
<style id="example-styles">
|
|
8
|
+
:root { color-scheme: dark; --bg:#191919; --surface:#222222; --ink:#eeeae4; --muted:#aaa7a2; --line:#383838; }
|
|
9
|
+
:root[data-theme="light"] { color-scheme:light; --bg:#f7f6f3; --surface:#fff; --ink:#292928; --muted:#65635f; --line:#dedcd7; }
|
|
10
|
+
* { box-sizing:border-box; }
|
|
11
|
+
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
|
|
12
|
+
main { max-width:1080px; margin:auto; padding:36px 28px 48px; }
|
|
13
|
+
header { display:flex; justify-content:space-between; align-items:center; gap:16px; }
|
|
14
|
+
.eyebrow { color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
|
|
15
|
+
.controls { display:flex; gap:8px; }
|
|
16
|
+
button, summary { font:inherit; cursor:pointer; }
|
|
17
|
+
button { color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:7px 14px; }
|
|
18
|
+
button:hover { border-color:var(--muted); }
|
|
19
|
+
button:focus-visible, summary:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
|
|
20
|
+
button:disabled { cursor:default; opacity:.65; }
|
|
21
|
+
h1 { font-size:36px; font-weight:550; line-height:1.2; letter-spacing:-.035em; margin:32px 0 10px; }
|
|
22
|
+
h2 { font-size:20px; font-weight:550; margin:30px 0 14px; letter-spacing:-.02em; }
|
|
23
|
+
h3 { font-size:15px; font-weight:550; margin:10px 0 4px; }
|
|
24
|
+
p { margin:0 0 12px; }
|
|
25
|
+
.intro { color:var(--muted); max-width:780px; }
|
|
26
|
+
.build { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
|
|
27
|
+
.card { border:1px solid var(--line); background:var(--surface); border-radius:16px; padding:18px 20px; }
|
|
28
|
+
.step { font:11px ui-monospace,SFMono-Regular,monospace; color:var(--muted); }
|
|
29
|
+
.diagram { display:flex; justify-content:center; align-items:center; height:145px; }
|
|
30
|
+
.diagram svg { width:128px; height:128px; overflow:visible; }
|
|
31
|
+
.caption { color:var(--muted); font-size:13px; }
|
|
32
|
+
code { font-family:ui-monospace,SFMono-Regular,monospace; font-size:.86em; }
|
|
33
|
+
.measure { stroke:currentColor; opacity:.16; fill:none; stroke-width:.35; stroke-dasharray:1 1; }
|
|
34
|
+
.states { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
|
|
35
|
+
.state { padding:16px 18px; }
|
|
36
|
+
.state svg { display:block; width:72px; height:72px; margin:6px 0 12px; }
|
|
37
|
+
.state p { color:var(--muted); font-size:12px; margin:0; }
|
|
38
|
+
.samples { display:flex; align-items:center; gap:26px; padding:18px 0; flex-wrap:wrap; }
|
|
39
|
+
.sample { display:flex; align-items:center; gap:10px; }
|
|
40
|
+
.sample span { font-size:12px; color:var(--muted); }
|
|
41
|
+
.sample svg { display:block; }
|
|
42
|
+
.note { color:var(--muted); font-size:12px; border-top:1px solid var(--line); padding-top:14px; }
|
|
43
|
+
details { border:1px solid var(--line); border-radius:12px; padding:14px 18px; margin-top:18px; }
|
|
44
|
+
summary { font-size:14px; }
|
|
45
|
+
pre { background:var(--surface); border-radius:8px; padding:16px; font-size:11px; line-height:1.65; overflow:auto; max-height:400px; }
|
|
46
|
+
.recipe { padding-left:20px; font-size:13px; }
|
|
47
|
+
.recipe li { padding-left:4px; margin:10px 0; }
|
|
48
|
+
/* Only supporting marks animate. The logo and lower-left signature stay fixed. */
|
|
49
|
+
.icon { color:var(--ink); }
|
|
50
|
+
.signature { fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; }
|
|
51
|
+
.node { fill:currentColor; }
|
|
52
|
+
.pulse { animation:breathe 4.8s ease-in-out infinite; }
|
|
53
|
+
.orbit { transform-origin:35.5px 4.5px; animation:gather 2.4s linear infinite; }
|
|
54
|
+
.rows { fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; opacity:.2; }
|
|
55
|
+
.scan { fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; animation:scan-rows 2.4s steps(1,end) infinite; }
|
|
56
|
+
.attention { fill:none; stroke:currentColor; stroke-width:1.4; animation:breathe 2.4s ease-in-out infinite; }
|
|
57
|
+
@keyframes breathe { 0%,100% { opacity:.5; } 50% { opacity:1; } }
|
|
58
|
+
@keyframes gather { to { transform:rotate(360deg); } }
|
|
59
|
+
@keyframes scan-rows { 0% { transform:translateY(0); } 33.333% { transform:translateY(2.2px); } 66.667% { transform:translateY(4.4px); } }
|
|
60
|
+
[data-paused="true"] .pulse, [data-paused="true"] .orbit, [data-paused="true"] .scan, [data-paused="true"] .attention { animation-play-state:paused; }
|
|
61
|
+
@media (prefers-reduced-motion:reduce) { .pulse,.orbit,.scan,.attention { animation:none; } }
|
|
62
|
+
@media(max-width:700px) { main { padding:24px 16px; } header { align-items:flex-start; flex-direction:column; } h1 { font-size:30px; } .build { grid-template-columns:1fr; } .diagram { height:130px; } .states { grid-template-columns:repeat(2,1fr); } }
|
|
63
|
+
</style>
|
|
64
|
+
</head>
|
|
65
|
+
<body>
|
|
66
|
+
<!-- Original project geometry; fill uses the surrounding host ink. Teaching reference only. -->
|
|
67
|
+
<svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs>
|
|
68
|
+
<symbol id="metatables-mark" viewBox="0 0 64 64">
|
|
69
|
+
<circle cx="11" cy="13" r="5" fill="currentColor"/>
|
|
70
|
+
<circle cx="11" cy="51" r="5" fill="currentColor"/>
|
|
71
|
+
<circle cx="26" cy="32" r="4.5" fill="currentColor"/>
|
|
72
|
+
<path fill="currentColor" d="M10.86 16.97 13.15 15.03 24.15 28.03 21.86 29.97Z"/>
|
|
73
|
+
<path fill="currentColor" d="M10.86 47.03 13.15 48.97 24.15 35.97 21.86 34.03Z"/>
|
|
74
|
+
<path fill="currentColor" fill-rule="evenodd" d="M32 20h25v24H32Z M35 23h5v4h-5Z M42 23h5v4h-5Z M49 23h5v4h-5Z M35 29h5v5h-5Z M42 29h5v5h-5Z M49 29h5v5h-5Z M35 36h5v5h-5Z M42 36h5v5h-5Z M49 36h5v5h-5Z"/>
|
|
75
|
+
</symbol>
|
|
76
|
+
</defs></svg>
|
|
77
|
+
<main>
|
|
78
|
+
<header><span class="eyebrow">MainSequence / Composition reference</span><div class="controls"><button id="theme" type="button">Use light theme</button><button id="motion" type="button" aria-pressed="false">Pause motion</button></div></header>
|
|
79
|
+
<h1>Build the MetaTables icon.</h1>
|
|
80
|
+
<p class="intro">One worked example: preserve the project mark, compose a quiet family signature, then add a separate activity layer. The dimensions below explain this composition; adapt them to the next logo.</p>
|
|
81
|
+
<h2>1. Build three layers</h2>
|
|
82
|
+
<section class="build" aria-label="Composition walkthrough">
|
|
83
|
+
<article class="card"><span class="step">01 / IDENTITY</span><div class="diagram" id="identity"></div><h3>Keep the real mark</h3><p class="caption">Place the unchanged logo in a <code>26 × 26</code> box at <code>(7, 7)</code> on a <code>40 × 40</code> canvas. The table cells and relationship nodes stay legible.</p></article>
|
|
84
|
+
<article class="card"><span class="step">02 / FAMILY SIGNATURE</span><div class="diagram" id="composition"></div><h3>Balance the corners</h3><p class="caption">Add a detached node at <code>(35.5, 4.5)</code> and a short lower-left diagonal. Keep both outside the logo. Dashed boxes show the reserved space.</p></article>
|
|
85
|
+
<article class="card"><span class="step">03 / ACTIVITY</span><div class="diagram" id="activity"></div><h3>Scan below the identity</h3><p class="caption">Reserve <code>y = 34.2…38.6</code> for three short rows. Highlight one row at a time while working. The logo stays fixed; the accent carries the motion.</p></article>
|
|
86
|
+
</section>
|
|
87
|
+
<h2>2. Change the accent with the state</h2>
|
|
88
|
+
<section class="states" aria-label="Animated states">
|
|
89
|
+
<article class="card state"><div data-state="idle"></div><h3>Idle</h3><p>Node opacity breathes over 4.8 s. Identity stays still.</p></article>
|
|
90
|
+
<article class="card state"><div data-state="thinking"></div><h3>Thinking</h3><p>Three small signals orbit the node. No table scan yet.</p></article>
|
|
91
|
+
<article class="card state"><div data-state="working"></div><h3>Working</h3><p>A highlight scans three rows over 2.4 s. Activity, not progress.</p></article>
|
|
92
|
+
<article class="card state"><div data-state="error"></div><h3>Needs attention</h3><p>The node becomes a gently pulsing diamond. No flashing.</p></article>
|
|
93
|
+
</section>
|
|
94
|
+
<div class="samples" aria-label="Working icon at actual display sizes"><span class="eyebrow">Check at display size</span><div class="sample" data-size="24"></div><div class="sample" data-size="32"></div><div class="sample" data-size="48"></div></div>
|
|
95
|
+
<p class="note" id="motion-note">Motion here demonstrates design states. In the host, use reported agent activity. Pause and reduced motion preserve a readable frame.</p>
|
|
96
|
+
<details open><summary>3. Adapt this composition to another project</summary><ol class="recipe"><li><strong>Replace the identity layer.</strong> Keep that project's real mark and adjust its optical size. Do not copy MetaTables' table imagery to an unrelated agent.</li><li><strong>Keep a clear activity area.</strong> This example uses the lower band. A wider or taller logo may need another placement or less detail.</li><li><strong>Choose one relevant action.</strong> The moving row communicates the work of this agent. Design the next project's accent around its own purpose.</li><li><strong>Verify the result.</strong> Inspect both themes, small sizes, stills and the loop. This HTML uses SVG/CSS for explanation; export the owning project's assets in the target host's supported format.</li></ol></details>
|
|
97
|
+
<details><summary>Editable source: logo, composition and animation</summary><p class="caption" style="margin-top:14px">This file is the complete runnable example. The excerpts below are read from the same source that draws the previews.</p><h3>Original logo geometry</h3><pre><code id="source-logo"></code></pre><h3>Composition and state selection</h3><pre><code id="source-composition"></code></pre><h3>Motion rules</h3><pre><code id="source-motion"></code></pre></details>
|
|
98
|
+
<p class="note" style="margin-top:20px">Source mark: MetaTables project's <code>public/navigation-icon.svg</code>, reproduced here as a teaching reference with its geometry preserved and fill set to <code>currentColor</code>. Production artwork and build tooling belong to the owning project. This example makes no backend requests and changes no installed icons.</p>
|
|
99
|
+
</main>
|
|
100
|
+
<script>
|
|
101
|
+
function drawIcon(state, {guides=false, layer='activity', size=128}={}) {
|
|
102
|
+
const identity = '<use data-layer="identity" href="#metatables-mark" x="7" y="7" width="26" height="26"/>';
|
|
103
|
+
const signature = '<path class="signature" d="M4.5 35.5l3-3"/>';
|
|
104
|
+
const node = '<circle class="node" cx="35.5" cy="4.5" r="2"/>';
|
|
105
|
+
const accent = {
|
|
106
|
+
idle:'<circle class="node pulse" cx="35.5" cy="4.5" r="2"/>',
|
|
107
|
+
thinking:'<g class="orbit"><circle class="node" cx="37.6" cy="4.5" r="1.2"/><circle class="node" cx="34.45" cy="6.32" r=".8" opacity=".65"/><circle class="node" cx="34.45" cy="2.68" r=".8" opacity=".4"/></g>',
|
|
108
|
+
working:node+'<path class="rows" d="M14 34.2h14m-14 2.2h14m-14 2.2h14"/><path class="scan" d="M14 34.2h14"/>',
|
|
109
|
+
error:'<path class="attention" d="m35.5 1.2 3.3 3.3-3.3 3.3-3.3-3.3Z"/>'
|
|
110
|
+
}[state];
|
|
111
|
+
const grid = guides ? '<rect class="measure" x=".5" y=".5" width="39" height="39"/><rect class="measure" x="7" y="7" width="26" height="26"/>' : '';
|
|
112
|
+
const accents = layer === 'identity' ? '' : signature + (layer === 'signature' ? node : accent);
|
|
113
|
+
return `<svg class="icon" viewBox="0 0 40 40" width="${size}" height="${size}" role="img" aria-label="MetaTables ${state}">${grid}${identity}<g data-layer="activity">${accents}</g></svg>`;
|
|
114
|
+
}
|
|
115
|
+
document.querySelector('#identity').innerHTML=drawIcon('idle',{guides:true,layer:'identity'});
|
|
116
|
+
document.querySelector('#composition').innerHTML=drawIcon('idle',{guides:true,layer:'signature'});
|
|
117
|
+
document.querySelector('#activity').innerHTML=drawIcon('working',{guides:true});
|
|
118
|
+
document.querySelectorAll('[data-state]').forEach(el=>el.innerHTML=drawIcon(el.dataset.state));
|
|
119
|
+
document.querySelectorAll('[data-size]').forEach(el=>el.innerHTML=drawIcon('working',{size:Number(el.dataset.size)})+`<span>${el.dataset.size} px</span>`);
|
|
120
|
+
document.querySelector('#source-logo').textContent=document.querySelector('#metatables-mark').outerHTML;
|
|
121
|
+
document.querySelector('#source-composition').textContent=drawIcon.toString();
|
|
122
|
+
document.querySelector('#source-motion').textContent=document.querySelector('#example-styles').textContent.split('/* Only supporting marks animate. The logo and lower-left signature stay fixed. */')[1].split('@media(max-width:700px)')[0];
|
|
123
|
+
const root=document.documentElement;
|
|
124
|
+
document.querySelector('#theme').onclick=()=>{
|
|
125
|
+
root.dataset.theme=root.dataset.theme==='dark'?'light':'dark';
|
|
126
|
+
document.querySelector('#theme').textContent=`Use ${root.dataset.theme==='dark'?'light':'dark'} theme`;
|
|
127
|
+
};
|
|
128
|
+
const motion=document.querySelector('#motion');
|
|
129
|
+
const reduced=matchMedia('(prefers-reduced-motion: reduce)');
|
|
130
|
+
function applyPreference(){
|
|
131
|
+
motion.disabled=reduced.matches;
|
|
132
|
+
root.dataset.paused=String(reduced.matches);
|
|
133
|
+
motion.setAttribute('aria-pressed',String(reduced.matches));
|
|
134
|
+
motion.textContent=reduced.matches?'Reduced motion':'Pause motion';
|
|
135
|
+
}
|
|
136
|
+
motion.onclick=()=>{
|
|
137
|
+
const paused=root.dataset.paused!=='true';
|
|
138
|
+
root.dataset.paused=String(paused);
|
|
139
|
+
motion.setAttribute('aria-pressed',String(paused));
|
|
140
|
+
motion.textContent=paused?'Play motion':'Pause motion';
|
|
141
|
+
};
|
|
142
|
+
reduced.addEventListener('change',applyPreference);
|
|
143
|
+
applyPreference();
|
|
144
|
+
</script>
|
|
145
|
+
</body>
|
|
146
|
+
</html>
|
|
@@ -32,7 +32,9 @@ The SDK owns:
|
|
|
32
32
|
which the platform's own records establish, never the `X-Caller-*` headers;
|
|
33
33
|
- presenting the verified caller assertion of the request that starts a chat or A2A Message turn
|
|
34
34
|
only when it marks that turn active, so that the platform can record the turn's requester;
|
|
35
|
-
taking the person
|
|
35
|
+
taking the person a chat, A2A Message or caller-delivery turn serves from the platform's answer
|
|
36
|
+
to the turn start, and the person a Task attempt serves from the platform's answer to the Task's
|
|
37
|
+
creation or continuation or from its dispatch; and giving
|
|
36
38
|
extension tools that person and calls for the work through `current_requester()` and
|
|
37
39
|
`platform_client()` without exposing the assertion, the lease proof, or any token;
|
|
38
40
|
- translating inbound A2A requests into the shared TAU runtime; and
|
|
@@ -15,30 +15,54 @@ The workspace `.tau/` directory is the project behavior boundary:
|
|
|
15
15
|
|
|
16
16
|
```text
|
|
17
17
|
.tau/
|
|
18
|
-
├── SYSTEM.md
|
|
18
|
+
├── SYSTEM.md replaces the packaged system prompt
|
|
19
|
+
├── APPEND_SYSTEM.md appended to the system prompt
|
|
20
|
+
├── AGENTS.md project instructions for the deployed Agent
|
|
19
21
|
├── prompts/
|
|
20
22
|
├── skills/
|
|
21
23
|
└── extensions/
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
Creating `.tau/SYSTEM.md` replaces the packaged default general system instructions. There is no
|
|
25
|
-
|
|
26
|
-
version pinned by the installed SDK.
|
|
27
|
-
|
|
28
|
-
`.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
`.agents
|
|
27
|
+
SDK-specific prompt setting; Tau's own `APPEND_SYSTEM.md` and `AGENTS.md` under `.tau/` are the
|
|
28
|
+
other prompt resources. Other resources follow the TAU version pinned by the installed SDK.
|
|
29
|
+
|
|
30
|
+
By default the deployed Agent reads `.tau/` and nothing else in the repository. The root
|
|
31
|
+
`AGENTS.md` and `.agents/` hold instructions for coding agents working on the repository, you
|
|
32
|
+
among them: `.agents/skills/ms_tau_sdk/` is this SDK's managed development bundle,
|
|
33
|
+
`.agents/skills/mainsequence/` the platform SDK's, and the repository adds its own. None of it is
|
|
34
|
+
runtime behavior, none of it reaches the Agent, and none of it may be used as application
|
|
35
|
+
configuration. Put instructions meant for the Agent in `.tau/AGENTS.md`, `.tau/APPEND_SYSTEM.md`
|
|
36
|
+
or `.tau/SYSTEM.md`. Only an Agent that is itself a coding agent over its repository sets
|
|
37
|
+
`TAU_INCLUDE_DEVELOPMENT_RESOURCES=true`, which reads the root `AGENTS.md` and `.agents/` as well.
|
|
38
|
+
|
|
39
|
+
Tau reads the Agent's skills in `.tau/skills/` at any depth: a folder with a `SKILL.md` is a skill,
|
|
40
|
+
named after its folder; a folder without one groups skills, such as
|
|
41
|
+
`.tau/skills/<group>/<skill>/SKILL.md`. When the application also publishes the Agent's usage skills
|
|
42
|
+
to other agents with the mainsequence SDK's `skills_extension`, point the publisher at `.tau/skills`
|
|
43
|
+
itself: the Agent's skills and the published skills are one set. Do not publish a group folder
|
|
44
|
+
inside it to keep some skills private; instructions other agents may not see belong in
|
|
45
|
+
`.tau/SYSTEM.md` or `.tau/AGENTS.md`. The publisher's rules then hold for the whole folder:
|
|
46
|
+
lowercase letters, digits and single hyphens in every skill and group folder name; every folder a
|
|
47
|
+
skill or a non-empty group; frontmatter `name` equal to the folder name; leaf folder names unique,
|
|
48
|
+
because Tau names a skill by its folder. A group folder prefixes the published `skill://` URIs, so
|
|
49
|
+
a pack that was published from its own folder moves its skills directly into `.tau/skills` to keep
|
|
50
|
+
its URIs. Development skills stay in `.agents/skills` and are never published.
|
|
51
|
+
|
|
52
|
+
## Agent artwork
|
|
53
|
+
|
|
54
|
+
For optional icon composition and motion guidance, use `design-agent-icons-and-motion` from
|
|
55
|
+
this SDK's skill bundle. It includes a worked visual example; project artwork and animations
|
|
56
|
+
remain owned by the project.
|
|
36
57
|
|
|
37
58
|
## Extension ownership
|
|
38
59
|
|
|
39
60
|
Project extensions belong under `.tau/extensions/` and may add tools, hooks, and lifecycle
|
|
40
61
|
behavior. Keep reusable business logic in the normal application package and make extension
|
|
41
|
-
adapters thin and structured.
|
|
62
|
+
adapters thin and structured. When Main Sequence hosts the runtime, list every package an
|
|
63
|
+
extension imports in the repository's committed `requirements.txt`, and import the project's own
|
|
64
|
+
packages from `src/` or the repository root, because the project itself is not installed;
|
|
65
|
+
`tau-repository-integration` says how to keep that file current.
|
|
42
66
|
|
|
43
67
|
The project author owns:
|
|
44
68
|
|
|
@@ -53,12 +77,14 @@ tools are project choices and are not part of the base SDK.
|
|
|
53
77
|
|
|
54
78
|
## Runtime tool composition
|
|
55
79
|
|
|
56
|
-
|
|
80
|
+
Three independent process settings select the host-provided tools and the reading scope. All
|
|
81
|
+
default to `false`:
|
|
57
82
|
|
|
58
83
|
| Setting | Effect when `true` |
|
|
59
84
|
| --- | --- |
|
|
60
85
|
| `TAU_EXCLUDE_BASE_TOOLS` | Replace Tau's `read`, `write`, `edit`, and `bash` with a skill-scoped `read`. |
|
|
61
86
|
| `TAU_EXCLUDE_MAINSEQUENCE_MCP` | Skip Main Sequence MCP connection, tools, resources, and resource prompt. |
|
|
87
|
+
| `TAU_INCLUDE_DEVELOPMENT_RESOURCES` | Read the repository as a coding harness: the root `AGENTS.md`, every `AGENTS.md` above the workspace, `.agents/AGENTS.md`, `.agents/skills` and `.agents/prompts`, beside `.tau`. |
|
|
62
88
|
|
|
63
89
|
Set them in `harness_agent.spec.env_vars` in a managed repository workflow, in the process
|
|
64
90
|
environment for local `ms-tau`, or through explicit `TauSDKSettings` fields in a Python host. They
|
|
@@ -107,7 +133,7 @@ A declared application can publish Agent Skills through the MCP Skills extension
|
|
|
107
133
|
mainsequence SDK's skills publisher does. The Agent lists them with `<name>__list_resources` and
|
|
108
134
|
reads one file with `<name>__read_resource`; a skill file is returned only when its bytes match the
|
|
109
135
|
size and SHA-256 digest the skill lists. Published skills stay the application's: they are not
|
|
110
|
-
|
|
136
|
+
added to this Agent's skills under `.tau/skills/`, and fields such as `allowed-tools` grant nothing. With the
|
|
111
137
|
coding tools, a model that follows a published skill can run commands; set
|
|
112
138
|
`TAU_EXCLUDE_BASE_TOOLS=true` when that must not happen.
|
|
113
139
|
|
|
@@ -183,8 +209,8 @@ Rules for tools that act for the requester:
|
|
|
183
209
|
credentials itself. A tool never reads, logs, stores, or forwards them, passes a path rather than
|
|
184
210
|
a URL, and never sets `Authorization` or an `X-MainSequence-*` header.
|
|
185
211
|
- A delegated call uses the person's ordinary permissions, including administrative ones; any other
|
|
186
|
-
call uses the Agent's own. Each operation decides what it needs
|
|
187
|
-
|
|
212
|
+
call uses the Agent's own. Each operation decides what it needs: never infer that a call may
|
|
213
|
+
change an object because it may read it.
|
|
188
214
|
- Return to the model only business results, such as rows, numbers, and names. Never return the
|
|
189
215
|
response object, its headers, a token, a proof, or a raw error body.
|
|
190
216
|
- Keep nothing for another turn or another person. The delegation ends with the turn, and a task
|
|
@@ -206,8 +232,8 @@ separate authority. Prompt injection can cause unintended changes, sharing, or d
|
|
|
206
232
|
person's permissions, and completed writes can outlast the delegation. Only Organization admins
|
|
207
233
|
enable this authority.
|
|
208
234
|
|
|
209
|
-
For a complete example, a tool that uses a person's Secret without exposing it, and how
|
|
210
|
-
|
|
235
|
+
For a complete example, a tool that uses a person's Secret without exposing it, and how policies
|
|
236
|
+
decide what a delegated call can reach, use `tau_security_and_access`.
|
|
211
237
|
|
|
212
238
|
## Validation
|
|
213
239
|
|
|
@@ -22,6 +22,8 @@ uv run ms-tau skills sync --path .
|
|
|
22
22
|
|
|
23
23
|
This command atomically owns only `.agents/skills/ms_tau_sdk/`. Do not copy these files manually,
|
|
24
24
|
edit the managed copies, or make installation and runtime startup synchronize them implicitly.
|
|
25
|
+
These are development instructions for coding agents; the Agent the repository deploys reads its
|
|
26
|
+
resources from `.tau/` only and never sees `.agents/` or the root `AGENTS.md`.
|
|
25
27
|
|
|
26
28
|
## Service entry points
|
|
27
29
|
|
|
@@ -58,6 +60,25 @@ only with that declaration, read from the object it serves. Therefore:
|
|
|
58
60
|
repository. The platform sets them when it hosts the runtime, and local mode refuses to start
|
|
59
61
|
with them.
|
|
60
62
|
|
|
63
|
+
## Hosted dependencies and code
|
|
64
|
+
|
|
65
|
+
When Main Sequence hosts the runtime, it installs the packages that the committed
|
|
66
|
+
`requirements.txt` at the repository root lists, or, without that file, the dependencies that the
|
|
67
|
+
root `pyproject.toml` declares, and reuses them for every later commit until the file or the base
|
|
68
|
+
image changes. A package that `pyproject.toml` declares but `requirements.txt` does not list,
|
|
69
|
+
`ms-tau-sdk` included, is not installed, and its import fails in the hosted runtime. After adding
|
|
70
|
+
or upgrading the SDK, or a package that project code or an extension imports, run
|
|
71
|
+
`mainsequence code-repository sync` and commit `requirements.txt` with `uv.lock`. Pin the SDK from
|
|
72
|
+
the package index or a Git commit, never from a local path: the hosted build refuses local paths
|
|
73
|
+
other than the repository itself, and `-r` or `-c` references.
|
|
74
|
+
|
|
75
|
+
The hosted runtime runs the repository's files from `/workspace`, its working directory and
|
|
76
|
+
therefore the SDK workspace, with `/workspace/src` and `/workspace` on `PYTHONPATH`. The project
|
|
77
|
+
itself is not installed. Keep its top-level packages directly under `src/` or the repository root,
|
|
78
|
+
and do not make project code or extensions depend on `importlib.metadata` for the project's own
|
|
79
|
+
version or entry points, on the project's own console scripts, or on extensions compiled from its
|
|
80
|
+
sources.
|
|
81
|
+
|
|
61
82
|
## Job-hosted batch execution
|
|
62
83
|
|
|
63
84
|
ADR 0015 accepts a Python batch entry point, but it is **not implemented in this SDK version**.
|
|
@@ -96,7 +117,8 @@ JobRun UID in the SDK.
|
|
|
96
117
|
## Repository integration procedure
|
|
97
118
|
|
|
98
119
|
1. Inspect the project's Python constraint, dependency manager, lockfile, and application layout.
|
|
99
|
-
2. Add and pin `ms-tau-sdk` through that existing dependency workflow.
|
|
120
|
+
2. Add and pin `ms-tau-sdk` through that existing dependency workflow. For a runtime that Main
|
|
121
|
+
Sequence hosts, refresh and commit `requirements.txt` as "Hosted dependencies and code" says.
|
|
100
122
|
3. Synchronize these skills explicitly with `uv run ms-tau skills sync --path .`.
|
|
101
123
|
4. For a service, use `uv run ms-tau` unless the repository needs an importable ASGI module.
|
|
102
124
|
For a finite Job, follow the batch design only after the installed SDK supports it.
|
|
@@ -126,5 +148,12 @@ uv run python -c "from api.tau.main import app; print(app.state.mainsequence_req
|
|
|
126
148
|
The second command prints `{'installed': True, 'mode': 'local', 'public_ingress': ()}` outside
|
|
127
149
|
hosting.
|
|
128
150
|
|
|
151
|
+
For a runtime that Main Sequence hosts, also check that the committed `requirements.txt` pins the
|
|
152
|
+
SDK; the command prints its line:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
grep -i '^ms-tau-sdk' requirements.txt
|
|
156
|
+
```
|
|
157
|
+
|
|
129
158
|
Do not require the `mainsequence` Python distribution in the TAU dependency graph. Authentication
|
|
130
159
|
and Main Sequence transport are implemented directly by `ms-tau-sdk`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tau-security-and-access
|
|
3
|
-
description: Build and review project tools that call the platform or other applications for the person a turn serves, including tools that use a person's Secret without exposing it, and explain how delegation and
|
|
3
|
+
description: Build and review project tools that call the platform or other applications for the person a turn serves, including tools that use a person's Secret without exposing it, and explain how delegation and policies decide what those tools can reach.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# TAU Security and Access
|
|
@@ -8,7 +8,7 @@ description: Build and review project tools that call the platform or other appl
|
|
|
8
8
|
Use this skill when a project tool under `.tau/extensions/` calls the platform or another
|
|
9
9
|
platform application, uses a Secret, or must answer each person with their own data. Extension
|
|
10
10
|
mechanics are in `tau_project_customization`. The full model, with the administrator setup, is in
|
|
11
|
-
the SDK's Security and access guide (`docs/reference/security-model.md`).
|
|
11
|
+
the SDK's Security and access guide (`docs/reference/security-model.md`). Managing policies is in
|
|
12
12
|
`.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`.
|
|
13
13
|
|
|
14
14
|
## Who a call acts as
|
|
@@ -21,12 +21,14 @@ Every call a tool makes through `platform_client()` follows one rule:
|
|
|
21
21
|
| A valid delegation | The person the turn serves, with their ordinary permissions, including administrative ones. |
|
|
22
22
|
| A delegation that ended or is invalid | None. The call is refused with a `PermissionError` and is never retried as the Agent. |
|
|
23
23
|
|
|
24
|
-
- The platform names the person when
|
|
24
|
+
- The platform names the person when a chat or Message turn starts, and for a Task when it is
|
|
25
|
+
created, continued or dispatched; `current_requester()` returns them. It
|
|
25
26
|
returns `None` when the Agent is not enabled to act for people (only an Organization admin can
|
|
26
27
|
enable it, with `acts_for_requester`), for work no person asked for, in local mode and outside a
|
|
27
28
|
turn.
|
|
28
29
|
- The operation or application that receives the call decides what it may do. No list says which
|
|
29
|
-
operations accept a delegation.
|
|
30
|
+
operations accept a delegation. On the platform, each operation needs its own action: reading an
|
|
31
|
+
object never lets the call change, run or delete it, or decide who has access.
|
|
30
32
|
- The call stays the Agent's call, made for the person. It is not impersonation: the platform
|
|
31
33
|
checks it on every call, only while the turn or Task serving the person runs, for at most 24
|
|
32
34
|
hours after their request, and only in the Agent's Environment.
|
|
@@ -175,40 +177,42 @@ What makes it safe:
|
|
|
175
177
|
- The Agent's own workload holds no grant on these Secrets, so a call without the person reaches
|
|
176
178
|
none of them.
|
|
177
179
|
|
|
178
|
-
##
|
|
180
|
+
## Policies decide what a delegated call can reach
|
|
179
181
|
|
|
180
|
-
A delegated
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
membership. Who can see and manage a
|
|
184
|
-
`membership_manager`, `editor` and `owner` policies on
|
|
185
|
-
becomes its owner and first member, members can see the team
|
|
186
|
-
manage every team from their role, without being members.
|
|
187
|
-
Security and access guide's **Teams and membership** section. The platform enforces
|
|
188
|
-
which of those objects a tool uses is part of the tool's design. For Secrets, the
|
|
189
|
-
convention states that design:
|
|
182
|
+
A delegated call reaches what the person's policies allow in the Agent's Environment: the policies
|
|
183
|
+
they hold directly, such as `owner` on what they created, and those given to a team they belong to.
|
|
184
|
+
This holds for Secrets and every other object the platform decides by policies. A team's members
|
|
185
|
+
receive the policies given to it, and `in_teams()` answers membership. Who can see and manage a
|
|
186
|
+
team is decided separately, by the `viewer`, `membership_manager`, `editor` and `owner` policies on
|
|
187
|
+
it: any person can create a team and becomes its owner and first member, members can see the team
|
|
188
|
+
and leave it, and Organization admins manage every team from their role, without being members.
|
|
189
|
+
See the SDK Security and access guide's **Teams and membership** section. The platform enforces
|
|
190
|
+
the policies; which of those objects a tool uses is part of the tool's design. For Secrets, the
|
|
191
|
+
naming convention states that design:
|
|
190
192
|
|
|
191
193
|
- **A personal credential:** a name tied to the person, such as `QUOTES_API_KEY__<person uid>`.
|
|
192
|
-
The person decides whether
|
|
194
|
+
The person owns it and decides whether anyone else gets a policy on it.
|
|
193
195
|
- **A team credential:** a name the team agrees on, with `value_reader` attached to the team. The
|
|
194
196
|
tool reads it for any member.
|
|
195
|
-
- **Someone else's Secret
|
|
197
|
+
- **Someone else's Secret whose value the person may read:** valid whenever the tool is meant to
|
|
198
|
+
use it.
|
|
196
199
|
|
|
197
|
-
Whoever
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
Whoever holds `editor` or `owner` on a Secret sets its value, so the tool uses whatever value they
|
|
201
|
+
set. Giving someone either policy on a Secret, or using a Secret whose editors or owners are other
|
|
202
|
+
people, means trusting them with what the tool does with it. That is a decision people make when
|
|
203
|
+
they give policies, not one the platform makes for them.
|
|
200
204
|
|
|
201
|
-
How
|
|
205
|
+
How Secret policies work:
|
|
202
206
|
|
|
203
207
|
- Policies on a Secret decide access: `reader` sees that it exists and its name, never its value;
|
|
204
208
|
`value_reader` also reads the current value; `editor` also reads earlier values, sets a new value,
|
|
205
209
|
deletes it and sees who has access; `owner` also decides who has access. The creator becomes its
|
|
206
210
|
owner, and Organization admins hold every policy on their Organization's Secrets from their role.
|
|
207
211
|
- Owners attach and detach these policies for people, teams and workloads; whoever manages a
|
|
208
|
-
workload can also give it a policy they hold, and anyone can remove their own.
|
|
209
|
-
|
|
210
|
-
people
|
|
211
|
-
|
|
212
|
+
workload can also give it a policy they hold, and anyone can remove their own. Nobody gives a
|
|
213
|
+
policy with more than they hold, and people other than Organization admins give access only to
|
|
214
|
+
people who share an active team with them, to teams they belong to, and to workloads they manage
|
|
215
|
+
or whose Job or release they can see (`jobs.read` or `resource-releases.read`).
|
|
212
216
|
- `GET /api/v1/secrets/<uid>/access/` lists who holds which policy, for editors and owners, and
|
|
213
217
|
`GET /api/v1/secrets/<uid>/access/me/` answers what the caller may do with it. A tool can use
|
|
214
218
|
them when its design needs to, for example to refuse a team key where it expects a personal one.
|
|
@@ -265,9 +269,9 @@ platform checks it again on every call.
|
|
|
265
269
|
|
|
266
270
|
## Checking the person's teams
|
|
267
271
|
|
|
268
|
-
A delegated call already reaches exactly what the person can, including what
|
|
269
|
-
teams, so a tool rarely checks teams itself. When the tool's own policy names teams,
|
|
270
|
-
platform with `in_teams()`:
|
|
272
|
+
A delegated call already reaches exactly what the person can, including what the policies given to
|
|
273
|
+
their teams allow, so a tool rarely checks teams itself. When the tool's own policy names teams,
|
|
274
|
+
ask the platform with `in_teams()`:
|
|
271
275
|
|
|
272
276
|
```python
|
|
273
277
|
person = current_requester()
|
|
@@ -328,7 +332,7 @@ Patch the extension module's `current_requester` and `platform_client` with fake
|
|
|
328
332
|
- No person's UID, Secret name or Secret value comes from tool arguments, the prompt or history.
|
|
329
333
|
- No tool returns a credential or calls a platform path the model chooses.
|
|
330
334
|
- Secret values stay inside one call, in headers, never in results, logs, errors, URLs or caches.
|
|
331
|
-
- The naming convention says whose Secrets the tool uses, and the
|
|
335
|
+
- The naming convention says whose Secrets the tool uses, and the owners of those Secrets know it.
|
|
332
336
|
- A refused delegated call is reported, never retried as the Agent.
|
|
333
337
|
- The Agent's workload holds no grants it does not need, and none on people's Secrets; `user` is
|
|
334
338
|
enough on an Agent it only sends work to.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.59.dev90
|
|
4
4
|
Summary: Main Sequence MetaTables Python client and standalone API
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -52,7 +52,7 @@ Requires-Dist: twine<7,>=6; extra == "dev"
|
|
|
52
52
|
Provides-Extra: docs
|
|
53
53
|
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
|
|
54
54
|
Provides-Extra: agent
|
|
55
|
-
Requires-Dist: ms-tau-sdk==2.0.
|
|
55
|
+
Requires-Dist: ms-tau-sdk==2.0.26; extra == "agent"
|
|
56
56
|
Provides-Extra: mysql
|
|
57
57
|
Requires-Dist: PyMySQL[rsa]<1.2,>=1.1.1; extra == "mysql"
|
|
58
58
|
Provides-Extra: mssql
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# ADR 0019: MetaTables Analyst agent
|
|
2
2
|
|
|
3
|
+
> Amendment (2026-10-27): ms-tau-sdk 2.0.26 (its ADR 0025) gives a deployed Agent only
|
|
4
|
+
> `.tau/`: skills from `.tau/skills/`, no `AGENTS.md` and nothing under `.agents/`.
|
|
5
|
+
> `discover-tables` and `analyze-with-sql` move to `.tau/skills/`, beside the vendored
|
|
6
|
+
> pg-aiguide skills, and the agent card points there. The repository-root `AGENTS.md` is
|
|
7
|
+
> no longer part of the agent's prompt, so `.tau/SYSTEM.md` no longer calls it developer
|
|
8
|
+
> guidance. `TAU_INCLUDE_DEVELOPMENT_RESOURCES` stays unset: the Analyst is not a coding
|
|
9
|
+
> agent.
|
|
10
|
+
>
|
|
3
11
|
> Amendment (2026-10-22): `list_table_producers` lists a time-index table's registered
|
|
4
12
|
> producers with `code_repository_branch_uid`, the branch the SDK declared when each was
|
|
5
13
|
> first registered, or null (issue #89). Only `GET /meta-tables/{uid}/updates` adds that
|
|
@@ -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.59.dev90"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -60,7 +60,7 @@ Documentation = "https://potential-doodle-wn39mnm.pages.github.io/"
|
|
|
60
60
|
[project.optional-dependencies]
|
|
61
61
|
dev = ["pytest>=8,<10", "ruff>=0.14", "build>=1,<2", "packaging>=24.2", "twine>=6,<7"]
|
|
62
62
|
docs = ["mkdocs>=1.6,<2"]
|
|
63
|
-
agent = ["ms-tau-sdk==2.0.
|
|
63
|
+
agent = ["ms-tau-sdk==2.0.26"]
|
|
64
64
|
mysql = ["PyMySQL[rsa]>=1.1.1,<1.2"]
|
|
65
65
|
# Keep the published extra name for existing installers; pyodbc is required.
|
|
66
66
|
mssql = []
|
|
@@ -44,7 +44,8 @@ PLATFORM_PATH = re.compile(r'/(?:orm/api|auth/jwt-token|api/v1/data[-_]sources)(
|
|
|
44
44
|
|
|
45
45
|
def check(project: Path = PROJECT) -> list[str]:
|
|
46
46
|
errors = []
|
|
47
|
-
roots = [project / root for root in ('api', 'src/metatables', 'docs', 'tests', '.agents/skills'
|
|
47
|
+
roots = [project / root for root in ('api', 'src/metatables', 'docs', 'tests', '.agents/skills',
|
|
48
|
+
'.tau/skills/discover-tables', '.tau/skills/analyze-with-sql')]
|
|
48
49
|
files = [project / 'README.md', project / 'pyproject.toml']
|
|
49
50
|
files += [p for root in roots for p in root.rglob('*') if p.suffix in {'.py', '.md', '.json', '.toml'}]
|
|
50
51
|
managed = project / '.agents/skills/ms_tau_sdk' # Written by `ms-tau skills sync`, not by this repository.
|
{mainsequence_metatable-0.1.58.dev89 → mainsequence_metatable-0.1.59.dev90}/scripts/check_docs.py
RENAMED
|
@@ -16,6 +16,8 @@ def check(project: Path = PROJECT) -> list[str]:
|
|
|
16
16
|
files += list((project / 'src/metatables/examples').rglob('*.md'))
|
|
17
17
|
files += list((project / 'docs').rglob('*.md'))
|
|
18
18
|
files += list((project / '.agents/skills').rglob('SKILL.md'))
|
|
19
|
+
# The Analyst's own skills; the vendored pg-aiguide skills beside them are upstream text.
|
|
20
|
+
files += [project / '.tau/skills' / name / 'SKILL.md' for name in ('discover-tables', 'analyze-with-sql')]
|
|
19
21
|
errors = []
|
|
20
22
|
for path in files:
|
|
21
23
|
if not path.is_file(): continue
|