sqlew 3.1.2 → 3.2.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 (70) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/README.md +58 -3
  3. package/assets/schema.sql +28 -1
  4. package/dist/database.d.ts +65 -0
  5. package/dist/database.d.ts.map +1 -1
  6. package/dist/database.js +190 -0
  7. package/dist/database.js.map +1 -1
  8. package/dist/index.js +47 -1005
  9. package/dist/index.js.map +1 -1
  10. package/dist/migrations/add-decision-context.d.ts +28 -0
  11. package/dist/migrations/add-decision-context.d.ts.map +1 -0
  12. package/dist/migrations/add-decision-context.js +125 -0
  13. package/dist/migrations/add-decision-context.js.map +1 -0
  14. package/dist/migrations/add-task-dependencies.d.ts +26 -0
  15. package/dist/migrations/add-task-dependencies.d.ts.map +1 -0
  16. package/dist/migrations/add-task-dependencies.js +94 -0
  17. package/dist/migrations/add-task-dependencies.js.map +1 -0
  18. package/dist/migrations/index.d.ts +3 -1
  19. package/dist/migrations/index.d.ts.map +1 -1
  20. package/dist/migrations/index.js +32 -2
  21. package/dist/migrations/index.js.map +1 -1
  22. package/dist/schema.js +2 -2
  23. package/dist/schema.js.map +1 -1
  24. package/dist/tests/migrations/test-v3.2-migration.d.ts +6 -0
  25. package/dist/tests/migrations/test-v3.2-migration.d.ts.map +1 -0
  26. package/dist/tests/migrations/test-v3.2-migration.js +191 -0
  27. package/dist/tests/migrations/test-v3.2-migration.js.map +1 -0
  28. package/dist/tests/tasks.dependencies.test.d.ts +7 -0
  29. package/dist/tests/tasks.dependencies.test.d.ts.map +1 -0
  30. package/dist/tests/tasks.dependencies.test.js +613 -0
  31. package/dist/tests/tasks.dependencies.test.js.map +1 -0
  32. package/dist/tools/config.d.ts +10 -0
  33. package/dist/tools/config.d.ts.map +1 -1
  34. package/dist/tools/config.js +105 -0
  35. package/dist/tools/config.js.map +1 -1
  36. package/dist/tools/constraints.d.ts +10 -0
  37. package/dist/tools/constraints.d.ts.map +1 -1
  38. package/dist/tools/constraints.js +167 -0
  39. package/dist/tools/constraints.js.map +1 -1
  40. package/dist/tools/context.d.ts +29 -2
  41. package/dist/tools/context.d.ts.map +1 -1
  42. package/dist/tools/context.js +442 -106
  43. package/dist/tools/context.js.map +1 -1
  44. package/dist/tools/files.d.ts +8 -0
  45. package/dist/tools/files.d.ts.map +1 -1
  46. package/dist/tools/files.js +125 -0
  47. package/dist/tools/files.js.map +1 -1
  48. package/dist/tools/messaging.d.ts +8 -0
  49. package/dist/tools/messaging.d.ts.map +1 -1
  50. package/dist/tools/messaging.js +134 -0
  51. package/dist/tools/messaging.js.map +1 -1
  52. package/dist/tools/tasks.d.ts +32 -0
  53. package/dist/tools/tasks.d.ts.map +1 -1
  54. package/dist/tools/tasks.js +651 -8
  55. package/dist/tools/tasks.js.map +1 -1
  56. package/dist/tools/utils.d.ts +10 -0
  57. package/dist/tools/utils.d.ts.map +1 -1
  58. package/dist/tools/utils.js +179 -21
  59. package/dist/tools/utils.js.map +1 -1
  60. package/dist/types.d.ts +26 -0
  61. package/dist/types.d.ts.map +1 -1
  62. package/docs/AI_AGENT_GUIDE.md +25 -3
  63. package/docs/DECISION_CONTEXT.md +474 -0
  64. package/docs/HELP_PREVIEW_COMPARISON.md +259 -0
  65. package/docs/TASK_ACTIONS.md +311 -10
  66. package/docs/TASK_DEPENDENCIES.md +748 -0
  67. package/docs/TASK_LINKING.md +188 -8
  68. package/docs/TOOL_REFERENCE.md +158 -1
  69. package/docs/WORKFLOWS.md +25 -3
  70. package/package.json +4 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,124 @@ All notable changes to sqlew will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.2.3] - 2025-10-20
