@neverinfamous/postgres-mcp 2.0.0 → 2.2.0
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.
- package/LICENSE +1 -1
- package/README.md +119 -46
- package/dist/__tests__/benchmarks/codemode.bench.js +3 -3
- package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/connection-pool.bench.js +3 -3
- package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts +11 -0
- package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/introspection-migration.bench.js +143 -0
- package/dist/__tests__/benchmarks/introspection-migration.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/resource-prompts.bench.js +0 -64
- package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/schema-parsing.bench.js +5 -5
- package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/tool-filtering.bench.js +17 -8
- package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -1
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +2 -1
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts +6 -5
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +11 -20
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts +5 -26
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +31 -526
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/prompts/index.js +1 -1
- package/dist/adapters/postgresql/prompts/index.js.map +1 -1
- package/dist/adapters/postgresql/resources/index.d.ts +1 -1
- package/dist/adapters/postgresql/resources/index.js +3 -3
- package/dist/adapters/postgresql/resources/index.js.map +1 -1
- package/dist/adapters/postgresql/schema-operations.d.ts +71 -0
- package/dist/adapters/postgresql/schema-operations.d.ts.map +1 -0
- package/dist/adapters/postgresql/schema-operations.js +561 -0
- package/dist/adapters/postgresql/schema-operations.js.map +1 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts +4 -4
- package/dist/adapters/postgresql/schemas/admin.js +4 -4
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.d.ts +2 -2
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.js +1 -3
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/core/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/core/index.js +6 -0
- package/dist/adapters/postgresql/schemas/core/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/{core.d.ts → core/queries.d.ts} +16 -171
- package/dist/adapters/postgresql/schemas/core/queries.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/{core.js → core/queries.js} +5 -213
- package/dist/adapters/postgresql/schemas/core/queries.js.map +1 -0
- package/dist/adapters/postgresql/schemas/core/transactions.d.ts +149 -0
- package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/core/transactions.js +239 -0
- package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts +12 -12
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.js +38 -10
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions/citext.d.ts +222 -0
- package/dist/adapters/postgresql/schemas/extensions/citext.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/citext.js +306 -0
- package/dist/adapters/postgresql/schemas/extensions/citext.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/index.d.ts +15 -0
- package/dist/adapters/postgresql/schemas/extensions/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/index.js +20 -0
- package/dist/adapters/postgresql/schemas/extensions/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts +164 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.js +225 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts +253 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.js +430 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts +251 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js +294 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.d.ts +10 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.js +15 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.js.map +1 -0
- package/dist/adapters/postgresql/schemas/index.d.ts +6 -6
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/index.js +8 -8
- package/dist/adapters/postgresql/schemas/index.js.map +1 -1
- package/dist/adapters/postgresql/schemas/introspection.d.ts +19 -42
- package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/introspection.js +72 -27
- package/dist/adapters/postgresql/schemas/introspection.js.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts +270 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.js +371 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts +283 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.js +456 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.js +6 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +4 -4
- package/dist/adapters/postgresql/schemas/monitoring.js +2 -2
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +14 -14
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.js +64 -46
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.d.ts +16 -14
- package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.js +9 -9
- package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts +429 -0
- package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis/advanced.js +495 -0
- package/dist/adapters/postgresql/schemas/postgis/advanced.js.map +1 -0
- package/dist/adapters/postgresql/schemas/{postgis.d.ts → postgis/basic.d.ts} +1 -423
- package/dist/adapters/postgresql/schemas/postgis/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/{postgis.js → postgis/basic.js} +1 -486
- package/dist/adapters/postgresql/schemas/postgis/basic.js.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/postgis/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis/index.js +6 -0
- package/dist/adapters/postgresql/schemas/postgis/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +35 -25
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +57 -19
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
- package/dist/adapters/postgresql/schemas/stats/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/stats/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/stats/index.js +6 -0
- package/dist/adapters/postgresql/schemas/stats/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/stats/input.d.ts +260 -0
- package/dist/adapters/postgresql/schemas/stats/input.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/{stats.js → stats/input.js} +2 -331
- package/dist/adapters/postgresql/schemas/stats/input.js.map +1 -0
- package/dist/adapters/postgresql/schemas/{stats.d.ts → stats/output.d.ts} +3 -246
- package/dist/adapters/postgresql/schemas/stats/output.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/stats/output.js +334 -0
- package/dist/adapters/postgresql/schemas/stats/output.js.map +1 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts +18 -18
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.js +12 -27
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.d.ts +10 -10
- package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.js +9 -15
- package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.js +95 -76
- package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.js +345 -287
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
- package/dist/adapters/postgresql/tools/citext/analysis.d.ts +24 -0
- package/dist/adapters/postgresql/tools/citext/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{citext.js → citext/analysis.js} +50 -232
- package/dist/adapters/postgresql/tools/citext/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/citext/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/citext/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/citext/index.js +23 -0
- package/dist/adapters/postgresql/tools/citext/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/citext/setup.d.ts +16 -0
- package/dist/adapters/postgresql/tools/citext/setup.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/citext/setup.js +193 -0
- package/dist/adapters/postgresql/tools/citext/setup.js.map +1 -0
- package/dist/adapters/postgresql/tools/codemode/index.js +1 -1
- package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts +12 -22
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.js +100 -210
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +1 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.js +8 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.js +124 -114
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/index.d.ts +2 -1
- package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/index.js +3 -2
- package/dist/adapters/postgresql/tools/core/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.js +151 -127
- package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/objects.js +186 -161
- package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.js +37 -25
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +6 -3
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.js +11 -2
- package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.js +156 -129
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/utility.d.ts +26 -0
- package/dist/adapters/postgresql/tools/core/utility.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/utility.js +174 -0
- package/dist/adapters/postgresql/tools/core/utility.js.map +1 -0
- package/dist/adapters/postgresql/tools/cron.js +90 -43
- package/dist/adapters/postgresql/tools/cron.js.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/analysis.d.ts +12 -0
- package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/analysis.js +605 -0
- package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/graph.d.ts +55 -0
- package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/graph.js +621 -0
- package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/index.d.ts +21 -0
- package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/index.js +31 -0
- package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/migration.d.ts +15 -0
- package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/migration.js +575 -0
- package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts +20 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.js +367 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts +4 -2
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/index.js +8 -4
- package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/read.d.ts +38 -0
- package/dist/adapters/postgresql/tools/jsonb/read.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/{basic.js → read.js} +41 -482
- package/dist/adapters/postgresql/tools/jsonb/read.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/{advanced.d.ts → transform.d.ts} +1 -13
- package/dist/adapters/postgresql/tools/jsonb/transform.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/{advanced.js → transform.js} +26 -357
- package/dist/adapters/postgresql/tools/jsonb/transform.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/write.d.ts +14 -0
- package/dist/adapters/postgresql/tools/jsonb/write.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/write.js +468 -0
- package/dist/adapters/postgresql/tools/jsonb/write.js.map +1 -0
- package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.js +116 -51
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.js +346 -260
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
- package/dist/adapters/postgresql/tools/migration/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/migration/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/migration/index.js +23 -0
- package/dist/adapters/postgresql/tools/migration/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts +15 -0
- package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{monitoring.js → monitoring/analysis.js} +24 -359
- package/dist/adapters/postgresql/tools/monitoring/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.d.ts +17 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.js +432 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/monitoring/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/index.js +31 -0
- package/dist/adapters/postgresql/tools/monitoring/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/partitioning/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/index.js +23 -0
- package/dist/adapters/postgresql/tools/partitioning/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/info.d.ts +11 -0
- package/dist/adapters/postgresql/tools/partitioning/info.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/info.js +302 -0
- package/dist/adapters/postgresql/tools/partitioning/info.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/management.d.ts +28 -0
- package/dist/adapters/postgresql/tools/partitioning/management.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{partitioning.js → partitioning/management.js} +48 -307
- package/dist/adapters/postgresql/tools/partitioning/management.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/helpers.d.ts +29 -0
- package/dist/adapters/postgresql/tools/partman/helpers.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/helpers.js +59 -0
- package/dist/adapters/postgresql/tools/partman/helpers.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/index.d.ts +2 -1
- package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/index.js +4 -2
- package/dist/adapters/postgresql/tools/partman/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/maintenance.d.ts +20 -0
- package/dist/adapters/postgresql/tools/partman/maintenance.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/maintenance.js +496 -0
- package/dist/adapters/postgresql/tools/partman/maintenance.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.js +438 -383
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.d.ts +1 -13
- package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.js +171 -652
- package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/analysis.js +69 -42
- package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts +18 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.js +533 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts +11 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.js +332 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/index.d.ts +1 -1
- package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/index.js +7 -1
- package/dist/adapters/postgresql/tools/performance/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.js +80 -55
- package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/optimization.js +18 -11
- package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.js +439 -318
- package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.js +45 -77
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.js +121 -93
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/schema/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/schema/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/schema/index.js +32 -0
- package/dist/adapters/postgresql/tools/schema/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/schema/objects.d.ts +15 -0
- package/dist/adapters/postgresql/tools/schema/objects.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/schema/objects.js +378 -0
- package/dist/adapters/postgresql/tools/schema/objects.js.map +1 -0
- package/dist/adapters/postgresql/tools/schema/views.d.ts +15 -0
- package/dist/adapters/postgresql/tools/schema/views.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{schema.js → schema/views.js} +64 -386
- package/dist/adapters/postgresql/tools/schema/views.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/advanced.js +1 -218
- package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/math-utils.d.ts +33 -0
- package/dist/adapters/postgresql/tools/stats/math-utils.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/math-utils.js +225 -0
- package/dist/adapters/postgresql/tools/stats/math-utils.js.map +1 -0
- package/dist/adapters/postgresql/tools/text/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/text/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text/index.js +33 -0
- package/dist/adapters/postgresql/tools/text/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/text/matching.d.ts +17 -0
- package/dist/adapters/postgresql/tools/text/matching.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text/matching.js +565 -0
- package/dist/adapters/postgresql/tools/text/matching.js.map +1 -0
- package/dist/adapters/postgresql/tools/text/search.d.ts +17 -0
- package/dist/adapters/postgresql/tools/text/search.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text/search.js +653 -0
- package/dist/adapters/postgresql/tools/text/search.js.map +1 -0
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.js +11 -27
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/{basic.d.ts → data.d.ts} +10 -8
- package/dist/adapters/postgresql/tools/vector/data.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/data.js +540 -0
- package/dist/adapters/postgresql/tools/vector/data.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/index.js +6 -2
- package/dist/adapters/postgresql/tools/vector/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/management.d.ts +11 -0
- package/dist/adapters/postgresql/tools/vector/management.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/management.js +425 -0
- package/dist/adapters/postgresql/tools/vector/management.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/query.d.ts +14 -0
- package/dist/adapters/postgresql/tools/vector/query.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/query.js +767 -0
- package/dist/adapters/postgresql/tools/vector/query.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/{advanced.d.ts → search-advanced.d.ts} +4 -5
- package/dist/adapters/postgresql/tools/vector/search-advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/search-advanced.js +626 -0
- package/dist/adapters/postgresql/tools/vector/search-advanced.js.map +1 -0
- package/dist/auth/scopes.d.ts.map +1 -1
- package/dist/auth/scopes.js +3 -1
- package/dist/auth/scopes.js.map +1 -1
- package/dist/cli/args.d.ts +3 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -3
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.js +16 -4
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api/aliases.d.ts +14 -0
- package/dist/codemode/api/aliases.d.ts.map +1 -0
- package/dist/codemode/api/aliases.js +503 -0
- package/dist/codemode/api/aliases.js.map +1 -0
- package/dist/codemode/api/group-api.d.ts +23 -0
- package/dist/codemode/api/group-api.d.ts.map +1 -0
- package/dist/codemode/api/group-api.js +179 -0
- package/dist/codemode/api/group-api.js.map +1 -0
- package/dist/codemode/{api.d.ts → api/index.d.ts} +5 -4
- package/dist/codemode/api/index.d.ts.map +1 -0
- package/dist/codemode/api/index.js +195 -0
- package/dist/codemode/api/index.js.map +1 -0
- package/dist/codemode/api/maps.d.ts +47 -0
- package/dist/codemode/api/maps.d.ts.map +1 -0
- package/dist/codemode/api/maps.js +529 -0
- package/dist/codemode/api/maps.js.map +1 -0
- package/dist/codemode/api/normalize.d.ts +13 -0
- package/dist/codemode/api/normalize.d.ts.map +1 -0
- package/dist/codemode/api/normalize.js +120 -0
- package/dist/codemode/api/normalize.js.map +1 -0
- package/dist/codemode/index.d.ts +1 -1
- package/dist/codemode/index.d.ts.map +1 -1
- package/dist/codemode/index.js +1 -1
- package/dist/codemode/index.js.map +1 -1
- package/dist/codemode/sandbox.d.ts.map +1 -1
- package/dist/codemode/sandbox.js +8 -25
- package/dist/codemode/sandbox.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +11 -11
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +28 -15
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts +0 -32
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +0 -43
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/server/McpServer.d.ts +1 -1
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +1 -2
- package/dist/server/McpServer.js.map +1 -1
- package/dist/transports/http.d.ts +55 -10
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +301 -50
- package/dist/transports/http.js.map +1 -1
- package/dist/types/filtering.d.ts +1 -1
- package/dist/types/filtering.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp.d.ts +0 -21
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/schema.d.ts +0 -79
- package/dist/types/schema.d.ts.map +1 -1
- package/dist/utils/fts-config.d.ts +0 -6
- package/dist/utils/fts-config.d.ts.map +1 -1
- package/dist/utils/fts-config.js +1 -1
- package/dist/utils/fts-config.js.map +1 -1
- package/dist/utils/icons.d.ts.map +1 -1
- package/dist/utils/icons.js +5 -0
- package/dist/utils/icons.js.map +1 -1
- package/dist/utils/identifiers.d.ts.map +1 -1
- package/dist/utils/identifiers.js +6 -6
- package/dist/utils/identifiers.js.map +1 -1
- package/dist/utils/logger.d.ts +6 -6
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +18 -15
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.d.ts +3 -14
- package/dist/utils/progress-utils.d.ts.map +1 -1
- package/dist/utils/progress-utils.js +2 -21
- package/dist/utils/progress-utils.js.map +1 -1
- package/dist/utils/version.d.ts +9 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +12 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/utils/where-clause.d.ts +4 -0
- package/dist/utils/where-clause.d.ts.map +1 -1
- package/dist/utils/where-clause.js +16 -0
- package/dist/utils/where-clause.js.map +1 -1
- package/package.json +6 -4
- package/dist/adapters/postgresql/schemas/core.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/core.js.map +0 -1
- package/dist/adapters/postgresql/schemas/extensions.d.ts +0 -852
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/extensions.js +0 -1202
- package/dist/adapters/postgresql/schemas/extensions.js.map +0 -1
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +0 -541
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/jsonb.js +0 -814
- package/dist/adapters/postgresql/schemas/jsonb.js.map +0 -1
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/postgis.js.map +0 -1
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/stats.js.map +0 -1
- package/dist/adapters/postgresql/tools/citext.d.ts +0 -18
- package/dist/adapters/postgresql/tools/citext.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/citext.js.map +0 -1
- package/dist/adapters/postgresql/tools/introspection.d.ts +0 -15
- package/dist/adapters/postgresql/tools/introspection.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/introspection.js +0 -1682
- package/dist/adapters/postgresql/tools/introspection.js.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +0 -20
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.js.map +0 -1
- package/dist/adapters/postgresql/tools/monitoring.d.ts +0 -13
- package/dist/adapters/postgresql/tools/monitoring.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/monitoring.js.map +0 -1
- package/dist/adapters/postgresql/tools/partitioning.d.ts +0 -13
- package/dist/adapters/postgresql/tools/partitioning.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/partitioning.js.map +0 -1
- package/dist/adapters/postgresql/tools/schema.d.ts +0 -13
- package/dist/adapters/postgresql/tools/schema.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/schema.js.map +0 -1
- package/dist/adapters/postgresql/tools/text.d.ts +0 -13
- package/dist/adapters/postgresql/tools/text.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/text.js +0 -1082
- package/dist/adapters/postgresql/tools/text.js.map +0 -1
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/vector/advanced.js +0 -958
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +0 -1
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/vector/basic.js +0 -1165
- package/dist/adapters/postgresql/tools/vector/basic.js.map +0 -1
- package/dist/codemode/api.d.ts.map +0 -1
- package/dist/codemode/api.js +0 -1544
- package/dist/codemode/api.js.map +0 -1
- package/dist/utils/promptGenerator.d.ts +0 -20
- package/dist/utils/promptGenerator.d.ts.map +0 -1
- package/dist/utils/promptGenerator.js +0 -81
- package/dist/utils/promptGenerator.js.map +0 -1
|
@@ -1,1202 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* postgres-mcp - Extension Tool Schemas
|
|
3
|
-
*
|
|
4
|
-
* Input validation schemas for PostgreSQL extensions:
|
|
5
|
-
* - pg_stat_kcache
|
|
6
|
-
* - citext
|
|
7
|
-
* - ltree
|
|
8
|
-
* - pgcrypto
|
|
9
|
-
*/
|
|
10
|
-
import { z } from "zod";
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// pg_stat_kcache Schemas
|
|
13
|
-
// =============================================================================
|
|
14
|
-
/**
|
|
15
|
-
* Schema for querying enhanced statistics with kcache data.
|
|
16
|
-
* Joins pg_stat_statements with pg_stat_kcache for full picture.
|
|
17
|
-
*/
|
|
18
|
-
export const KcacheQueryStatsSchemaBase = z.object({
|
|
19
|
-
limit: z
|
|
20
|
-
.number()
|
|
21
|
-
.optional()
|
|
22
|
-
.describe("Maximum number of queries to return (default: 20)"),
|
|
23
|
-
orderBy: z
|
|
24
|
-
.string()
|
|
25
|
-
.optional()
|
|
26
|
-
.describe("Order results by metric (default: total_time). Valid: total_time, cpu_time, reads, writes"),
|
|
27
|
-
minCalls: z.number().optional().describe("Minimum call count to include"),
|
|
28
|
-
queryPreviewLength: z
|
|
29
|
-
.number()
|
|
30
|
-
.optional()
|
|
31
|
-
.describe("Characters for query preview (default: 100, max: 500, 0 for full)"),
|
|
32
|
-
});
|
|
33
|
-
export const KcacheQueryStatsSchema = z.preprocess(normalizeOptionalParams, KcacheQueryStatsSchemaBase);
|
|
34
|
-
/**
|
|
35
|
-
* Schema for top resource consumers query.
|
|
36
|
-
*/
|
|
37
|
-
export const KcacheTopConsumersSchema = z.object({
|
|
38
|
-
resource: z
|
|
39
|
-
.enum(["cpu", "reads", "writes", "page_faults"])
|
|
40
|
-
.describe("Resource type to rank by"),
|
|
41
|
-
limit: z
|
|
42
|
-
.number()
|
|
43
|
-
.optional()
|
|
44
|
-
.describe("Number of top queries to return (default: 10)"),
|
|
45
|
-
});
|
|
46
|
-
/**
|
|
47
|
-
* Base schema for MCP visibility - pg_kcache_top_cpu parameters.
|
|
48
|
-
*/
|
|
49
|
-
export const KcacheTopCpuSchemaBase = z.object({
|
|
50
|
-
limit: z
|
|
51
|
-
.number()
|
|
52
|
-
.optional()
|
|
53
|
-
.describe("Number of top queries to return (default: 10)"),
|
|
54
|
-
queryPreviewLength: z
|
|
55
|
-
.number()
|
|
56
|
-
.optional()
|
|
57
|
-
.describe("Characters for query preview (default: 100, max: 500, 0 for full)"),
|
|
58
|
-
});
|
|
59
|
-
/**
|
|
60
|
-
* Base schema for MCP visibility - pg_kcache_top_io parameters.
|
|
61
|
-
*/
|
|
62
|
-
export const KcacheTopIoSchemaBase = z.object({
|
|
63
|
-
type: z
|
|
64
|
-
.enum(["reads", "writes", "both"])
|
|
65
|
-
.optional()
|
|
66
|
-
.describe("I/O type to rank by (default: both)"),
|
|
67
|
-
ioType: z
|
|
68
|
-
.enum(["reads", "writes", "both"])
|
|
69
|
-
.optional()
|
|
70
|
-
.describe("Alias for type"),
|
|
71
|
-
limit: z
|
|
72
|
-
.number()
|
|
73
|
-
.optional()
|
|
74
|
-
.describe("Number of top queries to return (default: 10)"),
|
|
75
|
-
queryPreviewLength: z
|
|
76
|
-
.number()
|
|
77
|
-
.optional()
|
|
78
|
-
.describe("Characters for query preview (default: 100, max: 500, 0 for full)"),
|
|
79
|
-
});
|
|
80
|
-
/**
|
|
81
|
-
* Schema for database-level aggregation.
|
|
82
|
-
*/
|
|
83
|
-
export const KcacheDatabaseStatsSchemaBase = z.object({
|
|
84
|
-
database: z
|
|
85
|
-
.string()
|
|
86
|
-
.optional()
|
|
87
|
-
.describe("Database name (current database if omitted)"),
|
|
88
|
-
});
|
|
89
|
-
export const KcacheDatabaseStatsSchema = z.preprocess(normalizeOptionalParams, KcacheDatabaseStatsSchemaBase);
|
|
90
|
-
/**
|
|
91
|
-
* Schema for identifying resource-bound queries.
|
|
92
|
-
*/
|
|
93
|
-
export const KcacheResourceAnalysisSchemaBase = z.object({
|
|
94
|
-
queryId: z
|
|
95
|
-
.string()
|
|
96
|
-
.optional()
|
|
97
|
-
.describe("Specific query ID to analyze (all if omitted)"),
|
|
98
|
-
threshold: z
|
|
99
|
-
.number()
|
|
100
|
-
.optional()
|
|
101
|
-
.describe("CPU/IO ratio threshold for classification (default: 0.5)"),
|
|
102
|
-
limit: z
|
|
103
|
-
.number()
|
|
104
|
-
.optional()
|
|
105
|
-
.describe("Maximum number of queries to return (default: 20)"),
|
|
106
|
-
minCalls: z.number().optional().describe("Minimum call count to include"),
|
|
107
|
-
queryPreviewLength: z
|
|
108
|
-
.number()
|
|
109
|
-
.optional()
|
|
110
|
-
.describe("Characters for query preview (default: 100, max: 500, 0 for full)"),
|
|
111
|
-
});
|
|
112
|
-
export const KcacheResourceAnalysisSchema = z.preprocess(normalizeOptionalParams, KcacheResourceAnalysisSchemaBase);
|
|
113
|
-
// =============================================================================
|
|
114
|
-
// citext Schemas
|
|
115
|
-
// =============================================================================
|
|
116
|
-
/**
|
|
117
|
-
* Handle undefined/null params for tools with optional-only parameters
|
|
118
|
-
*/
|
|
119
|
-
function normalizeOptionalParams(input) {
|
|
120
|
-
if (typeof input !== "object" || input === null) {
|
|
121
|
-
return {};
|
|
122
|
-
}
|
|
123
|
-
return input;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Preprocess citext table parameters:
|
|
127
|
-
* - Alias: tableName -> table
|
|
128
|
-
* - Alias: col -> column
|
|
129
|
-
* - Parse schema.table format
|
|
130
|
-
*/
|
|
131
|
-
function preprocessCitextTableParams(input) {
|
|
132
|
-
if (typeof input !== "object" || input === null)
|
|
133
|
-
return input;
|
|
134
|
-
const obj = input;
|
|
135
|
-
const result = { ...obj };
|
|
136
|
-
// Alias: tableName -> table
|
|
137
|
-
if (result["table"] === undefined && result["tableName"] !== undefined) {
|
|
138
|
-
result["table"] = result["tableName"];
|
|
139
|
-
}
|
|
140
|
-
// Alias: col -> column
|
|
141
|
-
if (result["col"] !== undefined && result["column"] === undefined) {
|
|
142
|
-
result["column"] = result["col"];
|
|
143
|
-
}
|
|
144
|
-
// Parse schema.table format
|
|
145
|
-
if (typeof result["table"] === "string" &&
|
|
146
|
-
result["table"].includes(".") &&
|
|
147
|
-
result["schema"] === undefined) {
|
|
148
|
-
const parts = result["table"].split(".");
|
|
149
|
-
if (parts.length === 2) {
|
|
150
|
-
result["schema"] = parts[0];
|
|
151
|
-
result["table"] = parts[1];
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return result;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Base schema for MCP visibility (shows all parameters including aliases).
|
|
158
|
-
*/
|
|
159
|
-
export const CitextConvertColumnSchemaBase = z.object({
|
|
160
|
-
table: z.string().describe("Table name"),
|
|
161
|
-
column: z.string().optional().describe("Text column to convert to citext"),
|
|
162
|
-
col: z.string().optional().describe("Alias for column"),
|
|
163
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
164
|
-
});
|
|
165
|
-
/**
|
|
166
|
-
* Transformed schema for converting a text column to citext.
|
|
167
|
-
* Resolves aliases, parses schema.table format, and validates required fields.
|
|
168
|
-
*/
|
|
169
|
-
export const CitextConvertColumnSchema = z
|
|
170
|
-
.preprocess(preprocessCitextTableParams, CitextConvertColumnSchemaBase)
|
|
171
|
-
.transform((data) => ({
|
|
172
|
-
table: data.table,
|
|
173
|
-
column: data.column ?? data.col ?? "",
|
|
174
|
-
schema: data.schema,
|
|
175
|
-
}))
|
|
176
|
-
.refine((data) => data.column !== "", {
|
|
177
|
-
message: "column (or col alias) is required",
|
|
178
|
-
});
|
|
179
|
-
/**
|
|
180
|
-
* Base schema for MCP visibility - shows all parameters for listColumns.
|
|
181
|
-
*/
|
|
182
|
-
export const CitextListColumnsSchemaBase = z.object({
|
|
183
|
-
schema: z
|
|
184
|
-
.string()
|
|
185
|
-
.optional()
|
|
186
|
-
.describe("Schema name to filter (all schemas if omitted)"),
|
|
187
|
-
limit: z
|
|
188
|
-
.number()
|
|
189
|
-
.optional()
|
|
190
|
-
.describe("Maximum number of columns to return (default: 100, 0 for all)"),
|
|
191
|
-
});
|
|
192
|
-
/**
|
|
193
|
-
* Schema for listing citext columns.
|
|
194
|
-
* Preprocesses to handle empty/null params.
|
|
195
|
-
*/
|
|
196
|
-
export const CitextListColumnsSchema = z.preprocess(normalizeOptionalParams, CitextListColumnsSchemaBase);
|
|
197
|
-
/**
|
|
198
|
-
* Base schema for MCP visibility - shows all parameters for analyzeCandidates.
|
|
199
|
-
*/
|
|
200
|
-
export const CitextAnalyzeCandidatesSchemaBase = z.object({
|
|
201
|
-
patterns: z
|
|
202
|
-
.array(z.string())
|
|
203
|
-
.optional()
|
|
204
|
-
.describe("Column name patterns to match (default: email, username, name, etc.)"),
|
|
205
|
-
schema: z.string().optional().describe("Schema name to filter"),
|
|
206
|
-
table: z
|
|
207
|
-
.string()
|
|
208
|
-
.optional()
|
|
209
|
-
.describe("Table name to filter (analyzes single table)"),
|
|
210
|
-
limit: z
|
|
211
|
-
.number()
|
|
212
|
-
.optional()
|
|
213
|
-
.describe("Maximum number of candidates to return"),
|
|
214
|
-
excludeSystemSchemas: z
|
|
215
|
-
.boolean()
|
|
216
|
-
.optional()
|
|
217
|
-
.describe("Exclude extension/system schemas like cron, topology, partman (default: true)"),
|
|
218
|
-
});
|
|
219
|
-
/**
|
|
220
|
-
* Schema for analyzing candidate columns for citext conversion.
|
|
221
|
-
* Preprocesses to handle empty/null params.
|
|
222
|
-
*/
|
|
223
|
-
export const CitextAnalyzeCandidatesSchema = z.preprocess((input) => preprocessCitextTableParams(normalizeOptionalParams(input)), CitextAnalyzeCandidatesSchemaBase);
|
|
224
|
-
/**
|
|
225
|
-
* Base schema for MCP visibility (shows all parameters including aliases).
|
|
226
|
-
*/
|
|
227
|
-
export const CitextSchemaAdvisorSchemaBase = z.object({
|
|
228
|
-
table: z.string().optional().describe("Table name to analyze (required)"),
|
|
229
|
-
tableName: z.string().optional().describe("Alias for table"),
|
|
230
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
231
|
-
});
|
|
232
|
-
/**
|
|
233
|
-
* Transformed schema for citext schema advisor tool.
|
|
234
|
-
* Resolves aliases, parses schema.table format, and validates required fields.
|
|
235
|
-
*/
|
|
236
|
-
export const CitextSchemaAdvisorSchema = z
|
|
237
|
-
.preprocess(preprocessCitextTableParams, CitextSchemaAdvisorSchemaBase)
|
|
238
|
-
.transform((data) => ({
|
|
239
|
-
table: data.table ?? data.tableName ?? "",
|
|
240
|
-
schema: data.schema,
|
|
241
|
-
}))
|
|
242
|
-
.refine((data) => data.table !== "", {
|
|
243
|
-
message: "table (or tableName alias) is required",
|
|
244
|
-
});
|
|
245
|
-
// =============================================================================
|
|
246
|
-
// ltree Schemas
|
|
247
|
-
// =============================================================================
|
|
248
|
-
/**
|
|
249
|
-
* Preprocess ltree table parameters:
|
|
250
|
-
* - Alias: tableName/name -> table
|
|
251
|
-
* - Alias: col -> column
|
|
252
|
-
* - Parse schema.table format
|
|
253
|
-
*/
|
|
254
|
-
function preprocessLtreeTableParams(input) {
|
|
255
|
-
if (typeof input !== "object" || input === null)
|
|
256
|
-
return input;
|
|
257
|
-
const obj = input;
|
|
258
|
-
const result = { ...obj };
|
|
259
|
-
// Alias: tableName/name -> table
|
|
260
|
-
if (result["table"] === undefined) {
|
|
261
|
-
if (result["tableName"] !== undefined)
|
|
262
|
-
result["table"] = result["tableName"];
|
|
263
|
-
else if (result["name"] !== undefined)
|
|
264
|
-
result["table"] = result["name"];
|
|
265
|
-
}
|
|
266
|
-
// Alias: col -> column
|
|
267
|
-
if (result["col"] !== undefined && result["column"] === undefined) {
|
|
268
|
-
result["column"] = result["col"];
|
|
269
|
-
}
|
|
270
|
-
// Parse schema.table format
|
|
271
|
-
if (typeof result["table"] === "string" &&
|
|
272
|
-
result["table"].includes(".") &&
|
|
273
|
-
result["schema"] === undefined) {
|
|
274
|
-
const parts = result["table"].split(".");
|
|
275
|
-
if (parts.length === 2) {
|
|
276
|
-
result["schema"] = parts[0];
|
|
277
|
-
result["table"] = parts[1];
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return result;
|
|
281
|
-
}
|
|
282
|
-
// -----------------------------------------------------------------------------
|
|
283
|
-
// Base schemas for MCP visibility (simple z.object with all params + aliases)
|
|
284
|
-
// -----------------------------------------------------------------------------
|
|
285
|
-
/**
|
|
286
|
-
* Base schema for MCP visibility - shows all parameters including aliases.
|
|
287
|
-
*/
|
|
288
|
-
export const LtreeQuerySchemaBase = z.object({
|
|
289
|
-
table: z.string().optional().describe("Table name"),
|
|
290
|
-
tableName: z.string().optional().describe("Alias for table"),
|
|
291
|
-
name: z.string().optional().describe("Alias for table"),
|
|
292
|
-
column: z.string().optional().describe("ltree column name"),
|
|
293
|
-
col: z.string().optional().describe("Alias for column"),
|
|
294
|
-
path: z
|
|
295
|
-
.string()
|
|
296
|
-
.describe('ltree path to query (e.g., "Top.Science.Astronomy")'),
|
|
297
|
-
pattern: z.string().optional().describe("Alias for path"),
|
|
298
|
-
mode: z
|
|
299
|
-
.enum(["ancestors", "descendants", "exact"])
|
|
300
|
-
.optional()
|
|
301
|
-
.describe("Query mode: ancestors, descendants (default), or exact"),
|
|
302
|
-
type: z
|
|
303
|
-
.enum(["ancestors", "descendants", "exact"])
|
|
304
|
-
.optional()
|
|
305
|
-
.describe("Alias for mode"),
|
|
306
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
307
|
-
limit: z.number().optional().describe("Maximum results"),
|
|
308
|
-
});
|
|
309
|
-
/**
|
|
310
|
-
* Base schema for MCP visibility - shows all parameters including aliases.
|
|
311
|
-
*/
|
|
312
|
-
export const LtreeSubpathSchemaBase = z.object({
|
|
313
|
-
path: z.string().describe('ltree path (e.g., "Top.Science.Astronomy.Stars")'),
|
|
314
|
-
offset: z
|
|
315
|
-
.number()
|
|
316
|
-
.optional()
|
|
317
|
-
.describe("Starting position (0-indexed, negative counts from end)"),
|
|
318
|
-
start: z.number().optional().describe("Alias for offset"),
|
|
319
|
-
from: z.number().optional().describe("Alias for offset"),
|
|
320
|
-
length: z
|
|
321
|
-
.number()
|
|
322
|
-
.optional()
|
|
323
|
-
.describe("Number of labels (omit for rest of path)"),
|
|
324
|
-
len: z.number().optional().describe("Alias for length"),
|
|
325
|
-
});
|
|
326
|
-
/**
|
|
327
|
-
* Base schema for MCP visibility - shows all parameters including aliases.
|
|
328
|
-
*/
|
|
329
|
-
export const LtreeMatchSchemaBase = z.object({
|
|
330
|
-
table: z.string().optional().describe("Table name"),
|
|
331
|
-
tableName: z.string().optional().describe("Alias for table"),
|
|
332
|
-
name: z.string().optional().describe("Alias for table"),
|
|
333
|
-
column: z.string().optional().describe("ltree column name"),
|
|
334
|
-
col: z.string().optional().describe("Alias for column"),
|
|
335
|
-
pattern: z
|
|
336
|
-
.string()
|
|
337
|
-
.optional()
|
|
338
|
-
.describe('lquery pattern (e.g., "*.Science.*" or "Top.*{1,3}.Stars")'),
|
|
339
|
-
query: z.string().optional().describe("Alias for pattern"),
|
|
340
|
-
lquery: z.string().optional().describe("Alias for pattern"),
|
|
341
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
342
|
-
limit: z.number().optional().describe("Maximum results"),
|
|
343
|
-
maxResults: z.number().optional().describe("Alias for limit"),
|
|
344
|
-
});
|
|
345
|
-
/**
|
|
346
|
-
* Base schema for MCP visibility - shows all parameters including aliases.
|
|
347
|
-
*/
|
|
348
|
-
export const LtreeConvertColumnSchemaBase = z.object({
|
|
349
|
-
table: z.string().optional().describe("Table name"),
|
|
350
|
-
tableName: z.string().optional().describe("Alias for table"),
|
|
351
|
-
name: z.string().optional().describe("Alias for table"),
|
|
352
|
-
column: z.string().optional().describe("Text column to convert to ltree"),
|
|
353
|
-
col: z.string().optional().describe("Alias for column"),
|
|
354
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
355
|
-
});
|
|
356
|
-
/**
|
|
357
|
-
* Base schema for MCP visibility - shows all parameters including aliases.
|
|
358
|
-
*/
|
|
359
|
-
export const LtreeIndexSchemaBase = z.object({
|
|
360
|
-
table: z.string().optional().describe("Table name"),
|
|
361
|
-
tableName: z.string().optional().describe("Alias for table"),
|
|
362
|
-
name: z.string().optional().describe("Alias for table"),
|
|
363
|
-
column: z.string().optional().describe("ltree column name"),
|
|
364
|
-
col: z.string().optional().describe("Alias for column"),
|
|
365
|
-
indexName: z
|
|
366
|
-
.string()
|
|
367
|
-
.optional()
|
|
368
|
-
.describe("Custom index name (auto-generated if omitted)"),
|
|
369
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
370
|
-
});
|
|
371
|
-
// -----------------------------------------------------------------------------
|
|
372
|
-
// Transformed schemas for handler validation (with alias resolution)
|
|
373
|
-
// -----------------------------------------------------------------------------
|
|
374
|
-
/**
|
|
375
|
-
* Schema for querying ltree hierarchies (ancestors/descendants).
|
|
376
|
-
* Accepts 'pattern' as alias for 'path', 'type' as alias for 'mode', 'col'/'tableName'/'name' aliases.
|
|
377
|
-
*/
|
|
378
|
-
export const LtreeQuerySchema = z.preprocess((input) => {
|
|
379
|
-
const obj = preprocessLtreeTableParams(input);
|
|
380
|
-
if (typeof obj !== "object" || obj === null)
|
|
381
|
-
return obj;
|
|
382
|
-
const result = obj;
|
|
383
|
-
if ("pattern" in result && !("path" in result)) {
|
|
384
|
-
result["path"] = result["pattern"];
|
|
385
|
-
}
|
|
386
|
-
// Alias: type -> mode
|
|
387
|
-
if ("type" in result && !("mode" in result)) {
|
|
388
|
-
result["mode"] = result["type"];
|
|
389
|
-
}
|
|
390
|
-
return result;
|
|
391
|
-
}, z.object({
|
|
392
|
-
table: z.string().describe("Table name"),
|
|
393
|
-
column: z.string().describe("ltree column name"),
|
|
394
|
-
path: z
|
|
395
|
-
.string()
|
|
396
|
-
.describe('ltree path to query (e.g., "Top.Science.Astronomy")'),
|
|
397
|
-
mode: z
|
|
398
|
-
.enum(["ancestors", "descendants", "exact"])
|
|
399
|
-
.optional()
|
|
400
|
-
.describe("Query mode: ancestors (@>), descendants (<@), or exact (default: descendants)"),
|
|
401
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
402
|
-
limit: z.number().optional().describe("Maximum results"),
|
|
403
|
-
}));
|
|
404
|
-
/**
|
|
405
|
-
* Schema for extracting subpath from ltree.
|
|
406
|
-
* Accepts 'start'/'from' as alias for 'offset', 'len'/'end' as alias for 'length'.
|
|
407
|
-
*/
|
|
408
|
-
export const LtreeSubpathSchema = z.preprocess((input) => {
|
|
409
|
-
if (typeof input !== "object" || input === null)
|
|
410
|
-
return input;
|
|
411
|
-
const obj = input;
|
|
412
|
-
const result = { ...obj };
|
|
413
|
-
// Alias: len -> length (PostgreSQL function uses len)
|
|
414
|
-
if ("len" in obj && !("length" in obj)) {
|
|
415
|
-
result["length"] = obj["len"];
|
|
416
|
-
}
|
|
417
|
-
// Alias: start/from -> offset
|
|
418
|
-
if ("start" in obj && !("offset" in obj)) {
|
|
419
|
-
result["offset"] = obj["start"];
|
|
420
|
-
}
|
|
421
|
-
else if ("from" in obj && !("offset" in obj)) {
|
|
422
|
-
result["offset"] = obj["from"];
|
|
423
|
-
}
|
|
424
|
-
// Default offset to 0 if not provided
|
|
425
|
-
if (result["offset"] === undefined) {
|
|
426
|
-
result["offset"] = 0;
|
|
427
|
-
}
|
|
428
|
-
// Alias: end -> length (calculate length from start/end if both provided)
|
|
429
|
-
if ("end" in obj && !("length" in obj) && !("len" in obj)) {
|
|
430
|
-
const start = (result["offset"] ?? 0);
|
|
431
|
-
const end = obj["end"];
|
|
432
|
-
result["length"] = end - start;
|
|
433
|
-
}
|
|
434
|
-
return result;
|
|
435
|
-
}, z.object({
|
|
436
|
-
path: z
|
|
437
|
-
.string()
|
|
438
|
-
.describe('ltree path (e.g., "Top.Science.Astronomy.Stars")'),
|
|
439
|
-
offset: z
|
|
440
|
-
.number()
|
|
441
|
-
.describe("Starting position (0-indexed, negative counts from end). Default: 0"),
|
|
442
|
-
length: z
|
|
443
|
-
.number()
|
|
444
|
-
.optional()
|
|
445
|
-
.describe("Number of labels (omit for rest of path). Alias: len"),
|
|
446
|
-
}));
|
|
447
|
-
/**
|
|
448
|
-
* Base schema for MCP visibility - no min constraint.
|
|
449
|
-
*/
|
|
450
|
-
export const LtreeLcaSchemaBase = z.object({
|
|
451
|
-
paths: z
|
|
452
|
-
.array(z.string())
|
|
453
|
-
.describe("Array of ltree paths to find common ancestor (minimum 2)"),
|
|
454
|
-
});
|
|
455
|
-
/**
|
|
456
|
-
* Schema for finding longest common ancestor.
|
|
457
|
-
* Enforces minimum 2 paths; used inside handler try/catch.
|
|
458
|
-
*/
|
|
459
|
-
export const LtreeLcaSchema = z.object({
|
|
460
|
-
paths: z
|
|
461
|
-
.array(z.string())
|
|
462
|
-
.min(2, "At least 2 paths are required to find a common ancestor")
|
|
463
|
-
.describe("Array of ltree paths to find common ancestor"),
|
|
464
|
-
});
|
|
465
|
-
/**
|
|
466
|
-
* Schema for pattern matching with lquery.
|
|
467
|
-
* Accepts 'query'/'lquery' as aliases for 'pattern', 'maxResults' as alias for 'limit'.
|
|
468
|
-
*/
|
|
469
|
-
export const LtreeMatchSchema = z.preprocess((input) => {
|
|
470
|
-
const obj = preprocessLtreeTableParams(input);
|
|
471
|
-
if (typeof obj !== "object" || obj === null)
|
|
472
|
-
return obj;
|
|
473
|
-
const result = obj;
|
|
474
|
-
// Alias: query/lquery -> pattern
|
|
475
|
-
if (result["pattern"] === undefined) {
|
|
476
|
-
if (result["query"] !== undefined)
|
|
477
|
-
result["pattern"] = result["query"];
|
|
478
|
-
else if (result["lquery"] !== undefined)
|
|
479
|
-
result["pattern"] = result["lquery"];
|
|
480
|
-
}
|
|
481
|
-
// Alias: maxResults -> limit
|
|
482
|
-
if (result["maxResults"] !== undefined && result["limit"] === undefined) {
|
|
483
|
-
result["limit"] = result["maxResults"];
|
|
484
|
-
}
|
|
485
|
-
return result;
|
|
486
|
-
}, z.object({
|
|
487
|
-
table: z.string().describe("Table name"),
|
|
488
|
-
column: z.string().describe("ltree column name"),
|
|
489
|
-
pattern: z
|
|
490
|
-
.string()
|
|
491
|
-
.describe('lquery pattern (e.g., "*.Science.*" or "Top.*{1,3}.Stars")'),
|
|
492
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
493
|
-
limit: z.number().optional().describe("Maximum results"),
|
|
494
|
-
}));
|
|
495
|
-
/**
|
|
496
|
-
* Schema for listing ltree columns in the database.
|
|
497
|
-
*/
|
|
498
|
-
export const LtreeListColumnsSchemaBase = z.object({
|
|
499
|
-
schema: z
|
|
500
|
-
.string()
|
|
501
|
-
.optional()
|
|
502
|
-
.describe("Schema name to filter (all schemas if omitted)"),
|
|
503
|
-
});
|
|
504
|
-
export const LtreeListColumnsSchema = z.preprocess(normalizeOptionalParams, LtreeListColumnsSchemaBase);
|
|
505
|
-
/**
|
|
506
|
-
* Schema for converting a text column to ltree.
|
|
507
|
-
* Accepts 'tableName'/'name' as aliases for 'table', 'col' as alias for 'column'.
|
|
508
|
-
*/
|
|
509
|
-
export const LtreeConvertColumnSchema = z.preprocess(preprocessLtreeTableParams, z.object({
|
|
510
|
-
table: z.string().describe("Table name"),
|
|
511
|
-
column: z.string().describe("Text column to convert to ltree"),
|
|
512
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
513
|
-
}));
|
|
514
|
-
/**
|
|
515
|
-
* Schema for creating a GiST index on ltree column.
|
|
516
|
-
* Accepts 'tableName'/'name' as aliases for 'table', 'col' as alias for 'column'.
|
|
517
|
-
*/
|
|
518
|
-
export const LtreeIndexSchema = z.preprocess(preprocessLtreeTableParams, z.object({
|
|
519
|
-
table: z.string().describe("Table name"),
|
|
520
|
-
column: z.string().describe("ltree column name"),
|
|
521
|
-
indexName: z
|
|
522
|
-
.string()
|
|
523
|
-
.optional()
|
|
524
|
-
.describe("Custom index name (auto-generated if omitted)"),
|
|
525
|
-
schema: z.string().optional().describe("Schema name (default: public)"),
|
|
526
|
-
}));
|
|
527
|
-
// =============================================================================
|
|
528
|
-
// pgcrypto Schemas
|
|
529
|
-
// =============================================================================
|
|
530
|
-
/**
|
|
531
|
-
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
532
|
-
* Valid algorithm values described in text for MCP clients.
|
|
533
|
-
*/
|
|
534
|
-
export const PgcryptoHashSchemaBase = z.object({
|
|
535
|
-
data: z.string().describe("Data to hash"),
|
|
536
|
-
algorithm: z.string().describe("Hash algorithm"),
|
|
537
|
-
encoding: z.string().optional().describe("Output encoding (default: hex)"),
|
|
538
|
-
});
|
|
539
|
-
/**
|
|
540
|
-
* Schema for hashing data with digest().
|
|
541
|
-
*/
|
|
542
|
-
export const PgcryptoHashSchema = z.object({
|
|
543
|
-
data: z.string().describe("Data to hash"),
|
|
544
|
-
algorithm: z
|
|
545
|
-
.enum(["md5", "sha1", "sha224", "sha256", "sha384", "sha512"])
|
|
546
|
-
.describe("Hash algorithm"),
|
|
547
|
-
encoding: z
|
|
548
|
-
.enum(["hex", "base64"])
|
|
549
|
-
.optional()
|
|
550
|
-
.describe("Output encoding (default: hex)"),
|
|
551
|
-
});
|
|
552
|
-
/**
|
|
553
|
-
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
554
|
-
*/
|
|
555
|
-
export const PgcryptoHmacSchemaBase = z.object({
|
|
556
|
-
data: z.string().describe("Data to authenticate"),
|
|
557
|
-
key: z.string().describe("Secret key for HMAC"),
|
|
558
|
-
algorithm: z.string().describe("Hash algorithm"),
|
|
559
|
-
encoding: z.string().optional().describe("Output encoding (default: hex)"),
|
|
560
|
-
});
|
|
561
|
-
/**
|
|
562
|
-
* Schema for HMAC authentication.
|
|
563
|
-
*/
|
|
564
|
-
export const PgcryptoHmacSchema = z.object({
|
|
565
|
-
data: z.string().describe("Data to authenticate"),
|
|
566
|
-
key: z.string().describe("Secret key for HMAC"),
|
|
567
|
-
algorithm: z
|
|
568
|
-
.enum(["md5", "sha1", "sha224", "sha256", "sha384", "sha512"])
|
|
569
|
-
.describe("Hash algorithm"),
|
|
570
|
-
encoding: z
|
|
571
|
-
.enum(["hex", "base64"])
|
|
572
|
-
.optional()
|
|
573
|
-
.describe("Output encoding (default: hex)"),
|
|
574
|
-
});
|
|
575
|
-
/**
|
|
576
|
-
* Schema for PGP symmetric encryption.
|
|
577
|
-
* Accepts 'key' as alias for 'password'.
|
|
578
|
-
*
|
|
579
|
-
* Uses base schema for MCP exposure and transform schema for validation.
|
|
580
|
-
*/
|
|
581
|
-
export const PgcryptoEncryptSchemaBase = z.object({
|
|
582
|
-
data: z.string().describe("Data to encrypt"),
|
|
583
|
-
password: z.string().optional().describe("Encryption password"),
|
|
584
|
-
key: z.string().optional().describe("Alias for password"),
|
|
585
|
-
options: z
|
|
586
|
-
.string()
|
|
587
|
-
.optional()
|
|
588
|
-
.describe('PGP options (e.g., "compress-algo=1, cipher-algo=aes256")'),
|
|
589
|
-
});
|
|
590
|
-
export const PgcryptoEncryptSchema = PgcryptoEncryptSchemaBase.transform((data) => {
|
|
591
|
-
// Handle alias: key -> password
|
|
592
|
-
const resolvedPassword = data.password ?? data.key;
|
|
593
|
-
return {
|
|
594
|
-
...data,
|
|
595
|
-
password: resolvedPassword,
|
|
596
|
-
};
|
|
597
|
-
}).refine((data) => data.password !== undefined, {
|
|
598
|
-
message: "password (or key alias) is required",
|
|
599
|
-
});
|
|
600
|
-
/**
|
|
601
|
-
* Schema for PGP symmetric decryption.
|
|
602
|
-
* Accepts 'data' as alias for 'encryptedData', 'key' as alias for 'password'.
|
|
603
|
-
*
|
|
604
|
-
* Uses base schema for MCP exposure and transform schema for validation.
|
|
605
|
-
*/
|
|
606
|
-
export const PgcryptoDecryptSchemaBase = z.object({
|
|
607
|
-
encryptedData: z
|
|
608
|
-
.string()
|
|
609
|
-
.optional()
|
|
610
|
-
.describe("Encrypted data (base64 from encrypt)"),
|
|
611
|
-
data: z.string().optional().describe("Alias for encryptedData"),
|
|
612
|
-
password: z.string().optional().describe("Decryption password"),
|
|
613
|
-
key: z.string().optional().describe("Alias for password"),
|
|
614
|
-
});
|
|
615
|
-
export const PgcryptoDecryptSchema = PgcryptoDecryptSchemaBase.transform((data) => {
|
|
616
|
-
// Handle aliases
|
|
617
|
-
const resolvedEncryptedData = data.encryptedData ?? data.data;
|
|
618
|
-
const resolvedPassword = data.password ?? data.key;
|
|
619
|
-
return {
|
|
620
|
-
encryptedData: resolvedEncryptedData,
|
|
621
|
-
password: resolvedPassword,
|
|
622
|
-
};
|
|
623
|
-
})
|
|
624
|
-
.refine((data) => data.encryptedData !== undefined, {
|
|
625
|
-
message: "encryptedData (or data alias) is required",
|
|
626
|
-
})
|
|
627
|
-
.refine((data) => data.password !== undefined, {
|
|
628
|
-
message: "password (or key alias) is required",
|
|
629
|
-
});
|
|
630
|
-
/**
|
|
631
|
-
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
632
|
-
*/
|
|
633
|
-
export const PgcryptoRandomBytesSchemaBase = z.object({
|
|
634
|
-
length: z.number().describe("Number of random bytes to generate (1-1024)"),
|
|
635
|
-
encoding: z.string().optional().describe("Output encoding (default: hex)"),
|
|
636
|
-
});
|
|
637
|
-
/**
|
|
638
|
-
* Schema for generating random bytes.
|
|
639
|
-
*/
|
|
640
|
-
export const PgcryptoRandomBytesSchema = z.object({
|
|
641
|
-
length: z
|
|
642
|
-
.number()
|
|
643
|
-
.min(1)
|
|
644
|
-
.max(1024)
|
|
645
|
-
.describe("Number of random bytes to generate (1-1024)"),
|
|
646
|
-
encoding: z
|
|
647
|
-
.enum(["hex", "base64"])
|
|
648
|
-
.optional()
|
|
649
|
-
.describe("Output encoding (default: hex)"),
|
|
650
|
-
});
|
|
651
|
-
/**
|
|
652
|
-
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
653
|
-
*/
|
|
654
|
-
export const PgcryptoGenSaltSchemaBase = z.object({
|
|
655
|
-
type: z
|
|
656
|
-
.string()
|
|
657
|
-
.describe("Salt type: bf (bcrypt, recommended), md5, xdes, or des"),
|
|
658
|
-
iterations: z
|
|
659
|
-
.number()
|
|
660
|
-
.optional()
|
|
661
|
-
.describe("Iteration count (for bf: 4-31, for xdes: odd 1-16777215)"),
|
|
662
|
-
});
|
|
663
|
-
/**
|
|
664
|
-
* Schema for generating password salt.
|
|
665
|
-
*/
|
|
666
|
-
export const PgcryptoGenSaltSchema = z.object({
|
|
667
|
-
type: z
|
|
668
|
-
.enum(["bf", "md5", "xdes", "des"])
|
|
669
|
-
.describe("Salt type: bf (bcrypt, recommended), md5, xdes, or des"),
|
|
670
|
-
iterations: z
|
|
671
|
-
.number()
|
|
672
|
-
.optional()
|
|
673
|
-
.describe("Iteration count (for bf: 4-31, for xdes: odd 1-16777215)"),
|
|
674
|
-
});
|
|
675
|
-
/**
|
|
676
|
-
* Schema for password hashing with crypt().
|
|
677
|
-
*/
|
|
678
|
-
export const PgcryptoCryptSchema = z.object({
|
|
679
|
-
password: z.string().describe("Password to hash or verify"),
|
|
680
|
-
salt: z
|
|
681
|
-
.string()
|
|
682
|
-
.describe("Salt from gen_salt() or stored hash for verification"),
|
|
683
|
-
});
|
|
684
|
-
// ============================================================================
|
|
685
|
-
// OUTPUT SCHEMAS - pg_stat_kcache tools
|
|
686
|
-
// ============================================================================
|
|
687
|
-
/**
|
|
688
|
-
* Output schema for pg_kcache_create_extension
|
|
689
|
-
*/
|
|
690
|
-
export const KcacheCreateExtensionOutputSchema = z
|
|
691
|
-
.object({
|
|
692
|
-
success: z.boolean().optional().describe("Whether extension was enabled"),
|
|
693
|
-
message: z.string().optional().describe("Status message"),
|
|
694
|
-
note: z.string().optional().describe("Additional note"),
|
|
695
|
-
error: z.string().optional().describe("Error message"),
|
|
696
|
-
hint: z.string().optional().describe("Helpful hint"),
|
|
697
|
-
})
|
|
698
|
-
.describe("pg_stat_kcache extension creation result");
|
|
699
|
-
/**
|
|
700
|
-
* Output schema for pg_kcache_query_stats
|
|
701
|
-
*/
|
|
702
|
-
export const KcacheQueryStatsOutputSchema = z
|
|
703
|
-
.object({
|
|
704
|
-
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
705
|
-
queries: z
|
|
706
|
-
.array(z.record(z.string(), z.unknown()))
|
|
707
|
-
.optional()
|
|
708
|
-
.describe("Query statistics with CPU/IO metrics"),
|
|
709
|
-
count: z.number().optional().describe("Number of queries returned"),
|
|
710
|
-
orderBy: z.string().optional().describe("Order by metric"),
|
|
711
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
712
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
713
|
-
error: z.string().optional().describe("Error message"),
|
|
714
|
-
})
|
|
715
|
-
.describe("Query statistics with OS-level metrics");
|
|
716
|
-
/**
|
|
717
|
-
* Output schema for pg_kcache_top_cpu
|
|
718
|
-
*/
|
|
719
|
-
export const KcacheTopCpuOutputSchema = z
|
|
720
|
-
.object({
|
|
721
|
-
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
722
|
-
topCpuQueries: z
|
|
723
|
-
.array(z.record(z.string(), z.unknown()))
|
|
724
|
-
.optional()
|
|
725
|
-
.describe("Top CPU-consuming queries"),
|
|
726
|
-
count: z.number().optional().describe("Number of queries returned"),
|
|
727
|
-
description: z.string().optional().describe("Result description"),
|
|
728
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
729
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
730
|
-
error: z.string().optional().describe("Error message"),
|
|
731
|
-
})
|
|
732
|
-
.describe("Top CPU-consuming queries result");
|
|
733
|
-
/**
|
|
734
|
-
* Output schema for pg_kcache_top_io
|
|
735
|
-
*/
|
|
736
|
-
export const KcacheTopIoOutputSchema = z
|
|
737
|
-
.object({
|
|
738
|
-
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
739
|
-
topIoQueries: z
|
|
740
|
-
.array(z.record(z.string(), z.unknown()))
|
|
741
|
-
.optional()
|
|
742
|
-
.describe("Top I/O-consuming queries"),
|
|
743
|
-
count: z.number().optional().describe("Number of queries returned"),
|
|
744
|
-
ioType: z
|
|
745
|
-
.enum(["reads", "writes", "both"])
|
|
746
|
-
.optional()
|
|
747
|
-
.describe("I/O type ranked by"),
|
|
748
|
-
description: z.string().optional().describe("Result description"),
|
|
749
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
750
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
751
|
-
error: z.string().optional().describe("Error message"),
|
|
752
|
-
})
|
|
753
|
-
.describe("Top I/O-consuming queries result");
|
|
754
|
-
/**
|
|
755
|
-
* Output schema for pg_kcache_database_stats
|
|
756
|
-
*/
|
|
757
|
-
export const KcacheDatabaseStatsOutputSchema = z
|
|
758
|
-
.object({
|
|
759
|
-
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
760
|
-
databaseStats: z
|
|
761
|
-
.array(z.record(z.string(), z.unknown()))
|
|
762
|
-
.optional()
|
|
763
|
-
.describe("Database-level statistics"),
|
|
764
|
-
count: z.number().optional().describe("Number of databases"),
|
|
765
|
-
error: z.string().optional().describe("Error message"),
|
|
766
|
-
})
|
|
767
|
-
.describe("Database-level aggregated statistics");
|
|
768
|
-
/**
|
|
769
|
-
* Output schema for pg_kcache_resource_analysis
|
|
770
|
-
*/
|
|
771
|
-
export const KcacheResourceAnalysisOutputSchema = z
|
|
772
|
-
.object({
|
|
773
|
-
success: z.boolean().optional().describe("Whether analysis succeeded"),
|
|
774
|
-
queries: z
|
|
775
|
-
.array(z.record(z.string(), z.unknown()))
|
|
776
|
-
.optional()
|
|
777
|
-
.describe("Analyzed queries with resource classification"),
|
|
778
|
-
count: z.number().optional().describe("Number of queries analyzed"),
|
|
779
|
-
summary: z
|
|
780
|
-
.object({
|
|
781
|
-
cpuBound: z.number().describe("CPU-bound query count"),
|
|
782
|
-
ioBound: z.number().describe("I/O-bound query count"),
|
|
783
|
-
balanced: z.number().describe("Balanced query count"),
|
|
784
|
-
threshold: z.number().describe("Classification threshold"),
|
|
785
|
-
})
|
|
786
|
-
.optional()
|
|
787
|
-
.describe("Resource classification summary"),
|
|
788
|
-
recommendations: z.array(z.string()).optional().describe("Recommendations"),
|
|
789
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
790
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
791
|
-
error: z.string().optional().describe("Error message"),
|
|
792
|
-
})
|
|
793
|
-
.describe("Resource classification analysis result");
|
|
794
|
-
/**
|
|
795
|
-
* Output schema for pg_kcache_reset
|
|
796
|
-
*/
|
|
797
|
-
export const KcacheResetOutputSchema = z
|
|
798
|
-
.object({
|
|
799
|
-
success: z.boolean().optional().describe("Whether reset succeeded"),
|
|
800
|
-
message: z.string().optional().describe("Status message"),
|
|
801
|
-
note: z.string().optional().describe("Additional note"),
|
|
802
|
-
error: z.string().optional().describe("Error message"),
|
|
803
|
-
})
|
|
804
|
-
.describe("pg_stat_kcache reset result");
|
|
805
|
-
// ============================================================================
|
|
806
|
-
// OUTPUT SCHEMAS - citext tools
|
|
807
|
-
// ============================================================================
|
|
808
|
-
/**
|
|
809
|
-
* Output schema for pg_citext_create_extension
|
|
810
|
-
*/
|
|
811
|
-
export const CitextCreateExtensionOutputSchema = z
|
|
812
|
-
.object({
|
|
813
|
-
success: z.boolean().optional().describe("Whether extension was enabled"),
|
|
814
|
-
message: z.string().optional().describe("Status message"),
|
|
815
|
-
usage: z.string().optional().describe("Usage information"),
|
|
816
|
-
error: z.string().optional().describe("Error message"),
|
|
817
|
-
})
|
|
818
|
-
.describe("citext extension creation result");
|
|
819
|
-
/**
|
|
820
|
-
* Output schema for pg_citext_convert_column
|
|
821
|
-
*/
|
|
822
|
-
export const CitextConvertColumnOutputSchema = z
|
|
823
|
-
.object({
|
|
824
|
-
success: z.boolean().optional().describe("Whether conversion succeeded"),
|
|
825
|
-
message: z.string().optional().describe("Status message"),
|
|
826
|
-
table: z.string().optional().describe("Qualified table name"),
|
|
827
|
-
previousType: z.string().optional().describe("Previous column type"),
|
|
828
|
-
wasAlreadyCitext: z
|
|
829
|
-
.boolean()
|
|
830
|
-
.optional()
|
|
831
|
-
.describe("Column was already citext"),
|
|
832
|
-
error: z.string().optional().describe("Error message"),
|
|
833
|
-
currentType: z.string().optional().describe("Current column type"),
|
|
834
|
-
allowedTypes: z
|
|
835
|
-
.array(z.string())
|
|
836
|
-
.optional()
|
|
837
|
-
.describe("Allowed source types"),
|
|
838
|
-
suggestion: z.string().optional().describe("Suggestion for resolution"),
|
|
839
|
-
dependentViews: z
|
|
840
|
-
.array(z.string())
|
|
841
|
-
.optional()
|
|
842
|
-
.describe("Views that depend on this column"),
|
|
843
|
-
hint: z.string().optional().describe("Helpful hint"),
|
|
844
|
-
affectedViews: z
|
|
845
|
-
.array(z.string())
|
|
846
|
-
.optional()
|
|
847
|
-
.describe("Views affected by conversion"),
|
|
848
|
-
})
|
|
849
|
-
.describe("Column conversion result");
|
|
850
|
-
/**
|
|
851
|
-
* Output schema for pg_citext_list_columns
|
|
852
|
-
*/
|
|
853
|
-
export const CitextListColumnsOutputSchema = z
|
|
854
|
-
.object({
|
|
855
|
-
columns: z
|
|
856
|
-
.array(z.record(z.string(), z.unknown()))
|
|
857
|
-
.optional()
|
|
858
|
-
.describe("citext columns"),
|
|
859
|
-
count: z.number().optional().describe("Number of columns returned"),
|
|
860
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
861
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
862
|
-
limit: z.number().optional().describe("Limit applied"),
|
|
863
|
-
schema: z.string().optional().describe("Schema filter applied"),
|
|
864
|
-
success: z.boolean().optional().describe("Whether operation succeeded"),
|
|
865
|
-
error: z.string().optional().describe("Error message"),
|
|
866
|
-
})
|
|
867
|
-
.describe("List of citext columns");
|
|
868
|
-
/**
|
|
869
|
-
* Output schema for pg_citext_analyze_candidates
|
|
870
|
-
*/
|
|
871
|
-
export const CitextAnalyzeCandidatesOutputSchema = z
|
|
872
|
-
.object({
|
|
873
|
-
success: z.boolean().optional().describe("Whether analysis succeeded"),
|
|
874
|
-
candidates: z
|
|
875
|
-
.array(z.record(z.string(), z.unknown()))
|
|
876
|
-
.optional()
|
|
877
|
-
.describe("Candidate columns"),
|
|
878
|
-
count: z.number().optional().describe("Number of candidates returned"),
|
|
879
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
880
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
881
|
-
limit: z.number().optional().describe("Limit applied"),
|
|
882
|
-
table: z.string().optional().describe("Table filter applied"),
|
|
883
|
-
schema: z.string().optional().describe("Schema filter applied"),
|
|
884
|
-
summary: z
|
|
885
|
-
.object({
|
|
886
|
-
highConfidence: z.number().describe("High confidence count"),
|
|
887
|
-
mediumConfidence: z.number().describe("Medium confidence count"),
|
|
888
|
-
})
|
|
889
|
-
.optional()
|
|
890
|
-
.describe("Confidence summary"),
|
|
891
|
-
recommendation: z.string().optional().describe("Recommendation"),
|
|
892
|
-
excludedSchemas: z
|
|
893
|
-
.array(z.string())
|
|
894
|
-
.optional()
|
|
895
|
-
.describe("Excluded schemas"),
|
|
896
|
-
patternsUsed: z
|
|
897
|
-
.array(z.string())
|
|
898
|
-
.optional()
|
|
899
|
-
.describe("Search patterns used"),
|
|
900
|
-
error: z.string().optional().describe("Error message"),
|
|
901
|
-
})
|
|
902
|
-
.describe("Candidate analysis result");
|
|
903
|
-
/**
|
|
904
|
-
* Output schema for pg_citext_compare
|
|
905
|
-
*/
|
|
906
|
-
export const CitextCompareOutputSchema = z
|
|
907
|
-
.object({
|
|
908
|
-
value1: z.string().optional().describe("First value"),
|
|
909
|
-
value2: z.string().optional().describe("Second value"),
|
|
910
|
-
citextEqual: z.boolean().optional().describe("citext equality result"),
|
|
911
|
-
textEqual: z.boolean().optional().describe("Text equality result"),
|
|
912
|
-
lowerEqual: z.boolean().optional().describe("Lowercase equality result"),
|
|
913
|
-
extensionInstalled: z
|
|
914
|
-
.boolean()
|
|
915
|
-
.optional()
|
|
916
|
-
.describe("Whether citext is installed"),
|
|
917
|
-
hint: z.string().optional().describe("Helpful hint"),
|
|
918
|
-
success: z.boolean().optional().describe("Whether operation succeeded"),
|
|
919
|
-
error: z.string().optional().describe("Error message"),
|
|
920
|
-
})
|
|
921
|
-
.describe("Comparison result");
|
|
922
|
-
/**
|
|
923
|
-
* Output schema for pg_citext_schema_advisor
|
|
924
|
-
*/
|
|
925
|
-
export const CitextSchemaAdvisorOutputSchema = z
|
|
926
|
-
.object({
|
|
927
|
-
success: z.boolean().optional().describe("Whether analysis succeeded"),
|
|
928
|
-
table: z.string().optional().describe("Analyzed table"),
|
|
929
|
-
recommendations: z
|
|
930
|
-
.array(z.object({
|
|
931
|
-
column: z.string().describe("Column name"),
|
|
932
|
-
currentType: z.string().describe("Current data type"),
|
|
933
|
-
previousType: z.string().optional().describe("Previous type"),
|
|
934
|
-
recommendation: z
|
|
935
|
-
.enum(["convert", "keep", "already_citext"])
|
|
936
|
-
.describe("Recommendation"),
|
|
937
|
-
confidence: z.enum(["high", "medium", "low"]).describe("Confidence"),
|
|
938
|
-
reason: z.string().describe("Reason for recommendation"),
|
|
939
|
-
}))
|
|
940
|
-
.optional()
|
|
941
|
-
.describe("Column recommendations"),
|
|
942
|
-
summary: z
|
|
943
|
-
.object({
|
|
944
|
-
totalTextColumns: z.number().describe("Total text columns"),
|
|
945
|
-
recommendConvert: z.number().describe("Columns to convert"),
|
|
946
|
-
highConfidence: z.number().describe("High confidence count"),
|
|
947
|
-
alreadyCitext: z.number().describe("Already citext count"),
|
|
948
|
-
})
|
|
949
|
-
.optional()
|
|
950
|
-
.describe("Summary statistics"),
|
|
951
|
-
nextSteps: z.array(z.string()).optional().describe("Suggested next steps"),
|
|
952
|
-
error: z.string().optional().describe("Error message"),
|
|
953
|
-
})
|
|
954
|
-
.describe("Schema advisor result");
|
|
955
|
-
// ============================================================================
|
|
956
|
-
// OUTPUT SCHEMAS - ltree tools
|
|
957
|
-
// ============================================================================
|
|
958
|
-
/**
|
|
959
|
-
* Output schema for pg_ltree_create_extension
|
|
960
|
-
*/
|
|
961
|
-
export const LtreeCreateExtensionOutputSchema = z
|
|
962
|
-
.object({
|
|
963
|
-
success: z.boolean().optional().describe("Whether extension was enabled"),
|
|
964
|
-
message: z.string().optional().describe("Status message"),
|
|
965
|
-
error: z.string().optional().describe("Error message"),
|
|
966
|
-
})
|
|
967
|
-
.describe("ltree extension creation result");
|
|
968
|
-
/**
|
|
969
|
-
* Output schema for pg_ltree_query
|
|
970
|
-
*/
|
|
971
|
-
export const LtreeQueryOutputSchema = z
|
|
972
|
-
.object({
|
|
973
|
-
path: z.string().optional().describe("Query path"),
|
|
974
|
-
mode: z.string().optional().describe("Query mode"),
|
|
975
|
-
isPattern: z.boolean().optional().describe("Whether query uses patterns"),
|
|
976
|
-
results: z
|
|
977
|
-
.array(z.record(z.string(), z.unknown()))
|
|
978
|
-
.optional()
|
|
979
|
-
.describe("Query results"),
|
|
980
|
-
count: z.number().optional().describe("Number of results"),
|
|
981
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
982
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
983
|
-
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
984
|
-
error: z.string().optional().describe("Error message"),
|
|
985
|
-
})
|
|
986
|
-
.describe("Ltree query result");
|
|
987
|
-
/**
|
|
988
|
-
* Output schema for pg_ltree_subpath
|
|
989
|
-
*/
|
|
990
|
-
export const LtreeSubpathOutputSchema = z
|
|
991
|
-
.object({
|
|
992
|
-
originalPath: z.string().optional().describe("Original path"),
|
|
993
|
-
offset: z.number().optional().describe("Offset used"),
|
|
994
|
-
length: z
|
|
995
|
-
.union([z.number(), z.string()])
|
|
996
|
-
.optional()
|
|
997
|
-
.describe("Length used"),
|
|
998
|
-
subpath: z.string().optional().describe("Extracted subpath"),
|
|
999
|
-
originalDepth: z.number().optional().describe("Original path depth"),
|
|
1000
|
-
pathDepth: z.number().optional().describe("Path depth for error"),
|
|
1001
|
-
success: z.boolean().optional().describe("Whether extraction succeeded"),
|
|
1002
|
-
error: z.string().optional().describe("Error message"),
|
|
1003
|
-
})
|
|
1004
|
-
.describe("Subpath extraction result");
|
|
1005
|
-
/**
|
|
1006
|
-
* Output schema for pg_ltree_lca
|
|
1007
|
-
*/
|
|
1008
|
-
export const LtreeLcaOutputSchema = z
|
|
1009
|
-
.object({
|
|
1010
|
-
paths: z.array(z.string()).optional().describe("Input paths"),
|
|
1011
|
-
longestCommonAncestor: z.string().optional().describe("LCA path"),
|
|
1012
|
-
hasCommonAncestor: z.boolean().optional().describe("Whether LCA exists"),
|
|
1013
|
-
success: z.boolean().optional().describe("Whether operation succeeded"),
|
|
1014
|
-
error: z.string().optional().describe("Error message"),
|
|
1015
|
-
})
|
|
1016
|
-
.describe("Longest common ancestor result");
|
|
1017
|
-
/**
|
|
1018
|
-
* Output schema for pg_ltree_match
|
|
1019
|
-
*/
|
|
1020
|
-
export const LtreeMatchOutputSchema = z
|
|
1021
|
-
.object({
|
|
1022
|
-
success: z.boolean().optional().describe("Whether match succeeded"),
|
|
1023
|
-
pattern: z.string().optional().describe("Query pattern"),
|
|
1024
|
-
results: z
|
|
1025
|
-
.array(z.record(z.string(), z.unknown()))
|
|
1026
|
-
.optional()
|
|
1027
|
-
.describe("Matching results"),
|
|
1028
|
-
count: z.number().optional().describe("Number of results"),
|
|
1029
|
-
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
1030
|
-
totalCount: z.number().optional().describe("Total available count"),
|
|
1031
|
-
error: z.string().optional().describe("Error message"),
|
|
1032
|
-
})
|
|
1033
|
-
.describe("Pattern match result");
|
|
1034
|
-
/**
|
|
1035
|
-
* Output schema for pg_ltree_list_columns
|
|
1036
|
-
*/
|
|
1037
|
-
export const LtreeListColumnsOutputSchema = z
|
|
1038
|
-
.object({
|
|
1039
|
-
columns: z
|
|
1040
|
-
.array(z.record(z.string(), z.unknown()))
|
|
1041
|
-
.optional()
|
|
1042
|
-
.describe("ltree columns"),
|
|
1043
|
-
count: z.number().optional().describe("Number of columns"),
|
|
1044
|
-
success: z.boolean().optional().describe("Whether operation succeeded"),
|
|
1045
|
-
error: z.string().optional().describe("Error message"),
|
|
1046
|
-
})
|
|
1047
|
-
.describe("List of ltree columns");
|
|
1048
|
-
/**
|
|
1049
|
-
* Output schema for pg_ltree_convert_column
|
|
1050
|
-
*/
|
|
1051
|
-
export const LtreeConvertColumnOutputSchema = z
|
|
1052
|
-
.object({
|
|
1053
|
-
success: z.boolean().optional().describe("Whether conversion succeeded"),
|
|
1054
|
-
message: z.string().optional().describe("Status message"),
|
|
1055
|
-
table: z.string().optional().describe("Qualified table name"),
|
|
1056
|
-
previousType: z.string().optional().describe("Previous column type"),
|
|
1057
|
-
wasAlreadyLtree: z
|
|
1058
|
-
.boolean()
|
|
1059
|
-
.optional()
|
|
1060
|
-
.describe("Column was already ltree"),
|
|
1061
|
-
error: z.string().optional().describe("Error message"),
|
|
1062
|
-
currentType: z.string().optional().describe("Current column type"),
|
|
1063
|
-
allowedTypes: z
|
|
1064
|
-
.array(z.string())
|
|
1065
|
-
.optional()
|
|
1066
|
-
.describe("Allowed source types"),
|
|
1067
|
-
suggestion: z.string().optional().describe("Suggestion for resolution"),
|
|
1068
|
-
dependentViews: z
|
|
1069
|
-
.array(z.string())
|
|
1070
|
-
.optional()
|
|
1071
|
-
.describe("Views that depend on this column"),
|
|
1072
|
-
hint: z.string().optional().describe("Helpful hint"),
|
|
1073
|
-
})
|
|
1074
|
-
.describe("Column conversion result");
|
|
1075
|
-
/**
|
|
1076
|
-
* Output schema for pg_ltree_create_index
|
|
1077
|
-
*/
|
|
1078
|
-
export const LtreeCreateIndexOutputSchema = z
|
|
1079
|
-
.object({
|
|
1080
|
-
success: z.boolean().optional().describe("Whether index was created"),
|
|
1081
|
-
message: z.string().optional().describe("Status message"),
|
|
1082
|
-
indexName: z.string().optional().describe("Index name"),
|
|
1083
|
-
alreadyExists: z.boolean().optional().describe("Index already existed"),
|
|
1084
|
-
table: z.string().optional().describe("Qualified table name"),
|
|
1085
|
-
column: z.string().optional().describe("Column name"),
|
|
1086
|
-
indexType: z.string().optional().describe("Index type (gist)"),
|
|
1087
|
-
error: z.string().optional().describe("Error message"),
|
|
1088
|
-
})
|
|
1089
|
-
.describe("Index creation result");
|
|
1090
|
-
// ============================================================================
|
|
1091
|
-
// OUTPUT SCHEMAS - pgcrypto tools
|
|
1092
|
-
// ============================================================================
|
|
1093
|
-
/**
|
|
1094
|
-
* Output schema for pg_pgcrypto_create_extension
|
|
1095
|
-
*/
|
|
1096
|
-
export const PgcryptoCreateExtensionOutputSchema = z
|
|
1097
|
-
.object({
|
|
1098
|
-
success: z.boolean().optional().describe("Whether extension was enabled"),
|
|
1099
|
-
message: z.string().optional().describe("Status message"),
|
|
1100
|
-
error: z.string().optional().describe("Error message"),
|
|
1101
|
-
})
|
|
1102
|
-
.describe("pgcrypto extension creation result");
|
|
1103
|
-
/**
|
|
1104
|
-
* Output schema for pg_pgcrypto_hash
|
|
1105
|
-
*/
|
|
1106
|
-
export const PgcryptoHashOutputSchema = z
|
|
1107
|
-
.object({
|
|
1108
|
-
success: z.boolean().optional().describe("Whether hash succeeded"),
|
|
1109
|
-
algorithm: z.string().optional().describe("Hash algorithm used"),
|
|
1110
|
-
encoding: z.string().optional().describe("Output encoding"),
|
|
1111
|
-
hash: z.string().optional().describe("Hash result"),
|
|
1112
|
-
inputLength: z.number().optional().describe("Input data length"),
|
|
1113
|
-
error: z.string().optional().describe("Error message"),
|
|
1114
|
-
})
|
|
1115
|
-
.describe("Hash result");
|
|
1116
|
-
/**
|
|
1117
|
-
* Output schema for pg_pgcrypto_hmac
|
|
1118
|
-
*/
|
|
1119
|
-
export const PgcryptoHmacOutputSchema = z
|
|
1120
|
-
.object({
|
|
1121
|
-
success: z.boolean().optional().describe("Whether HMAC succeeded"),
|
|
1122
|
-
algorithm: z.string().optional().describe("HMAC algorithm used"),
|
|
1123
|
-
encoding: z.string().optional().describe("Output encoding"),
|
|
1124
|
-
hmac: z.string().optional().describe("HMAC result"),
|
|
1125
|
-
error: z.string().optional().describe("Error message"),
|
|
1126
|
-
})
|
|
1127
|
-
.describe("HMAC result");
|
|
1128
|
-
/**
|
|
1129
|
-
* Output schema for pg_pgcrypto_encrypt
|
|
1130
|
-
*/
|
|
1131
|
-
export const PgcryptoEncryptOutputSchema = z
|
|
1132
|
-
.object({
|
|
1133
|
-
success: z.boolean().optional().describe("Whether encryption succeeded"),
|
|
1134
|
-
encrypted: z.string().optional().describe("Encrypted data"),
|
|
1135
|
-
encoding: z.string().optional().describe("Output encoding"),
|
|
1136
|
-
error: z.string().optional().describe("Error message"),
|
|
1137
|
-
})
|
|
1138
|
-
.describe("Encryption result");
|
|
1139
|
-
/**
|
|
1140
|
-
* Output schema for pg_pgcrypto_decrypt
|
|
1141
|
-
*/
|
|
1142
|
-
export const PgcryptoDecryptOutputSchema = z
|
|
1143
|
-
.object({
|
|
1144
|
-
success: z.boolean().optional().describe("Whether decryption succeeded"),
|
|
1145
|
-
decrypted: z.string().optional().describe("Decrypted data"),
|
|
1146
|
-
verified: z.boolean().optional().describe("Whether decryption verified"),
|
|
1147
|
-
error: z.string().optional().describe("Error message"),
|
|
1148
|
-
})
|
|
1149
|
-
.describe("Decryption result");
|
|
1150
|
-
/**
|
|
1151
|
-
* Output schema for pg_pgcrypto_gen_random_uuid
|
|
1152
|
-
*/
|
|
1153
|
-
export const PgcryptoGenRandomUuidOutputSchema = z
|
|
1154
|
-
.object({
|
|
1155
|
-
success: z.boolean().optional().describe("Whether generation succeeded"),
|
|
1156
|
-
uuids: z.array(z.string()).optional().describe("Generated UUIDs"),
|
|
1157
|
-
count: z.number().optional().describe("Number of UUIDs generated"),
|
|
1158
|
-
uuid: z.string().optional().describe("First UUID (for single requests)"),
|
|
1159
|
-
error: z.string().optional().describe("Error message"),
|
|
1160
|
-
})
|
|
1161
|
-
.describe("UUID generation result");
|
|
1162
|
-
/**
|
|
1163
|
-
* Output schema for pg_pgcrypto_gen_random_bytes
|
|
1164
|
-
*/
|
|
1165
|
-
export const PgcryptoGenRandomBytesOutputSchema = z
|
|
1166
|
-
.object({
|
|
1167
|
-
success: z.boolean().optional().describe("Whether generation succeeded"),
|
|
1168
|
-
randomBytes: z.string().optional().describe("Random bytes"),
|
|
1169
|
-
length: z.number().optional().describe("Number of bytes"),
|
|
1170
|
-
encoding: z.string().optional().describe("Output encoding"),
|
|
1171
|
-
error: z.string().optional().describe("Error message"),
|
|
1172
|
-
})
|
|
1173
|
-
.describe("Random bytes generation result");
|
|
1174
|
-
/**
|
|
1175
|
-
* Output schema for pg_pgcrypto_gen_salt
|
|
1176
|
-
*/
|
|
1177
|
-
export const PgcryptoGenSaltOutputSchema = z
|
|
1178
|
-
.object({
|
|
1179
|
-
success: z
|
|
1180
|
-
.boolean()
|
|
1181
|
-
.optional()
|
|
1182
|
-
.describe("Whether salt generation succeeded"),
|
|
1183
|
-
salt: z.string().optional().describe("Generated salt"),
|
|
1184
|
-
type: z.string().optional().describe("Salt type"),
|
|
1185
|
-
error: z.string().optional().describe("Error message"),
|
|
1186
|
-
})
|
|
1187
|
-
.describe("Salt generation result");
|
|
1188
|
-
/**
|
|
1189
|
-
* Output schema for pg_pgcrypto_crypt
|
|
1190
|
-
*/
|
|
1191
|
-
export const PgcryptoCryptOutputSchema = z
|
|
1192
|
-
.object({
|
|
1193
|
-
success: z
|
|
1194
|
-
.boolean()
|
|
1195
|
-
.optional()
|
|
1196
|
-
.describe("Whether password hashing succeeded"),
|
|
1197
|
-
hash: z.string().optional().describe("Password hash"),
|
|
1198
|
-
algorithm: z.string().optional().describe("Detected algorithm"),
|
|
1199
|
-
error: z.string().optional().describe("Error message"),
|
|
1200
|
-
})
|
|
1201
|
-
.describe("Password crypt result");
|
|
1202
|
-
//# sourceMappingURL=extensions.js.map
|