sqlew 5.0.8 → 5.2.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 (499) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +19 -10
  3. package/dist/adapters/auth/auth-factory.d.ts +2 -81
  4. package/dist/adapters/auth/auth-factory.d.ts.map +1 -1
  5. package/dist/adapters/auth/auth-factory.js +2 -82
  6. package/dist/adapters/auth/auth-factory.js.map +1 -1
  7. package/dist/adapters/auth/base-auth-provider.d.ts +18 -303
  8. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -1
  9. package/dist/adapters/auth/base-auth-provider.js +2 -104
  10. package/dist/adapters/auth/base-auth-provider.js.map +1 -1
  11. package/dist/adapters/auth/direct-auth-provider.d.ts +4 -348
  12. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -1
  13. package/dist/adapters/auth/direct-auth-provider.js +6 -356
  14. package/dist/adapters/auth/direct-auth-provider.js.map +1 -1
  15. package/dist/adapters/base-adapter.d.ts +31 -598
  16. package/dist/adapters/base-adapter.d.ts.map +1 -1
  17. package/dist/adapters/base-adapter.js +10 -458
  18. package/dist/adapters/base-adapter.js.map +1 -1
  19. package/dist/adapters/index.d.ts +1 -11
  20. package/dist/adapters/index.d.ts.map +1 -1
  21. package/dist/adapters/index.js +1 -11
  22. package/dist/adapters/index.js.map +1 -1
  23. package/dist/adapters/mysql-adapter.d.ts +15 -541
  24. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  25. package/dist/adapters/mysql-adapter.js +24 -561
  26. package/dist/adapters/mysql-adapter.js.map +1 -1
  27. package/dist/adapters/postgresql-adapter.d.ts +15 -203
  28. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  29. package/dist/adapters/postgresql-adapter.js +24 -223
  30. package/dist/adapters/postgresql-adapter.js.map +1 -1
  31. package/dist/adapters/sqlite-adapter.d.ts +4 -28
  32. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  33. package/dist/adapters/sqlite-adapter.js +4 -32
  34. package/dist/adapters/sqlite-adapter.js.map +1 -1
  35. package/dist/adapters/types.d.ts +1 -4
  36. package/dist/adapters/types.d.ts.map +1 -1
  37. package/dist/backend/backend-factory.d.ts +3 -3
  38. package/dist/backend/backend-factory.js +3 -3
  39. package/dist/backend/local-backend.d.ts.map +1 -1
  40. package/dist/backend/local-backend.js +0 -5
  41. package/dist/backend/local-backend.js.map +1 -1
  42. package/dist/cli/db-export.d.ts.map +1 -1
  43. package/dist/cli/db-export.js +54 -32
  44. package/dist/cli/db-export.js.map +1 -1
  45. package/dist/cli/db-import.d.ts.map +1 -1
  46. package/dist/cli/db-import.js +32 -31
  47. package/dist/cli/db-import.js.map +1 -1
  48. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
  49. package/dist/cli/hooks/on-exit-plan.js +42 -1
  50. package/dist/cli/hooks/on-exit-plan.js.map +1 -1
  51. package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
  52. package/dist/cli/hooks/on-prompt.js +5 -0
  53. package/dist/cli/hooks/on-prompt.js.map +1 -1
  54. package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
  55. package/dist/cli/hooks/plan-processor.js +16 -2
  56. package/dist/cli/hooks/plan-processor.js.map +1 -1
  57. package/dist/cli/hooks/stdin-parser.d.ts +41 -0
  58. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  59. package/dist/cli/hooks/stdin-parser.js +140 -4
  60. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  61. package/dist/cli/hooks/track-plan.d.ts +13 -0
  62. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  63. package/dist/cli/hooks/track-plan.js +58 -3
  64. package/dist/cli/hooks/track-plan.js.map +1 -1
  65. package/dist/cli.d.ts.map +1 -1
  66. package/dist/cli.js +1 -12
  67. package/dist/cli.js.map +1 -1
  68. package/dist/config/cloud-config-loader.d.ts +8 -8
  69. package/dist/config/cloud-config-loader.d.ts.map +1 -1
  70. package/dist/config/cloud-config-loader.js +12 -12
  71. package/dist/config/cloud-config-loader.js.map +1 -1
  72. package/dist/config/global-config.d.ts +24 -46
  73. package/dist/config/global-config.d.ts.map +1 -1
  74. package/dist/config/global-config.js +174 -56
  75. package/dist/config/global-config.js.map +1 -1
  76. package/dist/config/loader.d.ts +1 -18
  77. package/dist/config/loader.d.ts.map +1 -1
  78. package/dist/config/loader.js +1 -89
  79. package/dist/config/loader.js.map +1 -1
  80. package/dist/config/types.d.ts +2 -64
  81. package/dist/config/types.d.ts.map +1 -1
  82. package/dist/config/types.js +0 -18
  83. package/dist/config/types.js.map +1 -1
  84. package/dist/database/index.d.ts +1 -2
  85. package/dist/database/index.d.ts.map +1 -1
  86. package/dist/database/index.js +1 -3
  87. package/dist/database/index.js.map +1 -1
  88. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -1
  89. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +2 -1
  90. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -1
  91. package/dist/database/operations/queries.d.ts +0 -4
  92. package/dist/database/operations/queries.d.ts.map +1 -1
  93. package/dist/database/operations/queries.js +0 -8
  94. package/dist/database/operations/queries.js.map +1 -1
  95. package/dist/index.d.ts +1 -1
  96. package/dist/index.js +2 -2
  97. package/dist/index.js.map +1 -1
  98. package/dist/init-rules.d.ts.map +1 -1
  99. package/dist/init-rules.js +0 -1
  100. package/dist/init-rules.js.map +1 -1
  101. package/dist/knexfile.d.ts.map +1 -1
  102. package/dist/knexfile.js +2 -1
  103. package/dist/knexfile.js.map +1 -1
  104. package/dist/migration/local-to-global.d.ts +19 -0
  105. package/dist/migration/local-to-global.d.ts.map +1 -0
  106. package/dist/migration/local-to-global.js +133 -0
  107. package/dist/migration/local-to-global.js.map +1 -0
  108. package/dist/saas-connector/client/types.d.ts +1 -1
  109. package/dist/saas-connector/client/types.d.ts.map +1 -1
  110. package/dist/schema.js +1 -1
  111. package/dist/server/setup.d.ts.map +1 -1
  112. package/dist/server/setup.js +15 -7
  113. package/dist/server/setup.js.map +1 -1
  114. package/dist/tests/backend/backend-factory.test.js +2 -2
  115. package/dist/tests/backend/backend-factory.test.js.map +1 -1
  116. package/dist/tests/docker/native/constraint-operations.test.d.ts +2 -17
  117. package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -1
  118. package/dist/tests/docker/native/constraint-operations.test.js +3 -82
  119. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  120. package/dist/tests/docker/native/db-init.d.ts +3 -34
  121. package/dist/tests/docker/native/db-init.d.ts.map +1 -1
  122. package/dist/tests/docker/native/db-init.js +15 -77
  123. package/dist/tests/docker/native/db-init.js.map +1 -1
  124. package/dist/tests/docker/native/decision-operations.test.d.ts +2 -10
  125. package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -1
  126. package/dist/tests/docker/native/decision-operations.test.js +2 -84
  127. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  128. package/dist/tests/docker/native/help-system.test.d.ts +2 -5
  129. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
  130. package/dist/tests/docker/native/help-system.test.js +2 -47
  131. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  132. package/dist/tests/docker/native/suggest-tool.test.d.ts +3 -11
  133. package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -1
  134. package/dist/tests/docker/native/suggest-tool.test.js +3 -60
  135. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  136. package/dist/tests/docker/native/test-harness.d.ts +2 -23
  137. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  138. package/dist/tests/docker/native/test-harness.js +5 -59
  139. package/dist/tests/docker/native/test-harness.js.map +1 -1
  140. package/dist/tests/feature/decision/analytics.test.js +2 -1
  141. package/dist/tests/feature/decision/analytics.test.js.map +1 -1
  142. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +2 -7
  143. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  144. package/dist/tests/feature/decision/batch-validation.test.js +2 -1
  145. package/dist/tests/feature/decision/batch-validation.test.js.map +1 -1
  146. package/dist/tests/integration/auto-trigger-suggestions.test.js +4 -37
  147. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  148. package/dist/tests/integration/hybrid-similarity-detection.test.js +2 -1
  149. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  150. package/dist/tests/integration/json-export-import.test.d.ts.map +1 -0
  151. package/dist/tests/integration/json-export-import.test.js.map +1 -0
  152. package/dist/tests/unit/case-insensitive-validator.test.d.ts +0 -7
  153. package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -1
  154. package/dist/tests/unit/case-insensitive-validator.test.js +0 -22
  155. package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -1
  156. package/dist/tests/unit/config/cloud-config-loader.test.js +4 -2
  157. package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -1
  158. package/dist/tests/unit/config/global-db-migration.test.d.ts +12 -0
  159. package/dist/tests/unit/config/global-db-migration.test.d.ts.map +1 -0
  160. package/dist/tests/unit/config/global-db-migration.test.js +117 -0
  161. package/dist/tests/unit/config/global-db-migration.test.js.map +1 -0
  162. package/dist/tests/unit/constraint-scorer.test.d.ts +2 -7
  163. package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -1
  164. package/dist/tests/unit/constraint-scorer.test.js +2 -28
  165. package/dist/tests/unit/constraint-scorer.test.js.map +1 -1
  166. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts +9 -0
  167. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts.map +1 -0
  168. package/dist/tests/unit/hooks/grok-hook-normalization.test.js +98 -0
  169. package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -0
  170. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts +7 -0
  171. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts.map +1 -0
  172. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js +55 -0
  173. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js.map +1 -0
  174. package/dist/tests/unit/universal-knex.test.js +9 -0
  175. package/dist/tests/unit/universal-knex.test.js.map +1 -1
  176. package/dist/tests/unit/validation/parameter-validation.test.js +0 -24
  177. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  178. package/dist/tests/utils/db-config.d.ts.map +1 -1
  179. package/dist/tests/utils/db-config.js +0 -9
  180. package/dist/tests/utils/db-config.js.map +1 -1
  181. package/dist/tests/utils/db-import.d.ts.map +1 -1
  182. package/dist/tests/utils/db-import.js +0 -3
  183. package/dist/tests/utils/db-import.js.map +1 -1
  184. package/dist/tests/utils/db-schema.d.ts.map +1 -1
  185. package/dist/tests/utils/db-schema.js +48 -51
  186. package/dist/tests/utils/db-schema.js.map +1 -1
  187. package/dist/tests/utils/db-seeding.d.ts.map +1 -1
  188. package/dist/tests/utils/db-seeding.js +0 -3
  189. package/dist/tests/utils/db-seeding.js.map +1 -1
  190. package/dist/tests/utils/index.d.ts +0 -1
  191. package/dist/tests/utils/index.d.ts.map +1 -1
  192. package/dist/tests/utils/index.js +0 -2
  193. package/dist/tests/utils/index.js.map +1 -1
  194. package/dist/tests/utils/test-helpers.d.ts +6 -76
  195. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  196. package/dist/tests/utils/test-helpers.js +56 -162
  197. package/dist/tests/utils/test-helpers.js.map +1 -1
  198. package/dist/tests/utils/test-lifecycle.d.ts +2 -28
  199. package/dist/tests/utils/test-lifecycle.d.ts.map +1 -1
  200. package/dist/tests/utils/test-lifecycle.js +2 -31
  201. package/dist/tests/utils/test-lifecycle.js.map +1 -1
  202. package/dist/tools/context/index.d.ts +0 -1
  203. package/dist/tools/context/index.d.ts.map +1 -1
  204. package/dist/tools/context/index.js +0 -2
  205. package/dist/tools/context/index.js.map +1 -1
  206. package/dist/tools/context/types.d.ts +1 -1
  207. package/dist/tools/context/types.d.ts.map +1 -1
  208. package/dist/types/actions.d.ts +6 -29
  209. package/dist/types/actions.d.ts.map +1 -1
  210. package/dist/types/actions.js +1 -2
  211. package/dist/types/actions.js.map +1 -1
  212. package/dist/types/constraint/params.d.ts +24 -1
  213. package/dist/types/constraint/params.d.ts.map +1 -1
  214. package/dist/types/constraint/params.js +3 -0
  215. package/dist/types/constraint/params.js.map +1 -1
  216. package/dist/types/constraint/responses.d.ts +18 -1
  217. package/dist/types/constraint/responses.d.ts.map +1 -1
  218. package/dist/types/constraint/responses.js +3 -0
  219. package/dist/types/constraint/responses.js.map +1 -1
  220. package/dist/types/decision/batch.d.ts +2 -5
  221. package/dist/types/decision/batch.d.ts.map +1 -1
  222. package/dist/types/decision/batch.js +3 -3
  223. package/dist/types/decision/batch.js.map +1 -1
  224. package/dist/types/decision/params.d.ts +7 -4
  225. package/dist/types/decision/params.d.ts.map +1 -1
  226. package/dist/types/decision/responses.d.ts +49 -35
  227. package/dist/types/decision/responses.d.ts.map +1 -1
  228. package/dist/types/decision/templates.d.ts +2 -18
  229. package/dist/types/decision/templates.d.ts.map +1 -1
  230. package/dist/types/decision/templates.js +3 -3
  231. package/dist/types/decision/templates.js.map +1 -1
  232. package/dist/types/enums.d.ts +11 -13
  233. package/dist/types/enums.d.ts.map +1 -1
  234. package/dist/types/enums.js +5 -13
  235. package/dist/types/enums.js.map +1 -1
  236. package/dist/types/import-export.d.ts +7 -30
  237. package/dist/types/import-export.d.ts.map +1 -1
  238. package/dist/types/import-export.js +1 -2
  239. package/dist/types/import-export.js.map +1 -1
  240. package/dist/types/index.d.ts +18 -22
  241. package/dist/types/index.d.ts.map +1 -1
  242. package/dist/types/index.js +4 -32
  243. package/dist/types/index.js.map +1 -1
  244. package/dist/types/master-entities.d.ts +1 -10
  245. package/dist/types/master-entities.d.ts.map +1 -1
  246. package/dist/types/master-entities.js +1 -2
  247. package/dist/types/master-entities.js.map +1 -1
  248. package/dist/types/transaction-entities.d.ts +2 -21
  249. package/dist/types/transaction-entities.d.ts.map +1 -1
  250. package/dist/types/transaction-entities.js +1 -1
  251. package/dist/types/validation.d.ts +1 -16
  252. package/dist/types/validation.d.ts.map +1 -1
  253. package/dist/types/validation.js +1 -2
  254. package/dist/types/validation.js.map +1 -1
  255. package/dist/types/view-entities.d.ts +3 -12
  256. package/dist/types/view-entities.d.ts.map +1 -1
  257. package/dist/types/view-entities.js +1 -1
  258. package/dist/types.d.ts +4 -718
  259. package/dist/types.d.ts.map +1 -1
  260. package/dist/types.js +5 -39
  261. package/dist/types.js.map +1 -1
  262. package/dist/utils/parameter-validator.d.ts +2 -2
  263. package/dist/utils/parameter-validator.d.ts.map +1 -1
  264. package/dist/utils/parameter-validator.js.map +1 -1
  265. package/dist/utils/path-normalize.d.ts +23 -0
  266. package/dist/utils/path-normalize.d.ts.map +1 -0
  267. package/dist/utils/path-normalize.js +38 -0
  268. package/dist/utils/path-normalize.js.map +1 -0
  269. package/dist/utils/project-root.d.ts +6 -3
  270. package/dist/utils/project-root.d.ts.map +1 -1
  271. package/dist/utils/project-root.js +11 -3
  272. package/dist/utils/project-root.js.map +1 -1
  273. package/dist/watcher/base-watcher.d.ts +0 -4
  274. package/dist/watcher/base-watcher.d.ts.map +1 -1
  275. package/dist/watcher/base-watcher.js +11 -22
  276. package/dist/watcher/base-watcher.js.map +1 -1
  277. package/docs/CLI_USAGE.md +27 -107
  278. package/docs/CONFIGURATION.md +10 -5
  279. package/docs/DATABASE_AUTH.md +3 -3
  280. package/docs/HOOKS_GUIDE.md +40 -6
  281. package/docs/MIGRATION_TO_SAAS.md +2 -2
  282. package/docs/SHARED_DATABASE.md +108 -0
  283. package/package.json +4 -3
  284. package/dist/adapters/auth/auth-types.d.ts +0 -30
  285. package/dist/adapters/auth/auth-types.d.ts.map +0 -1
  286. package/dist/adapters/auth/auth-types.js +0 -30
  287. package/dist/adapters/auth/auth-types.js.map +0 -1
  288. package/dist/cli/db-dump.d.ts +0 -36
  289. package/dist/cli/db-dump.d.ts.map +0 -1
  290. package/dist/cli/db-dump.js +0 -384
  291. package/dist/cli/db-dump.js.map +0 -1
  292. package/dist/database/config/config-ops.d.ts +0 -42
  293. package/dist/database/config/config-ops.d.ts.map +0 -1
  294. package/dist/database/config/config-ops.js +0 -102
  295. package/dist/database/config/config-ops.js.map +0 -1
  296. package/dist/formatters/adr-formatter.d.ts +0 -22
  297. package/dist/formatters/adr-formatter.d.ts.map +0 -1
  298. package/dist/formatters/adr-formatter.js +0 -127
  299. package/dist/formatters/adr-formatter.js.map +0 -1
  300. package/dist/formatters/confluence-formatter.d.ts +0 -26
  301. package/dist/formatters/confluence-formatter.d.ts.map +0 -1
  302. package/dist/formatters/confluence-formatter.js +0 -129
  303. package/dist/formatters/confluence-formatter.js.map +0 -1
  304. package/dist/formatters/index.d.ts +0 -34
  305. package/dist/formatters/index.d.ts.map +0 -1
  306. package/dist/formatters/index.js +0 -57
  307. package/dist/formatters/index.js.map +0 -1
  308. package/dist/formatters/markdown-formatter.d.ts +0 -16
  309. package/dist/formatters/markdown-formatter.d.ts.map +0 -1
  310. package/dist/formatters/markdown-formatter.js +0 -110
  311. package/dist/formatters/markdown-formatter.js.map +0 -1
  312. package/dist/formatters/notion-formatter.d.ts +0 -29
  313. package/dist/formatters/notion-formatter.d.ts.map +0 -1
  314. package/dist/formatters/notion-formatter.js +0 -177
  315. package/dist/formatters/notion-formatter.js.map +0 -1
  316. package/dist/formatters/types.d.ts +0 -31
  317. package/dist/formatters/types.d.ts.map +0 -1
  318. package/dist/formatters/types.js +0 -6
  319. package/dist/formatters/types.js.map +0 -1
  320. package/dist/tests/database/sql-dump/converters.test.d.ts +0 -7
  321. package/dist/tests/database/sql-dump/converters.test.d.ts.map +0 -1
  322. package/dist/tests/database/sql-dump/converters.test.js +0 -314
  323. package/dist/tests/database/sql-dump/converters.test.js.map +0 -1
  324. package/dist/tests/database/sql-dump/default-conversions.test.d.ts +0 -8
  325. package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +0 -1
  326. package/dist/tests/database/sql-dump/default-conversions.test.js +0 -141
  327. package/dist/tests/database/sql-dump/default-conversions.test.js.map +0 -1
  328. package/dist/tests/database/sql-dump/table-ordering.test.d.ts +0 -27
  329. package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +0 -1
  330. package/dist/tests/database/sql-dump/table-ordering.test.js +0 -284
  331. package/dist/tests/database/sql-dump/table-ordering.test.js.map +0 -1
  332. package/dist/tests/database/sql-dump/type-conversion.test.d.ts +0 -8
  333. package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +0 -1
  334. package/dist/tests/database/sql-dump/type-conversion.test.js +0 -361
  335. package/dist/tests/database/sql-dump/type-conversion.test.js.map +0 -1
  336. package/dist/tests/docker/cross-database.test.d.ts +0 -21
  337. package/dist/tests/docker/cross-database.test.d.ts.map +0 -1
  338. package/dist/tests/docker/cross-database.test.js +0 -308
  339. package/dist/tests/docker/cross-database.test.js.map +0 -1
  340. package/dist/tests/docker/dump-import.test.d.ts +0 -15
  341. package/dist/tests/docker/dump-import.test.d.ts.map +0 -1
  342. package/dist/tests/docker/dump-import.test.js +0 -424
  343. package/dist/tests/docker/dump-import.test.js.map +0 -1
  344. package/dist/tests/docker/fk-constraints.test.d.ts +0 -13
  345. package/dist/tests/docker/fk-constraints.test.d.ts.map +0 -1
  346. package/dist/tests/docker/fk-constraints.test.js +0 -381
  347. package/dist/tests/docker/fk-constraints.test.js.map +0 -1
  348. package/dist/tests/docker/indexes.test.d.ts +0 -12
  349. package/dist/tests/docker/indexes.test.d.ts.map +0 -1
  350. package/dist/tests/docker/indexes.test.js +0 -250
  351. package/dist/tests/docker/indexes.test.js.map +0 -1
  352. package/dist/tests/docker/integration.test.d.ts +0 -16
  353. package/dist/tests/docker/integration.test.d.ts.map +0 -1
  354. package/dist/tests/docker/integration.test.js +0 -323
  355. package/dist/tests/docker/integration.test.js.map +0 -1
  356. package/dist/tests/docker/multi-project-migration.test.d.ts +0 -17
  357. package/dist/tests/docker/multi-project-migration.test.d.ts.map +0 -1
  358. package/dist/tests/docker/multi-project-migration.test.js +0 -394
  359. package/dist/tests/docker/multi-project-migration.test.js.map +0 -1
  360. package/dist/tests/docker/schema-migration.test.d.ts +0 -8
  361. package/dist/tests/docker/schema-migration.test.d.ts.map +0 -1
  362. package/dist/tests/docker/schema-migration.test.js +0 -98
  363. package/dist/tests/docker/schema-migration.test.js.map +0 -1
  364. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +0 -5
  365. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +0 -1
  366. package/dist/tests/integration/e2e-workflow1-debug.test.js +0 -85
  367. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +0 -1
  368. package/dist/tests/integration/suggest-simple.test.d.ts +0 -5
  369. package/dist/tests/integration/suggest-simple.test.d.ts.map +0 -1
  370. package/dist/tests/integration/suggest-simple.test.js +0 -90
  371. package/dist/tests/integration/suggest-simple.test.js.map +0 -1
  372. package/dist/tests/migrations/test-all-versions-real.d.ts +0 -8
  373. package/dist/tests/migrations/test-all-versions-real.d.ts.map +0 -1
  374. package/dist/tests/migrations/test-all-versions-real.js +0 -236
  375. package/dist/tests/migrations/test-all-versions-real.js.map +0 -1
  376. package/dist/tests/migrations/test-all-versions.d.ts +0 -14
  377. package/dist/tests/migrations/test-all-versions.d.ts.map +0 -1
  378. package/dist/tests/migrations/test-all-versions.js +0 -519
  379. package/dist/tests/migrations/test-all-versions.js.map +0 -1
  380. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +0 -7
  381. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +0 -1
  382. package/dist/tests/migrations/v4/v4-fresh-install.test.js +0 -168
  383. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +0 -1
  384. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +0 -13
  385. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +0 -1
  386. package/dist/tests/migrations/v4/v4-migrate-data.test.js +0 -264
  387. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +0 -1
  388. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +0 -2
  389. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +0 -1
  390. package/dist/tests/unit/utils/case-insensitive-validator.test.js +0 -97
  391. package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +0 -1
  392. package/dist/tests/utils/json-export-import.test.d.ts.map +0 -1
  393. package/dist/tests/utils/json-export-import.test.js.map +0 -1
  394. package/dist/tests/utils/task-helpers.d.ts +0 -67
  395. package/dist/tests/utils/task-helpers.d.ts.map +0 -1
  396. package/dist/tests/utils/task-helpers.js +0 -134
  397. package/dist/tests/utils/task-helpers.js.map +0 -1
  398. package/dist/tools/context/actions/export.d.ts +0 -35
  399. package/dist/tools/context/actions/export.d.ts.map +0 -1
  400. package/dist/tools/context/actions/export.js +0 -93
  401. package/dist/tools/context/actions/export.js.map +0 -1
  402. package/dist/types/file/params.d.ts +0 -40
  403. package/dist/types/file/params.d.ts.map +0 -1
  404. package/dist/types/file/params.js +0 -6
  405. package/dist/types/file/params.js.map +0 -1
  406. package/dist/types/file/responses.d.ts +0 -2
  407. package/dist/types/file/responses.d.ts.map +0 -1
  408. package/dist/types/file/responses.js +0 -2
  409. package/dist/types/file/responses.js.map +0 -1
  410. package/dist/types/task/params.d.ts +0 -173
  411. package/dist/types/task/params.d.ts.map +0 -1
  412. package/dist/types/task/params.js +0 -8
  413. package/dist/types/task/params.js.map +0 -1
  414. package/dist/types/task/responses.d.ts +0 -334
  415. package/dist/types/task/responses.d.ts.map +0 -1
  416. package/dist/types/task/responses.js +0 -8
  417. package/dist/types/task/responses.js.map +0 -1
  418. package/dist/utils/sql-dump/core/dependency-sort.d.ts +0 -16
  419. package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +0 -1
  420. package/dist/utils/sql-dump/core/dependency-sort.js +0 -105
  421. package/dist/utils/sql-dump/core/dependency-sort.js.map +0 -1
  422. package/dist/utils/sql-dump/core/generate-dump.d.ts +0 -13
  423. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +0 -1
  424. package/dist/utils/sql-dump/core/generate-dump.js +0 -201
  425. package/dist/utils/sql-dump/core/generate-dump.js.map +0 -1
  426. package/dist/utils/sql-dump/core/index-export.d.ts +0 -10
  427. package/dist/utils/sql-dump/core/index-export.d.ts.map +0 -1
  428. package/dist/utils/sql-dump/core/index-export.js +0 -173
  429. package/dist/utils/sql-dump/core/index-export.js.map +0 -1
  430. package/dist/utils/sql-dump/core/sequence-reset.d.ts +0 -6
  431. package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +0 -1
  432. package/dist/utils/sql-dump/core/sequence-reset.js +0 -28
  433. package/dist/utils/sql-dump/core/sequence-reset.js.map +0 -1
  434. package/dist/utils/sql-dump/core/table-export.d.ts +0 -2
  435. package/dist/utils/sql-dump/core/table-export.d.ts.map +0 -1
  436. package/dist/utils/sql-dump/core/table-export.js +0 -4
  437. package/dist/utils/sql-dump/core/table-export.js.map +0 -1
  438. package/dist/utils/sql-dump/core/view-export.d.ts +0 -2
  439. package/dist/utils/sql-dump/core/view-export.d.ts.map +0 -1
  440. package/dist/utils/sql-dump/core/view-export.js +0 -4
  441. package/dist/utils/sql-dump/core/view-export.js.map +0 -1
  442. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +0 -14
  443. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +0 -1
  444. package/dist/utils/sql-dump/formatters/bulk-insert.js +0 -177
  445. package/dist/utils/sql-dump/formatters/bulk-insert.js.map +0 -1
  446. package/dist/utils/sql-dump/formatters/identifiers.d.ts +0 -6
  447. package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +0 -1
  448. package/dist/utils/sql-dump/formatters/identifiers.js +0 -16
  449. package/dist/utils/sql-dump/formatters/identifiers.js.map +0 -1
  450. package/dist/utils/sql-dump/formatters/value-formatter.d.ts +0 -14
  451. package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +0 -1
  452. package/dist/utils/sql-dump/formatters/value-formatter.js +0 -281
  453. package/dist/utils/sql-dump/formatters/value-formatter.js.map +0 -1
  454. package/dist/utils/sql-dump/generators/controls.d.ts +0 -10
  455. package/dist/utils/sql-dump/generators/controls.d.ts.map +0 -1
  456. package/dist/utils/sql-dump/generators/controls.js +0 -36
  457. package/dist/utils/sql-dump/generators/controls.js.map +0 -1
  458. package/dist/utils/sql-dump/generators/headers.d.ts +0 -6
  459. package/dist/utils/sql-dump/generators/headers.d.ts.map +0 -1
  460. package/dist/utils/sql-dump/generators/headers.js +0 -19
  461. package/dist/utils/sql-dump/generators/headers.js.map +0 -1
  462. package/dist/utils/sql-dump/index.d.ts +0 -14
  463. package/dist/utils/sql-dump/index.d.ts.map +0 -1
  464. package/dist/utils/sql-dump/index.js +0 -16
  465. package/dist/utils/sql-dump/index.js.map +0 -1
  466. package/dist/utils/sql-dump/schema/indexes.d.ts +0 -20
  467. package/dist/utils/sql-dump/schema/indexes.d.ts.map +0 -1
  468. package/dist/utils/sql-dump/schema/indexes.js +0 -108
  469. package/dist/utils/sql-dump/schema/indexes.js.map +0 -1
  470. package/dist/utils/sql-dump/schema/primary-keys.d.ts +0 -6
  471. package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +0 -1
  472. package/dist/utils/sql-dump/schema/primary-keys.js +0 -41
  473. package/dist/utils/sql-dump/schema/primary-keys.js.map +0 -1
  474. package/dist/utils/sql-dump/schema/tables.d.ts +0 -15
  475. package/dist/utils/sql-dump/schema/tables.d.ts.map +0 -1
  476. package/dist/utils/sql-dump/schema/tables.js +0 -518
  477. package/dist/utils/sql-dump/schema/tables.js.map +0 -1
  478. package/dist/utils/sql-dump/schema/views.d.ts +0 -11
  479. package/dist/utils/sql-dump/schema/views.d.ts.map +0 -1
  480. package/dist/utils/sql-dump/schema/views.js +0 -116
  481. package/dist/utils/sql-dump/schema/views.js.map +0 -1
  482. package/dist/utils/sql-dump/types.d.ts +0 -10
  483. package/dist/utils/sql-dump/types.d.ts.map +0 -1
  484. package/dist/utils/sql-dump/types.js +0 -3
  485. package/dist/utils/sql-dump/types.js.map +0 -1
  486. package/dist/utils/sql-dump-converters.d.ts +0 -188
  487. package/dist/utils/sql-dump-converters.d.ts.map +0 -1
  488. package/dist/utils/sql-dump-converters.js +0 -315
  489. package/dist/utils/sql-dump-converters.js.map +0 -1
  490. package/dist/watcher/gitignore-parser.d.ts +0 -70
  491. package/dist/watcher/gitignore-parser.d.ts.map +0 -1
  492. package/dist/watcher/gitignore-parser.js +0 -195
  493. package/dist/watcher/gitignore-parser.js.map +0 -1
  494. package/dist/watcher/index.d.ts +0 -9
  495. package/dist/watcher/index.d.ts.map +0 -1
  496. package/dist/watcher/index.js +0 -8
  497. package/dist/watcher/index.js.map +0 -1
  498. /package/dist/tests/{utils → integration}/json-export-import.test.d.ts +0 -0
  499. /package/dist/tests/{utils → integration}/json-export-import.test.js +0 -0
