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