@neverinfamous/mysql-mcp 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/.dockerignore +1 -0
  2. package/.gitattributes +18 -0
  3. package/.github/workflows/codeql.yml +2 -10
  4. package/.github/workflows/docker-publish.yml +15 -13
  5. package/CHANGELOG.md +287 -1
  6. package/DOCKER_README.md +100 -265
  7. package/Dockerfile +5 -0
  8. package/README.md +124 -59
  9. package/VERSION +1 -1
  10. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  11. package/dist/__tests__/mocks/adapter.js +2 -0
  12. package/dist/__tests__/mocks/adapter.js.map +1 -1
  13. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  14. package/dist/adapters/DatabaseAdapter.js +50 -9
  15. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  16. package/dist/adapters/mysql/MySQLAdapter.d.ts +6 -0
  17. package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
  18. package/dist/adapters/mysql/MySQLAdapter.js +8 -0
  19. package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
  20. package/dist/adapters/mysql/SchemaManager.js +16 -15
  21. package/dist/adapters/mysql/SchemaManager.js.map +1 -1
  22. package/dist/adapters/mysql/prompts/index.js +10 -20
  23. package/dist/adapters/mysql/prompts/index.js.map +1 -1
  24. package/dist/adapters/mysql/prompts/proxysqlSetup.js +1 -1
  25. package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
  26. package/dist/adapters/mysql/resources/docstore.js +10 -7
  27. package/dist/adapters/mysql/resources/docstore.js.map +1 -1
  28. package/dist/adapters/mysql/resources/events.js +11 -8
  29. package/dist/adapters/mysql/resources/events.js.map +1 -1
  30. package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
  31. package/dist/adapters/mysql/resources/indexes.js +12 -15
  32. package/dist/adapters/mysql/resources/indexes.js.map +1 -1
  33. package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
  34. package/dist/adapters/mysql/resources/innodb.js +20 -17
  35. package/dist/adapters/mysql/resources/innodb.js.map +1 -1
  36. package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
  37. package/dist/adapters/mysql/resources/locks.js +9 -6
  38. package/dist/adapters/mysql/resources/locks.js.map +1 -1
  39. package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
  40. package/dist/adapters/mysql/resources/performance.js +15 -15
  41. package/dist/adapters/mysql/resources/performance.js.map +1 -1
  42. package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
  43. package/dist/adapters/mysql/resources/spatial.js +9 -6
  44. package/dist/adapters/mysql/resources/spatial.js.map +1 -1
  45. package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
  46. package/dist/adapters/mysql/resources/sysschema.js +12 -9
  47. package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
  48. package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
  49. package/dist/adapters/mysql/tools/admin/backup.js +170 -121
  50. package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
  51. package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
  52. package/dist/adapters/mysql/tools/admin/maintenance.js +106 -57
  53. package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
  54. package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
  55. package/dist/adapters/mysql/tools/admin/monitoring.js +183 -101
  56. package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
  57. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
  58. package/dist/adapters/mysql/tools/cluster/group-replication.js +164 -120
  59. package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
  60. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
  61. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +212 -145
  62. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
  63. package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -1
  64. package/dist/adapters/mysql/tools/codemode/index.js +6 -4
  65. package/dist/adapters/mysql/tools/codemode/index.js.map +1 -1
  66. package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
  67. package/dist/adapters/mysql/tools/core.js +152 -29
  68. package/dist/adapters/mysql/tools/core.js.map +1 -1
  69. package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
  70. package/dist/adapters/mysql/tools/docstore.js +340 -163
  71. package/dist/adapters/mysql/tools/docstore.js.map +1 -1
  72. package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
  73. package/dist/adapters/mysql/tools/events.js +284 -198
  74. package/dist/adapters/mysql/tools/events.js.map +1 -1
  75. package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
  76. package/dist/adapters/mysql/tools/json/core.js +11 -39
  77. package/dist/adapters/mysql/tools/json/core.js.map +1 -1
  78. package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
  79. package/dist/adapters/mysql/tools/json/enhanced.js +15 -33
  80. package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
  81. package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
  82. package/dist/adapters/mysql/tools/json/helpers.js +13 -24
  83. package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
  84. package/dist/adapters/mysql/tools/partitioning.js +3 -0
  85. package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
  86. package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
  87. package/dist/adapters/mysql/tools/performance/analysis.js +89 -60
  88. package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
  89. package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
  90. package/dist/adapters/mysql/tools/performance/optimization.js +151 -127
  91. package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
  92. package/dist/adapters/mysql/tools/proxysql.d.ts +1 -1
  93. package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
  94. package/dist/adapters/mysql/tools/proxysql.js +289 -176
  95. package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
  96. package/dist/adapters/mysql/tools/replication.js +75 -49
  97. package/dist/adapters/mysql/tools/replication.js.map +1 -1
  98. package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
  99. package/dist/adapters/mysql/tools/roles.js +224 -182
  100. package/dist/adapters/mysql/tools/roles.js.map +1 -1
  101. package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
  102. package/dist/adapters/mysql/tools/router.js +168 -67
  103. package/dist/adapters/mysql/tools/router.js.map +1 -1
  104. package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
  105. package/dist/adapters/mysql/tools/schema/constraints.js +21 -3
  106. package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
  107. package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
  108. package/dist/adapters/mysql/tools/schema/management.js +61 -14
  109. package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
  110. package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
  111. package/dist/adapters/mysql/tools/schema/routines.js +27 -4
  112. package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
  113. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
  114. package/dist/adapters/mysql/tools/schema/scheduled_events.js +24 -3
  115. package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
  116. package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
  117. package/dist/adapters/mysql/tools/schema/triggers.js +23 -2
  118. package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
  119. package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
  120. package/dist/adapters/mysql/tools/schema/views.js +47 -7
  121. package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
  122. package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
  123. package/dist/adapters/mysql/tools/security/audit.js +102 -34
  124. package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
  125. package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
  126. package/dist/adapters/mysql/tools/security/data-protection.js +264 -205
  127. package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
  128. package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
  129. package/dist/adapters/mysql/tools/security/encryption.js +137 -104
  130. package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
  131. package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
  132. package/dist/adapters/mysql/tools/shell/backup.js +71 -59
  133. package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
  134. package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
  135. package/dist/adapters/mysql/tools/shell/restore.js +61 -47
  136. package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
  137. package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
  138. package/dist/adapters/mysql/tools/spatial/geometry.js +19 -5
  139. package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
  140. package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
  141. package/dist/adapters/mysql/tools/spatial/operations.js +42 -17
  142. package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
  143. package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
  144. package/dist/adapters/mysql/tools/spatial/queries.js +109 -57
  145. package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
  146. package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
  147. package/dist/adapters/mysql/tools/spatial/setup.js +103 -50
  148. package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
  149. package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
  150. package/dist/adapters/mysql/tools/stats/comparative.js +128 -79
  151. package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
  152. package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
  153. package/dist/adapters/mysql/tools/stats/descriptive.js +174 -102
  154. package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
  155. package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
  156. package/dist/adapters/mysql/tools/sysschema/activity.js +50 -25
  157. package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
  158. package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
  159. package/dist/adapters/mysql/tools/sysschema/performance.js +121 -66
  160. package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
  161. package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
  162. package/dist/adapters/mysql/tools/sysschema/resources.js +101 -64
  163. package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
  164. package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
  165. package/dist/adapters/mysql/tools/text/fulltext.js +18 -32
  166. package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
  167. package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
  168. package/dist/adapters/mysql/tools/transactions.js +48 -23
  169. package/dist/adapters/mysql/tools/transactions.js.map +1 -1
  170. package/dist/adapters/mysql/types/proxysql-types.d.ts +15 -0
  171. package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
  172. package/dist/adapters/mysql/types/proxysql-types.js +33 -1
  173. package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
  174. package/dist/adapters/mysql/types/router-types.d.ts +1 -1
  175. package/dist/adapters/mysql/types/router-types.js +1 -1
  176. package/dist/adapters/mysql/types/router-types.js.map +1 -1
  177. package/dist/adapters/mysql/types/shell-types.js +2 -2
  178. package/dist/adapters/mysql/types/shell-types.js.map +1 -1
  179. package/dist/adapters/mysql/types.d.ts +485 -21
  180. package/dist/adapters/mysql/types.d.ts.map +1 -1
  181. package/dist/adapters/mysql/types.js +546 -19
  182. package/dist/adapters/mysql/types.js.map +1 -1
  183. package/dist/auth/scopes.js +1 -1
  184. package/dist/auth/scopes.js.map +1 -1
  185. package/dist/codemode/api.d.ts +3 -2
  186. package/dist/codemode/api.d.ts.map +1 -1
  187. package/dist/codemode/api.js +80 -5
  188. package/dist/codemode/api.js.map +1 -1
  189. package/dist/codemode/sandbox-factory.js +1 -1
  190. package/dist/codemode/sandbox-factory.js.map +1 -1
  191. package/dist/codemode/types.d.ts +26 -0
  192. package/dist/codemode/types.d.ts.map +1 -1
  193. package/dist/codemode/types.js +2 -0
  194. package/dist/codemode/types.js.map +1 -1
  195. package/dist/codemode/worker-sandbox.d.ts +4 -2
  196. package/dist/codemode/worker-sandbox.d.ts.map +1 -1
  197. package/dist/codemode/worker-sandbox.js +66 -7
  198. package/dist/codemode/worker-sandbox.js.map +1 -1
  199. package/dist/codemode/worker-script.d.ts +3 -0
  200. package/dist/codemode/worker-script.d.ts.map +1 -1
  201. package/dist/codemode/worker-script.js +128 -75
  202. package/dist/codemode/worker-script.js.map +1 -1
  203. package/dist/constants/ServerInstructions.d.ts +1 -1
  204. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  205. package/dist/constants/ServerInstructions.js +37 -31
  206. package/dist/constants/ServerInstructions.js.map +1 -1
  207. package/dist/filtering/ToolConstants.d.ts +1 -1
  208. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  209. package/dist/filtering/ToolConstants.js +1 -2
  210. package/dist/filtering/ToolConstants.js.map +1 -1
  211. package/dist/pool/ConnectionPool.d.ts.map +1 -1
  212. package/dist/pool/ConnectionPool.js.map +1 -1
  213. package/dist/transports/http.d.ts.map +1 -1
  214. package/dist/transports/http.js +6 -0
  215. package/dist/transports/http.js.map +1 -1
  216. package/dist/utils/validators.d.ts +1 -1
  217. package/dist/utils/validators.d.ts.map +1 -1
  218. package/dist/utils/validators.js.map +1 -1
  219. package/package.json +4 -4
  220. package/releases/v2.3.0-release-notes.md +20 -20
  221. package/releases/v2.3.1-release-notes.md +34 -0
  222. package/releases/v3.0.0-release-notes.md +81 -0
  223. package/src/__tests__/mocks/adapter.ts +3 -0
  224. package/src/__tests__/perf.test.ts +6 -6
  225. package/src/adapters/DatabaseAdapter.ts +58 -9
  226. package/src/adapters/__tests__/DatabaseAdapter.test.ts +89 -8
  227. package/src/adapters/mysql/MySQLAdapter.ts +17 -2
  228. package/src/adapters/mysql/SchemaManager.ts +21 -21
  229. package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +1 -1
  230. package/src/adapters/mysql/prompts/index.ts +12 -22
  231. package/src/adapters/mysql/prompts/proxysqlSetup.ts +1 -1
  232. package/src/adapters/mysql/resources/docstore.ts +13 -10
  233. package/src/adapters/mysql/resources/events.ts +12 -12
  234. package/src/adapters/mysql/resources/indexes.ts +17 -19
  235. package/src/adapters/mysql/resources/innodb.ts +23 -22
  236. package/src/adapters/mysql/resources/locks.ts +9 -7
  237. package/src/adapters/mysql/resources/performance.ts +23 -18
  238. package/src/adapters/mysql/resources/spatial.ts +9 -7
  239. package/src/adapters/mysql/resources/sysschema.ts +12 -11
  240. package/src/adapters/mysql/tools/__tests__/core.test.ts +126 -55
  241. package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -88
  242. package/src/adapters/mysql/tools/__tests__/events.test.ts +281 -103
  243. package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +128 -28
  244. package/src/adapters/mysql/tools/__tests__/replication.test.ts +48 -2
  245. package/src/adapters/mysql/tools/__tests__/roles.test.ts +15 -18
  246. package/src/adapters/mysql/tools/__tests__/router.test.ts +32 -5
  247. package/src/adapters/mysql/tools/__tests__/security.test.ts +126 -2
  248. package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +84 -76
  249. package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +47 -50
  250. package/src/adapters/mysql/tools/__tests__/spatial.test.ts +11 -10
  251. package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +54 -38
  252. package/src/adapters/mysql/tools/__tests__/stats.test.ts +285 -152
  253. package/src/adapters/mysql/tools/__tests__/transactions.test.ts +13 -13
  254. package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +171 -25
  255. package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +240 -4
  256. package/src/adapters/mysql/tools/admin/__tests__/monitoring-summary.test.ts +274 -0
  257. package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +94 -5
  258. package/src/adapters/mysql/tools/admin/backup.ts +193 -143
  259. package/src/adapters/mysql/tools/admin/maintenance.ts +118 -69
  260. package/src/adapters/mysql/tools/admin/monitoring.ts +201 -125
  261. package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +69 -0
  262. package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +141 -0
  263. package/src/adapters/mysql/tools/cluster/group-replication.ts +172 -132
  264. package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +231 -157
  265. package/src/adapters/mysql/tools/codemode/__tests__/codemode-tool.test.ts +227 -0
  266. package/src/adapters/mysql/tools/codemode/index.ts +5 -3
  267. package/src/adapters/mysql/tools/core.ts +152 -38
  268. package/src/adapters/mysql/tools/docstore.ts +422 -205
  269. package/src/adapters/mysql/tools/events.ts +334 -233
  270. package/src/adapters/mysql/tools/json/__tests__/core.test.ts +20 -0
  271. package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +82 -50
  272. package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +42 -3
  273. package/src/adapters/mysql/tools/json/core.ts +21 -42
  274. package/src/adapters/mysql/tools/json/enhanced.ts +22 -37
  275. package/src/adapters/mysql/tools/json/helpers.ts +21 -25
  276. package/src/adapters/mysql/tools/partitioning.ts +3 -0
  277. package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +98 -5
  278. package/src/adapters/mysql/tools/performance/__tests__/optimization-coverage.test.ts +515 -0
  279. package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +187 -0
  280. package/src/adapters/mysql/tools/performance/analysis.ts +95 -69
  281. package/src/adapters/mysql/tools/performance/optimization.ts +182 -153
  282. package/src/adapters/mysql/tools/proxysql.ts +314 -209
  283. package/src/adapters/mysql/tools/replication.ts +84 -57
  284. package/src/adapters/mysql/tools/roles.ts +274 -226
  285. package/src/adapters/mysql/tools/router.ts +181 -85
  286. package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +13 -0
  287. package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +60 -25
  288. package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +11 -0
  289. package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +25 -4
  290. package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +46 -14
  291. package/src/adapters/mysql/tools/schema/constraints.ts +22 -3
  292. package/src/adapters/mysql/tools/schema/management.ts +60 -15
  293. package/src/adapters/mysql/tools/schema/routines.ts +26 -4
  294. package/src/adapters/mysql/tools/schema/scheduled_events.ts +25 -3
  295. package/src/adapters/mysql/tools/schema/triggers.ts +27 -2
  296. package/src/adapters/mysql/tools/schema/views.ts +46 -8
  297. package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +90 -4
  298. package/src/adapters/mysql/tools/security/audit.ts +113 -39
  299. package/src/adapters/mysql/tools/security/data-protection.ts +293 -233
  300. package/src/adapters/mysql/tools/security/encryption.ts +172 -139
  301. package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +29 -0
  302. package/src/adapters/mysql/tools/shell/backup.ts +90 -73
  303. package/src/adapters/mysql/tools/shell/restore.ts +62 -48
  304. package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +22 -14
  305. package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +65 -51
  306. package/src/adapters/mysql/tools/spatial/geometry.ts +23 -7
  307. package/src/adapters/mysql/tools/spatial/operations.ts +60 -31
  308. package/src/adapters/mysql/tools/spatial/queries.ts +142 -65
  309. package/src/adapters/mysql/tools/spatial/setup.ts +121 -55
  310. package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +12 -10
  311. package/src/adapters/mysql/tools/stats/comparative.ts +150 -98
  312. package/src/adapters/mysql/tools/stats/descriptive.ts +204 -127
  313. package/src/adapters/mysql/tools/sysschema/__tests__/error-paths.test.ts +222 -0
  314. package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +45 -0
  315. package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +6 -3
  316. package/src/adapters/mysql/tools/sysschema/activity.ts +52 -27
  317. package/src/adapters/mysql/tools/sysschema/performance.ts +132 -68
  318. package/src/adapters/mysql/tools/sysschema/resources.ts +105 -67
  319. package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +45 -17
  320. package/src/adapters/mysql/tools/text/fulltext.ts +27 -38
  321. package/src/adapters/mysql/tools/transactions.ts +49 -24
  322. package/src/adapters/mysql/types/proxysql-types.ts +38 -1
  323. package/src/adapters/mysql/types/router-types.ts +1 -1
  324. package/src/adapters/mysql/types/shell-types.ts +2 -2
  325. package/src/adapters/mysql/types.ts +632 -19
  326. package/src/auth/__tests__/scopes.test.ts +2 -2
  327. package/src/auth/scopes.ts +1 -1
  328. package/src/codemode/__tests__/api.test.ts +417 -0
  329. package/src/codemode/__tests__/sandbox-factory.test.ts +158 -0
  330. package/src/codemode/__tests__/sandbox.test.ts +301 -0
  331. package/src/codemode/__tests__/security.test.ts +368 -0
  332. package/src/codemode/__tests__/worker-sandbox.test.ts +179 -0
  333. package/src/codemode/__tests__/worker-script.test.ts +226 -0
  334. package/src/codemode/api.ts +89 -5
  335. package/src/codemode/sandbox-factory.ts +1 -1
  336. package/src/codemode/types.ts +34 -0
  337. package/src/codemode/worker-sandbox.ts +74 -7
  338. package/src/codemode/worker-script.ts +157 -86
  339. package/src/constants/ServerInstructions.ts +37 -31
  340. package/src/filtering/ToolConstants.ts +1 -2
  341. package/src/filtering/__tests__/ToolFilter.test.ts +9 -9
  342. package/src/pool/ConnectionPool.ts +4 -1
  343. package/src/transports/__tests__/http.test.ts +15 -3
  344. package/src/transports/http.ts +12 -0
  345. package/src/utils/validators.ts +2 -1
  346. package/vitest.config.ts +3 -1
  347. package/CODE_MODE.md +0 -245
