@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,227 @@
1
+ /**
2
+ * pg_stat_kcache Setup Prompt
3
+ *
4
+ * Complete guide for setting up OS-level performance monitoring with pg_stat_kcache.
5
+ */
6
+ export function createSetupKcachePrompt() {
7
+ return {
8
+ name: "pg_setup_kcache",
9
+ description: "Complete guide for setting up OS-level CPU and I/O performance monitoring with pg_stat_kcache.",
10
+ arguments: [
11
+ {
12
+ name: "focus",
13
+ description: "Analysis focus: cpu, io, memory, all",
14
+ required: false,
15
+ },
16
+ ],
17
+ // eslint-disable-next-line @typescript-eslint/require-await
18
+ handler: async (args, _context) => {
19
+ const focus = args["focus"] ?? "all";
20
+ return `# pg_stat_kcache Setup Guide - ${focus.toUpperCase()} Analysis
21
+
22
+ ## pg_stat_kcache Overview
23
+
24
+ pg_stat_kcache extends pg_stat_statements with OS-level metrics:
25
+ - **CPU time** (user + system)
26
+ - **I/O statistics** (reads/writes)
27
+ - **Memory faults** (minor/major page faults)
28
+
29
+ This enables identifying whether queries are:
30
+ - **CPU-bound** — High CPU time, low I/O
31
+ - **I/O-bound** — High I/O, lower CPU time
32
+ - **Memory-bound** — High page faults
33
+
34
+ ## Prerequisites
35
+
36
+ pg_stat_kcache requires **pg_stat_statements** to be installed first.
37
+
38
+ ## Setup Steps
39
+
40
+ ### 1. Configure postgresql.conf
41
+
42
+ \`\`\`
43
+ # Both extensions required in shared_preload_libraries
44
+ shared_preload_libraries = 'pg_stat_statements,pg_stat_kcache'
45
+
46
+ # pg_stat_statements settings
47
+ pg_stat_statements.track = all
48
+ pg_stat_statements.max = 10000
49
+ \`\`\`
50
+
51
+ **Restart PostgreSQL after configuration!**
52
+
53
+ ### 2. Install Extensions
54
+
55
+ \`\`\`sql
56
+ -- Must install pg_stat_statements first
57
+ CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
58
+ CREATE EXTENSION IF NOT EXISTS pg_stat_kcache;
59
+
60
+ -- Verify installation
61
+ SELECT * FROM pg_extension WHERE extname IN ('pg_stat_statements', 'pg_stat_kcache');
62
+ \`\`\`
63
+
64
+ ### 3. Understanding the Metrics
65
+
66
+ | Metric | Description | Unit |
67
+ |--------|-------------|------|
68
+ | \`user_time\` | CPU time in user mode | seconds |
69
+ | \`system_time\` | CPU time in kernel mode | seconds |
70
+ | \`reads\` | Bytes read from disk | bytes |
71
+ | \`writes\` | Bytes written to disk | bytes |
72
+ | \`minflts\` | Minor page faults (soft) | count |
73
+ | \`majflts\` | Major page faults (hard) | count |
74
+
75
+ ${focus === "cpu" || focus === "all"
76
+ ? `
77
+ ### 4. CPU Analysis
78
+
79
+ **Find CPU-intensive queries:**
80
+ \`\`\`sql
81
+ SELECT
82
+ substring(query, 1, 80) as query_preview,
83
+ calls,
84
+ round((user_time + system_time)::numeric, 3) as total_cpu_sec,
85
+ round(((user_time + system_time) / calls)::numeric, 6) as cpu_per_call
86
+ FROM pg_stat_kcache k
87
+ JOIN pg_stat_statements s USING (queryid, dbid, userid)
88
+ ORDER BY (user_time + system_time) DESC
89
+ LIMIT 10;
90
+ \`\`\`
91
+
92
+ Or use: \`pg_kcache_top_cpu\`
93
+
94
+ **CPU-bound indicators:**
95
+ - High user_time + system_time
96
+ - Low reads/writes relative to CPU
97
+ - Common causes: complex calculations, string operations, JSON processing
98
+ `
99
+ : ""}
100
+
101
+ ${focus === "io" || focus === "all"
102
+ ? `
103
+ ### 5. I/O Analysis
104
+
105
+ **Find I/O-intensive queries:**
106
+ \`\`\`sql
107
+ SELECT
108
+ substring(query, 1, 80) as query_preview,
109
+ calls,
110
+ pg_size_pretty(reads::bigint) as total_reads,
111
+ pg_size_pretty(writes::bigint) as total_writes,
112
+ pg_size_pretty((reads / NULLIF(calls, 0))::bigint) as reads_per_call
113
+ FROM pg_stat_kcache k
114
+ JOIN pg_stat_statements s USING (queryid, dbid, userid)
115
+ ORDER BY reads DESC
116
+ LIMIT 10;
117
+ \`\`\`
118
+
119
+ Or use: \`pg_kcache_top_io\`
120
+
121
+ **I/O-bound indicators:**
122
+ - High reads/writes
123
+ - Lower CPU time relative to I/O
124
+ - Common causes: sequential scans, missing indexes, large result sets
125
+ `
126
+ : ""}
127
+
128
+ ${focus === "memory" || focus === "all"
129
+ ? `
130
+ ### 6. Memory Analysis
131
+
132
+ **Find queries with memory pressure:**
133
+ \`\`\`sql
134
+ SELECT
135
+ substring(query, 1, 80) as query_preview,
136
+ calls,
137
+ minflts as minor_page_faults,
138
+ majflts as major_page_faults,
139
+ minflts / NULLIF(calls, 0) as minflts_per_call
140
+ FROM pg_stat_kcache k
141
+ JOIN pg_stat_statements s USING (queryid, dbid, userid)
142
+ ORDER BY majflts DESC
143
+ LIMIT 10;
144
+ \`\`\`
145
+
146
+ **Memory-bound indicators:**
147
+ - High major page faults (disk access for memory)
148
+ - High minor faults relative to data size
149
+ - Common causes: insufficient shared_buffers, work_mem too low
150
+ `
151
+ : ""}
152
+
153
+ ### 7. Resource Classification
154
+
155
+ Use \`pg_kcache_resource_analysis\` to automatically classify queries:
156
+
157
+ \`\`\`sql
158
+ -- Classify as CPU-bound vs I/O-bound
159
+ WITH metrics AS (
160
+ SELECT
161
+ queryid,
162
+ (user_time + system_time) as cpu_time,
163
+ reads + writes as io_bytes
164
+ FROM pg_stat_kcache
165
+ )
166
+ SELECT
167
+ CASE
168
+ WHEN cpu_time > io_bytes / 1000000 THEN 'CPU-bound'
169
+ ELSE 'I/O-bound'
170
+ END as classification,
171
+ COUNT(*) as query_count
172
+ FROM metrics
173
+ GROUP BY 1;
174
+ \`\`\`
175
+
176
+ ## Available Tools
177
+
178
+ | Tool | Purpose |
179
+ |------|---------|
180
+ | \`pg_kcache_create_extension\` | Enable pg_stat_kcache |
181
+ | \`pg_kcache_query_stats\` | Query stats with CPU/IO |
182
+ | \`pg_kcache_top_cpu\` | Top CPU consumers |
183
+ | \`pg_kcache_top_io\` | Top I/O consumers |
184
+ | \`pg_kcache_database_stats\` | Database-level aggregates |
185
+ | \`pg_kcache_resource_analysis\` | CPU vs I/O classification |
186
+ | \`pg_kcache_reset\` | Reset statistics |
187
+
188
+ ## Optimization Strategies
189
+
190
+ ### CPU-Bound Queries
191
+ 1. Simplify complex expressions
192
+ 2. Move computation to application layer
193
+ 3. Consider materialized views for expensive calculations
194
+ 4. Check for inefficient functions
195
+
196
+ ### I/O-Bound Queries
197
+ 1. Add missing indexes
198
+ 2. Reduce result set size with better filtering
199
+ 3. Use covering indexes to avoid heap fetches
200
+ 4. Consider partitioning for large tables
201
+
202
+ ### Memory-Bound Queries
203
+ 1. Increase \`shared_buffers\`
204
+ 2. Increase \`work_mem\` for sorts/hashes
205
+ 3. Use \`LIMIT\` to reduce memory pressure
206
+ 4. Consider query restructuring
207
+
208
+ ## Best Practices
209
+
210
+ 1. **Reset stats periodically** — Analyze recent workload
211
+ 2. **Correlate with pg_stat_statements** — Full picture
212
+ 3. **Monitor during peak hours** — Realistic workload
213
+ 4. **Track over time** — Identify regressions
214
+ 5. **Use with EXPLAIN ANALYZE** — Validate findings
215
+
216
+ ## Common Pitfalls
217
+
218
+ - ❌ Forgetting pg_stat_statements prerequisite
219
+ - ❌ Not restarting after shared_preload_libraries change
220
+ - ❌ Analyzing stale statistics
221
+ - ❌ Ignoring the difference between user and system CPU
222
+
223
+ **Pro Tip:** Combine pg_stat_kcache with EXPLAIN (ANALYZE, BUFFERS) for complete query diagnostics!`;
224
+ },
225
+ };
226
+ }
227
+ //# sourceMappingURL=kcache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kcache.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/kcache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,gGAAgG;QAClG,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,sCAAsC;gBACnD,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,4DAA4D;QAC5D,OAAO,EAAE,KAAK,EACZ,IAA4B,EAC5B,QAAwB,EACP,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAErC,OAAO,kCAAkC,KAAK,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDhE,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK;gBAChC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBL;gBACG,CAAC,CAAC,EACN;;EAGE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;gBAC/B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBL;gBACG,CAAC,CAAC,EACN;;EAGE,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK;gBACnC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBL;gBACG,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGAwEoG,CAAC;QACjG,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ltree Setup Prompt
3
+ *
4
+ * Complete guide for setting up hierarchical data with ltree.
5
+ */
6
+ import type { PromptDefinition } from "../../../types/index.js";
7
+ export declare function createSetupLtreePrompt(): PromptDefinition;
8
+ //# sourceMappingURL=ltree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltree.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/ltree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,sBAAsB,IAAI,gBAAgB,CA2RzD"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * ltree Setup Prompt
3
+ *
4
+ * Complete guide for setting up hierarchical data with ltree.
5
+ */
6
+ export function createSetupLtreePrompt() {
7
+ return {
8
+ name: "pg_setup_ltree",
9
+ description: "Complete guide for setting up hierarchical tree-structured data with ltree for categories, org charts, and file paths.",
10
+ arguments: [
11
+ {
12
+ name: "useCase",
13
+ description: "Use case: categories, org_chart, file_paths, taxonomy",
14
+ required: false,
15
+ },
16
+ ],
17
+ // eslint-disable-next-line @typescript-eslint/require-await
18
+ handler: async (args, _context) => {
19
+ const useCase = args["useCase"] ?? "categories";
20
+ let exampleTable = "";
21
+ let exampleData = "";
22
+ if (useCase === "categories") {
23
+ exampleTable = `CREATE TABLE categories (
24
+ id SERIAL PRIMARY KEY,
25
+ name VARCHAR(255) NOT NULL,
26
+ path LTREE NOT NULL,
27
+ created_at TIMESTAMPTZ DEFAULT NOW()
28
+ );`;
29
+ exampleData = `INSERT INTO categories (name, path) VALUES
30
+ ('Electronics', 'electronics'),
31
+ ('Computers', 'electronics.computers'),
32
+ ('Laptops', 'electronics.computers.laptops'),
33
+ ('Desktops', 'electronics.computers.desktops'),
34
+ ('Phones', 'electronics.phones'),
35
+ ('Smartphones', 'electronics.phones.smartphones'),
36
+ ('Clothing', 'clothing'),
37
+ ('Men', 'clothing.men'),
38
+ ('Women', 'clothing.women');`;
39
+ }
40
+ else if (useCase === "org_chart") {
41
+ exampleTable = `CREATE TABLE employees (
42
+ id SERIAL PRIMARY KEY,
43
+ name VARCHAR(255) NOT NULL,
44
+ title VARCHAR(100),
45
+ org_path LTREE NOT NULL,
46
+ created_at TIMESTAMPTZ DEFAULT NOW()
47
+ );`;
48
+ exampleData = `INSERT INTO employees (name, title, org_path) VALUES
49
+ ('Alice', 'CEO', 'ceo'),
50
+ ('Bob', 'CTO', 'ceo.cto'),
51
+ ('Carol', 'CFO', 'ceo.cfo'),
52
+ ('Dave', 'Engineering Manager', 'ceo.cto.eng'),
53
+ ('Eve', 'Senior Developer', 'ceo.cto.eng.dev1'),
54
+ ('Frank', 'Junior Developer', 'ceo.cto.eng.dev2'),
55
+ ('Grace', 'Finance Manager', 'ceo.cfo.finance');`;
56
+ }
57
+ else if (useCase === "file_paths") {
58
+ exampleTable = `CREATE TABLE files (
59
+ id SERIAL PRIMARY KEY,
60
+ name VARCHAR(255) NOT NULL,
61
+ file_type VARCHAR(50),
62
+ path LTREE NOT NULL,
63
+ size_bytes BIGINT,
64
+ created_at TIMESTAMPTZ DEFAULT NOW()
65
+ );`;
66
+ exampleData = `INSERT INTO files (name, file_type, path, size_bytes) VALUES
67
+ ('home', 'directory', 'home', 0),
68
+ ('user1', 'directory', 'home.user1', 0),
69
+ ('documents', 'directory', 'home.user1.documents', 0),
70
+ ('report.pdf', 'file', 'home.user1.documents.report_pdf', 1024),
71
+ ('photos', 'directory', 'home.user1.photos', 0),
72
+ ('vacation.jpg', 'file', 'home.user1.photos.vacation_jpg', 2048);`;
73
+ }
74
+ else {
75
+ exampleTable = `CREATE TABLE species (
76
+ id SERIAL PRIMARY KEY,
77
+ name VARCHAR(255) NOT NULL,
78
+ scientific_name VARCHAR(255),
79
+ taxonomy LTREE NOT NULL,
80
+ created_at TIMESTAMPTZ DEFAULT NOW()
81
+ );`;
82
+ exampleData = `INSERT INTO species (name, scientific_name, taxonomy) VALUES
83
+ ('Animals', NULL, 'animalia'),
84
+ ('Mammals', NULL, 'animalia.mammalia'),
85
+ ('Primates', NULL, 'animalia.mammalia.primates'),
86
+ ('Human', 'Homo sapiens', 'animalia.mammalia.primates.homo_sapiens'),
87
+ ('Carnivora', NULL, 'animalia.mammalia.carnivora'),
88
+ ('Dog', 'Canis familiaris', 'animalia.mammalia.carnivora.canis_familiaris'),
89
+ ('Cat', 'Felis catus', 'animalia.mammalia.carnivora.felis_catus');`;
90
+ }
91
+ return `# ltree Setup Guide - ${useCase
92
+ .split("_")
93
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
94
+ .join(" ")}
95
+
96
+ ## ltree Overview
97
+
98
+ ltree provides **hierarchical label tree** storage for PostgreSQL:
99
+ - Efficient ancestor/descendant queries
100
+ - Pattern matching with lquery
101
+ - Full-text search with ltxtquery
102
+ - GiST index support
103
+
104
+ **Perfect for:** Categories, org charts, threaded comments, file systems, taxonomies
105
+
106
+ ## Setup Steps
107
+
108
+ ### 1. Install ltree
109
+
110
+ \`\`\`sql
111
+ CREATE EXTENSION IF NOT EXISTS ltree;
112
+ SELECT * FROM pg_extension WHERE extname = 'ltree';
113
+ \`\`\`
114
+
115
+ ### 2. Create Table with ltree
116
+
117
+ \`\`\`sql
118
+ ${exampleTable}
119
+
120
+ -- Create GiST index for fast hierarchical queries
121
+ CREATE INDEX idx_path_gist ON ${useCase === "org_chart" ? "employees" : useCase === "file_paths" ? "files" : useCase === "taxonomy" ? "species" : "categories"} USING GIST (${useCase === "org_chart" ? "org_path" : useCase === "taxonomy" ? "taxonomy" : "path"});
122
+ \`\`\`
123
+
124
+ ### 3. Insert Hierarchical Data
125
+
126
+ \`\`\`sql
127
+ ${exampleData}
128
+ \`\`\`
129
+
130
+ ### 4. Path Syntax
131
+
132
+ ltree labels:
133
+ - Use \`.\` as separator
134
+ - Labels can contain letters, numbers, underscores
135
+ - Case-sensitive
136
+ - Up to 256 labels per path
137
+
138
+ \`\`\`
139
+ electronics.computers.laptops.gaming
140
+ ^ ^ ^ ^
141
+ | | | |
142
+ level 1 level 2 level 3 level 4
143
+ \`\`\`
144
+
145
+ ### 5. Hierarchical Queries
146
+
147
+ **Find all descendants (children, grandchildren, etc.):**
148
+ \`\`\`sql
149
+ -- All items under 'electronics.computers'
150
+ SELECT * FROM categories
151
+ WHERE path <@ 'electronics.computers';
152
+
153
+ -- Or using the tool:
154
+ -- pg_ltree_query(table_name: "categories", column_name: "path",
155
+ -- base_path: "electronics.computers", query_type: "descendants")
156
+ \`\`\`
157
+
158
+ **Find all ancestors (parents, grandparents, etc.):**
159
+ \`\`\`sql
160
+ -- All parents of 'electronics.computers.laptops'
161
+ SELECT * FROM categories
162
+ WHERE path @> 'electronics.computers.laptops';
163
+
164
+ -- Or using the tool:
165
+ -- pg_ltree_query(..., query_type: "ancestors")
166
+ \`\`\`
167
+
168
+ **Find direct children only:**
169
+ \`\`\`sql
170
+ SELECT * FROM categories
171
+ WHERE path ~ 'electronics.*{1}';
172
+ \`\`\`
173
+
174
+ ### 6. Pattern Matching (lquery)
175
+
176
+ lquery uses special syntax for pattern matching:
177
+
178
+ | Pattern | Meaning |
179
+ |---------|---------|
180
+ | \`*\` | Match any single label |
181
+ | \`*{n}\` | Match exactly n labels |
182
+ | \`*{n,}\` | Match n or more labels |
183
+ | \`*{n,m}\` | Match between n and m labels |
184
+ | \`word\` | Match exact label |
185
+ | \`word*\` | Match label starting with word |
186
+ | \`%word%\` | Match label containing word |
187
+
188
+ \`\`\`sql
189
+ -- Find all leaf nodes (no children)
190
+ SELECT path FROM categories c1
191
+ WHERE NOT EXISTS (
192
+ SELECT 1 FROM categories c2
193
+ WHERE c2.path <@ c1.path AND c2.path != c1.path
194
+ );
195
+
196
+ -- Match pattern: electronics.*.laptops
197
+ SELECT * FROM categories WHERE path ~ 'electronics.*.laptops';
198
+
199
+ -- Match 2-3 levels deep under electronics
200
+ SELECT * FROM categories WHERE path ~ 'electronics.*{2,3}';
201
+ \`\`\`
202
+
203
+ Use \`pg_ltree_match\` for pattern matching.
204
+
205
+ ### 7. Common Ancestor
206
+
207
+ \`\`\`sql
208
+ -- Find longest common ancestor of multiple paths
209
+ SELECT lca('electronics.computers.laptops', 'electronics.phones.smartphones');
210
+ -- Result: 'electronics'
211
+ \`\`\`
212
+
213
+ Use \`pg_ltree_lca\` for this operation.
214
+
215
+ ### 8. Subpath Extraction
216
+
217
+ \`\`\`sql
218
+ -- Get subpath from position 1 for 2 labels
219
+ SELECT subpath('electronics.computers.laptops', 1, 2);
220
+ -- Result: 'computers.laptops'
221
+
222
+ -- Get number of labels
223
+ SELECT nlevel('electronics.computers.laptops');
224
+ -- Result: 3
225
+ \`\`\`
226
+
227
+ Use \`pg_ltree_subpath\` for extraction.
228
+
229
+ ## Available Tools
230
+
231
+ | Tool | Purpose |
232
+ |------|---------|
233
+ | \`pg_ltree_create_extension\` | Enable ltree |
234
+ | \`pg_ltree_query\` | Query ancestors/descendants |
235
+ | \`pg_ltree_subpath\` | Extract path segments |
236
+ | \`pg_ltree_lca\` | Find common ancestor |
237
+ | \`pg_ltree_match\` | Pattern matching |
238
+ | \`pg_ltree_list_columns\` | List ltree columns |
239
+ | \`pg_ltree_convert_column\` | Convert text to ltree |
240
+ | \`pg_ltree_create_index\` | Create GiST index |
241
+
242
+ ## Indexing
243
+
244
+ \`\`\`sql
245
+ -- GiST index for hierarchical queries (recommended)
246
+ CREATE INDEX ON categories USING GIST (path);
247
+
248
+ -- B-tree for exact matches and sorting
249
+ CREATE INDEX ON categories (path);
250
+
251
+ -- GIN for full-text search in paths
252
+ CREATE INDEX ON categories USING GIN (path);
253
+ \`\`\`
254
+
255
+ ## Best Practices
256
+
257
+ 1. **Use GiST indexes** — Essential for hierarchical queries
258
+ 2. **Keep labels short** — Long labels impact performance
259
+ 3. **Use underscores not spaces** — Labels can't contain spaces
260
+ 4. **Normalize paths** — Lowercase recommended for consistency
261
+ 5. **Validate input** — Ensure path format before insert
262
+ 6. **Consider path length** — Very deep hierarchies can be slow
263
+
264
+ ## Common Pitfalls
265
+
266
+ - ❌ Forgetting GiST index (queries become slow)
267
+ - ❌ Using spaces or special chars in labels
268
+ - ❌ Not validating path format on insert
269
+ - ❌ Circular references (ltree doesn't prevent them)
270
+ - ❌ Moving nodes without updating all descendants
271
+
272
+ ## Comparison with Adjacency List
273
+
274
+ | Feature | ltree | Adjacency List (parent_id) |
275
+ |---------|-------|---------------------------|
276
+ | Find descendants | ✓ Fast with index | Slow (recursive CTE) |
277
+ | Find ancestors | ✓ Fast with index | Slow (recursive CTE) |
278
+ | Move subtree | Requires updating all paths | Update one parent_id |
279
+ | Storage | Path in each row | Single integer |
280
+ | Insert | Simple | Simple |
281
+
282
+ **Pro Tip:** For ${useCase}, ltree queries are 10-100x faster than recursive CTEs for large hierarchies!`;
283
+ },
284
+ };
285
+ }
286
+ //# sourceMappingURL=ltree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltree.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/ltree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,wHAAwH;QAC1H,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uDAAuD;gBACpE,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,4DAA4D;QAC5D,OAAO,EAAE,KAAK,EACZ,IAA4B,EAC5B,QAAwB,EACP,EAAE;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;YAEhD,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG;;;;;GAKpB,CAAC;gBACI,WAAW,GAAG;;;;;;;;;6BASO,CAAC;YACxB,CAAC;iBAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBACnC,YAAY,GAAG;;;;;;GAMpB,CAAC;gBACI,WAAW,GAAG;;;;;;;iDAO2B,CAAC;YAC5C,CAAC;iBAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBACpC,YAAY,GAAG;;;;;;;GAOpB,CAAC;gBACI,WAAW,GAAG;;;;;;kEAM4C,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG;;;;;;GAMpB,CAAC;gBACI,WAAW,GAAG;;;;;;;mEAO6C,CAAC;YAC9D,CAAC;YAED,OAAO,yBAAyB,OAAO;iBACpC,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;EAwBhB,YAAY;;;gCAGkB,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,gBAAgB,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;;;;;;EAM/P,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA2JM,OAAO,+EAA+E,CAAC;QACtG,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * pg_partman Setup Prompt
3
+ *
4
+ * Complete guide for setting up automated partition management with pg_partman.
5
+ */
6
+ import type { PromptDefinition } from "../../../types/index.js";
7
+ export declare function createSetupPartmanPrompt(): PromptDefinition;
8
+ //# sourceMappingURL=partman.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partman.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/partman.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,wBAAwB,IAAI,gBAAgB,CAmN3D"}