sqlew 5.2.0 → 5.2.2

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 (109) hide show
  1. package/CHANGELOG.md +2169 -2110
  2. package/LICENSE +190 -190
  3. package/NOTICE +24 -24
  4. package/README.md +204 -199
  5. package/dist/adapters/mysql-adapter.js +3 -3
  6. package/dist/adapters/postgresql-adapter.js +3 -3
  7. package/dist/cli/db-export.js +32 -32
  8. package/dist/cli/db-import.js +30 -30
  9. package/dist/cli/hooks/codex-transcript.d.ts +23 -0
  10. package/dist/cli/hooks/codex-transcript.d.ts.map +1 -0
  11. package/dist/cli/hooks/codex-transcript.js +134 -0
  12. package/dist/cli/hooks/codex-transcript.js.map +1 -0
  13. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
  14. package/dist/cli/hooks/on-exit-plan.js +30 -3
  15. package/dist/cli/hooks/on-exit-plan.js.map +1 -1
  16. package/dist/cli/hooks/on-prompt.d.ts +2 -2
  17. package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
  18. package/dist/cli/hooks/on-prompt.js +33 -16
  19. package/dist/cli/hooks/on-prompt.js.map +1 -1
  20. package/dist/cli/hooks/plan-pattern-extractor.d.ts +2 -0
  21. package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -1
  22. package/dist/cli/hooks/plan-pattern-extractor.js +1 -0
  23. package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -1
  24. package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
  25. package/dist/cli/hooks/plan-processor.js +1 -0
  26. package/dist/cli/hooks/plan-processor.js.map +1 -1
  27. package/dist/cli/hooks/pr-adr.js +5 -5
  28. package/dist/cli/hooks/stdin-parser.d.ts +4 -2
  29. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  30. package/dist/cli/hooks/stdin-parser.js +79 -9
  31. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  32. package/dist/cli/hooks/track-plan.js +15 -15
  33. package/dist/cli.js +48 -48
  34. package/dist/config/global-config.js +19 -19
  35. package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +32 -32
  36. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js +3 -3
  37. package/dist/database/migrations/v4/20260613000000_add_constraint_reason.d.ts +9 -0
  38. package/dist/database/migrations/v4/20260613000000_add_constraint_reason.d.ts.map +1 -0
  39. package/dist/database/migrations/v4/20260613000000_add_constraint_reason.js +31 -0
  40. package/dist/database/migrations/v4/20260613000000_add_constraint_reason.js.map +1 -0
  41. package/dist/help-data/constraint.toml +265 -259
  42. package/dist/help-data/decision.toml +845 -845
  43. package/dist/help-data/queue.toml +134 -134
  44. package/dist/schema.d.ts.map +1 -1
  45. package/dist/schema.js +4 -5
  46. package/dist/schema.js.map +1 -1
  47. package/dist/server/tool-schemas.js +30 -30
  48. package/dist/tests/docker/native/constraint-operations.test.js +38 -0
  49. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  50. package/dist/tests/docker/native/db-init.js +9 -9
  51. package/dist/tests/feature/constraint/reason.test.d.ts +7 -0
  52. package/dist/tests/feature/constraint/reason.test.d.ts.map +1 -0
  53. package/dist/tests/feature/constraint/reason.test.js +68 -0
  54. package/dist/tests/feature/constraint/reason.test.js.map +1 -0
  55. package/dist/tests/unit/hooks/codex-hook-normalization.test.d.ts +7 -0
  56. package/dist/tests/unit/hooks/codex-hook-normalization.test.d.ts.map +1 -0
  57. package/dist/tests/unit/hooks/codex-hook-normalization.test.js +112 -0
  58. package/dist/tests/unit/hooks/codex-hook-normalization.test.js.map +1 -0
  59. package/dist/tests/unit/hooks/grok-hook-normalization.test.js +45 -7
  60. package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -1
  61. package/dist/tests/unit/hooks/plan-pattern-extractor.test.d.ts +8 -0
  62. package/dist/tests/unit/hooks/plan-pattern-extractor.test.d.ts.map +1 -0
  63. package/dist/tests/unit/hooks/plan-pattern-extractor.test.js +110 -0
  64. package/dist/tests/unit/hooks/plan-pattern-extractor.test.js.map +1 -0
  65. package/dist/tests/utils/db-schema.js +48 -48
  66. package/dist/tests/utils/test-helpers.js +48 -48
  67. package/dist/tools/constraints/actions/add.d.ts.map +1 -1
  68. package/dist/tools/constraints/actions/add.js +1 -0
  69. package/dist/tools/constraints/actions/add.js.map +1 -1
  70. package/dist/tools/constraints/actions/get.d.ts.map +1 -1
  71. package/dist/tools/constraints/actions/get.js +9 -7
  72. package/dist/tools/constraints/actions/get.js.map +1 -1
  73. package/dist/tools/constraints/help/example.js +1 -1
  74. package/dist/tools/constraints/help/example.js.map +1 -1
  75. package/dist/types/constraint/params.d.ts +2 -0
  76. package/dist/types/constraint/params.d.ts.map +1 -1
  77. package/dist/types/view-entities.d.ts +1 -0
  78. package/dist/types/view-entities.d.ts.map +1 -1
  79. package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -1
  80. package/dist/utils/action-specs/constraint-specs.js +4 -3
  81. package/dist/utils/action-specs/constraint-specs.js.map +1 -1
  82. package/dist/utils/hook-queue.d.ts +2 -0
  83. package/dist/utils/hook-queue.d.ts.map +1 -1
  84. package/dist/utils/hook-queue.js.map +1 -1
  85. package/dist/utils/project-root.d.ts +1 -0
  86. package/dist/utils/project-root.d.ts.map +1 -1
  87. package/dist/utils/project-root.js +6 -0
  88. package/dist/utils/project-root.js.map +1 -1
  89. package/dist/utils/view-queries.d.ts.map +1 -1
  90. package/dist/utils/view-queries.js +1 -0
  91. package/dist/utils/view-queries.js.map +1 -1
  92. package/dist/watcher/queue-watcher.d.ts.map +1 -1
  93. package/dist/watcher/queue-watcher.js +1 -0
  94. package/dist/watcher/queue-watcher.js.map +1 -1
  95. package/docs/ADR_CONCEPTS.md +152 -152
  96. package/docs/CLI_USAGE.md +392 -392
  97. package/docs/CONFIGURATION.md +157 -157
  98. package/docs/CROSS_DATABASE.md +66 -66
  99. package/docs/DATABASE_AUTH.md +135 -135
  100. package/docs/HOOKS_GUIDE.md +116 -101
  101. package/docs/MIGRATION_TO_SAAS.md +176 -176
  102. package/docs/SHARED_DATABASE.md +108 -108
  103. package/package.json +88 -88
  104. package/scripts/copy-help-data.js +19 -19
  105. package/scripts/filter-test-output.js +78 -78
  106. package/dist/tests/docker/native/help-system.test.d.ts +0 -8
  107. package/dist/tests/docker/native/help-system.test.d.ts.map +0 -1
  108. package/dist/tests/docker/native/help-system.test.js +0 -508
  109. package/dist/tests/docker/native/help-system.test.js.map +0 -1
