@neverinfamous/postgres-mcp 1.0.1

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 (571) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +515 -0
  3. package/dist/__tests__/mocks/adapter.d.ts +80 -0
  4. package/dist/__tests__/mocks/adapter.d.ts.map +1 -0
  5. package/dist/__tests__/mocks/adapter.js +225 -0
  6. package/dist/__tests__/mocks/adapter.js.map +1 -0
  7. package/dist/__tests__/mocks/index.d.ts +11 -0
  8. package/dist/__tests__/mocks/index.d.ts.map +1 -0
  9. package/dist/__tests__/mocks/index.js +11 -0
  10. package/dist/__tests__/mocks/index.js.map +1 -0
  11. package/dist/__tests__/mocks/pool.d.ts +43 -0
  12. package/dist/__tests__/mocks/pool.d.ts.map +1 -0
  13. package/dist/__tests__/mocks/pool.js +71 -0
  14. package/dist/__tests__/mocks/pool.js.map +1 -0
  15. package/dist/adapters/DatabaseAdapter.d.ts +139 -0
  16. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
  17. package/dist/adapters/DatabaseAdapter.js +250 -0
  18. package/dist/adapters/DatabaseAdapter.js.map +1 -0
  19. package/dist/adapters/postgresql/PostgresAdapter.d.ts +119 -0
  20. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -0
  21. package/dist/adapters/postgresql/PostgresAdapter.js +902 -0
  22. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -0
  23. package/dist/adapters/postgresql/index.d.ts +5 -0
  24. package/dist/adapters/postgresql/index.d.ts.map +1 -0
  25. package/dist/adapters/postgresql/index.js +5 -0
  26. package/dist/adapters/postgresql/index.js.map +1 -0
  27. package/dist/adapters/postgresql/prompts/backup.d.ts +8 -0
  28. package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -0
  29. package/dist/adapters/postgresql/prompts/backup.js +132 -0
  30. package/dist/adapters/postgresql/prompts/backup.js.map +1 -0
  31. package/dist/adapters/postgresql/prompts/citext.d.ts +8 -0
  32. package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -0
  33. package/dist/adapters/postgresql/prompts/citext.js +227 -0
  34. package/dist/adapters/postgresql/prompts/citext.js.map +1 -0
  35. package/dist/adapters/postgresql/prompts/extensionSetup.d.ts +8 -0
  36. package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -0
  37. package/dist/adapters/postgresql/prompts/extensionSetup.js +282 -0
  38. package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -0
  39. package/dist/adapters/postgresql/prompts/health.d.ts +8 -0
  40. package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -0
  41. package/dist/adapters/postgresql/prompts/health.js +118 -0
  42. package/dist/adapters/postgresql/prompts/health.js.map +1 -0
  43. package/dist/adapters/postgresql/prompts/index.d.ts +13 -0
  44. package/dist/adapters/postgresql/prompts/index.d.ts.map +1 -0
  45. package/dist/adapters/postgresql/prompts/index.js +308 -0
  46. package/dist/adapters/postgresql/prompts/index.js.map +1 -0
  47. package/dist/adapters/postgresql/prompts/indexTuning.d.ts +8 -0
  48. package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -0
  49. package/dist/adapters/postgresql/prompts/indexTuning.js +130 -0
  50. package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -0
  51. package/dist/adapters/postgresql/prompts/kcache.d.ts +8 -0
  52. package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -0
  53. package/dist/adapters/postgresql/prompts/kcache.js +227 -0
  54. package/dist/adapters/postgresql/prompts/kcache.js.map +1 -0
  55. package/dist/adapters/postgresql/prompts/ltree.d.ts +8 -0
  56. package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -0
  57. package/dist/adapters/postgresql/prompts/ltree.js +286 -0
  58. package/dist/adapters/postgresql/prompts/ltree.js.map +1 -0
  59. package/dist/adapters/postgresql/prompts/partman.d.ts +8 -0
  60. package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -0
  61. package/dist/adapters/postgresql/prompts/partman.js +211 -0
  62. package/dist/adapters/postgresql/prompts/partman.js.map +1 -0
  63. package/dist/adapters/postgresql/prompts/pgcron.d.ts +8 -0
  64. package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -0
  65. package/dist/adapters/postgresql/prompts/pgcron.js +233 -0
  66. package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -0
  67. package/dist/adapters/postgresql/prompts/pgcrypto.d.ts +8 -0
  68. package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -0
  69. package/dist/adapters/postgresql/prompts/pgcrypto.js +299 -0
  70. package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -0
  71. package/dist/adapters/postgresql/prompts/pgvector.d.ts +8 -0
  72. package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -0
  73. package/dist/adapters/postgresql/prompts/pgvector.js +148 -0
  74. package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -0
  75. package/dist/adapters/postgresql/prompts/postgis.d.ts +8 -0
  76. package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -0
  77. package/dist/adapters/postgresql/prompts/postgis.js +200 -0
  78. package/dist/adapters/postgresql/prompts/postgis.js.map +1 -0
  79. package/dist/adapters/postgresql/resources/activity.d.ts +9 -0
  80. package/dist/adapters/postgresql/resources/activity.d.ts.map +1 -0
  81. package/dist/adapters/postgresql/resources/activity.js +118 -0
  82. package/dist/adapters/postgresql/resources/activity.js.map +1 -0
  83. package/dist/adapters/postgresql/resources/capabilities.d.ts +9 -0
  84. package/dist/adapters/postgresql/resources/capabilities.d.ts.map +1 -0
  85. package/dist/adapters/postgresql/resources/capabilities.js +182 -0
  86. package/dist/adapters/postgresql/resources/capabilities.js.map +1 -0
  87. package/dist/adapters/postgresql/resources/cron.d.ts +9 -0
  88. package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -0
  89. package/dist/adapters/postgresql/resources/cron.js +156 -0
  90. package/dist/adapters/postgresql/resources/cron.js.map +1 -0
  91. package/dist/adapters/postgresql/resources/crypto.d.ts +9 -0
  92. package/dist/adapters/postgresql/resources/crypto.d.ts.map +1 -0
  93. package/dist/adapters/postgresql/resources/crypto.js +191 -0
  94. package/dist/adapters/postgresql/resources/crypto.js.map +1 -0
  95. package/dist/adapters/postgresql/resources/extensions.d.ts +9 -0
  96. package/dist/adapters/postgresql/resources/extensions.d.ts.map +1 -0
  97. package/dist/adapters/postgresql/resources/extensions.js +85 -0
  98. package/dist/adapters/postgresql/resources/extensions.js.map +1 -0
  99. package/dist/adapters/postgresql/resources/health.d.ts +9 -0
  100. package/dist/adapters/postgresql/resources/health.d.ts.map +1 -0
  101. package/dist/adapters/postgresql/resources/health.js +185 -0
  102. package/dist/adapters/postgresql/resources/health.js.map +1 -0
  103. package/dist/adapters/postgresql/resources/index.d.ts +40 -0
  104. package/dist/adapters/postgresql/resources/index.d.ts.map +1 -0
  105. package/dist/adapters/postgresql/resources/index.js +87 -0
  106. package/dist/adapters/postgresql/resources/index.js.map +1 -0
  107. package/dist/adapters/postgresql/resources/indexes.d.ts +9 -0
  108. package/dist/adapters/postgresql/resources/indexes.d.ts.map +1 -0
  109. package/dist/adapters/postgresql/resources/indexes.js +130 -0
  110. package/dist/adapters/postgresql/resources/indexes.js.map +1 -0
  111. package/dist/adapters/postgresql/resources/kcache.d.ts +9 -0
  112. package/dist/adapters/postgresql/resources/kcache.d.ts.map +1 -0
  113. package/dist/adapters/postgresql/resources/kcache.js +219 -0
  114. package/dist/adapters/postgresql/resources/kcache.js.map +1 -0
  115. package/dist/adapters/postgresql/resources/locks.d.ts +9 -0
  116. package/dist/adapters/postgresql/resources/locks.d.ts.map +1 -0
  117. package/dist/adapters/postgresql/resources/locks.js +89 -0
  118. package/dist/adapters/postgresql/resources/locks.js.map +1 -0
  119. package/dist/adapters/postgresql/resources/partman.d.ts +9 -0
  120. package/dist/adapters/postgresql/resources/partman.d.ts.map +1 -0
  121. package/dist/adapters/postgresql/resources/partman.js +149 -0
  122. package/dist/adapters/postgresql/resources/partman.js.map +1 -0
  123. package/dist/adapters/postgresql/resources/performance.d.ts +9 -0
  124. package/dist/adapters/postgresql/resources/performance.d.ts.map +1 -0
  125. package/dist/adapters/postgresql/resources/performance.js +170 -0
  126. package/dist/adapters/postgresql/resources/performance.js.map +1 -0
  127. package/dist/adapters/postgresql/resources/pool.d.ts +9 -0
  128. package/dist/adapters/postgresql/resources/pool.d.ts.map +1 -0
  129. package/dist/adapters/postgresql/resources/pool.js +93 -0
  130. package/dist/adapters/postgresql/resources/pool.js.map +1 -0
  131. package/dist/adapters/postgresql/resources/postgis.d.ts +9 -0
  132. package/dist/adapters/postgresql/resources/postgis.d.ts.map +1 -0
  133. package/dist/adapters/postgresql/resources/postgis.js +232 -0
  134. package/dist/adapters/postgresql/resources/postgis.js.map +1 -0
  135. package/dist/adapters/postgresql/resources/replication.d.ts +9 -0
  136. package/dist/adapters/postgresql/resources/replication.d.ts.map +1 -0
  137. package/dist/adapters/postgresql/resources/replication.js +126 -0
  138. package/dist/adapters/postgresql/resources/replication.js.map +1 -0
  139. package/dist/adapters/postgresql/resources/schema.d.ts +10 -0
  140. package/dist/adapters/postgresql/resources/schema.d.ts.map +1 -0
  141. package/dist/adapters/postgresql/resources/schema.js +80 -0
  142. package/dist/adapters/postgresql/resources/schema.js.map +1 -0
  143. package/dist/adapters/postgresql/resources/settings.d.ts +9 -0
  144. package/dist/adapters/postgresql/resources/settings.d.ts.map +1 -0
  145. package/dist/adapters/postgresql/resources/settings.js +184 -0
  146. package/dist/adapters/postgresql/resources/settings.js.map +1 -0
  147. package/dist/adapters/postgresql/resources/stats.d.ts +10 -0
  148. package/dist/adapters/postgresql/resources/stats.d.ts.map +1 -0
  149. package/dist/adapters/postgresql/resources/stats.js +124 -0
  150. package/dist/adapters/postgresql/resources/stats.js.map +1 -0
  151. package/dist/adapters/postgresql/resources/tables.d.ts +9 -0
  152. package/dist/adapters/postgresql/resources/tables.d.ts.map +1 -0
  153. package/dist/adapters/postgresql/resources/tables.js +20 -0
  154. package/dist/adapters/postgresql/resources/tables.js.map +1 -0
  155. package/dist/adapters/postgresql/resources/vacuum.d.ts +9 -0
  156. package/dist/adapters/postgresql/resources/vacuum.d.ts.map +1 -0
  157. package/dist/adapters/postgresql/resources/vacuum.js +122 -0
  158. package/dist/adapters/postgresql/resources/vacuum.js.map +1 -0
  159. package/dist/adapters/postgresql/resources/vector.d.ts +9 -0
  160. package/dist/adapters/postgresql/resources/vector.d.ts.map +1 -0
  161. package/dist/adapters/postgresql/resources/vector.js +185 -0
  162. package/dist/adapters/postgresql/resources/vector.js.map +1 -0
  163. package/dist/adapters/postgresql/schemas/admin.d.ts +74 -0
  164. package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -0
  165. package/dist/adapters/postgresql/schemas/admin.js +180 -0
  166. package/dist/adapters/postgresql/schemas/admin.js.map +1 -0
  167. package/dist/adapters/postgresql/schemas/backup.d.ts +68 -0
  168. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -0
  169. package/dist/adapters/postgresql/schemas/backup.js +114 -0
  170. package/dist/adapters/postgresql/schemas/backup.js.map +1 -0
  171. package/dist/adapters/postgresql/schemas/core.d.ts +443 -0
  172. package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -0
  173. package/dist/adapters/postgresql/schemas/core.js +628 -0
  174. package/dist/adapters/postgresql/schemas/core.js.map +1 -0
  175. package/dist/adapters/postgresql/schemas/cron.d.ts +131 -0
  176. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -0
  177. package/dist/adapters/postgresql/schemas/cron.js +218 -0
  178. package/dist/adapters/postgresql/schemas/cron.js.map +1 -0
  179. package/dist/adapters/postgresql/schemas/extensions.d.ts +403 -0
  180. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -0
  181. package/dist/adapters/postgresql/schemas/extensions.js +600 -0
  182. package/dist/adapters/postgresql/schemas/extensions.js.map +1 -0
  183. package/dist/adapters/postgresql/schemas/index.d.ts +21 -0
  184. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -0
  185. package/dist/adapters/postgresql/schemas/index.js +72 -0
  186. package/dist/adapters/postgresql/schemas/index.js.map +1 -0
  187. package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -0
  188. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -0
  189. package/dist/adapters/postgresql/schemas/jsonb.js +198 -0
  190. package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -0
  191. package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -0
  192. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -0
  193. package/dist/adapters/postgresql/schemas/monitoring.js +45 -0
  194. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -0
  195. package/dist/adapters/postgresql/schemas/partitioning.d.ts +152 -0
  196. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -0
  197. package/dist/adapters/postgresql/schemas/partitioning.js +399 -0
  198. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -0
  199. package/dist/adapters/postgresql/schemas/partman.d.ts +94 -0
  200. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -0
  201. package/dist/adapters/postgresql/schemas/partman.js +264 -0
  202. package/dist/adapters/postgresql/schemas/partman.js.map +1 -0
  203. package/dist/adapters/postgresql/schemas/performance.d.ts +52 -0
  204. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -0
  205. package/dist/adapters/postgresql/schemas/performance.js +57 -0
  206. package/dist/adapters/postgresql/schemas/performance.js.map +1 -0
  207. package/dist/adapters/postgresql/schemas/postgis.d.ts +693 -0
  208. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -0
  209. package/dist/adapters/postgresql/schemas/postgis.js +662 -0
  210. package/dist/adapters/postgresql/schemas/postgis.js.map +1 -0
  211. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +171 -0
  212. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -0
  213. package/dist/adapters/postgresql/schemas/schema-mgmt.js +235 -0
  214. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -0
  215. package/dist/adapters/postgresql/schemas/stats.d.ts +229 -0
  216. package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -0
  217. package/dist/adapters/postgresql/schemas/stats.js +587 -0
  218. package/dist/adapters/postgresql/schemas/stats.js.map +1 -0
  219. package/dist/adapters/postgresql/schemas/text-search.d.ts +83 -0
  220. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -0
  221. package/dist/adapters/postgresql/schemas/text-search.js +132 -0
  222. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -0
  223. package/dist/adapters/postgresql/schemas/vector.d.ts +143 -0
  224. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -0
  225. package/dist/adapters/postgresql/schemas/vector.js +123 -0
  226. package/dist/adapters/postgresql/schemas/vector.js.map +1 -0
  227. package/dist/adapters/postgresql/tools/admin.d.ts +13 -0
  228. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -0
  229. package/dist/adapters/postgresql/tools/admin.js +417 -0
  230. package/dist/adapters/postgresql/tools/admin.js.map +1 -0
  231. package/dist/adapters/postgresql/tools/backup/dump.d.ts +12 -0
  232. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -0
  233. package/dist/adapters/postgresql/tools/backup/dump.js +546 -0
  234. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -0
  235. package/dist/adapters/postgresql/tools/backup/index.d.ts +16 -0
  236. package/dist/adapters/postgresql/tools/backup/index.d.ts.map +1 -0
  237. package/dist/adapters/postgresql/tools/backup/index.js +29 -0
  238. package/dist/adapters/postgresql/tools/backup/index.js.map +1 -0
  239. package/dist/adapters/postgresql/tools/backup/planning.d.ts +22 -0
  240. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -0
  241. package/dist/adapters/postgresql/tools/backup/planning.js +411 -0
  242. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -0
  243. package/dist/adapters/postgresql/tools/citext.d.ts +18 -0
  244. package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -0
  245. package/dist/adapters/postgresql/tools/citext.js +568 -0
  246. package/dist/adapters/postgresql/tools/citext.js.map +1 -0
  247. package/dist/adapters/postgresql/tools/codemode/index.d.ts +27 -0
  248. package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -0
  249. package/dist/adapters/postgresql/tools/codemode/index.js +171 -0
  250. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -0
  251. package/dist/adapters/postgresql/tools/core/convenience.d.ts +192 -0
  252. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -0
  253. package/dist/adapters/postgresql/tools/core/convenience.js +617 -0
  254. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -0
  255. package/dist/adapters/postgresql/tools/core/health.d.ts +20 -0
  256. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -0
  257. package/dist/adapters/postgresql/tools/core/health.js +360 -0
  258. package/dist/adapters/postgresql/tools/core/health.js.map +1 -0
  259. package/dist/adapters/postgresql/tools/core/index.d.ts +15 -0
  260. package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -0
  261. package/dist/adapters/postgresql/tools/core/index.js +40 -0
  262. package/dist/adapters/postgresql/tools/core/index.js.map +1 -0
  263. package/dist/adapters/postgresql/tools/core/indexes.d.ts +30 -0
  264. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -0
  265. package/dist/adapters/postgresql/tools/core/indexes.js +232 -0
  266. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -0
  267. package/dist/adapters/postgresql/tools/core/objects.d.ts +20 -0
  268. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -0
  269. package/dist/adapters/postgresql/tools/core/objects.js +361 -0
  270. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -0
  271. package/dist/adapters/postgresql/tools/core/query.d.ts +16 -0
  272. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -0
  273. package/dist/adapters/postgresql/tools/core/query.js +87 -0
  274. package/dist/adapters/postgresql/tools/core/query.js.map +1 -0
  275. package/dist/adapters/postgresql/tools/core/schemas.d.ts +135 -0
  276. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -0
  277. package/dist/adapters/postgresql/tools/core/schemas.js +221 -0
  278. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -0
  279. package/dist/adapters/postgresql/tools/core/tables.d.ts +24 -0
  280. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -0
  281. package/dist/adapters/postgresql/tools/core/tables.js +219 -0
  282. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -0
  283. package/dist/adapters/postgresql/tools/cron.d.ts +16 -0
  284. package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -0
  285. package/dist/adapters/postgresql/tools/cron.js +440 -0
  286. package/dist/adapters/postgresql/tools/cron.js.map +1 -0
  287. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts +33 -0
  288. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -0
  289. package/dist/adapters/postgresql/tools/jsonb/advanced.js +681 -0
  290. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -0
  291. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +20 -0
  292. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -0
  293. package/dist/adapters/postgresql/tools/jsonb/basic.js +654 -0
  294. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -0
  295. package/dist/adapters/postgresql/tools/jsonb/index.d.ts +16 -0
  296. package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -0
  297. package/dist/adapters/postgresql/tools/jsonb/index.js +39 -0
  298. package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -0
  299. package/dist/adapters/postgresql/tools/kcache.d.ts +20 -0
  300. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -0
  301. package/dist/adapters/postgresql/tools/kcache.js +574 -0
  302. package/dist/adapters/postgresql/tools/kcache.js.map +1 -0
  303. package/dist/adapters/postgresql/tools/ltree.d.ts +8 -0
  304. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -0
  305. package/dist/adapters/postgresql/tools/ltree.js +390 -0
  306. package/dist/adapters/postgresql/tools/ltree.js.map +1 -0
  307. package/dist/adapters/postgresql/tools/monitoring.d.ts +13 -0
  308. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -0
  309. package/dist/adapters/postgresql/tools/monitoring.js +753 -0
  310. package/dist/adapters/postgresql/tools/monitoring.js.map +1 -0
  311. package/dist/adapters/postgresql/tools/partitioning.d.ts +13 -0
  312. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -0
  313. package/dist/adapters/postgresql/tools/partitioning.js +500 -0
  314. package/dist/adapters/postgresql/tools/partitioning.js.map +1 -0
  315. package/dist/adapters/postgresql/tools/partman/index.d.ts +19 -0
  316. package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -0
  317. package/dist/adapters/postgresql/tools/partman/index.js +33 -0
  318. package/dist/adapters/postgresql/tools/partman/index.js.map +1 -0
  319. package/dist/adapters/postgresql/tools/partman/management.d.ts +28 -0
  320. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -0
  321. package/dist/adapters/postgresql/tools/partman/management.js +563 -0
  322. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -0
  323. package/dist/adapters/postgresql/tools/partman/operations.d.ts +28 -0
  324. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -0
  325. package/dist/adapters/postgresql/tools/partman/operations.js +632 -0
  326. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -0
  327. package/dist/adapters/postgresql/tools/performance/analysis.d.ts +9 -0
  328. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -0
  329. package/dist/adapters/postgresql/tools/performance/analysis.js +383 -0
  330. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -0
  331. package/dist/adapters/postgresql/tools/performance/explain.d.ts +13 -0
  332. package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -0
  333. package/dist/adapters/postgresql/tools/performance/explain.js +71 -0
  334. package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -0
  335. package/dist/adapters/postgresql/tools/performance/index.d.ts +13 -0
  336. package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -0
  337. package/dist/adapters/postgresql/tools/performance/index.js +40 -0
  338. package/dist/adapters/postgresql/tools/performance/index.js.map +1 -0
  339. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts +9 -0
  340. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -0
  341. package/dist/adapters/postgresql/tools/performance/monitoring.js +122 -0
  342. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -0
  343. package/dist/adapters/postgresql/tools/performance/optimization.d.ts +9 -0
  344. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -0
  345. package/dist/adapters/postgresql/tools/performance/optimization.js +315 -0
  346. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -0
  347. package/dist/adapters/postgresql/tools/performance/stats.d.ts +14 -0
  348. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -0
  349. package/dist/adapters/postgresql/tools/performance/stats.js +559 -0
  350. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -0
  351. package/dist/adapters/postgresql/tools/pgcrypto.d.ts +8 -0
  352. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -0
  353. package/dist/adapters/postgresql/tools/pgcrypto.js +239 -0
  354. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -0
  355. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts +21 -0
  356. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -0
  357. package/dist/adapters/postgresql/tools/postgis/advanced.js +383 -0
  358. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -0
  359. package/dist/adapters/postgresql/tools/postgis/basic.d.ts +16 -0
  360. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -0
  361. package/dist/adapters/postgresql/tools/postgis/basic.js +479 -0
  362. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -0
  363. package/dist/adapters/postgresql/tools/postgis/index.d.ts +17 -0
  364. package/dist/adapters/postgresql/tools/postgis/index.d.ts.map +1 -0
  365. package/dist/adapters/postgresql/tools/postgis/index.js +46 -0
  366. package/dist/adapters/postgresql/tools/postgis/index.js.map +1 -0
  367. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts +21 -0
  368. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -0
  369. package/dist/adapters/postgresql/tools/postgis/standalone.js +150 -0
  370. package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -0
  371. package/dist/adapters/postgresql/tools/schema.d.ts +13 -0
  372. package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -0
  373. package/dist/adapters/postgresql/tools/schema.js +515 -0
  374. package/dist/adapters/postgresql/tools/schema.js.map +1 -0
  375. package/dist/adapters/postgresql/tools/stats/advanced.d.ts +24 -0
  376. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -0
  377. package/dist/adapters/postgresql/tools/stats/advanced.js +876 -0
  378. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -0
  379. package/dist/adapters/postgresql/tools/stats/basic.d.ts +24 -0
  380. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -0
  381. package/dist/adapters/postgresql/tools/stats/basic.js +501 -0
  382. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -0
  383. package/dist/adapters/postgresql/tools/stats/index.d.ts +17 -0
  384. package/dist/adapters/postgresql/tools/stats/index.d.ts.map +1 -0
  385. package/dist/adapters/postgresql/tools/stats/index.js +30 -0
  386. package/dist/adapters/postgresql/tools/stats/index.js.map +1 -0
  387. package/dist/adapters/postgresql/tools/text.d.ts +13 -0
  388. package/dist/adapters/postgresql/tools/text.d.ts.map +1 -0
  389. package/dist/adapters/postgresql/tools/text.js +708 -0
  390. package/dist/adapters/postgresql/tools/text.js.map +1 -0
  391. package/dist/adapters/postgresql/tools/transactions.d.ts +13 -0
  392. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -0
  393. package/dist/adapters/postgresql/tools/transactions.js +201 -0
  394. package/dist/adapters/postgresql/tools/transactions.js.map +1 -0
  395. package/dist/adapters/postgresql/tools/vector/advanced.d.ts +12 -0
  396. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -0
  397. package/dist/adapters/postgresql/tools/vector/advanced.js +902 -0
  398. package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -0
  399. package/dist/adapters/postgresql/tools/vector/basic.d.ts +25 -0
  400. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -0
  401. package/dist/adapters/postgresql/tools/vector/basic.js +1000 -0
  402. package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -0
  403. package/dist/adapters/postgresql/tools/vector/index.d.ts +13 -0
  404. package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -0
  405. package/dist/adapters/postgresql/tools/vector/index.js +33 -0
  406. package/dist/adapters/postgresql/tools/vector/index.js.map +1 -0
  407. package/dist/auth/AuthorizationServerDiscovery.d.ts +44 -0
  408. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
  409. package/dist/auth/AuthorizationServerDiscovery.js +117 -0
  410. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
  411. package/dist/auth/OAuthResourceServer.d.ts +42 -0
  412. package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
  413. package/dist/auth/OAuthResourceServer.js +80 -0
  414. package/dist/auth/OAuthResourceServer.js.map +1 -0
  415. package/dist/auth/TokenValidator.d.ts +36 -0
  416. package/dist/auth/TokenValidator.d.ts.map +1 -0
  417. package/dist/auth/TokenValidator.js +139 -0
  418. package/dist/auth/TokenValidator.js.map +1 -0
  419. package/dist/auth/errors.d.ts +63 -0
  420. package/dist/auth/errors.d.ts.map +1 -0
  421. package/dist/auth/errors.js +102 -0
  422. package/dist/auth/errors.js.map +1 -0
  423. package/dist/auth/index.d.ts +15 -0
  424. package/dist/auth/index.d.ts.map +1 -0
  425. package/dist/auth/index.js +16 -0
  426. package/dist/auth/index.js.map +1 -0
  427. package/dist/auth/middleware.d.ts +61 -0
  428. package/dist/auth/middleware.d.ts.map +1 -0
  429. package/dist/auth/middleware.js +156 -0
  430. package/dist/auth/middleware.js.map +1 -0
  431. package/dist/auth/scopes.d.ts +65 -0
  432. package/dist/auth/scopes.d.ts.map +1 -0
  433. package/dist/auth/scopes.js +189 -0
  434. package/dist/auth/scopes.js.map +1 -0
  435. package/dist/auth/types.d.ts +208 -0
  436. package/dist/auth/types.d.ts.map +1 -0
  437. package/dist/auth/types.js +8 -0
  438. package/dist/auth/types.js.map +1 -0
  439. package/dist/cli/args.d.ts +34 -0
  440. package/dist/cli/args.d.ts.map +1 -0
  441. package/dist/cli/args.js +308 -0
  442. package/dist/cli/args.js.map +1 -0
  443. package/dist/cli/index.d.ts +8 -0
  444. package/dist/cli/index.d.ts.map +1 -0
  445. package/dist/cli/index.js +7 -0
  446. package/dist/cli/index.js.map +1 -0
  447. package/dist/cli.d.ts +9 -0
  448. package/dist/cli.d.ts.map +1 -0
  449. package/dist/cli.js +341 -0
  450. package/dist/cli.js.map +1 -0
  451. package/dist/codemode/api.d.ts +62 -0
  452. package/dist/codemode/api.d.ts.map +1 -0
  453. package/dist/codemode/api.js +1505 -0
  454. package/dist/codemode/api.js.map +1 -0
  455. package/dist/codemode/index.d.ts +13 -0
  456. package/dist/codemode/index.d.ts.map +1 -0
  457. package/dist/codemode/index.js +17 -0
  458. package/dist/codemode/index.js.map +1 -0
  459. package/dist/codemode/sandbox-factory.d.ts +72 -0
  460. package/dist/codemode/sandbox-factory.d.ts.map +1 -0
  461. package/dist/codemode/sandbox-factory.js +88 -0
  462. package/dist/codemode/sandbox-factory.js.map +1 -0
  463. package/dist/codemode/sandbox.d.ts +96 -0
  464. package/dist/codemode/sandbox.d.ts.map +1 -0
  465. package/dist/codemode/sandbox.js +345 -0
  466. package/dist/codemode/sandbox.js.map +1 -0
  467. package/dist/codemode/security.d.ts +44 -0
  468. package/dist/codemode/security.d.ts.map +1 -0
  469. package/dist/codemode/security.js +149 -0
  470. package/dist/codemode/security.js.map +1 -0
  471. package/dist/codemode/types.d.ts +137 -0
  472. package/dist/codemode/types.d.ts.map +1 -0
  473. package/dist/codemode/types.js +46 -0
  474. package/dist/codemode/types.js.map +1 -0
  475. package/dist/codemode/worker-sandbox.d.ts +82 -0
  476. package/dist/codemode/worker-sandbox.d.ts.map +1 -0
  477. package/dist/codemode/worker-sandbox.js +244 -0
  478. package/dist/codemode/worker-sandbox.js.map +1 -0
  479. package/dist/codemode/worker-script.d.ts +8 -0
  480. package/dist/codemode/worker-script.d.ts.map +1 -0
  481. package/dist/codemode/worker-script.js +113 -0
  482. package/dist/codemode/worker-script.js.map +1 -0
  483. package/dist/constants/ServerInstructions.d.ts +13 -0
  484. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  485. package/dist/constants/ServerInstructions.js +405 -0
  486. package/dist/constants/ServerInstructions.js.map +1 -0
  487. package/dist/filtering/ToolConstants.d.ts +43 -0
  488. package/dist/filtering/ToolConstants.d.ts.map +1 -0
  489. package/dist/filtering/ToolConstants.js +352 -0
  490. package/dist/filtering/ToolConstants.js.map +1 -0
  491. package/dist/filtering/ToolFilter.d.ts +90 -0
  492. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  493. package/dist/filtering/ToolFilter.js +315 -0
  494. package/dist/filtering/ToolFilter.js.map +1 -0
  495. package/dist/index.d.ts +15 -0
  496. package/dist/index.d.ts.map +1 -0
  497. package/dist/index.js +19 -0
  498. package/dist/index.js.map +1 -0
  499. package/dist/pool/ConnectionPool.d.ts +70 -0
  500. package/dist/pool/ConnectionPool.d.ts.map +1 -0
  501. package/dist/pool/ConnectionPool.js +254 -0
  502. package/dist/pool/ConnectionPool.js.map +1 -0
  503. package/dist/server/McpServer.d.ts +50 -0
  504. package/dist/server/McpServer.d.ts.map +1 -0
  505. package/dist/server/McpServer.js +108 -0
  506. package/dist/server/McpServer.js.map +1 -0
  507. package/dist/transports/http.d.ts +126 -0
  508. package/dist/transports/http.d.ts.map +1 -0
  509. package/dist/transports/http.js +303 -0
  510. package/dist/transports/http.js.map +1 -0
  511. package/dist/transports/index.d.ts +8 -0
  512. package/dist/transports/index.d.ts.map +1 -0
  513. package/dist/transports/index.js +7 -0
  514. package/dist/transports/index.js.map +1 -0
  515. package/dist/types/adapters.d.ts +136 -0
  516. package/dist/types/adapters.d.ts.map +1 -0
  517. package/dist/types/adapters.js +7 -0
  518. package/dist/types/adapters.js.map +1 -0
  519. package/dist/types/database.d.ts +204 -0
  520. package/dist/types/database.d.ts.map +1 -0
  521. package/dist/types/database.js +7 -0
  522. package/dist/types/database.js.map +1 -0
  523. package/dist/types/errors.d.ts +62 -0
  524. package/dist/types/errors.d.ts.map +1 -0
  525. package/dist/types/errors.js +91 -0
  526. package/dist/types/errors.js.map +1 -0
  527. package/dist/types/filtering.d.ts +39 -0
  528. package/dist/types/filtering.d.ts.map +1 -0
  529. package/dist/types/filtering.js +7 -0
  530. package/dist/types/filtering.js.map +1 -0
  531. package/dist/types/index.d.ts +16 -0
  532. package/dist/types/index.d.ts.map +1 -0
  533. package/dist/types/index.js +11 -0
  534. package/dist/types/index.js.map +1 -0
  535. package/dist/types/mcp.d.ts +31 -0
  536. package/dist/types/mcp.d.ts.map +1 -0
  537. package/dist/types/mcp.js +7 -0
  538. package/dist/types/mcp.js.map +1 -0
  539. package/dist/types/oauth.d.ts +65 -0
  540. package/dist/types/oauth.d.ts.map +1 -0
  541. package/dist/types/oauth.js +7 -0
  542. package/dist/types/oauth.js.map +1 -0
  543. package/dist/types/schema.d.ts +110 -0
  544. package/dist/types/schema.d.ts.map +1 -0
  545. package/dist/types/schema.js +7 -0
  546. package/dist/types/schema.js.map +1 -0
  547. package/dist/utils/annotations.d.ts +42 -0
  548. package/dist/utils/annotations.d.ts.map +1 -0
  549. package/dist/utils/annotations.js +75 -0
  550. package/dist/utils/annotations.js.map +1 -0
  551. package/dist/utils/icons.d.ts +25 -0
  552. package/dist/utils/icons.d.ts.map +1 -0
  553. package/dist/utils/icons.js +212 -0
  554. package/dist/utils/icons.js.map +1 -0
  555. package/dist/utils/identifiers.d.ts +111 -0
  556. package/dist/utils/identifiers.d.ts.map +1 -0
  557. package/dist/utils/identifiers.js +270 -0
  558. package/dist/utils/identifiers.js.map +1 -0
  559. package/dist/utils/logger.d.ts +141 -0
  560. package/dist/utils/logger.d.ts.map +1 -0
  561. package/dist/utils/logger.js +304 -0
  562. package/dist/utils/logger.js.map +1 -0
  563. package/dist/utils/promptGenerator.d.ts +20 -0
  564. package/dist/utils/promptGenerator.d.ts.map +1 -0
  565. package/dist/utils/promptGenerator.js +81 -0
  566. package/dist/utils/promptGenerator.js.map +1 -0
  567. package/dist/utils/resourceAnnotations.d.ts +36 -0
  568. package/dist/utils/resourceAnnotations.d.ts.map +1 -0
  569. package/dist/utils/resourceAnnotations.js +57 -0
  570. package/dist/utils/resourceAnnotations.js.map +1 -0
  571. package/package.json +64 -0
