@neverinfamous/postgres-mcp 1.2.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.
Files changed (180) hide show
  1. package/README.md +68 -62
  2. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  3. package/dist/adapters/postgresql/PostgresAdapter.js +53 -3
  4. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  5. package/dist/adapters/postgresql/prompts/ltree.js +2 -2
  6. package/dist/adapters/postgresql/prompts/ltree.js.map +1 -1
  7. package/dist/adapters/postgresql/schemas/admin.d.ts +10 -5
  8. package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
  9. package/dist/adapters/postgresql/schemas/admin.js +10 -5
  10. package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
  11. package/dist/adapters/postgresql/schemas/backup.d.ts +8 -4
  12. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
  13. package/dist/adapters/postgresql/schemas/backup.js +11 -4
  14. package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
  15. package/dist/adapters/postgresql/schemas/core.d.ts +53 -19
  16. package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
  17. package/dist/adapters/postgresql/schemas/core.js +61 -17
  18. package/dist/adapters/postgresql/schemas/core.js.map +1 -1
  19. package/dist/adapters/postgresql/schemas/cron.d.ts +51 -32
  20. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
  21. package/dist/adapters/postgresql/schemas/cron.js +64 -44
  22. package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
  23. package/dist/adapters/postgresql/schemas/extensions.d.ts +168 -73
  24. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
  25. package/dist/adapters/postgresql/schemas/extensions.js +177 -60
  26. package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
  27. package/dist/adapters/postgresql/schemas/index.d.ts +5 -5
  28. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  29. package/dist/adapters/postgresql/schemas/index.js +9 -7
  30. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  31. package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -42
  32. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
  33. package/dist/adapters/postgresql/schemas/jsonb.js +101 -30
  34. package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
  35. package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -11
  36. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
  37. package/dist/adapters/postgresql/schemas/monitoring.js +49 -24
  38. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
  39. package/dist/adapters/postgresql/schemas/partitioning.d.ts +5 -4
  40. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
  41. package/dist/adapters/postgresql/schemas/partitioning.js +5 -4
  42. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
  43. package/dist/adapters/postgresql/schemas/performance.d.ts +60 -30
  44. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
  45. package/dist/adapters/postgresql/schemas/performance.js +85 -22
  46. package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
  47. package/dist/adapters/postgresql/schemas/postgis.d.ts +20 -0
  48. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
  49. package/dist/adapters/postgresql/schemas/postgis.js +20 -0
  50. package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
  51. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +35 -23
  52. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
  53. package/dist/adapters/postgresql/schemas/schema-mgmt.js +69 -26
  54. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
  55. package/dist/adapters/postgresql/schemas/stats.d.ts +33 -20
  56. package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
  57. package/dist/adapters/postgresql/schemas/stats.js +36 -20
  58. package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
  59. package/dist/adapters/postgresql/schemas/text-search.d.ts +8 -5
  60. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
  61. package/dist/adapters/postgresql/schemas/text-search.js +11 -4
  62. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
  63. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
  64. package/dist/adapters/postgresql/tools/admin.js +211 -140
  65. package/dist/adapters/postgresql/tools/admin.js.map +1 -1
  66. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
  67. package/dist/adapters/postgresql/tools/backup/dump.js +360 -337
  68. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
  69. package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -1
  70. package/dist/adapters/postgresql/tools/citext.js +221 -163
  71. package/dist/adapters/postgresql/tools/citext.js.map +1 -1
  72. package/dist/adapters/postgresql/tools/core/convenience.d.ts +9 -1
  73. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
  74. package/dist/adapters/postgresql/tools/core/convenience.js +78 -11
  75. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
  76. package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +48 -0
  77. package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -0
  78. package/dist/adapters/postgresql/tools/core/error-helpers.js +256 -0
  79. package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -0
  80. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
  81. package/dist/adapters/postgresql/tools/core/health.js +18 -4
  82. package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
  83. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
  84. package/dist/adapters/postgresql/tools/core/indexes.js +45 -4
  85. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
  86. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
  87. package/dist/adapters/postgresql/tools/core/objects.js +104 -85
  88. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
  89. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
  90. package/dist/adapters/postgresql/tools/core/query.js +100 -42
  91. package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
  92. package/dist/adapters/postgresql/tools/core/schemas.d.ts +51 -25
  93. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
  94. package/dist/adapters/postgresql/tools/core/schemas.js +51 -25
  95. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
  96. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
  97. package/dist/adapters/postgresql/tools/core/tables.js +68 -28
  98. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
  99. package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -1
  100. package/dist/adapters/postgresql/tools/cron.js +274 -179
  101. package/dist/adapters/postgresql/tools/cron.js.map +1 -1
  102. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -1
  103. package/dist/adapters/postgresql/tools/jsonb/advanced.js +372 -284
  104. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -1
  105. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -1
  106. package/dist/adapters/postgresql/tools/jsonb/basic.js +617 -398
  107. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -1
  108. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
  109. package/dist/adapters/postgresql/tools/kcache.js +278 -246
  110. package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
  111. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
  112. package/dist/adapters/postgresql/tools/ltree.js +121 -35
  113. package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
  114. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -1
  115. package/dist/adapters/postgresql/tools/monitoring.js +54 -34
  116. package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
  117. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -1
  118. package/dist/adapters/postgresql/tools/partitioning.js +79 -15
  119. package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
  120. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
  121. package/dist/adapters/postgresql/tools/partman/management.js +11 -4
  122. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
  123. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
  124. package/dist/adapters/postgresql/tools/partman/operations.js +132 -19
  125. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
  126. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
  127. package/dist/adapters/postgresql/tools/performance/analysis.js +264 -160
  128. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
  129. package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -1
  130. package/dist/adapters/postgresql/tools/performance/explain.js +61 -21
  131. package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -1
  132. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
  133. package/dist/adapters/postgresql/tools/performance/monitoring.js +44 -7
  134. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
  135. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
  136. package/dist/adapters/postgresql/tools/performance/optimization.js +92 -81
  137. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
  138. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
  139. package/dist/adapters/postgresql/tools/performance/stats.js +124 -36
  140. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
  141. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
  142. package/dist/adapters/postgresql/tools/pgcrypto.js +244 -89
  143. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
  144. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
  145. package/dist/adapters/postgresql/tools/postgis/advanced.js +285 -222
  146. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
  147. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
  148. package/dist/adapters/postgresql/tools/postgis/basic.js +359 -249
  149. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
  150. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -1
  151. package/dist/adapters/postgresql/tools/postgis/standalone.js +135 -51
  152. package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -1
  153. package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
  154. package/dist/adapters/postgresql/tools/schema.js +504 -231
  155. package/dist/adapters/postgresql/tools/schema.js.map +1 -1
  156. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
  157. package/dist/adapters/postgresql/tools/stats/advanced.js +515 -476
  158. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
  159. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
  160. package/dist/adapters/postgresql/tools/stats/basic.js +302 -293
  161. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
  162. package/dist/adapters/postgresql/tools/text.d.ts.map +1 -1
  163. package/dist/adapters/postgresql/tools/text.js +392 -218
  164. package/dist/adapters/postgresql/tools/text.js.map +1 -1
  165. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  166. package/dist/adapters/postgresql/tools/transactions.js +157 -50
  167. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  168. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
  169. package/dist/adapters/postgresql/tools/vector/advanced.js +18 -0
  170. package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
  171. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
  172. package/dist/adapters/postgresql/tools/vector/basic.js +100 -53
  173. package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
  174. package/dist/codemode/api.js +1 -1
  175. package/dist/codemode/api.js.map +1 -1
  176. package/dist/constants/ServerInstructions.d.ts +1 -1
  177. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  178. package/dist/constants/ServerInstructions.js +45 -7
  179. package/dist/constants/ServerInstructions.js.map +1 -1
  180. package/package.json +9 -5