@@ -4,8 +4,12 @@
4
4
  * Tools for table maintenance operations.
5
5
  * 6 tools: optimize, analyze, check, repair, flush, kill.
6
6
  */
7
- import { OptimizeTableSchema, OptimizeTableSchemaBase, AnalyzeTableSchema, AnalyzeTableSchemaBase, CheckTableSchema, CheckTableSchemaBase, FlushTablesSchema, FlushTablesSchemaBase, KillQuerySchema, } from "../../types.js";
8
- import { z } from "zod";
7
+ import { ZodError } from "zod";
8
+ import { OptimizeTableSchema, OptimizeTableSchemaBase, AnalyzeTableSchema, AnalyzeTableSchemaBase, CheckTableSchema, CheckTableSchemaBase, RepairTableSchema, RepairTableSchemaBase, FlushTablesSchema, FlushTablesSchemaBase, KillQuerySchema, KillQuerySchemaBase, } from "../../types.js";
9
+ /** Extract human-readable messages from a ZodError instead of raw JSON array */
10
+ function formatZodError(error) {
11
+ return error.issues.map((i) => i.message).join("; ");
12
+ }
9
13
  export function createOptimizeTableTool(adapter) {
10
14
  return {
11
15
  name: "mysql_optimize_table",
@@ -19,10 +23,19 @@ export function createOptimizeTableTool(adapter) {
19
23
  idempotentHint: true,
20
24
  },
21
25
  handler: async (params, _context) => {
22
- const { tables } = OptimizeTableSchema.parse(params);
23
- const tableList = tables.map((t) => `\`${t}\``).join(", ");
24
- const result = await adapter.executeQuery(`OPTIMIZE TABLE ${tableList}`);
25
- return { results: result.rows, rowCount: result.rows?.length ?? 0 };
26
+ try {
27
+ const { tables } = OptimizeTableSchema.parse(params);
28
+ const tableList = tables.map((t) => `\`${t}\``).join(", ");
29
+ const result = await adapter.executeQuery(`OPTIMIZE TABLE ${tableList}`);
30
+ return { results: result.rows, rowCount: result.rows?.length ?? 0 };
31
+ }
32
+ catch (error) {
33
+ if (error instanceof ZodError) {
34
+ return { success: false, error: formatZodError(error) };
35
+ }
36
+ const message = error instanceof Error ? error.message : String(error);
37
+ return { success: false, error: message };
38
+ }
26
39
  },
27
40
  };
28
41
  }
