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
@@ -2,11 +2,10 @@
2
2
  * Unit tests for Task watch_files action (v3.4.1)
3
3
  * Tests the new watch_files action: watch, unwatch, list
4
4
  */
5
- import { describe, it, beforeEach } from 'node:test';
6
- import assert from 'node:assert/strict';
7
- import Database from 'better-sqlite3';
8
- import { initializeSchema } from '../schema.js';
5
+ import { describe, it, beforeEach, afterEach } from 'node:test';
6
+ import * as assert from 'node:assert/strict';
9
7
  import { getOrCreateAgent, getOrCreateFile } from '../database.js';
8
+ import { SQLiteAdapter } from '../adapters/sqlite-adapter.js';
10
9
  /**
11
10
  * Test database instance
12
11
  */
@@ -14,41 +13,51 @@ let testDb;
14
13
  /**
15
14
  * Create an in-memory test database
16
15
  */
17
- function createTestDatabase() {
18
- const db = new Database(':memory:');
19
- db.pragma('foreign_keys = ON');
20
- initializeSchema(db);
21
- return db;
16
+ async function createTestDatabase() {
17
+ const adapter = new SQLiteAdapter();
18
+ await adapter.connect({
19
+ client: 'better-sqlite3',
20
+ connection: { filename: ':memory:' },
21
+ useNullAsDefault: true,
22
+ });
23
+ // Run migrations to set up schema
24
+ const knex = adapter.getKnex();
25
+ await knex.migrate.latest();
26
+ return adapter;
22
27
  }
23
28
  /**
24
29
  * Helper: Create a test task
25
30
  */
26
- function createTestTask(db, title) {
27
- const agentId = getOrCreateAgent(db, 'test-agent');
31
+ async function createTestTask(db, title) {
32
+ const agentId = await getOrCreateAgent(db, 'test-agent');
28
33
  const statusId = 1; // todo
29
- const result = db.prepare(`
30
- INSERT INTO t_tasks (title, status_id, priority, created_by_agent_id, assigned_agent_id)
31
- VALUES (?, ?, 2, ?, ?)
32
- `).run(title, statusId, agentId, agentId);
33
- return result.lastInsertRowid;
34
+ const knex = db.getKnex();
35
+ const [id] = await knex('t_tasks').insert({
36
+ title,
37
+ status_id: statusId,
38
+ priority: 2,
39
+ created_by_agent_id: agentId,
40
+ assigned_agent_id: agentId,
41
+ });
42
+ return id;
34
43
  }
35
44
  /**
36
45
  * Inline implementation of watchFiles action for testing
37
46
  */
38
- function watchFilesAction(db, params) {
47
+ async function watchFilesAction(db, params) {
39
48
  if (!params.task_id) {
40
49
  throw new Error('Parameter "task_id" is required');
41
50
  }
42
51
  if (!params.action) {
43
52
  throw new Error('Parameter "action" is required (watch, unwatch, or list)');
44
53
  }
54
+ const knex = db.getKnex();
45
55
  // Check if task exists
46
- const taskData = db.prepare(`
47
- SELECT t.id, t.title, s.name as status
48
- FROM t_tasks t
49
- JOIN m_task_statuses s ON t.status_id = s.id
50
- WHERE t.id = ?
51
- `).get(params.task_id);
56
+ const taskData = await knex('t_tasks as t')
57
+ .join('m_task_statuses as s', 't.status_id', 's.id')
58
+ .where('t.id', params.task_id)
59
+ .select('t.id', 't.title', 's.name as status')
60
+ .first();
52
61
  if (!taskData) {
53
62
  throw new Error(`Task with id ${params.task_id} not found`);
54
63
  }
@@ -56,16 +65,24 @@ function watchFilesAction(db, params) {
56
65
  if (!params.file_paths || params.file_paths.length === 0) {
57
66
  throw new Error('Parameter "file_paths" is required for watch action');
58
67
  }
59
- const insertFileLinkStmt = db.prepare(`
60
- INSERT OR IGNORE INTO t_task_file_links (task_id, file_id)
61
- VALUES (?, ?)
62
- `);
63
68
  const addedFiles = [];
64
69
  for (const filePath of params.file_paths) {
65
- const fileId = getOrCreateFile(db, filePath);
66
- const result = insertFileLinkStmt.run(params.task_id, fileId);
67
- // Check if row was actually inserted (changes > 0)
68
- if (result.changes > 0) {
70
+ const fileId = await getOrCreateFile(db, filePath);
71
+ // Try to insert, check if row was actually inserted
72
+ const rowsBefore = await knex('t_task_file_links')
73
+ .where({ task_id: params.task_id, file_id: fileId })
74
+ .count('* as count')
75
+ .first();
76
+ await knex('t_task_file_links')
77
+ .insert({ task_id: params.task_id, file_id: fileId })
78
+ .onConflict(['task_id', 'file_id'])
79
+ .ignore();
80
+ const rowsAfter = await knex('t_task_file_links')
81
+ .where({ task_id: params.task_id, file_id: fileId })
82
+ .count('* as count')
83
+ .first();
84
+ // Check if row was actually inserted
85
+ if (rowsAfter && rowsBefore && rowsAfter.count > rowsBefore.count) {
69
86
  addedFiles.push(filePath);
70
87
  }
71
88
  }
@@ -82,15 +99,16 @@ function watchFilesAction(db, params) {
82
99
  if (!params.file_paths || params.file_paths.length === 0) {
83
100
  throw new Error('Parameter "file_paths" is required for unwatch action');
84
101
  }
85
- const deleteFileLinkStmt = db.prepare(`
86
- DELETE FROM t_task_file_links
87
- WHERE task_id = ? AND file_id = (SELECT id FROM m_files WHERE path = ?)
88
- `);
89
102
  const removedFiles = [];
90
103
  for (const filePath of params.file_paths) {
91
- const result = deleteFileLinkStmt.run(params.task_id, filePath);
92
- // Check if row was actually deleted (changes > 0)
93
- if (result.changes > 0) {
104
+ const deletedCount = await knex('t_task_file_links')
105
+ .whereIn('file_id', function () {
106
+ this.select('id').from('m_files').where('path', filePath);
107
+ })
108
+ .andWhere('task_id', params.task_id)
109
+ .delete();
110
+ // Check if row was actually deleted
111
+ if (deletedCount > 0) {
94
112
  removedFiles.push(filePath);
95
113
  }
96
114
  }
@@ -104,13 +122,11 @@ function watchFilesAction(db, params) {
104
122
  };
105
123
  }
106
124
  else if (params.action === 'list') {
107
- const filesStmt = db.prepare(`
108
- SELECT f.path
109
- FROM t_task_file_links tfl
110
- JOIN m_files f ON tfl.file_id = f.id
111
- WHERE tfl.task_id = ?
112
- `);
113
- const files = filesStmt.all(params.task_id).map((row) => row.path);
125
+ const files = await knex('t_task_file_links as tfl')
126
+ .join('m_files as f', 'tfl.file_id', 'f.id')
127
+ .where('tfl.task_id', params.task_id)
128
+ .select('f.path')
129
+ .then(rows => rows.map((row) => row.path));
114
130
  return {
115
131
  success: true,
116
132
  task_id: params.task_id,
@@ -125,12 +141,17 @@ function watchFilesAction(db, params) {
125
141
  }
126
142
  }
127
143
  describe('Task watch_files action tests', () => {
128
- beforeEach(() => {
129
- testDb = createTestDatabase();
144
+ beforeEach(async () => {
145
+ testDb = await createTestDatabase();
146
+ });
147
+ afterEach(async () => {
148
+ if (testDb) {
149
+ await testDb.disconnect();
150
+ }
130
151
  });
131
- it('should list watched files for task with no files', () => {
132
- const taskId = createTestTask(testDb, 'Task without files');
133
- const result = watchFilesAction(testDb, {
152
+ it('should list watched files for task with no files', async () => {
153
+ const taskId = await createTestTask(testDb, 'Task without files');
154
+ const result = await watchFilesAction(testDb, {
134
155
  task_id: taskId,
135
156
  action: 'list'
136
157
  });
@@ -139,9 +160,9 @@ describe('Task watch_files action tests', () => {
139
160
  assert.strictEqual(result.files_count, 0);
140
161
  assert.deepStrictEqual(result.files, []);
141
162
  });
142
- it('should watch files for a task', () => {
143
- const taskId = createTestTask(testDb, 'Task to watch files');
144
- const result = watchFilesAction(testDb, {
163
+ it('should watch files for a task', async () => {
164
+ const taskId = await createTestTask(testDb, 'Task to watch files');
165
+ const result = await watchFilesAction(testDb, {
145
166
  task_id: taskId,
146
167
  action: 'watch',
147
168
  file_paths: ['src/index.ts', 'src/database.ts']
@@ -151,16 +172,16 @@ describe('Task watch_files action tests', () => {
151
172
  assert.strictEqual(result.files_added, 2);
152
173
  assert.deepStrictEqual(result.files, ['src/index.ts', 'src/database.ts']);
153
174
  });
154
- it('should list watched files after watching', () => {
155
- const taskId = createTestTask(testDb, 'Task with watched files');
175
+ it('should list watched files after watching', async () => {
176
+ const taskId = await createTestTask(testDb, 'Task with watched files');
156
177
  // Watch files
157
- watchFilesAction(testDb, {
178
+ await watchFilesAction(testDb, {
158
179
  task_id: taskId,
159
180
  action: 'watch',
160
181
  file_paths: ['src/index.ts', 'src/database.ts', 'src/schema.ts']
161
182
  });
162
183
  // List files
163
- const result = watchFilesAction(testDb, {
184
+ const result = await watchFilesAction(testDb, {
164
185
  task_id: taskId,
165
186
  action: 'list'
166
187
  });
@@ -172,39 +193,39 @@ describe('Task watch_files action tests', () => {
172
193
  assert.ok(result.files.includes('src/database.ts'));
173
194
  assert.ok(result.files.includes('src/schema.ts'));
174
195
  });
175
- it('should handle watching duplicate files (idempotent)', () => {
176
- const taskId = createTestTask(testDb, 'Task for idempotent test');
196
+ it('should handle watching duplicate files (idempotent)', async () => {
197
+ const taskId = await createTestTask(testDb, 'Task for idempotent test');
177
198
  // Watch files first time
178
- const result1 = watchFilesAction(testDb, {
199
+ const result1 = await watchFilesAction(testDb, {
179
200
  task_id: taskId,
180
201
  action: 'watch',
181
202
  file_paths: ['src/index.ts']
182
203
  });
183
204
  assert.strictEqual(result1.files_added, 1);
184
205
  // Watch same file again
185
- const result2 = watchFilesAction(testDb, {
206
+ const result2 = await watchFilesAction(testDb, {
186
207
  task_id: taskId,
187
208
  action: 'watch',
188
209
  file_paths: ['src/index.ts']
189
210
  });
190
211
  assert.strictEqual(result2.files_added, 0, 'Should not add duplicate file');
191
212
  // Verify only one link exists
192
- const listResult = watchFilesAction(testDb, {
213
+ const listResult = await watchFilesAction(testDb, {
193
214
  task_id: taskId,
194
215
  action: 'list'
195
216
  });
196
217
  assert.strictEqual(listResult.files_count, 1);
197
218
  });
198
- it('should unwatch files from a task', () => {
199
- const taskId = createTestTask(testDb, 'Task for unwatch test');
219
+ it('should unwatch files from a task', async () => {
220
+ const taskId = await createTestTask(testDb, 'Task for unwatch test');
200
221
  // Watch files
201
- watchFilesAction(testDb, {
222
+ await watchFilesAction(testDb, {
202
223
  task_id: taskId,
203
224
  action: 'watch',
204
225
  file_paths: ['src/index.ts', 'src/database.ts', 'src/schema.ts']
205
226
  });
206
227
  // Unwatch one file
207
- const result = watchFilesAction(testDb, {
228
+ const result = await watchFilesAction(testDb, {
208
229
  task_id: taskId,
209
230
  action: 'unwatch',
210
231
  file_paths: ['src/database.ts']
@@ -214,7 +235,7 @@ describe('Task watch_files action tests', () => {
214
235
  assert.strictEqual(result.files_removed, 1);
215
236
  assert.deepStrictEqual(result.files, ['src/database.ts']);
216
237
  // Verify remaining files
217
- const listResult = watchFilesAction(testDb, {
238
+ const listResult = await watchFilesAction(testDb, {
218
239
  task_id: taskId,
219
240
  action: 'list'
220
241
  });
@@ -223,23 +244,23 @@ describe('Task watch_files action tests', () => {
223
244
  assert.ok(listResult.files.includes('src/schema.ts'));
224
245
  assert.ok(!listResult.files.includes('src/database.ts'));
225
246
  });
226
- it('should unwatch multiple files at once', () => {
227
- const taskId = createTestTask(testDb, 'Task for batch unwatch');
247
+ it('should unwatch multiple files at once', async () => {
248
+ const taskId = await createTestTask(testDb, 'Task for batch unwatch');
228
249
  // Watch files
229
- watchFilesAction(testDb, {
250
+ await watchFilesAction(testDb, {
230
251
  task_id: taskId,
231
252
  action: 'watch',
232
253
  file_paths: ['src/index.ts', 'src/database.ts', 'src/schema.ts', 'src/types.ts']
233
254
  });
234
255
  // Unwatch multiple files
235
- const result = watchFilesAction(testDb, {
256
+ const result = await watchFilesAction(testDb, {
236
257
  task_id: taskId,
237
258
  action: 'unwatch',
238
259
  file_paths: ['src/database.ts', 'src/types.ts']
239
260
  });
240
261
  assert.strictEqual(result.files_removed, 2);
241
262
  // Verify remaining files
242
- const listResult = watchFilesAction(testDb, {
263
+ const listResult = await watchFilesAction(testDb, {
243
264
  task_id: taskId,
244
265
  action: 'list'
245
266
  });
@@ -247,16 +268,16 @@ describe('Task watch_files action tests', () => {
247
268
  assert.ok(listResult.files.includes('src/index.ts'));
248
269
  assert.ok(listResult.files.includes('src/schema.ts'));
249
270
  });
250
- it('should handle unwatching non-existent file gracefully', () => {
251
- const taskId = createTestTask(testDb, 'Task for non-existent unwatch');
271
+ it('should handle unwatching non-existent file gracefully', async () => {
272
+ const taskId = await createTestTask(testDb, 'Task for non-existent unwatch');
252
273
  // Watch one file
253
- watchFilesAction(testDb, {
274
+ await watchFilesAction(testDb, {
254
275
  task_id: taskId,
255
276
  action: 'watch',
256
277
  file_paths: ['src/index.ts']
257
278
  });
258
279
  // Try to unwatch file that was never watched
259
- const result = watchFilesAction(testDb, {
280
+ const result = await watchFilesAction(testDb, {
260
281
  task_id: taskId,
261
282
  action: 'unwatch',
262
283
  file_paths: ['src/non-existent.ts']
@@ -264,72 +285,72 @@ describe('Task watch_files action tests', () => {
264
285
  assert.ok(result.success);
265
286
  assert.strictEqual(result.files_removed, 0, 'Should remove 0 files');
266
287
  });
267
- it('should throw error for invalid task_id', () => {
268
- assert.throws(() => {
269
- watchFilesAction(testDb, {
288
+ it('should throw error for invalid task_id', async () => {
289
+ await assert.rejects(async () => {
290
+ await watchFilesAction(testDb, {
270
291
  task_id: 999,
271
292
  action: 'list'
272
293
  });
273
294
  }, /Task with id 999 not found/);
274
295
  });
275
- it('should throw error when watch action missing file_paths', () => {
276
- const taskId = createTestTask(testDb, 'Task for error test');
277
- assert.throws(() => {
278
- watchFilesAction(testDb, {
296
+ it('should throw error when watch action missing file_paths', async () => {
297
+ const taskId = await createTestTask(testDb, 'Task for error test');
298
+ await assert.rejects(async () => {
299
+ await watchFilesAction(testDb, {
279
300
  task_id: taskId,
280
301
  action: 'watch'
281
302
  });
282
303
  }, /Parameter "file_paths" is required for watch action/);
283
304
  });
284
- it('should throw error when unwatch action missing file_paths', () => {
285
- const taskId = createTestTask(testDb, 'Task for error test');
286
- assert.throws(() => {
287
- watchFilesAction(testDb, {
305
+ it('should throw error when unwatch action missing file_paths', async () => {
306
+ const taskId = await createTestTask(testDb, 'Task for error test');
307
+ await assert.rejects(async () => {
308
+ await watchFilesAction(testDb, {
288
309
  task_id: taskId,
289
310
  action: 'unwatch'
290
311
  });
291
312
  }, /Parameter "file_paths" is required for unwatch action/);
292
313
  });
293
- it('should handle empty file_paths array for watch', () => {
294
- const taskId = createTestTask(testDb, 'Task for empty array test');
295
- assert.throws(() => {
296
- watchFilesAction(testDb, {
314
+ it('should handle empty file_paths array for watch', async () => {
315
+ const taskId = await createTestTask(testDb, 'Task for empty array test');
316
+ await assert.rejects(async () => {
317
+ await watchFilesAction(testDb, {
297
318
  task_id: taskId,
298
319
  action: 'watch',
299
320
  file_paths: []
300
321
  });
301
322
  }, /Parameter "file_paths" is required for watch action/);
302
323
  });
303
- it('should watch then unwatch all files', () => {
304
- const taskId = createTestTask(testDb, 'Task for full cycle test');
324
+ it('should watch then unwatch all files', async () => {
325
+ const taskId = await createTestTask(testDb, 'Task for full cycle test');
305
326
  // Watch files
306
- watchFilesAction(testDb, {
327
+ await watchFilesAction(testDb, {
307
328
  task_id: taskId,
308
329
  action: 'watch',
309
330
  file_paths: ['src/index.ts', 'src/database.ts']
310
331
  });
311
332
  // Verify watched
312
- const listResult1 = watchFilesAction(testDb, {
333
+ const listResult1 = await watchFilesAction(testDb, {
313
334
  task_id: taskId,
314
335
  action: 'list'
315
336
  });
316
337
  assert.strictEqual(listResult1.files_count, 2);
317
338
  // Unwatch all
318
- watchFilesAction(testDb, {
339
+ await watchFilesAction(testDb, {
319
340
  task_id: taskId,
320
341
  action: 'unwatch',
321
342
  file_paths: ['src/index.ts', 'src/database.ts']
322
343
  });
323
344
  // Verify empty
324
- const listResult2 = watchFilesAction(testDb, {
345
+ const listResult2 = await watchFilesAction(testDb, {
325
346
  task_id: taskId,
326
347
  action: 'list'
327
348
  });
328
349
  assert.strictEqual(listResult2.files_count, 0);
329
350
  });
330
- it('should handle various file path formats', () => {
331
- const taskId = createTestTask(testDb, 'Task for path formats');
332
- const result = watchFilesAction(testDb, {
351
+ it('should handle various file path formats', async () => {
352
+ const taskId = await createTestTask(testDb, 'Task for path formats');
353
+ const result = await watchFilesAction(testDb, {
333
354
  task_id: taskId,
334
355
  action: 'watch',
335
356
  file_paths: [
@@ -340,7 +361,7 @@ describe('Task watch_files action tests', () => {
340
361
  ]
341
362
  });
342
363
  assert.strictEqual(result.files_added, 4);
343
- const listResult = watchFilesAction(testDb, {
364
+ const listResult = await watchFilesAction(testDb, {
344
365
  task_id: taskId,
345
366
  action: 'list'
346
367
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.watch-files-action.test.js","sourceRoot":"","sources":["../../src/tests/tasks.watch-files-action.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.watch-files-action.test.js","sourceRoot":"","sources":["../../src/tests/tasks.watch-files-action.test.ts"],"names":[],"mappings":"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"}