@@ -1,27 +1,20 @@
1
1
  /**
2
2
  * Help System - Native RDBMS Integration Tests
3
3
  *
4
- * Tests help system tables (m_help_tools, m_help_actions, t_help_action_examples,
5
- * t_help_use_cases, m_help_use_case_cats) on fresh MySQL, MariaDB, and PostgreSQL installations.
6
- *
7
- * Task #534: Refactor to use direct Knex operations instead of MCP tool functions
8
- * v4 migration: Updated all table/column names to v4 schema (2025-12-25)
4
+ * Tests help system tables via direct Knex operations
5
+ * on MySQL, MariaDB, and PostgreSQL.
9
6
  */
10
7
  import { describe, it } from 'node:test';
11
8
  import assert from 'node:assert';
12
9
  import { runTestsOnAllDatabases } from './test-harness.js';
13
10
  runTestsOnAllDatabases('Help System', (getDb, dbType) => {
14
11
  let projectId;
15
- // Get project ID before running tests
16
12
  it('should get project ID', async () => {
17
13
  const db = getDb();
18
14
  const project = await db('m_projects').first();
19
15
  assert.ok(project, 'Project should exist');
20
16
  projectId = project.id;
21
17
  });
22
- // ============================================================================
23
- // m_help_tools - Tool Registry
24
- // ============================================================================
25
18
  describe('m_help_tools table', () => {
26
19
  it('should have decision tool registered', async () => {
27
20
  const db = getDb();
@@ -67,9 +60,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
67
60
  }
68
61
  });
69
62
  });
70
- // ============================================================================
71
- // m_help_actions - Action Documentation
72
- // ============================================================================
73
63
  describe('m_help_actions table', () => {
74
64
  it('should have decision.set action documented', async () => {
75
65
  const db = getDb();
@@ -85,7 +75,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
85
75
  .select('*');
86
76
  assert.ok(Array.isArray(params), 'Parameters should be an array');
87
77
  assert.ok(params.length > 0, 'Should have at least one parameter');
88
- // Verify key parameters
89
78
  const paramNames = params.map((p) => p.param_name);
90
79
  assert.ok(paramNames.includes('key'), 'Should have key parameter');
91
80
  assert.ok(paramNames.includes('value'), 'Should have value parameter');
@@ -116,7 +105,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
116
105
  .select('action_name');
117
106
  assert.ok(decisionActions.length > 1, 'Decision tool should have multiple actions');
118
107
  assert.ok(constraintActions.length >= 1, 'Constraint tool should have actions');
119
- // Verify key decision actions exist
120
108
  const decisionActionNames = decisionActions.map((a) => a.action_name);
121
109
  assert.ok(decisionActionNames.includes('set'), 'Should have set action');
122
110
  assert.ok(decisionActionNames.includes('get'), 'Should have get action');
@@ -137,9 +125,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
137
125
  assert.ok(hasRequiredFlag, 'All parameters should have required flag');
138
126
  });
139
127
  });
140
- // ============================================================================
141
- // m_help_actions - Foreign Key Constraints
142
- // ============================================================================
143
128
  describe('m_help_actions foreign key constraints', () => {
144
129
  it('should enforce FK constraint on tool_name', async () => {
145
130
  const db = getDb();
@@ -162,9 +147,7 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
162
147
  });
163
148
  it('should allow actions with valid tool_name', async () => {
164
149
  const db = getDb();
165
- // Insert a test action with valid tool_name
166
150
  const testActionName = `test_action_${Date.now()}`;
167
- // m_help_actions columns: id, tool_name, action_name, description, returns
168
151
  await db('m_help_actions').insert({
169
152
  tool_name: 'decision',
170
153
  action_name: testActionName,
@@ -174,24 +157,18 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
174
157
  .where({ tool_name: 'decision', action_name: testActionName })
175
158
  .first();
176
159
  assert.ok(inserted, 'Should insert action with valid tool_name');
177
- // Cleanup
178
160
  await db('m_help_actions')
179
161
  .where({ action_name: testActionName })
180
162
  .delete();
181
163
  });
182
164
  });
183
- // ============================================================================
184
- // t_help_action_examples - Example Storage
185
- // ============================================================================
186
165
  describe('t_help_action_examples table', () => {
187
166
  it('should have examples for decision tool', async () => {
188
167
  const db = getDb();
189
- // Join with m_help_actions to filter by tool_name
190
168
  const examples = await db('t_help_action_examples')
191
169
  .join('m_help_actions', 't_help_action_examples.action_id', 'm_help_actions.id')
192
170
  .where({ 'm_help_actions.tool_name': 'decision' })
193
171
  .select('t_help_action_examples.*');
194
- // Should have examples seeded
195
172
  assert.ok(examples.length >= 0, 'Should return examples (or empty array if none seeded)');
196
173
  if (examples.length > 0) {
197
174
  const example = examples[0];
@@ -201,14 +178,11 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
201
178
  });
202
179
  it('should filter examples by action', async () => {
203
180
  const db = getDb();
204
- // Join with m_help_actions to filter by tool_name and action_name
205
181
  const examples = await db('t_help_action_examples')
206
182
  .join('m_help_actions', 't_help_action_examples.action_id', 'm_help_actions.id')
207
183
  .where({ 'm_help_actions.tool_name': 'decision', 'm_help_actions.action_name': 'set' })
208
184
  .select('t_help_action_examples.*', 'm_help_actions.tool_name', 'm_help_actions.action_name');
209
- // Verify filtering works
210
185
  assert.ok(Array.isArray(examples), 'Should return array');
211
- // All returned examples should match the filter
212
186
  examples.forEach((ex) => {
213
187
  assert.strictEqual(ex.tool_name, 'decision');
214
188
  assert.strictEqual(ex.action_name, 'set');
@@ -236,7 +210,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
236
210
  .where('title', 'like', `%${keyword}%`)
237
211
  .select('*');
238
212
  assert.ok(Array.isArray(examples), 'Should return search results');
239
- // All results should match keyword in title
240
213
  examples.forEach((ex) => {
241
214
  assert.ok(ex.title.toLowerCase().includes(keyword.toLowerCase()), 'Title should contain keyword');
242
215
  });
@@ -261,15 +234,11 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
261
234
  })
262
235
  .select('t_help_action_examples.*', 'm_help_actions.tool_name');
263
236
  assert.ok(Array.isArray(examples), 'Should return filtered search results');
264
- // All results should be for decision tool
265
237
  examples.forEach((ex) => {
266
238
  assert.strictEqual(ex.tool_name, 'decision');
267
239
  });
268
240
  });
269
241
  });
270
- // ============================================================================
271
- // t_help_use_cases - Use Case Storage
272
- // ============================================================================
273
242
  describe('t_help_use_cases table', () => {
274
243
  it('should have use case table structure', async () => {
275
244
  const db = getDb();
@@ -287,7 +256,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
287
256
  });
288
257
  it('should get use case by ID', async () => {
289
258
  const db = getDb();
290
- // Get first use case if any exist
291
259
  const firstUseCase = await db('t_help_use_cases')
292
260
  .orderBy('id', 'asc')
293
261
  .first();
@@ -334,9 +302,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
334
302
  });
335
303
  });
336
304
  });
337
- // ============================================================================
338
- // m_help_use_case_cats - Use Case Category Management
339
- // ============================================================================
340
305
  describe('m_help_use_case_cats table', () => {
341
306
  it('should have use case categories', async () => {
342
307
  const db = getDb();
@@ -376,9 +341,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
376
341
  });
377
342
  // NOTE: m_help_use_case_steps table does not exist in current schema
378
343
  // Use case steps are stored in the 'workflow' TEXT column of t_help_use_cases
379
- // ============================================================================
380
- // Cross-Database Compatibility Tests
381
- // ============================================================================
382
344
  describe(`Cross-database compatibility - ${dbType}`, () => {
383
345
  it('should handle unicode in example search', async () => {
384
346
  const db = getDb();
@@ -386,7 +348,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
386
348
  const examples = await db('t_help_action_examples')
387
349
  .where('title', 'like', `%${unicodeKeyword}%`)
388
350
  .select('*');
389
- // Should not crash with unicode
390
351
  assert.ok(Array.isArray(examples), 'Should handle unicode search');
391
352
  });
392
353
  it('should handle special characters in search', async () => {
@@ -395,7 +356,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
395
356
  const examples = await db('t_help_action_examples')
396
357
  .where('title', 'like', `%${specialKeyword}%`)
397
358
  .select('*');
398
- // Should not crash with special characters
399
359
  assert.ok(Array.isArray(examples), 'Should handle special characters');
400
360
  });
401
361
  it('should support pagination in example listing', async () => {
@@ -410,7 +370,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
410
370
  .select('*');
411
371
  assert.ok(Array.isArray(page1), 'Should return page 1');
412
372
  assert.ok(Array.isArray(page2), 'Should return page 2');
413
- // If there are enough examples, pages should be different
414
373
  if (page1.length === 5 && page2.length > 0) {
415
374
  const page1Ids = page1.map((e) => e.id);
416
375
  const page2Ids = page2.map((e) => e.id);
@@ -484,9 +443,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
484
443
  }
485
444
  });
486
445
  });
487
- // ============================================================================
488
- // Integration Tests - Complex Queries
489
- // ============================================================================
490
446
  describe('Integration - Complex queries', () => {
491
447
  it('should join tools, actions, and examples', async () => {
492
448
  const db = getDb();
@@ -545,7 +501,6 @@ runTestsOnAllDatabases('Help System', (getDb, dbType) => {
545
501
  assert.ok(row.id, 'Should have id');
546
502
  assert.ok(row.title, 'Should have title');
547
503
  assert.ok(row.category_name, 'Should have category_name');
548
- // workflow contains the workflow steps
549
504
  });
550
505
  });
551
506
  });
@@ -1 +1 @@
1
- {"version":3,"file":"help-system.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/help-system.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help-system.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/help-system.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,sBAAsB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IACtD,IAAI,SAAiB,CAAC;IAEtB,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAC3C,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;iBAClC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;iBAChC,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,oCAAoC,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;YAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EACrF,2DAA2D,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAE/C,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;iBAClC,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;iBAClC,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,sCAAsC,CAAC,CAAC;YACxD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;iBACtC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;iBAC5B,KAAK,EAAE,CAAC;YAEX,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;iBACzC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;iBAC/B,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;YACtD,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;iBACnC,MAAM,CAAC,WAAW,CAAC;iBACnB,OAAO,CAAC,WAAW,CAAC,CAAC;YAExB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAErD,oDAAoD;YACpD,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACpE,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,MAAM,CAAC,EAAE,CACP,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAChC,eAAe,YAAY,kBAAkB,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACtC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;iBACpD,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;YAC9D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;YAEhE,sDAAsD;YACtD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC;iBAC5C,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,+BAA+B,CAAC,CAAC;YAClE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;YAEnE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;YACnE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,uEAAuE;QAEvE,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACtC,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;iBACtD,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;YAChE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;YAEhE,sDAAsD;YACtD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC;iBAC5C,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBAC/C,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;iBAChC,MAAM,CAAC,aAAa,CAAC,CAAC;YAEzB,kCAAkC;YAClC,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACjD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;iBAClC,MAAM,CAAC,aAAa,CAAC,CAAC;YAEzB,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;YACpF,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAEhF,MAAM,mBAAmB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,CAAC;YACzE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACtC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;iBACpD,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAEzC,sDAAsD;YACtD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC;iBAC5C,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;YAEvD,mEAAmE;YACnE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAC9C,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,SAAS,CAClE,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,0CAA0C,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACtD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,IAAI,CAAC;gBACH,2EAA2E;gBAC3E,gEAAgE;gBAChE,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;oBAChC,SAAS,EAAE,mBAAmB;oBAC9B,WAAW,EAAE,aAAa;oBAC1B,WAAW,EAAE,kBAAkB;iBAChC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,oCAAoC;gBACpC,MAAM,CAAC,EAAE,CACP,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBACrC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBACrC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EACpC,0CAA0C,CAC3C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,cAAc,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAEnD,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;gBAChC,SAAS,EAAE,UAAU;gBACrB,WAAW,EAAE,cAAc;gBAC3B,WAAW,EAAE,aAAa;aAC3B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACxC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;iBAC7D,KAAK,EAAE,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAC;YAEjE,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACvB,KAAK,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;iBACtC,MAAM,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,IAAI,CAAC,gBAAgB,EAAE,kCAAkC,EAAE,mBAAmB,CAAC;iBAC/E,KAAK,CAAC,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;iBACjD,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAEtC,MAAM,CAAC,EAAE,CACP,QAAQ,CAAC,MAAM,IAAI,CAAC,EACpB,wDAAwD,CACzD,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;gBACtD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,IAAI,CAAC,gBAAgB,EAAE,kCAAkC,EAAE,mBAAmB,CAAC;iBAC/E,KAAK,CAAC,EAAE,0BAA0B,EAAE,UAAU,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC;iBACtF,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,4BAA4B,CAAC,CAAC;YAEhG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAE1D,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;gBAC3B,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC7C,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,KAAK,CAAC,CAAC,CAAC;iBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAEnE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC7C,MAAM,CAAC,EAAE,CAAC,WAAW,IAAI,OAAO,EAAE,uBAAuB,CAAC,CAAC;gBAC3D,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBACjD,MAAM,CAAC,EAAE,CAAC,aAAa,IAAI,OAAO,EAAE,yBAAyB,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,UAAU,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,OAAO,GAAG,CAAC;iBACtC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAEnE,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;gBAC3B,MAAM,CAAC,EAAE,CACP,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EACtD,8BAA8B,CAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,MAAM,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,OAAO,GAAG,CAAC;iBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,IAAI,CAAC,gBAAgB,EAAE,kCAAkC,EAAE,mBAAmB,CAAC;iBAC/E,KAAK,CAAC,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;iBACjD,QAAQ,CAAC;gBACR,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;qBACjC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC;iBACD,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;YAElE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,uCAAuC,CAAC,CAAC;YAE5E,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;gBAC3B,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAC1C,KAAK,CAAC,CAAC,CAAC;iBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC,CAAC;YAEpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,yBAAyB,CAAC,CAAC;gBACtD,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAC5D,MAAM,CAAC,EAAE,CAAC,aAAa,IAAI,OAAO,EAAE,kCAAkC,CAAC,CAAC;gBACxE,MAAM,CAAC,EAAE,CAAC,YAAY,IAAI,OAAO,EAAE,iCAAiC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAC9C,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iBACpB,KAAK,EAAE,CAAC;YAEX,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;qBACzC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;qBAC9B,KAAK,EAAE,CAAC;gBAEX,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;gBACrD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;gBAChD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,QAAQ,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,OAAO,GAAG,CAAC;iBACtC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,UAAU,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAC1C,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,OAAO,GAAG,CAAC;iBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAC/C,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;iBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAClD,KAAK,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;iBACjC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,+BAA+B,CAAC,CAAC;YACzE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,kCAAkC,CAAC,CAAC;YAE/E,aAAa,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;gBAChC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;gBACnC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC;iBAChD,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAAC,CAAC;YACjE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,mCAAmC,CAAC,CAAC;YAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC9B,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBACtD,IAAI,CACH,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,CAC1B;iBACA,MAAM,CACL,oBAAoB,EACpB,oCAAoC,CACrC;iBACA,KAAK,CAAC,CAAC,CAAC,CAAC;YAEZ,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAE/E,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;gBACvC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC;iBAChD,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEpC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;qBAC1C,IAAI,CACH,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,CAC1B;qBACA,KAAK,CAAC,oCAAoC,EAAE,aAAa,CAAC,aAAa,CAAC;qBACxE,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,yCAAyC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,8EAA8E;IAE9E,QAAQ,CAAC,kCAAkC,MAAM,EAAE,EAAE,GAAG,EAAE;QACxD,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,cAAc,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,cAAc,GAAG,CAAC;iBAC7C,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,cAAc,GAAG,0BAA0B,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,cAAc,GAAG,CAAC;iBAC7C,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAC7C,KAAK,CAAC,CAAC,CAAC;iBACR,MAAM,CAAC,CAAC,CAAC;iBACT,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC;iBAC7C,KAAK,CAAC,CAAC,CAAC;iBACR,MAAM,CAAC,CAAC,CAAC;iBACT,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACxD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBACvC,KAAK,CAAC,CAAC,CAAC;iBACR,MAAM,CAAC,CAAC,CAAC;iBACT,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBACvC,KAAK,CAAC,CAAC,CAAC;iBACR,MAAM,CAAC,CAAC,CAAC;iBACT,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACxD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACtC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;iBACpD,KAAK,EAAE,CAAC;YAEX,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC;qBAC5C,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;oBAC9B,SAAS,EAAE,UAAU,EAAE,yCAAyC;oBAChE,WAAW,EAAE,gBAAgB;iBAC9B,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,uDAAuD;gBACvD,oDAAoD;gBACpD,qCAAqC;gBACrC,sCAAsC;gBACtC,gCAAgC;gBAChC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM,CAAC,EAAE,CACP,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACtB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACzB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACvB,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC1B,iDAAiD,KAAK,CAAC,OAAO,EAAE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,IAAI,CAAC;gBACH,2EAA2E;gBAC3E,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;oBAChC,SAAS,EAAE,UAAU;oBACrB,WAAW,EAAE,KAAK,EAAE,wBAAwB;oBAC5C,WAAW,EAAE,kBAAkB;iBAChC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,wCAAwC;gBACxC,MAAM,CAAC,EAAE,CACP,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EACnC,qCAAqC,CACtC,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;iBACrC,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,0BAA0B,CAAC;iBAC5E,QAAQ,CAAC,wBAAwB,EAAE,mBAAmB,EAAE,kCAAkC,CAAC;iBAC3F,MAAM,CACL,wBAAwB,EACxB,4BAA4B,EAC5B,8BAA8B,CAC/B;iBACA,KAAK,CAAC,EAAE,CAAC,CAAC;YAEb,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAElE,OAAO,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;gBAClD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;gBACtD,gCAAgC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;iBACtC,MAAM,CAAC,WAAW,CAAC;iBACnB,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,OAAO,CAAC,WAAW,CAAC;iBACpB,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAEnC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACzD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;YAE3E,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC1B,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;gBAClD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,4BAA4B,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,2CAA2C;QAC3C,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBACxC,MAAM,CAAC,YAAY,CAAC;iBACpB,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,OAAO,CAAC,YAAY,CAAC;iBACrB,OAAO,CAAC,YAAY,CAAC,CAAC;YAEzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAEzD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC1B,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;gBACpD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,mDAAmD;YACnD,6CAA6C;YAC7C,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC;iBAC9C,IAAI,CACH,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,CAC1B;iBACA,MAAM,CACL,qBAAqB,EACrB,wBAAwB,EACxB,oCAAoC,EACpC,2BAA2B,CAC5B;iBACA,OAAO,CAAC,qBAAqB,CAAC;iBAC9B,KAAK,CAAC,EAAE,CAAC,CAAC;YAEb,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAEvE,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAChC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBACpC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;gBAC1C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,16 +1,8 @@
1
1
  /**
2
- * Suggest Tool (v3.9.0) - Native RDBMS Integration Tests (Refactored)
2
+ * Suggest Tool - Native RDBMS Integration Tests
3
3
  *
4
- * Tests Decision Intelligence tag index (t_tag_index), similarity calculations,
5
- * and three-tier detection on fresh MySQL, MariaDB, and PostgreSQL installations.
6
- *
7
- * Task #533: Refactor to use direct Knex operations instead of MCP tool functions
8
- *
9
- * REFACTORING PATTERN:
10
- * - Direct database operations via Knex for all data setup
11
- * - Manual tag index population (t_tag_index inserts)
12
- * - Manual similarity score calculation (Levenshtein, Jaccard)
13
- * - No MCP tool function calls (no handleSuggestAction, no setDecision)
4
+ * Tests tag index (t_tag_index), similarity calculations (Levenshtein, Jaccard),
5
+ * and three-tier detection via direct Knex operations on MySQL, MariaDB, and PostgreSQL.
14
6
  */
15
7
  export {};
16
8
  //# sourceMappingURL=suggest-tool.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-tool.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/docker/native/suggest-tool.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
1
+ {"version":3,"file":"suggest-tool.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/docker/native/suggest-tool.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,23 +1,12 @@
1
1
  /**
2
- * Suggest Tool (v3.9.0) - Native RDBMS Integration Tests (Refactored)
2
+ * Suggest Tool - Native RDBMS Integration Tests
3
3
  *
4
- * Tests Decision Intelligence tag index (t_tag_index), similarity calculations,
5
- * and three-tier detection on fresh MySQL, MariaDB, and PostgreSQL installations.
6
- *
7
- * Task #533: Refactor to use direct Knex operations instead of MCP tool functions
8
- *
9
- * REFACTORING PATTERN:
10
- * - Direct database operations via Knex for all data setup
11
- * - Manual tag index population (t_tag_index inserts)
12
- * - Manual similarity score calculation (Levenshtein, Jaccard)
13
- * - No MCP tool function calls (no handleSuggestAction, no setDecision)
4
+ * Tests tag index (t_tag_index), similarity calculations (Levenshtein, Jaccard),
5
+ * and three-tier detection via direct Knex operations on MySQL, MariaDB, and PostgreSQL.
14
6
  */
15
7
  import { describe, it } from 'node:test';
16
8
  import assert from 'node:assert';
17
9
  import { runTestsOnAllDatabases } from './test-harness.js';
18
- // ============================================================================
19
- // Similarity Calculation Helpers (Manual Implementation)
20
- // ============================================================================
21
10
  /**
22
11
  * Calculate Levenshtein distance between two strings
23
12
  * Used for key pattern similarity scoring
@@ -115,29 +104,23 @@ function calculatePriorityScore(priority) {
115
104
  // 4 (critical) = 5 points, 3 (high) = 4 points, 2 (medium) = 3 points, 1 (low) = 2 points
116
105
  return Math.min(priority + 1, 5);
117
106
  }
118
- // ============================================================================
119
- // Database Helper Functions
120
- // ============================================================================
121
107
  /**
122
108
  * Create a decision with tags (manual insert)
123
109
  */
124
110
  async function createDecisionWithTags(db, params) {
125
111
  const { key, value, layer, tags = [], priority = 2, version = '1.0.0', projectId } = params;
126
- // Get or create context key
127
112
  let keyRecord = await db('m_context_keys').where({ key_name: key }).first();
128
113
  if (!keyRecord) {
129
114
  await db('m_context_keys').insert({ key_name: key });
130
115
  keyRecord = await db('m_context_keys').where({ key_name: key }).first();
131
116
  }
132
117
  const keyId = keyRecord.id;
133
- // Get layer ID
134
118
  const layerRecord = await db('m_layers').where({ name: layer }).first();
135
119
  if (!layerRecord) {
136
120
  throw new Error(`Layer "${layer}" not found`);
137
121
  }
138
122
  const layerId = layerRecord.id;
139
123
  const ts = Math.floor(Date.now() / 1000);
140
- // Insert decision
141
124
  const existingDecision = await db('t_decisions')
142
125
  .where({ key_id: keyId, project_id: projectId })
143
126
  .first();
@@ -157,17 +140,14 @@ async function createDecisionWithTags(db, params) {
157
140
  .where({ key_id: keyId, project_id: projectId })
158
141
  .update({ value, version, layer_id: layerId, ts });
159
142
  }
160
- // Insert tags and populate tag index
161
143
  if (tags.length > 0) {
162
144
  for (const tagName of tags) {
163
- // Get or create tag
164
145
  let tagRecord = await db('m_tags').where({ name: tagName }).first();
165
146
  if (!tagRecord) {
166
147
  await db('m_tags').insert({ name: tagName });
167
148
  tagRecord = await db('m_tags').where({ name: tagName }).first();
168
149
  }
169
150
  const tagId = tagRecord.id;
170
- // Insert decision tag
171
151
  const existingTag = await db('t_decision_tags')
172
152
  .where({ decision_key_id: keyId, tag_id: tagId, project_id: projectId })
173
153
  .first();
@@ -222,7 +202,6 @@ async function getDecisionByKeyId(db, keyId, projectId) {
222
202
  .first();
223
203
  if (!decision)
224
204
  return null;
225
- // Get tags
226
205
  const tags = await db('t_decision_tags as dt')
227
206
  .select('t.name as tag_name')
228
207
  .join('m_tags as t', 'dt.tag_id', 't.id')
@@ -235,16 +214,12 @@ async function getDecisionByKeyId(db, keyId, projectId) {
235
214
  }
236
215
  runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) => {
237
216
  let projectId;
238
- // Get project ID before running tests
239
217
  it('should get project ID', async () => {
240
218
  const db = getDb();
241
219
  const project = await db('m_projects').first();
242
220
  assert.ok(project, 'Project should exist');
243
221
  projectId = project.id;
244
222
  });
245
- // ============================================================================
246
- // Tag Index Population Tests
247
- // ============================================================================
248
223
  describe('Tag Index (t_tag_index) - Data Integrity', () => {
249
224
  it('should populate t_tag_index when creating decision with tags', async () => {
250
225
  const db = getDb();
@@ -287,7 +262,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
287
262
  tags: ['database'],
288
263
  projectId,
289
264
  });
290
- // Query tag index for 'api' tag
291
265
  const results = await queryTagIndex(db, ['api'], projectId);
292
266
  assert.ok(results.length >= 2, 'Should find at least 2 decisions with api tag');
293
267
  const apiKeys = results.map(r => r.key_name).filter(k => k.includes('api'));
@@ -295,7 +269,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
295
269
  });
296
270
  it('should handle FK constraints (source_id references m_context_keys)', async () => {
297
271
  const db = getDb();
298
- // Create decision
299
272
  const keyId = await createDecisionWithTags(db, {
300
273
  key: 'tag-index/fk-test',
301
274
  value: 'test',
@@ -315,9 +288,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
315
288
  assert.strictEqual(tagIndexEntry.source_id, contextKey.id, 'FK constraint should be valid');
316
289
  });
317
290
  });
318
- // ============================================================================
319
- // Key Similarity Tests (Manual Calculation)
320
- // ============================================================================
321
291
  describe('Key Similarity - Manual Calculation', () => {
322
292
  it('should calculate Levenshtein distance for key similarity', async () => {
323
293
  const db = getDb();
@@ -335,7 +305,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
335
305
  tags: ['api', 'security'],
336
306
  projectId,
337
307
  });
338
- // Manual similarity calculation
339
308
  const key1 = 'similarity/api/authentication';
340
309
  const key2 = 'similarity/api/authorization';
341
310
  const keySimilarity = calculateKeySimilarity(key1, key2);
@@ -357,7 +326,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
357
326
  tags: ['test'],
358
327
  projectId,
359
328
  });
360
- // Get decisions
361
329
  const decision1 = await getDecisionByKeyId(db, keyId1, projectId);
362
330
  const decision2 = await getDecisionByKeyId(db, keyId2, projectId);
363
331
  // Calculate full similarity score (matches actual suggest tool):
@@ -378,9 +346,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
378
346
  assert.ok(totalScore >= 30, `Score ${totalScore} should be above low threshold (30)`);
379
347
  });
380
348
  });
381
- // ============================================================================
382
- // Tag Overlap Tests (Jaccard Similarity)
383
- // ============================================================================
384
349
  describe('Tag Overlap - Jaccard Similarity', () => {
385
350
  it('should calculate Jaccard similarity for tag overlap', async () => {
386
351
  const db = getDb();
@@ -398,7 +363,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
398
363
  tags: ['performance'],
399
364
  projectId,
400
365
  });
401
- // Calculate Jaccard similarity
402
366
  const tags1 = ['performance', 'security'];
403
367
  const tags2 = ['performance', 'security', 'critical'];
404
368
  const tags3 = ['performance'];
@@ -409,7 +373,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
409
373
  });
410
374
  it('should rank by tag overlap using tag index', async () => {
411
375
  const db = getDb();
412
- // Create decisions with different tag overlaps
413
376
  await createDecisionWithTags(db, {
414
377
  key: 'ranking/high-overlap',
415
378
  value: 'value1',
@@ -424,7 +387,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
424
387
  tags: ['performance'],
425
388
  projectId,
426
389
  });
427
- // Query tag index for multiple tags
428
390
  const results = await queryTagIndex(db, ['performance', 'security'], projectId);
429
391
  assert.ok(results.length > 0, 'Should find decisions with matching tags');
430
392
  // Count tag matches per decision (v4 uses source_id)
@@ -467,9 +429,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
467
429
  assert.ok(businessResults.every(r => r.layer === 'business'), 'All results should be from business layer');
468
430
  });
469
431
  });
470
- // ============================================================================
471
- // Three-Tier Similarity Detection (Manual Calculation)
472
- // ============================================================================
473
432
  describe('Three-Tier Similarity Detection - Manual', () => {
474
433
  // Full scoring model (100 points max):
475
434
  // - keySimilarity: 0-20 points
@@ -486,7 +445,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
486
445
  tags: ['test'],
487
446
  projectId,
488
447
  });
489
- // Manual similarity calculation for similar key
490
448
  // NEW context (user input) vs EXISTING decision
491
449
  const existingKey = 'tier1/existing';
492
450
  const newKey = 'tier1/different'; // Different suffix to get lower score
@@ -510,7 +468,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
510
468
  tags: ['api', 'security', 'authentication'],
511
469
  projectId,
512
470
  });
513
- // Manual similarity calculation for highly similar decision
514
471
  const existingKey = 'tier2/authentication-strategy';
515
472
  const newKey = 'tier2/authentication-strategy-new';
516
473
  const keySimilarity = calculateKeySimilarity(existingKey, newKey);
@@ -534,7 +491,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
534
491
  version: '1.0.0',
535
492
  projectId,
536
493
  });