@@ -39,10 +52,19 @@ export function createAnalyzeTableTool(adapter) {
39
52
  idempotentHint: true,
40
53
  },
41
54
  handler: async (params, _context) => {
42
- const { tables } = AnalyzeTableSchema.parse(params);
43
- const tableList = tables.map((t) => `\`${t}\``).join(", ");
44
- const result = await adapter.executeQuery(`ANALYZE TABLE ${tableList}`);
45
- return { results: result.rows, rowCount: result.rows?.length ?? 0 };
55
+ try {
56
+ const { tables } = AnalyzeTableSchema.parse(params);
57
+ const tableList = tables.map((t) => `\`${t}\``).join(", ");
58
+ const result = await adapter.executeQuery(`ANALYZE TABLE ${tableList}`);
59
+ return { results: result.rows, rowCount: result.rows?.length ?? 0 };
60
+ }
61
+ catch (error) {
62
+ if (error instanceof ZodError) {
63
+ return { success: false, error: formatZodError(error) };
64
+ }
65
+ const message = error instanceof Error ? error.message : String(error);
66
+ return { success: false, error: message };
67
+ }
46
68
  },
47
69
  };
48
70
  }
@@ -59,40 +81,54 @@ export function createCheckTableTool(adapter) {
59
81
  idempotentHint: true,
60
82
  },
