@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.
Files changed (518) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +119 -46
  3. package/dist/__tests__/benchmarks/codemode.bench.js +3 -3
  4. package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -1
  5. package/dist/__tests__/benchmarks/connection-pool.bench.js +3 -3
  6. package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -1
  7. package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts +11 -0
  8. package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts.map +1 -0
  9. package/dist/__tests__/benchmarks/introspection-migration.bench.js +143 -0
  10. package/dist/__tests__/benchmarks/introspection-migration.bench.js.map +1 -0
  11. package/dist/__tests__/benchmarks/resource-prompts.bench.js +0 -64
  12. package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -1
  13. package/dist/__tests__/benchmarks/schema-parsing.bench.js +5 -5
  14. package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -1
  15. package/dist/__tests__/benchmarks/tool-filtering.bench.js +17 -8
  16. package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -1
  17. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  18. package/dist/__tests__/mocks/adapter.js +2 -1
  19. package/dist/__tests__/mocks/adapter.js.map +1 -1
  20. package/dist/adapters/DatabaseAdapter.d.ts +6 -5
  21. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  22. package/dist/adapters/DatabaseAdapter.js +11 -20
  23. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  24. package/dist/adapters/postgresql/PostgresAdapter.d.ts +5 -26
  25. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  26. package/dist/adapters/postgresql/PostgresAdapter.js +31 -526
  27. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  28. package/dist/adapters/postgresql/prompts/index.js +1 -1
  29. package/dist/adapters/postgresql/prompts/index.js.map +1 -1
  30. package/dist/adapters/postgresql/resources/index.d.ts +1 -1
  31. package/dist/adapters/postgresql/resources/index.js +3 -3
  32. package/dist/adapters/postgresql/resources/index.js.map +1 -1
  33. package/dist/adapters/postgresql/schema-operations.d.ts +71 -0
  34. package/dist/adapters/postgresql/schema-operations.d.ts.map +1 -0
  35. package/dist/adapters/postgresql/schema-operations.js +561 -0
  36. package/dist/adapters/postgresql/schema-operations.js.map +1 -0
  37. package/dist/adapters/postgresql/schemas/admin.d.ts +4 -4
  38. package/dist/adapters/postgresql/schemas/admin.js +4 -4
  39. package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
  40. package/dist/adapters/postgresql/schemas/backup.d.ts +2 -2
  41. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
  42. package/dist/adapters/postgresql/schemas/backup.js +1 -3
  43. package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
  44. package/dist/adapters/postgresql/schemas/core/index.d.ts +6 -0
  45. package/dist/adapters/postgresql/schemas/core/index.d.ts.map +1 -0
  46. package/dist/adapters/postgresql/schemas/core/index.js +6 -0
  47. package/dist/adapters/postgresql/schemas/core/index.js.map +1 -0
  48. package/dist/adapters/postgresql/schemas/{core.d.ts → core/queries.d.ts} +16 -171
  49. package/dist/adapters/postgresql/schemas/core/queries.d.ts.map +1 -0
  50. package/dist/adapters/postgresql/schemas/{core.js → core/queries.js} +5 -213
  51. package/dist/adapters/postgresql/schemas/core/queries.js.map +1 -0
  52. package/dist/adapters/postgresql/schemas/core/transactions.d.ts +149 -0
  53. package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -0
  54. package/dist/adapters/postgresql/schemas/core/transactions.js +239 -0
  55. package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -0
  56. package/dist/adapters/postgresql/schemas/cron.d.ts +12 -12
  57. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
  58. package/dist/adapters/postgresql/schemas/cron.js +38 -10
  59. package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
  60. package/dist/adapters/postgresql/schemas/extensions/citext.d.ts +222 -0
  61. package/dist/adapters/postgresql/schemas/extensions/citext.d.ts.map +1 -0
  62. package/dist/adapters/postgresql/schemas/extensions/citext.js +306 -0
  63. package/dist/adapters/postgresql/schemas/extensions/citext.js.map +1 -0
  64. package/dist/adapters/postgresql/schemas/extensions/index.d.ts +15 -0
  65. package/dist/adapters/postgresql/schemas/extensions/index.d.ts.map +1 -0
  66. package/dist/adapters/postgresql/schemas/extensions/index.js +20 -0
  67. package/dist/adapters/postgresql/schemas/extensions/index.js.map +1 -0
  68. package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts +164 -0
  69. package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts.map +1 -0
  70. package/dist/adapters/postgresql/schemas/extensions/kcache.js +225 -0
  71. package/dist/adapters/postgresql/schemas/extensions/kcache.js.map +1 -0
  72. package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts +253 -0
  73. package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts.map +1 -0
  74. package/dist/adapters/postgresql/schemas/extensions/ltree.js +430 -0
  75. package/dist/adapters/postgresql/schemas/extensions/ltree.js.map +1 -0
  76. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts +251 -0
  77. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts.map +1 -0
  78. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js +294 -0
  79. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js.map +1 -0
  80. package/dist/adapters/postgresql/schemas/extensions/shared.d.ts +10 -0
  81. package/dist/adapters/postgresql/schemas/extensions/shared.d.ts.map +1 -0
  82. package/dist/adapters/postgresql/schemas/extensions/shared.js +15 -0
  83. package/dist/adapters/postgresql/schemas/extensions/shared.js.map +1 -0
  84. package/dist/adapters/postgresql/schemas/index.d.ts +6 -6
  85. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  86. package/dist/adapters/postgresql/schemas/index.js +8 -8
  87. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  88. package/dist/adapters/postgresql/schemas/introspection.d.ts +19 -42
  89. package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -1
  90. package/dist/adapters/postgresql/schemas/introspection.js +72 -27
  91. package/dist/adapters/postgresql/schemas/introspection.js.map +1 -1
  92. package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts +270 -0
  93. package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts.map +1 -0
  94. package/dist/adapters/postgresql/schemas/jsonb/advanced.js +371 -0
  95. package/dist/adapters/postgresql/schemas/jsonb/advanced.js.map +1 -0
  96. package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts +283 -0
  97. package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts.map +1 -0
  98. package/dist/adapters/postgresql/schemas/jsonb/basic.js +456 -0
  99. package/dist/adapters/postgresql/schemas/jsonb/basic.js.map +1 -0
  100. package/dist/adapters/postgresql/schemas/jsonb/index.d.ts +6 -0
  101. package/dist/adapters/postgresql/schemas/jsonb/index.d.ts.map +1 -0
  102. package/dist/adapters/postgresql/schemas/jsonb/index.js +6 -0
  103. package/dist/adapters/postgresql/schemas/jsonb/index.js.map +1 -0
  104. package/dist/adapters/postgresql/schemas/monitoring.d.ts +4 -4
  105. package/dist/adapters/postgresql/schemas/monitoring.js +2 -2
  106. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
  107. package/dist/adapters/postgresql/schemas/partitioning.d.ts +14 -14
  108. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
  109. package/dist/adapters/postgresql/schemas/partitioning.js +64 -46
  110. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
  111. package/dist/adapters/postgresql/schemas/partman.d.ts +16 -14
  112. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
  113. package/dist/adapters/postgresql/schemas/partman.js +9 -9
  114. package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
  115. package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts +429 -0
  116. package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts.map +1 -0
  117. package/dist/adapters/postgresql/schemas/postgis/advanced.js +495 -0
  118. package/dist/adapters/postgresql/schemas/postgis/advanced.js.map +1 -0
  119. package/dist/adapters/postgresql/schemas/{postgis.d.ts → postgis/basic.d.ts} +1 -423
  120. package/dist/adapters/postgresql/schemas/postgis/basic.d.ts.map +1 -0
  121. package/dist/adapters/postgresql/schemas/{postgis.js → postgis/basic.js} +1 -486
  122. package/dist/adapters/postgresql/schemas/postgis/basic.js.map +1 -0
  123. package/dist/adapters/postgresql/schemas/postgis/index.d.ts +6 -0
  124. package/dist/adapters/postgresql/schemas/postgis/index.d.ts.map +1 -0
  125. package/dist/adapters/postgresql/schemas/postgis/index.js +6 -0
  126. package/dist/adapters/postgresql/schemas/postgis/index.js.map +1 -0
  127. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +35 -25
  128. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
  129. package/dist/adapters/postgresql/schemas/schema-mgmt.js +57 -19
  130. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
  131. package/dist/adapters/postgresql/schemas/stats/index.d.ts +6 -0
  132. package/dist/adapters/postgresql/schemas/stats/index.d.ts.map +1 -0
  133. package/dist/adapters/postgresql/schemas/stats/index.js +6 -0
  134. package/dist/adapters/postgresql/schemas/stats/index.js.map +1 -0
  135. package/dist/adapters/postgresql/schemas/stats/input.d.ts +260 -0
  136. package/dist/adapters/postgresql/schemas/stats/input.d.ts.map +1 -0
  137. package/dist/adapters/postgresql/schemas/{stats.js → stats/input.js} +2 -331
  138. package/dist/adapters/postgresql/schemas/stats/input.js.map +1 -0
  139. package/dist/adapters/postgresql/schemas/{stats.d.ts → stats/output.d.ts} +3 -246
  140. package/dist/adapters/postgresql/schemas/stats/output.d.ts.map +1 -0
  141. package/dist/adapters/postgresql/schemas/stats/output.js +334 -0
  142. package/dist/adapters/postgresql/schemas/stats/output.js.map +1 -0
  143. package/dist/adapters/postgresql/schemas/text-search.d.ts +18 -18
  144. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
  145. package/dist/adapters/postgresql/schemas/text-search.js +12 -27
  146. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
  147. package/dist/adapters/postgresql/schemas/vector.d.ts +10 -10
  148. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  149. package/dist/adapters/postgresql/schemas/vector.js +9 -15
  150. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  151. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
  152. package/dist/adapters/postgresql/tools/backup/dump.js +95 -76
  153. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
  154. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
  155. package/dist/adapters/postgresql/tools/backup/planning.js +345 -287
  156. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
  157. package/dist/adapters/postgresql/tools/citext/analysis.d.ts +24 -0
  158. package/dist/adapters/postgresql/tools/citext/analysis.d.ts.map +1 -0
  159. package/dist/adapters/postgresql/tools/{citext.js → citext/analysis.js} +50 -232
  160. package/dist/adapters/postgresql/tools/citext/analysis.js.map +1 -0
  161. package/dist/adapters/postgresql/tools/citext/index.d.ts +15 -0
  162. package/dist/adapters/postgresql/tools/citext/index.d.ts.map +1 -0
  163. package/dist/adapters/postgresql/tools/citext/index.js +23 -0
  164. package/dist/adapters/postgresql/tools/citext/index.js.map +1 -0
  165. package/dist/adapters/postgresql/tools/citext/setup.d.ts +16 -0
  166. package/dist/adapters/postgresql/tools/citext/setup.d.ts.map +1 -0
  167. package/dist/adapters/postgresql/tools/citext/setup.js +193 -0
  168. package/dist/adapters/postgresql/tools/citext/setup.js.map +1 -0
  169. package/dist/adapters/postgresql/tools/codemode/index.js +1 -1
  170. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
  171. package/dist/adapters/postgresql/tools/core/convenience.d.ts +12 -22
  172. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
  173. package/dist/adapters/postgresql/tools/core/convenience.js +100 -210
  174. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
  175. package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +1 -0
  176. package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -1
  177. package/dist/adapters/postgresql/tools/core/error-helpers.js +8 -1
  178. package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -1
  179. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
  180. package/dist/adapters/postgresql/tools/core/health.js +124 -114
  181. package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
  182. package/dist/adapters/postgresql/tools/core/index.d.ts +2 -1
  183. package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -1
  184. package/dist/adapters/postgresql/tools/core/index.js +3 -2
  185. package/dist/adapters/postgresql/tools/core/index.js.map +1 -1
  186. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
  187. package/dist/adapters/postgresql/tools/core/indexes.js +151 -127
  188. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
  189. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
  190. package/dist/adapters/postgresql/tools/core/objects.js +186 -161
  191. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
  192. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
  193. package/dist/adapters/postgresql/tools/core/query.js +37 -25
  194. package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
  195. package/dist/adapters/postgresql/tools/core/schemas.d.ts +6 -3
  196. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
  197. package/dist/adapters/postgresql/tools/core/schemas.js +11 -2
  198. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
  199. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
  200. package/dist/adapters/postgresql/tools/core/tables.js +156 -129
  201. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
  202. package/dist/adapters/postgresql/tools/core/utility.d.ts +26 -0
  203. package/dist/adapters/postgresql/tools/core/utility.d.ts.map +1 -0
  204. package/dist/adapters/postgresql/tools/core/utility.js +174 -0
  205. package/dist/adapters/postgresql/tools/core/utility.js.map +1 -0
  206. package/dist/adapters/postgresql/tools/cron.js +90 -43
  207. package/dist/adapters/postgresql/tools/cron.js.map +1 -1
  208. package/dist/adapters/postgresql/tools/introspection/analysis.d.ts +12 -0
  209. package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -0
  210. package/dist/adapters/postgresql/tools/introspection/analysis.js +605 -0
  211. package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -0
  212. package/dist/adapters/postgresql/tools/introspection/graph.d.ts +55 -0
  213. package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -0
  214. package/dist/adapters/postgresql/tools/introspection/graph.js +621 -0
  215. package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -0
  216. package/dist/adapters/postgresql/tools/introspection/index.d.ts +21 -0
  217. package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -0
  218. package/dist/adapters/postgresql/tools/introspection/index.js +31 -0
  219. package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -0
  220. package/dist/adapters/postgresql/tools/introspection/migration.d.ts +15 -0
  221. package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -0
  222. package/dist/adapters/postgresql/tools/introspection/migration.js +575 -0
  223. package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -0
  224. package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts +20 -0
  225. package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts.map +1 -0
  226. package/dist/adapters/postgresql/tools/jsonb/analytics.js +367 -0
  227. package/dist/adapters/postgresql/tools/jsonb/analytics.js.map +1 -0
  228. package/dist/adapters/postgresql/tools/jsonb/index.d.ts +4 -2
  229. package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -1
  230. package/dist/adapters/postgresql/tools/jsonb/index.js +8 -4
  231. package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -1
  232. package/dist/adapters/postgresql/tools/jsonb/read.d.ts +38 -0
  233. package/dist/adapters/postgresql/tools/jsonb/read.d.ts.map +1 -0
  234. package/dist/adapters/postgresql/tools/jsonb/{basic.js → read.js} +41 -482
  235. package/dist/adapters/postgresql/tools/jsonb/read.js.map +1 -0
  236. package/dist/adapters/postgresql/tools/jsonb/{advanced.d.ts → transform.d.ts} +1 -13
  237. package/dist/adapters/postgresql/tools/jsonb/transform.d.ts.map +1 -0
  238. package/dist/adapters/postgresql/tools/jsonb/{advanced.js → transform.js} +26 -357
  239. package/dist/adapters/postgresql/tools/jsonb/transform.js.map +1 -0
  240. package/dist/adapters/postgresql/tools/jsonb/write.d.ts +14 -0
  241. package/dist/adapters/postgresql/tools/jsonb/write.d.ts.map +1 -0
  242. package/dist/adapters/postgresql/tools/jsonb/write.js +468 -0
  243. package/dist/adapters/postgresql/tools/jsonb/write.js.map +1 -0
  244. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
  245. package/dist/adapters/postgresql/tools/kcache.js +116 -51
  246. package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
  247. package/dist/adapters/postgresql/tools/ltree.js +346 -260
  248. package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
  249. package/dist/adapters/postgresql/tools/migration/index.d.ts +15 -0
  250. package/dist/adapters/postgresql/tools/migration/index.d.ts.map +1 -0
  251. package/dist/adapters/postgresql/tools/migration/index.js +23 -0
  252. package/dist/adapters/postgresql/tools/migration/index.js.map +1 -0
  253. package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts +15 -0
  254. package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts.map +1 -0
  255. package/dist/adapters/postgresql/tools/{monitoring.js → monitoring/analysis.js} +24 -359
  256. package/dist/adapters/postgresql/tools/monitoring/analysis.js.map +1 -0
  257. package/dist/adapters/postgresql/tools/monitoring/basic.d.ts +17 -0
  258. package/dist/adapters/postgresql/tools/monitoring/basic.d.ts.map +1 -0
  259. package/dist/adapters/postgresql/tools/monitoring/basic.js +432 -0
  260. package/dist/adapters/postgresql/tools/monitoring/basic.js.map +1 -0
  261. package/dist/adapters/postgresql/tools/monitoring/index.d.ts +16 -0
  262. package/dist/adapters/postgresql/tools/monitoring/index.d.ts.map +1 -0
  263. package/dist/adapters/postgresql/tools/monitoring/index.js +31 -0
  264. package/dist/adapters/postgresql/tools/monitoring/index.js.map +1 -0
  265. package/dist/adapters/postgresql/tools/partitioning/index.d.ts +15 -0
  266. package/dist/adapters/postgresql/tools/partitioning/index.d.ts.map +1 -0
  267. package/dist/adapters/postgresql/tools/partitioning/index.js +23 -0
  268. package/dist/adapters/postgresql/tools/partitioning/index.js.map +1 -0
  269. package/dist/adapters/postgresql/tools/partitioning/info.d.ts +11 -0
  270. package/dist/adapters/postgresql/tools/partitioning/info.d.ts.map +1 -0
  271. package/dist/adapters/postgresql/tools/partitioning/info.js +302 -0
  272. package/dist/adapters/postgresql/tools/partitioning/info.js.map +1 -0
  273. package/dist/adapters/postgresql/tools/partitioning/management.d.ts +28 -0
  274. package/dist/adapters/postgresql/tools/partitioning/management.d.ts.map +1 -0
  275. package/dist/adapters/postgresql/tools/{partitioning.js → partitioning/management.js} +48 -307
  276. package/dist/adapters/postgresql/tools/partitioning/management.js.map +1 -0
  277. package/dist/adapters/postgresql/tools/partman/helpers.d.ts +29 -0
  278. package/dist/adapters/postgresql/tools/partman/helpers.d.ts.map +1 -0
  279. package/dist/adapters/postgresql/tools/partman/helpers.js +59 -0
  280. package/dist/adapters/postgresql/tools/partman/helpers.js.map +1 -0
  281. package/dist/adapters/postgresql/tools/partman/index.d.ts +2 -1
  282. package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -1
  283. package/dist/adapters/postgresql/tools/partman/index.js +4 -2
  284. package/dist/adapters/postgresql/tools/partman/index.js.map +1 -1
  285. package/dist/adapters/postgresql/tools/partman/maintenance.d.ts +20 -0
  286. package/dist/adapters/postgresql/tools/partman/maintenance.d.ts.map +1 -0
  287. package/dist/adapters/postgresql/tools/partman/maintenance.js +496 -0
  288. package/dist/adapters/postgresql/tools/partman/maintenance.js.map +1 -0
  289. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
  290. package/dist/adapters/postgresql/tools/partman/management.js +438 -383
  291. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
  292. package/dist/adapters/postgresql/tools/partman/operations.d.ts +1 -13
  293. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
  294. package/dist/adapters/postgresql/tools/partman/operations.js +171 -652
  295. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
  296. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
  297. package/dist/adapters/postgresql/tools/performance/analysis.js +69 -42
  298. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
  299. package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts +18 -0
  300. package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts.map +1 -0
  301. package/dist/adapters/postgresql/tools/performance/anomaly-detection.js +533 -0
  302. package/dist/adapters/postgresql/tools/performance/anomaly-detection.js.map +1 -0
  303. package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts +11 -0
  304. package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts.map +1 -0
  305. package/dist/adapters/postgresql/tools/performance/diagnostics.js +332 -0
  306. package/dist/adapters/postgresql/tools/performance/diagnostics.js.map +1 -0
  307. package/dist/adapters/postgresql/tools/performance/index.d.ts +1 -1
  308. package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -1
  309. package/dist/adapters/postgresql/tools/performance/index.js +7 -1
  310. package/dist/adapters/postgresql/tools/performance/index.js.map +1 -1
  311. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
  312. package/dist/adapters/postgresql/tools/performance/monitoring.js +80 -55
  313. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
  314. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
  315. package/dist/adapters/postgresql/tools/performance/optimization.js +18 -11
  316. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
  317. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
  318. package/dist/adapters/postgresql/tools/performance/stats.js +439 -318
  319. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
  320. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
  321. package/dist/adapters/postgresql/tools/pgcrypto.js +45 -77
  322. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
  323. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
  324. package/dist/adapters/postgresql/tools/postgis/basic.js +121 -93
  325. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
  326. package/dist/adapters/postgresql/tools/schema/index.d.ts +16 -0
  327. package/dist/adapters/postgresql/tools/schema/index.d.ts.map +1 -0
  328. package/dist/adapters/postgresql/tools/schema/index.js +32 -0
  329. package/dist/adapters/postgresql/tools/schema/index.js.map +1 -0
  330. package/dist/adapters/postgresql/tools/schema/objects.d.ts +15 -0
  331. package/dist/adapters/postgresql/tools/schema/objects.d.ts.map +1 -0
  332. package/dist/adapters/postgresql/tools/schema/objects.js +378 -0
  333. package/dist/adapters/postgresql/tools/schema/objects.js.map +1 -0
  334. package/dist/adapters/postgresql/tools/schema/views.d.ts +15 -0
  335. package/dist/adapters/postgresql/tools/schema/views.d.ts.map +1 -0
  336. package/dist/adapters/postgresql/tools/{schema.js → schema/views.js} +64 -386
  337. package/dist/adapters/postgresql/tools/schema/views.js.map +1 -0
  338. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
  339. package/dist/adapters/postgresql/tools/stats/advanced.js +1 -218
  340. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
  341. package/dist/adapters/postgresql/tools/stats/math-utils.d.ts +33 -0
  342. package/dist/adapters/postgresql/tools/stats/math-utils.d.ts.map +1 -0
  343. package/dist/adapters/postgresql/tools/stats/math-utils.js +225 -0
  344. package/dist/adapters/postgresql/tools/stats/math-utils.js.map +1 -0
  345. package/dist/adapters/postgresql/tools/text/index.d.ts +16 -0
  346. package/dist/adapters/postgresql/tools/text/index.d.ts.map +1 -0
  347. package/dist/adapters/postgresql/tools/text/index.js +33 -0
  348. package/dist/adapters/postgresql/tools/text/index.js.map +1 -0
  349. package/dist/adapters/postgresql/tools/text/matching.d.ts +17 -0
  350. package/dist/adapters/postgresql/tools/text/matching.d.ts.map +1 -0
  351. package/dist/adapters/postgresql/tools/text/matching.js +565 -0
  352. package/dist/adapters/postgresql/tools/text/matching.js.map +1 -0
  353. package/dist/adapters/postgresql/tools/text/search.d.ts +17 -0
  354. package/dist/adapters/postgresql/tools/text/search.d.ts.map +1 -0
  355. package/dist/adapters/postgresql/tools/text/search.js +653 -0
  356. package/dist/adapters/postgresql/tools/text/search.js.map +1 -0
  357. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  358. package/dist/adapters/postgresql/tools/transactions.js +11 -27
  359. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  360. package/dist/adapters/postgresql/tools/vector/{basic.d.ts → data.d.ts} +10 -8
  361. package/dist/adapters/postgresql/tools/vector/data.d.ts.map +1 -0
  362. package/dist/adapters/postgresql/tools/vector/data.js +540 -0
  363. package/dist/adapters/postgresql/tools/vector/data.js.map +1 -0
  364. package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -1
  365. package/dist/adapters/postgresql/tools/vector/index.js +6 -2
  366. package/dist/adapters/postgresql/tools/vector/index.js.map +1 -1
  367. package/dist/adapters/postgresql/tools/vector/management.d.ts +11 -0
  368. package/dist/adapters/postgresql/tools/vector/management.d.ts.map +1 -0
  369. package/dist/adapters/postgresql/tools/vector/management.js +425 -0
  370. package/dist/adapters/postgresql/tools/vector/management.js.map +1 -0
  371. package/dist/adapters/postgresql/tools/vector/query.d.ts +14 -0
  372. package/dist/adapters/postgresql/tools/vector/query.d.ts.map +1 -0
  373. package/dist/adapters/postgresql/tools/vector/query.js +767 -0
  374. package/dist/adapters/postgresql/tools/vector/query.js.map +1 -0
  375. package/dist/adapters/postgresql/tools/vector/{advanced.d.ts → search-advanced.d.ts} +4 -5
  376. package/dist/adapters/postgresql/tools/vector/search-advanced.d.ts.map +1 -0
  377. package/dist/adapters/postgresql/tools/vector/search-advanced.js +626 -0
  378. package/dist/adapters/postgresql/tools/vector/search-advanced.js.map +1 -0
  379. package/dist/auth/scopes.d.ts.map +1 -1
  380. package/dist/auth/scopes.js +3 -1
  381. package/dist/auth/scopes.js.map +1 -1
  382. package/dist/cli/args.d.ts +3 -2
  383. package/dist/cli/args.d.ts.map +1 -1
  384. package/dist/cli/args.js +4 -3
  385. package/dist/cli/args.js.map +1 -1
  386. package/dist/cli.js +16 -4
  387. package/dist/cli.js.map +1 -1
  388. package/dist/codemode/api/aliases.d.ts +14 -0
  389. package/dist/codemode/api/aliases.d.ts.map +1 -0
  390. package/dist/codemode/api/aliases.js +503 -0
  391. package/dist/codemode/api/aliases.js.map +1 -0
  392. package/dist/codemode/api/group-api.d.ts +23 -0
  393. package/dist/codemode/api/group-api.d.ts.map +1 -0
  394. package/dist/codemode/api/group-api.js +179 -0
  395. package/dist/codemode/api/group-api.js.map +1 -0
  396. package/dist/codemode/{api.d.ts → api/index.d.ts} +5 -4
  397. package/dist/codemode/api/index.d.ts.map +1 -0
  398. package/dist/codemode/api/index.js +195 -0
  399. package/dist/codemode/api/index.js.map +1 -0
  400. package/dist/codemode/api/maps.d.ts +47 -0
  401. package/dist/codemode/api/maps.d.ts.map +1 -0
  402. package/dist/codemode/api/maps.js +529 -0
  403. package/dist/codemode/api/maps.js.map +1 -0
  404. package/dist/codemode/api/normalize.d.ts +13 -0
  405. package/dist/codemode/api/normalize.d.ts.map +1 -0
  406. package/dist/codemode/api/normalize.js +120 -0
  407. package/dist/codemode/api/normalize.js.map +1 -0
  408. package/dist/codemode/index.d.ts +1 -1
  409. package/dist/codemode/index.d.ts.map +1 -1
  410. package/dist/codemode/index.js +1 -1
  411. package/dist/codemode/index.js.map +1 -1
  412. package/dist/codemode/sandbox.d.ts.map +1 -1
  413. package/dist/codemode/sandbox.js +8 -25
  414. package/dist/codemode/sandbox.js.map +1 -1
  415. package/dist/filtering/ToolConstants.d.ts +11 -11
  416. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  417. package/dist/filtering/ToolConstants.js +28 -15
  418. package/dist/filtering/ToolConstants.js.map +1 -1
  419. package/dist/filtering/ToolFilter.d.ts +0 -32
  420. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  421. package/dist/filtering/ToolFilter.js +0 -43
  422. package/dist/filtering/ToolFilter.js.map +1 -1
  423. package/dist/server/McpServer.d.ts +1 -1
  424. package/dist/server/McpServer.d.ts.map +1 -1
  425. package/dist/server/McpServer.js +1 -2
  426. package/dist/server/McpServer.js.map +1 -1
  427. package/dist/transports/http.d.ts +55 -10
  428. package/dist/transports/http.d.ts.map +1 -1
  429. package/dist/transports/http.js +301 -50
  430. package/dist/transports/http.js.map +1 -1
  431. package/dist/types/filtering.d.ts +1 -1
  432. package/dist/types/filtering.d.ts.map +1 -1
  433. package/dist/types/index.d.ts +2 -2
  434. package/dist/types/index.d.ts.map +1 -1
  435. package/dist/types/index.js.map +1 -1
  436. package/dist/types/mcp.d.ts +0 -21
  437. package/dist/types/mcp.d.ts.map +1 -1
  438. package/dist/types/schema.d.ts +0 -79
  439. package/dist/types/schema.d.ts.map +1 -1
  440. package/dist/utils/fts-config.d.ts +0 -6
  441. package/dist/utils/fts-config.d.ts.map +1 -1
  442. package/dist/utils/fts-config.js +1 -1
  443. package/dist/utils/fts-config.js.map +1 -1
  444. package/dist/utils/icons.d.ts.map +1 -1
  445. package/dist/utils/icons.js +5 -0
  446. package/dist/utils/icons.js.map +1 -1
  447. package/dist/utils/identifiers.d.ts.map +1 -1
  448. package/dist/utils/identifiers.js +6 -6
  449. package/dist/utils/identifiers.js.map +1 -1
  450. package/dist/utils/logger.d.ts +6 -6
  451. package/dist/utils/logger.d.ts.map +1 -1
  452. package/dist/utils/logger.js +18 -15
  453. package/dist/utils/logger.js.map +1 -1
  454. package/dist/utils/progress-utils.d.ts +3 -14
  455. package/dist/utils/progress-utils.d.ts.map +1 -1
  456. package/dist/utils/progress-utils.js +2 -21
  457. package/dist/utils/progress-utils.js.map +1 -1
  458. package/dist/utils/version.d.ts +9 -0
  459. package/dist/utils/version.d.ts.map +1 -0
  460. package/dist/utils/version.js +12 -0
  461. package/dist/utils/version.js.map +1 -0
  462. package/dist/utils/where-clause.d.ts +4 -0
  463. package/dist/utils/where-clause.d.ts.map +1 -1
  464. package/dist/utils/where-clause.js +16 -0
  465. package/dist/utils/where-clause.js.map +1 -1
  466. package/package.json +6 -4
  467. package/dist/adapters/postgresql/schemas/core.d.ts.map +0 -1
  468. package/dist/adapters/postgresql/schemas/core.js.map +0 -1
  469. package/dist/adapters/postgresql/schemas/extensions.d.ts +0 -852
  470. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +0 -1
  471. package/dist/adapters/postgresql/schemas/extensions.js +0 -1202
  472. package/dist/adapters/postgresql/schemas/extensions.js.map +0 -1
  473. package/dist/adapters/postgresql/schemas/jsonb.d.ts +0 -541
  474. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +0 -1
  475. package/dist/adapters/postgresql/schemas/jsonb.js +0 -814
  476. package/dist/adapters/postgresql/schemas/jsonb.js.map +0 -1
  477. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +0 -1
  478. package/dist/adapters/postgresql/schemas/postgis.js.map +0 -1
  479. package/dist/adapters/postgresql/schemas/stats.d.ts.map +0 -1
  480. package/dist/adapters/postgresql/schemas/stats.js.map +0 -1
  481. package/dist/adapters/postgresql/tools/citext.d.ts +0 -18
  482. package/dist/adapters/postgresql/tools/citext.d.ts.map +0 -1
  483. package/dist/adapters/postgresql/tools/citext.js.map +0 -1
  484. package/dist/adapters/postgresql/tools/introspection.d.ts +0 -15
  485. package/dist/adapters/postgresql/tools/introspection.d.ts.map +0 -1
  486. package/dist/adapters/postgresql/tools/introspection.js +0 -1682
  487. package/dist/adapters/postgresql/tools/introspection.js.map +0 -1
  488. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +0 -1
  489. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +0 -1
  490. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +0 -20
  491. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +0 -1
  492. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +0 -1
  493. package/dist/adapters/postgresql/tools/monitoring.d.ts +0 -13
  494. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +0 -1
  495. package/dist/adapters/postgresql/tools/monitoring.js.map +0 -1
  496. package/dist/adapters/postgresql/tools/partitioning.d.ts +0 -13
  497. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +0 -1
  498. package/dist/adapters/postgresql/tools/partitioning.js.map +0 -1
  499. package/dist/adapters/postgresql/tools/schema.d.ts +0 -13
  500. package/dist/adapters/postgresql/tools/schema.d.ts.map +0 -1
  501. package/dist/adapters/postgresql/tools/schema.js.map +0 -1
  502. package/dist/adapters/postgresql/tools/text.d.ts +0 -13
  503. package/dist/adapters/postgresql/tools/text.d.ts.map +0 -1
  504. package/dist/adapters/postgresql/tools/text.js +0 -1082
  505. package/dist/adapters/postgresql/tools/text.js.map +0 -1
  506. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +0 -1
  507. package/dist/adapters/postgresql/tools/vector/advanced.js +0 -958
  508. package/dist/adapters/postgresql/tools/vector/advanced.js.map +0 -1
  509. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +0 -1
  510. package/dist/adapters/postgresql/tools/vector/basic.js +0 -1165
  511. package/dist/adapters/postgresql/tools/vector/basic.js.map +0 -1
  512. package/dist/codemode/api.d.ts.map +0 -1
  513. package/dist/codemode/api.js +0 -1544
  514. package/dist/codemode/api.js.map +0 -1
  515. package/dist/utils/promptGenerator.d.ts +0 -20
  516. package/dist/utils/promptGenerator.d.ts.map +0 -1
  517. package/dist/utils/promptGenerator.js +0 -81
  518. 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