sqlew 3.5.3 → 3.6.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 (227) hide show
  1. package/CHANGELOG.md +247 -1772
  2. package/README.md +70 -304
  3. package/assets/config.example.toml +97 -0
  4. package/dist/adapters/index.d.ts +11 -0
  5. package/dist/adapters/index.d.ts.map +1 -0
  6. package/dist/adapters/index.js +21 -0
  7. package/dist/adapters/index.js.map +1 -0
  8. package/dist/adapters/mysql-adapter.d.ts +31 -0
  9. package/dist/adapters/mysql-adapter.d.ts.map +1 -0
  10. package/dist/adapters/mysql-adapter.js +63 -0
  11. package/dist/adapters/mysql-adapter.js.map +1 -0
  12. package/dist/adapters/postgresql-adapter.d.ts +31 -0
  13. package/dist/adapters/postgresql-adapter.d.ts.map +1 -0
  14. package/dist/adapters/postgresql-adapter.js +63 -0
  15. package/dist/adapters/postgresql-adapter.js.map +1 -0
  16. package/dist/adapters/sqlite-adapter.d.ts +37 -0
  17. package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
  18. package/dist/adapters/sqlite-adapter.js +129 -0
  19. package/dist/adapters/sqlite-adapter.js.map +1 -0
  20. package/dist/adapters/types.d.ts +33 -0
  21. package/dist/adapters/types.d.ts.map +1 -0
  22. package/dist/adapters/types.js +2 -0
  23. package/dist/adapters/types.js.map +1 -0
  24. package/dist/cli.js +55 -54
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config/example-generator.d.ts +11 -0
  27. package/dist/config/example-generator.d.ts.map +1 -0
  28. package/dist/config/example-generator.js +48 -0
  29. package/dist/config/example-generator.js.map +1 -0
  30. package/dist/config/loader.d.ts.map +1 -1
  31. package/dist/config/loader.js +4 -0
  32. package/dist/config/loader.js.map +1 -1
  33. package/dist/config/types.d.ts +9 -0
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/config/types.js.map +1 -1
  36. package/dist/database.d.ts +44 -122
  37. package/dist/database.d.ts.map +1 -1
  38. package/dist/database.js +145 -416
  39. package/dist/database.js.map +1 -1
  40. package/dist/index.js +215 -185
  41. package/dist/index.js.map +1 -1
  42. package/dist/knexfile.d.ts +6 -0
  43. package/dist/knexfile.d.ts.map +1 -0
  44. package/dist/knexfile.js +85 -0
  45. package/dist/knexfile.js.map +1 -0
  46. package/dist/migrations/add-help-system-tables.d.ts +35 -0
  47. package/dist/migrations/add-help-system-tables.d.ts.map +1 -0
  48. package/dist/migrations/add-help-system-tables.js +206 -0
  49. package/dist/migrations/add-help-system-tables.js.map +1 -0
  50. package/dist/migrations/add-token-tracking.d.ts +28 -0
  51. package/dist/migrations/add-token-tracking.d.ts.map +1 -0
  52. package/dist/migrations/add-token-tracking.js +108 -0
  53. package/dist/migrations/add-token-tracking.js.map +1 -0
  54. package/dist/migrations/index.d.ts +25 -12
  55. package/dist/migrations/index.d.ts.map +1 -1
  56. package/dist/migrations/index.js +147 -20
  57. package/dist/migrations/index.js.map +1 -1
  58. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts +4 -0
  59. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +1 -0
  60. package/dist/migrations/knex/20251025020452_create_master_tables.js +65 -0
  61. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +1 -0
  62. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts +4 -0
  63. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +1 -0
  64. package/dist/migrations/knex/20251025021152_create_transaction_tables.js +235 -0
  65. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +1 -0
  66. package/dist/migrations/knex/20251025021351_create_indexes.d.ts +4 -0
  67. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +1 -0
  68. package/dist/migrations/knex/20251025021351_create_indexes.js +62 -0
  69. package/dist/migrations/knex/20251025021351_create_indexes.js.map +1 -0
  70. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts +4 -0
  71. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +1 -0
  72. package/dist/migrations/knex/20251025021416_seed_master_data.js +58 -0
  73. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +1 -0
  74. package/dist/migrations/knex/20251025070349_create_views.d.ts +4 -0
  75. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +1 -0
  76. package/dist/migrations/knex/20251025070349_create_views.js +143 -0
  77. package/dist/migrations/knex/20251025070349_create_views.js.map +1 -0
  78. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts +4 -0
  79. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  80. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js +15 -0
  81. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  82. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts +8 -0
  83. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  84. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js +12 -0
  85. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  86. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts +19 -0
  87. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +1 -0
  88. package/dist/migrations/knex/20251025090000_create_help_system_tables.js +115 -0
  89. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +1 -0
  90. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts +13 -0
  91. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  92. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js +377 -0
  93. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  94. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts +15 -0
  95. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +1 -0
  96. package/dist/migrations/knex/20251025100000_seed_help_metadata.js +253 -0
  97. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +1 -0
  98. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts +16 -0
  99. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  100. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js +276 -0
  101. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +1 -0
  102. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts +8 -0
  103. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  104. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js +64 -0
  105. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  106. package/dist/migrations/seed-help-data.d.ts +48 -0
  107. package/dist/migrations/seed-help-data.d.ts.map +1 -0
  108. package/dist/migrations/seed-help-data.js +1466 -0
  109. package/dist/migrations/seed-help-data.js.map +1 -0
  110. package/dist/migrations/seed-tool-metadata.d.ts +24 -0
  111. package/dist/migrations/seed-tool-metadata.d.ts.map +1 -0
  112. package/dist/migrations/seed-tool-metadata.js +392 -0
  113. package/dist/migrations/seed-tool-metadata.js.map +1 -0
  114. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +46 -0
  115. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +1 -0
  116. package/dist/migrations/v3.6.0-help-system-refactor.js +223 -0
  117. package/dist/migrations/v3.6.0-help-system-refactor.js.map +1 -0
  118. package/dist/schema.d.ts.map +1 -1
  119. package/dist/schema.js +2 -0
  120. package/dist/schema.js.map +1 -1
  121. package/dist/tests/git-aware-completion.test.js +89 -70
  122. package/dist/tests/git-aware-completion.test.js.map +1 -1
  123. package/dist/tests/help-system.test.d.ts +23 -0
  124. package/dist/tests/help-system.test.d.ts.map +1 -0
  125. package/dist/tests/help-system.test.js +374 -0
  126. package/dist/tests/help-system.test.js.map +1 -0
  127. package/dist/tests/tasks.auto-pruning-decision-link.test.js +92 -78
  128. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
  129. package/dist/tests/tasks.auto-pruning-partial.test.js +106 -95
  130. package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -1
  131. package/dist/tests/tasks.auto-pruning-persistence.test.js +115 -97
  132. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -1
  133. package/dist/tests/tasks.auto-pruning-safety.test.js +124 -103
  134. package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -1
  135. package/dist/tests/tasks.dependencies.test.js +338 -307
  136. package/dist/tests/tasks.dependencies.test.js.map +1 -1
  137. package/dist/tests/tasks.link-file-backward-compat.test.js +116 -104
  138. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
  139. package/dist/tests/tasks.watch-files-action.test.js +122 -101
  140. package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
  141. package/dist/tests/tasks.watch-files-parameter.test.js +105 -94
  142. package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -1
  143. package/dist/tests/two-step-git-completion.test.js +176 -133
  144. package/dist/tests/two-step-git-completion.test.js.map +1 -1
  145. package/dist/tests/vcs-staging.test.js +1 -1
  146. package/dist/tests/vcs-staging.test.js.map +1 -1
  147. package/dist/tools/config.d.ts +9 -6
  148. package/dist/tools/config.d.ts.map +1 -1
  149. package/dist/tools/config.js +16 -14
  150. package/dist/tools/config.js.map +1 -1
  151. package/dist/tools/constraints.d.ts +10 -7
  152. package/dist/tools/constraints.d.ts.map +1 -1
  153. package/dist/tools/constraints.js +66 -48
  154. package/dist/tools/constraints.js.map +1 -1
  155. package/dist/tools/context.d.ts +36 -33
  156. package/dist/tools/context.d.ts.map +1 -1
  157. package/dist/tools/context.js +374 -330
  158. package/dist/tools/context.js.map +1 -1
  159. package/dist/tools/files.d.ts +12 -9
  160. package/dist/tools/files.d.ts.map +1 -1
  161. package/dist/tools/files.js +173 -95
  162. package/dist/tools/files.js.map +1 -1
  163. package/dist/tools/help-queries.d.ts +130 -0
  164. package/dist/tools/help-queries.d.ts.map +1 -0
  165. package/dist/tools/help-queries.js +393 -0
  166. package/dist/tools/help-queries.js.map +1 -0
  167. package/dist/tools/messaging.d.ts +14 -11
  168. package/dist/tools/messaging.d.ts.map +1 -1
  169. package/dist/tools/messaging.js +217 -133
  170. package/dist/tools/messaging.js.map +1 -1
  171. package/dist/tools/tasks.d.ts +18 -16
  172. package/dist/tools/tasks.d.ts.map +1 -1
  173. package/dist/tools/tasks.js +513 -439
  174. package/dist/tools/tasks.js.map +1 -1
  175. package/dist/tools/utils.d.ts +14 -11
  176. package/dist/tools/utils.d.ts.map +1 -1
  177. package/dist/tools/utils.js +86 -121
  178. package/dist/tools/utils.js.map +1 -1
  179. package/dist/utils/activity-logging.d.ts +114 -0
  180. package/dist/utils/activity-logging.d.ts.map +1 -0
  181. package/dist/utils/activity-logging.js +162 -0
  182. package/dist/utils/activity-logging.js.map +1 -0
  183. package/dist/utils/batch.d.ts +2 -2
  184. package/dist/utils/batch.d.ts.map +1 -1
  185. package/dist/utils/batch.js +8 -8
  186. package/dist/utils/batch.js.map +1 -1
  187. package/dist/utils/cleanup.d.ts +21 -13
  188. package/dist/utils/cleanup.d.ts.map +1 -1
  189. package/dist/utils/cleanup.js +31 -24
  190. package/dist/utils/cleanup.js.map +1 -1
  191. package/dist/utils/debug-logger.d.ts +44 -0
  192. package/dist/utils/debug-logger.d.ts.map +1 -0
  193. package/dist/utils/debug-logger.js +116 -0
  194. package/dist/utils/debug-logger.js.map +1 -0
  195. package/dist/utils/help-tracking.d.ts +55 -0
  196. package/dist/utils/help-tracking.d.ts.map +1 -0
  197. package/dist/utils/help-tracking.js +88 -0
  198. package/dist/utils/help-tracking.js.map +1 -0
  199. package/dist/utils/retention.d.ts +7 -7
  200. package/dist/utils/retention.d.ts.map +1 -1
  201. package/dist/utils/retention.js +12 -12
  202. package/dist/utils/retention.js.map +1 -1
  203. package/dist/utils/task-stale-detection.d.ts +15 -13
  204. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  205. package/dist/utils/task-stale-detection.js +100 -302
  206. package/dist/utils/task-stale-detection.js.map +1 -1
  207. package/dist/utils/token-estimation.d.ts +72 -0
  208. package/dist/utils/token-estimation.d.ts.map +1 -0
  209. package/dist/utils/token-estimation.js +71 -0
  210. package/dist/utils/token-estimation.js.map +1 -0
  211. package/dist/utils/token-logging.d.ts +48 -0
  212. package/dist/utils/token-logging.d.ts.map +1 -0
  213. package/dist/utils/token-logging.js +112 -0
  214. package/dist/utils/token-logging.js.map +1 -0
  215. package/dist/utils/view-queries.d.ts +34 -0
  216. package/dist/utils/view-queries.d.ts.map +1 -0
  217. package/dist/utils/view-queries.js +192 -0
  218. package/dist/utils/view-queries.js.map +1 -0
  219. package/dist/watcher/file-watcher.d.ts.map +1 -1
  220. package/dist/watcher/file-watcher.js +25 -11
  221. package/dist/watcher/file-watcher.js.map +1 -1
  222. package/docs/BEST_PRACTICES.md +56 -448
  223. package/docs/MIGRATION_v3.6.0.md +170 -0
  224. package/docs/SHARED_CONCEPTS.md +63 -208
  225. package/docs/TASK_OVERVIEW.md +2 -2
  226. package/docs/TOOL_SELECTION.md +41 -248
  227. package/package.json +16 -4