@@ -1,134 +1,134 @@
1
- # Queue Tool - Hook Queue Management
2
- # Manage pending items in .sqlew/queue/pending.json
3
-
4
- [tool]
5
- name = "queue"
6
- description = "Hook queue management - list, clear, remove pending items from .sqlew/queue/pending.json. Safe operations with lock mechanism to prevent race conditions with QueueWatcher."
7
-
8
- # =============================================================================
9
- # ACTIONS
10
- # =============================================================================
11
-
12
- [[actions]]
13
- name = "list"
14
- description = "List all pending items in the queue"
15
-
16
- [[actions.params]]
17
- name = "action"
18
- type = "string"
19
- required = true
20
- description = "Must be \"list\""
21
-
22
- [[actions.examples]]
23
- title = "List queue items"
24
- code = '''
25
- {
26
- "action": "list"
27
- }
28
- '''
29
- explanation = "Show all pending decisions/constraints in the queue with their index, type, and metadata"
30
-
31
- # -----------------------------------------------------------------------------
32
-
33
- [[actions]]
34
- name = "clear"
35
- description = "Clear all items from the queue"
36
-
37
- [[actions.params]]
38
- name = "action"
39
- type = "string"
40
- required = true
41
- description = "Must be \"clear\""
42
-
43
- [[actions.examples]]
44
- title = "Clear all queue items"
45
- code = '''
46
- {
47
- "action": "clear"
48
- }
49
- '''
50
- explanation = "Remove all pending items from the queue at once"
51
-
52
- # -----------------------------------------------------------------------------
53
-
54
- [[actions]]
55
- name = "remove"
56
- description = "Remove a specific item from the queue by index"
57
-
58
- [[actions.params]]
59
- name = "action"
60
- type = "string"
61
- required = true
62
- description = "Must be \"remove\""
63
-
64
- [[actions.params]]
65
- name = "index"
66
- type = "number"
67
- required = true
68
- description = "0-based index of the item to remove (use 'list' first to see indices)"
69
-
70
- [[actions.examples]]
71
- title = "Remove item at index 0"
72
- code = '''
73
- {
74
- "action": "remove",
75
- "index": 0
76
- }
77
- '''
78
- explanation = "Remove the first item from the queue. Use 'list' first to see available indices."
79
-
80
- # -----------------------------------------------------------------------------
81
-
82
- [[actions]]
83
- name = "help"
84
- description = "Get queue tool documentation"
85
-
86
- [[actions.params]]
87
- name = "action"
88
- type = "string"
89
- required = true
90
- description = "Must be \"help\""
91
-
92
- [[actions.examples]]
93
- title = "Get help"
94
- code = '''
95
- {
96
- "action": "help"
97
- }
98
- '''
99
- explanation = "Display queue tool documentation"
100
-
101
- # -----------------------------------------------------------------------------
102
-
103
- [[actions]]
104
- name = "example"
105
- description = "Get queue tool usage examples"
106
-
107
- [[actions.params]]
108
- name = "action"
109
- type = "string"
110
- required = true
111
- description = "Must be \"example\""
112
-
113
- [[actions.examples]]
114
- title = "Get examples"
115
- code = '''
116
- {
117
- "action": "example"
118
- }
119
- '''
120
- explanation = "Display queue tool usage examples"
121
-
122
- # =============================================================================
123
- # USE CASES
124
- # =============================================================================
125
-
126
- [[use_cases]]
127
- title = "Handle stuck items due to High Similarity"
128
- description = "Items may remain in queue if they have 60%+ similarity to existing decisions"
129
- steps = [
130
- "1. Use `queue list` to see stuck items",
131
- "2. Check existing decisions with `/sqlew search for <topic>`",
132
- "3. If truly duplicate: Use `queue remove` with the item index",
133
- "4. If different intent: Update the key to be more specific and retry"
134
- ]
1
+ # Queue Tool - Hook Queue Management
2
+ # Manage pending items in .sqlew/queue/pending.json
3
+
4
+ [tool]
5
+ name = "queue"
6
+ description = "Hook queue management - list, clear, remove pending items from .sqlew/queue/pending.json. Safe operations with lock mechanism to prevent race conditions with QueueWatcher."
7
+
8
+ # =============================================================================
9
+ # ACTIONS
10
+ # =============================================================================
11
+
12
+ [[actions]]
13
+ name = "list"
14
+ description = "List all pending items in the queue"
15
+
16
+ [[actions.params]]
17
+ name = "action"
18
+ type = "string"
19
+ required = true
20
+ description = "Must be \"list\""
21
+
22
+ [[actions.examples]]
23
+ title = "List queue items"
24
+ code = '''
25
+ {
26
+ "action": "list"
27
+ }
28
+ '''
29
+ explanation = "Show all pending decisions/constraints in the queue with their index, type, and metadata"
30
+
31
+ # -----------------------------------------------------------------------------
32
+
33
+ [[actions]]
34
+ name = "clear"
35
+ description = "Clear all items from the queue"
36
+
37
+ [[actions.params]]
38
+ name = "action"
39
+ type = "string"
40
+ required = true
41
+ description = "Must be \"clear\""
42
+
43
+ [[actions.examples]]
44
+ title = "Clear all queue items"
45
+ code = '''
46
+ {
47
+ "action": "clear"
48
+ }
49
+ '''
50
+ explanation = "Remove all pending items from the queue at once"
51
+
52
+ # -----------------------------------------------------------------------------
53
+
54
+ [[actions]]
55
+ name = "remove"
56
+ description = "Remove a specific item from the queue by index"
57
+
58
+ [[actions.params]]
59
+ name = "action"
60
+ type = "string"
61
+ required = true
62
+ description = "Must be \"remove\""
63
+
64
+ [[actions.params]]
65
+ name = "index"
66
+ type = "number"
67
+ required = true
68
+ description = "0-based index of the item to remove (use 'list' first to see indices)"
69
+
70
+ [[actions.examples]]
71
+ title = "Remove item at index 0"
72
+ code = '''
73
+ {
74
+ "action": "remove",
75
+ "index": 0
76
+ }
77
+ '''
78
+ explanation = "Remove the first item from the queue. Use 'list' first to see available indices."
79
+
80
+ # -----------------------------------------------------------------------------
81
+
82
+ [[actions]]
83
+ name = "help"
84
+ description = "Get queue tool documentation"
85
+
86
+ [[actions.params]]
87
+ name = "action"
88
+ type = "string"
89
+ required = true
90
+ description = "Must be \"help\""
91
+
92
+ [[actions.examples]]
93
+ title = "Get help"
94
+ code = '''
95
+ {
96
+ "action": "help"
97
+ }
98
+ '''
99
+ explanation = "Display queue tool documentation"
100
+
101
+ # -----------------------------------------------------------------------------
102
+
103
+ [[actions]]
104
+ name = "example"
105
+ description = "Get queue tool usage examples"
106
+
107
+ [[actions.params]]
108
+ name = "action"
109
+ type = "string"
110
+ required = true
111
+ description = "Must be \"example\""
112
+
113
+ [[actions.examples]]
114
+ title = "Get examples"
115
+ code = '''
116
+ {
117
+ "action": "example"
118
+ }
119
+ '''
120
+ explanation = "Display queue tool usage examples"
121
+
122
+ # =============================================================================
123
+ # USE CASES
124
+ # =============================================================================
125
+
126
+ [[use_cases]]
127
+ title = "Handle stuck items due to High Similarity"
128
+ description = "Items may remain in queue if they have 60%+ similarity to existing decisions"
129
+ steps = [
130
+ "1. Use `queue list` to see stuck items",
131
+ "2. Check existing decisions with `/sqlew search for <topic>`",
132
+ "3. If truly duplicate: Use `queue remove` with the item index",
133
+ "4. If different intent: Update the key to be more specific and retry"
134
+ ]
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpF;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CA+BD;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAC7E,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAsGD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpF;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CA+BD;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAC7E,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAqGD"}
package/dist/schema.js CHANGED
@@ -70,16 +70,15 @@ export async function verifySchemaIntegrity(adapter) {
70
70
  };