9
+
10
+ ### Changed
11
+ - **Code Organization - Major Refactoring**
12
+ - Reduced `src/index.ts` from 1,534 lines to 525 lines (66% reduction)
13
+ - Extracted 1,009 lines of help/example documentation to respective tool files
14
+ - Moved help/example functions to 7 tool files: `context.ts`, `messaging.ts`, `files.ts`, `constraints.ts`, `utils.ts`, `config.ts`, `tasks.ts`
15
+ - Improved maintainability: Help/example documentation now co-located with tool implementations
16
+ - Zero API changes: All 14 help/example actions remain fully backward compatible
17
+
18
+ - **File Watcher Documentation Updates**
19
+ - Corrected token savings claims: Changed "97% token reduction" to "save 300 tokens per file compared to registering watchers manually"
20
+ - Updated claims in 5 locations across `taskHelp()` and `taskExample()` functions
21
+ - Added best practice recommendation: "Except in exceptional cases, it is recommended to set up file watchers for all tasks that involve code changes"
22
+ - Clarified automatic file watching benefits with accurate token efficiency metrics
23
+
24
+ - **Package Description Update**
25
+ - Updated description from "97% token reduction" to "96% token efficiency through API consolidation"
26
+ - More accurately reflects the token savings from v2.0 action-based API consolidation
27
+
28
+ ### Technical Details
29
+ - **Files Modified:**
30
+ - `src/index.ts`: Simplified to pure routing logic (525 lines)
31
+ - `src/tools/context.ts`: Added `decisionHelp()`, `decisionExample()` (+217 lines)
32
+ - `src/tools/messaging.ts`: Added `messageHelp()`, `messageExample()` (+136 lines)
33
+ - `src/tools/files.ts`: Added `fileHelp()`, `fileExample()` (+127 lines)
34
+ - `src/tools/constraints.ts`: Added `constraintHelp()`, `constraintExample()` (+169 lines)
35
+ - `src/tools/utils.ts`: Added `statsHelp()`, `statsExample()` (+137 lines)
36
+ - `src/tools/config.ts`: Added `configHelp()`, `configExample()` (+107 lines)
37
+ - `src/tools/tasks.ts`: Added `taskExample()` (+200 lines, `taskHelp()` already existed)
38
+
39
+ - **Pattern Applied:** Extract inline switch case blocks to exported functions in tool files
40
+ - **Backward Compatibility:** 100% maintained - all existing MCP tool calls work identically
41
+ - **Build:** TypeScript compilation successful with zero errors
42
+
43
+ ## [3.2.2] - 2025-10-18
44
+
45
+ ### Added
46
+ - **Decision Context - Rich Decision Documentation** (GitHub Discussion #9)
47
+ - New `add_decision_context` action: Attach rationale, alternatives, and trade-offs to decisions
48
+ - New `list_decision_contexts` action: Query decision contexts with flexible filters
49
+ - Enhanced `get` action with `include_context` parameter to retrieve decision with full context
50
+ - Database schema: New `t_decision_context` table with relationships to decisions, tasks, and constraints
51
+ - Migration script for existing databases (v3.2.0 → v3.2.2)
52
+ - Comprehensive documentation: `docs/DECISION_CONTEXT.md` (500+ lines with real-world scenarios)
53
+
54
+ ### Features
55
+ - **Rich Context Storage:**
56
+ - `rationale` (required): Explanation of WHY a decision was made
57
+ - `alternatives_considered` (optional): JSON array of rejected alternatives with reasons
58
+ - `tradeoffs` (optional): JSON object with pros/cons analysis
59
+ - `decided_by` (optional): Agent who made the decision
60
+ - `related_task_id` (optional): Link to implementation task
61
+ - `related_constraint_id` (optional): Link to system constraint
62
+
63
+ ### Use Cases (from DECISION_CONTEXT.md)
64
+ - **Multi-Session AI Development**: Preserve decision rationale across days/weeks of development
65
+ - **Architecture Reviews & Team Handoffs**: Explain non-standard choices to future developers
66
+ - **Breaking Changes & Deprecations**: Document migration requirements and timelines
67
+ - **Performance Optimization Trade-offs**: Prevent future "optimizations" that regress quality
68
+
69
+ ### Documentation
70
+ - Added `docs/DECISION_CONTEXT.md` - Comprehensive guide with 4 detailed scenarios:
71
+ - Scenario 1: Multi-Session AI Development (auth token storage example)
72
+ - Scenario 2: Architecture Reviews (SQLite vs PostgreSQL example)
73
+ - Scenario 3: Breaking Changes (API versioning example)
74
+ - Scenario 4: Performance Optimization (caching strategy example)
75
+ - Includes best practices, token efficiency guidelines, and migration patterns
76
+ - API reference with all parameters and examples
77
+
78
+ ### Technical Details
79
+ - **Backward Compatible**: Zero breaking changes - new feature is completely optional
80
+ - **Migration Safety**: CREATE TABLE IF NOT EXISTS pattern ensures idempotent migration
81
+ - **Token Efficiency**: Optional feature - only add context when decision rationale is critical
82
+ - **Indexes**: 3 optimized indexes for key-based, task-based, and constraint-based queries
83
+ - **CASCADE Deletion**: Contexts are deleted when parent decision is removed
84
+ - **SET NULL**: Task/constraint links remain even if linked resources are deleted
85
+
86
+ ### Changed
87
+ - Database schema version bumped to v3.2.2
88
+ - MCP server version updated to 3.2.2
89
+ - Enhanced `decision` tool with 2 new actions (total: 17 actions)
90
+
91
+ ## [3.2.0] - 2025-10-18
92
+
93
+ ### Added
94
+ - **Task Dependency Management** (GitHub Issue #16)
95
+ - New `add_dependency` action: Add blocking relationships between tasks
96
+ - New `remove_dependency` action: Remove blocking relationships
97
+ - New `get_dependencies` action: Query task dependencies bidirectionally
98
+ - Circular dependency detection (direct and transitive) using recursive CTE
99
+ - Enhanced `list` action with `include_dependency_counts` parameter
100
+ - Enhanced `get` action with `include_dependencies` parameter
101
+ - Database schema: New `t_task_dependencies` table with CASCADE deletion
102
+ - Migration script for existing databases (v3.1.x → v3.2.0)
103
+ - Comprehensive validation: self-dependency, circular, archived task checks
104
+ - New documentation: `docs/TASK_DEPENDENCIES.md`
105
+
106
+ ### Changed
107
+ - Task system now supports workflow dependencies and blocking relationships
108
+ - Database schema version bumped to v3.2.0
109
+ - `list` action returns dependency counts when `include_dependency_counts: true`
110
+ - `get` action includes dependency arrays when `include_dependencies: true`
111
+
112
+ ### Documentation
113
+ - Added `docs/TASK_DEPENDENCIES.md` - Focused guide for dependency management (500+ lines)
114
+ - Updated `docs/TASK_ACTIONS.md` - Documented 3 new dependency actions and enhanced parameters
115
+ - Updated `docs/TASK_LINKING.md` - Added task-to-task dependency section explaining differences
116
+ - Updated `README.md` - Mentioned dependency feature in task system highlights
117
+
118
+ ### Technical Details
119
+ - **Circular Detection Algorithm**: Recursive CTE with 100-level depth limit
120
+ - **Validation Rules**: 5 comprehensive checks (self-dep, circular, existence, archived)
121
+ - **Token Efficiency**: Metadata-only queries by default (~88% reduction vs full details)
122
+ - **CASCADE Deletion**: Dependencies auto-remove when tasks are deleted
123
+ - **Index Support**: `idx_task_deps_blocked` for efficient reverse queries
124
+ - **Bidirectional Queries**: Find blockers and blocking tasks in single call
125
+
8
126
  ## [3.1.2] - 2025-10-18
9
127
 
10
128
  ### Added
package/README.md CHANGED
@@ -59,6 +59,15 @@ Traditional code only tells you **WHAT** and **HOW**. sqlew adds **WHY**:
59
59
  ### 🎯 Key Features
60
60
  - **7 Specialized Tools**: decisions, messages, tasks, files, constraints, stats, config
61
61
  - **Metadata-Driven**: Tag, layer, scope, and version everything
62
+ - **Decision Context** (v3.2.2): Rich decision documentation with rationale and trade-offs
63
+ - Document **WHY** decisions were made, not just **WHAT**
64
+ - Store alternatives considered and pros/cons analysis
65
+ - Perfect for multi-session AI development and team handoffs
66
+ - Link decisions to tasks and constraints for full traceability
67
+ - **Task Dependencies** (v3.2.0): Blocking relationships with circular detection
68
+ - Sequential workflow management (API before UI, DB before ORM)
69
+ - Bidirectional queries (find blockers and blocking tasks)
70
+ - Token-efficient metadata-only queries (~88% reduction)
62
71
  - **Auto-File Tracking** (v3.0.2): Zero-token task management via automatic file watching
63
72
  - Auto-transition: `todo` → `in_progress` on file edit
64
73
  - Auto-complete: `in_progress` → `done` when acceptance criteria pass
@@ -195,10 +204,14 @@ Each tool supports `action: "help"` for full documentation and `action: "example
195
204
 
196
205
  **Task System:**
197
206
  - 📋 **[Task Overview](docs/TASK_OVERVIEW.md)** - Lifecycle, status transitions, auto-stale (363 lines, ~10k tokens)
198
- - ⚙️ **[Task Actions](docs/TASK_ACTIONS.md)** - All actions with examples (854 lines, ~21k tokens)
199
- - 🔗 **[Task Linking](docs/TASK_LINKING.md)** - Link tasks to decisions/constraints/files (729 lines, ~18k tokens)
207
+ - ⚙️ **[Task Actions](docs/TASK_ACTIONS.md)** - All actions with examples (1,100+ lines, ~28k tokens)
208
+ - 🔗 **[Task Dependencies](docs/TASK_DEPENDENCIES.md)** - Blocking relationships, circular detection (500+ lines, ~13k tokens) **NEW v3.2.0**
209
+ - 🔗 **[Task Linking](docs/TASK_LINKING.md)** - Link tasks to decisions/constraints/files/tasks (900+ lines, ~23k tokens)
200
210
  - 🔄 **[Task Migration](docs/TASK_MIGRATION.md)** - Migrate from decision-based tracking (701 lines, ~18k tokens)
201
211
 
212
+ **Decision Context (v3.2.2):**
213
+ - 📝 **[Decision Context](docs/DECISION_CONTEXT.md)** - Rich decision documentation with rationale, alternatives, and tradeoffs (500+ lines, ~15k tokens) **NEW v3.2.2**
214
+
202
215
  **Auto File Tracking (v3.0.2):**
203
216
  - 🤖 **[Auto File Tracking](docs/AUTO_FILE_TRACKING.md)** - Zero-token task management, setup, troubleshooting
204
217
  - ✅ **[Acceptance Criteria](docs/ACCEPTANCE_CRITERIA.md)** - All check types (tests_pass, code_removed, code_contains, file_exists)
@@ -257,6 +270,48 @@ Each tool supports `action: "help"` for full documentation and `action: "example
257
270
  }
258
271
  ```
259
272
 
273
+ ### Decision Context (v3.2.2)
274
+
275
+ ```javascript
276
+ // Record a decision with rich context
277
+ {
278
+ action: "set",
279
+ key: "database_choice",
280
+ value: "PostgreSQL over MongoDB",
281
+ layer: "data",
282
+ tags: ["architecture", "database"]
283
+ }
284
+
285
+ // Add rationale and tradeoffs
286
+ {
287
+ action: "add_decision_context",
288
+ key: "database_choice",
289
+ rationale: "Selected PostgreSQL because: (1) Complex relational queries required for reporting, (2) ACID compliance critical for financial data, (3) Team has strong SQL expertise",
290
+ alternatives_considered: [
291
+ {
292
+ option: "MongoDB",
293
+ reason: "Rejected due to weak consistency guarantees for financial data"
294
+ },
295
+ {
296
+ option: "MySQL",
297
+ reason: "Rejected due to limited JSON support needed for metadata"
298
+ }
299
+ ],
300
+ tradeoffs: {
301
+ pros: ["Strong consistency", "Complex queries", "Team expertise"],
302
+ cons: ["Less flexible schema", "Vertical scaling limitations"]
303
+ }
304
+ }
305
+
306
+ // Retrieve decision with full context
307
+ {
308
+ action: "get",
309
+ key: "database_choice",
310
+ include_context: true
311
+ }
312
+ // → Returns decision + rationale + alternatives + tradeoffs
313
+ ```
314
+
260
315
  ### Session Continuity
261
316
 
262
317
  ```javascript
@@ -300,7 +355,7 @@ on [GitHub Sponsors](https://github.com/sponsors/sin5ddd)
300
355
 
301
356
  ## Version
302
357
 
303
- Current version: **3.0.0**
358
+ Current version: **3.2.2**
304
359
  See [CHANGELOG.md](CHANGELOG.md) for release history.
305
360
 
306
361
  ## License
package/assets/schema.sql CHANGED
@@ -1,5 +1,5 @@
1
1
  -- MCP Shared Context Server - Database Schema
2
- -- Version: 3.0.0 (with Kanban Task Watcher, activity log, smart defaults, batch ops, templates)
2
+ -- Version: 3.3.0 (with Decision Context, Kanban Task Watcher, activity log, smart defaults, batch ops, templates)
3
3
 
4
4
  -- ============================================================================
5
5
  -- Master Tables (Normalization)
@@ -166,6 +166,21 @@ CREATE TABLE IF NOT EXISTS t_decision_templates (
166
166
  ts INTEGER DEFAULT (unixepoch())
167
167
  );
168
168
 
169
+ -- Decision Context (v3.3.0 - Rich Decision Documentation)
170
+ CREATE TABLE IF NOT EXISTS t_decision_context (
171
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
172
+ decision_key_id INTEGER NOT NULL REFERENCES m_context_keys(id) ON DELETE CASCADE,
173
+ rationale TEXT NOT NULL,
174
+ alternatives_considered TEXT, -- JSON array: ["Alternative 1", "Alternative 2"]
175
+ tradeoffs TEXT, -- JSON object: {"pros": ["Pro 1"], "cons": ["Con 1"]}
176
+ decided_by_agent_id INTEGER REFERENCES m_agents(id),
177
+ decision_date INTEGER DEFAULT (unixepoch()),
178
+ related_task_id INTEGER REFERENCES t_tasks(id) ON DELETE SET NULL,
179
+ related_constraint_id INTEGER REFERENCES t_constraints(id) ON DELETE SET NULL,
180
+ ts INTEGER DEFAULT (unixepoch()),
181
+ UNIQUE(decision_key_id, id)
182
+ );
183
+
169
184
  -- ============================================================================
170
185
  -- Kanban Task Watcher (v3.0.0)
171
186
  -- ============================================================================
@@ -228,6 +243,14 @@ CREATE TABLE IF NOT EXISTS t_task_file_links (
228
243
  PRIMARY KEY (task_id, file_id)
229
244
  );
230
245
 
246
+ -- Task dependencies (blocking relationships)
247
+ CREATE TABLE IF NOT EXISTS t_task_dependencies (
248
+ blocker_task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
249
+ blocked_task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
250
+ created_ts INTEGER DEFAULT (unixepoch()),
251
+ PRIMARY KEY (blocker_task_id, blocked_task_id)
252
+ );
253
+
231
254
  -- ============================================================================
232
255
  -- Indexes
233
256
  -- ============================================================================
@@ -251,6 +274,10 @@ CREATE INDEX IF NOT EXISTS idx_activity_log_action ON t_activity_log(action_type
251
274
  CREATE INDEX IF NOT EXISTS idx_task_status ON t_tasks(status_id);
252
275
  CREATE INDEX IF NOT EXISTS idx_task_updated ON t_tasks(updated_ts DESC);
253
276
  CREATE INDEX IF NOT EXISTS idx_task_assignee ON t_tasks(assigned_agent_id);
277
+ CREATE INDEX IF NOT EXISTS idx_task_deps_blocked ON t_task_dependencies(blocked_task_id);
278
+ CREATE INDEX IF NOT EXISTS idx_decision_context_key ON t_decision_context(decision_key_id, ts DESC);
279
+ CREATE INDEX IF NOT EXISTS idx_decision_context_task ON t_decision_context(related_task_id);
280
+ CREATE INDEX IF NOT EXISTS idx_decision_context_constraint ON t_decision_context(related_constraint_id);
254
281
 
255
282
  -- ============================================================================
256
283
  -- Views (Token Efficiency)
@@ -141,4 +141,69 @@ export declare function getAllConfig(db: DatabaseType): Record<string, string>;
141
141
  * @returns Result from function
142
142
  */
143
143
  export declare function transaction<T>(db: DatabaseType, fn: () => T): T;
144
+ /**
145
+ * Add decision context to a decision
146
+ *
147
+ * @param db - Database instance
148
+ * @param decisionKey - Decision key to attach context to
149
+ * @param rationale - Rationale for the decision (required)
150
+ * @param alternatives - JSON array of alternatives considered (optional)
151
+ * @param tradeoffs - JSON object with pros/cons (optional)
152
+ * @param decidedBy - Agent name who decided (optional)
153
+ * @param relatedTaskId - Related task ID (optional)
154
+ * @param relatedConstraintId - Related constraint ID (optional)
155
+ * @returns Context ID
156
+ */
157
+ export declare function addDecisionContext(db: DatabaseType, decisionKey: string, rationale: string, alternatives?: string | null, tradeoffs?: string | null, decidedBy?: string | null, relatedTaskId?: number | null, relatedConstraintId?: number | null): number;
158
+ /**
159
+ * Get decision with context
160
+ *
161
+ * @param db - Database instance
162
+ * @param decisionKey - Decision key
163
+ * @returns Decision with context or null if not found
164
+ */
165
+ export declare function getDecisionWithContext(db: DatabaseType, decisionKey: string): {
166
+ key: string;
167
+ value: string;
168
+ version: string;
169
+ status: string;
170
+ layer: string | null;
171
+ decided_by: string | null;
172
+ updated: string;
173
+ context: {
174
+ id: number;
175
+ rationale: string;
176
+ alternatives_considered: string | null;
177
+ tradeoffs: string | null;
178
+ decided_by: string | null;
179
+ decision_date: string;
180
+ related_task_id: number | null;
181
+ related_constraint_id: number | null;
182
+ }[];
183
+ } | null;
184
+ /**
185
+ * List decision contexts with optional filters
186
+ *
187
+ * @param db - Database instance
188
+ * @param filters - Optional filters
189
+ * @returns Array of decision contexts
190
+ */
191
+ export declare function listDecisionContexts(db: DatabaseType, filters?: {
192
+ decisionKey?: string;
193
+ relatedTaskId?: number;
194
+ relatedConstraintId?: number;
195
+ decidedBy?: string;
196
+ limit?: number;
197
+ offset?: number;
198
+ }): Array<{
199
+ id: number;
200
+ decision_key: string;
201
+ rationale: string;
202
+ alternatives_considered: string | null;
203
+ tradeoffs: string | null;
204
+ decided_by: string | null;
205
+ decision_date: string;
206
+ related_task_id: number | null;
207
+ related_constraint_id: number | null;
208
+ }>;
144
209
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAM3D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAyHhE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,YAAY,CAK1C;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAYvE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQhF;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3E;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAGpG;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAInG;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,MAAM,CAK5F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrE;AAMD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAW/D"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
package/dist/database.js CHANGED
@@ -354,4 +354,194 @@ export function transaction(db, fn) {
354
354
  throw error;
355
355
  }
356
356
  }
357
+ // ============================================================================
358
+ // Decision Context Management (v3.2.2)
359
+ // ============================================================================
360
+ /**
361
+ * Validate JSON structure for alternatives array
362
+ * @param alternatives - JSON string or null
363
+ * @throws Error if JSON is invalid or not an array
364
+ */
365
+ function validateAlternativesJson(alternatives) {
366
+ if (alternatives === null || alternatives === undefined)
367
+ return;
368
+ try {
369
+ const parsed = JSON.parse(alternatives);
370
+ if (!Array.isArray(parsed)) {
371
+ throw new Error('alternatives_considered must be a JSON array');
372
+ }
373
+ }
374
+ catch (error) {
375
+ if (error instanceof SyntaxError) {
376
+ throw new Error('alternatives_considered contains invalid JSON');
377
+ }
378
+ throw error;
379
+ }
380
+ }
381
+ /**
382
+ * Validate JSON structure for tradeoffs object
383
+ * @param tradeoffs - JSON string or null
384
+ * @throws Error if JSON is invalid or doesn't have pros/cons structure
385
+ */
386
+ function validateTradeoffsJson(tradeoffs) {
387
+ if (tradeoffs === null || tradeoffs === undefined)
388
+ return;
389
+ try {
390
+ const parsed = JSON.parse(tradeoffs);
391
+ if (typeof parsed !== 'object' || parsed === null) {
392
+ throw new Error('tradeoffs must be a JSON object');
393
+ }
394
+ // Optional: Check for pros/cons keys if provided
395
+ if (parsed.pros !== undefined && !Array.isArray(parsed.pros)) {
396
+ throw new Error('tradeoffs.pros must be an array');
397
+ }
398
+ if (parsed.cons !== undefined && !Array.isArray(parsed.cons)) {
399
+ throw new Error('tradeoffs.cons must be an array');
400
+ }
401
+ }
402
+ catch (error) {
403
+ if (error instanceof SyntaxError) {
404
+ throw new Error('tradeoffs contains invalid JSON');
405
+ }
406
+ throw error;
407
+ }
408
+ }
409
+ /**
410
+ * Add decision context to a decision
411
+ *
412
+ * @param db - Database instance
413
+ * @param decisionKey - Decision key to attach context to
414
+ * @param rationale - Rationale for the decision (required)
415
+ * @param alternatives - JSON array of alternatives considered (optional)
416
+ * @param tradeoffs - JSON object with pros/cons (optional)
417
+ * @param decidedBy - Agent name who decided (optional)
418
+ * @param relatedTaskId - Related task ID (optional)
419
+ * @param relatedConstraintId - Related constraint ID (optional)
420
+ * @returns Context ID
421
+ */
422
+ export function addDecisionContext(db, decisionKey, rationale, alternatives = null, tradeoffs = null, decidedBy = null, relatedTaskId = null, relatedConstraintId = null) {
423
+ // Validate JSON inputs
424
+ validateAlternativesJson(alternatives);
425
+ validateTradeoffsJson(tradeoffs);
426
+ // Get decision key ID
427
+ const keyId = getOrCreateContextKey(db, decisionKey);
428
+ // Get agent ID if provided
429
+ let agentId = null;
430
+ if (decidedBy) {
431
+ agentId = getOrCreateAgent(db, decidedBy);
432
+ }
433
+ // Insert context
434
+ const result = db.prepare(`
435
+ INSERT INTO t_decision_context (
436
+ decision_key_id,
437
+ rationale,
438
+ alternatives_considered,
439
+ tradeoffs,
440
+ decided_by_agent_id,
441
+ related_task_id,
442
+ related_constraint_id
443
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
444
+ `).run(keyId, rationale, alternatives, tradeoffs, agentId, relatedTaskId, relatedConstraintId);
445
+ return result.lastInsertRowid;
446
+ }
447
+ /**
448
+ * Get decision with context
449
+ *
450
+ * @param db - Database instance
451
+ * @param decisionKey - Decision key
452
+ * @returns Decision with context or null if not found
453
+ */
454
+ export function getDecisionWithContext(db, decisionKey) {
455
+ // First get the decision
456
+ const decision = db.prepare(`
457
+ SELECT
458
+ k.key,
459
+ d.value,
460
+ d.version,
461
+ CASE d.status WHEN 1 THEN 'active' WHEN 2 THEN 'deprecated' ELSE 'draft' END as status,
462
+ l.name as layer,
463
+ a.name as decided_by,
464
+ datetime(d.ts, 'unixepoch') as updated
465
+ FROM t_decisions d
466
+ JOIN m_context_keys k ON d.key_id = k.id
467
+ LEFT JOIN m_layers l ON d.layer_id = l.id
468
+ LEFT JOIN m_agents a ON d.agent_id = a.id
469
+ WHERE k.key = ?
470
+ `).get(decisionKey);
471
+ if (!decision)
472
+ return null;
473
+ // Get all contexts for this decision
474
+ const contexts = db.prepare(`
475
+ SELECT
476
+ dc.id,
477
+ dc.rationale,
478
+ dc.alternatives_considered,
479
+ dc.tradeoffs,
480
+ a.name as decided_by,
481
+ datetime(dc.decision_date, 'unixepoch') as decision_date,
482
+ dc.related_task_id,
483
+ dc.related_constraint_id
484
+ FROM t_decision_context dc
485
+ JOIN m_context_keys k ON dc.decision_key_id = k.id
486
+ LEFT JOIN m_agents a ON dc.decided_by_agent_id = a.id
487
+ WHERE k.key = ?
488
+ ORDER BY dc.decision_date DESC
489
+ `).all(decisionKey);
490
+ return {
491
+ ...decision,
492
+ context: contexts,
493
+ };
494
+ }
495
+ /**
496
+ * List decision contexts with optional filters
497
+ *
498
+ * @param db - Database instance
499
+ * @param filters - Optional filters
500
+ * @returns Array of decision contexts
501
+ */
502
+ export function listDecisionContexts(db, filters) {
503
+ let query = `
504
+ SELECT
505
+ dc.id,
506
+ k.key as decision_key,
507
+ dc.rationale,
508
+ dc.alternatives_considered,
509
+ dc.tradeoffs,
510
+ a.name as decided_by,
511
+ datetime(dc.decision_date, 'unixepoch') as decision_date,
512
+ dc.related_task_id,
513
+ dc.related_constraint_id
514
+ FROM t_decision_context dc
515
+ JOIN m_context_keys k ON dc.decision_key_id = k.id
516
+ LEFT JOIN m_agents a ON dc.decided_by_agent_id = a.id
517
+ WHERE 1=1
518
+ `;
519
+ const params = [];
520
+ if (filters?.decisionKey) {
521
+ query += ' AND k.key = ?';
522
+ params.push(filters.decisionKey);
523
+ }
524
+ if (filters?.relatedTaskId !== undefined) {
525
+ query += ' AND dc.related_task_id = ?';
526
+ params.push(filters.relatedTaskId);
527
+ }
528
+ if (filters?.relatedConstraintId !== undefined) {
529
+ query += ' AND dc.related_constraint_id = ?';
530
+ params.push(filters.relatedConstraintId);
531
+ }
532
+ if (filters?.decidedBy) {
533
+ query += ' AND a.name = ?';
534
+ params.push(filters.decidedBy);
535
+ }
536
+ query += ' ORDER BY dc.decision_date DESC';
537
+ if (filters?.limit) {
538
+ query += ' LIMIT ?';
539
+ params.push(filters.limit);
540
+ }
541
+ if (filters?.offset) {
542
+ query += ' OFFSET ?';
543
+ params.push(filters.offset);
544
+ }
545
+ return db.prepare(query).all(...params);
546
+ }
357
547
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}