sqlew 3.6.9 → 3.7.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 (383) hide show
  1. package/CHANGELOG.md +398 -1
  2. package/README.md +58 -39
  3. package/assets/config.example.toml +93 -0
  4. package/assets/kanban-visualizer.png +0 -0
  5. package/assets/sample-agents/sqlew-architect.md +32 -13
  6. package/assets/sample-agents/sqlew-researcher.md +70 -17
  7. package/assets/sample-agents/sqlew-scrum-master.md +60 -25
  8. package/assets/schema.sql +2 -2
  9. package/dist/adapters/auth/auth-factory.d.ts +86 -0
  10. package/dist/adapters/auth/auth-factory.d.ts.map +1 -0
  11. package/dist/adapters/auth/auth-factory.js +103 -0
  12. package/dist/adapters/auth/auth-factory.js.map +1 -0
  13. package/dist/adapters/auth/auth-types.d.ts +30 -0
  14. package/dist/adapters/auth/auth-types.d.ts.map +1 -0
  15. package/dist/adapters/auth/auth-types.js +30 -0
  16. package/dist/adapters/auth/auth-types.js.map +1 -0
  17. package/dist/adapters/auth/base-auth-provider.d.ts +327 -0
  18. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -0
  19. package/dist/adapters/auth/base-auth-provider.js +111 -0
  20. package/dist/adapters/auth/base-auth-provider.js.map +1 -0
  21. package/dist/adapters/auth/direct-auth-provider.d.ts +356 -0
  22. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -0
  23. package/dist/adapters/auth/direct-auth-provider.js +406 -0
  24. package/dist/adapters/auth/direct-auth-provider.js.map +1 -0
  25. package/dist/adapters/base-adapter.d.ts +638 -0
  26. package/dist/adapters/base-adapter.d.ts.map +1 -0
  27. package/dist/adapters/base-adapter.js +557 -0
  28. package/dist/adapters/base-adapter.js.map +1 -0
  29. package/dist/adapters/index.d.ts +13 -2
  30. package/dist/adapters/index.d.ts.map +1 -1
  31. package/dist/adapters/index.js +27 -5
  32. package/dist/adapters/index.js.map +1 -1
  33. package/dist/adapters/mysql-adapter.d.ts +547 -6
  34. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  35. package/dist/adapters/mysql-adapter.js +651 -32
  36. package/dist/adapters/mysql-adapter.js.map +1 -1
  37. package/dist/adapters/postgresql-adapter.d.ts +15 -4
  38. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  39. package/dist/adapters/postgresql-adapter.js +19 -2
  40. package/dist/adapters/postgresql-adapter.js.map +1 -1
  41. package/dist/adapters/sqlite-adapter.d.ts +35 -5
  42. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  43. package/dist/adapters/sqlite-adapter.js +57 -18
  44. package/dist/adapters/sqlite-adapter.js.map +1 -1
  45. package/dist/cli/db-dump.d.ts +32 -0
  46. package/dist/cli/db-dump.d.ts.map +1 -0
  47. package/dist/cli/db-dump.js +409 -0
  48. package/dist/cli/db-dump.js.map +1 -0
  49. package/dist/cli.js +24 -14
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config/example-generator.d.ts.map +1 -1
  52. package/dist/config/example-generator.js +4 -3
  53. package/dist/config/example-generator.js.map +1 -1
  54. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
  55. package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.js +7 -2
  56. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
  57. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
  58. package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.js +49 -50
  59. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
  60. package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
  61. package/dist/config/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
  62. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
  63. package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.js +11 -6
  64. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
  65. package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
  66. package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.js +66 -14
  67. package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -0
  68. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  69. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +22 -0
  70. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  71. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  72. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  73. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
  74. package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.js +6 -0
  75. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
  76. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  77. package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js +6 -0
  78. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  79. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
  80. package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.js +6 -0
  81. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
  82. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  83. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
  84. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  85. package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js +7 -0
  86. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  87. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  88. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js +62 -0
  89. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
  90. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  91. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  92. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
  93. package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.js +6 -0
  94. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
  95. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -0
  96. package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.js +6 -0
  97. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -0
  98. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts +13 -0
  99. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts.map +1 -0
  100. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js +48 -0
  101. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js.map +1 -0
  102. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +24 -0
  103. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +1 -0
  104. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js +189 -0
  105. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js.map +1 -0
  106. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts +16 -0
  107. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -0
  108. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +65 -0
  109. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -0
  110. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +23 -0
  111. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +1 -0
  112. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js +118 -0
  113. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +1 -0
  114. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  115. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  116. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  117. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  118. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  119. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  120. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  121. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  122. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  123. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  124. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  125. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  126. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  127. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  128. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts +49 -0
  129. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -0
  130. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +864 -0
  131. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -0
  132. package/dist/config/loader.d.ts +23 -3
  133. package/dist/config/loader.d.ts.map +1 -1
  134. package/dist/config/loader.js +155 -8
  135. package/dist/config/loader.js.map +1 -1
  136. package/dist/config/types.d.ts +261 -2
  137. package/dist/config/types.d.ts.map +1 -1
  138. package/dist/config/types.js.map +1 -1
  139. package/dist/config/writer.d.ts +65 -0
  140. package/dist/config/writer.d.ts.map +1 -0
  141. package/dist/config/writer.js +139 -0
  142. package/dist/config/writer.js.map +1 -0
  143. package/dist/database.d.ts +11 -2
  144. package/dist/database.d.ts.map +1 -1
  145. package/dist/database.js +65 -8
  146. package/dist/database.js.map +1 -1
  147. package/dist/index.js +186 -32
  148. package/dist/index.js.map +1 -1
  149. package/dist/knexfile.d.ts.map +1 -1
  150. package/dist/knexfile.js +88 -12
  151. package/dist/knexfile.js.map +1 -1
  152. package/dist/tests/all-features.test.js +15 -3
  153. package/dist/tests/all-features.test.js.map +1 -1
  154. package/dist/tests/config-loader.test.d.ts +6 -0
  155. package/dist/tests/config-loader.test.d.ts.map +1 -0
  156. package/dist/tests/config-loader.test.js +201 -0
  157. package/dist/tests/config-loader.test.js.map +1 -0
  158. package/dist/tests/connection-manager-integration.test.d.ts +2 -0
  159. package/dist/tests/connection-manager-integration.test.d.ts.map +1 -0
  160. package/dist/tests/connection-manager-integration.test.js +431 -0
  161. package/dist/tests/connection-manager-integration.test.js.map +1 -0
  162. package/dist/tests/connection-manager.test.d.ts +2 -0
  163. package/dist/tests/connection-manager.test.d.ts.map +1 -0
  164. package/dist/tests/connection-manager.test.js +361 -0
  165. package/dist/tests/connection-manager.test.js.map +1 -0
  166. package/dist/tests/dump-import.test.d.ts +15 -0
  167. package/dist/tests/dump-import.test.d.ts.map +1 -0
  168. package/dist/tests/dump-import.test.js +430 -0
  169. package/dist/tests/dump-import.test.js.map +1 -0
  170. package/dist/tests/migration-idempotency.test.d.ts +2 -0
  171. package/dist/tests/migration-idempotency.test.d.ts.map +1 -0
  172. package/dist/tests/migration-idempotency.test.js +330 -0
  173. package/dist/tests/migration-idempotency.test.js.map +1 -0
  174. package/dist/tests/migration-upgrade-paths.test.d.ts +2 -0
  175. package/dist/tests/migration-upgrade-paths.test.d.ts.map +1 -0
  176. package/dist/tests/migration-upgrade-paths.test.js +248 -0
  177. package/dist/tests/migration-upgrade-paths.test.js.map +1 -0
  178. package/dist/tests/multi-project-migration.test.d.ts +17 -0
  179. package/dist/tests/multi-project-migration.test.d.ts.map +1 -0
  180. package/dist/tests/multi-project-migration.test.js +399 -0
  181. package/dist/tests/multi-project-migration.test.js.map +1 -0
  182. package/dist/tests/multi-project.test.d.ts +5 -0
  183. package/dist/tests/multi-project.test.d.ts.map +1 -0
  184. package/dist/tests/multi-project.test.js +238 -0
  185. package/dist/tests/multi-project.test.js.map +1 -0
  186. package/dist/tests/schema-migration.test.d.ts +8 -0
  187. package/dist/tests/schema-migration.test.d.ts.map +1 -0
  188. package/dist/tests/schema-migration.test.js +108 -0
  189. package/dist/tests/schema-migration.test.js.map +1 -0
  190. package/dist/tests/sql-dump-converters.test.d.ts +7 -0
  191. package/dist/tests/sql-dump-converters.test.d.ts.map +1 -0
  192. package/dist/tests/sql-dump-converters.test.js +314 -0
  193. package/dist/tests/sql-dump-converters.test.js.map +1 -0
  194. package/dist/tests/sql-dump-cross-database.test.d.ts +21 -0
  195. package/dist/tests/sql-dump-cross-database.test.d.ts.map +1 -0
  196. package/dist/tests/sql-dump-cross-database.test.js +314 -0
  197. package/dist/tests/sql-dump-cross-database.test.js.map +1 -0
  198. package/dist/tests/sql-dump-default-conversions.test.d.ts +8 -0
  199. package/dist/tests/sql-dump-default-conversions.test.d.ts.map +1 -0
  200. package/dist/tests/sql-dump-default-conversions.test.js +141 -0
  201. package/dist/tests/sql-dump-default-conversions.test.js.map +1 -0
  202. package/dist/tests/sql-dump-fk-constraints.test.d.ts +13 -0
  203. package/dist/tests/sql-dump-fk-constraints.test.d.ts.map +1 -0
  204. package/dist/tests/sql-dump-fk-constraints.test.js +381 -0
  205. package/dist/tests/sql-dump-fk-constraints.test.js.map +1 -0
  206. package/dist/tests/sql-dump-indexes.test.d.ts +12 -0
  207. package/dist/tests/sql-dump-indexes.test.d.ts.map +1 -0
  208. package/dist/tests/sql-dump-indexes.test.js +269 -0
  209. package/dist/tests/sql-dump-indexes.test.js.map +1 -0
  210. package/dist/tests/sql-dump-integration.test.d.ts +16 -0
  211. package/dist/tests/sql-dump-integration.test.d.ts.map +1 -0
  212. package/dist/tests/sql-dump-integration.test.js +342 -0
  213. package/dist/tests/sql-dump-integration.test.js.map +1 -0
  214. package/dist/tests/sql-dump-table-ordering.test.d.ts +8 -0
  215. package/dist/tests/sql-dump-table-ordering.test.d.ts.map +1 -0
  216. package/dist/tests/sql-dump-table-ordering.test.js +253 -0
  217. package/dist/tests/sql-dump-table-ordering.test.js.map +1 -0
  218. package/dist/tests/tasks.link-file-backward-compat.test.js +11 -1
  219. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
  220. package/dist/tests/tasks.watch-files-action.test.js +11 -1
  221. package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
  222. package/dist/tests/type-conversion.test.d.ts +8 -0
  223. package/dist/tests/type-conversion.test.d.ts.map +1 -0
  224. package/dist/tests/type-conversion.test.js +312 -0
  225. package/dist/tests/type-conversion.test.js.map +1 -0
  226. package/dist/tests/utils/test-helpers.d.ts +93 -0
  227. package/dist/tests/utils/test-helpers.d.ts.map +1 -0
  228. package/dist/tests/utils/test-helpers.js +407 -0
  229. package/dist/tests/utils/test-helpers.js.map +1 -0
  230. package/dist/tools/config.d.ts +58 -0
  231. package/dist/tools/config.d.ts.map +1 -0
  232. package/dist/tools/config.js +281 -0
  233. package/dist/tools/config.js.map +1 -0
  234. package/dist/tools/constraints.d.ts.map +1 -1
  235. package/dist/tools/constraints.js +138 -122
  236. package/dist/tools/constraints.js.map +1 -1
  237. package/dist/tools/context.d.ts.map +1 -1
  238. package/dist/tools/context.js +216 -109
  239. package/dist/tools/context.js.map +1 -1
  240. package/dist/tools/files.d.ts.map +1 -1
  241. package/dist/tools/files.js +123 -102
  242. package/dist/tools/files.js.map +1 -1
  243. package/dist/tools/tasks.d.ts.map +1 -1
  244. package/dist/tools/tasks.js +583 -521
  245. package/dist/tools/tasks.js.map +1 -1
  246. package/dist/tools/utils.d.ts +5 -0
  247. package/dist/tools/utils.d.ts.map +1 -1
  248. package/dist/tools/utils.js +176 -122
  249. package/dist/tools/utils.js.map +1 -1
  250. package/dist/types.d.ts +9 -26
  251. package/dist/types.d.ts.map +1 -1
  252. package/dist/utils/cleanup.d.ts +3 -0
  253. package/dist/utils/cleanup.d.ts.map +1 -1
  254. package/dist/utils/cleanup.js +14 -2
  255. package/dist/utils/cleanup.js.map +1 -1
  256. package/dist/utils/connection-manager.d.ts +59 -0
  257. package/dist/utils/connection-manager.d.ts.map +1 -0
  258. package/dist/utils/connection-manager.js +178 -0
  259. package/dist/utils/connection-manager.js.map +1 -0
  260. package/dist/utils/debug-logger.d.ts +8 -4
  261. package/dist/utils/debug-logger.d.ts.map +1 -1
  262. package/dist/utils/debug-logger.js +27 -7
  263. package/dist/utils/debug-logger.js.map +1 -1
  264. package/dist/utils/error-handler.d.ts +12 -2
  265. package/dist/utils/error-handler.d.ts.map +1 -1
  266. package/dist/utils/error-handler.js +22 -21
  267. package/dist/utils/error-handler.js.map +1 -1
  268. package/dist/utils/parameter-validator.d.ts.map +1 -1
  269. package/dist/utils/parameter-validator.js +36 -15
  270. package/dist/utils/parameter-validator.js.map +1 -1
  271. package/dist/utils/project-context.d.ts +111 -0
  272. package/dist/utils/project-context.d.ts.map +1 -0
  273. package/dist/utils/project-context.js +187 -0
  274. package/dist/utils/project-context.js.map +1 -0
  275. package/dist/utils/project-root.d.ts +79 -0
  276. package/dist/utils/project-root.d.ts.map +1 -0
  277. package/dist/utils/project-root.js +108 -0
  278. package/dist/utils/project-root.js.map +1 -0
  279. package/dist/utils/sql-dump-converters.d.ts +188 -0
  280. package/dist/utils/sql-dump-converters.d.ts.map +1 -0
  281. package/dist/utils/sql-dump-converters.js +311 -0
  282. package/dist/utils/sql-dump-converters.js.map +1 -0
  283. package/dist/utils/sql-dump.d.ts +102 -0
  284. package/dist/utils/sql-dump.d.ts.map +1 -0
  285. package/dist/utils/sql-dump.js +1550 -0
  286. package/dist/utils/sql-dump.js.map +1 -0
  287. package/dist/utils/vcs-adapter.d.ts +42 -0
  288. package/dist/utils/vcs-adapter.d.ts.map +1 -1
  289. package/dist/utils/vcs-adapter.js +154 -0
  290. package/dist/utils/vcs-adapter.js.map +1 -1
  291. package/dist/watcher/file-watcher.d.ts.map +1 -1
  292. package/dist/watcher/file-watcher.js +48 -49
  293. package/dist/watcher/file-watcher.js.map +1 -1
  294. package/dist/watcher/gitignore-parser.d.ts.map +1 -1
  295. package/dist/watcher/gitignore-parser.js +2 -1
  296. package/dist/watcher/gitignore-parser.js.map +1 -1
  297. package/docs/BASEADAPTER_IMPLEMENTATION.md +399 -0
  298. package/docs/DATABASE_AUTH.md +445 -0
  299. package/docs/DATABASE_MIGRATION.md +247 -0
  300. package/docs/MULTI_PROJECT_ARCHITECTURE.md +497 -0
  301. package/package.json +12 -4
  302. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +0 -1
  303. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +0 -1
  304. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +0 -1
  305. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +0 -1
  306. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +0 -1
  307. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +0 -1
  308. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +0 -1
  309. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +0 -1
  310. package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +0 -1
  311. package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +0 -1
  312. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  313. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +0 -15
  314. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  315. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  316. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  317. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +0 -1
  318. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +0 -1
  319. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  320. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  321. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +0 -1
  322. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +0 -1
  323. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  324. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +0 -1
  325. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  326. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  327. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
  328. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +0 -34
  329. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +0 -1
  330. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
  331. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
  332. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +0 -1
  333. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +0 -1
  334. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +0 -1
  335. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js.map +0 -1
  336. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
  337. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
  338. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
  339. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
  340. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
  341. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
  342. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
  343. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
  344. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
  345. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
  346. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
  347. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
  348. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
  349. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
  350. /package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.d.ts +0 -0
  351. /package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.d.ts +0 -0
  352. /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.d.ts +0 -0
  353. /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.js +0 -0
  354. /package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.d.ts +0 -0
  355. /package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.d.ts +0 -0
  356. /package/dist/{migrations → config}/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -0
  357. /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts +0 -0
  358. /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.js +0 -0
  359. /package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.d.ts +0 -0
  360. /package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -0
  361. /package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.d.ts +0 -0
  362. /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts +0 -0
  363. /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.js +0 -0
  364. /package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -0
  365. /package/dist/{migrations → config}/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +0 -0
  366. /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -0
  367. /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +0 -0
  368. /package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.d.ts +0 -0
  369. /package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.d.ts +0 -0
  370. /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -0
  371. /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +0 -0
  372. /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -0
  373. /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +0 -0
  374. /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -0
  375. /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +0 -0
  376. /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -0
  377. /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +0 -0
  378. /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -0
  379. /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -0
  380. /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -0
  381. /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +0 -0
  382. /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -0
  383. /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +0 -0
