@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,191 @@
1
+ /**
2
+ * pgcrypto Status Resource
3
+ *
4
+ * Provides pgcrypto extension availability and usage 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 createCryptoResource(adapter) {
12
+ return {
13
+ uri: "postgres://crypto",
14
+ name: "pgcrypto Status",
15
+ description: "pgcrypto extension availability, algorithms, and security recommendations",
16
+ mimeType: "application/json",
17
+ annotations: LOW_PRIORITY,
18
+ handler: async () => {
19
+ const result = {
20
+ extensionInstalled: false,
21
+ extensionVersion: null,
22
+ availableAlgorithms: {
23
+ hashing: { secure: [], legacy: [] },
24
+ hmac: [],
25
+ encryption: [],
26
+ },
27
+ securityNotes: null,
28
+ uuid: {
29
+ genRandomUuidAvailable: false,
30
+ uuidColumns: [],
31
+ },
32
+ passwordHashing: {
33
+ status: "not_checked",
34
+ detectedColumns: [],
35
+ },
36
+ encryptedColumns: [],
37
+ recommendations: [],
38
+ };
39
+ // Check if pgcrypto is installed (outside try-catch for correct error messaging)
40
+ const extCheck = await adapter.executeQuery(`SELECT extversion FROM pg_extension WHERE extname = 'pgcrypto'`);
41
+ if (!extCheck.rows || extCheck.rows.length === 0) {
42
+ result.recommendations.push("pgcrypto extension is not installed. Use pg_pgcrypto_create_extension to enable cryptographic functions.");
43
+ return JSON.stringify(result, null, 2);
44
+ }
45
+ result.extensionInstalled = true;
46
+ const extVersion = extCheck.rows[0]?.["extversion"];
47
+ result.extensionVersion =
48
+ typeof extVersion === "string" ? extVersion : null;
49
+ // Set available algorithms (these are built into pgcrypto)
50
+ // Categorize by security status to avoid conflating "exists" with "recommended"
51
+ result.availableAlgorithms = {
52
+ hashing: {
53
+ secure: ["sha256", "sha384", "sha512"],
54
+ legacy: ["md5", "sha1", "sha224"], // Available but not recommended for security
55
+ },
56
+ hmac: ["md5", "sha1", "sha256", "sha384", "sha512"],
57
+ encryption: ["bf", "aes128", "aes192", "aes256", "3des", "cast5"],
58
+ };
59
+ try {
60
+ // Check if gen_random_uuid is available (can be from pgcrypto or PostgreSQL 13+)
61
+ try {
62
+ await adapter.executeQuery(`SELECT gen_random_uuid()`);
63
+ result.uuid.genRandomUuidAvailable = true;
64
+ }
65
+ catch {
66
+ result.uuid.genRandomUuidAvailable = false;
67
+ }
68
+ // Find UUID columns
69
+ const uuidResult = await adapter.executeQuery(`SELECT
70
+ n.nspname as schema_name,
71
+ c.relname as table_name,
72
+ a.attname as column_name,
73
+ d.adbin IS NOT NULL as has_default
74
+ FROM pg_attribute a
75
+ JOIN pg_class c ON a.attrelid = c.oid
76
+ JOIN pg_namespace n ON c.relnamespace = n.oid
77
+ JOIN pg_type t ON a.atttypid = t.oid
78
+ LEFT JOIN pg_attrdef d ON d.adrelid = c.oid AND d.adnum = a.attnum
79
+ WHERE t.typname = 'uuid'
80
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema')
81
+ AND a.attnum > 0
82
+ AND NOT a.attisdropped
83
+ ORDER BY n.nspname, c.relname, a.attname`);
84
+ if (uuidResult.rows) {
85
+ for (const row of uuidResult.rows) {
86
+ result.uuid.uuidColumns.push({
87
+ schema: toStr(row["schema_name"]),
88
+ table: toStr(row["table_name"]),
89
+ column: toStr(row["column_name"]),
90
+ hasDefault: Boolean(row["has_default"]),
91
+ });
92
+ }
93
+ }
94
+ // Detect password hashing (columns with names like password_hash, pwd_hash, etc.)
95
+ const pwdHashResult = await adapter.executeQuery(`SELECT n.nspname as schema_name, c.relname as table_name, a.attname as column_name
96
+ FROM pg_attribute a
97
+ JOIN pg_class c ON a.attrelid = c.oid
98
+ JOIN pg_namespace n ON c.relnamespace = n.oid
99
+ WHERE (
100
+ a.attname ILIKE '%password%hash%' OR
101
+ a.attname ILIKE '%pwd%hash%' OR
102
+ a.attname ILIKE '%pass%hash%' OR
103
+ a.attname = 'password_digest' OR
104
+ a.attname = 'encrypted_password'
105
+ )
106
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema')
107
+ AND a.attnum > 0
108
+ AND NOT a.attisdropped
109
+ LIMIT 20`);
110
+ if (pwdHashResult.rows && pwdHashResult.rows.length > 0) {
111
+ result.passwordHashing.status = "detected";
112
+ for (const row of pwdHashResult.rows) {
113
+ result.passwordHashing.detectedColumns.push({
114
+ schema: toStr(row["schema_name"]),
115
+ table: toStr(row["table_name"]),
116
+ column: toStr(row["column_name"]),
117
+ });
118
+ }
119
+ }
120
+ else {
121
+ result.passwordHashing.status = "none_found";
122
+ }
123
+ // Find potential encrypted columns (bytea columns that might contain encrypted data)
124
+ const byteaResult = await adapter.executeQuery(`SELECT
125
+ n.nspname as schema_name,
126
+ c.relname as table_name,
127
+ a.attname as column_name
128
+ FROM pg_attribute a
129
+ JOIN pg_class c ON a.attrelid = c.oid
130
+ JOIN pg_namespace n ON c.relnamespace = n.oid
131
+ JOIN pg_type t ON a.atttypid = t.oid
132
+ WHERE t.typname = 'bytea'
133
+ AND (
134
+ a.attname ILIKE '%encrypt%' OR
135
+ a.attname ILIKE '%secret%' OR
136
+ a.attname ILIKE '%secure%' OR
137
+ a.attname ILIKE '%cipher%'
138
+ )
139
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema')
140
+ AND a.attnum > 0
141
+ AND NOT a.attisdropped
142
+ ORDER BY n.nspname, c.relname, a.attname
143
+ LIMIT 20`);
144
+ if (byteaResult.rows) {
145
+ for (const row of byteaResult.rows) {
146
+ result.encryptedColumns.push({
147
+ schema: toStr(row["schema_name"]),
148
+ table: toStr(row["table_name"]),
149
+ column: toStr(row["column_name"]),
150
+ byteaType: true,
151
+ });
152
+ }
153
+ }
154
+ // Generate recommendations
155
+ if (!result.uuid.genRandomUuidAvailable) {
156
+ result.recommendations.push("gen_random_uuid() not available. Upgrade PostgreSQL to 13+ or ensure pgcrypto is properly installed.");
157
+ }
158
+ const uuidColumnsWithoutDefault = result.uuid.uuidColumns.filter((c) => !c.hasDefault);
159
+ if (uuidColumnsWithoutDefault.length > 0) {
160
+ result.recommendations.push(`${String(uuidColumnsWithoutDefault.length)} UUID columns without default. Consider adding DEFAULT gen_random_uuid().`);
161
+ }
162
+ if (result.passwordHashing.status === "none_found") {
163
+ result.recommendations.push("No password hash columns detected. For auth systems, use crypt() + gen_salt('bf') for secure password storage.");
164
+ }
165
+ // Set security notes (informational, not warnings)
166
+ // These describe capabilities and best practices, not active issues
167
+ const passwordHashingNote = result.passwordHashing.status === "detected"
168
+ ? "Password hash columns detected. Verify bcrypt (gen_salt('bf')) or SCRAM-SHA-256 is used for storage."
169
+ : null;
170
+ result.securityNotes = passwordHashingNote
171
+ ? {
172
+ legacyAlgorithms: "MD5 and SHA-1 are available for compatibility but not recommended for security-sensitive hashing. Use SHA-256+ or bcrypt for new applications.",
173
+ passwordHashing: passwordHashingNote,
174
+ }
175
+ : {
176
+ legacyAlgorithms: "MD5 and SHA-1 are available for compatibility but not recommended for security-sensitive hashing. Use SHA-256+ or bcrypt for new applications.",
177
+ };
178
+ // Only add security best practices as a recommendation if no password columns detected
179
+ if (result.passwordHashing.status === "none_found") {
180
+ result.recommendations.push("Security best practices: Use bcrypt (gen_salt('bf')) for passwords, SHA-256+ for data integrity, AES-256 for encryption.");
181
+ }
182
+ }
183
+ catch {
184
+ // Extension is installed but data queries failed
185
+ result.recommendations.push("Error querying pgcrypto data. Check permissions.");
186
+ }
187
+ return JSON.stringify(result, null, 2);
188
+ },
189
+ };
190
+ }
191
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/crypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,6CAA6C;AAC7C,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AA2CD,MAAM,UAAU,oBAAoB,CAClC,OAAwB;IAExB,OAAO;QACL,GAAG,EAAE,mBAAmB;QACxB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,2EAA2E;QAC7E,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,KAAK,IAAqB,EAAE;YACnC,MAAM,MAAM,GAAuB;gBACjC,kBAAkB,EAAE,KAAK;gBACzB,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE;oBACnB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;oBACnC,IAAI,EAAE,EAAE;oBACR,UAAU,EAAE,EAAE;iBACf;gBACD,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE;oBACJ,sBAAsB,EAAE,KAAK;oBAC7B,WAAW,EAAE,EAAE;iBAChB;gBACD,eAAe,EAAE;oBACf,MAAM,EAAE,aAAa;oBACrB,eAAe,EAAE,EAAE;iBACpB;gBACD,gBAAgB,EAAE,EAAE;gBACpB,eAAe,EAAE,EAAE;aACpB,CAAC;YAEF,iFAAiF;YACjF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CACzC,gEAAgE,CACjE,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,0GAA0G,CAC3G,CAAC;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,CAAC,gBAAgB;gBACrB,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAErD,2DAA2D;YAC3D,gFAAgF;YAChF,MAAM,CAAC,mBAAmB,GAAG;gBAC3B,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACtC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,6CAA6C;iBACjF;gBACD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBACnD,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;aAClE,CAAC;YAEF,IAAI,CAAC;gBACH,iFAAiF;gBACjF,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;gBAC7C,CAAC;gBAED,oBAAoB;gBACpB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAC3C;;;;;;;;;;;;;;8DAcoD,CACrD,CAAC;gBAEF,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;4BAC3B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;4BACjC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BAC/B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;4BACjC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;yBACxC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,kFAAkF;gBAClF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,YAAY,CAC9C;;;;;;;;;;;;;;8BAcoB,CACrB,CAAC;gBAEF,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC;oBAC3C,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;wBACrC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC;4BAC1C,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;4BACjC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BAC/B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;yBAClC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,YAAY,CAAC;gBAC/C,CAAC;gBAED,qFAAqF;gBACrF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAC5C;;;;;;;;;;;;;;;;;;;8BAmBoB,CACrB,CAAC;gBAEF,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;oBACrB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;wBACnC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;4BAC3B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;4BACjC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BAC/B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;4BACjC,SAAS,EAAE,IAAI;yBAChB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBACxC,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,sGAAsG,CACvG,CAAC;gBACJ,CAAC;gBAED,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC;gBACF,IAAI,yBAAyB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzC,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,GAAG,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,2EAA2E,CACvH,CAAC;gBACJ,CAAC;gBAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACnD,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,gHAAgH,CACjH,CAAC;gBACJ,CAAC;gBAED,mDAAmD;gBACnD,oEAAoE;gBACpE,MAAM,mBAAmB,GACvB,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,UAAU;oBAC1C,CAAC,CAAC,sGAAsG;oBACxG,CAAC,CAAC,IAAI,CAAC;gBAEX,MAAM,CAAC,aAAa,GAAG,mBAAmB;oBACxC,CAAC,CAAC;wBACE,gBAAgB,EACd,gJAAgJ;wBAClJ,eAAe,EAAE,mBAAmB;qBACrC;oBACH,CAAC,CAAC;wBACE,gBAAgB,EACd,gJAAgJ;qBACnJ,CAAC;gBAEN,uFAAuF;gBACvF,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACnD,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,0HAA0H,CAC3H,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;gBACjD,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,kDAAkD,CACnD,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Extensions Resource
3
+ *
4
+ * Extension inventory with versions and installation recommendations.
5
+ */
6
+ import type { PostgresAdapter } from "../PostgresAdapter.js";
7
+ import type { ResourceDefinition } from "../../../types/index.js";
8
+ export declare function createExtensionsResource(adapter: PostgresAdapter): ResourceDefinition;
9
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/extensions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAUjC,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,kBAAkB,CAwFpB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Extensions Resource
3
+ *
4
+ * Extension inventory with versions and installation recommendations.
5
+ */
6
+ import { LOW_PRIORITY } from "../../../utils/resourceAnnotations.js";
7
+ export function createExtensionsResource(adapter) {
8
+ return {
9
+ uri: "postgres://extensions",
10
+ name: "Extensions Info",
11
+ description: "Installed extensions with versions and installation recommendations",
12
+ mimeType: "application/json",
13
+ annotations: LOW_PRIORITY,
14
+ handler: async (_uri, _context) => {
15
+ // Get installed extensions
16
+ const installedResult = await adapter.executeQuery(`
17
+ SELECT
18
+ e.extname,
19
+ e.extversion,
20
+ e.extrelocatable,
21
+ n.nspname as schema,
22
+ d.description
23
+ FROM pg_extension e
24
+ LEFT JOIN pg_namespace n ON e.extnamespace = n.oid
25
+ LEFT JOIN pg_description d ON d.objoid = e.oid
26
+ ORDER BY e.extname
27
+ `);
28
+ const installed = installedResult.rows ?? [];
29
+ const installedNames = installed.map((e) => e["extname"]);
30
+ // Get available but not installed extensions
31
+ const availableResult = await adapter.executeQuery(`
32
+ SELECT name, default_version, comment
33
+ FROM pg_available_extensions
34
+ WHERE name NOT IN (SELECT extname FROM pg_extension)
35
+ AND name IN ('hypopg', 'pg_stat_statements', 'vector', 'postgis', 'pg_trgm', 'fuzzystrmatch')
36
+ ORDER BY name
37
+ `);
38
+ const available = availableResult.rows ?? [];
39
+ // Generate recommendations
40
+ const recommendations = [];
41
+ const criticalExtensions = ["pg_stat_statements", "hypopg"];
42
+ const optionalExtensions = [
43
+ "vector",
44
+ "postgis",
45
+ "pg_trgm",
46
+ "fuzzystrmatch",
47
+ ];
48
+ for (const extName of criticalExtensions) {
49
+ if (!installedNames.includes(extName)) {
50
+ recommendations.push({
51
+ extension: extName,
52
+ priority: "HIGH",
53
+ sql: `CREATE EXTENSION IF NOT EXISTS ${extName};`,
54
+ reason: extName === "pg_stat_statements"
55
+ ? "Critical for performance monitoring"
56
+ : "Enables risk-free index testing",
57
+ });
58
+ }
59
+ }
60
+ const reasonMap = {
61
+ vector: "Enables AI-native semantic search",
62
+ postgis: "Enables geospatial operations",
63
+ pg_trgm: "Enables fuzzy text search",
64
+ fuzzystrmatch: "Enables phonetic matching",
65
+ };
66
+ for (const extName of optionalExtensions) {
67
+ if (!installedNames.includes(extName)) {
68
+ recommendations.push({
69
+ extension: extName,
70
+ priority: "OPTIONAL",
71
+ sql: `CREATE EXTENSION IF NOT EXISTS ${extName};`,
72
+ reason: reasonMap[extName] ?? "Adds useful functionality",
73
+ });
74
+ }
75
+ }
76
+ return {
77
+ installedCount: installed.length,
78
+ installedExtensions: installed,
79
+ availableExtensions: available,
80
+ recommendations,
81
+ };
82
+ },
83
+ };
84
+ }
85
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/extensions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AASrE,MAAM,UAAU,wBAAwB,CACtC,OAAwB;IAExB,OAAO;QACL,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,qEAAqE;QACvE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,2BAA2B;YAC3B,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;aAW5C,CAAC,CAAC;YACT,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAClC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAW,CACvD,CAAC;YAEF,6CAA6C;YAC7C,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;;;;;;aAM5C,CAAC,CAAC;YACT,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;YAE7C,2BAA2B;YAC3B,MAAM,eAAe,GAA8B,EAAE,CAAC;YAEtD,MAAM,kBAAkB,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,kBAAkB,GAAG;gBACzB,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,eAAe;aAChB,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBACzC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,eAAe,CAAC,IAAI,CAAC;wBACnB,SAAS,EAAE,OAAO;wBAClB,QAAQ,EAAE,MAAM;wBAChB,GAAG,EAAE,kCAAkC,OAAO,GAAG;wBACjD,MAAM,EACJ,OAAO,KAAK,oBAAoB;4BAC9B,CAAC,CAAC,qCAAqC;4BACvC,CAAC,CAAC,iCAAiC;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAA2B;gBACxC,MAAM,EAAE,mCAAmC;gBAC3C,OAAO,EAAE,+BAA+B;gBACxC,OAAO,EAAE,2BAA2B;gBACpC,aAAa,EAAE,2BAA2B;aAC3C,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBACzC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,eAAe,CAAC,IAAI,CAAC;wBACnB,SAAS,EAAE,OAAO;wBAClB,QAAQ,EAAE,UAAU;wBACpB,GAAG,EAAE,kCAAkC,OAAO,GAAG;wBACjD,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,2BAA2B;qBAC1D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO;gBACL,cAAc,EAAE,SAAS,CAAC,MAAM;gBAChC,mBAAmB,EAAE,SAAS;gBAC9B,mBAAmB,EAAE,SAAS;gBAC9B,eAAe;aAChB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Health Resource
3
+ *
4
+ * Comprehensive database health status.
5
+ */
6
+ import type { PostgresAdapter } from "../PostgresAdapter.js";
7
+ import type { ResourceDefinition } from "../../../types/index.js";
8
+ export declare function createHealthResource(adapter: PostgresAdapter): ResourceDefinition;
9
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/health.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AASjC,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,GACvB,kBAAkB,CAiNpB"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Health Resource
3
+ *
4
+ * Comprehensive database health status.
5
+ */
6
+ import { HIGH_PRIORITY } from "../../../utils/resourceAnnotations.js";
7
+ export function createHealthResource(adapter) {
8
+ return {
9
+ uri: "postgres://health",
10
+ name: "Database Health",
11
+ description: "Comprehensive database health status across multiple dimensions",
12
+ mimeType: "application/json",
13
+ annotations: HIGH_PRIORITY,
14
+ handler: async (_uri, _context) => {
15
+ const checks = {};
16
+ // Execute all health checks in parallel for better performance
17
+ const [connResult, cacheResult, vacuumResult, wraparoundResult, longQueryResult,] = await Promise.all([
18
+ // 1. Connection health
19
+ adapter.executeQuery(`
20
+ SELECT
21
+ count(*) as active_connections,
22
+ (SELECT setting::int FROM pg_settings WHERE name = 'max_connections') as max_connections
23
+ FROM pg_stat_activity
24
+ WHERE state IS NOT NULL
25
+ `),
26
+ // 2. Cache health
27
+ adapter.executeQuery(`
28
+ SELECT
29
+ sum(heap_blks_read) as heap_read,
30
+ sum(heap_blks_hit) as heap_hit,
31
+ CASE WHEN sum(heap_blks_read) + sum(heap_blks_hit) > 0
32
+ THEN round(100.0 * sum(heap_blks_hit) / (sum(heap_blks_hit) + sum(heap_blks_read)), 2)
33
+ ELSE 100
34
+ END as cache_hit_ratio
35
+ FROM pg_statio_user_tables
36
+ `),
37
+ // 3. Dead tuples (vacuum health)
38
+ adapter.executeQuery(`
39
+ SELECT
40
+ SUM(n_dead_tup) as total_dead,
41
+ SUM(n_live_tup) as total_live,
42
+ CASE WHEN SUM(n_live_tup) > 0
43
+ THEN round(100.0 * SUM(n_dead_tup) / SUM(n_live_tup), 2)
44
+ ELSE 0
45
+ END as dead_pct
46
+ FROM pg_stat_user_tables
47
+ `),
48
+ // 4. Transaction ID wraparound
49
+ adapter.executeQuery(`
50
+ SELECT
51
+ age(datfrozenxid) as xid_age,
52
+ round(100.0 * age(datfrozenxid) / 2147483648, 2) as percent_toward_wraparound
53
+ FROM pg_database
54
+ WHERE datname = current_database()
55
+ `),
56
+ // 5. Long-running queries
57
+ adapter.executeQuery(`
58
+ SELECT COUNT(*) as count
59
+ FROM pg_stat_activity
60
+ WHERE state = 'active'
61
+ AND query NOT LIKE '%pg_stat_activity%'
62
+ AND now() - query_start > interval '5 minutes'
63
+ `),
64
+ ]);
65
+ // Process connection health
66
+ const connRow = connResult.rows?.[0];
67
+ const activeConns = Number(connRow?.["active_connections"] ?? 0);
68
+ const maxConns = Number(connRow?.["max_connections"] ?? 100);
69
+ const connPct = (activeConns / maxConns) * 100;
70
+ checks["connections"] = {
71
+ status: connPct > 80 ? "critical" : connPct > 60 ? "warning" : "healthy",
72
+ message: activeConns.toString() +
73
+ "/" +
74
+ maxConns.toString() +
75
+ " connections (" +
76
+ connPct.toFixed(1) +
77
+ "%)",
78
+ details: { active: activeConns, max: maxConns, percentage: connPct },
79
+ };
80
+ // Process cache health with cold cache detection
81
+ const cacheRow = cacheResult.rows?.[0];
82
+ const cacheRatio = Number(cacheRow?.["cache_hit_ratio"] ?? 100);
83
+ const totalBlocks = Number(cacheRow?.["heap_read"] ?? 0) +
84
+ Number(cacheRow?.["heap_hit"] ?? 0);
85
+ const isColdCache = totalBlocks < 1000; // Very little I/O activity indicates cold cache
86
+ // Don't warn about cache ratio for cold caches - insufficient data for meaningful metric
87
+ const cacheStatus = isColdCache
88
+ ? "healthy"
89
+ : cacheRatio < 90
90
+ ? "critical"
91
+ : cacheRatio < 95
92
+ ? "warning"
93
+ : "healthy";
94
+ checks["cache"] = {
95
+ status: cacheStatus,
96
+ message: isColdCache
97
+ ? `${cacheRatio.toString()}% cache hit ratio (cold cache - limited data)`
98
+ : `${cacheRatio.toString()}% cache hit ratio`,
99
+ details: {
100
+ cacheHitRatio: cacheRatio,
101
+ totalBlocks,
102
+ context: isColdCache
103
+ ? "Cold cache - insufficient I/O activity for meaningful ratio. Normal for new/test databases."
104
+ : undefined,
105
+ },
106
+ };
107
+ // Process vacuum health - check both aggregate AND per-table stats
108
+ const deadPct = Number(vacuumResult.rows?.[0]?.["dead_pct"] ?? 0);
109
+ // Query individual tables needing attention (>20% dead tuples)
110
+ let tablesNeedingAttention = 0;
111
+ try {
112
+ const perTableResult = await adapter.executeQuery(`
113
+ SELECT COUNT(*) as count
114
+ FROM pg_stat_user_tables
115
+ WHERE n_live_tup > 0
116
+ AND (100.0 * n_dead_tup / n_live_tup) > 20
117
+ `);
118
+ tablesNeedingAttention = Number(perTableResult.rows?.[0]?.["count"] ?? 0);
119
+ }
120
+ catch {
121
+ // Query failed, continue with aggregate check only
122
+ }
123
+ // Status is warning if aggregate > 10% OR any individual table > 20%
124
+ const vacuumStatus = deadPct > 20 || tablesNeedingAttention > 0
125
+ ? deadPct > 20
126
+ ? "critical"
127
+ : "warning"
128
+ : deadPct > 10
129
+ ? "warning"
130
+ : "healthy";
131
+ checks["vacuum"] = {
132
+ status: vacuumStatus,
133
+ message: tablesNeedingAttention > 0
134
+ ? `${deadPct.toString()}% dead tuples overall, ${tablesNeedingAttention.toString()} tables need attention`
135
+ : `${deadPct.toString()}% dead tuples`,
136
+ details: {
137
+ deadTuples: Number(vacuumResult.rows?.[0]?.["total_dead"] ?? 0),
138
+ liveTuples: Number(vacuumResult.rows?.[0]?.["total_live"] ?? 0),
139
+ tablesNeedingAttention,
140
+ },
141
+ };
142
+ // Process wraparound health
143
+ const wraparoundPct = Number(wraparoundResult.rows?.[0]?.["percent_toward_wraparound"] ?? 0);
144
+ checks["wraparound"] = {
145
+ status: wraparoundPct > 75
146
+ ? "critical"
147
+ : wraparoundPct > 50
148
+ ? "warning"
149
+ : "healthy",
150
+ message: wraparoundPct.toString() + "% toward transaction ID wraparound",
151
+ details: {
152
+ xidAge: Number(wraparoundResult.rows?.[0]?.["xid_age"] ?? 0),
153
+ percentage: wraparoundPct,
154
+ },
155
+ };
156
+ // Process long-running queries
157
+ const longQueries = Number(longQueryResult.rows?.[0]?.["count"] ?? 0);
158
+ checks["longQueries"] = {
159
+ status: longQueries > 5
160
+ ? "critical"
161
+ : longQueries > 0
162
+ ? "warning"
163
+ : "healthy",
164
+ message: longQueries.toString() + " queries running > 5 minutes",
165
+ details: { count: longQueries },
166
+ };
167
+ // Overall status
168
+ const statuses = Object.values(checks).map((c) => c.status);
169
+ const overallStatus = statuses.includes("critical")
170
+ ? "critical"
171
+ : statuses.includes("warning")
172
+ ? "warning"
173
+ : "healthy";
174
+ return {
175
+ overallStatus,
176
+ checks,
177
+ timestamp: new Date().toISOString(),
178
+ nextSteps: overallStatus !== "healthy"
179
+ ? "Review warnings and use appropriate tools to address issues"
180
+ : "No immediate action required",
181
+ };
182
+ },
183
+ };
184
+ }
185
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/health.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * PostgreSQL MCP Resources
3
+ *
4
+ * Provides structured data access via URI patterns.
5
+ * 20 resources total.
6
+ */
7
+ import type { PostgresAdapter } from "../PostgresAdapter.js";
8
+ import type { ResourceDefinition } from "../../../types/index.js";
9
+ /**
10
+ * Get all PostgreSQL resources (20 total)
11
+ *
12
+ * Core (6):
13
+ * - postgres://schema - Full database schema
14
+ * - postgres://tables - Table listing with metadata
15
+ * - postgres://settings - PostgreSQL configuration
16
+ * - postgres://stats - Table/index statistics with stale detection
17
+ * - postgres://activity - Active connections and queries
18
+ * - postgres://pool - Connection pool statistics
19
+ *
20
+ * Migrated from legacy server (8):
21
+ * - postgres://capabilities - Server version, extensions, tool categories
22
+ * - postgres://performance - pg_stat_statements query metrics
23
+ * - postgres://health - Comprehensive database health status
24
+ * - postgres://extensions - Extension inventory with recommendations
25
+ * - postgres://indexes - Index usage with unused detection
26
+ * - postgres://replication - Replication status and lag monitoring
27
+ * - postgres://vacuum - Vacuum stats and wraparound warnings
28
+ * - postgres://locks - Lock contention detection
29
+ *
30
+ * Extension status (6):
31
+ * - postgres://cron - pg_cron job status and history
32
+ * - postgres://partman - pg_partman partition configuration
33
+ * - postgres://kcache - pg_stat_kcache CPU/I/O metrics
34
+ * - postgres://vector - pgvector columns and indexes
35
+ * - postgres://postgis - PostGIS spatial columns and indexes
36
+ * - postgres://crypto - pgcrypto availability and recommendations
37
+ *
38
+ */
39
+ export declare function getPostgresResources(adapter: PostgresAdapter): ResourceDefinition[];
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/resources/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA4BlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,GACvB,kBAAkB,EAAE,CA0BtB"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * PostgreSQL MCP Resources
3
+ *
4
+ * Provides structured data access via URI patterns.
5
+ * 20 resources total.
6
+ */
7
+ // Core resources
8
+ import { createSchemaResource } from "./schema.js";
9
+ import { createTablesResource } from "./tables.js";
10
+ import { createSettingsResource } from "./settings.js";
11
+ import { createStatsResource } from "./stats.js";
12
+ import { createActivityResource } from "./activity.js";
13
+ import { createPoolResource } from "./pool.js";
14
+ // Migrated resources from legacy postgres-mcp-server
15
+ import { createCapabilitiesResource } from "./capabilities.js";
16
+ import { createPerformanceResource } from "./performance.js";
17
+ import { createHealthResource } from "./health.js";
18
+ import { createExtensionsResource } from "./extensions.js";
19
+ import { createIndexesResource } from "./indexes.js";
20
+ import { createReplicationResource } from "./replication.js";
21
+ import { createVacuumResource } from "./vacuum.js";
22
+ import { createLocksResource } from "./locks.js";
23
+ // Extension status resources
24
+ import { createCronResource } from "./cron.js";
25
+ import { createPartmanResource } from "./partman.js";
26
+ import { createKcacheResource } from "./kcache.js";
27
+ import { createVectorResource } from "./vector.js";
28
+ import { createPostgisResource } from "./postgis.js";
29
+ import { createCryptoResource } from "./crypto.js";
30
+ /**
31
+ * Get all PostgreSQL resources (20 total)
32
+ *
33
+ * Core (6):
34
+ * - postgres://schema - Full database schema
35
+ * - postgres://tables - Table listing with metadata
36
+ * - postgres://settings - PostgreSQL configuration
37
+ * - postgres://stats - Table/index statistics with stale detection
38
+ * - postgres://activity - Active connections and queries
39
+ * - postgres://pool - Connection pool statistics
40
+ *
41
+ * Migrated from legacy server (8):
42
+ * - postgres://capabilities - Server version, extensions, tool categories
43
+ * - postgres://performance - pg_stat_statements query metrics
44
+ * - postgres://health - Comprehensive database health status
45
+ * - postgres://extensions - Extension inventory with recommendations
46
+ * - postgres://indexes - Index usage with unused detection
47
+ * - postgres://replication - Replication status and lag monitoring
48
+ * - postgres://vacuum - Vacuum stats and wraparound warnings
49
+ * - postgres://locks - Lock contention detection
50
+ *
51
+ * Extension status (6):
52
+ * - postgres://cron - pg_cron job status and history
53
+ * - postgres://partman - pg_partman partition configuration
54
+ * - postgres://kcache - pg_stat_kcache CPU/I/O metrics
55
+ * - postgres://vector - pgvector columns and indexes
56
+ * - postgres://postgis - PostGIS spatial columns and indexes
57
+ * - postgres://crypto - pgcrypto availability and recommendations
58
+ *
59
+ */
60
+ export function getPostgresResources(adapter) {
61
+ return [
62
+ // Core resources
63
+ createSchemaResource(adapter),
64
+ createTablesResource(adapter),
65
+ createSettingsResource(adapter),
66
+ createStatsResource(adapter),
67
+ createActivityResource(adapter),
68
+ createPoolResource(adapter),
69
+ // Migrated resources
70
+ createCapabilitiesResource(adapter),
71
+ createPerformanceResource(adapter),
72
+ createHealthResource(adapter),
73
+ createExtensionsResource(adapter),
74
+ createIndexesResource(adapter),
75
+ createReplicationResource(adapter),
76
+ createVacuumResource(adapter),
77
+ createLocksResource(adapter),
78
+ // Extension status resources
79
+ createCronResource(adapter),
80
+ createPartmanResource(adapter),
81
+ createKcacheResource(adapter),
82
+ createVectorResource(adapter),
83
+ createPostgisResource(adapter),
84
+ createCryptoResource(adapter),
85
+ ];
86
+ }
87
+ //# sourceMappingURL=index.js.map