@@ -1,31 +1,34 @@
1
1
  /**
2
2
  * Configuration management tools for MCP Shared Context Server
3
3
  * Provides tools to get and update auto-deletion configuration
4
+ *
5
+ * CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
4
6
  */
7
+ import { DatabaseAdapter } from '../adapters/index.js';
5
8
  /**
6
9
  * Get current configuration settings
7
10
  *
8
- * @param db - Optional database instance (for testing)
11
+ * @param adapter - Optional database adapter (for testing)
9
12
  * @returns Current configuration values
10
13
  */
11
- export declare function getConfig(db?: import('../types.js').Database): {
14
+ export declare function getConfig(adapter?: DatabaseAdapter): Promise<{
12
15
  ignoreWeekend: boolean;
13
16
  messageRetentionHours: number;
14
17
  fileHistoryRetentionDays: number;
15
- };
18
+ }>;
16
19
  /**
17
20
  * Update configuration settings
18
21
  * Validates values before updating
19
22
  *
20
23
  * @param params - Configuration parameters to update
21
- * @param db - Optional database instance (for testing)
24
+ * @param adapter - Optional database adapter (for testing)
22
25
  * @returns Updated configuration
23
26
  */
24
27
  export declare function updateConfig(params: {
25
28
  ignoreWeekend?: boolean;
26
29
  messageRetentionHours?: number;
27
30
  fileHistoryRetentionDays?: number;
28
- }, db?: import('../types.js').Database): {
31
+ }, adapter?: DatabaseAdapter): Promise<{
29
32
  success: boolean;
30
33
  config: {
31
34
  ignoreWeekend: boolean;
@@ -33,7 +36,7 @@ export declare function updateConfig(params: {
33
36
  fileHistoryRetentionDays: number;
34
37
  };
35
38
  message: string;
36
- };
39
+ }>;
37
40
  /**
38
41
  * Get help documentation for config tool
39
42
  * @returns Help documentation object
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,GAAG;IAC9D,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAYA;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,EAAE,EAAE,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,GAAG;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,aAAa,EAAE,OAAO,CAAC;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB,CAqCA;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,GAAG,CAmBhC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,GAAG,CA4EnC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IAClE,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC,CAYD;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,aAAa,EAAE,OAAO,CAAC;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAqCD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,GAAG,CAmBhC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,GAAG,CA4EnC"}
@@ -1,20 +1,22 @@
1
1
  /**
2
2
  * Configuration management tools for MCP Shared Context Server
3
3
  * Provides tools to get and update auto-deletion configuration
4
+ *
5
+ * CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
4
6
  */
5
- import { getDatabase, setConfigValue, getConfigBool, getConfigInt } from '../database.js';
7
+ import { getAdapter, getConfigBool, getConfigInt, setConfigValue } from '../database.js';
6
8
  import { CONFIG_KEYS } from '../constants.js';
7
9
  /**
8
10
  * Get current configuration settings
9
11
  *
10
- * @param db - Optional database instance (for testing)
12
+ * @param adapter - Optional database adapter (for testing)
11
13
  * @returns Current configuration values
12
14
  */
13
- export function getConfig(db) {
14
- const actualDb = db ?? getDatabase();
15
- const ignoreWeekend = getConfigBool(actualDb, CONFIG_KEYS.AUTODELETE_IGNORE_WEEKEND, false);
16
- const messageRetentionHours = getConfigInt(actualDb, CONFIG_KEYS.AUTODELETE_MESSAGE_HOURS, 24);
17
- const fileHistoryRetentionDays = getConfigInt(actualDb, CONFIG_KEYS.AUTODELETE_FILE_HISTORY_DAYS, 7);
15
+ export async function getConfig(adapter) {
16
+ const actualAdapter = adapter ?? getAdapter();
17
+ const ignoreWeekend = await getConfigBool(actualAdapter, CONFIG_KEYS.AUTODELETE_IGNORE_WEEKEND, false);
18
+ const messageRetentionHours = await getConfigInt(actualAdapter, CONFIG_KEYS.AUTODELETE_MESSAGE_HOURS, 24);
19
+ const fileHistoryRetentionDays = await getConfigInt(actualAdapter, CONFIG_KEYS.AUTODELETE_FILE_HISTORY_DAYS, 7);
18
20
  return {
19
21
  ignoreWeekend,
20
22
  messageRetentionHours,
@@ -26,11 +28,11 @@ export function getConfig(db) {
26
28
  * Validates values before updating
27
29
  *
28
30
  * @param params - Configuration parameters to update
29
- * @param db - Optional database instance (for testing)
31
+ * @param adapter - Optional database adapter (for testing)
30
32
  * @returns Updated configuration
31
33
  */
32
- export function updateConfig(params, db) {
33
- const actualDb = db ?? getDatabase();
34
+ export async function updateConfig(params, adapter) {
35
+ const actualAdapter = adapter ?? getAdapter();
34
36
  // Validate values
35
37
  if (params.messageRetentionHours !== undefined) {
36
38
  if (params.messageRetentionHours < 1 || params.messageRetentionHours > 168) {
@@ -44,16 +46,16 @@ export function updateConfig(params, db) {
44
46
  }
45
47
  // Update values
46
48
  if (params.ignoreWeekend !== undefined) {
47
- setConfigValue(actualDb, CONFIG_KEYS.AUTODELETE_IGNORE_WEEKEND, params.ignoreWeekend ? '1' : '0');
49
+ await setConfigValue(actualAdapter, CONFIG_KEYS.AUTODELETE_IGNORE_WEEKEND, params.ignoreWeekend ? '1' : '0');
48
50
  }
49
51
  if (params.messageRetentionHours !== undefined) {
50
- setConfigValue(actualDb, CONFIG_KEYS.AUTODELETE_MESSAGE_HOURS, String(params.messageRetentionHours));
52
+ await setConfigValue(actualAdapter, CONFIG_KEYS.AUTODELETE_MESSAGE_HOURS, String(params.messageRetentionHours));
51
53
  }
52
54
  if (params.fileHistoryRetentionDays !== undefined) {
53
- setConfigValue(actualDb, CONFIG_KEYS.AUTODELETE_FILE_HISTORY_DAYS, String(params.fileHistoryRetentionDays));
55
+ await setConfigValue(actualAdapter, CONFIG_KEYS.AUTODELETE_FILE_HISTORY_DAYS, String(params.fileHistoryRetentionDays));
54
56
  }
55
57
  // Get updated config
56
- const updatedConfig = getConfig(actualDb);
58
+ const updatedConfig = await getConfig(actualAdapter);
57
59
  return {
58
60
  success: true,
59
61
  config: updatedConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * Constraint management tools for MCP Shared Context Server
3
3
  * Handles constraint tracking with priority, layer assignment, and tags
4
+ *
5
+ * CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
4
6
  */
5
- import type { AddConstraintParams, AddConstraintResponse, GetConstraintsParams, GetConstraintsResponse, DeactivateConstraintParams, DeactivateConstraintResponse, Database } from '../types.js';
7
+ import { DatabaseAdapter } from '../adapters/index.js';
8
+ import type { AddConstraintParams, AddConstraintResponse, GetConstraintsParams, GetConstraintsResponse, DeactivateConstraintParams, DeactivateConstraintResponse } from '../types.js';
6
9
  /**
7
10
  * Get or create constraint category ID
8
11
  * Uses INSERT OR IGNORE for idempotent operation
@@ -11,28 +14,28 @@ import type { AddConstraintParams, AddConstraintResponse, GetConstraintsParams,
11
14
  * Add a constraint with priority, layer, and tags
12
15
  *
13
16
  * @param params - Constraint parameters
14
- * @param db - Optional database instance (for testing)
17
+ * @param adapter - Optional database adapter (for testing)
15
18
  * @returns Constraint ID and timestamp
16
19
  */
17
- export declare function addConstraint(params: AddConstraintParams, db?: Database): AddConstraintResponse;
20
+ export declare function addConstraint(params: AddConstraintParams, adapter?: DatabaseAdapter): Promise<AddConstraintResponse>;
18
21
  /**
19
22
  * Retrieve t_constraints with advanced filtering
20
23
  * Uses v_tagged_constraints view for token efficiency
21
24
  *
22
25
  * @param params - Filter parameters
23
- * @param db - Optional database instance (for testing)
26
+ * @param adapter - Optional database adapter (for testing)
24
27
  * @returns Array of t_constraints matching filters
25
28
  */
26
- export declare function getConstraints(params: GetConstraintsParams, db?: Database): GetConstraintsResponse;
29
+ export declare function getConstraints(params: GetConstraintsParams, adapter?: DatabaseAdapter): Promise<GetConstraintsResponse>;
27
30
  /**
28
31
  * Deactivate a constraint (soft delete)
29
32
  * Idempotent - deactivating already-inactive constraint is safe
30
33
  *
31
34
  * @param params - Constraint ID to deactivate
32
- * @param db - Optional database instance (for testing)
35
+ * @param adapter - Optional database adapter (for testing)
33
36
  * @returns Success status
34
37
  */
35
- export declare function deactivateConstraint(params: DeactivateConstraintParams, db?: Database): DeactivateConstraintResponse;
38
+ export declare function deactivateConstraint(params: DeactivateConstraintParams, adapter?: DatabaseAdapter): Promise<DeactivateConstraintResponse>;
36
39
  /**
37
40
  * Get help documentation for constraint tool
38
41
  * @returns Help documentation object
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAG5B,QAAQ,EACT,MAAM,aAAa,CAAC;AAErB;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,qBAAqB,CAoE/F;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,sBAAsB,CAmElG;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,4BAA4B,CA0BpH;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,GAAG,CAsBpC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAuIvC"}
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAkBvD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAG7B,MAAM,aAAa,CAAC;AAErB;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAwFhC;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAuDjC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAgCvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,GAAG,CAsBpC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAuIvC"}
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * Constraint management tools for MCP Shared Context Server
3
3
  * Handles constraint tracking with priority, layer assignment, and tags
4
+ *
5
+ * CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
4
6
  */
5
- import { getDatabase, getOrCreateAgent, getLayerId, transaction, getOrCreateTag, getOrCreateCategoryId } from '../database.js';
7
+ import { getAdapter, getOrCreateAgent, getLayerId, getOrCreateTag, getOrCreateCategoryId } from '../database.js';
6
8
  import { STRING_TO_PRIORITY, DEFAULT_PRIORITY, SQLITE_TRUE, SQLITE_FALSE } from '../constants.js';
7
9
  import { validateCategory, validatePriority } from '../utils/validators.js';
10
+ import { logConstraintAdd } from '../utils/activity-logging.js';
8
11
  /**
9
12
  * Get or create constraint category ID
10
13
  * Uses INSERT OR IGNORE for idempotent operation
@@ -13,11 +16,11 @@ import { validateCategory, validatePriority } from '../utils/validators.js';
13
16
  * Add a constraint with priority, layer, and tags
14
17
  *
15
18
  * @param params - Constraint parameters
16
- * @param db - Optional database instance (for testing)
19
+ * @param adapter - Optional database adapter (for testing)
17
20
  * @returns Constraint ID and timestamp
18
21
  */
19
- export function addConstraint(params, db) {
20
- const actualDb = db ?? getDatabase();
22
+ export async function addConstraint(params, adapter) {
23
+ const actualAdapter = adapter ?? getAdapter();
21
24
  try {
22
25
  // Validate required parameters
23
26
  if (!params.category || !params.constraint_text) {
@@ -36,33 +39,52 @@ export function addConstraint(params, db) {
36
39
  if (!validLayers.includes(params.layer)) {
37
40
  throw new Error(`Invalid layer. Must be one of: ${validLayers.join(', ')}`);
38
41
  }
39
- layerId = getLayerId(actualDb, params.layer);
42
+ layerId = await getLayerId(actualAdapter, params.layer);
40
43
  if (!layerId) {
41
44
  throw new Error(`Layer not found: ${params.layer}`);
42
45
  }
43
46
  }
44
47
  // Use transaction for multi-table insert
45
- const result = transaction(actualDb, () => {
48
+ const result = await actualAdapter.transaction(async (trx) => {
49
+ const knex = actualAdapter.getKnex();
46
50
  // Get or create category
47
- const categoryId = getOrCreateCategoryId(actualDb, params.category);
51
+ const categoryId = await getOrCreateCategoryId(actualAdapter, params.category, trx);
48
52
  // Get or create created_by agent
49
53
  const createdBy = params.created_by || 'system';
50
- const agentId = getOrCreateAgent(actualDb, createdBy);
54
+ const agentId = await getOrCreateAgent(actualAdapter, createdBy, trx);
55
+ // Calculate timestamp
56
+ const ts = Math.floor(Date.now() / 1000);
51
57
  // Insert constraint
52
- const insertResult = actualDb.prepare(`
53
- INSERT INTO t_constraints (category_id, layer_id, constraint_text, priority, active, created_by, ts)
54
- VALUES (?, ?, ?, ?, ?, ?, unixepoch())
55
- `).run(categoryId, layerId, params.constraint_text, priority, SQLITE_TRUE, agentId);
56
- const constraintId = insertResult.lastInsertRowid;
58
+ const [constraintId] = await trx('t_constraints').insert({
59
+ category_id: categoryId,
60
+ layer_id: layerId,
61
+ constraint_text: params.constraint_text,
62
+ priority: priority,
63
+ active: SQLITE_TRUE,
64
+ created_by: agentId,
65
+ ts: ts
66
+ });
57
67
  // Insert m_tags if provided
58
68
  if (params.tags && params.tags.length > 0) {
59
- const tagStmt = actualDb.prepare('INSERT INTO t_constraint_tags (constraint_id, tag_id) VALUES (?, ?)');
60
69
  for (const tagName of params.tags) {
61
- const tagId = getOrCreateTag(actualDb, tagName);
62
- tagStmt.run(constraintId, tagId);
70
+ const tagId = await getOrCreateTag(actualAdapter, tagName, trx);
71
+ await trx('t_constraint_tags').insert({
72
+ constraint_id: Number(constraintId),
73
+ tag_id: tagId
74
+ });
63
75
  }
64
76
  }
65
- return { constraintId };
77
+ // Activity logging (replaces trigger)
78
+ await logConstraintAdd(knex, {
79
+ constraint_id: Number(constraintId),
80
+ category: params.category,
81
+ constraint_text: params.constraint_text,
82
+ priority: priorityStr,
83
+ layer: params.layer || null,
84
+ created_by: createdBy,
85
+ agent_id: agentId
86
+ });
87
+ return { constraintId: Number(constraintId) };
66
88
  });
67
89
  return {
68
90
  success: true,
@@ -79,52 +101,42 @@ export function addConstraint(params, db) {
79
101
  * Uses v_tagged_constraints view for token efficiency
80
102
  *
81
103
  * @param params - Filter parameters
82
- * @param db - Optional database instance (for testing)
104
+ * @param adapter - Optional database adapter (for testing)
83
105
  * @returns Array of t_constraints matching filters
84
106
  */
85
- export function getConstraints(params, db) {
86
- const actualDb = db ?? getDatabase();
107
+ export async function getConstraints(params, adapter) {
108
+ const actualAdapter = adapter ?? getAdapter();
109
+ const knex = actualAdapter.getKnex();
87
110
  try {
88
- // Build query conditions
89
- const conditions = [];
90
- const values = [];
91
- // Use v_tagged_constraints view (already filters active=1)
92
- let sql = 'SELECT * FROM v_tagged_constraints WHERE 1=1';
111
+ // Build query using v_tagged_constraints view (already filters active=1)
112
+ let query = knex('v_tagged_constraints');
93
113
  // Filter by category
94
114
  if (params.category) {
95
115
  validateCategory(params.category);
96
- conditions.push('category = ?');
97
- values.push(params.category);
116
+ query = query.where('category', params.category);
98
117
  }
99
118
  // Filter by layer
100
119
  if (params.layer) {
101
- conditions.push('layer = ?');
102
- values.push(params.layer);
120
+ query = query.where('layer', params.layer);
103
121
  }
104
122
  // Filter by priority
105
123
  if (params.priority) {
106
- conditions.push('priority = ?');
107
- values.push(params.priority);
124
+ query = query.where('priority', params.priority);
108
125
  }
109
126
  // Filter by m_tags (OR logic - match ANY tag)
110
127
  if (params.tags && params.tags.length > 0) {
111
- const tagConditions = params.tags.map(() => 'tags LIKE ?').join(' OR ');
112
- conditions.push(`(${tagConditions})`);
113
- for (const tag of params.tags) {
114
- values.push(`%${tag}%`);
115
- }
116
- }
117
- // Add all conditions to query
118
- if (conditions.length > 0) {
119
- sql += ' AND ' + conditions.join(' AND ');
128
+ query = query.where((builder) => {
129
+ for (const tag of params.tags) {
130
+ builder.orWhere('tags', 'like', `%${tag}%`);
131
+ }
132
+ });
120
133
  }
121
134
  // Note: v_tagged_constraints view already orders by priority DESC, category, ts DESC
122
135
  // Add limit if provided
123
136
  const limit = params.limit || 50;
124
- sql += ' LIMIT ?';
125
- values.push(limit);
137
+ query = query.limit(limit);
126
138
  // Execute query
127
- const rows = actualDb.prepare(sql).all(...values);
139
+ const rows = await query.select('*');
128
140
  // Parse m_tags from comma-separated to array for consistency
129
141
  const constraints = rows.map(row => ({
130
142
  ...row,
@@ -145,23 +157,29 @@ export function getConstraints(params, db) {
145
157
  * Idempotent - deactivating already-inactive constraint is safe
146
158
  *
147
159
  * @param params - Constraint ID to deactivate
148
- * @param db - Optional database instance (for testing)
160
+ * @param adapter - Optional database adapter (for testing)
149
161
  * @returns Success status
150
162
  */
151
- export function deactivateConstraint(params, db) {
152
- const actualDb = db ?? getDatabase();
163
+ export async function deactivateConstraint(params, adapter) {
164
+ const actualAdapter = adapter ?? getAdapter();
165
+ const knex = actualAdapter.getKnex();
153
166
  try {
154
167
  // Validate constraint_id
155
168
  if (!params.constraint_id || typeof params.constraint_id !== 'number') {
156
169
  throw new Error('constraint_id is required and must be a number');
157
170
  }
158
171
  // Check if constraint exists
159
- const constraint = actualDb.prepare('SELECT id, active FROM t_constraints WHERE id = ?').get(params.constraint_id);
172
+ const constraint = await knex('t_constraints')
173
+ .where({ id: params.constraint_id })
174
+ .select('id', 'active')
175
+ .first();
160
176
  if (!constraint) {
161
177
  throw new Error(`Constraint not found: ${params.constraint_id}`);
162
178
  }
163
179
  // Update constraint to inactive (idempotent)
164
- actualDb.prepare('UPDATE t_constraints SET active = ? WHERE id = ?').run(SQLITE_FALSE, params.constraint_id);
180
+ await knex('t_constraints')
181
+ .where({ id: params.constraint_id })
182
+ .update({ active: SQLITE_FALSE });
165
183
  return {
166
184
  success: true,
167
185
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC/H,OAAO,EACL,kBAAkB,EAElB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAa5E;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAA2B,EAAE,EAAa;IACtE,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,oBAAoB;QACpB,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElC,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAChD,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC;QAErE,wCAAwC;QACxC,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;YAC5F,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxC,yBAAyB;YACzB,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEpE,iCAAiC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC;YAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEtD,oBAAoB;YACpB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;;;OAGrC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAEpF,MAAM,YAAY,GAAG,YAAY,CAAC,eAAyB,CAAC;YAE5D,4BAA4B;YAC5B,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC;gBAExG,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM,CAAC,YAAY;SACnC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAA4B,EAAE,EAAa;IACxE,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,2DAA2D;QAC3D,IAAI,GAAG,GAAG,8CAA8C,CAAC;QAEzD,qBAAqB;QACrB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,kBAAkB;QAClB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,8CAA8C;QAC9C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxE,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,GAAG,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,qFAAqF;QACrF,wBAAwB;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,GAAG,IAAI,UAAU,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,gBAAgB;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAuB,CAAC;QAExE,6DAA6D;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,GAAG,GAAG;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;SAC5C,CAAC,CAAU,CAAC;QAEb,OAAO;YACL,WAAW;YACX,KAAK,EAAE,WAAW,CAAC,MAAM;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkC,EAAE,EAAa;IACpF,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,6BAA6B;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAA+C,CAAC;QAEjK,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,6CAA6C;QAC7C,QAAQ,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAE7G,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kEAAkE;QAC/E,IAAI,EAAE,wHAAwH;QAC9H,OAAO,EAAE;YACP,GAAG,EAAE,4GAA4G;YACjH,GAAG,EAAE,8EAA8E;YACnF,UAAU,EAAE,yDAAyD;SACtE;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,0HAA0H;YAC/H,GAAG,EAAE,+DAA+D;YACpE,UAAU,EAAE,4CAA4C;SACzD;QACD,aAAa,EAAE;YACb,cAAc,EAAE,oGAAoG;YACpH,SAAS,EAAE,oGAAoG;YAC/G,eAAe,EAAE,uGAAuG;YACxH,cAAc,EAAE,4FAA4F;SAC7G;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yDAAyD;QACtE,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,WAAW,EAAE,gFAAgF;gBAC7F,QAAQ,EAAE;oBACR;wBACE,QAAQ,EAAE,mBAAmB;wBAC7B,OAAO,EAAE,+LAA+L;wBACxM,SAAS,EAAE,0DAA0D;qBACtE;oBACD;wBACE,QAAQ,EAAE,4BAA4B;wBACtC,OAAO,EAAE,yKAAyK;wBAClL,SAAS,EAAE,uDAAuD;qBACnE;oBACD;wBACE,QAAQ,EAAE,cAAc;wBACxB,OAAO,EAAE,kMAAkM;wBAC3M,SAAS,EAAE,6DAA6D;qBACzE;iBACF;aACF;YACD,YAAY,EAAE;gBACZ,WAAW,EAAE,sEAAsE;gBACnF,QAAQ,EAAE;oBACR;wBACE,QAAQ,EAAE,wBAAwB;wBAClC,OAAO,EAAE,kOAAkO;wBAC3O,SAAS,EAAE,wDAAwD;qBACpE;oBACD;wBACE,QAAQ,EAAE,sBAAsB;wBAChC,OAAO,EAAE,yMAAyM;wBAClN,SAAS,EAAE,2CAA2C;qBACvD;oBACD;wBACE,QAAQ,EAAE,gBAAgB;wBAC1B,OAAO,EAAE,sMAAsM;wBAC/M,SAAS,EAAE,yDAAyD;qBACrE;iBACF;aACF;YACD,QAAQ,EAAE;gBACR,WAAW,EAAE,yEAAyE;gBACtF,QAAQ,EAAE;oBACR;wBACE,QAAQ,EAAE,yBAAyB;wBACnC,OAAO,EAAE,0LAA0L;wBACnM,SAAS,EAAE,qDAAqD;qBACjE;oBACD;wBACE,QAAQ,EAAE,iBAAiB;wBAC3B,OAAO,EAAE,qNAAqN;wBAC9N,SAAS,EAAE,gDAAgD;qBAC5D;oBACD;wBACE,QAAQ,EAAE,kBAAkB;wBAC5B,OAAO,EAAE,0NAA0N;wBACnO,SAAS,EAAE,6CAA6C;qBACzD;iBACF;aACF;SACF;QACD,SAAS,EAAE;YACT,qBAAqB,EAAE;gBACrB,WAAW,EAAE,kDAAkD;gBAC/D,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,uCAAuC;wBAC/C,OAAO,EAAE,yDAAyD;qBACnE;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,wCAAwC;wBAChD,OAAO,EAAE,gEAAgE;qBAC1E;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,mBAAmB;wBAC3B,OAAO,EAAE,6DAA6D;qBACvE;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,0BAA0B;wBAClC,OAAO,EAAE,iEAAiE;qBAC3E;iBACF;aACF;YACD,oBAAoB,EAAE;gBACpB,WAAW,EAAE,mDAAmD;gBAChE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,+BAA+B;wBACvC,OAAO,EAAE,0JAA0J;qBACpK;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,wBAAwB;wBAChC,OAAO,EAAE,iFAAiF;qBAC3F;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,6BAA6B;wBACrC,OAAO,EAAE,mEAAmE;qBAC7E;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,qBAAqB;wBAC7B,OAAO,EAAE,iDAAiD;qBAC3D;iBACF;aACF;SACF;QACD,cAAc,EAAE;YACd,mBAAmB,EAAE;gBACnB,oEAAoE;gBACpE,qDAAqD;gBACrD,oGAAoG;gBACpG,wDAAwD;gBACxD,wCAAwC;aACzC;YACD,oBAAoB,EAAE;gBACpB,2DAA2D;gBAC3D,iDAAiD;gBACjD,8DAA8D;gBAC9D,kDAAkD;gBAClD,sDAAsD;aACvD;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"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"}