@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
@@ -1,8 +1,17 @@
1
1
  /**
2
2
  * MySQL Roles Tools - 8 tools for role management
3
3
  */
4
- import { z } from "zod";
4
+ import { z, ZodError } from "zod";
5
5
  import { validateIdentifier, validateMySQLPrivilege, validateMySQLUserHost, escapeLikePattern, } from "../../../utils/validators.js";
6
+ function formatZodError(error) {
7
+ return error.issues.map((i) => i.message).join("; ");
8
+ }
9
+ function stripErrorPrefix(msg) {
10
+ return msg
11
+ .replace(/^Raw query failed:\s*/i, "")
12
+ .replace(/^Query failed:\s*/i, "")
13
+ .replace(/^Execute failed:\s*/i, "");
14
+ }
6
15
  const RoleListSchema = z.object({
7
16
  pattern: z.string().optional().describe("Filter pattern (LIKE syntax)"),
8
17
  });
@@ -47,13 +56,21 @@ export function getRoleTools(adapter) {
47
56
  requiredScopes: ["read"],
48
57
  annotations: { readOnlyHint: true, idempotentHint: true },
49
58
  handler: async (params, _context) => {
50
- const { pattern } = RoleListSchema.parse(params);
51
- let query = `SELECT u.User as roleName, u.Host FROM mysql.user u
52
- WHERE u.account_locked='Y' AND u.password_expired='Y' AND u.authentication_string=''`;
53
- if (pattern)
54
- query += ` AND u.User LIKE '${escapeLikePattern(pattern)}'`;
55
- const result = await adapter.executeQuery(query);
56
- return { roles: result.rows ?? [], count: result.rows?.length ?? 0 };
59
+ try {
60
+ const { pattern } = RoleListSchema.parse(params);
61
+ let query = `SELECT u.User as roleName, u.Host FROM mysql.user u
62
+ WHERE u.account_locked='Y' AND u.password_expired='Y' AND u.authentication_string=''`;
63
+ if (pattern)
64
+ query += ` AND u.User LIKE '${escapeLikePattern(pattern)}'`;
65
+ const result = await adapter.executeQuery(query);
66
+ return { roles: result.rows ?? [], count: result.rows?.length ?? 0 };
67
+ }
68
+ catch (error) {
69
+ if (error instanceof ZodError)
70
+ return { success: false, error: formatZodError(error) };
71
+ const message = error instanceof Error ? error.message : String(error);
72
+ return { success: false, error: stripErrorPrefix(message) };
73
+ }
57
74
  },
58
75
  },
59
76
  {
@@ -65,35 +82,39 @@ export function getRoleTools(adapter) {
65
82
  requiredScopes: ["admin"],
66
83
  annotations: { readOnlyHint: false },
67
84
  handler: async (params, _context) => {
68
- const { name, ifNotExists } = RoleCreateSchema.parse(params);
69
- if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name))
70
- throw new Error("Invalid role name");
71
- // Pre-check existence for skipped indicator when ifNotExists is true
72
- if (ifNotExists) {
73
- const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [name]);
74
- if (checkResult.rows && checkResult.rows.length > 0) {
75
- return {
76
- success: true,
77
- skipped: true,
78
- roleName: name,
79
- reason: "Role already exists",
80
- };
81
- }
82
- }
83
85
  try {
86
+ const { name, ifNotExists } = RoleCreateSchema.parse(params);
87
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name))
88
+ return { success: false, error: "Invalid role name" };
89
+ // Pre-check existence for skipped indicator when ifNotExists is true
90
+ if (ifNotExists) {
91
+ const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [name]);
92
+ if (checkResult.rows && checkResult.rows.length > 0) {
93
+ return {
94
+ success: true,
95
+ skipped: true,
96
+ roleName: name,
97
+ reason: "Role already exists",
98
+ };
99
+ }
100
+ }
84
101
  const clause = ifNotExists ? "IF NOT EXISTS " : "";
85
102
  await adapter.executeQuery(`CREATE ROLE ${clause}'${name}'`);
86
103
  return { success: true, roleName: name };
87
104
  }
88
105
  catch (error) {
106
+ if (error instanceof ZodError)
107
+ return { success: false, error: formatZodError(error) };
89
108
  const message = error instanceof Error ? error.message : String(error);
90
109
  if (message.includes("Operation CREATE ROLE failed")) {
110
+ const rawName = params["name"];
111
+ const roleName = rawName ?? "unknown";
91
112
  return {
92
113
  success: false,
93
- reason: `Role '${name}' already exists`,
114
+ error: `Role '${roleName}' already exists`,
94
115
  };
95
116
  }
96
- throw error;
117
+ return { success: false, error: stripErrorPrefix(message) };
97
118
  }
