@neverinfamous/postgres-mcp 1.3.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +244 -129
  3. package/dist/__tests__/benchmarks/codemode.bench.d.ts +10 -0
  4. package/dist/__tests__/benchmarks/codemode.bench.d.ts.map +1 -0
  5. package/dist/__tests__/benchmarks/codemode.bench.js +159 -0
  6. package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -0
  7. package/dist/__tests__/benchmarks/connection-pool.bench.d.ts +10 -0
  8. package/dist/__tests__/benchmarks/connection-pool.bench.d.ts.map +1 -0
  9. package/dist/__tests__/benchmarks/connection-pool.bench.js +123 -0
  10. package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -0
  11. package/dist/__tests__/benchmarks/handler-dispatch.bench.d.ts +11 -0
  12. package/dist/__tests__/benchmarks/handler-dispatch.bench.d.ts.map +1 -0
  13. package/dist/__tests__/benchmarks/handler-dispatch.bench.js +199 -0
  14. package/dist/__tests__/benchmarks/handler-dispatch.bench.js.map +1 -0
  15. package/dist/__tests__/benchmarks/logger-sanitization.bench.d.ts +15 -0
  16. package/dist/__tests__/benchmarks/logger-sanitization.bench.d.ts.map +1 -0
  17. package/dist/__tests__/benchmarks/logger-sanitization.bench.js +155 -0
  18. package/dist/__tests__/benchmarks/logger-sanitization.bench.js.map +1 -0
  19. package/dist/__tests__/benchmarks/resource-prompts.bench.d.ts +10 -0
  20. package/dist/__tests__/benchmarks/resource-prompts.bench.d.ts.map +1 -0
  21. package/dist/__tests__/benchmarks/resource-prompts.bench.js +181 -0
  22. package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -0
  23. package/dist/__tests__/benchmarks/schema-parsing.bench.d.ts +11 -0
  24. package/dist/__tests__/benchmarks/schema-parsing.bench.d.ts.map +1 -0
  25. package/dist/__tests__/benchmarks/schema-parsing.bench.js +209 -0
  26. package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -0
  27. package/dist/__tests__/benchmarks/tool-filtering.bench.d.ts +9 -0
  28. package/dist/__tests__/benchmarks/tool-filtering.bench.d.ts.map +1 -0
  29. package/dist/__tests__/benchmarks/tool-filtering.bench.js +83 -0
  30. package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -0
  31. package/dist/__tests__/benchmarks/transport-auth.bench.d.ts +10 -0
  32. package/dist/__tests__/benchmarks/transport-auth.bench.d.ts.map +1 -0
  33. package/dist/__tests__/benchmarks/transport-auth.bench.js +128 -0
  34. package/dist/__tests__/benchmarks/transport-auth.bench.js.map +1 -0
  35. package/dist/__tests__/benchmarks/utilities.bench.d.ts +10 -0
  36. package/dist/__tests__/benchmarks/utilities.bench.d.ts.map +1 -0
  37. package/dist/__tests__/benchmarks/utilities.bench.js +164 -0
  38. package/dist/__tests__/benchmarks/utilities.bench.js.map +1 -0
  39. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  40. package/dist/__tests__/mocks/adapter.js +2 -1
  41. package/dist/__tests__/mocks/adapter.js.map +1 -1
  42. package/dist/adapters/DatabaseAdapter.d.ts +6 -1
  43. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  44. package/dist/adapters/DatabaseAdapter.js +23 -7
  45. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  46. package/dist/adapters/postgresql/PostgresAdapter.d.ts +5 -22
  47. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  48. package/dist/adapters/postgresql/PostgresAdapter.js +30 -519
  49. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  50. package/dist/adapters/postgresql/prompts/index.js +1 -1
  51. package/dist/adapters/postgresql/prompts/index.js.map +1 -1
  52. package/dist/adapters/postgresql/resources/index.d.ts +1 -1
  53. package/dist/adapters/postgresql/resources/index.js +3 -3
  54. package/dist/adapters/postgresql/resources/index.js.map +1 -1
  55. package/dist/adapters/postgresql/schema-operations.d.ts +71 -0
  56. package/dist/adapters/postgresql/schema-operations.d.ts.map +1 -0
  57. package/dist/adapters/postgresql/schema-operations.js +561 -0
  58. package/dist/adapters/postgresql/schema-operations.js.map +1 -0
  59. package/dist/adapters/postgresql/schemas/admin.d.ts +4 -4
  60. package/dist/adapters/postgresql/schemas/admin.js +4 -4
  61. package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
  62. package/dist/adapters/postgresql/schemas/backup.d.ts +39 -25
  63. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
  64. package/dist/adapters/postgresql/schemas/backup.js +54 -25
  65. package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
  66. package/dist/adapters/postgresql/schemas/core/index.d.ts +6 -0
  67. package/dist/adapters/postgresql/schemas/core/index.d.ts.map +1 -0
  68. package/dist/adapters/postgresql/schemas/core/index.js +6 -0
  69. package/dist/adapters/postgresql/schemas/core/index.js.map +1 -0
  70. package/dist/adapters/postgresql/schemas/{core.d.ts → core/queries.d.ts} +12 -167
  71. package/dist/adapters/postgresql/schemas/core/queries.d.ts.map +1 -0
  72. package/dist/adapters/postgresql/schemas/{core.js → core/queries.js} +5 -213
  73. package/dist/adapters/postgresql/schemas/core/queries.js.map +1 -0
  74. package/dist/adapters/postgresql/schemas/core/transactions.d.ts +149 -0
  75. package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -0
  76. package/dist/adapters/postgresql/schemas/core/transactions.js +239 -0
  77. package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -0
  78. package/dist/adapters/postgresql/schemas/cron.d.ts +12 -12
  79. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
  80. package/dist/adapters/postgresql/schemas/cron.js +38 -10
  81. package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
  82. package/dist/adapters/postgresql/schemas/extensions/citext.d.ts +222 -0
  83. package/dist/adapters/postgresql/schemas/extensions/citext.d.ts.map +1 -0
  84. package/dist/adapters/postgresql/schemas/extensions/citext.js +306 -0
  85. package/dist/adapters/postgresql/schemas/extensions/citext.js.map +1 -0
  86. package/dist/adapters/postgresql/schemas/extensions/index.d.ts +15 -0
  87. package/dist/adapters/postgresql/schemas/extensions/index.d.ts.map +1 -0
  88. package/dist/adapters/postgresql/schemas/extensions/index.js +20 -0
  89. package/dist/adapters/postgresql/schemas/extensions/index.js.map +1 -0
  90. package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts +164 -0
  91. package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts.map +1 -0
  92. package/dist/adapters/postgresql/schemas/extensions/kcache.js +225 -0
  93. package/dist/adapters/postgresql/schemas/extensions/kcache.js.map +1 -0
  94. package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts +253 -0
  95. package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts.map +1 -0
  96. package/dist/adapters/postgresql/schemas/extensions/ltree.js +430 -0
  97. package/dist/adapters/postgresql/schemas/extensions/ltree.js.map +1 -0
  98. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts +251 -0
  99. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts.map +1 -0
  100. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js +294 -0
  101. package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js.map +1 -0
  102. package/dist/adapters/postgresql/schemas/extensions/shared.d.ts +10 -0
  103. package/dist/adapters/postgresql/schemas/extensions/shared.d.ts.map +1 -0
  104. package/dist/adapters/postgresql/schemas/extensions/shared.js +15 -0
  105. package/dist/adapters/postgresql/schemas/extensions/shared.js.map +1 -0
  106. package/dist/adapters/postgresql/schemas/index.d.ts +8 -7
  107. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  108. package/dist/adapters/postgresql/schemas/index.js +16 -10
  109. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  110. package/dist/adapters/postgresql/schemas/introspection.d.ts +445 -0
  111. package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -0
  112. package/dist/adapters/postgresql/schemas/introspection.js +481 -0
  113. package/dist/adapters/postgresql/schemas/introspection.js.map +1 -0
  114. package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts +270 -0
  115. package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts.map +1 -0
  116. package/dist/adapters/postgresql/schemas/jsonb/advanced.js +371 -0
  117. package/dist/adapters/postgresql/schemas/jsonb/advanced.js.map +1 -0
  118. package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts +283 -0
  119. package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts.map +1 -0
  120. package/dist/adapters/postgresql/schemas/jsonb/basic.js +456 -0
  121. package/dist/adapters/postgresql/schemas/jsonb/basic.js.map +1 -0
  122. package/dist/adapters/postgresql/schemas/jsonb/index.d.ts +6 -0
  123. package/dist/adapters/postgresql/schemas/jsonb/index.d.ts.map +1 -0
  124. package/dist/adapters/postgresql/schemas/jsonb/index.js +6 -0
  125. package/dist/adapters/postgresql/schemas/jsonb/index.js.map +1 -0
  126. package/dist/adapters/postgresql/schemas/monitoring.d.ts +45 -29
  127. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
  128. package/dist/adapters/postgresql/schemas/monitoring.js +51 -18
  129. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
  130. package/dist/adapters/postgresql/schemas/partitioning.d.ts +28 -32
  131. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
  132. package/dist/adapters/postgresql/schemas/partitioning.js +82 -53
  133. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
  134. package/dist/adapters/postgresql/schemas/partman.d.ts +78 -7
  135. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
  136. package/dist/adapters/postgresql/schemas/partman.js +54 -41
  137. package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
  138. package/dist/adapters/postgresql/schemas/performance.d.ts +37 -19
  139. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
  140. package/dist/adapters/postgresql/schemas/performance.js +54 -12
  141. package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
  142. package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts +429 -0
  143. package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts.map +1 -0
  144. package/dist/adapters/postgresql/schemas/{postgis.js → postgis/advanced.js} +4 -467
  145. package/dist/adapters/postgresql/schemas/postgis/advanced.js.map +1 -0
  146. package/dist/adapters/postgresql/schemas/{postgis.d.ts → postgis/basic.d.ts} +1 -423
  147. package/dist/adapters/postgresql/schemas/postgis/basic.d.ts.map +1 -0
  148. package/dist/adapters/postgresql/schemas/postgis/basic.js +493 -0
  149. package/dist/adapters/postgresql/schemas/postgis/basic.js.map +1 -0
  150. package/dist/adapters/postgresql/schemas/postgis/index.d.ts +6 -0
  151. package/dist/adapters/postgresql/schemas/postgis/index.d.ts.map +1 -0
  152. package/dist/adapters/postgresql/schemas/postgis/index.js +6 -0
  153. package/dist/adapters/postgresql/schemas/postgis/index.js.map +1 -0
  154. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +50 -32
  155. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
  156. package/dist/adapters/postgresql/schemas/schema-mgmt.js +93 -26
  157. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
  158. package/dist/adapters/postgresql/schemas/stats/index.d.ts +6 -0
  159. package/dist/adapters/postgresql/schemas/stats/index.d.ts.map +1 -0
  160. package/dist/adapters/postgresql/schemas/stats/index.js +6 -0
  161. package/dist/adapters/postgresql/schemas/stats/index.js.map +1 -0
  162. package/dist/adapters/postgresql/schemas/stats/input.d.ts +260 -0
  163. package/dist/adapters/postgresql/schemas/stats/input.d.ts.map +1 -0
  164. package/dist/adapters/postgresql/schemas/{stats.js → stats/input.js} +2 -331
  165. package/dist/adapters/postgresql/schemas/stats/input.js.map +1 -0
  166. package/dist/adapters/postgresql/schemas/{stats.d.ts → stats/output.d.ts} +3 -246
  167. package/dist/adapters/postgresql/schemas/stats/output.d.ts.map +1 -0
  168. package/dist/adapters/postgresql/schemas/stats/output.js +334 -0
  169. package/dist/adapters/postgresql/schemas/stats/output.js.map +1 -0
  170. package/dist/adapters/postgresql/schemas/text-search.d.ts +44 -32
  171. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
  172. package/dist/adapters/postgresql/schemas/text-search.js +53 -36
  173. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
  174. package/dist/adapters/postgresql/schemas/vector.d.ts +10 -10
  175. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  176. package/dist/adapters/postgresql/schemas/vector.js +12 -16
  177. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  178. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
  179. package/dist/adapters/postgresql/tools/admin.js +82 -67
  180. package/dist/adapters/postgresql/tools/admin.js.map +1 -1
  181. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
  182. package/dist/adapters/postgresql/tools/backup/dump.js +119 -97
  183. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
  184. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
  185. package/dist/adapters/postgresql/tools/backup/planning.js +345 -287
  186. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
  187. package/dist/adapters/postgresql/tools/citext/analysis.d.ts +24 -0
  188. package/dist/adapters/postgresql/tools/citext/analysis.d.ts.map +1 -0
  189. package/dist/adapters/postgresql/tools/{citext.js → citext/analysis.js} +131 -281
  190. package/dist/adapters/postgresql/tools/citext/analysis.js.map +1 -0
  191. package/dist/adapters/postgresql/tools/citext/index.d.ts +15 -0
  192. package/dist/adapters/postgresql/tools/citext/index.d.ts.map +1 -0
  193. package/dist/adapters/postgresql/tools/citext/index.js +23 -0
  194. package/dist/adapters/postgresql/tools/citext/index.js.map +1 -0
  195. package/dist/adapters/postgresql/tools/citext/setup.d.ts +16 -0
  196. package/dist/adapters/postgresql/tools/citext/setup.d.ts.map +1 -0
  197. package/dist/adapters/postgresql/tools/citext/setup.js +193 -0
  198. package/dist/adapters/postgresql/tools/citext/setup.js.map +1 -0
  199. package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -1
  200. package/dist/adapters/postgresql/tools/codemode/index.js +3 -12
  201. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
  202. package/dist/adapters/postgresql/tools/core/convenience.d.ts +12 -22
  203. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
  204. package/dist/adapters/postgresql/tools/core/convenience.js +116 -211
  205. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
  206. package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +1 -0
  207. package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -1
  208. package/dist/adapters/postgresql/tools/core/error-helpers.js +8 -1
  209. package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -1
  210. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
  211. package/dist/adapters/postgresql/tools/core/health.js +124 -114
  212. package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
  213. package/dist/adapters/postgresql/tools/core/index.d.ts +2 -1
  214. package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -1
  215. package/dist/adapters/postgresql/tools/core/index.js +3 -2
  216. package/dist/adapters/postgresql/tools/core/index.js.map +1 -1
  217. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
  218. package/dist/adapters/postgresql/tools/core/indexes.js +153 -128
  219. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
  220. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
  221. package/dist/adapters/postgresql/tools/core/objects.js +186 -161
  222. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
  223. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
  224. package/dist/adapters/postgresql/tools/core/query.js +37 -25
  225. package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
  226. package/dist/adapters/postgresql/tools/core/schemas.d.ts +6 -3
  227. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
  228. package/dist/adapters/postgresql/tools/core/schemas.js +11 -2
  229. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
  230. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
  231. package/dist/adapters/postgresql/tools/core/tables.js +156 -129
  232. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
  233. package/dist/adapters/postgresql/tools/core/utility.d.ts +26 -0
  234. package/dist/adapters/postgresql/tools/core/utility.d.ts.map +1 -0
  235. package/dist/adapters/postgresql/tools/core/utility.js +174 -0
  236. package/dist/adapters/postgresql/tools/core/utility.js.map +1 -0
  237. package/dist/adapters/postgresql/tools/cron.js +149 -70
  238. package/dist/adapters/postgresql/tools/cron.js.map +1 -1
  239. package/dist/adapters/postgresql/tools/introspection/analysis.d.ts +12 -0
  240. package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -0
  241. package/dist/adapters/postgresql/tools/introspection/analysis.js +574 -0
  242. package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -0
  243. package/dist/adapters/postgresql/tools/introspection/graph.d.ts +55 -0
  244. package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -0
  245. package/dist/adapters/postgresql/tools/introspection/graph.js +638 -0
  246. package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -0
  247. package/dist/adapters/postgresql/tools/introspection/index.d.ts +19 -0
  248. package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -0
  249. package/dist/adapters/postgresql/tools/introspection/index.js +36 -0
  250. package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -0
  251. package/dist/adapters/postgresql/tools/introspection/migration.d.ts +15 -0
  252. package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -0
  253. package/dist/adapters/postgresql/tools/introspection/migration.js +599 -0
  254. package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -0
  255. package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts +20 -0
  256. package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts.map +1 -0
  257. package/dist/adapters/postgresql/tools/jsonb/analytics.js +367 -0
  258. package/dist/adapters/postgresql/tools/jsonb/analytics.js.map +1 -0
  259. package/dist/adapters/postgresql/tools/jsonb/index.d.ts +4 -2
  260. package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -1
  261. package/dist/adapters/postgresql/tools/jsonb/index.js +8 -4
  262. package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -1
  263. package/dist/adapters/postgresql/tools/jsonb/read.d.ts +38 -0
  264. package/dist/adapters/postgresql/tools/jsonb/read.d.ts.map +1 -0
  265. package/dist/adapters/postgresql/tools/jsonb/read.js +543 -0
  266. package/dist/adapters/postgresql/tools/jsonb/read.js.map +1 -0
  267. package/dist/adapters/postgresql/tools/jsonb/{advanced.d.ts → transform.d.ts} +1 -13
  268. package/dist/adapters/postgresql/tools/jsonb/transform.d.ts.map +1 -0
  269. package/dist/adapters/postgresql/tools/jsonb/{advanced.js → transform.js} +39 -361
  270. package/dist/adapters/postgresql/tools/jsonb/transform.js.map +1 -0
  271. package/dist/adapters/postgresql/tools/jsonb/write.d.ts +14 -0
  272. package/dist/adapters/postgresql/tools/jsonb/write.d.ts.map +1 -0
  273. package/dist/adapters/postgresql/tools/jsonb/write.js +468 -0
  274. package/dist/adapters/postgresql/tools/jsonb/write.js.map +1 -0
  275. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
  276. package/dist/adapters/postgresql/tools/kcache.js +116 -51
  277. package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
  278. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
  279. package/dist/adapters/postgresql/tools/ltree.js +358 -259
  280. package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
  281. package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts +15 -0
  282. package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts.map +1 -0
  283. package/dist/adapters/postgresql/tools/{monitoring.js → monitoring/analysis.js} +37 -361
  284. package/dist/adapters/postgresql/tools/monitoring/analysis.js.map +1 -0
  285. package/dist/adapters/postgresql/tools/monitoring/basic.d.ts +17 -0
  286. package/dist/adapters/postgresql/tools/monitoring/basic.d.ts.map +1 -0
  287. package/dist/adapters/postgresql/tools/monitoring/basic.js +432 -0
  288. package/dist/adapters/postgresql/tools/monitoring/basic.js.map +1 -0
  289. package/dist/adapters/postgresql/tools/monitoring/index.d.ts +16 -0
  290. package/dist/adapters/postgresql/tools/monitoring/index.d.ts.map +1 -0
  291. package/dist/adapters/postgresql/tools/monitoring/index.js +31 -0
  292. package/dist/adapters/postgresql/tools/monitoring/index.js.map +1 -0
  293. package/dist/adapters/postgresql/tools/partitioning/index.d.ts +15 -0
  294. package/dist/adapters/postgresql/tools/partitioning/index.d.ts.map +1 -0
  295. package/dist/adapters/postgresql/tools/partitioning/index.js +23 -0
  296. package/dist/adapters/postgresql/tools/partitioning/index.js.map +1 -0
  297. package/dist/adapters/postgresql/tools/partitioning/info.d.ts +11 -0
  298. package/dist/adapters/postgresql/tools/partitioning/info.d.ts.map +1 -0
  299. package/dist/adapters/postgresql/tools/partitioning/info.js +302 -0
  300. package/dist/adapters/postgresql/tools/partitioning/info.js.map +1 -0
  301. package/dist/adapters/postgresql/tools/partitioning/management.d.ts +28 -0
  302. package/dist/adapters/postgresql/tools/partitioning/management.d.ts.map +1 -0
  303. package/dist/adapters/postgresql/tools/{partitioning.js → partitioning/management.js} +48 -307
  304. package/dist/adapters/postgresql/tools/partitioning/management.js.map +1 -0
  305. package/dist/adapters/postgresql/tools/partman/helpers.d.ts +29 -0
  306. package/dist/adapters/postgresql/tools/partman/helpers.d.ts.map +1 -0
  307. package/dist/adapters/postgresql/tools/partman/helpers.js +59 -0
  308. package/dist/adapters/postgresql/tools/partman/helpers.js.map +1 -0
  309. package/dist/adapters/postgresql/tools/partman/index.d.ts +2 -1
  310. package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -1
  311. package/dist/adapters/postgresql/tools/partman/index.js +4 -2
  312. package/dist/adapters/postgresql/tools/partman/index.js.map +1 -1
  313. package/dist/adapters/postgresql/tools/partman/maintenance.d.ts +20 -0
  314. package/dist/adapters/postgresql/tools/partman/maintenance.d.ts.map +1 -0
  315. package/dist/adapters/postgresql/tools/partman/maintenance.js +496 -0
  316. package/dist/adapters/postgresql/tools/partman/maintenance.js.map +1 -0
  317. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
  318. package/dist/adapters/postgresql/tools/partman/management.js +452 -417
  319. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
  320. package/dist/adapters/postgresql/tools/partman/operations.d.ts +1 -13
  321. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
  322. package/dist/adapters/postgresql/tools/partman/operations.js +173 -654
  323. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
  324. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
  325. package/dist/adapters/postgresql/tools/performance/analysis.js +79 -45
  326. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
  327. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
  328. package/dist/adapters/postgresql/tools/performance/monitoring.js +83 -55
  329. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
  330. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
  331. package/dist/adapters/postgresql/tools/performance/optimization.js +18 -11
  332. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
  333. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
  334. package/dist/adapters/postgresql/tools/performance/stats.js +441 -286
  335. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
  336. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
  337. package/dist/adapters/postgresql/tools/pgcrypto.js +67 -79
  338. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
  339. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
  340. package/dist/adapters/postgresql/tools/postgis/advanced.js +30 -25
  341. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
  342. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
  343. package/dist/adapters/postgresql/tools/postgis/basic.js +137 -100
  344. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
  345. package/dist/adapters/postgresql/tools/schema/index.d.ts +16 -0
  346. package/dist/adapters/postgresql/tools/schema/index.d.ts.map +1 -0
  347. package/dist/adapters/postgresql/tools/schema/index.js +32 -0
  348. package/dist/adapters/postgresql/tools/schema/index.js.map +1 -0
  349. package/dist/adapters/postgresql/tools/schema/objects.d.ts +15 -0
  350. package/dist/adapters/postgresql/tools/schema/objects.d.ts.map +1 -0
  351. package/dist/adapters/postgresql/tools/schema/objects.js +378 -0
  352. package/dist/adapters/postgresql/tools/schema/objects.js.map +1 -0
  353. package/dist/adapters/postgresql/tools/schema/views.d.ts +15 -0
  354. package/dist/adapters/postgresql/tools/schema/views.d.ts.map +1 -0
  355. package/dist/adapters/postgresql/tools/{schema.js → schema/views.js} +91 -339
  356. package/dist/adapters/postgresql/tools/schema/views.js.map +1 -0
  357. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
  358. package/dist/adapters/postgresql/tools/stats/advanced.js +40 -235
  359. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
  360. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
  361. package/dist/adapters/postgresql/tools/stats/basic.js +45 -30
  362. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
  363. package/dist/adapters/postgresql/tools/stats/math-utils.d.ts +33 -0
  364. package/dist/adapters/postgresql/tools/stats/math-utils.d.ts.map +1 -0
  365. package/dist/adapters/postgresql/tools/stats/math-utils.js +225 -0
  366. package/dist/adapters/postgresql/tools/stats/math-utils.js.map +1 -0
  367. package/dist/adapters/postgresql/tools/text/index.d.ts +16 -0
  368. package/dist/adapters/postgresql/tools/text/index.d.ts.map +1 -0
  369. package/dist/adapters/postgresql/tools/text/index.js +33 -0
  370. package/dist/adapters/postgresql/tools/text/index.js.map +1 -0
  371. package/dist/adapters/postgresql/tools/text/matching.d.ts +17 -0
  372. package/dist/adapters/postgresql/tools/text/matching.d.ts.map +1 -0
  373. package/dist/adapters/postgresql/tools/text/matching.js +565 -0
  374. package/dist/adapters/postgresql/tools/text/matching.js.map +1 -0
  375. package/dist/adapters/postgresql/tools/text/search.d.ts +17 -0
  376. package/dist/adapters/postgresql/tools/text/search.d.ts.map +1 -0
  377. package/dist/adapters/postgresql/tools/text/search.js +653 -0
  378. package/dist/adapters/postgresql/tools/text/search.js.map +1 -0
  379. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  380. package/dist/adapters/postgresql/tools/transactions.js +11 -27
  381. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  382. package/dist/adapters/postgresql/tools/vector/{basic.d.ts → data.d.ts} +10 -8
  383. package/dist/adapters/postgresql/tools/vector/data.d.ts.map +1 -0
  384. package/dist/adapters/postgresql/tools/vector/data.js +540 -0
  385. package/dist/adapters/postgresql/tools/vector/data.js.map +1 -0
  386. package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -1
  387. package/dist/adapters/postgresql/tools/vector/index.js +6 -2
  388. package/dist/adapters/postgresql/tools/vector/index.js.map +1 -1
  389. package/dist/adapters/postgresql/tools/vector/management.d.ts +11 -0
  390. package/dist/adapters/postgresql/tools/vector/management.d.ts.map +1 -0
  391. package/dist/adapters/postgresql/tools/vector/management.js +425 -0
  392. package/dist/adapters/postgresql/tools/vector/management.js.map +1 -0
  393. package/dist/adapters/postgresql/tools/vector/query.d.ts +14 -0
  394. package/dist/adapters/postgresql/tools/vector/query.d.ts.map +1 -0
  395. package/dist/adapters/postgresql/tools/vector/query.js +767 -0
  396. package/dist/adapters/postgresql/tools/vector/query.js.map +1 -0
  397. package/dist/adapters/postgresql/tools/vector/{advanced.d.ts → search-advanced.d.ts} +4 -5
  398. package/dist/adapters/postgresql/tools/vector/search-advanced.d.ts.map +1 -0
  399. package/dist/adapters/postgresql/tools/vector/search-advanced.js +626 -0
  400. package/dist/adapters/postgresql/tools/vector/search-advanced.js.map +1 -0
  401. package/dist/auth/auth-context.d.ts +28 -0
  402. package/dist/auth/auth-context.d.ts.map +1 -0
  403. package/dist/auth/auth-context.js +37 -0
  404. package/dist/auth/auth-context.js.map +1 -0
  405. package/dist/auth/scope-map.d.ts +20 -0
  406. package/dist/auth/scope-map.d.ts.map +1 -0
  407. package/dist/auth/scope-map.js +40 -0
  408. package/dist/auth/scope-map.js.map +1 -0
  409. package/dist/auth/scopes.d.ts.map +1 -1
  410. package/dist/auth/scopes.js +2 -0
  411. package/dist/auth/scopes.js.map +1 -1
  412. package/dist/cli/args.d.ts +3 -2
  413. package/dist/cli/args.d.ts.map +1 -1
  414. package/dist/cli/args.js +4 -3
  415. package/dist/cli/args.js.map +1 -1
  416. package/dist/cli.js +11 -5
  417. package/dist/cli.js.map +1 -1
  418. package/dist/codemode/api/aliases.d.ts +14 -0
  419. package/dist/codemode/api/aliases.d.ts.map +1 -0
  420. package/dist/codemode/api/aliases.js +503 -0
  421. package/dist/codemode/api/aliases.js.map +1 -0
  422. package/dist/codemode/api/group-api.d.ts +23 -0
  423. package/dist/codemode/api/group-api.d.ts.map +1 -0
  424. package/dist/codemode/api/group-api.js +179 -0
  425. package/dist/codemode/api/group-api.js.map +1 -0
  426. package/dist/codemode/{api.d.ts → api/index.d.ts} +5 -4
  427. package/dist/codemode/api/index.d.ts.map +1 -0
  428. package/dist/codemode/api/index.js +192 -0
  429. package/dist/codemode/api/index.js.map +1 -0
  430. package/dist/codemode/api/maps.d.ts +47 -0
  431. package/dist/codemode/api/maps.d.ts.map +1 -0
  432. package/dist/codemode/api/maps.js +523 -0
  433. package/dist/codemode/api/maps.js.map +1 -0
  434. package/dist/codemode/api/normalize.d.ts +13 -0
  435. package/dist/codemode/api/normalize.d.ts.map +1 -0
  436. package/dist/codemode/api/normalize.js +120 -0
  437. package/dist/codemode/api/normalize.js.map +1 -0
  438. package/dist/codemode/index.d.ts +1 -3
  439. package/dist/codemode/index.d.ts.map +1 -1
  440. package/dist/codemode/index.js +1 -5
  441. package/dist/codemode/index.js.map +1 -1
  442. package/dist/codemode/sandbox.d.ts +14 -1
  443. package/dist/codemode/sandbox.d.ts.map +1 -1
  444. package/dist/codemode/sandbox.js +66 -44
  445. package/dist/codemode/sandbox.js.map +1 -1
  446. package/dist/codemode/types.d.ts.map +1 -1
  447. package/dist/codemode/types.js +3 -0
  448. package/dist/codemode/types.js.map +1 -1
  449. package/dist/constants/ServerInstructions.d.ts +5 -1
  450. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  451. package/dist/constants/ServerInstructions.js +91 -43
  452. package/dist/constants/ServerInstructions.js.map +1 -1
  453. package/dist/filtering/ToolConstants.d.ts +22 -19
  454. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  455. package/dist/filtering/ToolConstants.js +48 -37
  456. package/dist/filtering/ToolConstants.js.map +1 -1
  457. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  458. package/dist/filtering/ToolFilter.js +10 -13
  459. package/dist/filtering/ToolFilter.js.map +1 -1
  460. package/dist/pool/ConnectionPool.js +1 -1
  461. package/dist/pool/ConnectionPool.js.map +1 -1
  462. package/dist/server/McpServer.d.ts +1 -1
  463. package/dist/server/McpServer.d.ts.map +1 -1
  464. package/dist/server/McpServer.js +1 -2
  465. package/dist/server/McpServer.js.map +1 -1
  466. package/dist/transports/http.d.ts +44 -10
  467. package/dist/transports/http.d.ts.map +1 -1
  468. package/dist/transports/http.js +327 -40
  469. package/dist/transports/http.js.map +1 -1
  470. package/dist/types/filtering.d.ts +2 -2
  471. package/dist/types/filtering.d.ts.map +1 -1
  472. package/dist/utils/icons.d.ts.map +1 -1
  473. package/dist/utils/icons.js +5 -0
  474. package/dist/utils/icons.js.map +1 -1
  475. package/dist/utils/logger.d.ts +6 -6
  476. package/dist/utils/logger.d.ts.map +1 -1
  477. package/dist/utils/logger.js +18 -15
  478. package/dist/utils/logger.js.map +1 -1
  479. package/dist/utils/progress-utils.d.ts +2 -2
  480. package/dist/utils/progress-utils.d.ts.map +1 -1
  481. package/dist/utils/progress-utils.js +2 -3
  482. package/dist/utils/progress-utils.js.map +1 -1
  483. package/dist/utils/version.d.ts +9 -0
  484. package/dist/utils/version.d.ts.map +1 -0
  485. package/dist/utils/version.js +12 -0
  486. package/dist/utils/version.js.map +1 -0
  487. package/dist/utils/where-clause.d.ts +4 -0
  488. package/dist/utils/where-clause.d.ts.map +1 -1
  489. package/dist/utils/where-clause.js +40 -0
  490. package/dist/utils/where-clause.js.map +1 -1
  491. package/package.json +19 -14
  492. package/dist/adapters/postgresql/schemas/core.d.ts.map +0 -1
  493. package/dist/adapters/postgresql/schemas/core.js.map +0 -1
  494. package/dist/adapters/postgresql/schemas/extensions.d.ts +0 -833
  495. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +0 -1
  496. package/dist/adapters/postgresql/schemas/extensions.js +0 -1170
  497. package/dist/adapters/postgresql/schemas/extensions.js.map +0 -1
  498. package/dist/adapters/postgresql/schemas/jsonb.d.ts +0 -533
  499. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +0 -1
  500. package/dist/adapters/postgresql/schemas/jsonb.js +0 -790
  501. package/dist/adapters/postgresql/schemas/jsonb.js.map +0 -1
  502. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +0 -1
  503. package/dist/adapters/postgresql/schemas/postgis.js.map +0 -1
  504. package/dist/adapters/postgresql/schemas/stats.d.ts.map +0 -1
  505. package/dist/adapters/postgresql/schemas/stats.js.map +0 -1
  506. package/dist/adapters/postgresql/tools/citext.d.ts +0 -18
  507. package/dist/adapters/postgresql/tools/citext.d.ts.map +0 -1
  508. package/dist/adapters/postgresql/tools/citext.js.map +0 -1
  509. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +0 -1
  510. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +0 -1
  511. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +0 -20
  512. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +0 -1
  513. package/dist/adapters/postgresql/tools/jsonb/basic.js +0 -915
  514. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +0 -1
  515. package/dist/adapters/postgresql/tools/monitoring.d.ts +0 -13
  516. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +0 -1
  517. package/dist/adapters/postgresql/tools/monitoring.js.map +0 -1
  518. package/dist/adapters/postgresql/tools/partitioning.d.ts +0 -13
  519. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +0 -1
  520. package/dist/adapters/postgresql/tools/partitioning.js.map +0 -1
  521. package/dist/adapters/postgresql/tools/schema.d.ts +0 -13
  522. package/dist/adapters/postgresql/tools/schema.d.ts.map +0 -1
  523. package/dist/adapters/postgresql/tools/schema.js.map +0 -1
  524. package/dist/adapters/postgresql/tools/text.d.ts +0 -13
  525. package/dist/adapters/postgresql/tools/text.d.ts.map +0 -1
  526. package/dist/adapters/postgresql/tools/text.js +0 -903
  527. package/dist/adapters/postgresql/tools/text.js.map +0 -1
  528. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +0 -1
  529. package/dist/adapters/postgresql/tools/vector/advanced.js +0 -958
  530. package/dist/adapters/postgresql/tools/vector/advanced.js.map +0 -1
  531. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +0 -1
  532. package/dist/adapters/postgresql/tools/vector/basic.js +0 -1165
  533. package/dist/adapters/postgresql/tools/vector/basic.js.map +0 -1
  534. package/dist/codemode/api.d.ts.map +0 -1
  535. package/dist/codemode/api.js +0 -1510
  536. package/dist/codemode/api.js.map +0 -1
  537. package/dist/codemode/sandbox-factory.d.ts +0 -72
  538. package/dist/codemode/sandbox-factory.d.ts.map +0 -1
  539. package/dist/codemode/sandbox-factory.js +0 -88
  540. package/dist/codemode/sandbox-factory.js.map +0 -1
  541. package/dist/codemode/worker-sandbox.d.ts +0 -82
  542. package/dist/codemode/worker-sandbox.d.ts.map +0 -1
  543. package/dist/codemode/worker-sandbox.js +0 -244
  544. package/dist/codemode/worker-sandbox.js.map +0 -1
  545. package/dist/codemode/worker-script.d.ts +0 -8
  546. package/dist/codemode/worker-script.d.ts.map +0 -1
  547. package/dist/codemode/worker-script.js +0 -113
  548. package/dist/codemode/worker-script.js.map +0 -1