@@ -1 +1 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/core/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/core/tables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAyB9E;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAWvE"}
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AA6B9E;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAWvE"}
@@ -7,10 +7,11 @@
7
7
  * pg_cron enables scheduling of SQL commands using familiar cron syntax.
8
8
  * Supports standard cron (minute granularity) and interval scheduling.
9
9
  */
10
- import { z } from "zod";
10
+ import { z, ZodError } from "zod";
11
11
  import { readOnly, write, destructive } from "../../../utils/annotations.js";
12
12
  import { getToolIcons } from "../../../utils/icons.js";
13
- import { CronScheduleSchema, CronScheduleSchemaBase, CronScheduleInDatabaseSchema, CronScheduleInDatabaseSchemaBase, CronAlterJobSchema, CronUnscheduleSchema, CronJobRunDetailsSchema, CronCleanupHistorySchema, CronCleanupHistorySchemaBase,
13
+ import { formatPostgresError } from "./core/error-helpers.js";
14
+ import { CronScheduleSchema, CronScheduleSchemaBase, CronScheduleInDatabaseSchema, CronScheduleInDatabaseSchemaBase, CronAlterJobSchemaBase, CronAlterJobSchema, CronUnscheduleSchemaBase, CronUnscheduleSchema, CronJobRunDetailsSchemaBase, CronJobRunDetailsSchema, CronCleanupHistorySchema, CronCleanupHistorySchemaBase,
14
15
  // Output schemas
15
16
  CronCreateExtensionOutputSchema, CronScheduleOutputSchema, CronScheduleInDatabaseOutputSchema, CronUnscheduleOutputSchema, CronAlterJobOutputSchema, CronListJobsOutputSchema, CronJobRunDetailsOutputSchema, CronCleanupHistoryOutputSchema, } from "../schemas/index.js";
16
17
  /**
@@ -61,31 +62,45 @@ or interval syntax (e.g., "30 seconds"). Note: pg_cron allows duplicate job name
61
62
  annotations: write("Schedule Cron Job"),
62
63
  icons: getToolIcons("cron", write("Schedule Cron Job")),
63
64
  handler: async (params, _context) => {
64
- // Use transformed schema with alias resolution for validation
65
- const { schedule, command, jobName } = CronScheduleSchema.parse(params);
66
- let sql;
67
- let queryParams;
68
- if (jobName !== undefined) {
69
- sql = "SELECT cron.schedule($1, $2, $3) as jobid";
70
- queryParams = [jobName, schedule, command];
65
+ try {
66
+ // Use transformed schema with alias resolution for validation
67
+ const { schedule, command, jobName } = CronScheduleSchema.parse(params);
68
+ let sql;
69
+ let queryParams;
70
+ if (jobName !== undefined) {
71
+ sql = "SELECT cron.schedule($1, $2, $3) as jobid";
72
+ queryParams = [jobName, schedule, command];
73
+ }
74
+ else {
75
+ sql = "SELECT cron.schedule($1, $2) as jobid";
76
+ queryParams = [schedule, command];
77
+ }
78
+ const result = await adapter.executeQuery(sql, queryParams);
79
+ const jobId = result.rows?.[0]?.["jobid"];
80
+ return {
81
+ success: true,
82
+ jobId,
83
+ jobName: jobName ?? null,
84
+ schedule,
85
+ command,
86
+ message: `Job scheduled with ID ${String(jobId)}`,
87
+ hint: jobName
88
+ ? "Use pg_cron_list_jobs to verify job was created with expected name"
89
+ : undefined,
90
+ };
71
91
  }
72
- else {
73
- sql = "SELECT cron.schedule($1, $2) as jobid";
74
- queryParams = [schedule, command];
92
+ catch (error) {
93
+ if (error instanceof ZodError) {
94
+ return {
95
+ success: false,
96
+ error: error.issues.map((e) => e.message).join("; "),
97
+ };
98
+ }
99
+ return {
100
+ success: false,
101
+ error: formatPostgresError(error, { tool: "pg_cron_schedule" }),
102
+ };
75
103
  }
76
- const result = await adapter.executeQuery(sql, queryParams);
77
- const jobId = result.rows?.[0]?.["jobid"];
78
- return {
79
- success: true,
80
- jobId,
81
- jobName: jobName ?? null,
82
- schedule,
83
- command,
84
- message: `Job scheduled with ID ${String(jobId)}`,
85
- hint: jobName
86
- ? "Use pg_cron_list_jobs to verify job was created with expected name"
87
- : undefined,
88
- };
89
104
  },
90
105
  };
91
106
  }
@@ -104,31 +119,47 @@ maintenance tasks. Returns the job ID.`,
104
119
  annotations: write("Schedule Cron in Database"),
105
120
  icons: getToolIcons("cron", write("Schedule Cron in Database")),
106
121
  handler: async (params, _context) => {
107
- // Use transformed schema with alias resolution for validation
108
- const { jobName, schedule, command, database, username, active } = CronScheduleInDatabaseSchema.parse(params);
109
- const activeVal = active ?? true;
110
- const sql = `SELECT cron.schedule_in_database($1, $2, $3, $4, $5, $6) as jobid`;
111
- const queryParams = [
112
- jobName,
113
- schedule,
114
- command,
115
- database,
116
- username ?? null,
117
- activeVal,
118
- ];
119
- const result = await adapter.executeQuery(sql, queryParams);
120
- const jobId = result.rows?.[0]?.["jobid"];
121
- return {
122
- success: true,
123
- jobId,
124
- jobName,
125
- schedule,
126
- command,
127
- database,
128
- username: username ?? null,
129
- active: activeVal,
130
- message: `Job scheduled in database '${database}' with ID ${String(jobId)}`,
131
- };
122
+ try {
123
+ // Use transformed schema with alias resolution for validation
124
+ const { jobName, schedule, command, database, username, active } = CronScheduleInDatabaseSchema.parse(params);
125
+ const activeVal = active ?? true;
126
+ const sql = `SELECT cron.schedule_in_database($1, $2, $3, $4, $5, $6) as jobid`;
127
+ const queryParams = [
128
+ jobName,
129
+ schedule,
130
+ command,
131
+ database,
132
+ username ?? null,
133
+ activeVal,
134
+ ];
135
+ const result = await adapter.executeQuery(sql, queryParams);
136
+ const jobId = result.rows?.[0]?.["jobid"];
137
+ return {
138
+ success: true,
139
+ jobId,
140
+ jobName,
141
+ schedule,
142
+ command,
143
+ database,
144
+ username: username ?? null,
145
+ active: activeVal,
146
+ message: `Job scheduled in database '${database}' with ID ${String(jobId)}`,
147
+ };
148
+ }
149
+ catch (error) {
150
+ if (error instanceof ZodError) {
151
+ return {
152
+ success: false,
153
+ error: error.issues.map((e) => e.message).join("; "),
154
+ };
155
+ }
156
+ return {
157
+ success: false,
158
+ error: formatPostgresError(error, {
159
+ tool: "pg_cron_schedule_in_database",
160
+ }),
161
+ };
162
+ }
132
163
  },
133
164
  };
134
165
  }
@@ -140,65 +171,79 @@ function createCronUnscheduleTool(adapter) {
140
171
  name: "pg_cron_unschedule",
141
172
  description: "Remove a scheduled cron job by its ID or name. If both are provided, jobName takes precedence. Job ID accepts numbers or numeric strings. Works for both active and inactive jobs.",
142
173
  group: "cron",
143
- inputSchema: CronUnscheduleSchema,
174
+ inputSchema: CronUnscheduleSchemaBase,
144
175
  outputSchema: CronUnscheduleOutputSchema,
145
176
  annotations: destructive("Unschedule Cron Job"),
146
177
  icons: getToolIcons("cron", destructive("Unschedule Cron Job")),
147
178
  handler: async (params, _context) => {
148
- const parsed = CronUnscheduleSchema.parse(params);
149
- // Prefer jobName over jobId when both provided
150
- const useJobName = parsed.jobName !== undefined;
151
- const warning = parsed.jobId !== undefined && parsed.jobName !== undefined
152
- ? "Both jobId and jobName provided; using jobName"
153
- : undefined;
154
- // Look up job info before deletion to return complete response
155
- let jobInfo = null;
156
179
  try {
157
- const lookupSql = useJobName
158
- ? "SELECT jobid, jobname FROM cron.job WHERE jobname = $1"
159
- : "SELECT jobid, jobname FROM cron.job WHERE jobid = $1::bigint";
160
- const lookupResult = await adapter.executeQuery(lookupSql, [
161
- useJobName ? parsed.jobName : parsed.jobId,
162
- ]);
163
- if (lookupResult.rows && lookupResult.rows.length > 0) {
164
- const row = lookupResult.rows[0];
165
- jobInfo = {
166
- jobid: Number(row.jobid),
167
- jobname: row.jobname,
168
- };
180
+ const parsed = CronUnscheduleSchema.parse(params);
181
+ // Prefer jobName over jobId when both provided
182
+ const useJobName = parsed.jobName !== undefined;
183
+ const warning = parsed.jobId !== undefined && parsed.jobName !== undefined
184
+ ? "Both jobId and jobName provided; using jobName"
185
+ : undefined;
186
+ // Look up job info before deletion to return complete response
187
+ let jobInfo = null;
188
+ try {
189
+ const lookupSql = useJobName
190
+ ? "SELECT jobid, jobname FROM cron.job WHERE jobname = $1"
191
+ : "SELECT jobid, jobname FROM cron.job WHERE jobid = $1::bigint";
192
+ const lookupResult = await adapter.executeQuery(lookupSql, [
193
+ useJobName ? parsed.jobName : parsed.jobId,
194
+ ]);
195
+ if (lookupResult.rows && lookupResult.rows.length > 0) {
196
+ const row = lookupResult.rows[0];
197
+ jobInfo = {
198
+ jobid: Number(row.jobid),
199
+ jobname: row.jobname,
200
+ };
201
+ }
169
202
  }
203
+ catch {
204
+ // Lookup failed, continue with unschedule attempt
205
+ }
206
+ // Use explicit type casting to ensure correct pg_cron function overload:
207
+ // - cron.unschedule(bigint) works for both active and inactive jobs
208
+ // - cron.unschedule(text) only finds active jobs by name
209
+ let sql;
210
+ let queryParams;
211
+ if (useJobName) {
212
+ sql = "SELECT cron.unschedule($1::text) as removed";
213
+ queryParams = [parsed.jobName];
214
+ }
215
+ else {
216
+ sql = "SELECT cron.unschedule($1::bigint) as removed";
217
+ queryParams = [parsed.jobId];
218
+ }
219
+ const result = await adapter.executeQuery(sql, queryParams);
220
+ const removed = result.rows?.[0]?.["removed"];
221
+ // Return complete job info from lookup
222
+ const resolvedJobId = jobInfo?.jobid ?? parsed.jobId ?? null;
223
+ const resolvedJobName = jobInfo?.jobname ?? parsed.jobName ?? null;
224
+ return {
225
+ success: removed,
226
+ jobId: resolvedJobId,
227
+ jobName: resolvedJobName,
228
+ usedIdentifier: useJobName ? "jobName" : "jobId",
229
+ warning,
230
+ message: removed
231
+ ? `Job ${resolvedJobId !== null ? `ID ${String(resolvedJobId)}` : `"${String(resolvedJobName)}"`} removed successfully`
232
+ : "Job not found",
233
+ };
170
234
  }
171
- catch {
172
- // Lookup failed, continue with unschedule attempt
173
- }
174
- // Use explicit type casting to ensure correct pg_cron function overload:
175
- // - cron.unschedule(bigint) works for both active and inactive jobs
176
- // - cron.unschedule(text) only finds active jobs by name
177
- let sql;
178
- let queryParams;
179
- if (useJobName) {
180
- sql = "SELECT cron.unschedule($1::text) as removed";
181
- queryParams = [parsed.jobName];
182
- }
183
- else {
184
- sql = "SELECT cron.unschedule($1::bigint) as removed";
185
- queryParams = [parsed.jobId];
235
+ catch (error) {
236
+ if (error instanceof ZodError) {
237
+ return {
238
+ success: false,
239
+ error: error.issues.map((e) => e.message).join("; "),
240
+ };
241
+ }
242
+ return {
243
+ success: false,
244
+ error: formatPostgresError(error, { tool: "pg_cron_unschedule" }),
245
+ };
186
246
  }
187
- const result = await adapter.executeQuery(sql, queryParams);
188
- const removed = result.rows?.[0]?.["removed"];
189
- // Return complete job info from lookup
190
- const resolvedJobId = jobInfo?.jobid ?? parsed.jobId ?? null;
191
- const resolvedJobName = jobInfo?.jobname ?? parsed.jobName ?? null;
192
- return {
193
- success: removed,
194
- jobId: resolvedJobId,
195
- jobName: resolvedJobName,
196
- usedIdentifier: useJobName ? "jobName" : "jobId",
197
- warning,
198
- message: removed
199
- ? `Job ${resolvedJobId !== null ? `ID ${String(resolvedJobId)}` : `"${String(resolvedJobName)}"`} removed successfully`
200
- : "Job not found",
201
- };
202
247
  },
203
248
  };
204
249
  }
@@ -211,34 +256,55 @@ function createCronAlterJobTool(adapter) {
211
256
  description: `Modify an existing cron job. Can change schedule, command, database, username,
212
257
  or active status. Only specify the parameters you want to change.`,
213
258
  group: "cron",
214
- inputSchema: CronAlterJobSchema,
259
+ inputSchema: CronAlterJobSchemaBase,
215
260
  outputSchema: CronAlterJobOutputSchema,
216
261
  annotations: write("Alter Cron Job"),
217
262
  icons: getToolIcons("cron", write("Alter Cron Job")),
218
263
  handler: async (params, _context) => {
219
- const { jobId, schedule, command, database, username, active } = CronAlterJobSchema.parse(params);
220
- const sql = `SELECT cron.alter_job($1, $2, $3, $4, $5, $6)`;
221
- const queryParams = [
222
- jobId,
223
- schedule ?? null,
224
- command ?? null,
225
- database ?? null,
226
- username ?? null,
227
- active ?? null,
228
- ];
229
- await adapter.executeQuery(sql, queryParams);
230
- return {
231
- success: true,
232
- jobId,
233
- changes: {
234
- schedule: schedule ?? undefined,
235
- command: command ?? undefined,
236
- database: database ?? undefined,
237
- username: username ?? undefined,
238
- active: active ?? undefined,
239
- },
240
- message: `Job ${String(jobId)} updated successfully`,
241
- };
264
+ let parsedJobId;
265
+ try {
266
+ const { jobId, schedule, command, database, username, active } = CronAlterJobSchema.parse(params);
267
+ parsedJobId = jobId;
268
+ const sql = `SELECT cron.alter_job($1, $2, $3, $4, $5, $6)`;
269
+ const queryParams = [
270
+ jobId,
271
+ schedule ?? null,
272
+ command ?? null,
273
+ database ?? null,
274
+ username ?? null,
275
+ active ?? null,
276
+ ];
277
+ await adapter.executeQuery(sql, queryParams);
278
+ return {
279
+ success: true,
280
+ jobId,
281
+ changes: {
282
+ schedule: schedule ?? undefined,
283
+ command: command ?? undefined,
284
+ database: database ?? undefined,
285
+ username: username ?? undefined,
286
+ active: active ?? undefined,
287
+ },
288
+ message: `Job ${String(jobId)} updated successfully`,
289
+ };
290
+ }
291
+ catch (error) {
292
+ if (error instanceof ZodError) {
293
+ return {
294
+ success: false,
295
+ error: error.issues.map((e) => e.message).join("; "),
296
+ };
297
+ }
298
+ return {
299
+ success: false,
300
+ error: formatPostgresError(error, {
301
+ tool: "pg_cron_alter_job",
302
+ ...(parsedJobId !== undefined && {
303
+ target: String(parsedJobId),
304
+ }),
305
+ }),
306
+ };
307
+ }
242
308
  },
243
309
  };
244
310
  }
@@ -329,36 +395,46 @@ function createCronJobRunDetailsTool(adapter) {
329
395
  description: `View execution history for cron jobs. Shows start/end times, status, and return messages.
330
396
  Useful for monitoring and debugging scheduled jobs.`,
331
397
  group: "cron",
332
- inputSchema: CronJobRunDetailsSchema,
398
+ inputSchema: CronJobRunDetailsSchemaBase,
333
399
  outputSchema: CronJobRunDetailsOutputSchema,
334
400
  annotations: readOnly("Cron Job Run Details"),
335
401
  icons: getToolIcons("cron", readOnly("Cron Job Run Details")),
336
402
  handler: async (params, _context) => {
337
- const { jobId, status, limit } = CronJobRunDetailsSchema.parse(params);
338
- const conditions = [];
339
- const queryParams = [];
340
- let paramIndex = 1;
341
- if (jobId !== undefined) {
342
- conditions.push(`jobid = $${String(paramIndex++)}`);
343
- queryParams.push(jobId);
344
- }
345
- if (status !== undefined) {
346
- conditions.push(`status = $${String(paramIndex++)}`);
347
- queryParams.push(status);
348
- }
349
- const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
350
- // Handle limit: 0 as "no limit" (return all rows), consistent with other AI-optimized tools
351
- const limitVal = limit === 0 ? null : (limit ?? 50);
352
- // Get total count for truncation indicator (only needed when limiting)
353
- let totalCount;
354
- if (limitVal !== null) {
355
- const countSql = `SELECT COUNT(*)::int as total FROM cron.job_run_details ${whereClause}`;
356
- const countResult = await adapter.executeQuery(countSql, queryParams);
357
- totalCount =
358
- countResult.rows?.[0]?.total ?? 0;
359
- }
360
- const limitClause = limitVal !== null ? `LIMIT ${String(limitVal)}` : "";
361
- const sql = `
403
+ try {
404
+ const { jobId, status, limit } = CronJobRunDetailsSchema.parse(params);
405
+ // Handler-level validation for status (relaxed from z.enum to z.string for structured errors)
406
+ const VALID_STATUSES = ["running", "succeeded", "failed"];
407
+ if (status !== undefined && !VALID_STATUSES.includes(status)) {
408
+ return {
409
+ success: false,
410
+ error: `Invalid status "${status}". Valid statuses: ${VALID_STATUSES.join(", ")}`,
411
+ };
412
+ }
413
+ const conditions = [];
414
+ const queryParams = [];
415
+ let paramIndex = 1;
416
+ if (jobId !== undefined) {
417
+ conditions.push(`jobid = $${String(paramIndex++)}`);
418
+ queryParams.push(jobId);
419
+ }
420
+ if (status !== undefined) {
421
+ conditions.push(`status = $${String(paramIndex)}`);
422
+ queryParams.push(status);
423
+ }
424
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
425
+ // Handle limit: 0 as "no limit" (return all rows), consistent with other AI-optimized tools
426
+ const limitVal = limit === 0 ? null : (limit ?? 50);
427
+ // Get total count for truncation indicator (only needed when limiting)
428
+ let totalCount;
429
+ if (limitVal !== null) {
430
+ const countSql = `SELECT COUNT(*)::int as total FROM cron.job_run_details ${whereClause}`;
431
+ const countResult = await adapter.executeQuery(countSql, queryParams);
432
+ totalCount =
433
+ countResult.rows?.[0]?.total ??
434
+ 0;
435
+ }
436
+ const limitClause = limitVal !== null ? `LIMIT ${String(limitVal)}` : "";
437
+ const sql = `
362
438
  SELECT
363
439
  runid,
364
440
  jobid,
@@ -375,34 +451,53 @@ Useful for monitoring and debugging scheduled jobs.`,
375
451
  ORDER BY start_time DESC
376
452
  ${limitClause}
377
453
  `;
378
- const result = await adapter.executeQuery(sql, queryParams);
379
- // Normalize runid and jobid to numbers (PostgreSQL BIGINT may return as strings)
380
- const rows = (result.rows ?? []).map((r) => ({
381
- ...r,
382
- runid: r["runid"] !== null && r["runid"] !== undefined
383
- ? Number(r["runid"])
384
- : null,
385
- jobid: r["jobid"] !== null && r["jobid"] !== undefined
386
- ? Number(r["jobid"])
387
- : null,
388
- }));
389
- const succeeded = rows.filter((r) => r["status"] === "succeeded").length;
390
- const failed = rows.filter((r) => r["status"] === "failed").length;
391
- const running = rows.filter((r) => r["status"] === "running").length;
392
- // Determine if results were truncated (only when limiting)
393
- const truncated = limitVal !== null &&
394
- totalCount !== undefined &&
395
- rows.length < totalCount;
396
- return {
397
- runs: rows,
398
- count: rows.length,
399
- ...(truncated ? { truncated: true, totalCount } : {}),
400
- summary: {
401
- succeeded,
402
- failed,
403
- running,
404
- },
405
- };
454
+ const result = await adapter.executeQuery(sql, queryParams);
455
+ // Normalize runid and jobid to numbers (PostgreSQL BIGINT may return as strings)
456
+ const rows = (result.rows ?? []).map((r) => ({
457
+ ...r,
458
+ runid: r["runid"] !== null && r["runid"] !== undefined
459
+ ? Number(r["runid"])
460
+ : null,
461
+ jobid: r["jobid"] !== null && r["jobid"] !== undefined
462
+ ? Number(r["jobid"])
463
+ : null,
464
+ }));
465
+ const succeeded = rows.filter((r) => r["status"] === "succeeded").length;
466
+ const failed = rows.filter((r) => r["status"] === "failed").length;
467
+ const running = rows.filter((r) => r["status"] === "running").length;
468
+ // Determine if results were truncated (only when limiting)
469
+ const truncated = limitVal !== null &&
470
+ totalCount !== undefined &&
471
+ rows.length < totalCount;
472
+ return {
473
+ runs: rows,
474
+ count: rows.length,
475
+ ...(truncated ? { truncated: true, totalCount } : {}),
476
+ summary: {
477
+ succeeded,
478
+ failed,
479
+ running,
480
+ },
481
+ };
482
+ }
483
+ catch (error) {
484
+ if (error instanceof ZodError) {
485
+ return {
486
+ runs: [],
487
+ count: 0,
488
+ summary: { succeeded: 0, failed: 0, running: 0 },
489
+ error: error.issues.map((e) => e.message).join("; "),
490
+ };
491
+ }
492
+ return {
493
+ runs: [],
494
+ count: 0,
495
+ summary: { succeeded: 0, failed: 0, running: 0 },
496
+ error: formatPostgresError(error, {
497
+ tool: "pg_cron_job_run_details",
498
+ }),
499
+ };
500
+ }
406
501
  },
407
502
  };
408
503
  }