61
83
  handler: async (params, _context) => {
62
- const { tables, option } = CheckTableSchema.parse(params);
63
- const tableList = tables.map((t) => `\`${t}\``).join(", ");
64
- const optionClause = option ? ` ${option}` : "";
65
- // Use rawQuery - CHECK TABLE not supported in prepared statement protocol
66
- const result = await adapter.rawQuery(`CHECK TABLE ${tableList}${optionClause}`);
67
- return {
68
- results: result.rows ?? [],
69
- rowCount: result.rows?.length ?? 0,
70
- };
84
+ try {
85
+ const { tables, option } = CheckTableSchema.parse(params);
86
+ const tableList = tables.map((t) => `\`${t}\``).join(", ");
87
+ const optionClause = option ? ` ${option}` : "";
88
+ // Use rawQuery - CHECK TABLE not supported in prepared statement protocol
89
+ const result = await adapter.rawQuery(`CHECK TABLE ${tableList}${optionClause}`);
90
+ return {
91
+ results: result.rows ?? [],
92
+ rowCount: result.rows?.length ?? 0,
93
+ };
94
+ }
95
+ catch (error) {
96
+ if (error instanceof ZodError) {
97
+ return { success: false, error: formatZodError(error) };
98
+ }
99
+ const message = error instanceof Error ? error.message : String(error);
100
+ return { success: false, error: message };
101
+ }
71
102
  },