@@ -0,0 +1,543 @@
1
+ /**
2
+ * PostgreSQL JSONB Tools - Read Operations
3
+ *
4
+ * Read-only JSONB tools: extract, contains, pathQuery, agg, keys, typeof.
5
+ * Also exports shared utilities: toJsonString, resolveJsonbTable, parseSelectAlias.
6
+ */
7
+ import { readOnly } from "../../../../utils/annotations.js";
8
+ import { getToolIcons } from "../../../../utils/icons.js";
9
+ import { formatPostgresError } from "../core/error-helpers.js";
10
+ import { sanitizeWhereClause } from "../../../../utils/where-clause.js";
11
+ import { sanitizeTableName, sanitizeIdentifier, } from "../../../../utils/identifiers.js";
12
+ import { JsonbExtractSchemaBase, JsonbContainsSchemaBase, JsonbPathQuerySchemaBase, JsonbTypeofSchemaBase, JsonbKeysSchemaBase, JsonbAggSchemaBase, JsonbExtractSchema, JsonbContainsSchema, JsonbPathQuerySchema, JsonbTypeofSchema, JsonbKeysSchema, JsonbAggSchema, normalizePathToArray, parseJsonbValue, JsonbExtractOutputSchema, JsonbContainsOutputSchema, JsonbPathQueryOutputSchema, JsonbAggOutputSchema, JsonbKeysOutputSchema, JsonbTypeofOutputSchema, } from "../../schemas/index.js";
13
+ /**
14
+ * Convert value to a valid JSON string for PostgreSQL's ::jsonb cast
15
+ * Always uses JSON.stringify to ensure proper encoding
16
+ */
17
+ export function toJsonString(value) {
18
+ return JSON.stringify(value);
19
+ }
20
+ /**
21
+ * Resolve table and schema for JSONB tools.
22
+ * Validates schema existence when non-public, returns schema-qualified table name.
23
+ * Returns [qualifiedTable, null] on success, or [null, errorResponse] on failure.
24
+ */
25
+ export async function resolveJsonbTable(adapter, table, schema) {
26
+ const schemaName = schema ?? "public";
27
+ // Validate schema existence for non-public schemas
28
+ if (schemaName !== "public") {
29
+ const schemaResult = await adapter.executeQuery(`SELECT 1 FROM information_schema.schemata WHERE schema_name = $1`, [schemaName]);
30
+ if (!schemaResult.rows || schemaResult.rows.length === 0) {
31
+ return [
32
+ null,
33
+ {
34
+ success: false,
35
+ error: `Schema '${schemaName}' does not exist. Use pg_list_objects with type 'table' to see available schemas.`,
36
+ },
37
+ ];
38
+ }
39
+ }
40
+ return [sanitizeTableName(table, schemaName), null];
41
+ }
42
+ export function createJsonbExtractTool(adapter) {
43
+ return {
44
+ name: "pg_jsonb_extract",
45
+ description: "Extract value from JSONB at specified path. Returns null if path does not exist in data structure. Use select param to include identifying columns.",
46
+ group: "jsonb",
47
+ inputSchema: JsonbExtractSchemaBase,
48
+ outputSchema: JsonbExtractOutputSchema,
49
+ annotations: readOnly("JSONB Extract"),
50
+ icons: getToolIcons("jsonb", readOnly("JSONB Extract")),
51
+ handler: async (params, _context) => {
52
+ try {
53
+ const parsed = JsonbExtractSchema.parse(params);
54
+ const rawLimit = Number(parsed.limit);
55
+ const limit = parsed.limit === undefined
56
+ ? undefined
57
+ : isNaN(rawLimit)
58
+ ? undefined
59
+ : rawLimit;
60
+ const whereClause = parsed.where
61
+ ? ` WHERE ${sanitizeWhereClause(parsed.where)}`
62
+ : "";
63
+ const limitClause = limit !== undefined ? ` LIMIT ${String(limit)}` : "";
64
+ // After preprocess and refine, table, column, and path are guaranteed set
65
+ const table = parsed.table ?? parsed.tableName;
66
+ const column = parsed.column ?? parsed.col;
67
+ if (!table || !column) {
68
+ return { success: false, error: "table and column are required" };
69
+ }
70
+ if (parsed.path === undefined) {
71
+ return { success: false, error: "path is required" };
72
+ }
73
+ // Use normalizePathToArray for PostgreSQL #> operator
74
+ const pathArray = normalizePathToArray(parsed.path);
75
+ // Validate schema and build qualified table name
76
+ const [qualifiedTable, tableError] = await resolveJsonbTable(adapter, table, parsed.schema);
77
+ if (tableError)
78
+ return tableError;
79
+ // Build select expression with optional additional columns
80
+ let selectExpr = `${sanitizeIdentifier(column)} #> $1 as extracted_value`;
81
+ if (parsed.select !== undefined && parsed.select.length > 0) {
82
+ const additionalCols = parsed.select
83
+ .map((c) => {
84
+ // Handle expressions vs simple column names
85
+ const needsQuote = !c.includes("->") &&
86
+ !c.includes("(") &&
87
+ !c.includes("::") &&
88
+ /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(c);
89
+ return needsQuote ? `"${c}"` : c;
90
+ })
91
+ .join(", ");
92
+ selectExpr = `${additionalCols}, ${selectExpr}`;
93
+ }
94
+ const sql = `SELECT ${selectExpr} FROM ${qualifiedTable}${whereClause}${limitClause}`;
95
+ const result = await adapter.executeQuery(sql, [pathArray]);
96
+ // If select columns were provided, return full row objects
97
+ if (parsed.select !== undefined && parsed.select.length > 0) {
98
+ const rows = result.rows?.map((r) => {
99
+ // Rename extracted_value back to 'value' for consistency
100
+ const row = {};
101
+ for (const [key, val] of Object.entries(r)) {
102
+ if (key === "extracted_value") {
103
+ row["value"] = val;
104
+ }
105
+ else {
106
+ row[key] = val;
107
+ }
108
+ }
109
+ return row;
110
+ });
111
+ const allNulls = rows?.every((r) => r["value"] === null) ?? false;
112
+ const response = {
113
+ rows,
114
+ count: rows?.length ?? 0,
115
+ };
116
+ if (allNulls && (rows?.length ?? 0) > 0) {
117
+ response.hint =
118
+ "All values are null - path may not exist in data. Use pg_jsonb_typeof to check.";
119
+ }
120
+ return response;
121
+ }
122
+ // Original behavior: return just the extracted values
123
+ // Wrap each value in an object with 'value' key for consistency with select mode
124
+ const rows = result.rows?.map((r) => ({ value: r["extracted_value"] }));
125
+ // Check if all results are null (path may not exist)
126
+ const allNulls = rows?.every((r) => r.value === null) ?? false;
127
+ const response = {
128
+ rows,
129
+ count: rows?.length ?? 0,
130
+ };
131
+ if (allNulls && (rows?.length ?? 0) > 0) {
132
+ response.hint =
133
+ "All values are null - path may not exist in data. Use pg_jsonb_typeof to check.";
134
+ }
135
+ return response;
136
+ }
137
+ catch (error) {
138
+ return {
139
+ success: false,
140
+ error: formatPostgresError(error, {
141
+ tool: "pg_jsonb_extract",
142
+ }),
143
+ };
144
+ }
145
+ },
146
+ };
147
+ }
148
+ export function createJsonbContainsTool(adapter) {
149
+ return {
150
+ name: "pg_jsonb_contains",
151
+ description: "Find rows where JSONB column contains the specified value. Note: Empty object {} matches all rows.",
152
+ group: "jsonb",
153
+ inputSchema: JsonbContainsSchemaBase,
154
+ outputSchema: JsonbContainsOutputSchema,
155
+ annotations: readOnly("JSONB Contains"),
156
+ icons: getToolIcons("jsonb", readOnly("JSONB Contains")),
157
+ handler: async (params, _context) => {
158
+ try {
159
+ const parsed = JsonbContainsSchema.parse(params);
160
+ // Resolve table/column from optional aliases
161
+ const table = parsed.table ?? parsed.tableName;
162
+ const column = parsed.column ?? parsed.col;
163
+ if (!table || !column) {
164
+ return { success: false, error: "table and column are required" };
165
+ }
166
+ // Validate schema and build qualified table name
167
+ const [qualifiedTable, tableError] = await resolveJsonbTable(adapter, table, parsed.schema);
168
+ if (tableError)
169
+ return tableError;
170
+ const { select, where } = parsed;
171
+ // Parse JSON string values from MCP clients
172
+ const value = parseJsonbValue(parsed.value);
173
+ // Apply default limit (100) to prevent large payloads
174
+ const DEFAULT_LIMIT = 100;
175
+ const rawLimit = Number(parsed.limit);
176
+ const requestedLimit = parsed.limit === undefined
177
+ ? undefined
178
+ : isNaN(rawLimit)
179
+ ? undefined
180
+ : rawLimit;
181
+ const effectiveLimit = requestedLimit === 0 ? 0 : (requestedLimit ?? DEFAULT_LIMIT);
182
+ const selectCols = select !== undefined && select.length > 0
183
+ ? select
184
+ .map((item) => {
185
+ const { expr, alias } = parseSelectAlias(item);
186
+ // Simple column names get quoted; expressions pass through
187
+ const needsQuote = !expr.includes("->") &&
188
+ !expr.includes("(") &&
189
+ !expr.includes("::") &&
190
+ /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(expr);
191
+ const exprStr = needsQuote ? `"${expr}"` : expr;
192
+ // Only add AS alias when an explicit alias was provided
193
+ return alias !== expr &&
194
+ alias !==
195
+ expr
196
+ .replace(/[^\w]/g, "_")
197
+ .replace(/_+/g, "_")
198
+ .replace(/^_|_$/g, "")
199
+ ? `${exprStr} AS "${alias}"`
200
+ : exprStr;
201
+ })
202
+ .join(", ")
203
+ : "*";
204
+ // Build WHERE clause combining containment check with optional filter
205
+ const containsClause = `"${column}" @> $1::jsonb`;
206
+ const whereClause = where ? ` AND ${sanitizeWhereClause(where)}` : "";
207
+ const baseSql = `SELECT ${selectCols} FROM ${qualifiedTable} WHERE ${containsClause}${whereClause}`;
208
+ // Fetch limit+1 rows to detect truncation without a separate count query
209
+ const fetchLimit = effectiveLimit > 0 ? effectiveLimit + 1 : 0;
210
+ const sql = fetchLimit > 0 ? `${baseSql} LIMIT ${String(fetchLimit)}` : baseSql;
211
+ const result = await adapter.executeQuery(sql, [toJsonString(value)]);
212
+ const allRows = result.rows ?? [];
213
+ const isTruncated = effectiveLimit > 0 && allRows.length > effectiveLimit;
214
+ const rows = isTruncated ? allRows.slice(0, effectiveLimit) : allRows;
215
+ // Warn if empty object was passed (matches all rows)
216
+ const isEmptyObject = typeof value === "object" &&
217
+ value !== null &&
218
+ !Array.isArray(value) &&
219
+ Object.keys(value).length === 0;
220
+ const response = {
221
+ rows,
222
+ count: rows.length,
223
+ };
224
+ if (isTruncated) {
225
+ response.truncated = true;
226
+ // Get exact total count
227
+ const countSql = `SELECT COUNT(*) as total FROM ${qualifiedTable} WHERE ${containsClause}${whereClause}`;
228
+ const countResult = await adapter.executeQuery(countSql, [
229
+ toJsonString(value),
230
+ ]);
231
+ response.totalCount = Number(countResult.rows?.[0]?.["total"] ?? rows.length);
232
+ }
233
+ if (isEmptyObject) {
234
+ response.warning =
235
+ "Empty {} matches ALL rows - this is PostgreSQL containment semantics";
236
+ }
237
+ return response;
238
+ }
239
+ catch (error) {
240
+ return {
241
+ success: false,
242
+ error: formatPostgresError(error, {
243
+ tool: "pg_jsonb_contains",
244
+ }),
245
+ };
246
+ }
247
+ },
248
+ };
249
+ }
250
+ export function createJsonbPathQueryTool(adapter) {
251
+ return {
252
+ name: "pg_jsonb_path_query",
253
+ description: "Query JSONB using SQL/JSON path expressions (PostgreSQL 12+). Note: Recursive descent (..) syntax is not supported by PostgreSQL.",
254
+ group: "jsonb",
255
+ inputSchema: JsonbPathQuerySchemaBase,
256
+ outputSchema: JsonbPathQueryOutputSchema,
257
+ annotations: readOnly("JSONB Path Query"),
258
+ icons: getToolIcons("jsonb", readOnly("JSONB Path Query")),
259
+ handler: async (params, _context) => {
260
+ try {
261
+ const parsed = JsonbPathQuerySchema.parse(params);
262
+ // Resolve table/column from optional aliases
263
+ const table = parsed.table ?? parsed.tableName;
264
+ const column = parsed.column ?? parsed.col;
265
+ if (!table || !column) {
266
+ return { success: false, error: "table and column are required" };
267
+ }
268
+ // Validate schema and build qualified table name
269
+ const [qualifiedTable, tableError] = await resolveJsonbTable(adapter, table, parsed.schema);
270
+ if (tableError)
271
+ return tableError;
272
+ const { path, vars, where } = parsed;
273
+ const whereClause = where ? ` WHERE ${sanitizeWhereClause(where)}` : "";
274
+ const varsJson = vars ? JSON.stringify(vars) : "{}";
275
+ // Apply default limit (100) to prevent large payloads
276
+ const DEFAULT_LIMIT = 100;
277
+ const rawLimit = Number(parsed.limit);
278
+ const requestedLimit = parsed.limit === undefined
279
+ ? undefined
280
+ : isNaN(rawLimit)
281
+ ? undefined
282
+ : rawLimit;
283
+ const effectiveLimit = requestedLimit === 0 ? 0 : (requestedLimit ?? DEFAULT_LIMIT);
284
+ const baseSql = `SELECT jsonb_path_query("${column}", $1::jsonpath, $2::jsonb) as result FROM ${qualifiedTable}${whereClause}`;
285
+ // Fetch limit+1 rows to detect truncation without a separate count query
286
+ const fetchLimit = effectiveLimit > 0 ? effectiveLimit + 1 : 0;
287
+ const sql = fetchLimit > 0 ? `${baseSql} LIMIT ${String(fetchLimit)}` : baseSql;
288
+ const result = await adapter.executeQuery(sql, [path, varsJson]);
289
+ const allResults = result.rows?.map((r) => r["result"]) ?? [];
290
+ const isTruncated = effectiveLimit > 0 && allResults.length > effectiveLimit;
291
+ const results = isTruncated
292
+ ? allResults.slice(0, effectiveLimit)
293
+ : allResults;
294
+ const response = { results, count: results.length };
295
+ if (isTruncated) {
296
+ response.truncated = true;
297
+ // Get exact total count
298
+ const countSql = `SELECT COUNT(*) as total FROM (SELECT jsonb_path_query("${column}", $1::jsonpath, $2::jsonb) FROM ${qualifiedTable}${whereClause}) sub`;
299
+ const countResult = await adapter.executeQuery(countSql, [
300
+ path,
301
+ varsJson,
302
+ ]);
303
+ response.totalCount = Number(countResult.rows?.[0]?.["total"] ?? results.length);
304
+ }
305
+ return response;
306
+ }
307
+ catch (error) {
308
+ // JSONPath-specific: invalid syntax
309
+ if (error instanceof Error &&
310
+ /syntax error/i.test(error.message) &&
311
+ /jsonpath/i.test(error.message)) {
312
+ return {
313
+ success: false,
314
+ error: `Invalid JSONPath syntax. Use $.key, $.array[*], or $.* ? (@.field > 10) syntax.`,
315
+ };
316
+ }
317
+ return {
318
+ success: false,
319
+ error: formatPostgresError(error, {
320
+ tool: "pg_jsonb_path_query",
321
+ }),
322
+ };
323
+ }
324
+ },
325
+ };
326
+ }
327
+ /**
328
+ * Parse a select expression and extract the alias if present.
329
+ * Handles: "column", "expression AS alias", "expression as alias"
330
+ * Returns: { expr: string, alias: string }
331
+ */
332
+ export function parseSelectAlias(selectItem) {
333
+ // Match " AS " or " as " (case-insensitive) with word boundaries
334
+ const aliasRegex = /^(.+?)\s+[Aa][Ss]\s+([\w]+)$/;
335
+ const aliasMatch = aliasRegex.exec(selectItem);
336
+ if (aliasMatch?.[1] !== undefined && aliasMatch[2] !== undefined) {
337
+ return { expr: aliasMatch[1].trim(), alias: aliasMatch[2].trim() };
338
+ }
339
+ // No alias - use the expression as-is for both
340
+ // For simple column names, use them directly; for expressions, use a sanitized key
341
+ const cleanKey = selectItem.includes("->") || selectItem.includes("(")
342
+ ? selectItem
343
+ .replace(/[^\w]/g, "_")
344
+ .replace(/_+/g, "_")
345
+ .replace(/^_|_$/g, "")
346
+ : selectItem;
347
+ return { expr: selectItem, alias: cleanKey };
348
+ }
349
+ export function createJsonbAggTool(adapter) {
350
+ return {
351
+ name: "pg_jsonb_agg",
352
+ description: "Aggregate rows into a JSONB array. With groupBy, returns all groups with their aggregated items.",
353
+ group: "jsonb",
354
+ inputSchema: JsonbAggSchemaBase,
355
+ outputSchema: JsonbAggOutputSchema,
356
+ annotations: readOnly("JSONB Aggregate"),
357
+ icons: getToolIcons("jsonb", readOnly("JSONB Aggregate")),
358
+ handler: async (params, _context) => {
359
+ try {
360
+ // Parse with preprocess schema to resolve aliases (tableName→table, filter→where)
361
+ const parsed = JsonbAggSchema.parse(params);
362
+ const table = parsed.table;
363
+ if (!table) {
364
+ return { success: false, error: "table is required" };
365
+ }
366
+ // Validate schema and build qualified table name
367
+ const [qualifiedTable, tableError] = await resolveJsonbTable(adapter, table, parsed.schema);
368
+ if (tableError)
369
+ return tableError;
370
+ // Build select expression with proper alias handling
371
+ let selectExpr;
372
+ if (parsed.select !== undefined && parsed.select.length > 0) {
373
+ const selectParts = parsed.select.map((item) => {
374
+ const { expr, alias } = parseSelectAlias(item);
375
+ const needsQuote = !expr.includes("->") &&
376
+ !expr.includes("(") &&
377
+ !expr.includes("::") &&
378
+ /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(expr);
379
+ const exprStr = needsQuote ? `"${expr}"` : expr;
380
+ return `'${alias}', ${exprStr}`;
381
+ });
382
+ selectExpr = `jsonb_build_object(${selectParts.join(", ")})`;
383
+ }
384
+ else {
385
+ selectExpr = "to_jsonb(t.*)";
386
+ }
387
+ const whereClause = parsed.where
388
+ ? ` WHERE ${sanitizeWhereClause(parsed.where)}`
389
+ : "";
390
+ const orderByClause = parsed.orderBy
391
+ ? ` ORDER BY ${parsed.orderBy}`
392
+ : "";
393
+ const rawLimit = Number(parsed.limit);
394
+ const limit = parsed.limit === undefined
395
+ ? undefined
396
+ : isNaN(rawLimit)
397
+ ? undefined
398
+ : rawLimit;
399
+ const limitClause = limit !== undefined ? ` LIMIT ${String(limit)}` : "";
400
+ const hasJsonbOperator = parsed.groupBy?.includes("->") ?? false;
401
+ if (parsed.groupBy) {
402
+ const groupExpr = hasJsonbOperator
403
+ ? parsed.groupBy
404
+ : `"${parsed.groupBy}"`;
405
+ const groupClause = ` GROUP BY ${groupExpr}`;
406
+ const aggOrderBy = parsed.orderBy
407
+ ? ` ORDER BY ${parsed.orderBy}`
408
+ : "";
409
+ const sql = `SELECT ${groupExpr} as group_key, jsonb_agg(${selectExpr}${aggOrderBy}) as items FROM ${qualifiedTable} t${whereClause}${groupClause}${limitClause}`;
410
+ const result = await adapter.executeQuery(sql);
411
+ return {
412
+ result: result.rows,
413
+ count: result.rows?.length ?? 0,
414
+ grouped: true,
415
+ };
416
+ }
417
+ else {
418
+ const innerSql = `SELECT * FROM ${qualifiedTable} t${whereClause}${orderByClause}${limitClause}`;
419
+ const sql = `SELECT jsonb_agg(${selectExpr.replace(/\bt\./g, "sub.")}) as result FROM (${innerSql}) sub`;
420
+ const result = await adapter.executeQuery(sql);
421
+ const arr = result.rows?.[0]?.["result"] ?? [];
422
+ const count = Array.isArray(arr) ? arr.length : 0;
423
+ const response = { result: arr, count, grouped: false };
424
+ if (count === 0) {
425
+ response.hint = "No rows matched - returns empty array []";
426
+ }
427
+ return response;
428
+ }
429
+ }
430
+ catch (error) {
431
+ return {
432
+ success: false,
433
+ error: formatPostgresError(error, {
434
+ tool: "pg_jsonb_agg",
435
+ }),
436
+ };
437
+ }
438
+ },
439
+ };
440
+ }
441
+ export function createJsonbKeysTool(adapter) {
442
+ return {
443
+ name: "pg_jsonb_keys",
444
+ description: "Get all unique keys from a JSONB object column (deduplicated across rows).",
445
+ group: "jsonb",
446
+ inputSchema: JsonbKeysSchemaBase,
447
+ outputSchema: JsonbKeysOutputSchema,
448
+ annotations: readOnly("JSONB Keys"),
449
+ icons: getToolIcons("jsonb", readOnly("JSONB Keys")),
450
+ handler: async (params, _context) => {
451
+ try {
452
+ // Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
453
+ const parsed = JsonbKeysSchema.parse(params);
454
+ const table = parsed.table;
455
+ const column = parsed.column;
456
+ if (!table || !column) {
457
+ return { success: false, error: "table and column are required" };
458
+ }
459
+ // Validate schema and build qualified table name
460
+ const [qualifiedTable, tableError] = await resolveJsonbTable(adapter, table, parsed.schema);
461
+ if (tableError)
462
+ return tableError;
463
+ const whereClause = parsed.where
464
+ ? ` WHERE ${sanitizeWhereClause(parsed.where)}`
465
+ : "";
466
+ const sql = `SELECT DISTINCT jsonb_object_keys("${column}") as key FROM ${qualifiedTable}${whereClause}`;
467
+ const result = await adapter.executeQuery(sql);
468
+ const keys = result.rows?.map((r) => r["key"]);
469
+ return {
470
+ keys,
471
+ count: keys?.length ?? 0,
472
+ hint: "Returns unique keys deduplicated across all matching rows",
473
+ };
474
+ }
475
+ catch (error) {
476
+ // Improve error for array columns
477
+ if (error instanceof Error &&
478
+ error.message.includes("cannot call jsonb_object_keys")) {
479
+ return {
480
+ success: false,
481
+ error: `pg_jsonb_keys requires object columns. For array columns, use pg_jsonb_normalize with mode: 'array'.`,
482
+ };
483
+ }
484
+ return {
485
+ success: false,
486
+ error: formatPostgresError(error, {
487
+ tool: "pg_jsonb_keys",
488
+ }),
489
+ };
490
+ }
491
+ },
492
+ };
493
+ }
494
+ export function createJsonbTypeofTool(adapter) {
495
+ return {
496
+ name: "pg_jsonb_typeof",
497
+ description: "Get JSONB type at path. Uses dot-notation (a.b.c), not JSONPath ($). Response includes columnNull to distinguish NULL columns.",
498
+ group: "jsonb",
499
+ inputSchema: JsonbTypeofSchemaBase,
500
+ outputSchema: JsonbTypeofOutputSchema,
501
+ annotations: readOnly("JSONB Typeof"),
502
+ icons: getToolIcons("jsonb", readOnly("JSONB Typeof")),
503
+ handler: async (params, _context) => {
504
+ try {
505
+ // Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
506
+ const parsed = JsonbTypeofSchema.parse(params);
507
+ const table = parsed.table;
508
+ const column = parsed.column;
509
+ if (!table || !column) {
510
+ return { success: false, error: "table and column are required" };
511
+ }
512
+ // Validate schema and build qualified table name
513
+ const [qualifiedTable, tableError] = await resolveJsonbTable(adapter, table, parsed.schema);
514
+ if (tableError)
515
+ return tableError;
516
+ const whereClause = parsed.where
517
+ ? ` WHERE ${sanitizeWhereClause(parsed.where)}`
518
+ : "";
519
+ // Normalize path to array format (accepts both string and array)
520
+ const pathArray = parsed.path !== undefined
521
+ ? normalizePathToArray(parsed.path)
522
+ : undefined;
523
+ const pathExpr = pathArray !== undefined ? ` #> $1` : "";
524
+ // Include column IS NULL check to disambiguate NULL column vs null path result
525
+ const sql = `SELECT jsonb_typeof("${column}"${pathExpr}) as type, ("${column}" IS NULL) as column_null FROM ${qualifiedTable}${whereClause}`;
526
+ const queryParams = pathArray ? [pathArray] : [];
527
+ const result = await adapter.executeQuery(sql, queryParams);
528
+ const types = result.rows?.map((r) => r["type"]);
529
+ const columnNull = result.rows?.some((r) => r["column_null"] === true) ?? false;
530
+ return { types, count: types?.length ?? 0, columnNull };
531
+ }
532
+ catch (error) {
533
+ return {
534
+ success: false,
535
+ error: formatPostgresError(error, {
536
+ tool: "pg_jsonb_typeof",
537
+ }),
538
+ };
539
+ }
540
+ },
541
+ };
542
+ }
543
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/read.ts"],"names":[],"mappings":"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"}
@@ -18,16 +18,4 @@ export declare function createJsonbMergeTool(adapter: PostgresAdapter): ToolDefi
18
18
  */
19
19
  export declare function createJsonbNormalizeTool(adapter: PostgresAdapter): ToolDefinition;
20
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
21
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/transform.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AA6BpC;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAmEhB;AAwHD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAyC7E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CA0JhB;AA6BD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA8D5E"}