98
119
  },
99
120
  },
@@ -106,39 +127,43 @@ export function getRoleTools(adapter) {
106
127
  requiredScopes: ["admin"],
107
128
  annotations: { readOnlyHint: false, destructiveHint: true },
108
129
  handler: async (params, _context) => {
109
- const { name, ifExists } = RoleDropSchema.parse(params);
110
- if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name))
111
- throw new Error("Invalid role name");
112
- // Pre-check existence for skipped indicator when ifExists is true
113
- let roleAbsent = false;
114
- if (ifExists) {
115
- const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [name]);
116
- if (!checkResult.rows || checkResult.rows.length === 0) {
117
- roleAbsent = true;
118
- }
119
- }
120
130
  try {
131
+ const { name, ifExists } = RoleDropSchema.parse(params);
132
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name))
133
+ return { success: false, error: "Invalid role name" };
134
+ // Pre-check existence for skipped indicator when ifExists is true
135
+ let roleAbsent = false;
136
+ if (ifExists) {
137
+ const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [name]);
138
+ if (!checkResult.rows || checkResult.rows.length === 0) {
139
+ roleAbsent = true;
140
+ }
141
+ }
121
142
  await adapter.executeQuery(`DROP ROLE ${ifExists ? "IF EXISTS " : ""}'${name}'`);
143
+ if (roleAbsent) {
144
+ return {
145
+ success: true,
146
+ skipped: true,
147
+ roleName: name,
148
+ reason: "Role did not exist",
149
+ };
150
+ }
151
+ return { success: true, roleName: name };
122
152
  }
123
153
  catch (error) {
154
+ if (error instanceof ZodError)
155
+ return { success: false, error: formatZodError(error) };
124
156
  const message = error instanceof Error ? error.message : String(error);
125
157
  if (message.includes("Operation DROP ROLE failed")) {
158
+ const rawName = params["name"];
159
+ const roleName = rawName ?? "unknown";
126
160
  return {
127
161
  success: false,
128
- reason: `Role '${name}' does not exist`,
162
+ error: `Role '${roleName}' does not exist`,
129
163
  };
130
164
  }
131
- throw error;
132
- }
133
- if (roleAbsent) {
134
- return {
135
- success: true,
136
- skipped: true,
137
- roleName: name,
138
- reason: "Role did not exist",
139
- };
165
+ return { success: false, error: stripErrorPrefix(message) };
140
166
  }
141
- return { success: true, roleName: name };
142
167
  },
143
168
  },
