@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,299 @@
1
+ /**
2
+ * pgcrypto Setup Prompt
3
+ *
4
+ * Complete guide for setting up cryptographic functions with pgcrypto.
5
+ */
6
+ export function createSetupPgcryptoPrompt() {
7
+ return {
8
+ name: "pg_setup_pgcrypto",
9
+ description: "Complete guide for setting up cryptographic functions with pgcrypto including hashing, encryption, and secure password storage.",
10
+ arguments: [
11
+ {
12
+ name: "useCase",
13
+ description: "Use case: password_hashing, encryption, uuid, hmac",
14
+ required: false,
15
+ },
16
+ ],
17
+ // eslint-disable-next-line @typescript-eslint/require-await
18
+ handler: async (args, _context) => {
19
+ const useCase = args["useCase"] ?? "password_hashing";
20
+ return `# pgcrypto Setup Guide - ${useCase
21
+ .split("_")
22
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
23
+ .join(" ")}
24
+
25
+ ## pgcrypto Overview
26
+
27
+ pgcrypto provides cryptographic functions for PostgreSQL:
28
+ - **Hashing:** SHA-256, SHA-512, MD5, etc.
29
+ - **Password hashing:** bcrypt, scrypt (via crypt/gen_salt)
30
+ - **Symmetric encryption:** AES with PGP
31
+ - **Random generation:** Secure UUIDs, random bytes
32
+ - **HMAC:** Message authentication
33
+
34
+ ## Setup Steps
35
+
36
+ ### 1. Install pgcrypto
37
+
38
+ \`\`\`sql
39
+ CREATE EXTENSION IF NOT EXISTS pgcrypto;
40
+ SELECT * FROM pg_extension WHERE extname = 'pgcrypto';
41
+ \`\`\`
42
+
43
+ ${useCase === "password_hashing"
44
+ ? `
45
+ ### 2. Secure Password Storage
46
+
47
+ **The RIGHT way: bcrypt with crypt()**
48
+
49
+ \`\`\`sql
50
+ -- Store password hash
51
+ INSERT INTO users (email, password_hash)
52
+ VALUES (
53
+ 'user@example.com',
54
+ crypt('mypassword', gen_salt('bf', 10)) -- bcrypt with cost 10
55
+ );
56
+
57
+ -- Verify password
58
+ SELECT id, email FROM users
59
+ WHERE email = 'user@example.com'
60
+ AND password_hash = crypt('mypassword', password_hash);
61
+ \`\`\`
62
+
63
+ **Salt algorithms:**
64
+ | Algorithm | \`gen_salt()\` | Security | Speed |
65
+ |-----------|--------------|----------|-------|
66
+ | bcrypt | \`'bf'\` | ✓ Best | Slowest (good!) |
67
+ | DES extended | \`'xdes'\` | ✗ Weak | Fast |
68
+ | MD5 | \`'md5'\` | ✗ Avoid | Fast |
69
+
70
+ **bcrypt cost factors:**
71
+ \`\`\`sql
72
+ SELECT gen_salt('bf', 8); -- Faster, less secure
73
+ SELECT gen_salt('bf', 10); -- Good balance (recommended)
74
+ SELECT gen_salt('bf', 12); -- Slower, more secure
75
+ SELECT gen_salt('bf', 14); -- Very slow, very secure
76
+ \`\`\`
77
+
78
+ **Complete user table:**
79
+ \`\`\`sql
80
+ CREATE TABLE users (
81
+ id SERIAL PRIMARY KEY,
82
+ email CITEXT UNIQUE NOT NULL,
83
+ password_hash TEXT NOT NULL,
84
+ created_at TIMESTAMPTZ DEFAULT NOW(),
85
+ last_login TIMESTAMPTZ
86
+ );
87
+
88
+ -- Hash on insert
89
+ CREATE OR REPLACE FUNCTION hash_password()
90
+ RETURNS TRIGGER AS $$
91
+ BEGIN
92
+ IF NEW.password_hash !~ '^\\$2[aby]\\$' THEN
93
+ NEW.password_hash := crypt(NEW.password_hash, gen_salt('bf', 10));
94
+ END IF;
95
+ RETURN NEW;
96
+ END;
97
+ $$ LANGUAGE plpgsql;
98
+
99
+ CREATE TRIGGER hash_password_trigger
100
+ BEFORE INSERT OR UPDATE OF password_hash ON users
101
+ FOR EACH ROW EXECUTE FUNCTION hash_password();
102
+ \`\`\`
103
+ `
104
+ : useCase === "encryption"
105
+ ? `
106
+ ### 2. Symmetric Encryption (AES)
107
+
108
+ **Encrypt sensitive data:**
109
+ \`\`\`sql
110
+ -- Encrypt with AES (via PGP symmetric)
111
+ INSERT INTO secrets (name, encrypted_value)
112
+ VALUES (
113
+ 'api_key',
114
+ pgp_sym_encrypt('sk-1234567890abcdef', 'my-encryption-key')
115
+ );
116
+
117
+ -- Decrypt
118
+ SELECT name, pgp_sym_decrypt(encrypted_value, 'my-encryption-key') as value
119
+ FROM secrets
120
+ WHERE name = 'api_key';
121
+ \`\`\`
122
+
123
+ **Table design for encrypted data:**
124
+ \`\`\`sql
125
+ CREATE TABLE secrets (
126
+ id SERIAL PRIMARY KEY,
127
+ name VARCHAR(255) UNIQUE NOT NULL,
128
+ encrypted_value BYTEA NOT NULL, -- Encrypted data is binary
129
+ created_at TIMESTAMPTZ DEFAULT NOW()
130
+ );
131
+
132
+ -- Create index on name (can't index encrypted content)
133
+ CREATE INDEX ON secrets (name);
134
+ \`\`\`
135
+
136
+ **Encryption options:**
137
+ \`\`\`sql
138
+ -- With compression
139
+ SELECT pgp_sym_encrypt('data', 'key', 'compress-algo=1');
140
+
141
+ -- With specific cipher
142
+ SELECT pgp_sym_encrypt('data', 'key', 'cipher-algo=aes256');
143
+ \`\`\`
144
+
145
+ **⚠️ Key management is crucial:**
146
+ - Never hardcode keys in SQL
147
+ - Use environment variables or key management service
148
+ - Rotate keys periodically
149
+ - Consider column-level encryption only for truly sensitive data
150
+ `
151
+ : useCase === "uuid"
152
+ ? `
153
+ ### 2. Secure UUID Generation
154
+
155
+ **Generate UUID v4 (random):**
156
+ \`\`\`sql
157
+ SELECT gen_random_uuid();
158
+ -- Result: 550e8400-e29b-41d4-a716-446655440000
159
+
160
+ -- Use as primary key
161
+ CREATE TABLE sessions (
162
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
163
+ user_id INTEGER REFERENCES users(id),
164
+ token TEXT NOT NULL,
165
+ expires_at TIMESTAMPTZ NOT NULL,
166
+ created_at TIMESTAMPTZ DEFAULT NOW()
167
+ );
168
+
169
+ -- Insert without specifying ID
170
+ INSERT INTO sessions (user_id, token, expires_at)
171
+ VALUES (1, gen_random_bytes(32)::text, NOW() + INTERVAL '24 hours')
172
+ RETURNING id;
173
+ \`\`\`
174
+
175
+ **PostgreSQL 13+ has built-in gen_random_uuid()**
176
+ For older versions, pgcrypto provides it.
177
+
178
+ **Random bytes for tokens:**
179
+ \`\`\`sql
180
+ -- Generate secure token (32 bytes = 256 bits)
181
+ SELECT encode(gen_random_bytes(32), 'hex') as token;
182
+
183
+ -- URL-safe base64 token
184
+ SELECT translate(
185
+ encode(gen_random_bytes(32), 'base64'),
186
+ '+/', '-_'
187
+ ) as token;
188
+ \`\`\`
189
+ `
190
+ : `
191
+ ### 2. HMAC for Message Authentication
192
+
193
+ **Sign data with HMAC:**
194
+ \`\`\`sql
195
+ -- Create HMAC-SHA256 signature
196
+ SELECT encode(
197
+ hmac('message to sign', 'secret-key', 'sha256'),
198
+ 'hex'
199
+ ) as signature;
200
+
201
+ -- Verify signature
202
+ SELECT encode(hmac('message to sign', 'secret-key', 'sha256'), 'hex')
203
+ = 'expected_signature_hex';
204
+ \`\`\`
205
+
206
+ **Webhook signature verification:**
207
+ \`\`\`sql
208
+ CREATE OR REPLACE FUNCTION verify_webhook_signature(
209
+ payload TEXT,
210
+ signature TEXT,
211
+ secret TEXT
212
+ ) RETURNS BOOLEAN AS $$
213
+ BEGIN
214
+ RETURN encode(hmac(payload, secret, 'sha256'), 'hex') = signature;
215
+ END;
216
+ $$ LANGUAGE plpgsql IMMUTABLE;
217
+
218
+ -- Use in webhook processing
219
+ SELECT * FROM webhooks
220
+ WHERE verify_webhook_signature(body, header_signature, webhook_secret);
221
+ \`\`\`
222
+
223
+ **HMAC algorithms:**
224
+ | Algorithm | Function | Output Size |
225
+ |-----------|----------|-------------|
226
+ | SHA-256 | \`hmac(data, key, 'sha256')\` | 32 bytes |
227
+ | SHA-512 | \`hmac(data, key, 'sha512')\` | 64 bytes |
228
+ | SHA-384 | \`hmac(data, key, 'sha384')\` | 48 bytes |
229
+ `}
230
+
231
+ ### 3. Data Hashing
232
+
233
+ **For data integrity (not passwords!):**
234
+ \`\`\`sql
235
+ -- SHA-256 hash
236
+ SELECT encode(digest('data to hash', 'sha256'), 'hex');
237
+
238
+ -- SHA-512 hash
239
+ SELECT encode(digest('data to hash', 'sha512'), 'hex');
240
+
241
+ -- MD5 (only for checksums, NOT security)
242
+ SELECT encode(digest('data', 'md5'), 'hex');
243
+ \`\`\`
244
+
245
+ **Hash algorithms:**
246
+ | Algorithm | Security | Use Case |
247
+ |-----------|----------|----------|
248
+ | SHA-256 | ✓ Good | Data integrity, fingerprints |
249
+ | SHA-512 | ✓ Better | Higher security needs |
250
+ | MD5 | ✗ Broken | Legacy checksums only |
251
+ | SHA-1 | ✗ Weak | Avoid |
252
+
253
+ ## Available Tools
254
+
255
+ | Tool | Purpose |
256
+ |------|---------|
257
+ | \`pg_pgcrypto_create_extension\` | Enable pgcrypto |
258
+ | \`pg_pgcrypto_hash\` | Hash data with digest() |
259
+ | \`pg_pgcrypto_hmac\` | HMAC authentication |
260
+ | \`pg_pgcrypto_encrypt\` | Symmetric encryption |
261
+ | \`pg_pgcrypto_decrypt\` | Symmetric decryption |
262
+ | \`pg_pgcrypto_gen_random_uuid\` | Generate UUID v4 |
263
+ | \`pg_pgcrypto_gen_random_bytes\` | Generate random bytes |
264
+ | \`pg_pgcrypto_gen_salt\` | Generate salt |
265
+ | \`pg_pgcrypto_crypt\` | Password hashing |
266
+
267
+ ## Security Best Practices
268
+
269
+ 1. **Passwords:** Always use bcrypt via \`crypt()\` with cost ≥10
270
+ 2. **Encryption keys:** Never store in database or code
271
+ 3. **Random data:** Use \`gen_random_bytes()\`, never \`random()\`
272
+ 4. **Hashing:** SHA-256 minimum, avoid MD5/SHA-1
273
+ 5. **Salt:** Generated fresh for each password
274
+ 6. **Key rotation:** Plan for changing encryption keys
275
+
276
+ ## Common Pitfalls
277
+
278
+ - ❌ Using MD5 or SHA-1 for passwords (use bcrypt!)
279
+ - ❌ Storing encryption keys in the database
280
+ - ❌ Using predictable values instead of \`gen_random_bytes()\`
281
+ - ❌ Low bcrypt cost factor (use at least 10)
282
+ - ❌ Encrypting everything (performance impact)
283
+
284
+ ## When to Use What
285
+
286
+ | Need | Solution |
287
+ |------|----------|
288
+ | Password storage | \`crypt()\` + \`gen_salt('bf')\` |
289
+ | Data integrity | \`digest(data, 'sha256')\` |
290
+ | Message authentication | \`hmac(data, key, 'sha256')\` |
291
+ | Sensitive data at rest | \`pgp_sym_encrypt()\` |
292
+ | Unique identifiers | \`gen_random_uuid()\` |
293
+ | Session tokens | \`gen_random_bytes(32)\` |
294
+
295
+ **Pro Tip:** pgcrypto + citext = secure authentication done right!`;
296
+ },
297
+ };
298
+ }
299
+ //# sourceMappingURL=pgcrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgcrypto.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/pgcrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,iIAAiI;QACnI,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oDAAoD;gBACjE,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,kBAAkB,CAAC;YAEtD,OAAO,4BAA4B,OAAO;iBACvC,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;;;;;;;;;;;;;;;;;;;;EAqBhB,OAAO,KAAK,kBAAkB;gBAC5B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DL;gBACG,CAAC,CAAC,OAAO,KAAK,YAAY;oBACxB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CP;oBACK,CAAC,CAAC,OAAO,KAAK,MAAM;wBAClB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCT;wBACO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAkEmE,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * pgvector Setup Prompt
3
+ *
4
+ * Complete guide for setting up semantic search with pgvector.
5
+ */
6
+ import type { PromptDefinition } from "../../../types/index.js";
7
+ export declare function createSetupPgvectorPrompt(): PromptDefinition;
8
+ //# sourceMappingURL=pgvector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgvector.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/pgvector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,yBAAyB,IAAI,gBAAgB,CAkJ5D"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * pgvector Setup Prompt
3
+ *
4
+ * Complete guide for setting up semantic search with pgvector.
5
+ */
6
+ export function createSetupPgvectorPrompt() {
7
+ return {
8
+ name: "pg_setup_pgvector",
9
+ description: "Complete guide for setting up semantic search with pgvector including table design, indexing, and queries.",
10
+ arguments: [
11
+ {
12
+ name: "contentType",
13
+ description: "Type of content: documents, products, images",
14
+ required: false,
15
+ },
16
+ {
17
+ name: "dimensions",
18
+ description: "Embedding dimensions (default: 1536 for OpenAI ada-002)",
19
+ required: false,
20
+ },
21
+ {
22
+ name: "distanceMetric",
23
+ description: "Distance metric: cosine, l2, inner_product",
24
+ required: false,
25
+ },
26
+ ],
27
+ // eslint-disable-next-line @typescript-eslint/require-await
28
+ handler: async (args, _context) => {
29
+ const contentType = args["contentType"] ?? "documents";
30
+ const dimensions = args["dimensions"] ?? "1536";
31
+ const distanceMetric = args["distanceMetric"] ?? "cosine";
32
+ return `# pgVector Setup Guide - ${contentType.charAt(0).toUpperCase() + contentType.slice(1)}
33
+
34
+ **Configuration:**
35
+ - Content Type: ${contentType}
36
+ - Embedding Dimensions: ${dimensions} (OpenAI ada-002 standard)
37
+ - Distance Metric: ${distanceMetric}
38
+
39
+ ## Setup Steps
40
+
41
+ ### 1. Install pgvector
42
+
43
+ \`\`\`sql
44
+ CREATE EXTENSION IF NOT EXISTS vector;
45
+ SELECT * FROM pg_extension WHERE extname = 'vector';
46
+ \`\`\`
47
+
48
+ ### 2. Create Table
49
+
50
+ \`\`\`sql
51
+ CREATE TABLE ${contentType} (
52
+ id SERIAL PRIMARY KEY,
53
+ content TEXT NOT NULL,
54
+ metadata JSONB,
55
+ embedding vector(${dimensions}),
56
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
57
+ );
58
+ \`\`\`
59
+
60
+ ### 3. Distance Metrics
61
+
62
+ **Cosine (${distanceMetric === "cosine" ? "✓ Selected" : ""})** - Most common for embeddings:
63
+ \`\`\`sql
64
+ SELECT id, 1 - (embedding <=> query_vector) as similarity
65
+ FROM ${contentType} ORDER BY embedding <=> query_vector LIMIT 10;
66
+ \`\`\`
67
+
68
+ **L2/Euclidean (${distanceMetric === "l2" ? "✓ Selected" : ""}):**
69
+ \`\`\`sql
70
+ SELECT id, embedding <-> query_vector as distance
71
+ FROM ${contentType} ORDER BY embedding <-> query_vector LIMIT 10;
72
+ \`\`\`
73
+
74
+ **Inner Product (${distanceMetric === "inner_product" ? "✓ Selected" : ""}):**
75
+ \`\`\`sql
76
+ SELECT id, (embedding <#> query_vector) * -1 as similarity
77
+ FROM ${contentType} ORDER BY embedding <#> query_vector LIMIT 10;
78
+ \`\`\`
79
+
80
+ ### 4. Create Index
81
+
82
+ **HNSW (Best Quality):**
83
+ \`\`\`sql
84
+ CREATE INDEX ON ${contentType}
85
+ USING hnsw (embedding vector_${distanceMetric}_ops)
86
+ WITH (m = 16, ef_construction = 64);
87
+ \`\`\`
88
+
89
+ **IVFFlat (Faster Build):**
90
+ \`\`\`sql
91
+ CREATE INDEX ON ${contentType}
92
+ USING ivfflat (embedding vector_${distanceMetric}_ops)
93
+ WITH (lists = 100);
94
+ \`\`\`
95
+
96
+ ### 5. Query Similar Content
97
+
98
+ Use \`pg_vector_search\`:
99
+ \`\`\`
100
+ pg_vector_search(
101
+ table_name: "${contentType}",
102
+ vector_column: "embedding",
103
+ query_vector: [...],
104
+ distance_metric: "${distanceMetric}",
105
+ limit: 10
106
+ )
107
+ \`\`\`
108
+
109
+ ### 6. Performance Tuning
110
+
111
+ - **Small dataset (<100K):** m=16, ef_construction=64
112
+ - **Medium dataset (100K-1M):** m=32, ef_construction=128
113
+ - **Large dataset (>1M):** m=48, ef_construction=256
114
+
115
+ Use \`pg_vector_performance\` to benchmark your configuration.
116
+
117
+ ## Available Tools
118
+
119
+ | Tool | Purpose |
120
+ |------|---------|
121
+ | \`pg_vector_create_extension\` | Enable pgvector extension |
122
+ | \`pg_vector_add_column\` | Add vector column to table |
123
+ | \`pg_vector_search\` | Similarity search with distance metrics |
124
+ | \`pg_vector_create_index\` | Create HNSW or IVFFlat index |
125
+ | \`pg_vector_update\` | Update vector values |
126
+ | \`pg_vector_batch_insert\` | Bulk insert embeddings |
127
+ | \`pg_vector_aggregate\` | Aggregate vector operations |
128
+ | \`pg_vector_distance\` | Calculate distance between vectors |
129
+ | \`pg_vector_nearest\` | Find K nearest neighbors |
130
+ | \`pg_vector_hybrid_search\` | Combine vector + keyword search |
131
+ | \`pg_vector_normalize\` | Normalize vectors |
132
+ | \`pg_vector_performance\` | Benchmark configuration |
133
+ | \`pg_vector_info\` | Get pgvector version and columns |
134
+ | \`pg_vector_drop_index\` | Drop vector index |
135
+ | \`pg_vector_reindex\` | Rebuild vector index |
136
+
137
+ ## Best Practices
138
+
139
+ 1. Normalize embeddings if using inner product
140
+ 2. Batch insert embeddings for performance
141
+ 3. Use HNSW indexes for production
142
+ 4. VACUUM ANALYZE after bulk inserts
143
+
144
+ **Pro Tip:** pgvector is PostgreSQL's killer AI feature - no other database does vector search this well!`;
145
+ },
146
+ };
147
+ }
148
+ //# sourceMappingURL=pgvector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgvector.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/pgvector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,4GAA4G;QAC9G,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,8CAA8C;gBAC3D,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,yDAAyD;gBACtE,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,4CAA4C;gBACzD,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,4DAA4D;QAC5D,OAAO,EAAE,KAAK,EACZ,IAA4B,EAC5B,QAAwB,EACP,EAAE;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC;YAChD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC;YAE1D,OAAO,4BAA4B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;;;kBAGjF,WAAW;0BACH,UAAU;qBACf,cAAc;;;;;;;;;;;;;;eAcpB,WAAW;;;;uBAIH,UAAU;;;;;;;YAOrB,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;;;OAGpD,WAAW;;;kBAGA,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;;;OAGtD,WAAW;;;mBAGC,cAAc,KAAK,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;;;OAGlE,WAAW;;;;;;;kBAOA,WAAW;+BACE,cAAc;;;;;;kBAM3B,WAAW;kCACK,cAAc;;;;;;;;;mBAS7B,WAAW;;;wBAGN,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0GAwCoE,CAAC;QACvG,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PostGIS Setup Prompt
3
+ *
4
+ * Complete guide for setting up geospatial operations with PostGIS.
5
+ */
6
+ import type { PromptDefinition } from "../../../types/index.js";
7
+ export declare function createSetupPostgisPrompt(): PromptDefinition;
8
+ //# sourceMappingURL=postgis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgis.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/postgis.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,wBAAwB,IAAI,gBAAgB,CAuM3D"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * PostGIS Setup Prompt
3
+ *
4
+ * Complete guide for setting up geospatial operations with PostGIS.
5
+ */
6
+ export function createSetupPostgisPrompt() {
7
+ return {
8
+ name: "pg_setup_postgis",
9
+ description: "Complete guide for setting up geospatial operations with PostGIS including spatial types, indexing, and queries.",
10
+ arguments: [
11
+ {
12
+ name: "useCase",
13
+ description: "Use case: mapping, distance_calc, spatial_analysis, routing",
14
+ required: false,
15
+ },
16
+ ],
17
+ // eslint-disable-next-line @typescript-eslint/require-await
18
+ handler: async (args, _context) => {
19
+ const useCase = args["useCase"] ?? "mapping";
20
+ let content = `# PostGIS Setup Guide - ${useCase
21
+ .split("_")
22
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
23
+ .join(" ")}
24
+
25
+ ## PostGIS Overview
26
+
27
+ PostGIS provides:
28
+ - 400+ spatial functions
29
+ - Spatial indexing (GiST, BRIN, SP-GiST)
30
+ - Geometry and Geography data types
31
+ - Spatial relationship analysis
32
+
33
+ ## Setup Steps
34
+
35
+ ### 1. Install PostGIS
36
+
37
+ \`\`\`sql
38
+ CREATE EXTENSION IF NOT EXISTS postgis;
39
+ SELECT PostGIS_Full_Version();
40
+ \`\`\`
41
+
42
+ ### 2. Spatial Data Types
43
+
44
+ **Geometry (Planar):** For local/regional mapping, uses projected coordinates
45
+ **Geography (Spherical):** For global mapping, uses lat/lon (WGS84)
46
+
47
+ **For ${useCase}:** Use ${useCase === "mapping" || useCase === "routing" ? "Geography for global mapping" : "Geometry for local analysis"}.
48
+
49
+ ### 3. Create Spatial Table
50
+ `;
51
+ if (useCase === "mapping") {
52
+ content += `
53
+ \`\`\`sql
54
+ CREATE TABLE locations (
55
+ id SERIAL PRIMARY KEY,
56
+ name VARCHAR(255) NOT NULL,
57
+ description TEXT,
58
+ location GEOGRAPHY(POINT, 4326), -- WGS84 (GPS)
59
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
60
+ );
61
+
62
+ INSERT INTO locations (name, location)
63
+ VALUES ('San Francisco', ST_GeographyFromText('POINT(-122.4194 37.7749)'));
64
+ \`\`\`
65
+ `;
66
+ }
67
+ else if (useCase === "distance_calc") {
68
+ content += `
69
+ \`\`\`sql
70
+ CREATE TABLE points_of_interest (
71
+ id SERIAL PRIMARY KEY,
72
+ name VARCHAR(255),
73
+ category VARCHAR(50),
74
+ location GEOGRAPHY(POINT, 4326)
75
+ );
76
+
77
+ -- Find nearest POIs
78
+ SELECT name,
79
+ ST_Distance(location, ST_GeographyFromText('POINT(-122.4194 37.7749)')) / 1000 as distance_km
80
+ FROM points_of_interest
81
+ ORDER BY location <-> ST_GeographyFromText('POINT(-122.4194 37.7749)')
82
+ LIMIT 10;
83
+ \`\`\`
84
+ `;
85
+ }
86
+ else if (useCase === "spatial_analysis") {
87
+ content += `
88
+ \`\`\`sql
89
+ CREATE TABLE regions (
90
+ id SERIAL PRIMARY KEY,
91
+ name VARCHAR(255),
92
+ boundary GEOGRAPHY(POLYGON, 4326),
93
+ properties JSONB
94
+ );
95
+
96
+ -- Check if point is within region
97
+ SELECT r.name FROM regions r
98
+ WHERE ST_Contains(r.boundary::geometry,
99
+ ST_GeographyFromText('POINT(-122.4194 37.7749)')::geometry);
100
+ \`\`\`
101
+ `;
102
+ }
103
+ else {
104
+ content += `
105
+ \`\`\`sql
106
+ CREATE TABLE roads (
107
+ id SERIAL PRIMARY KEY,
108
+ name VARCHAR(255),
109
+ road_type VARCHAR(50),
110
+ geometry GEOGRAPHY(LINESTRING, 4326),
111
+ length_meters FLOAT
112
+ );
113
+
114
+ -- Find roads within 1km
115
+ SELECT name, road_type FROM roads
116
+ WHERE ST_DWithin(geometry,
117
+ ST_GeographyFromText('POINT(-122.4194 37.7749)'), 1000);
118
+ \`\`\`
119
+ `;
120
+ }
121
+ content += `
122
+ ### 4. Create Spatial Index
123
+
124
+ \`\`\`sql
125
+ CREATE INDEX idx_locations_geog ON locations USING GIST (location);
126
+ \`\`\`
127
+
128
+ ### 5. Common Spatial Queries
129
+
130
+ **Distance Queries:**
131
+ Use \`pg_geo_distance\`:
132
+ \`\`\`
133
+ pg_geo_distance(
134
+ table_name: "locations",
135
+ geometry_column: "location",
136
+ reference_point: "POINT(-122.4194 37.7749)",
137
+ max_distance: 10.0,
138
+ distance_unit: "kilometers"
139
+ )
140
+ \`\`\`
141
+
142
+ **Containment Queries:**
143
+ Use \`pg_geo_within\` to find points within a polygon.
144
+
145
+ **Buffer Operations:**
146
+ Use \`pg_geo_buffer\` to create buffer zones.
147
+
148
+ ### 6. GeoJSON Output
149
+
150
+ \`\`\`sql
151
+ SELECT jsonb_build_object(
152
+ 'type', 'Feature',
153
+ 'geometry', ST_AsGeoJSON(location)::jsonb,
154
+ 'properties', jsonb_build_object('name', name)
155
+ ) as geojson
156
+ FROM locations;
157
+ \`\`\`
158
+
159
+ ## Available Tools
160
+
161
+ | Tool | Purpose |
162
+ |------|---------|
163
+ | \`pg_postgis_create_extension\` | Enable PostGIS extension |
164
+ | \`pg_geometry_column\` | Add geometry/geography column |
165
+ | \`pg_spatial_index\` | Create spatial GiST index |
166
+ | \`pg_distance\` | Calculate distance between points |
167
+ | \`pg_buffer\` | Create buffer around geometry |
168
+ | \`pg_intersection\` | Find intersection of geometries |
169
+ | \`pg_within\` | Check if geometry is within another |
170
+ | \`pg_contains\` | Check if geometry contains another |
171
+ | \`pg_bounding_box\` | Get bounding box of geometry |
172
+ | \`pg_geocode\` | Geocode addresses (if geocoder installed) |
173
+ | \`pg_geometry_buffer\` | Buffer operations on table data |
174
+ | \`pg_geo_cluster\` | Cluster spatial data |
175
+ | \`pg_geo_index_optimize\` | Analyze spatial index performance |
176
+ | \`pg_nearest_neighbor\` | Find K nearest neighbors |
177
+ | \`pg_spatial_join\` | Join tables on spatial relationship |
178
+ | \`pg_postgis_info\` | Get PostGIS version and capabilities |
179
+
180
+ ## Best Practices
181
+
182
+ 1. **Always use spatial indexes** - 100x+ performance improvement
183
+ 2. **Choose appropriate SRID** - 4326 for global, local SRID for regional
184
+ 3. **Use geography for distance** - More accurate than geometry for Earth
185
+ 4. **Validate geometries** - Use ST_IsValid()
186
+ 5. **VACUUM ANALYZE regularly**
187
+
188
+ ## Common Pitfalls
189
+
190
+ - ❌ Mixing geometry and geography without casting
191
+ - ❌ Not using spatial indexes for large datasets
192
+ - ❌ Using wrong SRID for coordinate system
193
+ - ❌ Calculating area/distance on lat/lon without geography type
194
+
195
+ **Pro Tip:** PostGIS is PostgreSQL's GIS superpower - it's the industry standard for spatial databases!`;
196
+ return content;
197
+ },
198
+ };
199
+ }
200
+ //# sourceMappingURL=postgis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgis.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/postgis.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,kHAAkH;QACpH,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,6DAA6D;gBAC/D,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,SAAS,CAAC;YAE7C,IAAI,OAAO,GAAG,2BAA2B,OAAO;iBAC7C,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;;;;;;;;;;;;;;;;;;;;;;;;QAwBV,OAAO,WAAW,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,6BAA6B;;;CAGxI,CAAC;YAEI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,IAAI;;;;;;;;;;;;;CAalB,CAAC;YACI,CAAC;iBAAM,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;gBACvC,OAAO,IAAI;;;;;;;;;;;;;;;;CAgBlB,CAAC;YACI,CAAC;iBAAM,IAAI,OAAO,KAAK,kBAAkB,EAAE,CAAC;gBAC1C,OAAO,IAAI;;;;;;;;;;;;;;CAclB,CAAC;YACI,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI;;;;;;;;;;;;;;;CAelB,CAAC;YACI,CAAC;YAED,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wGA0EuF,CAAC;YAEnG,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Activity Resource
3
+ *
4
+ * Current database connections and running queries with blocking detection.
5
+ */
6
+ import type { PostgresAdapter } from "../PostgresAdapter.js";
7
+ import type { ResourceDefinition } from "../../../types/index.js";
8
+ export declare function createActivityResource(adapter: PostgresAdapter): ResourceDefinition;
9
+ //# sourceMappingURL=activity.d.ts.map