@neverinfamous/mysql-mcp 2.3.1 → 3.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 (345) hide show
  1. package/.dockerignore +1 -0
  2. package/.gitattributes +18 -0
  3. package/.github/workflows/codeql.yml +2 -2
  4. package/.github/workflows/docker-publish.yml +5 -5
  5. package/CHANGELOG.md +348 -122
  6. package/DOCKER_README.md +81 -40
  7. package/README.md +87 -46
  8. package/VERSION +1 -1
  9. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  10. package/dist/__tests__/mocks/adapter.js +2 -0
  11. package/dist/__tests__/mocks/adapter.js.map +1 -1
  12. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  13. package/dist/adapters/DatabaseAdapter.js +50 -9
  14. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  15. package/dist/adapters/mysql/MySQLAdapter.d.ts +6 -0
  16. package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
  17. package/dist/adapters/mysql/MySQLAdapter.js +8 -0
  18. package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
  19. package/dist/adapters/mysql/SchemaManager.js +16 -15
  20. package/dist/adapters/mysql/SchemaManager.js.map +1 -1
  21. package/dist/adapters/mysql/prompts/index.js +10 -20
  22. package/dist/adapters/mysql/prompts/index.js.map +1 -1
  23. package/dist/adapters/mysql/prompts/proxysqlSetup.js +1 -1
  24. package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
  25. package/dist/adapters/mysql/resources/docstore.js +10 -7
  26. package/dist/adapters/mysql/resources/docstore.js.map +1 -1
  27. package/dist/adapters/mysql/resources/events.js +11 -8
  28. package/dist/adapters/mysql/resources/events.js.map +1 -1
  29. package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
  30. package/dist/adapters/mysql/resources/indexes.js +12 -15
  31. package/dist/adapters/mysql/resources/indexes.js.map +1 -1
  32. package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
  33. package/dist/adapters/mysql/resources/innodb.js +20 -17
  34. package/dist/adapters/mysql/resources/innodb.js.map +1 -1
  35. package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
  36. package/dist/adapters/mysql/resources/locks.js +9 -6
  37. package/dist/adapters/mysql/resources/locks.js.map +1 -1
  38. package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
  39. package/dist/adapters/mysql/resources/performance.js +15 -15
  40. package/dist/adapters/mysql/resources/performance.js.map +1 -1
  41. package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
  42. package/dist/adapters/mysql/resources/spatial.js +9 -6
  43. package/dist/adapters/mysql/resources/spatial.js.map +1 -1
  44. package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
  45. package/dist/adapters/mysql/resources/sysschema.js +12 -9
  46. package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
  47. package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
  48. package/dist/adapters/mysql/tools/admin/backup.js +170 -121
  49. package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
  50. package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
  51. package/dist/adapters/mysql/tools/admin/maintenance.js +106 -57
  52. package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
  53. package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
  54. package/dist/adapters/mysql/tools/admin/monitoring.js +183 -101
  55. package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
  56. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
  57. package/dist/adapters/mysql/tools/cluster/group-replication.js +164 -120
  58. package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
  59. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
  60. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +212 -145
  61. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
  62. package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -1
  63. package/dist/adapters/mysql/tools/codemode/index.js +6 -4
  64. package/dist/adapters/mysql/tools/codemode/index.js.map +1 -1
  65. package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
  66. package/dist/adapters/mysql/tools/core.js +152 -29
  67. package/dist/adapters/mysql/tools/core.js.map +1 -1
  68. package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
  69. package/dist/adapters/mysql/tools/docstore.js +340 -163
  70. package/dist/adapters/mysql/tools/docstore.js.map +1 -1
  71. package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
  72. package/dist/adapters/mysql/tools/events.js +284 -198
  73. package/dist/adapters/mysql/tools/events.js.map +1 -1
  74. package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
  75. package/dist/adapters/mysql/tools/json/core.js +11 -39
  76. package/dist/adapters/mysql/tools/json/core.js.map +1 -1
  77. package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
  78. package/dist/adapters/mysql/tools/json/enhanced.js +15 -33
  79. package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
  80. package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
  81. package/dist/adapters/mysql/tools/json/helpers.js +13 -24
  82. package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
  83. package/dist/adapters/mysql/tools/partitioning.js +3 -0
  84. package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
  85. package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
  86. package/dist/adapters/mysql/tools/performance/analysis.js +89 -60
  87. package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
  88. package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
  89. package/dist/adapters/mysql/tools/performance/optimization.js +151 -127
  90. package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
  91. package/dist/adapters/mysql/tools/proxysql.d.ts +1 -1
  92. package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
  93. package/dist/adapters/mysql/tools/proxysql.js +289 -176
  94. package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
  95. package/dist/adapters/mysql/tools/replication.js +75 -49
  96. package/dist/adapters/mysql/tools/replication.js.map +1 -1
  97. package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
  98. package/dist/adapters/mysql/tools/roles.js +224 -182
  99. package/dist/adapters/mysql/tools/roles.js.map +1 -1
  100. package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
  101. package/dist/adapters/mysql/tools/router.js +168 -67
  102. package/dist/adapters/mysql/tools/router.js.map +1 -1
  103. package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
  104. package/dist/adapters/mysql/tools/schema/constraints.js +21 -3
  105. package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
  106. package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
  107. package/dist/adapters/mysql/tools/schema/management.js +61 -14
  108. package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
  109. package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
  110. package/dist/adapters/mysql/tools/schema/routines.js +27 -4
  111. package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
  112. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
  113. package/dist/adapters/mysql/tools/schema/scheduled_events.js +24 -3
  114. package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
  115. package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
  116. package/dist/adapters/mysql/tools/schema/triggers.js +23 -2
  117. package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
  118. package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
  119. package/dist/adapters/mysql/tools/schema/views.js +47 -7
  120. package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
  121. package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
  122. package/dist/adapters/mysql/tools/security/audit.js +102 -34
  123. package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
  124. package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
  125. package/dist/adapters/mysql/tools/security/data-protection.js +264 -205
  126. package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
  127. package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
  128. package/dist/adapters/mysql/tools/security/encryption.js +137 -104
  129. package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
  130. package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
  131. package/dist/adapters/mysql/tools/shell/backup.js +71 -59
  132. package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
  133. package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
  134. package/dist/adapters/mysql/tools/shell/restore.js +61 -47
  135. package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
  136. package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
  137. package/dist/adapters/mysql/tools/spatial/geometry.js +19 -5
  138. package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
  139. package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
  140. package/dist/adapters/mysql/tools/spatial/operations.js +42 -17
  141. package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
  142. package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
  143. package/dist/adapters/mysql/tools/spatial/queries.js +109 -57
  144. package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
  145. package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
  146. package/dist/adapters/mysql/tools/spatial/setup.js +103 -50
  147. package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
  148. package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
  149. package/dist/adapters/mysql/tools/stats/comparative.js +128 -79
  150. package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
  151. package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
  152. package/dist/adapters/mysql/tools/stats/descriptive.js +174 -102
  153. package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
  154. package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
  155. package/dist/adapters/mysql/tools/sysschema/activity.js +50 -25
  156. package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
  157. package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
  158. package/dist/adapters/mysql/tools/sysschema/performance.js +121 -66
  159. package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
  160. package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
  161. package/dist/adapters/mysql/tools/sysschema/resources.js +101 -64
  162. package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
  163. package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
  164. package/dist/adapters/mysql/tools/text/fulltext.js +18 -32
  165. package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
  166. package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
  167. package/dist/adapters/mysql/tools/transactions.js +48 -23
  168. package/dist/adapters/mysql/tools/transactions.js.map +1 -1
  169. package/dist/adapters/mysql/types/proxysql-types.d.ts +15 -0
  170. package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
  171. package/dist/adapters/mysql/types/proxysql-types.js +33 -1
  172. package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
  173. package/dist/adapters/mysql/types/router-types.d.ts +1 -1
  174. package/dist/adapters/mysql/types/router-types.js +1 -1
  175. package/dist/adapters/mysql/types/router-types.js.map +1 -1
  176. package/dist/adapters/mysql/types/shell-types.js +2 -2
  177. package/dist/adapters/mysql/types/shell-types.js.map +1 -1
  178. package/dist/adapters/mysql/types.d.ts +485 -21
  179. package/dist/adapters/mysql/types.d.ts.map +1 -1
  180. package/dist/adapters/mysql/types.js +546 -19
  181. package/dist/adapters/mysql/types.js.map +1 -1
  182. package/dist/auth/scopes.js +1 -1
  183. package/dist/auth/scopes.js.map +1 -1
  184. package/dist/codemode/api.d.ts +3 -2
  185. package/dist/codemode/api.d.ts.map +1 -1
  186. package/dist/codemode/api.js +80 -5
  187. package/dist/codemode/api.js.map +1 -1
  188. package/dist/codemode/sandbox-factory.js +1 -1
  189. package/dist/codemode/sandbox-factory.js.map +1 -1
  190. package/dist/codemode/types.d.ts +26 -0
  191. package/dist/codemode/types.d.ts.map +1 -1
  192. package/dist/codemode/types.js +2 -0
  193. package/dist/codemode/types.js.map +1 -1
  194. package/dist/codemode/worker-sandbox.d.ts +4 -2
  195. package/dist/codemode/worker-sandbox.d.ts.map +1 -1
  196. package/dist/codemode/worker-sandbox.js +66 -7
  197. package/dist/codemode/worker-sandbox.js.map +1 -1
  198. package/dist/codemode/worker-script.d.ts +3 -0
  199. package/dist/codemode/worker-script.d.ts.map +1 -1
  200. package/dist/codemode/worker-script.js +128 -75
  201. package/dist/codemode/worker-script.js.map +1 -1
  202. package/dist/constants/ServerInstructions.d.ts +1 -1
  203. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  204. package/dist/constants/ServerInstructions.js +37 -31
  205. package/dist/constants/ServerInstructions.js.map +1 -1
  206. package/dist/filtering/ToolConstants.d.ts +1 -1
  207. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  208. package/dist/filtering/ToolConstants.js +1 -2
  209. package/dist/filtering/ToolConstants.js.map +1 -1
  210. package/dist/pool/ConnectionPool.d.ts.map +1 -1
  211. package/dist/pool/ConnectionPool.js.map +1 -1
  212. package/dist/transports/http.d.ts.map +1 -1
  213. package/dist/transports/http.js +6 -0
  214. package/dist/transports/http.js.map +1 -1
  215. package/dist/utils/validators.d.ts +1 -1
  216. package/dist/utils/validators.d.ts.map +1 -1
  217. package/dist/utils/validators.js.map +1 -1
  218. package/package.json +4 -4
  219. package/releases/v3.0.0-release-notes.md +81 -0
  220. package/releases/v3.0.1-release-notes.md +20 -0
  221. package/src/__tests__/mocks/adapter.ts +3 -0
  222. package/src/__tests__/perf.test.ts +6 -6
  223. package/src/adapters/DatabaseAdapter.ts +58 -9
  224. package/src/adapters/__tests__/DatabaseAdapter.test.ts +89 -8
  225. package/src/adapters/mysql/MySQLAdapter.ts +17 -2
  226. package/src/adapters/mysql/SchemaManager.ts +21 -21
  227. package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +1 -1
  228. package/src/adapters/mysql/prompts/index.ts +12 -22
  229. package/src/adapters/mysql/prompts/proxysqlSetup.ts +1 -1
  230. package/src/adapters/mysql/resources/docstore.ts +13 -10
  231. package/src/adapters/mysql/resources/events.ts +12 -12
  232. package/src/adapters/mysql/resources/indexes.ts +17 -19
  233. package/src/adapters/mysql/resources/innodb.ts +23 -22
  234. package/src/adapters/mysql/resources/locks.ts +9 -7
  235. package/src/adapters/mysql/resources/performance.ts +23 -18
  236. package/src/adapters/mysql/resources/spatial.ts +9 -7
  237. package/src/adapters/mysql/resources/sysschema.ts +12 -11
  238. package/src/adapters/mysql/tools/__tests__/core.test.ts +126 -55
  239. package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -88
  240. package/src/adapters/mysql/tools/__tests__/events.test.ts +281 -103
  241. package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +128 -28
  242. package/src/adapters/mysql/tools/__tests__/replication.test.ts +48 -2
  243. package/src/adapters/mysql/tools/__tests__/roles.test.ts +15 -18
  244. package/src/adapters/mysql/tools/__tests__/router.test.ts +32 -5
  245. package/src/adapters/mysql/tools/__tests__/security.test.ts +126 -2
  246. package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +84 -76
  247. package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +47 -51
  248. package/src/adapters/mysql/tools/__tests__/spatial.test.ts +11 -10
  249. package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +54 -38
  250. package/src/adapters/mysql/tools/__tests__/stats.test.ts +285 -152
  251. package/src/adapters/mysql/tools/__tests__/transactions.test.ts +13 -13
  252. package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +171 -25
  253. package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +240 -4
  254. package/src/adapters/mysql/tools/admin/__tests__/monitoring-summary.test.ts +274 -0
  255. package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +94 -5
  256. package/src/adapters/mysql/tools/admin/backup.ts +193 -143
  257. package/src/adapters/mysql/tools/admin/maintenance.ts +118 -69
  258. package/src/adapters/mysql/tools/admin/monitoring.ts +201 -125
  259. package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +69 -0
  260. package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +141 -0
  261. package/src/adapters/mysql/tools/cluster/group-replication.ts +172 -132
  262. package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +231 -157
  263. package/src/adapters/mysql/tools/codemode/__tests__/codemode-tool.test.ts +227 -0
  264. package/src/adapters/mysql/tools/codemode/index.ts +5 -3
  265. package/src/adapters/mysql/tools/core.ts +152 -38
  266. package/src/adapters/mysql/tools/docstore.ts +422 -205
  267. package/src/adapters/mysql/tools/events.ts +334 -233
  268. package/src/adapters/mysql/tools/json/__tests__/core.test.ts +20 -0
  269. package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +82 -50
  270. package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +42 -3
  271. package/src/adapters/mysql/tools/json/core.ts +21 -42
  272. package/src/adapters/mysql/tools/json/enhanced.ts +22 -37
  273. package/src/adapters/mysql/tools/json/helpers.ts +21 -25
  274. package/src/adapters/mysql/tools/partitioning.ts +3 -0
  275. package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +98 -5
  276. package/src/adapters/mysql/tools/performance/__tests__/optimization-coverage.test.ts +515 -0
  277. package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +187 -0
  278. package/src/adapters/mysql/tools/performance/analysis.ts +95 -69
  279. package/src/adapters/mysql/tools/performance/optimization.ts +182 -153
  280. package/src/adapters/mysql/tools/proxysql.ts +314 -209
  281. package/src/adapters/mysql/tools/replication.ts +84 -57
  282. package/src/adapters/mysql/tools/roles.ts +274 -226
  283. package/src/adapters/mysql/tools/router.ts +181 -85
  284. package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +13 -0
  285. package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +60 -25
  286. package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +11 -0
  287. package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +25 -4
  288. package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +46 -14
  289. package/src/adapters/mysql/tools/schema/constraints.ts +22 -3
  290. package/src/adapters/mysql/tools/schema/management.ts +60 -15
  291. package/src/adapters/mysql/tools/schema/routines.ts +26 -4
  292. package/src/adapters/mysql/tools/schema/scheduled_events.ts +25 -3
  293. package/src/adapters/mysql/tools/schema/triggers.ts +27 -2
  294. package/src/adapters/mysql/tools/schema/views.ts +46 -8
  295. package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +90 -4
  296. package/src/adapters/mysql/tools/security/audit.ts +113 -39
  297. package/src/adapters/mysql/tools/security/data-protection.ts +293 -233
  298. package/src/adapters/mysql/tools/security/encryption.ts +172 -139
  299. package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +29 -0
  300. package/src/adapters/mysql/tools/shell/backup.ts +90 -73
  301. package/src/adapters/mysql/tools/shell/restore.ts +62 -48
  302. package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +22 -14
  303. package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +65 -51
  304. package/src/adapters/mysql/tools/spatial/geometry.ts +23 -7
  305. package/src/adapters/mysql/tools/spatial/operations.ts +60 -31
  306. package/src/adapters/mysql/tools/spatial/queries.ts +142 -65
  307. package/src/adapters/mysql/tools/spatial/setup.ts +121 -55
  308. package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +12 -10
  309. package/src/adapters/mysql/tools/stats/comparative.ts +150 -98
  310. package/src/adapters/mysql/tools/stats/descriptive.ts +204 -127
  311. package/src/adapters/mysql/tools/sysschema/__tests__/error-paths.test.ts +222 -0
  312. package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +45 -0
  313. package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +6 -3
  314. package/src/adapters/mysql/tools/sysschema/activity.ts +52 -27
  315. package/src/adapters/mysql/tools/sysschema/performance.ts +132 -68
  316. package/src/adapters/mysql/tools/sysschema/resources.ts +105 -67
  317. package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +45 -17
  318. package/src/adapters/mysql/tools/text/fulltext.ts +27 -38
  319. package/src/adapters/mysql/tools/transactions.ts +49 -24
  320. package/src/adapters/mysql/types/proxysql-types.ts +38 -1
  321. package/src/adapters/mysql/types/router-types.ts +1 -1
  322. package/src/adapters/mysql/types/shell-types.ts +2 -2
  323. package/src/adapters/mysql/types.ts +632 -19
  324. package/src/auth/__tests__/scopes.test.ts +2 -2
  325. package/src/auth/scopes.ts +1 -1
  326. package/src/codemode/__tests__/api.test.ts +417 -0
  327. package/src/codemode/__tests__/sandbox-factory.test.ts +158 -0
  328. package/src/codemode/__tests__/sandbox.test.ts +301 -0
  329. package/src/codemode/__tests__/security.test.ts +368 -0
  330. package/src/codemode/__tests__/worker-sandbox.test.ts +179 -0
  331. package/src/codemode/__tests__/worker-script.test.ts +226 -0
  332. package/src/codemode/api.ts +89 -5
  333. package/src/codemode/sandbox-factory.ts +1 -1
  334. package/src/codemode/types.ts +34 -0
  335. package/src/codemode/worker-sandbox.ts +74 -7
  336. package/src/codemode/worker-script.ts +157 -86
  337. package/src/constants/ServerInstructions.ts +37 -31
  338. package/src/filtering/ToolConstants.ts +1 -2
  339. package/src/filtering/__tests__/ToolFilter.test.ts +9 -9
  340. package/src/pool/ConnectionPool.ts +4 -1
  341. package/src/transports/__tests__/http.test.ts +15 -3
  342. package/src/transports/http.ts +12 -0
  343. package/src/utils/validators.ts +2 -1
  344. package/vitest.config.ts +3 -1
  345. 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
  }