537
- // Manual similarity calculation for near-exact duplicate
538
494
  const existingKey = 'tier3/exact-match';
539
495
  const newKey = 'tier3/exact-match'; // Exact same key
540
496
  const keySimilarity = calculateKeySimilarity(existingKey, newKey); // 20 points (exact match)
@@ -556,7 +512,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
556
512
  tags: ['api'],
557
513
  projectId,
558
514
  });
559
- // Manual similarity calculation for completely different decision
560
515
  const existingKey = 'no-match/api-design';
561
516
  const newKey = 'no-match/database-schema';
562
517
  const keySimilarity = calculateKeySimilarity(existingKey, newKey);
@@ -566,9 +521,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
566
521
  assert.ok(totalScore < 35, `Score ${totalScore} should be below Tier 1 threshold (35)`);
567
522
  });
568
523
  });
569
- // ============================================================================
570
- // Cross-Database Compatibility Tests
571
- // ============================================================================
572
524
  describe(`Cross-database compatibility - ${dbType}`, () => {
573
525
  it('should handle unicode in decision keys for tag index', async () => {
574
526
  const db = getDb();
@@ -580,7 +532,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
580
532
  tags: ['unicode'],
581
533
  projectId,
582
534
  });
583
- // Query tag index
584
535
  const results = await queryTagIndex(db, ['unicode'], projectId);
585
536
  assert.ok(results.length > 0, 'Should find unicode decision in tag index');
586
537
  const foundKey = results.find(r => r.key_name === unicodeKey);
@@ -595,7 +546,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
595
546
  tags: ['api-v2', 'oauth2.0'],
596
547
  projectId,
597
548
  });