72
103
  };
73
104
  }
74
105
  export function createRepairTableTool(adapter) {
75
- const schema = z.object({
76
- tables: z.array(z.string()),
77
- quick: z.boolean().optional().default(false),
78
- });
79
106
  return {
80
107
  name: "mysql_repair_table",
81
108
  title: "MySQL Repair Table",
82
109
  description: "Repair corrupted tables (MyISAM only).",
83
110
  group: "admin",
84
- inputSchema: schema,
111
+ inputSchema: RepairTableSchemaBase,
85
112
  requiredScopes: ["admin"],
86
113
  annotations: {
87
114
  readOnlyHint: false,
88
115
  idempotentHint: true,
89
116
  },
90
117
  handler: async (params, _context) => {
91
- const { tables, quick } = schema.parse(params);
92
- const tableList = tables.map((t) => `\`${t}\``).join(", ");
93
- const quickClause = quick ? " QUICK" : "";
94
- const result = await adapter.executeQuery(`REPAIR TABLE ${tableList}${quickClause}`);
95
- return { results: result.rows, rowCount: result.rows?.length ?? 0 };
118
+ try {
119
+ const { tables, quick } = RepairTableSchema.parse(params);
120
+ const tableList = tables.map((t) => `\`${t}\``).join(", ");
121
+ const quickClause = quick ? " QUICK" : "";
122
+ const result = await adapter.executeQuery(`REPAIR TABLE ${tableList}${quickClause}`);
123
+ return { results: result.rows, rowCount: result.rows?.length ?? 0 };
124
+ }
125
+ catch (error) {
126
+ if (error instanceof ZodError) {
127
+ return { success: false, error: formatZodError(error) };
128
+ }
129
+ const message = error instanceof Error ? error.message : String(error);
130
+ return { success: false, error: message };
131
+ }
96
132
  },
97
133
  };
98
134
  }
@@ -109,33 +145,43 @@ export function createFlushTablesTool(adapter) {
109
145
  idempotentHint: true,
110
146
  },