71
71
  // v5.0: All tables use m_ (master) / t_ (transaction) prefixes
72
72
  // v5.0: Task and file management tables removed
73
+ // v5.0: Help system tables removed (help data now lives in src/help-data/*.toml)
73
74
  const requiredTables = [
74
- // Master tables (10)
75
+ // Master tables (7)
75
76
  'm_projects', 'm_layers', 'm_context_keys', 'm_constraint_categories',
76
- 'm_help_tools', 'm_help_use_case_cats', 'm_builtin_policies',
77
- 'm_tags', 'm_scopes', 'm_help_actions',
78
- // Transaction tables (15)
77
+ 'm_builtin_policies', 'm_tags', 'm_scopes',
78
+ // Transaction tables (11)
79
79
  't_tag_index', 't_decisions', 't_decisions_numeric', 't_decision_history',
80
80
  't_decision_tags', 't_decision_scopes', 't_decision_context', 't_decision_policies',
81
81
  't_constraints', 't_constraint_tags', 't_token_usage',
82
- 't_help_action_params', 't_help_action_examples', 't_help_use_cases', 't_help_action_sequences',
83
82
  ];
84
83
  // v4.0: Views removed for cross-DB compatibility (replaced with application-level queries)
85
84
  const requiredViews = [];
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -121,38 +121,38 @@ export const TOOL_SCHEMAS = {
121
121
  export const TOOL_DESCRIPTIONS = {
122
122
  decision: 'Context Management - Store decisions with versioning and metadata. Use action: "help" for documentation.',
123
123
  constraint: 'Architectural Rules - Define and manage project constraints with priorities. Use action: "help" for documentation.',
124
- help: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
125
-
126
- Help System - Query action documentation, parameters, and workflow guidance
127
-
128
- Actions:
129
- - query_action: Get action documentation with parameters and examples
130
- - query_params: Get parameter list only (quick reference)
131
- - query_tool: Get tool overview and all actions
132
- - workflow_hints: Get common next actions after current action
133
- - batch_guide: Get guidance for batch operations
134
- - error_recovery: Analyze errors and suggest fixes
135
-
124
+ help: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
125
+
126
+ Help System - Query action documentation, parameters, and workflow guidance
127
+
128
+ Actions:
129
+ - query_action: Get action documentation with parameters and examples
130
+ - query_params: Get parameter list only (quick reference)
131
+ - query_tool: Get tool overview and all actions
132
+ - workflow_hints: Get common next actions after current action
133
+ - batch_guide: Get guidance for batch operations
134
+ - error_recovery: Analyze errors and suggest fixes
135
+
136
136
  Use this tool to understand how to use other sqlew tools. Returns only requested information (80-95% token reduction vs legacy help).`,
137
- example: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
138
-
139
- Example System - Browse and search code examples for sqlew tools
140
-
141
- Actions:
142
- - get: Get examples by tool, action, or topic
143
- - search: Search examples by keyword
144
- - list_all: List all available examples with filtering
145
-
137
+ example: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
138
+
139
+ Example System - Browse and search code examples for sqlew tools
140
+
141
+ Actions:
142
+ - get: Get examples by tool, action, or topic
143
+ - search: Search examples by keyword
144
+ - list_all: List all available examples with filtering
145
+
146
146
  Use this tool to find working code snippets. Returns only requested examples (token-efficient).`,
147
- use_case: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
148
-
149
- Use Case Catalog - Browse and search complete workflow scenarios
150
-
151
- Actions:
152
- - get: Get complete use case workflow by ID
153
- - search: Search use cases by keyword/category
154
- - list_all: List all use cases with filtering and pagination
155
-
147
+ use_case: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
148
+
149
+ Use Case Catalog - Browse and search complete workflow scenarios
150
+
151
+ Actions:
152
+ - get: Get complete use case workflow by ID
153
+ - search: Search use cases by keyword/category
154
+ - list_all: List all use cases with filtering and pagination
155
+
156
156
  Use this tool to learn end-to-end workflows and multi-step operations. Returns workflow steps with executable code examples.`,
157
157
  suggest: 'Intelligent decision/constraint suggestion system. Find related decisions by key pattern, tags, or full context. Prevents duplicates and ensures consistency.',
158
158
  queue: 'Hook queue management - list, clear, remove pending items from .sqlew/queue/pending.json. Use action: "help" for documentation.',
@@ -155,6 +155,44 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
155
155
  assert.strictEqual(lowPriority.priority, 1);
156
156
  assert.strictEqual(highPriority.priority, 4);
157
157
  });
158
+ it('should have nullable reason column on t_constraints', async () => {
159
+ const db = getDb();
160
+ const hasReasonColumn = await db.schema.hasColumn('t_constraints', 'reason');
161
+ assert.strictEqual(hasReasonColumn, true, 't_constraints should have reason column');
162
+ const constraintTextNoReason = 'Constraint without reason';
163
+ const constraintId = await insertConstraint(db, {
164
+ constraint_text: constraintTextNoReason,
165
+ category_id: categoryCodeStyleId,
166
+ priority: 2,
167
+ layer_id: businessLayerId,
168
+ project_id: projectId,
169
+ active: 1,
170
+ ts: Math.floor(Date.now() / 1000),
171
+ });
172
+ const constraint = await db('t_constraints')
173
+ .where({ id: constraintId })
174
+ .first();
175
+ assert.strictEqual(constraint.reason, null, 'reason should be NULL when not specified');
176
+ });
177
+ it('should store and retrieve reason text', async () => {
178
+ const db = getDb();
179
+ const reasonText = 'Prevents SQL injection via parameterized queries';
180
+ const constraintTextWithReason = 'Must use parameterized SQL statements';
181
+ const constraintId = await insertConstraint(db, {
182
+ constraint_text: constraintTextWithReason,
183
+ category_id: categorySecurityId,
184
+ priority: 4,
185
+ layer_id: dataLayerId,
186
+ project_id: projectId,
187
+ active: 1,
188
+ ts: Math.floor(Date.now() / 1000),
189
+ reason: reasonText,
190
+ });
191
+ const constraint = await db('t_constraints')
192
+ .where({ id: constraintId })
193
+ .first();
194
+ assert.strictEqual(constraint.reason, reasonText);
195
+ });
158
196
  });
159
197
  describe('Tag associations', () => {
160
198
  it('should associate constraint with tags', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-operations.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/constraint-operations.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-operations.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/constraint-operations.test.ts"],"names":[],"mappings":"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"}
@@ -103,11 +103,11 @@ export async function teardownDatabase(db) {
103
103
  async function dropAllTables(db, dbType) {
104
104
  if (dbType === 'mysql' || dbType === 'mariadb') {
105
105
  await db.raw('SET FOREIGN_KEY_CHECKS=0');
106
- const tables = await db.raw(`
107
- SELECT TABLE_NAME
108
- FROM INFORMATION_SCHEMA.TABLES
109
- WHERE TABLE_SCHEMA = DATABASE()
110
- AND TABLE_TYPE = 'BASE TABLE'
106
+ const tables = await db.raw(`
107
+ SELECT TABLE_NAME
108
+ FROM INFORMATION_SCHEMA.TABLES
109
+ WHERE TABLE_SCHEMA = DATABASE()
110
+ AND TABLE_TYPE = 'BASE TABLE'
111
111
  `);
112
112
  for (const row of tables[0]) {
113
113
  await db.raw(`DROP TABLE IF EXISTS \`${row.TABLE_NAME}\``);
@@ -115,10 +115,10 @@ async function dropAllTables(db, dbType) {
115
115
  await db.raw('SET FOREIGN_KEY_CHECKS=1');
116
116
  }
117
117
  else if (dbType === 'postgresql') {
118
- const tables = await db.raw(`
119
- SELECT tablename
120
- FROM pg_tables
121
- WHERE schemaname = 'public'
118
+ const tables = await db.raw(`
119
+ SELECT tablename
120
+ FROM pg_tables
121
+ WHERE schemaname = 'public'
122
122
  `);
123
123
  for (const row of tables.rows) {
124
124
  await db.raw(`DROP TABLE IF EXISTS "${row.tablename}" CASCADE`);
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Constraint Reason Field Feature Tests
3
+ *
4
+ * Verifies add → get round-trip for the optional reason field on constraints.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=reason.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reason.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/constraint/reason.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Constraint Reason Field Feature Tests
3
+ *
4
+ * Verifies add → get round-trip for the optional reason field on constraints.
5
+ */
6
+ import { describe, it, before, after } from 'node:test';
7
+ import assert from 'node:assert';
8
+ import { mkdirSync } from 'node:fs';
9
+ import { initializeDatabase, closeDatabase } from '../../../database.js';
10
+ import { ProjectContext } from '../../../utils/project-context.js';
11
+ import { addConstraint, getConstraints } from '../../../tools/constraints/index.js';
12
+ const TEST_DB_PATH = '.tmp-test/constraint-reason.db';
13
+ describe('Constraint Reason Field', () => {
14
+ before(async () => {
15
+ mkdirSync('.tmp-test', { recursive: true });
16
+ const adapter = await initializeDatabase({
17
+ databaseType: 'sqlite',
18
+ connection: { filename: TEST_DB_PATH }
19
+ });
20
+ const knex = adapter.getKnex();
21
+ const projectContext = ProjectContext.getInstance();
22
+ await projectContext.ensureProject(knex, 'test-constraint-reason', 'config', {
23
+ projectRootPath: process.cwd(),
24
+ });
25
+ });
26
+ after(async () => {
27
+ await closeDatabase();
28
+ });
29
+ it('should round-trip reason on add → get', async () => {
30
+ const reason = 'Prevents unbounded memory growth in long-running sessions';
31
+ const constraintText = 'reason-roundtrip-test-constraint';
32
+ const addResult = await addConstraint({
33
+ category: 'architecture',
34
+ constraint_text: constraintText,
35
+ priority: 'high',
36
+ reason,
37
+ });
38
+ const getResult = await getConstraints({ category: 'architecture' });
39
+ const constraint = getResult.constraints.find((c) => c.id === addResult.constraint_id);
40
+ assert.ok(constraint, 'Expected constraint to be found by id');
41
+ assert.ok('reason' in constraint);
42
+ assert.strictEqual(constraint.reason, reason);
43
+ });
44
+ it('should omit reason field when not provided on add → get', async () => {
45
+ const constraintText = 'no-reason-test-constraint';
46
+ const addResult = await addConstraint({
47
+ category: 'security',
48
+ constraint_text: constraintText,
49
+ priority: 'medium',
50
+ });
51
+ const getResult = await getConstraints({ category: 'security' });
52
+ const constraint = getResult.constraints.find((c) => c.id === addResult.constraint_id);
53
+ assert.ok(constraint, 'Expected constraint to be found by id');
54
+ assert.ok(!('reason' in constraint));
55
+ assert.strictEqual(constraint.reason, undefined);
56
+ });
57
+ it('should return success and constraint_id from add response', async () => {
58
+ const addResult = await addConstraint({
59
+ category: 'code-style',
60
+ constraint_text: 'add-response-regression-test',
61
+ priority: 'low',
62
+ reason: 'Regression check for add response shape',
63
+ });
64
+ assert.strictEqual(addResult.success, true);
65
+ assert.ok(addResult.constraint_id !== undefined && addResult.constraint_id !== null);
66
+ });
67
+ });
68
+ //# sourceMappingURL=reason.test.js.map