sqlew 3.2.4 → 3.5.3

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 (148) hide show
  1. package/CHANGELOG.md +843 -0
  2. package/README.md +53 -2
  3. package/assets/schema.sql +6 -1
  4. package/dist/config/loader.d.ts +46 -0
  5. package/dist/config/loader.d.ts.map +1 -0
  6. package/dist/config/loader.js +151 -0
  7. package/dist/config/loader.js.map +1 -0
  8. package/dist/config/types.d.ts +77 -0
  9. package/dist/config/types.d.ts.map +1 -0
  10. package/dist/config/types.js +28 -0
  11. package/dist/config/types.js.map +1 -0
  12. package/dist/constants.d.ts +9 -0
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +10 -0
  15. package/dist/constants.js.map +1 -1
  16. package/dist/database.d.ts +1 -1
  17. package/dist/database.d.ts.map +1 -1
  18. package/dist/database.js +84 -15
  19. package/dist/database.js.map +1 -1
  20. package/dist/index.js +21 -3
  21. package/dist/index.js.map +1 -1
  22. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +26 -0
  23. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +1 -0
  24. package/dist/migrations/add-v3.5.0-pruned-files.js +107 -0
  25. package/dist/migrations/add-v3.5.0-pruned-files.js.map +1 -0
  26. package/dist/migrations/index.d.ts +2 -1
  27. package/dist/migrations/index.d.ts.map +1 -1
  28. package/dist/migrations/index.js +16 -1
  29. package/dist/migrations/index.js.map +1 -1
  30. package/dist/tests/git-aware-completion.test.d.ts +6 -0
  31. package/dist/tests/git-aware-completion.test.d.ts.map +1 -0
  32. package/dist/tests/git-aware-completion.test.js +141 -0
  33. package/dist/tests/git-aware-completion.test.js.map +1 -0
  34. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts +6 -0
  35. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts.map +1 -0
  36. package/dist/tests/tasks.auto-pruning-decision-link.test.js +250 -0
  37. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -0
  38. package/dist/tests/tasks.auto-pruning-partial.test.d.ts +6 -0
  39. package/dist/tests/tasks.auto-pruning-partial.test.d.ts.map +1 -0
  40. package/dist/tests/tasks.auto-pruning-partial.test.js +274 -0
  41. package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -0
  42. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts +6 -0
  43. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts.map +1 -0
  44. package/dist/tests/tasks.auto-pruning-persistence.test.js +232 -0
  45. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -0
  46. package/dist/tests/tasks.auto-pruning-safety.test.d.ts +12 -0
  47. package/dist/tests/tasks.auto-pruning-safety.test.d.ts.map +1 -0
  48. package/dist/tests/tasks.auto-pruning-safety.test.js +196 -0
  49. package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -0
  50. package/dist/tests/tasks.link-file-backward-compat.test.d.ts +6 -0
  51. package/dist/tests/tasks.link-file-backward-compat.test.d.ts.map +1 -0
  52. package/dist/tests/tasks.link-file-backward-compat.test.js +235 -0
  53. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -0
  54. package/dist/tests/tasks.watch-files-action.test.d.ts +6 -0
  55. package/dist/tests/tasks.watch-files-action.test.d.ts.map +1 -0
  56. package/dist/tests/tasks.watch-files-action.test.js +351 -0
  57. package/dist/tests/tasks.watch-files-action.test.js.map +1 -0
  58. package/dist/tests/tasks.watch-files-parameter.test.d.ts +6 -0
  59. package/dist/tests/tasks.watch-files-parameter.test.d.ts.map +1 -0
  60. package/dist/tests/tasks.watch-files-parameter.test.js +249 -0
  61. package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -0
  62. package/dist/tests/two-step-git-completion.test.d.ts +6 -0
  63. package/dist/tests/two-step-git-completion.test.d.ts.map +1 -0
  64. package/dist/tests/two-step-git-completion.test.js +283 -0
  65. package/dist/tests/two-step-git-completion.test.js.map +1 -0
  66. package/dist/tests/vcs-staging.test.d.ts +6 -0
  67. package/dist/tests/vcs-staging.test.d.ts.map +1 -0
  68. package/dist/tests/vcs-staging.test.js +137 -0
  69. package/dist/tests/vcs-staging.test.js.map +1 -0
  70. package/dist/tools/config.d.ts +4 -2
  71. package/dist/tools/config.d.ts.map +1 -1
  72. package/dist/tools/config.js +13 -11
  73. package/dist/tools/config.js.map +1 -1
  74. package/dist/tools/constraints.d.ts +7 -4
  75. package/dist/tools/constraints.d.ts.map +1 -1
  76. package/dist/tools/constraints.js +19 -16
  77. package/dist/tools/constraints.js.map +1 -1
  78. package/dist/tools/context.d.ts +33 -17
  79. package/dist/tools/context.d.ts.map +1 -1
  80. package/dist/tools/context.js +84 -68
  81. package/dist/tools/context.js.map +1 -1
  82. package/dist/tools/files.d.ts +9 -5
  83. package/dist/tools/files.d.ts.map +1 -1
  84. package/dist/tools/files.js +19 -15
  85. package/dist/tools/files.js.map +1 -1
  86. package/dist/tools/messaging.d.ts +9 -5
  87. package/dist/tools/messaging.d.ts.map +1 -1
  88. package/dist/tools/messaging.js +20 -16
  89. package/dist/tools/messaging.js.map +1 -1
  90. package/dist/tools/tasks.d.ts +40 -12
  91. package/dist/tools/tasks.d.ts.map +1 -1
  92. package/dist/tools/tasks.js +475 -87
  93. package/dist/tools/tasks.js.map +1 -1
  94. package/dist/tools/utils.d.ts +11 -6
  95. package/dist/tools/utils.d.ts.map +1 -1
  96. package/dist/tools/utils.js +56 -44
  97. package/dist/tools/utils.js.map +1 -1
  98. package/dist/types.d.ts +4 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/utils/file-pruning.d.ts +69 -0
  101. package/dist/utils/file-pruning.d.ts.map +1 -0
  102. package/dist/utils/file-pruning.js +185 -0
  103. package/dist/utils/file-pruning.js.map +1 -0
  104. package/dist/utils/quality-checks.d.ts +60 -0
  105. package/dist/utils/quality-checks.d.ts.map +1 -0
  106. package/dist/utils/quality-checks.js +228 -0
  107. package/dist/utils/quality-checks.js.map +1 -0
  108. package/dist/utils/retention.d.ts +8 -0
  109. package/dist/utils/retention.d.ts.map +1 -1
  110. package/dist/utils/retention.js +12 -0
  111. package/dist/utils/retention.js.map +1 -1
  112. package/dist/utils/task-stale-detection.d.ts +69 -1
  113. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  114. package/dist/utils/task-stale-detection.js +494 -17
  115. package/dist/utils/task-stale-detection.js.map +1 -1
  116. package/dist/utils/validators.d.ts +2 -2
  117. package/dist/utils/validators.d.ts.map +1 -1
  118. package/dist/utils/validators.js +11 -2
  119. package/dist/utils/validators.js.map +1 -1
  120. package/dist/utils/vcs-adapter.d.ts +68 -0
  121. package/dist/utils/vcs-adapter.d.ts.map +1 -0
  122. package/dist/utils/vcs-adapter.js +187 -0
  123. package/dist/utils/vcs-adapter.js.map +1 -0
  124. package/dist/watcher/file-watcher.d.ts +54 -4
  125. package/dist/watcher/file-watcher.d.ts.map +1 -1
  126. package/dist/watcher/file-watcher.js +312 -30
  127. package/dist/watcher/file-watcher.js.map +1 -1
  128. package/dist/watcher/gitignore-parser.d.ts +70 -0
  129. package/dist/watcher/gitignore-parser.d.ts.map +1 -0
  130. package/dist/watcher/gitignore-parser.js +191 -0
  131. package/dist/watcher/gitignore-parser.js.map +1 -0
  132. package/dist/watcher/index.d.ts +1 -0
  133. package/dist/watcher/index.d.ts.map +1 -1
  134. package/dist/watcher/index.js +1 -0
  135. package/dist/watcher/index.js.map +1 -1
  136. package/docs/AI_AGENT_GUIDE.md +1 -1
  137. package/docs/ARCHITECTURE.md +12 -0
  138. package/docs/AUTO_FILE_TRACKING.md +486 -82
  139. package/docs/CONFIGURATION.md +908 -0
  140. package/docs/GIT_AWARE_AUTO_COMPLETE.md +645 -0
  141. package/docs/MIGRATION_v3.3.md +602 -0
  142. package/docs/SHARED_CONCEPTS.md +2 -1
  143. package/docs/TASK_ACTIONS.md +12 -0
  144. package/docs/TASK_OVERVIEW.md +124 -23
  145. package/docs/TASK_PRUNING.md +589 -0
  146. package/docs/TASK_SYSTEM.md +83 -13
  147. package/docs/TOOL_REFERENCE.md +94 -6
  148. package/package.json +8 -6