@@ -0,0 +1,406 @@
1
+ /**
2
+ * @fileoverview Direct authentication provider for sqlew's multi-RDBMS system.
3
+ *
4
+ * This module implements direct database connections without intermediate tunneling
5
+ * or proxy mechanisms. It provides the simplest authentication method, suitable for:
6
+ * - Local database instances
7
+ * - Docker containers on the same network
8
+ * - On-premise servers with direct network access
9
+ * - Cloud databases with public endpoints
10
+ *
11
+ * **Use Cases:**
12
+ * - Development environments with local PostgreSQL/MySQL instances
13
+ * - Docker Compose services with service-to-service connections
14
+ * - On-premise data centers with internal network access
15
+ * - Cloud RDS/Cloud SQL instances with allowlisted IP addresses
16
+ *
17
+ * **Security Considerations:**
18
+ * - Supports SSL/TLS encryption for secure connections
19
+ * - Password is optional to support future IAM authentication
20
+ * - No intermediate resources to manage (unlike SSH tunnels)
21
+ * - Direct exposure to database port (ensure proper firewall rules)
22
+ *
23
+ * @module adapters/auth/direct-auth-provider
24
+ * @since v3.7.0
25
+ */
26
+ import { BaseAuthProvider } from './base-auth-provider.js';
27
+ /**
28
+ * Direct database authentication provider.
29
+ *
30
+ * Provides straightforward database connections without tunneling, proxy servers,
31
+ * or token generation. The provider validates configuration and returns connection
32
+ * parameters directly from the config object.
33
+ *
34
+ * **Authentication Flow:**
35
+ * 1. `validate()` - Verify required configuration fields (host, port, database, user)
36
+ * 2. `authenticate()` - Return connection parameters directly (no external calls)
37
+ * 3. Database connection uses provided credentials
38
+ * 4. `cleanup()` - No-op (no resources to release)
39
+ *
40
+ * **Configuration Requirements:**
41
+ * - Database host address
42
+ * - Database port number
43
+ * - Database name
44
+ * - Database username
45
+ * - Database password (optional for future IAM support)
46
+ * - Optional SSL configuration for encrypted connections
47
+ *
48
+ * @class DirectAuthProvider
49
+ * @extends {BaseAuthProvider}
50
+ *
51
+ * @example
52
+ * // Local PostgreSQL connection
53
+ * const config: DatabaseConfig = {
54
+ * type: 'postgres',
55
+ * connection: {
56
+ * host: 'localhost',
57
+ * port: 5432,
58
+ * database: 'dev_db'
59
+ * },
60
+ * auth: {
61
+ * type: 'direct',
62
+ * user: 'postgres',
63
+ * password: 'postgres'
64
+ * }
65
+ * };
66
+ *
67
+ * const provider = new DirectAuthProvider(config);
68
+ * provider.validate();
69
+ * const connParams = await provider.authenticate();
70
+ * // connParams.host = 'localhost'
71
+ * // connParams.port = 5432
72
+ *
73
+ * @example
74
+ * // Docker MySQL connection with SSL
75
+ * const config: DatabaseConfig = {
76
+ * type: 'mysql',
77
+ * connection: {
78
+ * host: 'mysql-container',
79
+ * port: 3306,
80
+ * database: 'app_db'
81
+ * },
82
+ * auth: {
83
+ * type: 'direct',
84
+ * user: 'root',
85
+ * password: 'root_password',
86
+ * ssl: {
87
+ * ca: '/path/to/ca.pem',
88
+ * rejectUnauthorized: true
89
+ * }
90
+ * }
91
+ * };
92
+ *
93
+ * @example
94
+ * // Cloud RDS connection with SSL (production)
95
+ * const config: DatabaseConfig = {
96
+ * type: 'postgres',
97
+ * connection: {
98
+ * host: 'mydb.abc123.us-east-1.rds.amazonaws.com',
99
+ * port: 5432,
100
+ * database: 'production'
101
+ * },
102
+ * auth: {
103
+ * type: 'direct',
104
+ * user: 'admin',
105
+ * password: 'secure_password_123',
106
+ * ssl: {
107
+ * ca: '/etc/ssl/rds-ca-bundle.pem',
108
+ * rejectUnauthorized: true
109
+ * }
110
+ * }
111
+ * };
112
+ *
113
+ * @example
114
+ * // Complete usage with cleanup (cleanup is no-op for direct connections)
115
+ * const provider = new DirectAuthProvider(config);
116
+ * try {
117
+ * provider.validate();
118
+ * const params = await provider.authenticate();
119
+ * const db = await createDatabaseConnection(params);
120
+ * await db.query('SELECT 1');
121
+ * await db.close();
122
+ * } finally {
123
+ * await provider.cleanup(); // No-op, but good practice
124
+ * }
125
+ *
126
+ * @example
127
+ * // Future IAM authentication (password optional)
128
+ * const config: DatabaseConfig = {
129
+ * type: 'postgres',
130
+ * connection: {
131
+ * host: 'mydb.region.rds.amazonaws.com',
132
+ * port: 5432,
133
+ * database: 'production'
134
+ * },
135
+ * auth: {
136
+ * type: 'direct',
137
+ * user: 'iam_user'
138
+ * // password will be generated by IAM provider
139
+ * }
140
+ * };
141
+ */
142
+ export class DirectAuthProvider extends BaseAuthProvider {
143
+ /**
144
+ * Returns the authentication method name for logging and diagnostics.
145
+ *
146
+ * @returns {string} 'Direct Connection'
147
+ *
148
+ * @example
149
+ * const provider = new DirectAuthProvider(config);
150
+ * console.log(provider.getAuthMethod()); // 'Direct Connection'
151
+ */
152
+ getAuthMethod() {
153
+ return 'Direct Connection';
154
+ }
155
+ /**
156
+ * Validates direct connection configuration before authentication.
157
+ *
158
+ * **Validation Checks:**
159
+ * - Connection config object exists
160
+ * - Database host is specified
161
+ * - Database port is specified
162
+ * - Database name is specified
163
+ * - Database user is specified
164
+ * - Password is optional (for future IAM authentication support)
165
+ *
166
+ * This method should be called immediately after provider instantiation
167
+ * to fail fast on configuration errors before attempting database connections.
168
+ *
169
+ * @throws {Error} 'Connection configuration is required for DirectAuthProvider'
170
+ * @throws {Error} 'Database host, port, and database name are required'
171
+ * @throws {Error} 'Database user is required for direct authentication'
172
+ *
173
+ * @example
174
+ * const provider = new DirectAuthProvider(config);
175
+ * try {
176
+ * provider.validate();
177
+ * // Configuration is valid, proceed with authentication
178
+ * } catch (error) {
179
+ * console.error('Invalid configuration:', error.message);
180
+ * // Fix configuration before retrying
181
+ * }
182
+ *
183
+ * @example
184
+ * // Missing connection config
185
+ * const invalidConfig = { type: 'postgres', auth: { type: 'direct' } };
186
+ * const provider = new DirectAuthProvider(invalidConfig);
187
+ * provider.validate(); // Throws: 'Connection configuration is required for DirectAuthProvider'
188
+ *
189
+ * @example
190
+ * // Missing database user
191
+ * const config = {
192
+ * connection: {
193
+ * host: 'localhost',
194
+ * port: 5432,
195
+ * database: 'mydb'
196
+ * },
197
+ * auth: {
198
+ * type: 'direct'
199
+ * // Missing user field
200
+ * }
201
+ * };
202
+ * const provider = new DirectAuthProvider(config);
203
+ * provider.validate(); // Throws: 'Database user is required for direct authentication'
204
+ *
205
+ * @example
206
+ * // Valid config (password optional)
207
+ * const config = {
208
+ * connection: {
209
+ * host: 'localhost',
210
+ * port: 5432,
211
+ * database: 'mydb'
212
+ * },
213
+ * auth: {
214
+ * type: 'direct',
215
+ * user: 'postgres'
216
+ * // password is optional (for future IAM support)
217
+ * }
218
+ * };
219
+ * const provider = new DirectAuthProvider(config);
220
+ * provider.validate(); // Success - password is optional
221
+ */
222
+ validate() {
223
+ // Check connection config exists
224
+ if (!this.config.connection) {
225
+ throw new Error('Connection configuration is required for DirectAuthProvider');
226
+ }
227
+ const conn = this.config.connection;
228
+ // Check required connection parameters
229
+ if (!conn.host || !conn.port || !conn.database) {
230
+ throw new Error('Database host, port, and database name are required');
231
+ }
232
+ // Check authentication config exists
233
+ if (!this.config.auth) {
234
+ throw new Error('Authentication configuration is required for DirectAuthProvider');
235
+ }
236
+ // Check required auth parameters
237
+ // Note: password is optional to support future IAM authentication
238
+ if (!this.config.auth.user) {
239
+ throw new Error('Database user is required for direct authentication');
240
+ }
241
+ }
242
+ /**
243
+ * Authenticates and returns connection parameters for direct database connection.
244
+ *
245
+ * This method:
246
+ * 1. Validates configuration (defensive check)
247
+ * 2. Extracts connection and authentication parameters
248
+ * 3. Constructs ConnectionParams object
249
+ * 4. Returns parameters immediately (no async operations)
250
+ *
251
+ * **Connection Parameters:**
252
+ * - `host`: Database host address from config
253
+ * - `port`: Database port number from config
254
+ * - `database`: Database name from config
255
+ * - `user`: Database username from config
256
+ * - `password`: Database password from config (optional)
257
+ * - `ssl`: SSL configuration from config (optional)
258
+ *
259
+ * **Important Notes:**
260
+ * - No external resources are created (unlike SSH tunnels)
261
+ * - Returns synchronously despite Promise signature (for consistency with base class)
262
+ * - Password is optional to support future IAM authentication methods
263
+ * - SSL configuration is passed through unchanged for database client to handle
264
+ *
265
+ * @returns {Promise<ConnectionParams>} Connection parameters for database client
266
+ *
267
+ * @throws {Error} If configuration is invalid (call `validate()` first)
268
+ *
269
+ * @example
270
+ * // Basic authentication flow
271
+ * const provider = new DirectAuthProvider(config);
272
+ * provider.validate();
273
+ * const params = await provider.authenticate();
274
+ * console.log(params);
275
+ * // {
276
+ * // host: 'localhost',
277
+ * // port: 5432,
278
+ * // database: 'dev_db',
279
+ * // user: 'postgres',
280
+ * // password: 'postgres'
281
+ * // }
282
+ *
283
+ * @example
284
+ * // With SSL configuration preserved
285
+ * const config = {
286
+ * connection: { host: 'db.example.com', port: 5432, database: 'app' },
287
+ * auth: {
288
+ * type: 'direct',
289
+ * user: 'admin',
290
+ * password: 'secret',
291
+ * ssl: {
292
+ * ca: '/path/to/ca.pem',
293
+ * rejectUnauthorized: true
294
+ * }
295
+ * }
296
+ * };
297
+ * const provider = new DirectAuthProvider(config);
298
+ * const params = await provider.authenticate();
299
+ * // SSL config passed through to database client
300
+ * // params.ssl.ca = '/path/to/ca.pem'
301
+ *
302
+ * @example
303
+ * // Without password (future IAM authentication)
304
+ * const config = {
305
+ * connection: { host: 'db.example.com', port: 5432, database: 'app' },
306
+ * auth: {
307
+ * type: 'direct',
308
+ * user: 'iam_user'
309
+ * // password will be generated by IAM provider
310
+ * }
311
+ * };
312
+ * const provider = new DirectAuthProvider(config);
313
+ * const params = await provider.authenticate();
314
+ * // params.password will be undefined
315
+ *
316
+ * @example
317
+ * // Error handling (validation errors)
318
+ * const provider = new DirectAuthProvider(invalidConfig);
319
+ * try {
320
+ * const params = await provider.authenticate();
321
+ * } catch (error) {
322
+ * if (error.message.includes('host')) {
323
+ * console.error('Missing database host');
324
+ * } else if (error.message.includes('user')) {
325
+ * console.error('Missing database user');
326
+ * }
327
+ * }
328
+ */
329
+ async authenticate() {
330
+ // Validate before proceeding (defensive check)
331
+ this.validate();
332
+ // Build connection parameters directly from config
333
+ // Non-null assertions safe after validate()
334
+ const params = {
335
+ host: this.config.connection.host,
336
+ port: this.config.connection.port,
337
+ database: this.config.connection.database,
338
+ user: this.config.auth.user,
339
+ password: this.config.auth.password,
340
+ };
341
+ // Preserve SSL configuration if present
342
+ if (this.config.auth.ssl) {
343
+ params.ssl = {
344
+ ca: this.config.auth.ssl.ca,
345
+ cert: this.config.auth.ssl.cert,
346
+ key: this.config.auth.ssl.key,
347
+ rejectUnauthorized: this.config.auth.ssl.rejectUnauthorized,
348
+ };
349
+ }
350
+ return params;
351
+ }
352
+ /**
353
+ * Cleanup method for direct connections (no-op).
354
+ *
355
+ * Since direct connections do not create any intermediate resources
356
+ * (no SSH tunnels, proxy servers, or temporary tokens), this method
357
+ * has nothing to clean up. It is implemented as a no-op for consistency
358
+ * with the BaseAuthProvider interface.
359
+ *
360
+ * **Cleanup Behavior:**
361
+ * - No-op (does nothing)
362
+ * - Idempotent (safe to call multiple times)
363
+ * - Returns immediately
364
+ * - Never throws errors
365
+ *
366
+ * This method exists to maintain API consistency with other auth providers
367
+ * that DO require cleanup (e.g., SSHAuthProvider closes tunnels).
368
+ *
369
+ * @returns {Promise<void>}
370
+ *
371
+ * @example
372
+ * // Basic cleanup (no-op)
373
+ * const provider = new DirectAuthProvider(config);
374
+ * const params = await provider.authenticate();
375
+ * // ... use database connection ...
376
+ * await provider.cleanup(); // Does nothing, but good practice
377
+ *
378
+ * @example
379
+ * // Cleanup in finally block (recommended pattern)
380
+ * const provider = new DirectAuthProvider(config);
381
+ * try {
382
+ * const params = await provider.authenticate();
383
+ * const db = await connect(params);
384
+ * await db.query('SELECT 1');
385
+ * } finally {
386
+ * // Always cleanup, even though it's a no-op for direct connections
387
+ * // This ensures consistency when switching between auth providers
388
+ * await provider.cleanup();
389
+ * }
390
+ *
391
+ * @example
392
+ * // Multiple cleanup calls (idempotent, no-op)
393
+ * await provider.cleanup(); // No-op
394
+ * await provider.cleanup(); // Still no-op
395
+ * await provider.cleanup(); // Always no-op
396
+ */
397
+ async cleanup() {
398
+ // No-op: direct connections have no resources to clean up
399
+ // Unlike SSH tunnels, there are no:
400
+ // - Active SSH connections to close
401
+ // - Local ports to release
402
+ // - Temporary tokens to invalidate
403
+ // - Proxy servers to terminate
404
+ }
405
+ }
406
+ //# sourceMappingURL=direct-auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-auth-provider.js","sourceRoot":"","sources":["../../../src/adapters/auth/direct-auth-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,gBAAgB,EAAyB,MAAM,yBAAyB,CAAC;AAGlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkHG;AACH,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD;;;;;;;;OAQG;IACH,aAAa;QACX,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,QAAQ;QACN,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAEpC,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QAED,iCAAiC;QACjC,kEAAkE;QAClE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsFG;IACH,KAAK,CAAC,YAAY;QAChB,+CAA+C;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,mDAAmD;QACnD,4CAA4C;QAC5C,MAAM,MAAM,GAAqB;YAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,IAAI;YAClC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,IAAI;YAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,QAAQ;YAC1C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,IAAK;YAC7B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,QAAQ;SACrC,CAAC;QAEF,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,GAAG;gBACX,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,IAAI;gBAChC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,GAAG;gBAC9B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,kBAAkB;aAC7D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,OAAO;QACX,0DAA0D;QAC1D,oCAAoC;QACpC,oCAAoC;QACpC,2BAA2B;QAC3B,mCAAmC;QACnC,+BAA+B;IACjC,CAAC;CACF"}