@@ -0,0 +1,185 @@
1
+ /**
2
+ * pgvector Status Resource
3
+ *
4
+ * Provides pgvector extension status, vector columns, and index information.
5
+ */
6
+ import { LOW_PRIORITY } from "../../../utils/resourceAnnotations.js";
7
+ /** Safely convert unknown value to string */
8
+ function toStr(value) {
9
+ return typeof value === "string" ? value : "";
10
+ }
11
+ export function createVectorResource(adapter) {
12
+ return {
13
+ uri: "postgres://vector",
14
+ name: "pgvector Status",
15
+ description: "pgvector extension status, vector columns, index types, and performance recommendations",
16
+ mimeType: "application/json",
17
+ annotations: LOW_PRIORITY,
18
+ handler: async () => {
19
+ const result = {
20
+ extensionInstalled: false,
21
+ extensionVersion: null,
22
+ vectorColumns: [],
23
+ columnCount: 0,
24
+ indexes: [],
25
+ indexCount: 0,
26
+ hnswIndexCount: 0,
27
+ ivfflatIndexCount: 0,
28
+ unindexedColumns: [],
29
+ recommendations: [],
30
+ };
31
+ // Check if pgvector is installed (outside try-catch for correct error messaging)
32
+ const extCheck = await adapter.executeQuery(`SELECT extversion FROM pg_extension WHERE extname = 'vector'`);
33
+ if (!extCheck.rows || extCheck.rows.length === 0) {
34
+ result.recommendations.push("pgvector extension is not installed. Use pg_vector_create_extension to enable vector similarity search.");
35
+ return JSON.stringify(result, null, 2);
36
+ }
37
+ result.extensionInstalled = true;
38
+ const extVersion = extCheck.rows[0]?.["extversion"];
39
+ result.extensionVersion =
40
+ typeof extVersion === "string" ? extVersion : null;
41
+ try {
42
+ // Get all vector columns
43
+ const columnsResult = await adapter.executeQuery(`SELECT
44
+ n.nspname as schema_name,
45
+ c.relname as table_name,
46
+ a.attname as column_name,
47
+ COALESCE(
48
+ (regexp_match(format_type(a.atttypid, a.atttypmod), 'vector\\((\\d+)\\)'))[1]::int,
49
+ 0
50
+ ) as dimensions,
51
+ COALESCE(s.n_live_tup, 0)::int as row_count
52
+ FROM pg_attribute a
53
+ JOIN pg_class c ON a.attrelid = c.oid
54
+ JOIN pg_namespace n ON c.relnamespace = n.oid
55
+ LEFT JOIN pg_stat_user_tables s ON s.relid = c.oid
56
+ WHERE format_type(a.atttypid, a.atttypmod) LIKE 'vector%'
57
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema')
58
+ AND a.attnum > 0
59
+ AND NOT a.attisdropped
60
+ ORDER BY n.nspname, c.relname, a.attname`);
61
+ if (columnsResult.rows) {
62
+ for (const row of columnsResult.rows) {
63
+ result.vectorColumns.push({
64
+ schema: toStr(row["schema_name"]),
65
+ table: toStr(row["table_name"]),
66
+ column: toStr(row["column_name"]),
67
+ dimensions: Number(row["dimensions"] ?? 0),
68
+ rowCount: Number(row["row_count"] ?? 0),
69
+ });
70
+ }
71
+ }
72
+ result.columnCount = result.vectorColumns.length;
73
+ // Get vector indexes
74
+ const indexResult = await adapter.executeQuery(`SELECT
75
+ n.nspname as schema_name,
76
+ t.relname as table_name,
77
+ i.relname as index_name,
78
+ am.amname as index_type,
79
+ a.attname as column_name,
80
+ pg_size_pretty(pg_relation_size(i.oid)) as index_size,
81
+ pg_get_indexdef(idx.indexrelid) as options
82
+ FROM pg_index idx
83
+ JOIN pg_class i ON idx.indexrelid = i.oid
84
+ JOIN pg_class t ON idx.indrelid = t.oid
85
+ JOIN pg_namespace n ON t.relnamespace = n.oid
86
+ JOIN pg_am am ON i.relam = am.oid
87
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(idx.indkey)
88
+ WHERE am.amname IN ('hnsw', 'ivfflat')
89
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema')
90
+ ORDER BY n.nspname, t.relname, i.relname`);
91
+ if (indexResult.rows) {
92
+ for (const row of indexResult.rows) {
93
+ const options = row["options"];
94
+ result.indexes.push({
95
+ schema: toStr(row["schema_name"]),
96
+ table: toStr(row["table_name"]),
97
+ indexName: toStr(row["index_name"]),
98
+ indexType: toStr(row["index_type"]),
99
+ column: toStr(row["column_name"]),
100
+ size: toStr(row["index_size"]) || "0 bytes",
101
+ options: typeof options === "string" ? options : null,
102
+ });
103
+ }
104
+ }
105
+ result.indexCount = result.indexes.length;
106
+ result.hnswIndexCount = result.indexes.filter((i) => i.indexType === "hnsw").length;
107
+ result.ivfflatIndexCount = result.indexes.filter((i) => i.indexType === "ivfflat").length;
108
+ // Find unindexed vector columns and generate actionable SQL
109
+ // Skip small tables where indexes provide minimal benefit
110
+ const SMALL_TABLE_THRESHOLD = 1000;
111
+ const indexedColumns = new Set(result.indexes.map((i) => `${i.schema}.${i.table}.${i.column}`));
112
+ // Get existing index names to avoid conflicts
113
+ const existingIndexResult = await adapter.executeQuery(`
114
+ SELECT indexname FROM pg_indexes WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
115
+ `);
116
+ const existingIndexNames = new Set((existingIndexResult.rows ?? []).map((r) => r["indexname"]));
117
+ const unindexedCols = result.vectorColumns.filter((c) => !indexedColumns.has(`${c.schema}.${c.table}.${c.column}`) &&
118
+ c.rowCount >= SMALL_TABLE_THRESHOLD);
119
+ const smallTableCount = result.vectorColumns.filter((c) => !indexedColumns.has(`${c.schema}.${c.table}.${c.column}`) &&
120
+ c.rowCount < SMALL_TABLE_THRESHOLD).length;
121
+ result.unindexedColumns = unindexedCols.map((c) => {
122
+ // Generate unique index names
123
+ let hnswName = `idx_${c.table}_${c.column}_hnsw`;
124
+ let ivfflatName = `idx_${c.table}_${c.column}_ivfflat`;
125
+ // Add suffix if name already exists
126
+ let suffix = 1;
127
+ while (existingIndexNames.has(hnswName)) {
128
+ hnswName = `idx_${c.table}_${c.column}_hnsw_${String(suffix)}`;
129
+ suffix++;
130
+ }
131
+ suffix = 1;
132
+ while (existingIndexNames.has(ivfflatName)) {
133
+ ivfflatName = `idx_${c.table}_${c.column}_ivfflat_${String(suffix)}`;
134
+ suffix++;
135
+ }
136
+ return {
137
+ column: `${c.schema}.${c.table}.${c.column}`,
138
+ suggestedHnswSql: `CREATE INDEX IF NOT EXISTS "${hnswName}" ON "${c.schema}"."${c.table}" USING hnsw ("${c.column}" vector_cosine_ops);`,
139
+ suggestedIvfflatSql: `CREATE INDEX IF NOT EXISTS "${ivfflatName}" ON "${c.schema}"."${c.table}" USING ivfflat ("${c.column}" vector_l2_ops) WITH (lists = 100);`,
140
+ };
141
+ });
142
+ // Generate recommendations
143
+ if (result.columnCount === 0) {
144
+ result.recommendations.push("No vector columns found. Use pg_vector_add_column to add vector columns to tables.");
145
+ }
146
+ if (result.unindexedColumns.length > 0) {
147
+ const columnNames = result.unindexedColumns
148
+ .slice(0, 3)
149
+ .map((c) => c.column)
150
+ .join(", ");
151
+ result.recommendations.push(`${String(result.unindexedColumns.length)} vector column(s) on larger tables without indexes: ${columnNames}${result.unindexedColumns.length > 3 ? "..." : ""}. See unindexedColumns for ready-to-use CREATE INDEX SQL.`);
152
+ }
153
+ // Note about small tables that were skipped
154
+ if (smallTableCount > 0 && result.unindexedColumns.length === 0) {
155
+ result.recommendations.push(`${String(smallTableCount)} unindexed vector column(s) on small tables (<${String(SMALL_TABLE_THRESHOLD)} rows). Indexes optional for small tables.`);
156
+ }
157
+ for (const col of result.vectorColumns) {
158
+ const isUnindexed = result.unindexedColumns.some((u) => u.column === `${col.schema}.${col.table}.${col.column}`);
159
+ if (col.rowCount > 100000 && isUnindexed) {
160
+ result.recommendations.push(`Large unindexed vector column: ${col.table}.${col.column} (${String(col.rowCount)} rows). HNSW index strongly recommended.`);
161
+ }
162
+ }
163
+ if (result.ivfflatIndexCount > 0 && result.hnswIndexCount === 0) {
164
+ result.recommendations.push("Using IVFFlat indexes only. Consider HNSW for better query performance (higher build cost).");
165
+ }
166
+ // Add index type guidance
167
+ result.indexTypeGuidance = {
168
+ hnsw: "HNSW (Hierarchical Navigating Small Worlds): Higher recall, faster queries. Best for most use cases. Higher memory and build time. Recommended for production.",
169
+ ivfflat: 'IVFFlat (Inverted File with Flat compression): Faster to build, lower memory. Requires tuning "lists" parameter (sqrt(rows) recommended). Better for prototyping or resource-constrained environments.',
170
+ recommendation: result.indexCount === 0
171
+ ? "Start with HNSW for best query performance. Use IVFFlat if build time or memory is a constraint."
172
+ : result.hnswIndexCount > 0 && result.ivfflatIndexCount === 0
173
+ ? "Using HNSW indexes - optimal for query performance."
174
+ : "Mixed index types detected. Consider migrating IVFFlat to HNSW for consistent performance.",
175
+ };
176
+ }
177
+ catch {
178
+ // Extension is installed but data queries failed
179
+ result.recommendations.push("Error querying pgvector data. Check permissions on vector columns and indexes.");
180
+ }
181
+ return JSON.stringify(result, null, 2);
182
+ },
183
+ };
184
+ }
185
+ //# sourceMappingURL=vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/vector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * postgres-mcp - Admin Tool Schemas
3
+ *
4
+ * Input validation schemas for database administration operations.
5
+ *
6
+ * DUAL-SCHEMA PATTERN:
7
+ * Base schemas (*SchemaBase) are exported for MCP visibility (shows parameters).
8
+ * Preprocess schemas (*Schema) are used by handlers for validation + alias resolution.
9
+ */
10
+ import { z } from "zod";
11
+ export declare const VacuumSchemaBase: z.ZodObject<{
12
+ table: z.ZodOptional<z.ZodString>;
13
+ tableName: z.ZodOptional<z.ZodString>;
14
+ schema: z.ZodOptional<z.ZodString>;
15
+ full: z.ZodOptional<z.ZodBoolean>;
16
+ analyze: z.ZodOptional<z.ZodBoolean>;
17
+ verbose: z.ZodOptional<z.ZodBoolean>;
18
+ }, z.core.$strip>;
19
+ export declare const VacuumSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
20
+ table: z.ZodOptional<z.ZodString>;
21
+ schema: z.ZodOptional<z.ZodString>;
22
+ full: z.ZodOptional<z.ZodBoolean>;
23
+ analyze: z.ZodOptional<z.ZodBoolean>;
24
+ verbose: z.ZodOptional<z.ZodBoolean>;
25
+ }, z.core.$strip>>;
26
+ export declare const AnalyzeSchemaBase: z.ZodObject<{
27
+ table: z.ZodOptional<z.ZodString>;
28
+ tableName: z.ZodOptional<z.ZodString>;
29
+ schema: z.ZodOptional<z.ZodString>;
30
+ columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ }, z.core.$strip>;
32
+ export declare const AnalyzeSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
33
+ table: z.ZodOptional<z.ZodString>;
34
+ schema: z.ZodOptional<z.ZodString>;
35
+ columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
+ }, z.core.$strip>>;
37
+ export declare const ReindexSchemaBase: z.ZodObject<{
38
+ target: z.ZodEnum<{
39
+ table: "table";
40
+ schema: "schema";
41
+ database: "database";
42
+ index: "index";
43
+ }>;
44
+ name: z.ZodOptional<z.ZodString>;
45
+ table: z.ZodOptional<z.ZodString>;
46
+ tableName: z.ZodOptional<z.ZodString>;
47
+ indexName: z.ZodOptional<z.ZodString>;
48
+ concurrently: z.ZodOptional<z.ZodBoolean>;
49
+ }, z.core.$strip>;
50
+ export declare const ReindexSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
51
+ target: z.ZodEnum<{
52
+ table: "table";
53
+ schema: "schema";
54
+ database: "database";
55
+ index: "index";
56
+ }>;
57
+ name: z.ZodOptional<z.ZodString>;
58
+ concurrently: z.ZodOptional<z.ZodBoolean>;
59
+ }, z.core.$strip>>;
60
+ export declare const TerminateBackendSchemaBase: z.ZodObject<{
61
+ pid: z.ZodOptional<z.ZodNumber>;
62
+ processId: z.ZodOptional<z.ZodNumber>;
63
+ }, z.core.$strip>;
64
+ export declare const TerminateBackendSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
65
+ pid: z.ZodNumber;
66
+ }, z.core.$strip>>;
67
+ export declare const CancelBackendSchemaBase: z.ZodObject<{
68
+ pid: z.ZodOptional<z.ZodNumber>;
69
+ processId: z.ZodOptional<z.ZodNumber>;
70
+ }, z.core.$strip>;
71
+ export declare const CancelBackendSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
72
+ pid: z.ZodNumber;
73
+ }, z.core.$strip>>;
74
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/schemas/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuCxB,eAAO,MAAM,gBAAgB;;;;;;;iBAO3B,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;kBASxB,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;iBAQ5B,CAAC;AAGH,eAAO,MAAM,aAAa;;;;kBAUzB,CAAC;AA4BF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;iBAoB5B,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;kBA4BvB,CAAC;AAoBJ,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAGH,eAAO,MAAM,sBAAsB;;kBAKlC,CAAC;AAGF,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAGH,eAAO,MAAM,mBAAmB;;kBAK/B,CAAC"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * postgres-mcp - Admin Tool Schemas
3
+ *
4
+ * Input validation schemas for database administration operations.
5
+ *
6
+ * DUAL-SCHEMA PATTERN:
7
+ * Base schemas (*SchemaBase) are exported for MCP visibility (shows parameters).
8
+ * Preprocess schemas (*Schema) are used by handlers for validation + alias resolution.
9
+ */
10
+ import { z } from "zod";
11
+ /**
12
+ * Preprocess vacuum/analyze parameters:
13
+ * - Alias: tableName → table
14
+ * - Parse schema.table format (e.g., 'public.users' → { schema: 'public', table: 'users' })
15
+ */
16
+ function preprocessTableParams(input) {
17
+ if (input === null || input === undefined) {
18
+ return {};
19
+ }
20
+ if (typeof input !== "object") {
21
+ return input;
22
+ }
23
+ const result = { ...input };
24
+ // Alias: tableName → table
25
+ if (result["tableName"] !== undefined && result["table"] === undefined) {
26
+ result["table"] = result["tableName"];
27
+ }
28
+ // Parse schema.table format
29
+ const tableVal = result["table"];
30
+ if (typeof tableVal === "string" && tableVal.includes(".")) {
31
+ const parts = tableVal.split(".");
32
+ if (parts.length === 2 && parts[0] !== "" && parts[1] !== "") {
33
+ // Only override schema if not explicitly provided
34
+ if (result["schema"] === undefined) {
35
+ result["schema"] = parts[0];
36
+ }
37
+ result["table"] = parts[1];
38
+ }
39
+ }
40
+ return result;
41
+ }
42
+ // ============== VACUUM SCHEMA ==============
43
+ // Base schema for MCP visibility
44
+ export const VacuumSchemaBase = z.object({
45
+ table: z.string().optional().describe("Table name (all tables if omitted)"),
46
+ tableName: z.string().optional().describe("Alias for table"),
47
+ schema: z.string().optional().describe("Schema name"),
48
+ full: z.boolean().optional().describe("Full vacuum (rewrites table)"),
49
+ analyze: z.boolean().optional().describe("Update statistics"),
50
+ verbose: z.boolean().optional().describe("Print progress"),
51
+ });
52
+ // Preprocess schema for handlers (resolves aliases and parses schema.table)
53
+ export const VacuumSchema = z.preprocess(preprocessTableParams, z.object({
54
+ table: z.string().optional().describe("Table name (all tables if omitted)"),
55
+ schema: z.string().optional().describe("Schema name"),
56
+ full: z.boolean().optional().describe("Full vacuum (rewrites table)"),
57
+ analyze: z.boolean().optional().describe("Update statistics"),
58
+ verbose: z.boolean().optional().describe("Print progress"),
59
+ }));
60
+ // ============== ANALYZE SCHEMA ==============
61
+ // Base schema for MCP visibility
62
+ export const AnalyzeSchemaBase = z.object({
63
+ table: z.string().optional().describe("Table name (all tables if omitted)"),
64
+ tableName: z.string().optional().describe("Alias for table"),
65
+ schema: z.string().optional().describe("Schema name"),
66
+ columns: z
67
+ .array(z.string())
68
+ .optional()
69
+ .describe("Specific columns to analyze"),
70
+ });
71
+ // Preprocess schema for handlers (resolves aliases and parses schema.table)
72
+ export const AnalyzeSchema = z.preprocess(preprocessTableParams, z.object({
73
+ table: z.string().optional().describe("Table name (all tables if omitted)"),
74
+ schema: z.string().optional().describe("Schema name"),
75
+ columns: z
76
+ .array(z.string())
77
+ .optional()
78
+ .describe("Specific columns to analyze"),
79
+ }));
80
+ // ============== REINDEX SCHEMA ==============
81
+ /**
82
+ * Preprocess reindex parameters:
83
+ * - Alias: tableName/table/indexName → name
84
+ */
85
+ function preprocessReindexParams(input) {
86
+ if (typeof input !== "object" || input === null) {
87
+ return input;
88
+ }
89
+ const result = { ...input };
90
+ // Alias: tableName → name
91
+ if (result["tableName"] !== undefined && result["name"] === undefined) {
92
+ result["name"] = result["tableName"];
93
+ }
94
+ // Alias: table → name (when target is 'table')
95
+ if (result["table"] !== undefined && result["name"] === undefined) {
96
+ result["name"] = result["table"];
97
+ }
98
+ // Alias: indexName → name (when target is 'index')
99
+ if (result["indexName"] !== undefined && result["name"] === undefined) {
100
+ result["name"] = result["indexName"];
101
+ }
102
+ return result;
103
+ }
104
+ // Base schema for MCP visibility (shows all parameters including aliases)
105
+ export const ReindexSchemaBase = z.object({
106
+ target: z
107
+ .enum(["table", "index", "schema", "database"])
108
+ .describe("What to reindex"),
109
+ name: z
110
+ .string()
111
+ .optional()
112
+ .describe("Name of table/index/schema (defaults to current database when target is database)"),
113
+ table: z
114
+ .string()
115
+ .optional()
116
+ .describe("Alias for name (when target is table)"),
117
+ tableName: z.string().optional().describe("Alias for name"),
118
+ indexName: z
119
+ .string()
120
+ .optional()
121
+ .describe("Alias for name (when target is index)"),
122
+ concurrently: z.boolean().optional().describe("Reindex concurrently"),
123
+ });
124
+ // Preprocess schema for handlers (resolves aliases, name is now optional for database target)
125
+ export const ReindexSchema = z
126
+ .preprocess(preprocessReindexParams, z.object({
127
+ target: z
128
+ .enum(["table", "index", "schema", "database"])
129
+ .describe("What to reindex"),
130
+ name: z
131
+ .string()
132
+ .optional()
133
+ .describe("Name of table/index/schema (defaults to current database when target is database)"),
134
+ concurrently: z.boolean().optional().describe("Reindex concurrently"),
135
+ }))
136
+ .refine((data) => {
137
+ // name is required for table, index, and schema targets
138
+ const parsed = data;
139
+ if (parsed.target !== "database" && parsed.name === undefined) {
140
+ return false;
141
+ }
142
+ return true;
143
+ }, {
144
+ message: "name is required when target is table, index, or schema",
145
+ });
146
+ // ============== TERMINATE/CANCEL BACKEND SCHEMAS ==============
147
+ /**
148
+ * Preprocess backend PID parameters:
149
+ * - Alias: processId → pid
150
+ */
151
+ function preprocessPidParams(input) {
152
+ if (typeof input !== "object" || input === null) {
153
+ return input;
154
+ }
155
+ const result = { ...input };
156
+ // Alias: processId → pid
157
+ if (result["processId"] !== undefined && result["pid"] === undefined) {
158
+ result["pid"] = result["processId"];
159
+ }
160
+ return result;
161
+ }
162
+ // Base schema for MCP visibility (shows pid and alias)
163
+ export const TerminateBackendSchemaBase = z.object({
164
+ pid: z.number().optional().describe("Process ID to terminate"),
165
+ processId: z.number().optional().describe("Alias for pid"),
166
+ });
167
+ // Preprocess schema for handlers
168
+ export const TerminateBackendSchema = z.preprocess(preprocessPidParams, z.object({
169
+ pid: z.number().describe("Process ID to terminate"),
170
+ }));
171
+ // Base schema for MCP visibility (shows pid and alias)
172
+ export const CancelBackendSchemaBase = z.object({
173
+ pid: z.number().optional().describe("Process ID to cancel"),
174
+ processId: z.number().optional().describe("Alias for pid"),
175
+ });
176
+ // Preprocess schema for handlers
177
+ export const CancelBackendSchema = z.preprocess(preprocessPidParams, z.object({
178
+ pid: z.number().describe("Process ID to cancel"),
179
+ }));
180
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/schemas/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * postgres-mcp - Backup Tool Schemas
3
+ *
4
+ * Input validation schemas for backup and export operations.
5
+ */
6
+ import { z } from "zod";
7
+ /**
8
+ * Base schema for MCP visibility (shows all parameters in JSON Schema).
9
+ * This schema is used for tool registration so MCP clients can see the parameters.
10
+ */
11
+ export declare const CopyExportSchemaBase: z.ZodObject<{
12
+ query: z.ZodOptional<z.ZodString>;
13
+ sql: z.ZodOptional<z.ZodString>;
14
+ table: z.ZodOptional<z.ZodString>;
15
+ schema: z.ZodOptional<z.ZodString>;
16
+ format: z.ZodOptional<z.ZodEnum<{
17
+ text: "text";
18
+ binary: "binary";
19
+ csv: "csv";
20
+ }>>;
21
+ header: z.ZodOptional<z.ZodBoolean>;
22
+ delimiter: z.ZodOptional<z.ZodString>;
23
+ limit: z.ZodOptional<z.ZodNumber>;
24
+ }, z.core.$strip>;
25
+ /**
26
+ * Transformed schema with alias resolution, table shortcut, and schema.table parsing.
27
+ */
28
+ export declare const CopyExportSchema: z.ZodPipe<z.ZodObject<{
29
+ query: z.ZodOptional<z.ZodString>;
30
+ sql: z.ZodOptional<z.ZodString>;
31
+ table: z.ZodOptional<z.ZodString>;
32
+ schema: z.ZodOptional<z.ZodString>;
33
+ format: z.ZodOptional<z.ZodEnum<{
34
+ text: "text";
35
+ binary: "binary";
36
+ csv: "csv";
37
+ }>>;
38
+ header: z.ZodOptional<z.ZodBoolean>;
39
+ delimiter: z.ZodOptional<z.ZodString>;
40
+ limit: z.ZodOptional<z.ZodNumber>;
41
+ }, z.core.$strip>, z.ZodTransform<{
42
+ query: string;
43
+ conflictWarning: string | undefined;
44
+ usedDefaultLimit: boolean;
45
+ effectiveLimit: number | undefined;
46
+ sql?: string | undefined;
47
+ table?: string | undefined;
48
+ schema?: string | undefined;
49
+ format?: "text" | "binary" | "csv" | undefined;
50
+ header?: boolean | undefined;
51
+ delimiter?: string | undefined;
52
+ limit?: number | undefined;
53
+ }, {
54
+ query?: string | undefined;
55
+ sql?: string | undefined;
56
+ table?: string | undefined;
57
+ schema?: string | undefined;
58
+ format?: "text" | "binary" | "csv" | undefined;
59
+ header?: boolean | undefined;
60
+ delimiter?: string | undefined;
61
+ limit?: number | undefined;
62
+ }>>;
63
+ export declare const DumpSchemaSchema: z.ZodObject<{
64
+ table: z.ZodOptional<z.ZodString>;
65
+ schema: z.ZodOptional<z.ZodString>;
66
+ filename: z.ZodOptional<z.ZodString>;
67
+ }, z.core.$strip>;
68
+ //# sourceMappingURL=backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/schemas/backup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBA2B/B,CAAC;AAKH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0E3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;iBAO3B,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * postgres-mcp - Backup Tool Schemas
3
+ *
4
+ * Input validation schemas for backup and export operations.
5
+ */
6
+ import { z } from "zod";
7
+ /**
8
+ * Base schema for MCP visibility (shows all parameters in JSON Schema).
9
+ * This schema is used for tool registration so MCP clients can see the parameters.
10
+ */
11
+ export const CopyExportSchemaBase = z.object({
12
+ query: z.string().optional().describe("SELECT query for data to export"),
13
+ sql: z.string().optional().describe("Alias for query parameter"),
14
+ table: z
15
+ .string()
16
+ .optional()
17
+ .describe("Table name to export (auto-generates SELECT *). Supports 'schema.table' format"),
18
+ schema: z
19
+ .string()
20
+ .optional()
21
+ .describe("Schema name when using table (default: public)"),
22
+ format: z
23
+ .enum(["csv", "text", "binary"])
24
+ .optional()
25
+ .describe("Output format (default: csv)"),
26
+ header: z.boolean().optional().describe("Include header row (default: true)"),
27
+ delimiter: z.string().optional().describe("Field delimiter"),
28
+ limit: z
29
+ .number()
30
+ .int()
31
+ .nonnegative()
32
+ .optional()
33
+ .describe("Maximum number of rows to export (default: 500 to prevent large payloads). Use 0 for all rows"),
34
+ });
35
+ /** Default limit for copyExport when not specified */
36
+ const DEFAULT_EXPORT_LIMIT = 500;
37
+ /**
38
+ * Transformed schema with alias resolution, table shortcut, and schema.table parsing.
39
+ */
40
+ export const CopyExportSchema = CopyExportSchemaBase.transform((input) => {
41
+ // Apply alias: sql → query
42
+ let query = input.query ?? input.sql;
43
+ let conflictWarning;
44
+ // Check for conflicting parameters
45
+ if ((input.query !== undefined || input.sql !== undefined) &&
46
+ input.table !== undefined) {
47
+ conflictWarning =
48
+ "Both query and table parameters provided. Using query parameter (table ignored).";
49
+ }
50
+ // Resolve effective limit:
51
+ // - undefined = use DEFAULT_EXPORT_LIMIT (500)
52
+ // - 0 = no limit (export all rows)
53
+ // - positive number = user-specified limit
54
+ const effectiveLimit = input.limit === undefined
55
+ ? DEFAULT_EXPORT_LIMIT
56
+ : input.limit === 0
57
+ ? undefined // 0 means no limit
58
+ : input.limit;
59
+ // Track whether we used the default limit (handler will check actual row count)
60
+ let usedDefaultLimit = false;
61
+ // Auto-generate query from table if provided
62
+ if ((query === undefined || query === "") && input.table !== undefined) {
63
+ // Parse schema.table format (e.g., 'public.users' -> schema='public', table='users')
64
+ // If table contains a dot, always parse it as schema.table (embedded schema takes priority)
65
+ let tableName = input.table;
66
+ let schemaName = input.schema ?? "public";
67
+ if (input.table.includes(".")) {
68
+ const parts = input.table.split(".");
69
+ if (parts.length === 2 && parts[0] && parts[1]) {
70
+ schemaName = parts[0];
71
+ tableName = parts[1];
72
+ }
73
+ }
74
+ // Build query with LIMIT
75
+ query = `SELECT * FROM "${schemaName}"."${tableName}"`;
76
+ if (effectiveLimit !== undefined) {
77
+ query += ` LIMIT ${String(effectiveLimit)}`;
78
+ // Track if we're using the default limit (actual truncation determined in handler)
79
+ if (input.limit === undefined) {
80
+ usedDefaultLimit = true;
81
+ }
82
+ }
83
+ }
84
+ else if (query !== undefined && effectiveLimit !== undefined) {
85
+ // If a custom query is provided and limit is specified, wrap or append LIMIT
86
+ // Only append if query doesn't already have LIMIT
87
+ if (!/\bLIMIT\s+\d+\s*$/i.test(query)) {
88
+ query += ` LIMIT ${String(effectiveLimit)}`;
89
+ // Track if we're using the default limit (actual truncation determined in handler)
90
+ if (input.limit === undefined) {
91
+ usedDefaultLimit = true;
92
+ }
93
+ }
94
+ }
95
+ if (query === undefined || query === "") {
96
+ throw new Error("Either query/sql or table parameter is required");
97
+ }
98
+ return {
99
+ ...input,
100
+ query,
101
+ conflictWarning,
102
+ usedDefaultLimit,
103
+ effectiveLimit,
104
+ };
105
+ });
106
+ export const DumpSchemaSchema = z.object({
107
+ table: z.string().optional().describe("Table name"),
108
+ schema: z.string().optional().describe("Schema name"),
109
+ filename: z
110
+ .string()
111
+ .optional()
112
+ .describe("Output filename (default: backup.dump)"),
113
+ });
114
+ //# sourceMappingURL=backup.js.map