@@ -108,14 +108,15 @@ function setDecisionInternal(params, db) {
108
108
  * Supports tags, layers, scopes, and version tracking
109
109
  *
110
110
  * @param params - Decision parameters
111
+ * @param db - Optional database instance (for testing)
111
112
  * @returns Response with success status and metadata
112
113
  */
113
- export function setDecision(params) {
114
- const db = getDatabase();
114
+ export function setDecision(params, db) {
115
+ const actualDb = db ?? getDatabase();
115
116
  try {
116
117
  // Use transaction for atomicity
117
- return transaction(db, () => {
118
- return setDecisionInternal(params, db);
118
+ return transaction(actualDb, () => {
119
+ return setDecisionInternal(params, actualDb);
119
120
  });
120
121
  }
121
122
  catch (error) {
@@ -129,10 +130,11 @@ export function setDecision(params) {
129
130
  * Supports filtering by status, layer, tags, and scope
130
131
  *
131
132
  * @param params - Filter parameters
133
+ * @param db - Optional database instance (for testing)
132
134
  * @returns Array of t_decisions with metadata
133
135
  */
134
- export function getContext(params = {}) {
135
- const db = getDatabase();
136
+ export function getContext(params = {}, db) {
137
+ const actualDb = db ?? getDatabase();
136
138
  try {
137
139
  // Build query dynamically based on filters
138
140
  let query = 'SELECT * FROM v_tagged_decisions WHERE 1=1';
@@ -178,7 +180,7 @@ export function getContext(params = {}) {
178
180
  // Order by most recent
179
181
  query += ' ORDER BY updated DESC';
180
182
  // Execute query
181
- const stmt = db.prepare(query);
183
+ const stmt = actualDb.prepare(query);
182
184
  const rows = stmt.all(...queryParams);
183
185
  return {
184
186
  decisions: rows,
@@ -196,10 +198,11 @@ export function getContext(params = {}) {
196
198
  * Optionally includes decision context (v3.2.2)
197
199
  *
198
200
  * @param params - Decision key and optional include_context flag
201
+ * @param db - Optional database instance (for testing)
199
202
  * @returns Decision details or not found
200
203
  */
201
- export function getDecision(params) {
202
- const db = getDatabase();
204
+ export function getDecision(params, db) {
205
+ const actualDb = db ?? getDatabase();
203
206
  // Validate parameter
204
207
  if (!params.key || params.key.trim() === '') {
205
208
  throw new Error('Parameter "key" is required and cannot be empty');
@@ -207,7 +210,7 @@ export function getDecision(params) {
207
210
  try {
208
211
  // If include_context is true, use the context-aware function
209
212
  if (params.include_context) {
210
- const result = dbGetDecisionWithContext(db, params.key);
213
+ const result = dbGetDecisionWithContext(actualDb, params.key);
211
214
  if (!result) {
212
215
  return {
213
216
  found: false
@@ -235,7 +238,7 @@ export function getDecision(params) {
235
238
  };
236
239
  }
237
240
  // Standard query without context (backward compatible)
238
- const stmt = db.prepare('SELECT * FROM v_tagged_decisions WHERE key = ?');
241
+ const stmt = actualDb.prepare('SELECT * FROM v_tagged_decisions WHERE key = ?');
239
242
  const row = stmt.get(params.key);
240
243
  if (!row) {
241
244
  return {
@@ -257,10 +260,11 @@ export function getDecision(params) {
257
260
  * Provides flexible tag-based filtering with status and layer support
258
261
  *
259
262
  * @param params - Search parameters (tags, match_mode, status, layer)
263
+ * @param db - Optional database instance (for testing)
260
264
  * @returns Array of t_decisions matching tag criteria
261
265
  */
262
- export function searchByTags(params) {
263
- const db = getDatabase();
266
+ export function searchByTags(params, db) {
267
+ const actualDb = db ?? getDatabase();
264
268
  // Validate required parameters
265
269
  if (!params.tags || params.tags.length === 0) {
266
270
  throw new Error('Parameter "tags" is required and must contain at least one tag');
@@ -299,7 +303,7 @@ export function searchByTags(params) {
299
303
  // Optional layer filter
300
304
  if (params.layer) {
301
305
  // Validate layer exists
302
- const layerId = getLayerId(db, params.layer);
306
+ const layerId = getLayerId(actualDb, params.layer);
303
307
  if (layerId === null) {
304
308
  throw new Error(`Invalid layer: ${params.layer}. Must be one of: presentation, business, data, infrastructure, cross-cutting`);
305
309
  }
@@ -309,7 +313,7 @@ export function searchByTags(params) {
309
313
  // Order by most recent
310
314
  query += ' ORDER BY updated DESC';
311
315
  // Execute query
312
- const stmt = db.prepare(query);
316
+ const stmt = actualDb.prepare(query);
313
317
  const rows = stmt.all(...queryParams);
314
318
  return {
315
319
  decisions: rows,
@@ -326,17 +330,18 @@ export function searchByTags(params) {
326
330
  * Returns all historical versions ordered by timestamp (newest first)
327
331
  *
328
332
  * @param params - Decision key to get history for
333
+ * @param db - Optional database instance (for testing)
329
334
  * @returns Array of historical versions with metadata
330
335
  */
331
- export function getVersions(params) {
332
- const db = getDatabase();
336
+ export function getVersions(params, db) {
337
+ const actualDb = db ?? getDatabase();
333
338
  // Validate required parameter
334
339
  if (!params.key || params.key.trim() === '') {
335
340
  throw new Error('Parameter "key" is required and cannot be empty');
336
341
  }
337
342
  try {
338
343
  // Get key_id for the decision
339
- const keyResult = db.prepare('SELECT id FROM m_context_keys WHERE key = ?').get(params.key);
344
+ const keyResult = actualDb.prepare('SELECT id FROM m_context_keys WHERE key = ?').get(params.key);
340
345
  if (!keyResult) {
341
346
  // Key doesn't exist, return empty history
342
347
  return {
@@ -347,7 +352,7 @@ export function getVersions(params) {
347
352
  }
348
353
  const keyId = keyResult.id;
349
354
  // Query t_decision_history with agent join
350
- const stmt = db.prepare(`
355
+ const stmt = actualDb.prepare(`
351
356
  SELECT
352
357
  dh.version,
353
358
  dh.value,
@@ -382,17 +387,18 @@ export function getVersions(params) {
382
387
  * Supports status filtering and optional tag inclusion
383
388
  *
384
389
  * @param params - Layer name, optional status and include_tags
390
+ * @param db - Optional database instance (for testing)
385
391
  * @returns Array of t_decisions in the specified layer
386
392
  */
387
- export function searchByLayer(params) {
388
- const db = getDatabase();
393
+ export function searchByLayer(params, db) {
394
+ const actualDb = db ?? getDatabase();
389
395
  // Validate required parameter
390
396
  if (!params.layer || params.layer.trim() === '') {
391
397
  throw new Error('Parameter "layer" is required and cannot be empty');
392
398
  }
393
399
  try {
394
400
  // Validate layer exists
395
- const layerId = getLayerId(db, params.layer);
401
+ const layerId = getLayerId(actualDb, params.layer);
396
402
  if (layerId === null) {
397
403
  throw new Error(`Invalid layer: ${params.layer}. Must be one of: presentation, business, data, infrastructure, cross-cutting`);
398
404
  }
@@ -464,7 +470,7 @@ export function searchByLayer(params) {
464
470
  queryParams.push(params.layer, statusValue);
465
471
  }
466
472
  // Execute query
467
- const stmt = db.prepare(query);
473
+ const stmt = actualDb.prepare(query);
468
474
  const rows = stmt.all(...queryParams);
469
475
  return {
470
476
  layer: params.layer,
@@ -502,9 +508,10 @@ export function searchByLayer(params) {
502
508
  * All inferred fields can be overridden via optional parameters.
503
509
  *
504
510
  * @param params - Quick set parameters (key and value required)
511
+ * @param db - Optional database instance (for testing)
505
512
  * @returns Response with success status and inferred metadata
506
513
  */
507
- export function quickSetDecision(params) {
514
+ export function quickSetDecision(params, db) {
508
515
  // Validate required parameters
509
516
  if (!params.key || params.key.trim() === '') {
510
517
  throw new Error('Parameter "key" is required and cannot be empty');
@@ -568,8 +575,8 @@ export function quickSetDecision(params) {
568
575
  tags: inferredTags,
569
576
  scopes: inferredScopes
570
577
  };
571
- // Call setDecision with full params
572
- const result = setDecision(fullParams);
578
+ // Call setDecision with full params (pass db if provided)
579
+ const result = setDecision(fullParams, db);
573
580
  // Return response with inferred metadata
574
581
  return {
575
582
  success: result.success,
@@ -596,10 +603,11 @@ export function quickSetDecision(params) {
596
603
  * - search_text: Full-text search in value field
597
604
  *
598
605
  * @param params - Advanced search parameters with filtering, sorting, pagination
606
+ * @param db - Optional database instance (for testing)
599
607
  * @returns Filtered decisions with total count for pagination
600
608
  */
601
- export function searchAdvanced(params = {}) {
602
- const db = getDatabase();
609
+ export function searchAdvanced(params = {}, db) {
610
+ const actualDb = db ?? getDatabase();
603
611
  try {
604
612
  // Parse relative time to Unix timestamp
605
613
  const parseRelativeTime = (relativeTime) => {
@@ -712,7 +720,7 @@ export function searchAdvanced(params = {}) {
712
720
  }
713
721
  // Count total matching records (before pagination)
714
722
  const countQuery = query.replace('SELECT * FROM', 'SELECT COUNT(*) as total FROM');
715
- const countStmt = db.prepare(countQuery);
723
+ const countStmt = actualDb.prepare(countQuery);
716
724
  const countResult = countStmt.get(...queryParams);
717
725
  const totalCount = countResult.total;
718
726
  // Sorting
@@ -739,7 +747,7 @@ export function searchAdvanced(params = {}) {
739
747
  query += ' LIMIT ? OFFSET ?';
740
748
  queryParams.push(limit, offset);
741
749
  // Execute query
742
- const stmt = db.prepare(query);
750
+ const stmt = actualDb.prepare(query);
743
751
  const rows = stmt.all(...queryParams);
744
752
  return {
745
753
  decisions: rows,
@@ -758,17 +766,18 @@ export function searchAdvanced(params = {}) {
758
766
  * Limit: 50 items per batch (constraint #3)
759
767
  *
760
768
  * @param params - Batch parameters with array of decisions and atomic flag
769
+ * @param db - Optional database instance (for testing)
761
770
  * @returns Response with success status and detailed results for each item
762
771
  */
763
- export function setDecisionBatch(params) {
764
- const db = getDatabase();
772
+ export function setDecisionBatch(params, db) {
773
+ const actualDb = db ?? getDatabase();
765
774
  // Validate required parameters
766
775
  if (!params.decisions || !Array.isArray(params.decisions)) {
767
776
  throw new Error('Parameter "decisions" is required and must be an array');
768
777
  }
769
778
  const atomic = params.atomic !== undefined ? params.atomic : true;
770
779
  // Use processBatch utility
771
- const batchResult = processBatch(db, params.decisions, (decision, db) => {
780
+ const batchResult = processBatch(actualDb, params.decisions, (decision, db) => {
772
781
  const result = setDecisionInternal(decision, db);
773
782
  return {
774
783
  key: decision.key,
@@ -796,10 +805,11 @@ export function setDecisionBatch(params) {
796
805
  * Token cost: ~5-10 tokens per check
797
806
  *
798
807
  * @param params - Agent name and since_timestamp (ISO 8601)
808
+ * @param db - Optional database instance (for testing)
799
809
  * @returns Boolean flag and counts for decisions, messages, files
800
810
  */
801
- export function hasUpdates(params) {
802
- const db = getDatabase();
811
+ export function hasUpdates(params, db) {
812
+ const actualDb = db ?? getDatabase();
803
813
  // Validate required parameters
804
814
  if (!params.agent_name || params.agent_name.trim() === '') {
805
815
  throw new Error('Parameter "agent_name" is required and cannot be empty');
@@ -815,7 +825,7 @@ export function hasUpdates(params) {
815
825
  }
816
826
  const sinceTs = Math.floor(sinceDate.getTime() / 1000);
817
827
  // Count decisions updated since timestamp (both string and numeric tables)
818
- const decisionCountStmt = db.prepare(`
828
+ const decisionCountStmt = actualDb.prepare(`
819
829
  SELECT COUNT(*) as count FROM (
820
830
  SELECT ts FROM t_decisions WHERE ts > ?
821
831
  UNION ALL
@@ -825,12 +835,12 @@ export function hasUpdates(params) {
825
835
  const decisionResult = decisionCountStmt.get(sinceTs, sinceTs);
826
836
  const decisionsCount = decisionResult.count;
827
837
  // Get agent_id for the requesting agent
828
- const agentResult = db.prepare('SELECT id FROM m_agents WHERE name = ?').get(params.agent_name);
838
+ const agentResult = actualDb.prepare('SELECT id FROM m_agents WHERE name = ?').get(params.agent_name);
829
839
  // Count messages for the agent (received messages - to_agent_id matches OR broadcast messages)
830
840
  let messagesCount = 0;
831
841
  if (agentResult) {
832
842
  const agentId = agentResult.id;
833
- const messageCountStmt = db.prepare(`
843
+ const messageCountStmt = actualDb.prepare(`
834
844
  SELECT COUNT(*) as count FROM t_agent_messages
835
845
  WHERE ts > ? AND (to_agent_id = ? OR to_agent_id IS NULL)
836
846
  `);
@@ -838,7 +848,7 @@ export function hasUpdates(params) {
838
848
  messagesCount = messageResult.count;
839
849
  }
840
850
  // Count file changes since timestamp
841
- const fileCountStmt = db.prepare(`
851
+ const fileCountStmt = actualDb.prepare(`
842
852
  SELECT COUNT(*) as count FROM t_file_changes WHERE ts > ?
843
853
  `);
844
854
  const fileResult = fileCountStmt.get(sinceTs);
@@ -865,10 +875,11 @@ export function hasUpdates(params) {
865
875
  * Validates required fields if template specifies any
866
876
  *
867
877
  * @param params - Template name, key, value, and optional overrides
878
+ * @param db - Optional database instance (for testing)
868
879
  * @returns Response with success status and applied defaults metadata
869
880
  */
870
- export function setFromTemplate(params) {
871
- const db = getDatabase();
881
+ export function setFromTemplate(params, db) {
882
+ const actualDb = db ?? getDatabase();
872
883
  // Validate required parameters
873
884
  if (!params.template || params.template.trim() === '') {
874
885
  throw new Error('Parameter "template" is required and cannot be empty');
@@ -881,7 +892,7 @@ export function setFromTemplate(params) {
881
892
  }
882
893
  try {
883
894
  // Get template
884
- const templateRow = db.prepare('SELECT * FROM t_decision_templates WHERE name = ?').get(params.template);
895
+ const templateRow = actualDb.prepare('SELECT * FROM t_decision_templates WHERE name = ?').get(params.template);
885
896
  if (!templateRow) {
886
897
  throw new Error(`Template not found: ${params.template}`);
887
898
  }
@@ -919,8 +930,8 @@ export function setFromTemplate(params) {
919
930
  if (!params.status && defaults.status) {
920
931
  appliedDefaults.status = defaults.status;
921
932
  }
922
- // Call setDecision with merged params
923
- const result = setDecision(decisionParams);
933
+ // Call setDecision with merged params (pass db if provided)
934
+ const result = setDecision(decisionParams, actualDb);
924
935
  return {
925
936
  success: result.success,
926
937
  key: result.key,
@@ -941,10 +952,11 @@ export function setFromTemplate(params) {
941
952
  * Defines reusable defaults and required fields for decisions
942
953
  *
943
954
  * @param params - Template name, defaults, required fields, and creator
955
+ * @param db - Optional database instance (for testing)
944
956
  * @returns Response with success status and template ID
945
957
  */
946
- export function createTemplate(params) {
947
- const db = getDatabase();
958
+ export function createTemplate(params, db) {
959
+ const actualDb = db ?? getDatabase();
948
960
  // Validate required parameters
949
961
  if (!params.name || params.name.trim() === '') {
950
962
  throw new Error('Parameter "name" is required and cannot be empty');
@@ -953,10 +965,10 @@ export function createTemplate(params) {
953
965
  throw new Error('Parameter "defaults" is required and must be an object');
954
966
  }
955
967
  try {
956
- return transaction(db, () => {
968
+ return transaction(actualDb, () => {
957
969
  // Validate layer if provided in defaults
958
970
  if (params.defaults.layer) {
959
- const layerId = getLayerId(db, params.defaults.layer);
971
+ const layerId = getLayerId(actualDb, params.defaults.layer);
960
972
  if (layerId === null) {
961
973
  throw new Error(`Invalid layer in defaults: ${params.defaults.layer}. Must be one of: presentation, business, data, infrastructure, cross-cutting`);
962
974
  }
@@ -968,13 +980,13 @@ export function createTemplate(params) {
968
980
  // Get or create agent if creator specified
969
981
  let createdById = null;
970
982
  if (params.created_by) {
971
- createdById = getOrCreateAgent(db, params.created_by);
983
+ createdById = getOrCreateAgent(actualDb, params.created_by);
972
984
  }
973
985
  // Serialize defaults and required fields
974
986
  const defaultsJson = JSON.stringify(params.defaults);
975
987
  const requiredFieldsJson = params.required_fields ? JSON.stringify(params.required_fields) : null;
976
988
  // Insert template
977
- const stmt = db.prepare(`
989
+ const stmt = actualDb.prepare(`
978
990
  INSERT INTO t_decision_templates (name, defaults, required_fields, created_by)
979
991
  VALUES (?, ?, ?, ?)
980
992
  `);
@@ -997,12 +1009,13 @@ export function createTemplate(params) {
997
1009
  * Returns all templates with their defaults and metadata
998
1010
  *
999
1011
  * @param params - No parameters required
1012
+ * @param db - Optional database instance (for testing)
1000
1013
  * @returns Array of all templates with parsed JSON fields
1001
1014
  */
1002
- export function listTemplates(params = {}) {
1003
- const db = getDatabase();
1015
+ export function listTemplates(params = {}, db) {
1016
+ const actualDb = db ?? getDatabase();
1004
1017
  try {
1005
- const stmt = db.prepare(`
1018
+ const stmt = actualDb.prepare(`
1006
1019
  SELECT
1007
1020
  t.id,
1008
1021
  t.name,
@@ -1047,18 +1060,19 @@ export function listTemplates(params = {}) {
1047
1060
  * (tags, scopes) will also be deleted due to CASCADE constraints.
1048
1061
  *
1049
1062
  * @param params - Decision key to delete
1063
+ * @param db - Optional database instance (for testing)
1050
1064
  * @returns Response with success status
1051
1065
  */
1052
- export function hardDeleteDecision(params) {
1053
- const db = getDatabase();
1066
+ export function hardDeleteDecision(params, db) {
1067
+ const actualDb = db ?? getDatabase();
1054
1068
  // Validate parameter
1055
1069
  if (!params.key || params.key.trim() === '') {
1056
1070
  throw new Error('Parameter "key" is required and cannot be empty');
1057
1071
  }
1058
1072
  try {
1059
- return transaction(db, () => {
1073
+ return transaction(actualDb, () => {
1060
1074
  // Get key_id
1061
- const keyResult = db.prepare('SELECT id FROM m_context_keys WHERE key = ?').get(params.key);
1075
+ const keyResult = actualDb.prepare('SELECT id FROM m_context_keys WHERE key = ?').get(params.key);
1062
1076
  if (!keyResult) {
1063
1077
  // Key doesn't exist - still return success (idempotent)
1064
1078
  return {
@@ -1069,15 +1083,15 @@ export function hardDeleteDecision(params) {
1069
1083
  }
1070
1084
  const keyId = keyResult.id;
1071
1085
  // Delete from t_decisions (if exists)
1072
- const deletedString = db.prepare('DELETE FROM t_decisions WHERE key_id = ?').run(keyId);
1086
+ const deletedString = actualDb.prepare('DELETE FROM t_decisions WHERE key_id = ?').run(keyId);
1073
1087
  // Delete from t_decisions_numeric (if exists)
1074
- const deletedNumeric = db.prepare('DELETE FROM t_decisions_numeric WHERE key_id = ?').run(keyId);
1088
+ const deletedNumeric = actualDb.prepare('DELETE FROM t_decisions_numeric WHERE key_id = ?').run(keyId);
1075
1089
  // Delete from t_decision_history (CASCADE should handle this, but explicit for clarity)
1076
- const deletedHistory = db.prepare('DELETE FROM t_decision_history WHERE key_id = ?').run(keyId);
1090
+ const deletedHistory = actualDb.prepare('DELETE FROM t_decision_history WHERE key_id = ?').run(keyId);
1077
1091
  // Delete from t_decision_tags (CASCADE should handle this)
1078
- const deletedTags = db.prepare('DELETE FROM t_decision_tags WHERE decision_key_id = ?').run(keyId);
1092
+ const deletedTags = actualDb.prepare('DELETE FROM t_decision_tags WHERE decision_key_id = ?').run(keyId);
1079
1093
  // Delete from t_decision_scopes (CASCADE should handle this)
1080
- const deletedScopes = db.prepare('DELETE FROM t_decision_scopes WHERE decision_key_id = ?').run(keyId);
1094
+ const deletedScopes = actualDb.prepare('DELETE FROM t_decision_scopes WHERE decision_key_id = ?').run(keyId);
1081
1095
  // Calculate total deleted records
1082
1096
  const totalDeleted = deletedString.changes + deletedNumeric.changes + deletedHistory.changes + deletedTags.changes + deletedScopes.changes;
1083
1097
  if (totalDeleted === 0) {
@@ -1107,10 +1121,11 @@ export function hardDeleteDecision(params) {
1107
1121
  * Adds rich context (rationale, alternatives, tradeoffs) to a decision
1108
1122
  *
1109
1123
  * @param params - Context parameters
1124
+ * @param db - Optional database instance (for testing)
1110
1125
  * @returns Response with success status
1111
1126
  */
1112
- export function addDecisionContextAction(params) {
1113
- const db = getDatabase();
1127
+ export function addDecisionContextAction(params, db) {
1128
+ const actualDb = db ?? getDatabase();
1114
1129
  // Validate required parameters
1115
1130
  if (!params.key || params.key.trim() === '') {
1116
1131
  throw new Error('Parameter "key" is required and cannot be empty');
@@ -1129,7 +1144,7 @@ export function addDecisionContextAction(params) {
1129
1144
  if (tradeoffs && typeof tradeoffs === 'object') {
1130
1145
  tradeoffs = JSON.stringify(tradeoffs);
1131
1146
  }
1132
- const contextId = dbAddDecisionContext(db, params.key, params.rationale, alternatives, tradeoffs, params.decided_by || null, params.related_task_id || null, params.related_constraint_id || null);
1147
+ const contextId = dbAddDecisionContext(actualDb, params.key, params.rationale, alternatives, tradeoffs, params.decided_by || null, params.related_task_id || null, params.related_constraint_id || null);
1133
1148
  return {
1134
1149
  success: true,
1135
1150
  context_id: contextId,
@@ -1147,12 +1162,13 @@ export function addDecisionContextAction(params) {
1147
1162
  * Query decision contexts with optional filters
1148
1163
  *
1149
1164
  * @param params - Filter parameters
1165
+ * @param db - Optional database instance (for testing)
1150
1166
  * @returns Array of decision contexts
1151
1167
  */
1152
- export function listDecisionContextsAction(params) {
1153
- const db = getDatabase();
1168
+ export function listDecisionContextsAction(params, db) {
1169
+ const actualDb = db ?? getDatabase();
1154
1170
  try {
1155
- const contexts = dbListDecisionContexts(db, {
1171
+ const contexts = dbListDecisionContexts(actualDb, {
1156
1172
  decisionKey: params.decision_key,
1157
1173
  relatedTaskId: params.related_task_id,
1158
1174
  relatedConstraintId: params.related_constraint_id,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}