144
169
  {
@@ -150,18 +175,26 @@ export function getRoleTools(adapter) {
150
175
  requiredScopes: ["read"],
151
176
  annotations: { readOnlyHint: true, idempotentHint: true },
152
177
  handler: async (params, _context) => {
153
- const { role } = RoleGrantsSchema.parse(params);
154
- // Validate role identifier before interpolation
155
- validateIdentifier(role, "column");
156
- // Check if role exists first (roles are locked accounts with empty auth string)
157
- const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
158
- if (!checkResult.rows || checkResult.rows.length === 0) {
159
- return { role, grants: [], exists: false };
178
+ try {
179
+ const { role } = RoleGrantsSchema.parse(params);
180
+ // Validate role identifier before interpolation
181
+ validateIdentifier(role, "role");
182
+ // Check if role exists first (roles are locked accounts with empty auth string)
183
+ const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
184
+ if (!checkResult.rows || checkResult.rows.length === 0) {
185
+ return { role, grants: [], exists: false };
186
+ }
187
+ // SHOW GRANTS cannot be always prepared
188
+ const result = await adapter.rawQuery(`SHOW GRANTS FOR '${role}'`);
189
+ const grants = (result.rows ?? []).map((r) => Object.values(r)[0]);
190
+ return { role, grants, exists: true };
191
+ }
192
+ catch (error) {
193
+ if (error instanceof ZodError)
194
+ return { success: false, error: formatZodError(error) };
195
+ const message = error instanceof Error ? error.message : String(error);
196
+ return { success: false, error: stripErrorPrefix(message) };
160
197
  }
161
- // SHOW GRANTS cannot be always prepared
162
- const result = await adapter.rawQuery(`SHOW GRANTS FOR '${role}'`);
163
- const grants = (result.rows ?? []).map((r) => Object.values(r)[0]);
164
- return { role, grants, exists: true };
165
198
  },
166
199
  },
167
200
  {
@@ -173,47 +206,47 @@ export function getRoleTools(adapter) {
173
206
  requiredScopes: ["admin"],
174
207
  annotations: { readOnlyHint: false },
175
208
  handler: async (params, _context) => {
176
- const { role, privileges, database, table } = RoleGrantPrivilegeSchema.parse(params);
177
- if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(role))
178
- throw new Error("Invalid role name");
179
- // Validate each privilege against allowlist
180
- for (const priv of privileges) {
181
- validateMySQLPrivilege(priv);
182
- }
183
- // Check if role exists first
184
- const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
185
- if (!checkResult.rows || checkResult.rows.length === 0) {
186
- return {
187
- success: false,
188
- role,
189
- exists: false,
190
- error: "Role does not exist",
191
- };
192
- }
193
- let targetDb = database;
194
- let targetTable = table;
195
- // Handle schema-qualified table names (e.g. "db.table")
196
- if (targetTable.includes(".") && targetTable !== "*") {
197
- const [dbPart, tablePart] = targetTable.split(".");
198
- if (dbPart && tablePart) {
199
- targetDb = dbPart;
200
- targetTable = tablePart;
201
- }
202
- }
203
- // Validate database and table identifiers when not wildcards
204
- if (targetDb !== "*")
205
- validateIdentifier(targetDb, "database");
206
- if (targetTable !== "*")
207
- validateIdentifier(targetTable, "table");
208
- const db = targetDb === "*" ? "*" : `\`${targetDb}\``;
209
- const tbl = targetTable === "*" ? "*" : `\`${targetTable}\``;
210
- let onClause = `${db}.${tbl}`;
211
- if (targetDb === "*" && targetTable !== "*") {
212
- // Cannot use * for db with specific table (MySQL syntax error)
213
- // Assume current database if table is specified but db is wildcard
214
- onClause = tbl;
215
- }
216
209
  try {
210
+ const { role, privileges, database, table } = RoleGrantPrivilegeSchema.parse(params);
211
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(role))
212
+ return { success: false, error: "Invalid role name" };
213
+ // Validate each privilege against allowlist
214
+ for (const priv of privileges) {
215
+ validateMySQLPrivilege(priv);
216
+ }
217
+ // Check if role exists first
218
+ const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
219
+ if (!checkResult.rows || checkResult.rows.length === 0) {
220
+ return {
221
+ success: false,
222
+ role,
223
+ exists: false,
224
+ error: "Role does not exist",
225
+ };
226
+ }
227
+ let targetDb = database;
228
+ let targetTable = table;
229
+ // Handle schema-qualified table names (e.g. "db.table")
230
+ if (targetTable.includes(".") && targetTable !== "*") {
231
+ const [dbPart, tablePart] = targetTable.split(".");
232
+ if (dbPart && tablePart) {
233
+ targetDb = dbPart;
234
+ targetTable = tablePart;
235
+ }
236
+ }
237
+ // Validate database and table identifiers when not wildcards
238
+ if (targetDb !== "*")
239
+ validateIdentifier(targetDb, "database");
240
+ if (targetTable !== "*")
241
+ validateIdentifier(targetTable, "table");
242
+ const db = targetDb === "*" ? "*" : `\`${targetDb}\``;
243
+ const tbl = targetTable === "*" ? "*" : `\`${targetTable}\``;
244
+ let onClause = `${db}.${tbl}`;
245
+ if (targetDb === "*" && targetTable !== "*") {
246
+ // Cannot use * for db with specific table (MySQL syntax error)
247
+ // Assume current database if table is specified but db is wildcard
248
+ onClause = tbl;
249
+ }
217
250
  await adapter.rawQuery(`GRANT ${privileges.join(", ")} ON ${onClause} TO '${role}'`);
218
251
  return {
219
252
  success: true,
@@ -224,19 +257,16 @@ export function getRoleTools(adapter) {
224
257
  };
225
258
  }
226
259
  catch (error) {
227
- const rawMessage = error instanceof Error ? error.message : String(error);
228
- if (rawMessage.includes("doesn't exist")) {
229
- // Strip adapter prefix (e.g. "Raw query failed: Query failed: ") for clean output
230
- const cleanMessage = rawMessage
231
- .replace(/^Raw query failed:\s*/i, "")
232
- .replace(/^Query failed:\s*/i, "");
233
- return {
234
- success: false,
235
- role,
236
- error: cleanMessage,
237
- };
260
+ if (error instanceof ZodError)
261
+ return { success: false, error: formatZodError(error) };
262
+ const message = error instanceof Error ? error.message : String(error);
263
+ const cleanMsg = stripErrorPrefix(message);
264
+ // Include role context for table/db-level errors when role was parsed
265
+ const roleName = params["role"];
266
+ if (roleName) {
267
+ return { success: false, role: roleName, error: cleanMsg };
238
268
  }
239
- throw error;
269
+ return { success: false, error: cleanMsg };
240
270
  }
241
271
  },
242
272
  },
@@ -249,43 +279,45 @@ export function getRoleTools(adapter) {
249
279
  requiredScopes: ["admin"],
250
280
  annotations: { readOnlyHint: false },
251
281
  handler: async (params, _context) => {
252
- const { role, user, host, withAdminOption } = RoleAssignSchema.parse(params);
253
- // Validate all interpolated identifiers
254
- validateIdentifier(role, "column");
255
- validateMySQLUserHost(user, "user");
256
- validateMySQLUserHost(host, "host");
257
- // Check if role exists first
258
- const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
259
- if (!checkResult.rows || checkResult.rows.length === 0) {
260
- return {
261
- success: false,
262
- role,
263
- user,
264
- host,
265
- exists: false,
266
- error: "Role does not exist",
267
- };
268
- }
269
- let sql = `GRANT '${role}' TO '${user}'@'${host}'`;
270
- if (withAdminOption)
271
- sql += " WITH ADMIN OPTION";
272
282
  try {
283
+ const { role, user, host, withAdminOption } = RoleAssignSchema.parse(params);
284
+ // Validate all interpolated identifiers
285
+ validateIdentifier(role, "role");
286
+ validateMySQLUserHost(user, "user");
287
+ validateMySQLUserHost(host, "host");
288
+ // Check if role exists first
289
+ const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
290
+ if (!checkResult.rows || checkResult.rows.length === 0) {
291
+ return {
292
+ success: false,
293
+ role,
294
+ user,
295
+ host,
296
+ exists: false,
297
+ error: "Role does not exist",
298
+ };
299
+ }
300
+ let sql = `GRANT '${role}' TO '${user}'@'${host}'`;
301
+ if (withAdminOption)
302
+ sql += " WITH ADMIN OPTION";
273
303
  await adapter.rawQuery(sql);
274
304
  await adapter.rawQuery(`SET DEFAULT ROLE '${role}' TO '${user}'@'${host}'`);
275
305
  return { success: true, role, user, host };
276
306
  }
277
307
  catch (error) {
308
+ if (error instanceof ZodError)
309
+ return { success: false, error: formatZodError(error) };
278
310
  const message = error instanceof Error ? error.message : String(error);
279
311
  if (message.includes("Unknown authorization ID")) {
280
312
  return {
281
313
  success: false,
282
- role,
283
- user,
284
- host,
314
+ role: params["role"],
315
+ user: params["user"],
316
+ host: params["host"] ?? "%",
285
317
  error: "User does not exist",
286
318
  };
287
319
  }
288
- throw error;
320
+ return { success: false, error: stripErrorPrefix(message) };
289
321
  }
290
322
  },
291
323
  },
@@ -298,62 +330,64 @@ export function getRoleTools(adapter) {
298
330
  requiredScopes: ["admin"],
299
331
  annotations: { readOnlyHint: false },
300
332
  handler: async (params, _context) => {
301
- const { role, user, host } = RoleRevokeSchema.parse(params);
302
- // Check if role exists first
303
- const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
304
- if (!checkResult.rows || checkResult.rows.length === 0) {
305
- return {
306
- success: false,
307
- role,
308
- user,
309
- host,
310
- exists: false,
311
- error: "Role does not exist",
312
- };
313
- }
314
- // P154: Check if user exists before checking assignment
315
- const userCheck = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND Host = ?`, [user, host]);
316
- if (!userCheck.rows || userCheck.rows.length === 0) {
317
- return {
318
- success: false,
319
- role,
320
- user,
321
- host,
322
- error: "User does not exist",
323
- };
324
- }
325
- // Check if the role is actually assigned to this user
326
- const assignCheck = await adapter.executeQuery(`SELECT 1 FROM mysql.role_edges WHERE FROM_USER = ? AND FROM_HOST = '%' AND TO_USER = ? AND TO_HOST = ?`, [role, user, host]);
327
- if (!assignCheck.rows || assignCheck.rows.length === 0) {
328
- return {
329
- success: false,
330
- role,
331
- user,
332
- host,
333
- reason: `Role '${role}' is not assigned to user '${user}'@'${host}'`,
334
- };
335
- }
336
333
  try {
334
+ const { role, user, host } = RoleRevokeSchema.parse(params);
335
+ // Check if role exists first
336
+ const checkResult = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND account_locked = 'Y' AND password_expired = 'Y' AND authentication_string = ''`, [role]);
337
+ if (!checkResult.rows || checkResult.rows.length === 0) {
338
+ return {
339
+ success: false,
340
+ role,
341
+ user,
342
+ host,
343
+ exists: false,
344
+ error: "Role does not exist",
345
+ };
346
+ }
347
+ // P154: Check if user exists before checking assignment
348
+ const userCheck = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND Host = ?`, [user, host]);
349
+ if (!userCheck.rows || userCheck.rows.length === 0) {
350
+ return {
351
+ success: false,
352
+ role,
353
+ user,
354
+ host,
355
+ error: "User does not exist",
356
+ };
357
+ }
358
+ // Check if the role is actually assigned to this user
359
+ const assignCheck = await adapter.executeQuery(`SELECT 1 FROM mysql.role_edges WHERE FROM_USER = ? AND FROM_HOST = '%' AND TO_USER = ? AND TO_HOST = ?`, [role, user, host]);
360
+ if (!assignCheck.rows || assignCheck.rows.length === 0) {
361
+ return {
362
+ success: false,
363
+ role,
364
+ user,
365
+ host,
366
+ error: `Role '${role}' is not assigned to user '${user}'@'${host}'`,
367
+ };
368
+ }
337
369
  // Validate before interpolation (role/user/host already validated by earlier checks
338
370
  // but validate user/host explicitly for this rawQuery)
339
- validateIdentifier(role, "column");
371
+ validateIdentifier(role, "role");
340
372
  validateMySQLUserHost(user, "user");
341
373
  validateMySQLUserHost(host, "host");
342
374
  await adapter.rawQuery(`REVOKE '${role}' FROM '${user}'@'${host}'`);
343
375
  return { success: true, role, user, host };
344
376
  }
345
377
  catch (error) {
378
+ if (error instanceof ZodError)
379
+ return { success: false, error: formatZodError(error) };
346
380
  const message = error instanceof Error ? error.message : String(error);
347
381
  if (message.includes("Unknown authorization ID")) {
348
382
  return {
349
383
  success: false,
350
- role,
351
- user,
352
- host,
384
+ role: params["role"],
385
+ user: params["user"],
386
+ host: params["host"] ?? "%",
353
387
  error: "User does not exist",
354
388
  };
355
389
  }
356
- throw error;
390
+ return { success: false, error: stripErrorPrefix(message) };
357
391
  }
358
392
  },
359
393
  },
@@ -366,15 +400,23 @@ export function getRoleTools(adapter) {
366
400
  requiredScopes: ["read"],
367
401
  annotations: { readOnlyHint: true, idempotentHint: true },
368
402
  handler: async (params, _context) => {
369
- const { user, host } = UserRolesSchema.parse(params);
370
- // P154: Check if user exists
371
- const userCheck = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND Host = ?`, [user, host]);
372
- if (!userCheck.rows || userCheck.rows.length === 0) {
373
- return { user, host, exists: false };
403
+ try {
404
+ const { user, host } = UserRolesSchema.parse(params);
405
+ // P154: Check if user exists
406
+ const userCheck = await adapter.executeQuery(`SELECT 1 FROM mysql.user WHERE User = ? AND Host = ?`, [user, host]);
407
+ if (!userCheck.rows || userCheck.rows.length === 0) {
408
+ return { user, host, exists: false };
409
+ }
410
+ const result = await adapter.executeQuery(`SELECT FROM_USER as roleName, FROM_HOST as roleHost, WITH_ADMIN_OPTION as admin
411
+ FROM mysql.role_edges WHERE TO_USER=? AND TO_HOST=?`, [user, host]);
412
+ return { user, host, roles: result.rows ?? [] };
413
+ }
414
+ catch (error) {
415
+ if (error instanceof ZodError)
416
+ return { success: false, error: formatZodError(error) };
417
+ const message = error instanceof Error ? error.message : String(error);
418
+ return { success: false, error: stripErrorPrefix(message) };
374
419
  }
375
- const result = await adapter.executeQuery(`SELECT FROM_USER as roleName, FROM_HOST as roleHost, WITH_ADMIN_OPTION as admin
376
- FROM mysql.role_edges WHERE TO_USER=? AND TO_HOST=?`, [user, host]);
377
- return { user, host, roles: result.rows ?? [] };
378
420
  },
379
421
  },
380
422
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/tools/roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/tools/roles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/tools/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkLvD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,EAAE,CAYvE"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/tools/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4MvD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,EAAE,CAYvE"}