@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,440 @@
1
+ /**
2
+ * PostgreSQL pg_cron Extension Tools
3
+ *
4
+ * Job scheduling and management using pg_cron.
5
+ * 8 tools total.
6
+ *
7
+ * pg_cron enables scheduling of SQL commands using familiar cron syntax.
8
+ * Supports standard cron (minute granularity) and interval scheduling.
9
+ */
10
+ import { z } from "zod";
11
+ import { readOnly, write, destructive } from "../../../utils/annotations.js";
12
+ import { getToolIcons } from "../../../utils/icons.js";
13
+ import { CronScheduleSchema, CronScheduleSchemaBase, CronScheduleInDatabaseSchema, CronScheduleInDatabaseSchemaBase, CronAlterJobSchema, CronUnscheduleSchema, CronJobRunDetailsSchema, CronCleanupHistorySchema, CronCleanupHistorySchemaBase, } from "../schemas/index.js";
14
+ /**
15
+ * Get all pg_cron tools
16
+ */
17
+ export function getCronTools(adapter) {
18
+ return [
19
+ createCronExtensionTool(adapter),
20
+ createCronScheduleTool(adapter),
21
+ createCronScheduleInDatabaseTool(adapter),
22
+ createCronUnscheduleTool(adapter),
23
+ createCronAlterJobTool(adapter),
24
+ createCronListJobsTool(adapter),
25
+ createCronJobRunDetailsTool(adapter),
26
+ createCronCleanupHistoryTool(adapter),
27
+ ];
28
+ }
29
+ /**
30
+ * Enable the pg_cron extension
31
+ */
32
+ function createCronExtensionTool(adapter) {
33
+ return {
34
+ name: "pg_cron_create_extension",
35
+ description: "Enable the pg_cron extension for job scheduling. Requires superuser privileges.",
36
+ group: "cron",
37
+ inputSchema: z.object({}),
38
+ annotations: write("Create Cron Extension"),
39
+ icons: getToolIcons("cron", write("Create Cron Extension")),
40
+ handler: async (_params, _context) => {
41
+ await adapter.executeQuery("CREATE EXTENSION IF NOT EXISTS pg_cron");
42
+ return { success: true, message: "pg_cron extension enabled" };
43
+ },
44
+ };
45
+ }
46
+ /**
47
+ * Schedule a new cron job
48
+ */
49
+ function createCronScheduleTool(adapter) {
50
+ return {
51
+ name: "pg_cron_schedule",
52
+ description: `Schedule a new cron job. Supports standard cron syntax (e.g., "0 2 * * *" for 2 AM daily)
53
+ or interval syntax (e.g., "30 seconds"). Note: pg_cron allows duplicate job names; use unique names to avoid confusion. Returns the job ID.`,
54
+ group: "cron",
55
+ // Use base schema for MCP so properties are properly exposed
56
+ inputSchema: CronScheduleSchemaBase,
57
+ annotations: write("Schedule Cron Job"),
58
+ icons: getToolIcons("cron", write("Schedule Cron Job")),
59
+ handler: async (params, _context) => {
60
+ // Use transformed schema with alias resolution for validation
61
+ const { schedule, command, jobName } = CronScheduleSchema.parse(params);
62
+ let sql;
63
+ let queryParams;
64
+ if (jobName !== undefined) {
65
+ sql = "SELECT cron.schedule($1, $2, $3) as jobid";
66
+ queryParams = [jobName, schedule, command];
67
+ }
68
+ else {
69
+ sql = "SELECT cron.schedule($1, $2) as jobid";
70
+ queryParams = [schedule, command];
71
+ }
72
+ const result = await adapter.executeQuery(sql, queryParams);
73
+ const jobId = result.rows?.[0]?.["jobid"];
74
+ return {
75
+ success: true,
76
+ jobId,
77
+ jobName: jobName ?? null,
78
+ schedule,
79
+ command,
80
+ message: `Job scheduled with ID ${String(jobId)}`,
81
+ hint: jobName
82
+ ? "Use pg_cron_list_jobs to verify job was created with expected name"
83
+ : undefined,
84
+ };
85
+ },
86
+ };
87
+ }
88
+ /**
89
+ * Schedule a job in a different database
90
+ */
91
+ function createCronScheduleInDatabaseTool(adapter) {
92
+ return {
93
+ name: "pg_cron_schedule_in_database",
94
+ description: `Schedule a cron job to run in a different database. Useful for cross-database
95
+ maintenance tasks. Returns the job ID.`,
96
+ group: "cron",
97
+ // Use base schema for MCP so properties are properly exposed
98
+ inputSchema: CronScheduleInDatabaseSchemaBase,
99
+ annotations: write("Schedule Cron in Database"),
100
+ icons: getToolIcons("cron", write("Schedule Cron in Database")),
101
+ handler: async (params, _context) => {
102
+ // Use transformed schema with alias resolution for validation
103
+ const { jobName, schedule, command, database, username, active } = CronScheduleInDatabaseSchema.parse(params);
104
+ const activeVal = active ?? true;
105
+ const sql = `SELECT cron.schedule_in_database($1, $2, $3, $4, $5, $6) as jobid`;
106
+ const queryParams = [
107
+ jobName,
108
+ schedule,
109
+ command,
110
+ database,
111
+ username ?? null,
112
+ activeVal,
113
+ ];
114
+ const result = await adapter.executeQuery(sql, queryParams);
115
+ const jobId = result.rows?.[0]?.["jobid"];
116
+ return {
117
+ success: true,
118
+ jobId,
119
+ jobName,
120
+ schedule,
121
+ command,
122
+ database,
123
+ username: username ?? null,
124
+ active: activeVal,
125
+ message: `Job scheduled in database '${database}' with ID ${String(jobId)}`,
126
+ };
127
+ },
128
+ };
129
+ }
130
+ /**
131
+ * Remove a scheduled job
132
+ */
133
+ function createCronUnscheduleTool(adapter) {
134
+ return {
135
+ name: "pg_cron_unschedule",
136
+ description: "Remove a scheduled cron job by its ID or name. If both are provided, jobName takes precedence. Job ID accepts numbers or numeric strings. Works for both active and inactive jobs.",
137
+ group: "cron",
138
+ inputSchema: CronUnscheduleSchema,
139
+ annotations: destructive("Unschedule Cron Job"),
140
+ icons: getToolIcons("cron", destructive("Unschedule Cron Job")),
141
+ handler: async (params, _context) => {
142
+ const parsed = CronUnscheduleSchema.parse(params);
143
+ // Prefer jobName over jobId when both provided
144
+ const useJobName = parsed.jobName !== undefined;
145
+ const warning = parsed.jobId !== undefined && parsed.jobName !== undefined
146
+ ? "Both jobId and jobName provided; using jobName"
147
+ : undefined;
148
+ // Look up job info before deletion to return complete response
149
+ let jobInfo = null;
150
+ try {
151
+ const lookupSql = useJobName
152
+ ? "SELECT jobid, jobname FROM cron.job WHERE jobname = $1"
153
+ : "SELECT jobid, jobname FROM cron.job WHERE jobid = $1::bigint";
154
+ const lookupResult = await adapter.executeQuery(lookupSql, [
155
+ useJobName ? parsed.jobName : parsed.jobId,
156
+ ]);
157
+ if (lookupResult.rows && lookupResult.rows.length > 0) {
158
+ const row = lookupResult.rows[0];
159
+ jobInfo = {
160
+ jobid: Number(row.jobid),
161
+ jobname: row.jobname,
162
+ };
163
+ }
164
+ }
165
+ catch {
166
+ // Lookup failed, continue with unschedule attempt
167
+ }
168
+ // Use explicit type casting to ensure correct pg_cron function overload:
169
+ // - cron.unschedule(bigint) works for both active and inactive jobs
170
+ // - cron.unschedule(text) only finds active jobs by name
171
+ let sql;
172
+ let queryParams;
173
+ if (useJobName) {
174
+ sql = "SELECT cron.unschedule($1::text) as removed";
175
+ queryParams = [parsed.jobName];
176
+ }
177
+ else {
178
+ sql = "SELECT cron.unschedule($1::bigint) as removed";
179
+ queryParams = [parsed.jobId];
180
+ }
181
+ const result = await adapter.executeQuery(sql, queryParams);
182
+ const removed = result.rows?.[0]?.["removed"];
183
+ // Return complete job info from lookup
184
+ const resolvedJobId = jobInfo?.jobid ?? parsed.jobId ?? null;
185
+ const resolvedJobName = jobInfo?.jobname ?? parsed.jobName ?? null;
186
+ return {
187
+ success: removed,
188
+ jobId: resolvedJobId,
189
+ jobName: resolvedJobName,
190
+ usedIdentifier: useJobName ? "jobName" : "jobId",
191
+ warning,
192
+ message: removed
193
+ ? `Job ${resolvedJobId !== null ? `ID ${String(resolvedJobId)}` : `"${String(resolvedJobName)}"`} removed successfully`
194
+ : "Job not found",
195
+ };
196
+ },
197
+ };
198
+ }
199
+ /**
200
+ * Modify an existing job
201
+ */
202
+ function createCronAlterJobTool(adapter) {
203
+ return {
204
+ name: "pg_cron_alter_job",
205
+ description: `Modify an existing cron job. Can change schedule, command, database, username,
206
+ or active status. Only specify the parameters you want to change.`,
207
+ group: "cron",
208
+ inputSchema: CronAlterJobSchema,
209
+ annotations: write("Alter Cron Job"),
210
+ icons: getToolIcons("cron", write("Alter Cron Job")),
211
+ handler: async (params, _context) => {
212
+ const { jobId, schedule, command, database, username, active } = CronAlterJobSchema.parse(params);
213
+ const sql = `SELECT cron.alter_job($1, $2, $3, $4, $5, $6)`;
214
+ const queryParams = [
215
+ jobId,
216
+ schedule ?? null,
217
+ command ?? null,
218
+ database ?? null,
219
+ username ?? null,
220
+ active ?? null,
221
+ ];
222
+ await adapter.executeQuery(sql, queryParams);
223
+ return {
224
+ success: true,
225
+ jobId,
226
+ changes: {
227
+ schedule: schedule ?? undefined,
228
+ command: command ?? undefined,
229
+ database: database ?? undefined,
230
+ username: username ?? undefined,
231
+ active: active ?? undefined,
232
+ },
233
+ message: `Job ${String(jobId)} updated successfully`,
234
+ };
235
+ },
236
+ };
237
+ }
238
+ /**
239
+ * List all scheduled jobs
240
+ */
241
+ function createCronListJobsTool(adapter) {
242
+ const ListJobsSchema = z.object({
243
+ active: z.boolean().optional().describe("Filter by active status"),
244
+ limit: z
245
+ .number()
246
+ .optional()
247
+ .describe("Maximum jobs to return (default: 50, use 0 for all)"),
248
+ });
249
+ return {
250
+ name: "pg_cron_list_jobs",
251
+ description: "List all scheduled cron jobs. Shows job ID, name, schedule, command, and status. Jobs without names (jobname: null) must be referenced by jobId. Default limit: 50 rows.",
252
+ group: "cron",
253
+ inputSchema: ListJobsSchema,
254
+ annotations: readOnly("List Cron Jobs"),
255
+ icons: getToolIcons("cron", readOnly("List Cron Jobs")),
256
+ handler: async (params, _context) => {
257
+ const parsed = ListJobsSchema.parse(params ?? {});
258
+ let sql = `
259
+ SELECT
260
+ jobid,
261
+ jobname,
262
+ schedule,
263
+ command,
264
+ nodename,
265
+ nodeport,
266
+ database,
267
+ username,
268
+ active
269
+ FROM cron.job
270
+ `;
271
+ const queryParams = [];
272
+ if (parsed.active !== undefined) {
273
+ sql += " WHERE active = $1";
274
+ queryParams.push(parsed.active);
275
+ }
276
+ sql += " ORDER BY jobid";
277
+ // Get total count first if we're limiting
278
+ const limitVal = parsed.limit === 0 ? null : (parsed.limit ?? 50);
279
+ let totalCount;
280
+ if (limitVal !== null) {
281
+ let countSql = "SELECT COUNT(*)::int as total FROM cron.job";
282
+ if (parsed.active !== undefined) {
283
+ countSql += " WHERE active = $1";
284
+ }
285
+ const countResult = await adapter.executeQuery(countSql, parsed.active !== undefined ? [parsed.active] : []);
286
+ totalCount = countResult.rows?.[0]
287
+ ?.total;
288
+ sql += ` LIMIT ${String(limitVal)}`;
289
+ }
290
+ const result = await adapter.executeQuery(sql, queryParams);
291
+ // Normalize jobid to number (PostgreSQL BIGINT may return as string)
292
+ const jobs = (result.rows ?? []).map((row) => ({
293
+ ...row,
294
+ jobid: row["jobid"] !== null && row["jobid"] !== undefined
295
+ ? Number(row["jobid"])
296
+ : null,
297
+ }));
298
+ // Count unnamed jobs for hint
299
+ const unnamedCount = jobs.filter((j) => j["jobname"] === null).length;
300
+ // Determine if results were truncated
301
+ const truncated = limitVal !== null &&
302
+ totalCount !== undefined &&
303
+ jobs.length < totalCount;
304
+ return {
305
+ jobs,
306
+ count: jobs.length,
307
+ ...(truncated ? { truncated: true, totalCount } : {}),
308
+ hint: unnamedCount > 0
309
+ ? `${String(unnamedCount)} job(s) have no name. Use jobId to reference them with alterJob or unschedule.`
310
+ : undefined,
311
+ };
312
+ },
313
+ };
314
+ }
315
+ /**
316
+ * View job execution history
317
+ */
318
+ function createCronJobRunDetailsTool(adapter) {
319
+ return {
320
+ name: "pg_cron_job_run_details",
321
+ description: `View execution history for cron jobs. Shows start/end times, status, and return messages.
322
+ Useful for monitoring and debugging scheduled jobs.`,
323
+ group: "cron",
324
+ inputSchema: CronJobRunDetailsSchema,
325
+ annotations: readOnly("Cron Job Run Details"),
326
+ icons: getToolIcons("cron", readOnly("Cron Job Run Details")),
327
+ handler: async (params, _context) => {
328
+ const { jobId, status, limit } = CronJobRunDetailsSchema.parse(params);
329
+ const conditions = [];
330
+ const queryParams = [];
331
+ let paramIndex = 1;
332
+ if (jobId !== undefined) {
333
+ conditions.push(`jobid = $${String(paramIndex++)}`);
334
+ queryParams.push(jobId);
335
+ }
336
+ if (status !== undefined) {
337
+ conditions.push(`status = $${String(paramIndex++)}`);
338
+ queryParams.push(status);
339
+ }
340
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
341
+ // Handle limit: 0 as "no limit" (return all rows), consistent with other AI-optimized tools
342
+ const limitVal = limit === 0 ? null : (limit ?? 100);
343
+ // Get total count for truncation indicator (only needed when limiting)
344
+ let totalCount;
345
+ if (limitVal !== null) {
346
+ const countSql = `SELECT COUNT(*)::int as total FROM cron.job_run_details ${whereClause}`;
347
+ const countResult = await adapter.executeQuery(countSql, queryParams);
348
+ totalCount =
349
+ countResult.rows?.[0]?.total ?? 0;
350
+ }
351
+ const limitClause = limitVal !== null ? `LIMIT ${String(limitVal)}` : "";
352
+ const sql = `
353
+ SELECT
354
+ runid,
355
+ jobid,
356
+ job_pid,
357
+ database,
358
+ username,
359
+ command,
360
+ status,
361
+ return_message,
362
+ start_time,
363
+ end_time
364
+ FROM cron.job_run_details
365
+ ${whereClause}
366
+ ORDER BY start_time DESC
367
+ ${limitClause}
368
+ `;
369
+ const result = await adapter.executeQuery(sql, queryParams);
370
+ // Normalize runid and jobid to numbers (PostgreSQL BIGINT may return as strings)
371
+ const rows = (result.rows ?? []).map((r) => ({
372
+ ...r,
373
+ runid: r["runid"] !== null && r["runid"] !== undefined
374
+ ? Number(r["runid"])
375
+ : null,
376
+ jobid: r["jobid"] !== null && r["jobid"] !== undefined
377
+ ? Number(r["jobid"])
378
+ : null,
379
+ }));
380
+ const succeeded = rows.filter((r) => r["status"] === "succeeded").length;
381
+ const failed = rows.filter((r) => r["status"] === "failed").length;
382
+ const running = rows.filter((r) => r["status"] === "running").length;
383
+ // Determine if results were truncated (only when limiting)
384
+ const truncated = limitVal !== null &&
385
+ totalCount !== undefined &&
386
+ rows.length < totalCount;
387
+ return {
388
+ runs: rows,
389
+ count: rows.length,
390
+ ...(truncated ? { truncated: true, totalCount } : {}),
391
+ summary: {
392
+ succeeded,
393
+ failed,
394
+ running,
395
+ },
396
+ };
397
+ },
398
+ };
399
+ }
400
+ /**
401
+ * Clean up old job run history
402
+ */
403
+ function createCronCleanupHistoryTool(adapter) {
404
+ return {
405
+ name: "pg_cron_cleanup_history",
406
+ description: `Delete old job run history records. Helps prevent the cron.job_run_details table
407
+ from growing too large. By default, removes records older than 7 days.`,
408
+ group: "cron",
409
+ // Use base schema for MCP visibility
410
+ inputSchema: CronCleanupHistorySchemaBase,
411
+ annotations: destructive("Cleanup Cron History"),
412
+ icons: getToolIcons("cron", destructive("Cleanup Cron History")),
413
+ handler: async (params, _context) => {
414
+ // Use transformed schema for validation with alias support
415
+ const { olderThanDays, jobId } = CronCleanupHistorySchema.parse(params);
416
+ const days = olderThanDays ?? 7;
417
+ const conditions = [
418
+ `end_time < now() - interval '${String(days)} days'`,
419
+ ];
420
+ const queryParams = [];
421
+ if (jobId !== undefined) {
422
+ conditions.push("jobid = $1");
423
+ queryParams.push(jobId);
424
+ }
425
+ const sql = `
426
+ DELETE FROM cron.job_run_details
427
+ WHERE ${conditions.join(" AND ")}
428
+ `;
429
+ const result = await adapter.executeQuery(sql, queryParams);
430
+ return {
431
+ success: true,
432
+ deletedCount: result.rowsAffected ?? 0,
433
+ olderThanDays: days,
434
+ jobId: jobId ?? null,
435
+ message: `Deleted ${String(result.rowsAffected ?? 0)} old job run records`,
436
+ };
437
+ },
438
+ };
439
+ }
440
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/cron.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * PostgreSQL JSONB Tools - Advanced Operations
3
+ *
4
+ * Advanced JSONB operations including path validation, merge, normalize, diff, index suggestions, security scanning, and statistics.
5
+ */
6
+ import type { PostgresAdapter } from "../../PostgresAdapter.js";
7
+ import type { ToolDefinition } from "../../../../types/index.js";
8
+ /**
9
+ * Validate JSON path expression
10
+ */
11
+ export declare function createJsonbValidatePathTool(adapter: PostgresAdapter): ToolDefinition;
12
+ /**
13
+ * Deep merge two JSONB documents
14
+ */
15
+ export declare function createJsonbMergeTool(adapter: PostgresAdapter): ToolDefinition;
16
+ /**
17
+ * Normalize JSONB to relational form (key-value pairs)
18
+ */
19
+ export declare function createJsonbNormalizeTool(adapter: PostgresAdapter): ToolDefinition;
20
+ export declare function createJsonbDiffTool(adapter: PostgresAdapter): ToolDefinition;
21
+ /**
22
+ * Suggest JSONB indexes based on query patterns
23
+ */
24
+ export declare function createJsonbIndexSuggestTool(adapter: PostgresAdapter): ToolDefinition;
25
+ /**
26
+ * Scan JSONB for security issues
27
+ */
28
+ export declare function createJsonbSecurityScanTool(adapter: PostgresAdapter): ToolDefinition;
29
+ /**
30
+ * Get JSONB column statistics
31
+ */
32
+ export declare function createJsonbStatsTool(adapter: PostgresAdapter): ToolDefinition;
33
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/advanced.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAiBpC;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAuDhB;AAwHD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAkC7E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CAuJhB;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAmD5E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAuHhB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAqHhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAuH7E"}