@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,574 @@
1
+ /**
2
+ * PostgreSQL pg_stat_kcache Extension Tools
3
+ *
4
+ * OS-level performance visibility: CPU, memory, and I/O statistics per query.
5
+ * 7 tools total.
6
+ *
7
+ * pg_stat_kcache extends pg_stat_statements with kernel-level resource metrics:
8
+ * - CPU time (user and system)
9
+ * - Filesystem reads/writes
10
+ * - Page faults (memory pressure indicators)
11
+ *
12
+ * Requires pg_stat_statements to be installed.
13
+ */
14
+ import { z } from "zod";
15
+ import { readOnly, write, destructive } from "../../../utils/annotations.js";
16
+ import { getToolIcons } from "../../../utils/icons.js";
17
+ import { KcacheQueryStatsSchema, KcacheDatabaseStatsSchema, KcacheResourceAnalysisSchema, } from "../schemas/index.js";
18
+ // Helper to handle undefined params (allows tools to be called without {})
19
+ const defaultToEmpty = (val) => val ?? {};
20
+ async function getKcacheColumnNames(adapter) {
21
+ const result = await adapter.executeQuery(`
22
+ SELECT column_name FROM information_schema.columns
23
+ WHERE table_name = 'pg_stat_kcache' AND column_name = 'exec_user_time'
24
+ `);
25
+ const isNewVersion = (result.rows?.length ?? 0) > 0;
26
+ if (isNewVersion) {
27
+ return {
28
+ userTime: "exec_user_time",
29
+ systemTime: "exec_system_time",
30
+ reads: "exec_reads", // function returns bytes, not blocks
31
+ writes: "exec_writes", // function returns bytes, not blocks
32
+ minflts: "exec_minflts",
33
+ majflts: "exec_majflts",
34
+ };
35
+ }
36
+ return {
37
+ userTime: "user_time",
38
+ systemTime: "system_time",
39
+ reads: "reads",
40
+ writes: "writes",
41
+ minflts: "minflts",
42
+ majflts: "majflts",
43
+ };
44
+ }
45
+ /**
46
+ * Get all pg_stat_kcache tools
47
+ */
48
+ export function getKcacheTools(adapter) {
49
+ return [
50
+ createKcacheExtensionTool(adapter),
51
+ createKcacheQueryStatsTool(adapter),
52
+ createKcacheTopCpuTool(adapter),
53
+ createKcacheTopIoTool(adapter),
54
+ createKcacheDatabaseStatsTool(adapter),
55
+ createKcacheResourceAnalysisTool(adapter),
56
+ createKcacheResetTool(adapter),
57
+ ];
58
+ }
59
+ /**
60
+ * Enable the pg_stat_kcache extension
61
+ */
62
+ function createKcacheExtensionTool(adapter) {
63
+ return {
64
+ name: "pg_kcache_create_extension",
65
+ description: `Enable the pg_stat_kcache extension for OS-level performance metrics.
66
+ Requires pg_stat_statements to be installed first. Both extensions must be in shared_preload_libraries.`,
67
+ group: "kcache",
68
+ inputSchema: z.object({}),
69
+ annotations: write("Create Kcache Extension"),
70
+ icons: getToolIcons("kcache", write("Create Kcache Extension")),
71
+ handler: async (_params, _context) => {
72
+ const statementsCheck = await adapter.executeQuery(`
73
+ SELECT EXISTS(
74
+ SELECT 1 FROM pg_extension WHERE extname = 'pg_stat_statements'
75
+ ) as installed
76
+ `);
77
+ const hasStatements = statementsCheck.rows?.[0]?.["installed"] ?? false;
78
+ if (!hasStatements) {
79
+ return {
80
+ success: false,
81
+ error: "pg_stat_statements must be installed before pg_stat_kcache",
82
+ hint: "Run: CREATE EXTENSION IF NOT EXISTS pg_stat_statements",
83
+ };
84
+ }
85
+ await adapter.executeQuery("CREATE EXTENSION IF NOT EXISTS pg_stat_kcache");
86
+ return {
87
+ success: true,
88
+ message: "pg_stat_kcache extension enabled",
89
+ note: "Ensure pg_stat_kcache is in shared_preload_libraries for full functionality",
90
+ };
91
+ },
92
+ };
93
+ }
94
+ /**
95
+ * Query stats with CPU/IO metrics joined from pg_stat_statements
96
+ */
97
+ function createKcacheQueryStatsTool(adapter) {
98
+ return {
99
+ name: "pg_kcache_query_stats",
100
+ description: `Get query statistics with OS-level CPU and I/O metrics.
101
+ Joins pg_stat_statements with pg_stat_kcache to show what SQL did AND what system resources it consumed.
102
+
103
+ orderBy options: 'total_time' (default), 'cpu_time', 'reads', 'writes'. Use minCalls parameter to filter by call count.`,
104
+ group: "kcache",
105
+ inputSchema: KcacheQueryStatsSchema,
106
+ annotations: readOnly("Kcache Query Stats"),
107
+ icons: getToolIcons("kcache", readOnly("Kcache Query Stats")),
108
+ handler: async (params, _context) => {
109
+ const { limit, orderBy, minCalls, queryPreviewLength } = KcacheQueryStatsSchema.parse(params);
110
+ const cols = await getKcacheColumnNames(adapter);
111
+ const DEFAULT_LIMIT = 50;
112
+ // limit: 0 means "no limit" (return all rows), undefined means use default
113
+ const limitVal = limit === 0 ? null : (limit ?? DEFAULT_LIMIT);
114
+ // Bound queryPreviewLength: 0 = full query, default 100, max 500
115
+ const previewLen = queryPreviewLength === 0
116
+ ? 10000
117
+ : Math.min(queryPreviewLength ?? 100, 500);
118
+ const orderColumn = orderBy === "cpu_time"
119
+ ? `(k.${cols.userTime} + k.${cols.systemTime})`
120
+ : orderBy === "reads"
121
+ ? `k.${cols.reads}`
122
+ : orderBy === "writes"
123
+ ? `k.${cols.writes}`
124
+ : "s.total_exec_time";
125
+ const conditions = [];
126
+ const queryParams = [];
127
+ let paramIndex = 1;
128
+ if (minCalls !== undefined) {
129
+ conditions.push(`s.calls >= $${String(paramIndex++)}`);
130
+ queryParams.push(minCalls);
131
+ }
132
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
133
+ // Get total count first for truncation indicator
134
+ const countSql = `
135
+ SELECT COUNT(*) as total
136
+ FROM pg_stat_statements s
137
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
138
+ AND s.userid = k.userid
139
+ AND s.dbid = k.dbid
140
+ ${whereClause}
141
+ `;
142
+ const countResult = await adapter.executeQuery(countSql, queryParams);
143
+ const totalRaw = countResult.rows?.[0]?.["total"];
144
+ const totalCount = Number(totalRaw) || 0;
145
+ const sql = `
146
+ SELECT
147
+ s.queryid,
148
+ LEFT(s.query, ${String(previewLen)}) as query_preview,
149
+ s.calls,
150
+ s.total_exec_time as total_time_ms,
151
+ s.mean_exec_time as mean_time_ms,
152
+ k.${cols.userTime} as user_time,
153
+ k.${cols.systemTime} as system_time,
154
+ (k.${cols.userTime} + k.${cols.systemTime}) as total_cpu_time,
155
+ k.${cols.reads} as read_bytes,
156
+ k.${cols.writes} as write_bytes,
157
+ pg_size_pretty(k.${cols.reads}::bigint) as reads_pretty,
158
+ pg_size_pretty(k.${cols.writes}::bigint) as writes_pretty,
159
+ k.${cols.minflts} as minor_page_faults,
160
+ k.${cols.majflts} as major_page_faults
161
+ FROM pg_stat_statements s
162
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
163
+ AND s.userid = k.userid
164
+ AND s.dbid = k.dbid
165
+ ${whereClause}
166
+ ORDER BY ${orderColumn} DESC
167
+ ${limitVal !== null ? `LIMIT ${String(limitVal)}` : ""}
168
+ `;
169
+ const result = await adapter.executeQuery(sql, queryParams);
170
+ const rowCount = result.rows?.length ?? 0;
171
+ const truncated = rowCount < totalCount;
172
+ const response = {
173
+ queries: result.rows ?? [],
174
+ count: rowCount,
175
+ orderBy: orderBy ?? "total_time",
176
+ truncated,
177
+ totalCount,
178
+ };
179
+ return response;
180
+ },
181
+ };
182
+ }
183
+ /**
184
+ * Top CPU-consuming queries
185
+ */
186
+ function createKcacheTopCpuTool(adapter) {
187
+ return {
188
+ name: "pg_kcache_top_cpu",
189
+ description: `Get top CPU-consuming queries. Shows which queries spend the most time
190
+ in user CPU (application code) vs system CPU (kernel operations).`,
191
+ group: "kcache",
192
+ inputSchema: z.preprocess(defaultToEmpty, z.object({
193
+ limit: z
194
+ .number()
195
+ .optional()
196
+ .describe("Number of top queries to return (default: 10)"),
197
+ })),
198
+ annotations: readOnly("Kcache Top CPU"),
199
+ icons: getToolIcons("kcache", readOnly("Kcache Top CPU")),
200
+ handler: async (params, _context) => {
201
+ const parsed = z
202
+ .object({ limit: z.number().optional() })
203
+ .parse(params ?? {});
204
+ const DEFAULT_LIMIT = 10;
205
+ // limit: 0 means "no limit" (return all rows), undefined means use default
206
+ const limitVal = parsed.limit === 0 ? null : (parsed.limit ?? DEFAULT_LIMIT);
207
+ const cols = await getKcacheColumnNames(adapter);
208
+ // Get total count first for truncation indicator
209
+ const countSql = `
210
+ SELECT COUNT(*) as total
211
+ FROM pg_stat_statements s
212
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
213
+ AND s.userid = k.userid
214
+ AND s.dbid = k.dbid
215
+ WHERE (k.${cols.userTime} + k.${cols.systemTime}) > 0
216
+ `;
217
+ const countResult = await adapter.executeQuery(countSql);
218
+ const totalRaw = countResult.rows?.[0]?.["total"];
219
+ const totalCount = Number(totalRaw) || 0;
220
+ const sql = `
221
+ SELECT
222
+ s.queryid,
223
+ LEFT(s.query, 100) as query_preview,
224
+ s.calls,
225
+ k.${cols.userTime} as user_time,
226
+ k.${cols.systemTime} as system_time,
227
+ (k.${cols.userTime} + k.${cols.systemTime}) as total_cpu_time,
228
+ CASE
229
+ WHEN (k.${cols.userTime} + k.${cols.systemTime}) > 0
230
+ THEN ROUND((k.${cols.userTime} / (k.${cols.userTime} + k.${cols.systemTime}) * 100)::numeric, 2)
231
+ ELSE 0
232
+ END as user_cpu_percent,
233
+ s.total_exec_time as total_time_ms,
234
+ CASE
235
+ WHEN s.total_exec_time > 0
236
+ THEN ROUND(((k.${cols.userTime} + k.${cols.systemTime}) / s.total_exec_time * 100)::numeric, 2)
237
+ ELSE 0
238
+ END as cpu_time_percent
239
+ FROM pg_stat_statements s
240
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
241
+ AND s.userid = k.userid
242
+ AND s.dbid = k.dbid
243
+ WHERE (k.${cols.userTime} + k.${cols.systemTime}) > 0
244
+ ORDER BY (k.${cols.userTime} + k.${cols.systemTime}) DESC
245
+ ${limitVal !== null ? `LIMIT ${String(limitVal)}` : ""}
246
+ `;
247
+ const result = await adapter.executeQuery(sql);
248
+ const rowCount = result.rows?.length ?? 0;
249
+ const truncated = rowCount < totalCount;
250
+ const response = {
251
+ topCpuQueries: result.rows ?? [],
252
+ count: rowCount,
253
+ description: "Queries ranked by total CPU time (user + system)",
254
+ truncated,
255
+ totalCount,
256
+ };
257
+ return response;
258
+ },
259
+ };
260
+ }
261
+ /**
262
+ * Top I/O-consuming queries
263
+ */
264
+ function createKcacheTopIoTool(adapter) {
265
+ return {
266
+ name: "pg_kcache_top_io",
267
+ description: `Get top I/O-consuming queries. Shows filesystem-level reads and writes,
268
+ which represent actual disk access (not just shared buffer hits).`,
269
+ group: "kcache",
270
+ inputSchema: z.preprocess((input) => {
271
+ const obj = defaultToEmpty(input);
272
+ // Alias: ioType -> type
273
+ if (obj["ioType"] !== undefined && obj["type"] === undefined) {
274
+ obj["type"] = obj["ioType"];
275
+ }
276
+ return obj;
277
+ }, z.object({
278
+ type: z
279
+ .enum(["reads", "writes", "both"])
280
+ .optional()
281
+ .describe("I/O type to rank by (default: both)"),
282
+ ioType: z
283
+ .enum(["reads", "writes", "both"])
284
+ .optional()
285
+ .describe("Alias for type"),
286
+ limit: z
287
+ .number()
288
+ .optional()
289
+ .describe("Number of top queries to return (default: 10)"),
290
+ })),
291
+ annotations: readOnly("Kcache Top IO"),
292
+ icons: getToolIcons("kcache", readOnly("Kcache Top IO")),
293
+ handler: async (params, _context) => {
294
+ // Apply the same preprocessing as inputSchema
295
+ const preprocessed = (() => {
296
+ const obj = (params ?? {});
297
+ if (obj["ioType"] !== undefined && obj["type"] === undefined) {
298
+ return { ...obj, type: obj["ioType"] };
299
+ }
300
+ return obj;
301
+ })();
302
+ const parsed = z
303
+ .object({
304
+ type: z.enum(["reads", "writes", "both"]).optional(),
305
+ limit: z.number().optional(),
306
+ })
307
+ .parse(preprocessed);
308
+ const ioType = parsed.type ?? "both";
309
+ const DEFAULT_LIMIT = 10;
310
+ // limit: 0 means "no limit" (return all rows), undefined means use default
311
+ const limitVal = parsed.limit === 0 ? null : (parsed.limit ?? DEFAULT_LIMIT);
312
+ const cols = await getKcacheColumnNames(adapter);
313
+ const orderColumn = ioType === "reads"
314
+ ? `k.${cols.reads}`
315
+ : ioType === "writes"
316
+ ? `k.${cols.writes}`
317
+ : `(k.${cols.reads} + k.${cols.writes})`;
318
+ // Get total count first for truncation indicator
319
+ const countSql = `
320
+ SELECT COUNT(*) as total
321
+ FROM pg_stat_statements s
322
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
323
+ AND s.userid = k.userid
324
+ AND s.dbid = k.dbid
325
+ WHERE (k.${cols.reads} + k.${cols.writes}) > 0
326
+ `;
327
+ const countResult = await adapter.executeQuery(countSql);
328
+ const totalRaw = countResult.rows?.[0]?.["total"];
329
+ const totalCount = Number(totalRaw) || 0;
330
+ const sql = `
331
+ SELECT
332
+ s.queryid,
333
+ LEFT(s.query, 100) as query_preview,
334
+ s.calls,
335
+ k.${cols.reads} as read_bytes,
336
+ k.${cols.writes} as write_bytes,
337
+ (k.${cols.reads} + k.${cols.writes}) as total_io_bytes,
338
+ pg_size_pretty(k.${cols.reads}::bigint) as reads_pretty,
339
+ pg_size_pretty(k.${cols.writes}::bigint) as writes_pretty,
340
+ s.total_exec_time as total_time_ms
341
+ FROM pg_stat_statements s
342
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
343
+ AND s.userid = k.userid
344
+ AND s.dbid = k.dbid
345
+ WHERE (k.${cols.reads} + k.${cols.writes}) > 0
346
+ ORDER BY ${orderColumn} DESC
347
+ ${limitVal !== null ? `LIMIT ${String(limitVal)}` : ""}
348
+ `;
349
+ const result = await adapter.executeQuery(sql);
350
+ const rowCount = result.rows?.length ?? 0;
351
+ const truncated = rowCount < totalCount;
352
+ const response = {
353
+ topIoQueries: result.rows ?? [],
354
+ count: rowCount,
355
+ ioType,
356
+ description: `Queries ranked by ${ioType === "both" ? "total I/O" : ioType}`,
357
+ truncated,
358
+ totalCount,
359
+ };
360
+ return response;
361
+ },
362
+ };
363
+ }
364
+ /**
365
+ * Database-level aggregated stats
366
+ */
367
+ function createKcacheDatabaseStatsTool(adapter) {
368
+ return {
369
+ name: "pg_kcache_database_stats",
370
+ description: `Get aggregated OS-level statistics for a database.
371
+ Shows total CPU time, I/O, and page faults across all queries.`,
372
+ group: "kcache",
373
+ inputSchema: KcacheDatabaseStatsSchema,
374
+ annotations: readOnly("Kcache Database Stats"),
375
+ icons: getToolIcons("kcache", readOnly("Kcache Database Stats")),
376
+ handler: async (params, _context) => {
377
+ const { database } = KcacheDatabaseStatsSchema.parse(params);
378
+ const cols = await getKcacheColumnNames(adapter);
379
+ let sql;
380
+ const queryParams = [];
381
+ if (database !== undefined) {
382
+ sql = `
383
+ SELECT
384
+ d.datname as database,
385
+ SUM(k.${cols.userTime}) as total_user_time,
386
+ SUM(k.${cols.systemTime}) as total_system_time,
387
+ SUM(k.${cols.userTime} + k.${cols.systemTime}) as total_cpu_time,
388
+ SUM(k.${cols.reads}) as total_read_bytes,
389
+ SUM(k.${cols.writes}) as total_write_bytes,
390
+ pg_size_pretty(SUM(k.${cols.reads})::bigint) as total_reads_pretty,
391
+ pg_size_pretty(SUM(k.${cols.writes})::bigint) as total_writes_pretty,
392
+ SUM(k.${cols.minflts}) as total_minor_faults,
393
+ SUM(k.${cols.majflts}) as total_major_faults,
394
+ COUNT(*) as total_statement_entries
395
+ FROM pg_stat_kcache k
396
+ JOIN pg_database d ON k.datname = d.datname
397
+ WHERE d.datname = $1
398
+ GROUP BY d.datname
399
+ `;
400
+ queryParams.push(database);
401
+ }
402
+ else {
403
+ sql = `
404
+ SELECT
405
+ datname as database,
406
+ SUM(${cols.userTime}) as total_user_time,
407
+ SUM(${cols.systemTime}) as total_system_time,
408
+ SUM(${cols.userTime} + ${cols.systemTime}) as total_cpu_time,
409
+ SUM(${cols.reads}) as total_read_bytes,
410
+ SUM(${cols.writes}) as total_write_bytes,
411
+ pg_size_pretty(SUM(${cols.reads})::bigint) as total_reads_pretty,
412
+ pg_size_pretty(SUM(${cols.writes})::bigint) as total_writes_pretty,
413
+ SUM(${cols.minflts}) as total_minor_faults,
414
+ SUM(${cols.majflts}) as total_major_faults,
415
+ COUNT(*) as total_statement_entries
416
+ FROM pg_stat_kcache
417
+ GROUP BY datname
418
+ ORDER BY SUM(${cols.userTime} + ${cols.systemTime}) DESC
419
+ `;
420
+ }
421
+ const result = await adapter.executeQuery(sql, queryParams);
422
+ return {
423
+ databaseStats: result.rows ?? [],
424
+ count: result.rows?.length ?? 0,
425
+ };
426
+ },
427
+ };
428
+ }
429
+ /**
430
+ * Classify queries as CPU-bound vs I/O-bound
431
+ */
432
+ function createKcacheResourceAnalysisTool(adapter) {
433
+ return {
434
+ name: "pg_kcache_resource_analysis",
435
+ description: `Analyze queries to classify them as CPU-bound, I/O-bound, or balanced.
436
+ Helps identify the root cause of performance issues - is the query computation-heavy or disk-heavy?`,
437
+ group: "kcache",
438
+ inputSchema: KcacheResourceAnalysisSchema,
439
+ annotations: readOnly("Kcache Resource Analysis"),
440
+ icons: getToolIcons("kcache", readOnly("Kcache Resource Analysis")),
441
+ handler: async (params, _context) => {
442
+ const { queryId, threshold, limit, minCalls, queryPreviewLength } = KcacheResourceAnalysisSchema.parse(params);
443
+ const thresholdVal = threshold ?? 0.5;
444
+ const DEFAULT_LIMIT = 50;
445
+ // limit: 0 means "no limit" (return all rows), undefined means use default
446
+ const limitVal = limit === 0 ? null : (limit ?? DEFAULT_LIMIT);
447
+ // Bound queryPreviewLength: 0 = full query, default 100, max 500
448
+ const previewLen = queryPreviewLength === 0
449
+ ? 10000
450
+ : Math.min(queryPreviewLength ?? 100, 500);
451
+ const cols = await getKcacheColumnNames(adapter);
452
+ const conditions = [];
453
+ const queryParams = [];
454
+ let paramIndex = 1;
455
+ if (queryId !== undefined) {
456
+ conditions.push(`s.queryid::text = $${String(paramIndex++)}`);
457
+ queryParams.push(queryId);
458
+ }
459
+ if (minCalls !== undefined) {
460
+ conditions.push(`s.calls >= $${String(paramIndex++)}`);
461
+ queryParams.push(minCalls);
462
+ }
463
+ conditions.push(`(k.${cols.userTime} + k.${cols.systemTime} + k.${cols.reads} + k.${cols.writes}) > 0`);
464
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
465
+ // Get total count first for truncation indicator
466
+ const countSql = `
467
+ SELECT COUNT(*) as total
468
+ FROM pg_stat_statements s
469
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
470
+ AND s.userid = k.userid
471
+ AND s.dbid = k.dbid
472
+ ${whereClause}
473
+ `;
474
+ const countResult = await adapter.executeQuery(countSql, queryParams);
475
+ const totalRaw = countResult.rows?.[0]?.["total"];
476
+ const totalCount = Number(totalRaw) || 0;
477
+ const sql = `
478
+ WITH query_metrics AS (
479
+ SELECT
480
+ s.queryid,
481
+ LEFT(s.query, ${String(previewLen)}) as query_preview,
482
+ s.calls,
483
+ s.total_exec_time as total_time_ms,
484
+ (k.${cols.userTime} + k.${cols.systemTime}) as cpu_time,
485
+ (k.${cols.reads} + k.${cols.writes}) as io_bytes,
486
+ k.${cols.userTime} as user_time,
487
+ k.${cols.systemTime} as system_time,
488
+ k.${cols.reads} as reads,
489
+ k.${cols.writes} as writes
490
+ FROM pg_stat_statements s
491
+ JOIN pg_stat_kcache() k ON s.queryid = k.queryid
492
+ AND s.userid = k.userid
493
+ AND s.dbid = k.dbid
494
+ ${whereClause}
495
+ )
496
+ SELECT
497
+ queryid,
498
+ query_preview,
499
+ calls,
500
+ total_time_ms,
501
+ cpu_time,
502
+ io_bytes,
503
+ CASE
504
+ WHEN cpu_time > 0 AND io_bytes > 0 THEN
505
+ CASE
506
+ WHEN (cpu_time / NULLIF(io_bytes::float / 1000000, 0)) > ${String(1 / thresholdVal)} THEN 'CPU-bound'
507
+ WHEN (io_bytes::float / 1000000 / NULLIF(cpu_time, 0)) > ${String(1 / thresholdVal)} THEN 'I/O-bound'
508
+ ELSE 'Balanced'
509
+ END
510
+ WHEN cpu_time > 0 THEN 'CPU-bound'
511
+ WHEN io_bytes > 0 THEN 'I/O-bound'
512
+ ELSE 'Unknown'
513
+ END as resource_classification,
514
+ user_time,
515
+ system_time,
516
+ reads,
517
+ writes,
518
+ pg_size_pretty(io_bytes::bigint) as io_pretty
519
+ FROM query_metrics
520
+ ORDER BY total_time_ms DESC
521
+ ${limitVal !== null ? `LIMIT ${String(limitVal)}` : ""}
522
+ `;
523
+ const result = await adapter.executeQuery(sql, queryParams);
524
+ const rows = result.rows ?? [];
525
+ const truncated = rows.length < totalCount;
526
+ const cpuBound = rows.filter((r) => r["resource_classification"] === "CPU-bound").length;
527
+ const ioBound = rows.filter((r) => r["resource_classification"] === "I/O-bound").length;
528
+ const balanced = rows.filter((r) => r["resource_classification"] === "Balanced").length;
529
+ const response = {
530
+ queries: rows,
531
+ count: rows.length,
532
+ summary: {
533
+ cpuBound,
534
+ ioBound,
535
+ balanced,
536
+ threshold: thresholdVal,
537
+ },
538
+ recommendations: [
539
+ cpuBound > ioBound
540
+ ? "Most resource-intensive queries are CPU-bound. Consider query optimization or more CPU resources."
541
+ : ioBound > cpuBound
542
+ ? "Most resource-intensive queries are I/O-bound. Consider more memory, faster storage, or better indexing."
543
+ : "Resource usage is balanced between CPU and I/O.",
544
+ ],
545
+ truncated,
546
+ totalCount,
547
+ };
548
+ return response;
549
+ },
550
+ };
551
+ }
552
+ /**
553
+ * Reset kcache statistics
554
+ */
555
+ function createKcacheResetTool(adapter) {
556
+ return {
557
+ name: "pg_kcache_reset",
558
+ description: `Reset pg_stat_kcache statistics. Use this to start fresh measurements.
559
+ Note: This also resets pg_stat_statements statistics.`,
560
+ group: "kcache",
561
+ inputSchema: z.object({}),
562
+ annotations: destructive("Reset Kcache Stats"),
563
+ icons: getToolIcons("kcache", destructive("Reset Kcache Stats")),
564
+ handler: async (_params, _context) => {
565
+ await adapter.executeQuery("SELECT pg_stat_kcache_reset()");
566
+ return {
567
+ success: true,
568
+ message: "pg_stat_kcache statistics reset",
569
+ note: "pg_stat_statements statistics were also reset",
570
+ };
571
+ },
572
+ };
573
+ }
574
+ //# sourceMappingURL=kcache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kcache.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/kcache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,MAAM,cAAc,GAAG,CAAC,GAAY,EAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;AAoB5D,KAAK,UAAU,oBAAoB,CACjC,OAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;;;KAGvC,CAAC,CAAC;IACL,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE,kBAAkB;YAC9B,KAAK,EAAE,YAAY,EAAE,qCAAqC;YAC1D,MAAM,EAAE,aAAa,EAAE,qCAAqC;YAC5D,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAwB;IACrD,OAAO;QACL,yBAAyB,CAAC,OAAO,CAAC;QAClC,0BAA0B,CAAC,OAAO,CAAC;QACnC,sBAAsB,CAAC,OAAO,CAAC;QAC/B,qBAAqB,CAAC,OAAO,CAAC;QAC9B,6BAA6B,CAAC,OAAO,CAAC;QACtC,gCAAgC,CAAC,OAAO,CAAC;QACzC,qBAAqB,CAAC,OAAO,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,OAAwB;IACzD,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE;wGACuF;QACpG,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,KAAK,CAAC,yBAAyB,CAAC;QAC7C,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/D,OAAO,EAAE,KAAK,EAAE,OAAgB,EAAE,QAAwB,EAAE,EAAE;YAC5D,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;;;;aAI5C,CAAC,CAAC;YAET,MAAM,aAAa,GAChB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAa,IAAI,KAAK,CAAC;YACjE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,4DAA4D;oBACnE,IAAI,EAAE,wDAAwD;iBAC/D,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,CAAC,YAAY,CACxB,+CAA+C,CAChD,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,kCAAkC;gBAC3C,IAAI,EAAE,6EAA6E;aACpF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,OAAwB;IAC1D,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE;;;wHAGuG;QACpH,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC;QAC3C,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC7D,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,QAAwB,EAAE,EAAE;YAC3D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GACpD,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;YAC/D,iEAAiE;YACjE,MAAM,UAAU,GACd,kBAAkB,KAAK,CAAC;gBACtB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YAE/C,MAAM,WAAW,GACf,OAAO,KAAK,UAAU;gBACpB,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU,GAAG;gBAC/C,CAAC,CAAC,OAAO,KAAK,OAAO;oBACnB,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;oBACnB,CAAC,CAAC,OAAO,KAAK,QAAQ;wBACpB,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;wBACpB,CAAC,CAAC,mBAAmB,CAAC;YAE9B,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,UAAU,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnE,iDAAiD;YACjD,MAAM,QAAQ,GAAG;;;;;;kBAML,WAAW;aAChB,CAAC;YACR,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG;;;oCAGkB,MAAM,CAAC,UAAU,CAAC;;;;wBAI9B,IAAI,CAAC,QAAQ;wBACb,IAAI,CAAC,UAAU;yBACd,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;wBACrC,IAAI,CAAC,KAAK;wBACV,IAAI,CAAC,MAAM;uCACI,IAAI,CAAC,KAAK;uCACV,IAAI,CAAC,MAAM;wBAC1B,IAAI,CAAC,OAAO;wBACZ,IAAI,CAAC,OAAO;;;;;kBAKlB,WAAW;2BACF,WAAW;kBACpB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aACzD,CAAC;YAER,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;YAExC,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC1B,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,OAAO,IAAI,YAAY;gBAChC,SAAS;gBACT,UAAU;aACX,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAwB;IACtD,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;kEACiD;QAC9D,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,CAAC,CAAC,UAAU,CACvB,cAAc,EACd,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;SAC7D,CAAC,CACH;QACD,WAAW,EAAE,QAAQ,CAAC,gBAAgB,CAAC;QACvC,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,QAAwB,EAAE,EAAE;YAC3D,MAAM,MAAM,GAAG,CAAC;iBACb,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;iBACxC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACvB,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,2EAA2E;YAC3E,MAAM,QAAQ,GACZ,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEjD,iDAAiD;YACjD,MAAM,QAAQ,GAAG;;;;;;2BAMI,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;aAClD,CAAC;YACR,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG;;;;;wBAKM,IAAI,CAAC,QAAQ;wBACb,IAAI,CAAC,UAAU;yBACd,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;;kCAE3B,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;wCAC9B,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;;;;;;yCAMzD,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;;;;;;;2BAOlD,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;8BACjC,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;kBAChD,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aACzD,CAAC;YAER,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;YAExC,MAAM,QAAQ,GAA4B;gBACxC,aAAa,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAChC,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,kDAAkD;gBAC/D,SAAS;gBACT,UAAU;aACX,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAwB;IACrD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE;kEACiD;QAC9D,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,CAAC,CAAC,UAAU,CACvB,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAA4B,CAAC;YAC7D,wBAAwB;YACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACjC,QAAQ,EAAE;iBACV,QAAQ,CAAC,qCAAqC,CAAC;YAClD,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACjC,QAAQ,EAAE;iBACV,QAAQ,CAAC,gBAAgB,CAAC;YAC7B,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;SAC7D,CAAC,CACH;QACD,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC;QACtC,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,QAAwB,EAAE,EAAE;YAC3D,8CAA8C;YAC9C,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;gBACzB,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;gBACtD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC7D,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,MAAM,GAAG,CAAC;iBACb,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC7B,CAAC;iBACD,KAAK,CAAC,YAAY,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;YACrC,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,2EAA2E;YAC3E,MAAM,QAAQ,GACZ,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,WAAW,GACf,MAAM,KAAK,OAAO;gBAChB,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;gBACnB,CAAC,CAAC,MAAM,KAAK,QAAQ;oBACnB,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;oBACpB,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC;YAE/C,iDAAiD;YACjD,MAAM,QAAQ,GAAG;;;;;;2BAMI,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM;aAC3C,CAAC;YACR,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG;;;;;wBAKM,IAAI,CAAC,KAAK;wBACV,IAAI,CAAC,MAAM;yBACV,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM;uCACf,IAAI,CAAC,KAAK;uCACV,IAAI,CAAC,MAAM;;;;;;2BAMvB,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM;2BAC7B,WAAW;kBACpB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aACzD,CAAC;YAER,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;YAExC,MAAM,QAAQ,GAA4B;gBACxC,YAAY,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC/B,KAAK,EAAE,QAAQ;gBACf,MAAM;gBACN,WAAW,EAAE,qBAAqB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC5E,SAAS;gBACT,UAAU;aACX,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,6BAA6B,CACpC,OAAwB;IAExB,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE;+DAC8C;QAC3D,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE,QAAQ,CAAC,uBAAuB,CAAC;QAC9C,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAChE,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,QAAwB,EAAE,EAAE;YAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,GAAW,CAAC;YAChB,MAAM,WAAW,GAAc,EAAE,CAAC;YAElC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,GAAG,GAAG;;;gCAGkB,IAAI,CAAC,QAAQ;gCACb,IAAI,CAAC,UAAU;gCACf,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;gCACpC,IAAI,CAAC,KAAK;gCACV,IAAI,CAAC,MAAM;+CACI,IAAI,CAAC,KAAK;+CACV,IAAI,CAAC,MAAM;gCAC1B,IAAI,CAAC,OAAO;gCACZ,IAAI,CAAC,OAAO;;;;;;iBAM3B,CAAC;gBACV,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG;;;8BAGgB,IAAI,CAAC,QAAQ;8BACb,IAAI,CAAC,UAAU;8BACf,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,UAAU;8BAClC,IAAI,CAAC,KAAK;8BACV,IAAI,CAAC,MAAM;6CACI,IAAI,CAAC,KAAK;6CACV,IAAI,CAAC,MAAM;8BAC1B,IAAI,CAAC,OAAO;8BACZ,IAAI,CAAC,OAAO;;;;mCAIP,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,UAAU;iBACpD,CAAC;YACZ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAE5D,OAAO;gBACL,aAAa,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAChC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;aAChC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gCAAgC,CACvC,OAAwB;IAExB,OAAO;QACL,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE;oGACmF;QAChG,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE,QAAQ,CAAC,0BAA0B,CAAC;QACjD,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,QAAwB,EAAE,EAAE;YAC3D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAC/D,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,SAAS,IAAI,GAAG,CAAC;YACtC,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;YAC/D,iEAAiE;YACjE,MAAM,UAAU,GACd,kBAAkB,KAAK,CAAC;gBACtB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9D,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,UAAU,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAED,UAAU,CAAC,IAAI,CACb,MAAM,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,OAAO,CACvF,CAAC;YAEF,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnE,iDAAiD;YACjD,MAAM,QAAQ,GAAG;;;;;;kBAML,WAAW;aAChB,CAAC;YACR,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG;;;;wCAIsB,MAAM,CAAC,UAAU,CAAC;;;6BAG7B,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,UAAU;6BACpC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM;4BAC9B,IAAI,CAAC,QAAQ;4BACb,IAAI,CAAC,UAAU;4BACf,IAAI,CAAC,KAAK;4BACV,IAAI,CAAC,MAAM;;;;;sBAKjB,WAAW;;;;;;;;;;;;2FAY0D,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC;2FACxB,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC;;;;;;;;;;;;;;kBAcjG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aACzD,CAAC;YAER,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC1B,CAAC,CAA0B,EAAE,EAAE,CAC7B,CAAC,CAAC,yBAAyB,CAAC,KAAK,WAAW,CAC/C,CAAC,MAAM,CAAC;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAA0B,EAAE,EAAE,CAC7B,CAAC,CAAC,yBAAyB,CAAC,KAAK,WAAW,CAC/C,CAAC,MAAM,CAAC;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC1B,CAAC,CAA0B,EAAE,EAAE,CAC7B,CAAC,CAAC,yBAAyB,CAAC,KAAK,UAAU,CAC9C,CAAC,MAAM,CAAC;YAET,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,OAAO,EAAE;oBACP,QAAQ;oBACR,OAAO;oBACP,QAAQ;oBACR,SAAS,EAAE,YAAY;iBACxB;gBACD,eAAe,EAAE;oBACf,QAAQ,GAAG,OAAO;wBAChB,CAAC,CAAC,mGAAmG;wBACrG,CAAC,CAAC,OAAO,GAAG,QAAQ;4BAClB,CAAC,CAAC,0GAA0G;4BAC5G,CAAC,CAAC,iDAAiD;iBACxD;gBACD,SAAS;gBACT,UAAU;aACX,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAwB;IACrD,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;sDACqC;QAClD,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,WAAW,CAAC,oBAAoB,CAAC;QAC9C,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAChE,OAAO,EAAE,KAAK,EAAE,OAAgB,EAAE,QAAwB,EAAE,EAAE;YAC5D,MAAM,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;YAC5D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE,+CAA+C;aACtD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PostgreSQL ltree Extension Tools
3
+ * 8 tools total.
4
+ */
5
+ import type { PostgresAdapter } from "../PostgresAdapter.js";
6
+ import type { ToolDefinition } from "../../../types/index.js";
7
+ export declare function getLtreeTools(adapter: PostgresAdapter): ToolDefinition[];
8
+ //# sourceMappingURL=ltree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltree.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/ltree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAmB9E,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAWxE"}