111
147
  handler: async (params, _context) => {
112
- const { tables } = FlushTablesSchema.parse(params);
113
- if (tables && tables.length > 0) {
114
- // Pre-check table existence since FLUSH TABLES silently succeeds for nonexistent tables
115
- const placeholders = tables.map(() => "?").join(", ");
116
- const checkResult = await adapter.executeReadQuery(`SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME IN (${placeholders})`, tables);
117
- const foundTables = new Set((checkResult.rows ?? []).map((r) => r["TABLE_NAME"]));
118
- const notFound = tables.filter((t) => !foundTables.has(t));
119
- if (notFound.length > 0) {
120
- // Flush valid tables before reporting missing ones
121
- const validTables = tables.filter((t) => foundTables.has(t));
122
- if (validTables.length > 0) {
123
- const validList = validTables.map((t) => `\`${t}\``).join(", ");
124
- await adapter.executeQuery(`FLUSH TABLES ${validList}`);
148
+ try {
149
+ const { tables } = FlushTablesSchema.parse(params);
150
+ if (tables && tables.length > 0) {
151
+ // Pre-check table existence since FLUSH TABLES silently succeeds for nonexistent tables
152
+ const placeholders = tables.map(() => "?").join(", ");
153
+ const checkResult = await adapter.executeReadQuery(`SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME IN (${placeholders})`, tables);
154
+ const foundTables = new Set((checkResult.rows ?? []).map((r) => r["TABLE_NAME"]));
155
+ const notFound = tables.filter((t) => !foundTables.has(t));
156
+ if (notFound.length > 0) {
157
+ // Flush valid tables before reporting missing ones
158
+ const validTables = tables.filter((t) => foundTables.has(t));
159
+ if (validTables.length > 0) {
160
+ const validList = validTables.map((t) => `\`${t}\``).join(", ");
161
+ await adapter.executeQuery(`FLUSH TABLES ${validList}`);
162
+ }
163
+ return {
164
+ success: false,
165
+ error: `Tables not found: ${notFound.join(", ")}`,
166
+ notFound,
167
+ flushed: validTables,
168
+ };
125
169
  }
126
- return {
127
- success: false,
128
- notFound,
129
- flushed: validTables,
130
- };
170
+ const tableList = tables.map((t) => `\`${t}\``).join(", ");
171
+ await adapter.executeQuery(`FLUSH TABLES ${tableList}`);
131
172
  }
132
- const tableList = tables.map((t) => `\`${t}\``).join(", ");
133
- await adapter.executeQuery(`FLUSH TABLES ${tableList}`);
173
+ else {
174
+ await adapter.executeQuery("FLUSH TABLES");
175
+ }
176
+ return { success: true };
134
177
  }
135
- else {
136
- await adapter.executeQuery("FLUSH TABLES");
178
+ catch (error) {
179
+ if (error instanceof ZodError) {
180
+ return { success: false, error: formatZodError(error) };
181
+ }
182
+ const message = error instanceof Error ? error.message : String(error);
183
+ return { success: false, error: message };
137
184
  }
138
- return { success: true };
139
185
  },
140
186
  };
141
187
  }
@@ -145,28 +191,31 @@ export function createKillQueryTool(adapter) {
145
191
  title: "MySQL Kill Query",
146
192
  description: "Kill a running query or connection.",
147
193
  group: "admin",
148
- inputSchema: KillQuerySchema,
194
+ inputSchema: KillQuerySchemaBase,
149
195
  requiredScopes: ["admin"],
150
196
  annotations: {
151
197
  readOnlyHint: false,
152
198
  destructiveHint: true,
153
199
  },
154
200
  handler: async (params, _context) => {
155
- const { processId, connection } = KillQuerySchema.parse(params);
156
- const killType = connection ? "CONNECTION" : "QUERY";
157
201
  try {
202
+ const { processId, connection } = KillQuerySchema.parse(params);
203
+ const killType = connection ? "CONNECTION" : "QUERY";
158
204
  await adapter.executeQuery(`KILL ${killType} ${processId}`);
159
205
  return { success: true, killed: processId, type: killType };
160
206
  }
161
207
  catch (error) {
208
+ if (error instanceof ZodError) {
209
+ return { success: false, error: formatZodError(error) };
210
+ }
162
211
  const message = error instanceof Error ? error.message : String(error);
163
212
  if (message.includes("Unknown thread id")) {
164
213
  return {
165
214
  success: false,
166
- error: `Process ID ${processId} not found`,
215
+ error: `Process ID ${/\d+/.exec(message)?.[0] ?? "unknown"} not found`,
167
216
  };
168
217
  }
169
- throw error;
218
+ return { success: false, error: message };
170
219
  }
171
220
  },
172
221
  };
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/admin/maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/admin/maintenance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/admin/monitoring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAQpC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,YAAY,GACpB,cAAc,CAmBhB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA0D1E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAuD7E;AA8FD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA2B5E;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,YAAY,GACpB,cAAc,CA4ChB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAsBzE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAkD5E"}
1
+ {"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/admin/monitoring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAQpC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,YAAY,GACpB,cAAc,CA8BhB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA6E1E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA0E7E;AA8FD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAwC5E;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,YAAY,GACpB,cAAc,CA4ChB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA6BzE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAyD5E"}
@@ -5,7 +5,7 @@
5
5
  * 7 tools: processlist, status, variables, innodb_status, replication, pool_stats, health.
6
6
  */
7
7
  import { ShowProcesslistSchema, ShowStatusSchema, ShowVariablesSchema, } from "../../types.js";
8
- import { z } from "zod";
8
+ import { z, ZodError } from "zod";
9
9
  export function createShowProcesslistTool(adapter) {
10
10
  return {
11
11
  name: "mysql_show_processlist",
@@ -19,10 +19,22 @@ export function createShowProcesslistTool(adapter) {
19
19
  idempotentHint: true,
20
20
  },
21
21
  handler: async (params, _context) => {
22
- const { full } = ShowProcesslistSchema.parse(params);
23
- const sql = full ? "SHOW FULL PROCESSLIST" : "SHOW PROCESSLIST";
24
- const result = await adapter.executeQuery(sql);
25
- return { processes: result.rows };
22
+ try {
23
+ const { full } = ShowProcesslistSchema.parse(params);
24
+ const sql = full ? "SHOW FULL PROCESSLIST" : "SHOW PROCESSLIST";
25
+ const result = await adapter.executeQuery(sql);
26
+ return { processes: result.rows };
27
+ }
28
+ catch (err) {
29
+ if (err instanceof ZodError) {
30
+ const messages = err.issues.map((i) => i.message).join("; ");
31
+ return { success: false, error: messages };
32
+ }
33
+ return {
34
+ success: false,
35
+ error: err instanceof Error ? err.message : String(err),
36
+ };
37
+ }
26
38
  },
27
39
  };
28
40
  }
@@ -39,43 +51,63 @@ export function createShowStatusTool(adapter) {
39
51
  idempotentHint: true,
40
52
  },
41
53
  handler: async (params, _context) => {
42
- const { like, global, limit } = ShowStatusSchema.parse(params);
43
- const effectiveLimit = limit ?? 100;
44
- let sql = global ? "SHOW GLOBAL STATUS" : "SHOW STATUS";
45
- // SHOW commands don't support parameter binding - build SQL directly
46
- if (like) {
47
- // Escape the like pattern for safety
48
- const escapedLike = like.replace(/'/g, "''");
49
- sql += ` LIKE '${escapedLike}'`;
54
+ try {
55
+ const { like, global, limit } = ShowStatusSchema.parse(params);
56
+ if (limit !== undefined && limit < 1) {
57
+ return {
58
+ success: false,
59
+ error: "limit must be a positive integer",
60
+ };
61
+ }
62
+ const effectiveLimit = limit ?? 100;
63
+ let sql = global ? "SHOW GLOBAL STATUS" : "SHOW STATUS";
64
+ // SHOW commands don't support parameter binding - build SQL directly
65
+ if (like) {
66
+ // Escape the like pattern for safety
67
+ const escapedLike = like.replace(/'/g, "''");
68
+ sql += ` LIKE '${escapedLike}'`;
69
+ }
70
+ const result = await adapter.rawQuery(sql);
71
+ // Convert to object for easier use
72
+ // Handle both uppercase and Pascal case column names
73
+ const status = {};
74
+ for (const row of result.rows ?? []) {
75
+ const name = (row["Variable_name"] ??
76
+ row["VARIABLE_NAME"] ??
77
+ row["variable_name"]);
78
+ const value = (row["Value"] ??
79
+ row["VALUE"] ??
80
+ row["value"]);
81
+ if (name) {
82
+ // Redact RSA public key blobs (multi-line PEM certificates)
83
+ status[name] = value?.includes("-----BEGIN PUBLIC KEY-----")
84
+ ? "[REDACTED]"
85
+ : value;
86
+ }
87
+ }
88
+ const totalAvailable = Object.keys(status).length;
89
+ const entries = Object.entries(status);
90
+ const limited = entries.length > effectiveLimit;
91
+ const truncated = limited
92
+ ? Object.fromEntries(entries.slice(0, effectiveLimit))
93
+ : status;
94
+ return {
95
+ status: truncated,
96
+ rowCount: Object.keys(truncated).length,
97
+ totalAvailable,
98
+ ...(limited && { limited: true }),
99
+ };
50
100
  }
51
- const result = await adapter.rawQuery(sql);
52
- // Convert to object for easier use
53
- // Handle both uppercase and Pascal case column names
54
- const status = {};
55
- for (const row of result.rows ?? []) {
56
- const name = (row["Variable_name"] ??
57
- row["VARIABLE_NAME"] ??
58
- row["variable_name"]);
59
- const value = (row["Value"] ?? row["VALUE"] ?? row["value"]);
60
- if (name) {
61
- // Redact RSA public key blobs (multi-line PEM certificates)
62
- status[name] = value?.includes("-----BEGIN PUBLIC KEY-----")
63
- ? "[REDACTED]"
64
- : value;
101
+ catch (err) {
102
+ if (err instanceof ZodError) {
103
+ const messages = err.issues.map((i) => i.message).join("; ");
104
+ return { success: false, error: messages };
65
105
  }
106
+ return {
107
+ success: false,
108
+ error: err instanceof Error ? err.message : String(err),
109
+ };
66
110
  }
67
- const totalAvailable = Object.keys(status).length;
68
- const entries = Object.entries(status);
69
- const limited = entries.length > effectiveLimit;
70
- const truncated = limited
71
- ? Object.fromEntries(entries.slice(0, effectiveLimit))
72
- : status;
73
- return {
74
- status: truncated,
75
- rowCount: Object.keys(truncated).length,
76
- totalAvailable,
77
- ...(limited && { limited: true }),
78
- };
79
111
  },
80
112
  };
81
113
  }
@@ -92,40 +124,60 @@ export function createShowVariablesTool(adapter) {
92
124
  idempotentHint: true,
93
125
  },
94
126
  handler: async (params, _context) => {
95
- const { like, global, limit } = ShowVariablesSchema.parse(params);
96
- const effectiveLimit = limit ?? 100;
97
- let sql = global ? "SHOW GLOBAL VARIABLES" : "SHOW VARIABLES";
98
- // SHOW commands don't support parameter binding - build SQL directly
99
- if (like) {
100
- // Escape the like pattern for safety
101
- const escapedLike = like.replace(/'/g, "''");
102
- sql += ` LIKE '${escapedLike}'`;
127
+ try {
128
+ const { like, global, limit } = ShowVariablesSchema.parse(params);
129
+ if (limit !== undefined && limit < 1) {
130
+ return {
131
+ success: false,
132
+ error: "limit must be a positive integer",
133
+ };
134
+ }
135
+ const effectiveLimit = limit ?? 100;
136
+ let sql = global ? "SHOW GLOBAL VARIABLES" : "SHOW VARIABLES";
137
+ // SHOW commands don't support parameter binding - build SQL directly
138
+ if (like) {
139
+ // Escape the like pattern for safety
140
+ const escapedLike = like.replace(/'/g, "''");
141
+ sql += ` LIKE '${escapedLike}'`;
142
+ }
143
+ const result = await adapter.rawQuery(sql);
144
+ // Convert to object
145
+ // Handle both uppercase and Pascal case column names
146
+ const variables = {};
147
+ for (const row of result.rows ?? []) {
148
+ const name = (row["Variable_name"] ??
149
+ row["VARIABLE_NAME"] ??
150
+ row["variable_name"]);
151
+ const value = (row["Value"] ??
152
+ row["VALUE"] ??
153
+ row["value"]);
154
+ if (name) {
155
+ variables[name] = value;
156
+ }
157
+ }
158
+ const totalAvailable = Object.keys(variables).length;
159
+ const entries = Object.entries(variables);
160
+ const limited = entries.length > effectiveLimit;
161
+ const truncated = limited
162
+ ? Object.fromEntries(entries.slice(0, effectiveLimit))
163
+ : variables;
164
+ return {
165
+ variables: truncated,
166
+ rowCount: Object.keys(truncated).length,
167
+ totalAvailable,
168
+ ...(limited && { limited: true }),
169
+ };
103
170
  }
104
- const result = await adapter.rawQuery(sql);
105
- // Convert to object
106
- // Handle both uppercase and Pascal case column names
107
- const variables = {};
108
- for (const row of result.rows ?? []) {
109
- const name = (row["Variable_name"] ??
110
- row["VARIABLE_NAME"] ??
111
- row["variable_name"]);
112
- const value = (row["Value"] ?? row["VALUE"] ?? row["value"]);
113
- if (name) {
114
- variables[name] = value;
171
+ catch (err) {
172
+ if (err instanceof ZodError) {
173
+ const messages = err.issues.map((i) => i.message).join("; ");
174
+ return { success: false, error: messages };
115
175
  }
176
+ return {
177
+ success: false,
178
+ error: err instanceof Error ? err.message : String(err),
179
+ };
116
180
  }
117
- const totalAvailable = Object.keys(variables).length;
118
- const entries = Object.entries(variables);
119
- const limited = entries.length > effectiveLimit;
120
- const truncated = limited
121
- ? Object.fromEntries(entries.slice(0, effectiveLimit))
122
- : variables;
123
- return {
124
- variables: truncated,
125
- rowCount: Object.keys(truncated).length,
126
- totalAvailable,
127
- ...(limited && { limited: true }),
128
- };
129
181
  },
130
182
  };
131
183
  }
@@ -216,14 +268,28 @@ export function createInnodbStatusTool(adapter) {
216
268
  idempotentHint: true,
217
269
  },
218
270
  handler: async (params, _context) => {
219
- const { summary } = InnodbStatusSchema.parse(params);
220
- const result = await adapter.executeQuery("SHOW ENGINE INNODB STATUS");
221
- const rawRow = result.rows?.[0];
222
- const rawStatus = rawRow?.["Status"] ?? rawRow?.["STATUS"] ?? "";
223
- if (summary) {
224
- return { summary: parseInnodbStatusSummary(rawStatus) };
271
+ try {
272
+ const { summary } = InnodbStatusSchema.parse(params);
273
+ const result = await adapter.executeQuery("SHOW ENGINE INNODB STATUS");
274
+ const rawRow = result.rows?.[0];
275
+ const rawStatus = rawRow?.["Status"] ??
276
+ rawRow?.["STATUS"] ??
277
+ "";
278
+ if (summary) {
279
+ return { summary: parseInnodbStatusSummary(rawStatus) };
280
+ }
281
+ return { status: rawRow };
282
+ }
283
+ catch (err) {
284
+ if (err instanceof ZodError) {
285
+ const messages = err.issues.map((i) => i.message).join("; ");
286
+ return { success: false, error: messages };
287
+ }
288
+ return {
289
+ success: false,
290
+ error: err instanceof Error ? err.message : String(err),
291
+ };
225
292
  }
226
- return { status: rawRow };
227
293
  },
228
294
  };
229
295
  }
@@ -287,11 +353,19 @@ export function createPoolStatsTool(adapter) {
287
353
  idempotentHint: true,
288
354
  },
289
355
  handler: async (_params, _context) => {
290
- const pool = await Promise.resolve(adapter.getPool());
291
- if (!pool) {
292
- return { error: "Pool not available" };
356
+ try {
357
+ const pool = await Promise.resolve(adapter.getPool());
358
+ if (!pool) {
359
+ return { success: false, error: "Pool not available" };
360
+ }
361
+ return { poolStats: pool.getStats() };
362
+ }
363
+ catch (err) {
364
+ return {
365
+ success: false,
366
+ error: err instanceof Error ? err.message : String(err),
367
+ };
293
368
  }
294
- return { poolStats: pool.getStats() };
295
369
  },
296
370
  };
297
371
  }
@@ -309,26 +383,34 @@ export function createServerHealthTool(adapter) {
309
383
  idempotentHint: true,
310
384
  },
311
385
  handler: async (_params, _context) => {
312
- const health = await adapter.getHealth();
313
- // Get additional metrics
314
- const uptimeResult = await adapter.executeQuery("SHOW GLOBAL STATUS LIKE 'Uptime'");
315
- const uptime = uptimeResult.rows?.[0]?.["Value"];
316
- const connectionsResult = await adapter.executeQuery("SHOW GLOBAL STATUS LIKE 'Threads_connected'");
317
- const connections = connectionsResult.rows?.[0]?.["Value"];
318
- const queriesResult = await adapter.executeQuery("SHOW GLOBAL STATUS LIKE 'Questions'");
319
- const queries = queriesResult.rows?.[0]?.["Value"];
320
- return {
321
- ...health,
322
- uptime: uptime != null && typeof uptime === "string"
323
- ? parseInt(uptime, 10)
324
- : undefined,
325
- activeConnections: connections != null && typeof connections === "string"
326
- ? parseInt(connections, 10)
327
- : undefined,
328
- totalQueries: queries != null && typeof queries === "string"
329
- ? parseInt(queries, 10)
330
- : undefined,
331
- };
386
+ try {
387
+ const health = await adapter.getHealth();
388
+ // Get additional metrics
389
+ const uptimeResult = await adapter.executeQuery("SHOW GLOBAL STATUS LIKE 'Uptime'");
390
+ const uptime = uptimeResult.rows?.[0]?.["Value"];
391
+ const connectionsResult = await adapter.executeQuery("SHOW GLOBAL STATUS LIKE 'Threads_connected'");
392
+ const connections = connectionsResult.rows?.[0]?.["Value"];
393
+ const queriesResult = await adapter.executeQuery("SHOW GLOBAL STATUS LIKE 'Questions'");
394
+ const queries = queriesResult.rows?.[0]?.["Value"];
395
+ return {
396
+ ...health,
397
+ uptime: uptime != null && typeof uptime === "string"
398
+ ? parseInt(uptime, 10)
399
+ : undefined,
400
+ activeConnections: connections != null && typeof connections === "string"
401
+ ? parseInt(connections, 10)
402
+ : undefined,
403
+ totalQueries: queries != null && typeof queries === "string"
404
+ ? parseInt(queries, 10)
405
+ : undefined,
406
+ };
407
+ }
408
+ catch (err) {
409
+ return {
410
+ success: false,
411
+ error: err instanceof Error ? err.message : String(err),
412
+ };
413
+ }
332
414
  },
333
415
  };
334
416
  }