598
- // Query tag index with special characters
599
549
  const results = await queryTagIndex(db, ['api-v2'], projectId);
600
550
  assert.ok(results.length > 0, 'Should find tags with special characters');
601
551
  });
@@ -608,7 +558,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
608
558
  tags: ['API'],
609
559
  projectId,
610
560
  });
611
- // Query with different case
612
561
  const upperResults = await queryTagIndex(db, ['API'], projectId);
613
562
  const lowerResults = await queryTagIndex(db, ['api'], projectId);
614
563
  // Behavior may vary by database
@@ -620,13 +569,9 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
620
569
  }
621
570
  });
622
571
  });
623
- // ============================================================================
624
- // Tag Index Performance Tests
625
- // ============================================================================
626
572
  describe('Tag Index Performance', () => {
627
573
  it('should efficiently query tag index for multiple tags', async () => {
628
574
  const db = getDb();
629
- // Create multiple decisions with overlapping tags
630
575
  for (let i = 1; i <= 5; i++) {
631
576
  await createDecisionWithTags(db, {
632
577
  key: `perf/decision-${i}`,
@@ -636,7 +581,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
636
581
  projectId,
637
582
  });
638
583
  }
639
- // Query tag index for 'number' tag (should find all 5)
640
584
  const results = await queryTagIndex(db, ['number'], projectId);
641
585
  assert.ok(results.length >= 5, 'Should find all 5 decisions with number tag');
642
586
  });
@@ -649,7 +593,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
649
593
  tags: ['tag1', 'tag2', 'tag3'],
650
594
  projectId,
651
595
  });
652
- // Query tag index for multiple tags
653
596
  const results = await queryTagIndex(db, ['tag1', 'tag2', 'tag3'], projectId);
654
597
  // Group by source_id to count matches (v4 uses source_id)
655
598
  const decisionMatches = new Map();