@neverinfamous/postgres-mcp 1.1.0 → 1.3.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/README.md +95 -81
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +0 -1
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/__tests__/mocks/pool.d.ts.map +1 -1
- package/dist/__tests__/mocks/pool.js +0 -1
- package/dist/__tests__/mocks/pool.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +1 -1
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +78 -8
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/backup.js +2 -3
- package/dist/adapters/postgresql/prompts/backup.js.map +1 -1
- package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/citext.js +3 -4
- package/dist/adapters/postgresql/prompts/citext.js.map +1 -1
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/extensionSetup.js +2 -3
- package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -1
- package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/health.js +2 -3
- package/dist/adapters/postgresql/prompts/health.js.map +1 -1
- package/dist/adapters/postgresql/prompts/index.js +20 -27
- package/dist/adapters/postgresql/prompts/index.js.map +1 -1
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/indexTuning.js +2 -3
- package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -1
- package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/kcache.js +3 -4
- package/dist/adapters/postgresql/prompts/kcache.js.map +1 -1
- package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/ltree.js +5 -6
- package/dist/adapters/postgresql/prompts/ltree.js.map +1 -1
- package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/partman.js +2 -3
- package/dist/adapters/postgresql/prompts/partman.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcron.js +2 -3
- package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcrypto.js +3 -4
- package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgvector.js +3 -4
- package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -1
- package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/postgis.js +2 -3
- package/dist/adapters/postgresql/prompts/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/admin.d.ts +10 -5
- package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/admin.js +10 -5
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.d.ts +8 -4
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.js +11 -4
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core.d.ts +54 -19
- package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/core.js +65 -17
- package/dist/adapters/postgresql/schemas/core.js.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.d.ts +51 -32
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.js +64 -44
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.d.ts +168 -73
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.js +179 -62
- package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
- package/dist/adapters/postgresql/schemas/index.d.ts +5 -5
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/index.js +9 -7
- package/dist/adapters/postgresql/schemas/index.js.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -42
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb.js +101 -30
- package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -11
- package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.js +49 -24
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +15 -11
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.js +17 -13
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.d.ts +62 -31
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.js +86 -24
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.d.ts +20 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.js +20 -3
- package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +35 -23
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +69 -26
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
- package/dist/adapters/postgresql/schemas/stats.d.ts +33 -20
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/stats.js +36 -20
- package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.d.ts +8 -5
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.js +15 -5
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
- package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/admin.js +211 -140
- package/dist/adapters/postgresql/tools/admin.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.js +410 -387
- 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 +175 -172
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
- package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/citext.js +221 -163
- package/dist/adapters/postgresql/tools/citext.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts +9 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.js +96 -9
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +48 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.js +256 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.js +23 -6
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.js +45 -4
- 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 +104 -85
- 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 +100 -42
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +52 -25
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.js +55 -25
- 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 +74 -30
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
- package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/cron.js +274 -179
- package/dist/adapters/postgresql/tools/cron.js.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.js +372 -284
- package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.js +617 -398
- package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.js +282 -220
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.js +126 -35
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
- package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/monitoring.js +59 -40
- package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partitioning.js +150 -15
- package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.js +12 -5
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.js +135 -22
- 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 +264 -160
- package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/explain.js +61 -21
- package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.js +44 -7
- 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 +92 -81
- 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 +128 -37
- 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 +242 -87
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.js +293 -201
- package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.js +359 -249
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/standalone.js +135 -51
- package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -1
- package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/schema.js +515 -226
- package/dist/adapters/postgresql/tools/schema.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/advanced.js +515 -476
- package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/basic.js +302 -293
- package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/text.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/text.js +398 -220
- package/dist/adapters/postgresql/tools/text.js.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.js +157 -50
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/advanced.js +70 -38
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.d.ts +8 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.js +194 -82
- package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +15 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.js +7 -6
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/api.js +4 -3
- package/dist/codemode/api.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +76 -34
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +29 -13
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +44 -27
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.js +1 -1
- package/dist/utils/progress-utils.js.map +1 -1
- package/package.json +13 -9
|
@@ -15,21 +15,22 @@ import { z } from "zod";
|
|
|
15
15
|
* Schema for querying enhanced statistics with kcache data.
|
|
16
16
|
* Joins pg_stat_statements with pg_stat_kcache for full picture.
|
|
17
17
|
*/
|
|
18
|
-
export const
|
|
18
|
+
export const KcacheQueryStatsSchemaBase = z.object({
|
|
19
19
|
limit: z
|
|
20
20
|
.number()
|
|
21
21
|
.optional()
|
|
22
|
-
.describe("Maximum number of queries to return (default:
|
|
22
|
+
.describe("Maximum number of queries to return (default: 20)"),
|
|
23
23
|
orderBy: z
|
|
24
|
-
.
|
|
24
|
+
.string()
|
|
25
25
|
.optional()
|
|
26
|
-
.describe("Order results by metric (default: total_time)"),
|
|
26
|
+
.describe("Order results by metric (default: total_time). Valid: total_time, cpu_time, reads, writes"),
|
|
27
27
|
minCalls: z.number().optional().describe("Minimum call count to include"),
|
|
28
28
|
queryPreviewLength: z
|
|
29
29
|
.number()
|
|
30
30
|
.optional()
|
|
31
31
|
.describe("Characters for query preview (default: 100, max: 500, 0 for full)"),
|
|
32
|
-
})
|
|
32
|
+
});
|
|
33
|
+
export const KcacheQueryStatsSchema = z.preprocess(normalizeOptionalParams, KcacheQueryStatsSchemaBase);
|
|
33
34
|
/**
|
|
34
35
|
* Schema for top resource consumers query.
|
|
35
36
|
*/
|
|
@@ -42,19 +43,54 @@ export const KcacheTopConsumersSchema = z.object({
|
|
|
42
43
|
.optional()
|
|
43
44
|
.describe("Number of top queries to return (default: 10)"),
|
|
44
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
|
+
});
|
|
45
80
|
/**
|
|
46
81
|
* Schema for database-level aggregation.
|
|
47
82
|
*/
|
|
48
|
-
export const
|
|
83
|
+
export const KcacheDatabaseStatsSchemaBase = z.object({
|
|
49
84
|
database: z
|
|
50
85
|
.string()
|
|
51
86
|
.optional()
|
|
52
87
|
.describe("Database name (current database if omitted)"),
|
|
53
|
-
})
|
|
88
|
+
});
|
|
89
|
+
export const KcacheDatabaseStatsSchema = z.preprocess(normalizeOptionalParams, KcacheDatabaseStatsSchemaBase);
|
|
54
90
|
/**
|
|
55
91
|
* Schema for identifying resource-bound queries.
|
|
56
92
|
*/
|
|
57
|
-
export const
|
|
93
|
+
export const KcacheResourceAnalysisSchemaBase = z.object({
|
|
58
94
|
queryId: z
|
|
59
95
|
.string()
|
|
60
96
|
.optional()
|
|
@@ -66,13 +102,14 @@ export const KcacheResourceAnalysisSchema = z.preprocess(normalizeOptionalParams
|
|
|
66
102
|
limit: z
|
|
67
103
|
.number()
|
|
68
104
|
.optional()
|
|
69
|
-
.describe("Maximum number of queries to return (default:
|
|
105
|
+
.describe("Maximum number of queries to return (default: 20)"),
|
|
70
106
|
minCalls: z.number().optional().describe("Minimum call count to include"),
|
|
71
107
|
queryPreviewLength: z
|
|
72
108
|
.number()
|
|
73
109
|
.optional()
|
|
74
110
|
.describe("Characters for query preview (default: 100, max: 500, 0 for full)"),
|
|
75
|
-
})
|
|
111
|
+
});
|
|
112
|
+
export const KcacheResourceAnalysisSchema = z.preprocess(normalizeOptionalParams, KcacheResourceAnalysisSchemaBase);
|
|
76
113
|
// =============================================================================
|
|
77
114
|
// citext Schemas
|
|
78
115
|
// =============================================================================
|
|
@@ -183,7 +220,7 @@ export const CitextAnalyzeCandidatesSchemaBase = z.object({
|
|
|
183
220
|
* Schema for analyzing candidate columns for citext conversion.
|
|
184
221
|
* Preprocesses to handle empty/null params.
|
|
185
222
|
*/
|
|
186
|
-
export const CitextAnalyzeCandidatesSchema = z.preprocess(normalizeOptionalParams, CitextAnalyzeCandidatesSchemaBase);
|
|
223
|
+
export const CitextAnalyzeCandidatesSchema = z.preprocess((input) => preprocessCitextTableParams(normalizeOptionalParams(input)), CitextAnalyzeCandidatesSchemaBase);
|
|
187
224
|
/**
|
|
188
225
|
* Base schema for MCP visibility (shows all parameters including aliases).
|
|
189
226
|
*/
|
|
@@ -449,12 +486,13 @@ export const LtreeMatchSchema = z.preprocess((input) => {
|
|
|
449
486
|
/**
|
|
450
487
|
* Schema for listing ltree columns in the database.
|
|
451
488
|
*/
|
|
452
|
-
export const
|
|
489
|
+
export const LtreeListColumnsSchemaBase = z.object({
|
|
453
490
|
schema: z
|
|
454
491
|
.string()
|
|
455
492
|
.optional()
|
|
456
493
|
.describe("Schema name to filter (all schemas if omitted)"),
|
|
457
|
-
})
|
|
494
|
+
});
|
|
495
|
+
export const LtreeListColumnsSchema = z.preprocess(normalizeOptionalParams, LtreeListColumnsSchemaBase);
|
|
458
496
|
/**
|
|
459
497
|
* Schema for converting a text column to ltree.
|
|
460
498
|
* Accepts 'tableName'/'name' as aliases for 'table', 'col' as alias for 'column'.
|
|
@@ -480,6 +518,15 @@ export const LtreeIndexSchema = z.preprocess(preprocessLtreeTableParams, z.objec
|
|
|
480
518
|
// =============================================================================
|
|
481
519
|
// pgcrypto Schemas
|
|
482
520
|
// =============================================================================
|
|
521
|
+
/**
|
|
522
|
+
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
523
|
+
* Valid algorithm values described in text for MCP clients.
|
|
524
|
+
*/
|
|
525
|
+
export const PgcryptoHashSchemaBase = z.object({
|
|
526
|
+
data: z.string().describe("Data to hash"),
|
|
527
|
+
algorithm: z.string().describe("Hash algorithm"),
|
|
528
|
+
encoding: z.string().optional().describe("Output encoding (default: hex)"),
|
|
529
|
+
});
|
|
483
530
|
/**
|
|
484
531
|
* Schema for hashing data with digest().
|
|
485
532
|
*/
|
|
@@ -493,6 +540,15 @@ export const PgcryptoHashSchema = z.object({
|
|
|
493
540
|
.optional()
|
|
494
541
|
.describe("Output encoding (default: hex)"),
|
|
495
542
|
});
|
|
543
|
+
/**
|
|
544
|
+
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
545
|
+
*/
|
|
546
|
+
export const PgcryptoHmacSchemaBase = z.object({
|
|
547
|
+
data: z.string().describe("Data to authenticate"),
|
|
548
|
+
key: z.string().describe("Secret key for HMAC"),
|
|
549
|
+
algorithm: z.string().describe("Hash algorithm"),
|
|
550
|
+
encoding: z.string().optional().describe("Output encoding (default: hex)"),
|
|
551
|
+
});
|
|
496
552
|
/**
|
|
497
553
|
* Schema for HMAC authentication.
|
|
498
554
|
*/
|
|
@@ -562,6 +618,13 @@ export const PgcryptoDecryptSchema = PgcryptoDecryptSchemaBase.transform((data)
|
|
|
562
618
|
.refine((data) => data.password !== undefined, {
|
|
563
619
|
message: "password (or key alias) is required",
|
|
564
620
|
});
|
|
621
|
+
/**
|
|
622
|
+
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
623
|
+
*/
|
|
624
|
+
export const PgcryptoRandomBytesSchemaBase = z.object({
|
|
625
|
+
length: z.number().describe("Number of random bytes to generate (1-1024)"),
|
|
626
|
+
encoding: z.string().optional().describe("Output encoding (default: hex)"),
|
|
627
|
+
});
|
|
565
628
|
/**
|
|
566
629
|
* Schema for generating random bytes.
|
|
567
630
|
*/
|
|
@@ -576,6 +639,18 @@ export const PgcryptoRandomBytesSchema = z.object({
|
|
|
576
639
|
.optional()
|
|
577
640
|
.describe("Output encoding (default: hex)"),
|
|
578
641
|
});
|
|
642
|
+
/**
|
|
643
|
+
* Base schema for MCP visibility — shows all parameters with relaxed validation.
|
|
644
|
+
*/
|
|
645
|
+
export const PgcryptoGenSaltSchemaBase = z.object({
|
|
646
|
+
type: z
|
|
647
|
+
.string()
|
|
648
|
+
.describe("Salt type: bf (bcrypt, recommended), md5, xdes, or des"),
|
|
649
|
+
iterations: z
|
|
650
|
+
.number()
|
|
651
|
+
.optional()
|
|
652
|
+
.describe("Iteration count (for bf: 4-31, for xdes: odd 1-16777215)"),
|
|
653
|
+
});
|
|
579
654
|
/**
|
|
580
655
|
* Schema for generating password salt.
|
|
581
656
|
*/
|
|
@@ -617,13 +692,16 @@ export const KcacheCreateExtensionOutputSchema = z
|
|
|
617
692
|
*/
|
|
618
693
|
export const KcacheQueryStatsOutputSchema = z
|
|
619
694
|
.object({
|
|
695
|
+
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
620
696
|
queries: z
|
|
621
697
|
.array(z.record(z.string(), z.unknown()))
|
|
698
|
+
.optional()
|
|
622
699
|
.describe("Query statistics with CPU/IO metrics"),
|
|
623
|
-
count: z.number().describe("Number of queries returned"),
|
|
624
|
-
orderBy: z.string().describe("Order by metric"),
|
|
625
|
-
truncated: z.boolean().describe("Results were truncated"),
|
|
626
|
-
totalCount: z.number().describe("Total available count"),
|
|
700
|
+
count: z.number().optional().describe("Number of queries returned"),
|
|
701
|
+
orderBy: z.string().optional().describe("Order by metric"),
|
|
702
|
+
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
703
|
+
totalCount: z.number().optional().describe("Total available count"),
|
|
704
|
+
error: z.string().optional().describe("Error message"),
|
|
627
705
|
})
|
|
628
706
|
.describe("Query statistics with OS-level metrics");
|
|
629
707
|
/**
|
|
@@ -631,13 +709,16 @@ export const KcacheQueryStatsOutputSchema = z
|
|
|
631
709
|
*/
|
|
632
710
|
export const KcacheTopCpuOutputSchema = z
|
|
633
711
|
.object({
|
|
712
|
+
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
634
713
|
topCpuQueries: z
|
|
635
714
|
.array(z.record(z.string(), z.unknown()))
|
|
715
|
+
.optional()
|
|
636
716
|
.describe("Top CPU-consuming queries"),
|
|
637
|
-
count: z.number().describe("Number of queries returned"),
|
|
638
|
-
description: z.string().describe("Result description"),
|
|
639
|
-
truncated: z.boolean().describe("Results were truncated"),
|
|
640
|
-
totalCount: z.number().describe("Total available count"),
|
|
717
|
+
count: z.number().optional().describe("Number of queries returned"),
|
|
718
|
+
description: z.string().optional().describe("Result description"),
|
|
719
|
+
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
720
|
+
totalCount: z.number().optional().describe("Total available count"),
|
|
721
|
+
error: z.string().optional().describe("Error message"),
|
|
641
722
|
})
|
|
642
723
|
.describe("Top CPU-consuming queries result");
|
|
643
724
|
/**
|
|
@@ -645,14 +726,20 @@ export const KcacheTopCpuOutputSchema = z
|
|
|
645
726
|
*/
|
|
646
727
|
export const KcacheTopIoOutputSchema = z
|
|
647
728
|
.object({
|
|
729
|
+
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
648
730
|
topIoQueries: z
|
|
649
731
|
.array(z.record(z.string(), z.unknown()))
|
|
732
|
+
.optional()
|
|
650
733
|
.describe("Top I/O-consuming queries"),
|
|
651
|
-
count: z.number().describe("Number of queries returned"),
|
|
652
|
-
ioType: z
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
734
|
+
count: z.number().optional().describe("Number of queries returned"),
|
|
735
|
+
ioType: z
|
|
736
|
+
.enum(["reads", "writes", "both"])
|
|
737
|
+
.optional()
|
|
738
|
+
.describe("I/O type ranked by"),
|
|
739
|
+
description: z.string().optional().describe("Result description"),
|
|
740
|
+
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
741
|
+
totalCount: z.number().optional().describe("Total available count"),
|
|
742
|
+
error: z.string().optional().describe("Error message"),
|
|
656
743
|
})
|
|
657
744
|
.describe("Top I/O-consuming queries result");
|
|
658
745
|
/**
|
|
@@ -660,10 +747,13 @@ export const KcacheTopIoOutputSchema = z
|
|
|
660
747
|
*/
|
|
661
748
|
export const KcacheDatabaseStatsOutputSchema = z
|
|
662
749
|
.object({
|
|
750
|
+
success: z.boolean().optional().describe("Whether query succeeded"),
|
|
663
751
|
databaseStats: z
|
|
664
752
|
.array(z.record(z.string(), z.unknown()))
|
|
753
|
+
.optional()
|
|
665
754
|
.describe("Database-level statistics"),
|
|
666
|
-
count: z.number().describe("Number of databases"),
|
|
755
|
+
count: z.number().optional().describe("Number of databases"),
|
|
756
|
+
error: z.string().optional().describe("Error message"),
|
|
667
757
|
})
|
|
668
758
|
.describe("Database-level aggregated statistics");
|
|
669
759
|
/**
|
|
@@ -671,10 +761,12 @@ export const KcacheDatabaseStatsOutputSchema = z
|
|
|
671
761
|
*/
|
|
672
762
|
export const KcacheResourceAnalysisOutputSchema = z
|
|
673
763
|
.object({
|
|
764
|
+
success: z.boolean().optional().describe("Whether analysis succeeded"),
|
|
674
765
|
queries: z
|
|
675
766
|
.array(z.record(z.string(), z.unknown()))
|
|
767
|
+
.optional()
|
|
676
768
|
.describe("Analyzed queries with resource classification"),
|
|
677
|
-
count: z.number().describe("Number of queries analyzed"),
|
|
769
|
+
count: z.number().optional().describe("Number of queries analyzed"),
|
|
678
770
|
summary: z
|
|
679
771
|
.object({
|
|
680
772
|
cpuBound: z.number().describe("CPU-bound query count"),
|
|
@@ -682,10 +774,12 @@ export const KcacheResourceAnalysisOutputSchema = z
|
|
|
682
774
|
balanced: z.number().describe("Balanced query count"),
|
|
683
775
|
threshold: z.number().describe("Classification threshold"),
|
|
684
776
|
})
|
|
777
|
+
.optional()
|
|
685
778
|
.describe("Resource classification summary"),
|
|
686
|
-
recommendations: z.array(z.string()).describe("Recommendations"),
|
|
687
|
-
truncated: z.boolean().describe("Results were truncated"),
|
|
688
|
-
totalCount: z.number().describe("Total available count"),
|
|
779
|
+
recommendations: z.array(z.string()).optional().describe("Recommendations"),
|
|
780
|
+
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
781
|
+
totalCount: z.number().optional().describe("Total available count"),
|
|
782
|
+
error: z.string().optional().describe("Error message"),
|
|
689
783
|
})
|
|
690
784
|
.describe("Resource classification analysis result");
|
|
691
785
|
/**
|
|
@@ -694,8 +788,9 @@ export const KcacheResourceAnalysisOutputSchema = z
|
|
|
694
788
|
export const KcacheResetOutputSchema = z
|
|
695
789
|
.object({
|
|
696
790
|
success: z.boolean().describe("Whether reset succeeded"),
|
|
697
|
-
message: z.string().describe("Status message"),
|
|
698
|
-
note: z.string().describe("Additional note"),
|
|
791
|
+
message: z.string().optional().describe("Status message"),
|
|
792
|
+
note: z.string().optional().describe("Additional note"),
|
|
793
|
+
error: z.string().optional().describe("Error message"),
|
|
699
794
|
})
|
|
700
795
|
.describe("pg_stat_kcache reset result");
|
|
701
796
|
// ============================================================================
|
|
@@ -762,12 +857,14 @@ export const CitextListColumnsOutputSchema = z
|
|
|
762
857
|
*/
|
|
763
858
|
export const CitextAnalyzeCandidatesOutputSchema = z
|
|
764
859
|
.object({
|
|
860
|
+
success: z.boolean().optional().describe("Whether analysis succeeded"),
|
|
765
861
|
candidates: z
|
|
766
862
|
.array(z.record(z.string(), z.unknown()))
|
|
863
|
+
.optional()
|
|
767
864
|
.describe("Candidate columns"),
|
|
768
|
-
count: z.number().describe("Number of candidates returned"),
|
|
769
|
-
totalCount: z.number().describe("Total available count"),
|
|
770
|
-
truncated: z.boolean().describe("Results were truncated"),
|
|
865
|
+
count: z.number().optional().describe("Number of candidates returned"),
|
|
866
|
+
totalCount: z.number().optional().describe("Total available count"),
|
|
867
|
+
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
771
868
|
limit: z.number().optional().describe("Limit applied"),
|
|
772
869
|
table: z.string().optional().describe("Table filter applied"),
|
|
773
870
|
schema: z.string().optional().describe("Schema filter applied"),
|
|
@@ -776,13 +873,18 @@ export const CitextAnalyzeCandidatesOutputSchema = z
|
|
|
776
873
|
highConfidence: z.number().describe("High confidence count"),
|
|
777
874
|
mediumConfidence: z.number().describe("Medium confidence count"),
|
|
778
875
|
})
|
|
876
|
+
.optional()
|
|
779
877
|
.describe("Confidence summary"),
|
|
780
|
-
recommendation: z.string().describe("Recommendation"),
|
|
878
|
+
recommendation: z.string().optional().describe("Recommendation"),
|
|
781
879
|
excludedSchemas: z
|
|
782
880
|
.array(z.string())
|
|
783
881
|
.optional()
|
|
784
882
|
.describe("Excluded schemas"),
|
|
785
|
-
patternsUsed: z
|
|
883
|
+
patternsUsed: z
|
|
884
|
+
.array(z.string())
|
|
885
|
+
.optional()
|
|
886
|
+
.describe("Search patterns used"),
|
|
887
|
+
error: z.string().optional().describe("Error message"),
|
|
786
888
|
})
|
|
787
889
|
.describe("Candidate analysis result");
|
|
788
890
|
/**
|
|
@@ -804,7 +906,8 @@ export const CitextCompareOutputSchema = z
|
|
|
804
906
|
*/
|
|
805
907
|
export const CitextSchemaAdvisorOutputSchema = z
|
|
806
908
|
.object({
|
|
807
|
-
|
|
909
|
+
success: z.boolean().optional().describe("Whether analysis succeeded"),
|
|
910
|
+
table: z.string().optional().describe("Analyzed table"),
|
|
808
911
|
recommendations: z
|
|
809
912
|
.array(z.object({
|
|
810
913
|
column: z.string().describe("Column name"),
|
|
@@ -816,6 +919,7 @@ export const CitextSchemaAdvisorOutputSchema = z
|
|
|
816
919
|
confidence: z.enum(["high", "medium", "low"]).describe("Confidence"),
|
|
817
920
|
reason: z.string().describe("Reason for recommendation"),
|
|
818
921
|
}))
|
|
922
|
+
.optional()
|
|
819
923
|
.describe("Column recommendations"),
|
|
820
924
|
summary: z
|
|
821
925
|
.object({
|
|
@@ -824,8 +928,10 @@ export const CitextSchemaAdvisorOutputSchema = z
|
|
|
824
928
|
highConfidence: z.number().describe("High confidence count"),
|
|
825
929
|
alreadyCitext: z.number().describe("Already citext count"),
|
|
826
930
|
})
|
|
931
|
+
.optional()
|
|
827
932
|
.describe("Summary statistics"),
|
|
828
|
-
nextSteps: z.array(z.string()).describe("Suggested next steps"),
|
|
933
|
+
nextSteps: z.array(z.string()).optional().describe("Suggested next steps"),
|
|
934
|
+
error: z.string().optional().describe("Error message"),
|
|
829
935
|
})
|
|
830
936
|
.describe("Schema advisor result");
|
|
831
937
|
// ============================================================================
|
|
@@ -892,13 +998,16 @@ export const LtreeLcaOutputSchema = z
|
|
|
892
998
|
*/
|
|
893
999
|
export const LtreeMatchOutputSchema = z
|
|
894
1000
|
.object({
|
|
895
|
-
|
|
1001
|
+
success: z.boolean().optional().describe("Whether match succeeded"),
|
|
1002
|
+
pattern: z.string().optional().describe("Query pattern"),
|
|
896
1003
|
results: z
|
|
897
1004
|
.array(z.record(z.string(), z.unknown()))
|
|
1005
|
+
.optional()
|
|
898
1006
|
.describe("Matching results"),
|
|
899
|
-
count: z.number().describe("Number of results"),
|
|
1007
|
+
count: z.number().optional().describe("Number of results"),
|
|
900
1008
|
truncated: z.boolean().optional().describe("Results were truncated"),
|
|
901
1009
|
totalCount: z.number().optional().describe("Total available count"),
|
|
1010
|
+
error: z.string().optional().describe("Error message"),
|
|
902
1011
|
})
|
|
903
1012
|
.describe("Pattern match result");
|
|
904
1013
|
/**
|
|
@@ -945,12 +1054,13 @@ export const LtreeConvertColumnOutputSchema = z
|
|
|
945
1054
|
export const LtreeCreateIndexOutputSchema = z
|
|
946
1055
|
.object({
|
|
947
1056
|
success: z.boolean().describe("Whether index was created"),
|
|
948
|
-
message: z.string().describe("Status message"),
|
|
949
|
-
indexName: z.string().describe("Index name"),
|
|
1057
|
+
message: z.string().optional().describe("Status message"),
|
|
1058
|
+
indexName: z.string().optional().describe("Index name"),
|
|
950
1059
|
alreadyExists: z.boolean().optional().describe("Index already existed"),
|
|
951
1060
|
table: z.string().optional().describe("Qualified table name"),
|
|
952
1061
|
column: z.string().optional().describe("Column name"),
|
|
953
1062
|
indexType: z.string().optional().describe("Index type (gist)"),
|
|
1063
|
+
error: z.string().optional().describe("Error message"),
|
|
954
1064
|
})
|
|
955
1065
|
.describe("Index creation result");
|
|
956
1066
|
// ============================================================================
|
|
@@ -971,10 +1081,11 @@ export const PgcryptoCreateExtensionOutputSchema = z
|
|
|
971
1081
|
export const PgcryptoHashOutputSchema = z
|
|
972
1082
|
.object({
|
|
973
1083
|
success: z.boolean().describe("Whether hash succeeded"),
|
|
974
|
-
algorithm: z.string().describe("Hash algorithm used"),
|
|
975
|
-
encoding: z.string().describe("Output encoding"),
|
|
976
|
-
hash: z.string().describe("Hash result"),
|
|
977
|
-
inputLength: z.number().describe("Input data length"),
|
|
1084
|
+
algorithm: z.string().optional().describe("Hash algorithm used"),
|
|
1085
|
+
encoding: z.string().optional().describe("Output encoding"),
|
|
1086
|
+
hash: z.string().optional().describe("Hash result"),
|
|
1087
|
+
inputLength: z.number().optional().describe("Input data length"),
|
|
1088
|
+
error: z.string().optional().describe("Error message"),
|
|
978
1089
|
})
|
|
979
1090
|
.describe("Hash result");
|
|
980
1091
|
/**
|
|
@@ -983,9 +1094,10 @@ export const PgcryptoHashOutputSchema = z
|
|
|
983
1094
|
export const PgcryptoHmacOutputSchema = z
|
|
984
1095
|
.object({
|
|
985
1096
|
success: z.boolean().describe("Whether HMAC succeeded"),
|
|
986
|
-
algorithm: z.string().describe("HMAC algorithm used"),
|
|
987
|
-
encoding: z.string().describe("Output encoding"),
|
|
988
|
-
hmac: z.string().describe("HMAC result"),
|
|
1097
|
+
algorithm: z.string().optional().describe("HMAC algorithm used"),
|
|
1098
|
+
encoding: z.string().optional().describe("Output encoding"),
|
|
1099
|
+
hmac: z.string().optional().describe("HMAC result"),
|
|
1100
|
+
error: z.string().optional().describe("Error message"),
|
|
989
1101
|
})
|
|
990
1102
|
.describe("HMAC result");
|
|
991
1103
|
/**
|
|
@@ -994,8 +1106,9 @@ export const PgcryptoHmacOutputSchema = z
|
|
|
994
1106
|
export const PgcryptoEncryptOutputSchema = z
|
|
995
1107
|
.object({
|
|
996
1108
|
success: z.boolean().describe("Whether encryption succeeded"),
|
|
997
|
-
encrypted: z.string().describe("Encrypted data"),
|
|
998
|
-
encoding: z.string().describe("Output encoding"),
|
|
1109
|
+
encrypted: z.string().optional().describe("Encrypted data"),
|
|
1110
|
+
encoding: z.string().optional().describe("Output encoding"),
|
|
1111
|
+
error: z.string().optional().describe("Error message"),
|
|
999
1112
|
})
|
|
1000
1113
|
.describe("Encryption result");
|
|
1001
1114
|
/**
|
|
@@ -1004,8 +1117,9 @@ export const PgcryptoEncryptOutputSchema = z
|
|
|
1004
1117
|
export const PgcryptoDecryptOutputSchema = z
|
|
1005
1118
|
.object({
|
|
1006
1119
|
success: z.boolean().describe("Whether decryption succeeded"),
|
|
1007
|
-
decrypted: z.string().describe("Decrypted data"),
|
|
1008
|
-
verified: z.boolean().describe("Whether decryption verified"),
|
|
1120
|
+
decrypted: z.string().optional().describe("Decrypted data"),
|
|
1121
|
+
verified: z.boolean().optional().describe("Whether decryption verified"),
|
|
1122
|
+
error: z.string().optional().describe("Error message"),
|
|
1009
1123
|
})
|
|
1010
1124
|
.describe("Decryption result");
|
|
1011
1125
|
/**
|
|
@@ -1014,9 +1128,10 @@ export const PgcryptoDecryptOutputSchema = z
|
|
|
1014
1128
|
export const PgcryptoGenRandomUuidOutputSchema = z
|
|
1015
1129
|
.object({
|
|
1016
1130
|
success: z.boolean().describe("Whether generation succeeded"),
|
|
1017
|
-
uuids: z.array(z.string()).describe("Generated UUIDs"),
|
|
1018
|
-
count: z.number().describe("Number of UUIDs generated"),
|
|
1131
|
+
uuids: z.array(z.string()).optional().describe("Generated UUIDs"),
|
|
1132
|
+
count: z.number().optional().describe("Number of UUIDs generated"),
|
|
1019
1133
|
uuid: z.string().optional().describe("First UUID (for single requests)"),
|
|
1134
|
+
error: z.string().optional().describe("Error message"),
|
|
1020
1135
|
})
|
|
1021
1136
|
.describe("UUID generation result");
|
|
1022
1137
|
/**
|
|
@@ -1025,9 +1140,10 @@ export const PgcryptoGenRandomUuidOutputSchema = z
|
|
|
1025
1140
|
export const PgcryptoGenRandomBytesOutputSchema = z
|
|
1026
1141
|
.object({
|
|
1027
1142
|
success: z.boolean().describe("Whether generation succeeded"),
|
|
1028
|
-
randomBytes: z.string().describe("Random bytes"),
|
|
1029
|
-
length: z.number().describe("Number of bytes"),
|
|
1030
|
-
encoding: z.string().describe("Output encoding"),
|
|
1143
|
+
randomBytes: z.string().optional().describe("Random bytes"),
|
|
1144
|
+
length: z.number().optional().describe("Number of bytes"),
|
|
1145
|
+
encoding: z.string().optional().describe("Output encoding"),
|
|
1146
|
+
error: z.string().optional().describe("Error message"),
|
|
1031
1147
|
})
|
|
1032
1148
|
.describe("Random bytes generation result");
|
|
1033
1149
|
/**
|
|
@@ -1036,8 +1152,9 @@ export const PgcryptoGenRandomBytesOutputSchema = z
|
|
|
1036
1152
|
export const PgcryptoGenSaltOutputSchema = z
|
|
1037
1153
|
.object({
|
|
1038
1154
|
success: z.boolean().describe("Whether salt generation succeeded"),
|
|
1039
|
-
salt: z.string().describe("Generated salt"),
|
|
1040
|
-
type: z.string().describe("Salt type"),
|
|
1155
|
+
salt: z.string().optional().describe("Generated salt"),
|
|
1156
|
+
type: z.string().optional().describe("Salt type"),
|
|
1157
|
+
error: z.string().optional().describe("Error message"),
|
|
1041
1158
|
})
|
|
1042
1159
|
.describe("Salt generation result");
|
|
1043
1160
|
/**
|