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.
- package/CHANGELOG.md +2169 -2110
- package/LICENSE +190 -190
- package/NOTICE +24 -24
- package/README.md +204 -199
- package/dist/adapters/mysql-adapter.js +3 -3
- package/dist/adapters/postgresql-adapter.js +3 -3
- package/dist/cli/db-export.js +32 -32
- package/dist/cli/db-import.js +30 -30
- package/dist/cli/hooks/codex-transcript.d.ts +23 -0
- package/dist/cli/hooks/codex-transcript.d.ts.map +1 -0
- package/dist/cli/hooks/codex-transcript.js +134 -0
- package/dist/cli/hooks/codex-transcript.js.map +1 -0
- package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
- package/dist/cli/hooks/on-exit-plan.js +30 -3
- package/dist/cli/hooks/on-exit-plan.js.map +1 -1
- package/dist/cli/hooks/on-prompt.d.ts +2 -2
- package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
- package/dist/cli/hooks/on-prompt.js +33 -16
- package/dist/cli/hooks/on-prompt.js.map +1 -1
- package/dist/cli/hooks/plan-pattern-extractor.d.ts +2 -0
- package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -1
- package/dist/cli/hooks/plan-pattern-extractor.js +1 -0
- package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -1
- package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
- package/dist/cli/hooks/plan-processor.js +1 -0
- package/dist/cli/hooks/plan-processor.js.map +1 -1
- package/dist/cli/hooks/pr-adr.js +5 -5
- package/dist/cli/hooks/stdin-parser.d.ts +4 -2
- package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
- package/dist/cli/hooks/stdin-parser.js +79 -9
- package/dist/cli/hooks/stdin-parser.js.map +1 -1
- package/dist/cli/hooks/track-plan.js +15 -15
- package/dist/cli.js +48 -48
- package/dist/config/global-config.js +19 -19
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +32 -32
- package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js +3 -3
- package/dist/database/migrations/v4/20260613000000_add_constraint_reason.d.ts +9 -0
- package/dist/database/migrations/v4/20260613000000_add_constraint_reason.d.ts.map +1 -0
- package/dist/database/migrations/v4/20260613000000_add_constraint_reason.js +31 -0
- package/dist/database/migrations/v4/20260613000000_add_constraint_reason.js.map +1 -0
- package/dist/help-data/constraint.toml +265 -259
- package/dist/help-data/decision.toml +845 -845
- package/dist/help-data/queue.toml +134 -134
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +4 -5
- package/dist/schema.js.map +1 -1
- package/dist/server/tool-schemas.js +30 -30
- package/dist/tests/docker/native/constraint-operations.test.js +38 -0
- package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
- package/dist/tests/docker/native/db-init.js +9 -9
- package/dist/tests/feature/constraint/reason.test.d.ts +7 -0
- package/dist/tests/feature/constraint/reason.test.d.ts.map +1 -0
- package/dist/tests/feature/constraint/reason.test.js +68 -0
- package/dist/tests/feature/constraint/reason.test.js.map +1 -0
- package/dist/tests/unit/hooks/codex-hook-normalization.test.d.ts +7 -0
- package/dist/tests/unit/hooks/codex-hook-normalization.test.d.ts.map +1 -0
- package/dist/tests/unit/hooks/codex-hook-normalization.test.js +112 -0
- package/dist/tests/unit/hooks/codex-hook-normalization.test.js.map +1 -0
- package/dist/tests/unit/hooks/grok-hook-normalization.test.js +45 -7
- package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -1
- package/dist/tests/unit/hooks/plan-pattern-extractor.test.d.ts +8 -0
- package/dist/tests/unit/hooks/plan-pattern-extractor.test.d.ts.map +1 -0
- package/dist/tests/unit/hooks/plan-pattern-extractor.test.js +110 -0
- package/dist/tests/unit/hooks/plan-pattern-extractor.test.js.map +1 -0
- package/dist/tests/utils/db-schema.js +48 -48
- package/dist/tests/utils/test-helpers.js +48 -48
- package/dist/tools/constraints/actions/add.d.ts.map +1 -1
- package/dist/tools/constraints/actions/add.js +1 -0
- package/dist/tools/constraints/actions/add.js.map +1 -1
- package/dist/tools/constraints/actions/get.d.ts.map +1 -1
- package/dist/tools/constraints/actions/get.js +9 -7
- package/dist/tools/constraints/actions/get.js.map +1 -1
- package/dist/tools/constraints/help/example.js +1 -1
- package/dist/tools/constraints/help/example.js.map +1 -1
- package/dist/types/constraint/params.d.ts +2 -0
- package/dist/types/constraint/params.d.ts.map +1 -1
- package/dist/types/view-entities.d.ts +1 -0
- package/dist/types/view-entities.d.ts.map +1 -1
- package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -1
- package/dist/utils/action-specs/constraint-specs.js +4 -3
- package/dist/utils/action-specs/constraint-specs.js.map +1 -1
- package/dist/utils/hook-queue.d.ts +2 -0
- package/dist/utils/hook-queue.d.ts.map +1 -1
- package/dist/utils/hook-queue.js.map +1 -1
- package/dist/utils/project-root.d.ts +1 -0
- package/dist/utils/project-root.d.ts.map +1 -1
- package/dist/utils/project-root.js +6 -0
- package/dist/utils/project-root.js.map +1 -1
- package/dist/utils/view-queries.d.ts.map +1 -1
- package/dist/utils/view-queries.js +1 -0
- package/dist/utils/view-queries.js.map +1 -1
- package/dist/watcher/queue-watcher.d.ts.map +1 -1
- package/dist/watcher/queue-watcher.js +1 -0
- package/dist/watcher/queue-watcher.js.map +1 -1
- package/docs/ADR_CONCEPTS.md +152 -152
- package/docs/CLI_USAGE.md +392 -392
- package/docs/CONFIGURATION.md +157 -157
- package/docs/CROSS_DATABASE.md +66 -66
- package/docs/DATABASE_AUTH.md +135 -135
- package/docs/HOOKS_GUIDE.md +116 -101
- package/docs/MIGRATION_TO_SAAS.md +176 -176
- package/docs/SHARED_DATABASE.md +108 -108
- package/package.json +88 -88
- package/scripts/copy-help-data.js +19 -19
- package/scripts/filter-test-output.js +78 -78
- package/dist/tests/docker/native/help-system.test.d.ts +0 -8
- package/dist/tests/docker/native/help-system.test.d.ts.map +0 -1
- package/dist/tests/docker/native/help-system.test.js +0 -508
- package/dist/tests/docker/native/help-system.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdin-parser.js","sourceRoot":"","sources":["../../../src/cli/hooks/stdin-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"stdin-parser.js","sourceRoot":"","sources":["../../../src/cli/hooks/stdin-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,21 +32,21 @@ import { debugLog } from '../../utils/debug-logger.js';
|
|
|
32
32
|
* Decision/Constraint template to inject on new plan creation
|
|
33
33
|
* Compact format for context window efficiency
|
|
34
34
|
*/
|
|
35
|
-
const PLAN_TEMPLATE = `
|
|
36
|
-
---
|
|
37
|
-
## 📝 Decision/Constraint Recording (auto-detected on ExitPlanMode)
|
|
38
|
-
|
|
39
|
-
### 📌 Decision: [key/path]
|
|
40
|
-
- **Value**: Description
|
|
41
|
-
- **Layer**: presentation | business | data | infrastructure | cross-cutting
|
|
42
|
-
- **Rationale**: Why this decision was made
|
|
43
|
-
|
|
44
|
-
### 🚫 Constraint: [category]
|
|
45
|
-
- **Rule**: Description (category: architecture | security | code-style | performance)
|
|
46
|
-
- **Priority**: critical | high | medium | low
|
|
47
|
-
- **Tags**: comma-separated tags
|
|
48
|
-
|
|
49
|
-
---
|
|
35
|
+
const PLAN_TEMPLATE = `
|
|
36
|
+
---
|
|
37
|
+
## 📝 Decision/Constraint Recording (auto-detected on ExitPlanMode)
|
|
38
|
+
|
|
39
|
+
### 📌 Decision: [key/path]
|
|
40
|
+
- **Value**: Description
|
|
41
|
+
- **Layer**: presentation | business | data | infrastructure | cross-cutting
|
|
42
|
+
- **Rationale**: Why this decision was made
|
|
43
|
+
|
|
44
|
+
### 🚫 Constraint: [category]
|
|
45
|
+
- **Rule**: Description (category: architecture | security | code-style | performance)
|
|
46
|
+
- **Priority**: critical | high | medium | low
|
|
47
|
+
- **Tags**: comma-separated tags
|
|
48
|
+
|
|
49
|
+
---
|
|
50
50
|
`.trim();
|
|
51
51
|
/** Marker heading written with PLAN_TEMPLATE; used to avoid duplicate injection. */
|
|
52
52
|
export const PLAN_TEMPLATE_MARKER = '## 📝 Decision/Constraint Recording';
|
package/dist/cli.js
CHANGED
|
@@ -111,54 +111,54 @@ function formatTable(data, headers) {
|
|
|
111
111
|
* Show help message
|
|
112
112
|
*/
|
|
113
113
|
function showHelp() {
|
|
114
|
-
console.log(`
|
|
115
|
-
sqlew CLI - Query and database migration tool for mcp-sqlew
|
|
116
|
-
|
|
117
|
-
USAGE:
|
|
118
|
-
sqlew <command> [options]
|
|
119
|
-
|
|
120
|
-
RECOMMENDED SETUP (v5.0.0+):
|
|
121
|
-
The sqlew-plugin is now the recommended way to install Skills, Hooks, and Agents.
|
|
122
|
-
|
|
123
|
-
/plugin marketplace add sqlew-io/sqlew-plugin
|
|
124
|
-
/plugin add sqlew
|
|
125
|
-
|
|
126
|
-
For more info: https://github.com/sqlew-io/sqlew-plugin
|
|
127
|
-
|
|
128
|
-
LEGACY COMMANDS:
|
|
129
|
-
Setup (deprecated - use sqlew-plugin instead):
|
|
130
|
-
--init Legacy initialization (global rules + gitignore)
|
|
131
|
-
|
|
132
|
-
Database:
|
|
133
|
-
db:export Export project data to JSON format (data-only, for append-import)
|
|
134
|
-
db:import Import project data from JSON export (append to existing database)
|
|
135
|
-
|
|
136
|
-
Claude Code Hooks (internal use):
|
|
137
|
-
suggest Find related decisions (PreToolUse hook for Task)
|
|
138
|
-
track-plan Track plan files (PreToolUse hook for Write)
|
|
139
|
-
save Save decisions on code edit (PostToolUse hook for Edit|Write)
|
|
140
|
-
check-completion Check task completion (PostToolUse hook for TodoWrite)
|
|
141
|
-
mark-done Mark decisions as implemented (Git hooks or manual)
|
|
142
|
-
|
|
143
|
-
Plan Mode Hooks (internal use):
|
|
144
|
-
on-enter-plan Inject TOML template (PostToolUse hook for EnterPlanMode)
|
|
145
|
-
on-exit-plan Prompt TOML documentation (PostToolUse hook for ExitPlanMode)
|
|
146
|
-
on-subagent-stop Process Plan agent completion (SubagentStop hook)
|
|
147
|
-
on-stop Process main agent stop (Stop hook)
|
|
148
|
-
on-prompt Plan mode enforcement (UserPromptSubmit hook)
|
|
149
|
-
pr-adr PR ADR enforcement (PreToolUse hook for Bash)
|
|
150
|
-
|
|
151
|
-
OPTIONS:
|
|
152
|
-
--init Legacy initialization
|
|
153
|
-
--help Show this help message
|
|
154
|
-
|
|
155
|
-
EXAMPLES:
|
|
156
|
-
# Legacy initialization (prefer sqlew-plugin instead)
|
|
157
|
-
sqlew --init
|
|
158
|
-
|
|
159
|
-
For more information on commands, run:
|
|
160
|
-
npm run db:export -- --help
|
|
161
|
-
npm run db:import -- --help
|
|
114
|
+
console.log(`
|
|
115
|
+
sqlew CLI - Query and database migration tool for mcp-sqlew
|
|
116
|
+
|
|
117
|
+
USAGE:
|
|
118
|
+
sqlew <command> [options]
|
|
119
|
+
|
|
120
|
+
RECOMMENDED SETUP (v5.0.0+):
|
|
121
|
+
The sqlew-plugin is now the recommended way to install Skills, Hooks, and Agents.
|
|
122
|
+
|
|
123
|
+
/plugin marketplace add sqlew-io/sqlew-plugin
|
|
124
|
+
/plugin add sqlew
|
|
125
|
+
|
|
126
|
+
For more info: https://github.com/sqlew-io/sqlew-plugin
|
|
127
|
+
|
|
128
|
+
LEGACY COMMANDS:
|
|
129
|
+
Setup (deprecated - use sqlew-plugin instead):
|
|
130
|
+
--init Legacy initialization (global rules + gitignore)
|
|
131
|
+
|
|
132
|
+
Database:
|
|
133
|
+
db:export Export project data to JSON format (data-only, for append-import)
|
|
134
|
+
db:import Import project data from JSON export (append to existing database)
|
|
135
|
+
|
|
136
|
+
Claude Code Hooks (internal use):
|
|
137
|
+
suggest Find related decisions (PreToolUse hook for Task)
|
|
138
|
+
track-plan Track plan files (PreToolUse hook for Write)
|
|
139
|
+
save Save decisions on code edit (PostToolUse hook for Edit|Write)
|
|
140
|
+
check-completion Check task completion (PostToolUse hook for TodoWrite)
|
|
141
|
+
mark-done Mark decisions as implemented (Git hooks or manual)
|
|
142
|
+
|
|
143
|
+
Plan Mode Hooks (internal use):
|
|
144
|
+
on-enter-plan Inject TOML template (PostToolUse hook for EnterPlanMode)
|
|
145
|
+
on-exit-plan Prompt TOML documentation (PostToolUse hook for ExitPlanMode)
|
|
146
|
+
on-subagent-stop Process Plan agent completion (SubagentStop hook)
|
|
147
|
+
on-stop Process main agent stop (Stop hook)
|
|
148
|
+
on-prompt Plan mode enforcement (UserPromptSubmit hook)
|
|
149
|
+
pr-adr PR ADR enforcement (PreToolUse hook for Bash)
|
|
150
|
+
|
|
151
|
+
OPTIONS:
|
|
152
|
+
--init Legacy initialization
|
|
153
|
+
--help Show this help message
|
|
154
|
+
|
|
155
|
+
EXAMPLES:
|
|
156
|
+
# Legacy initialization (prefer sqlew-plugin instead)
|
|
157
|
+
sqlew --init
|
|
158
|
+
|
|
159
|
+
For more information on commands, run:
|
|
160
|
+
npm run db:export -- --help
|
|
161
|
+
npm run db:import -- --help
|
|
162
162
|
`);
|
|
163
163
|
}
|
|
164
164
|
// ============================================================================
|
|
@@ -179,25 +179,25 @@ export function getSessionCacheDir() {
|
|
|
179
179
|
// Configuration Loading
|
|
180
180
|
// ============================================================================
|
|
181
181
|
/** Default config.toml template for new installations */
|
|
182
|
-
const CONFIG_TOML_TEMPLATE = `# ~/.config/sqlew/config.toml - Global sqlew configuration
|
|
183
|
-
# This config applies to all projects unless overridden by project-local config
|
|
184
|
-
|
|
185
|
-
[database]
|
|
186
|
-
# Default database type: sqlite | mysql | postgresql | cloud
|
|
187
|
-
# type = "sqlite"
|
|
188
|
-
|
|
189
|
-
# SQLite: default path (uncomment to customize)
|
|
190
|
-
# path = "~/.config/sqlew/sqlew-shared.db"
|
|
191
|
-
|
|
192
|
-
# MySQL example:
|
|
193
|
-
# type = "mysql"
|
|
194
|
-
# [database.connection]
|
|
195
|
-
# host = "127.0.0.1"
|
|
196
|
-
# port = 3306
|
|
197
|
-
# database = "sqlew"
|
|
198
|
-
|
|
199
|
-
# SaaS/Cloud mode:
|
|
200
|
-
# type = "cloud"
|
|
182
|
+
const CONFIG_TOML_TEMPLATE = `# ~/.config/sqlew/config.toml - Global sqlew configuration
|
|
183
|
+
# This config applies to all projects unless overridden by project-local config
|
|
184
|
+
|
|
185
|
+
[database]
|
|
186
|
+
# Default database type: sqlite | mysql | postgresql | cloud
|
|
187
|
+
# type = "sqlite"
|
|
188
|
+
|
|
189
|
+
# SQLite: default path (uncomment to customize)
|
|
190
|
+
# path = "~/.config/sqlew/sqlew-shared.db"
|
|
191
|
+
|
|
192
|
+
# MySQL example:
|
|
193
|
+
# type = "mysql"
|
|
194
|
+
# [database.connection]
|
|
195
|
+
# host = "127.0.0.1"
|
|
196
|
+
# port = 3306
|
|
197
|
+
# database = "sqlew"
|
|
198
|
+
|
|
199
|
+
# SaaS/Cloud mode:
|
|
200
|
+
# type = "cloud"
|
|
201
201
|
`;
|
|
202
202
|
/**
|
|
203
203
|
* Ensure global config directory exists
|
|
@@ -484,18 +484,18 @@ export async function up(knex) {
|
|
|
484
484
|
const existingLayers = await knex('v4_layers').count('* as count').first();
|
|
485
485
|
if (!existingLayers || Number(existingLayers.count) === 0) {
|
|
486
486
|
if (db.isPostgreSQL) {
|
|
487
|
-
await knex.raw(`
|
|
488
|
-
INSERT INTO v4_layers (id, name) VALUES
|
|
489
|
-
(1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
|
|
490
|
-
(5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
|
|
491
|
-
ON CONFLICT (id) DO NOTHING
|
|
487
|
+
await knex.raw(`
|
|
488
|
+
INSERT INTO v4_layers (id, name) VALUES
|
|
489
|
+
(1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
|
|
490
|
+
(5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
|
|
491
|
+
ON CONFLICT (id) DO NOTHING
|
|
492
492
|
`);
|
|
493
493
|
}
|
|
494
494
|
else {
|
|
495
|
-
await knex.raw(`
|
|
496
|
-
INSERT ${insertIgnore} INTO v4_layers (id, name) VALUES
|
|
497
|
-
(1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
|
|
498
|
-
(5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
|
|
495
|
+
await knex.raw(`
|
|
496
|
+
INSERT ${insertIgnore} INTO v4_layers (id, name) VALUES
|
|
497
|
+
(1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
|
|
498
|
+
(5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
|
|
499
499
|
`);
|
|
500
500
|
}
|
|
501
501
|
console.error(' ✓ Layers seeded (9)');
|
|
@@ -504,16 +504,16 @@ export async function up(knex) {
|
|
|
504
504
|
const existingCategories = await knex('v4_constraint_categories').count('* as count').first();
|
|
505
505
|
if (!existingCategories || Number(existingCategories.count) === 0) {
|
|
506
506
|
if (db.isPostgreSQL) {
|
|
507
|
-
await knex.raw(`
|
|
508
|
-
INSERT INTO v4_constraint_categories (name) VALUES
|
|
509
|
-
('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
|
|
510
|
-
ON CONFLICT (name) DO NOTHING
|
|
507
|
+
await knex.raw(`
|
|
508
|
+
INSERT INTO v4_constraint_categories (name) VALUES
|
|
509
|
+
('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
|
|
510
|
+
ON CONFLICT (name) DO NOTHING
|
|
511
511
|
`);
|
|
512
512
|
}
|
|
513
513
|
else {
|
|
514
|
-
await knex.raw(`
|
|
515
|
-
INSERT ${insertIgnore} INTO v4_constraint_categories (name) VALUES
|
|
516
|
-
('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
|
|
514
|
+
await knex.raw(`
|
|
515
|
+
INSERT ${insertIgnore} INTO v4_constraint_categories (name) VALUES
|
|
516
|
+
('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
|
|
517
517
|
`);
|
|
518
518
|
}
|
|
519
519
|
console.error(' ✓ Constraint categories seeded (5)');
|
|
@@ -522,16 +522,16 @@ export async function up(knex) {
|
|
|
522
522
|
const existingStatuses = await knex('v4_task_statuses').count('* as count').first();
|
|
523
523
|
if (!existingStatuses || Number(existingStatuses.count) === 0) {
|
|
524
524
|
if (db.isPostgreSQL) {
|
|
525
|
-
await knex.raw(`
|
|
526
|
-
INSERT INTO v4_task_statuses (id, name) VALUES
|
|
527
|
-
(1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
|
|
528
|
-
ON CONFLICT (id) DO NOTHING
|
|
525
|
+
await knex.raw(`
|
|
526
|
+
INSERT INTO v4_task_statuses (id, name) VALUES
|
|
527
|
+
(1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
|
|
528
|
+
ON CONFLICT (id) DO NOTHING
|
|
529
529
|
`);
|
|
530
530
|
}
|
|
531
531
|
else {
|
|
532
|
-
await knex.raw(`
|
|
533
|
-
INSERT ${insertIgnore} INTO v4_task_statuses (id, name) VALUES
|
|
534
|
-
(1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
|
|
532
|
+
await knex.raw(`
|
|
533
|
+
INSERT ${insertIgnore} INTO v4_task_statuses (id, name) VALUES
|
|
534
|
+
(1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
|
|
535
535
|
`);
|
|
536
536
|
}
|
|
537
537
|
console.error(' ✓ Task statuses seeded (7)');
|
|
@@ -554,18 +554,18 @@ export async function up(knex) {
|
|
|
554
554
|
const existingTags = await knex('v4_tags').count('* as count').first();
|
|
555
555
|
if (!existingTags || Number(existingTags.count) === 0) {
|
|
556
556
|
if (db.isPostgreSQL) {
|
|
557
|
-
await knex.raw(`
|
|
558
|
-
INSERT INTO v4_tags (project_id, name) VALUES
|
|
559
|
-
(1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
|
|
560
|
-
(1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
|
|
561
|
-
ON CONFLICT (project_id, name) DO NOTHING
|
|
557
|
+
await knex.raw(`
|
|
558
|
+
INSERT INTO v4_tags (project_id, name) VALUES
|
|
559
|
+
(1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
|
|
560
|
+
(1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
|
|
561
|
+
ON CONFLICT (project_id, name) DO NOTHING
|
|
562
562
|
`);
|
|
563
563
|
}
|
|
564
564
|
else {
|
|
565
|
-
await knex.raw(`
|
|
566
|
-
INSERT ${insertIgnore} INTO v4_tags (project_id, name) VALUES
|
|
567
|
-
(1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
|
|
568
|
-
(1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
|
|
565
|
+
await knex.raw(`
|
|
566
|
+
INSERT ${insertIgnore} INTO v4_tags (project_id, name) VALUES
|
|
567
|
+
(1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
|
|
568
|
+
(1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
|
|
569
569
|
`);
|
|
570
570
|
}
|
|
571
571
|
console.error(' ✓ Common tags seeded (8)');
|
|
@@ -27,9 +27,9 @@ export async function up(knex) {
|
|
|
27
27
|
tags: ['database', 'orm'],
|
|
28
28
|
layer: 'data'
|
|
29
29
|
}, null, 2);
|
|
30
|
-
const contextNote = `
|
|
31
|
-
|
|
32
|
-
// To add context (rationale, alternatives, tradeoffs), use add_decision_context:
|
|
30
|
+
const contextNote = `
|
|
31
|
+
|
|
32
|
+
// To add context (rationale, alternatives, tradeoffs), use add_decision_context:
|
|
33
33
|
${JSON.stringify({
|
|
34
34
|
action: 'add_decision_context',
|
|
35
35
|
key: 'database/orm',
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add reason column to t_constraints. Stores WHY a constraint exists so future agents do not discard rules whose rationale is invisible in the code.
|
|
3
|
+
*
|
|
4
|
+
* @version v4
|
|
5
|
+
*/
|
|
6
|
+
import type { Knex } from 'knex';
|
|
7
|
+
export declare function up(knex: Knex): Promise<void>;
|
|
8
|
+
export declare function down(knex: Knex): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=20260613000000_add_constraint_reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260613000000_add_constraint_reason.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20260613000000_add_constraint_reason.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAclD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add reason column to t_constraints. Stores WHY a constraint exists so future agents do not discard rules whose rationale is invisible in the code.
|
|
3
|
+
*
|
|
4
|
+
* @version v4
|
|
5
|
+
*/
|
|
6
|
+
export async function up(knex) {
|
|
7
|
+
console.error('Adding reason column to t_constraints...');
|
|
8
|
+
const hasColumn = await knex.schema.hasColumn('t_constraints', 'reason');
|
|
9
|
+
if (!hasColumn) {
|
|
10
|
+
await knex.schema.alterTable('t_constraints', (table) => {
|
|
11
|
+
table.text('reason').nullable();
|
|
12
|
+
});
|
|
13
|
+
console.error(' ✓ reason column added to t_constraints');
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
console.error('✓ Column t_constraints.reason already exists, skipping');
|
|
17
|
+
}
|
|
18
|
+
console.error('✅ Migration completed');
|
|
19
|
+
}
|
|
20
|
+
export async function down(knex) {
|
|
21
|
+
console.error('Removing reason column from t_constraints...');
|
|
22
|
+
const hasColumn = await knex.schema.hasColumn('t_constraints', 'reason');
|
|
23
|
+
if (hasColumn) {
|
|
24
|
+
await knex.schema.alterTable('t_constraints', (table) => {
|
|
25
|
+
table.dropColumn('reason');
|
|
26
|
+
});
|
|
27
|
+
console.error(' ✓ reason column removed from t_constraints');
|
|
28
|
+
}
|
|
29
|
+
console.error('✅ Rollback completed');
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=20260613000000_add_constraint_reason.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260613000000_add_constraint_reason.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20260613000000_add_constraint_reason.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACtD,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACxC,CAAC"}
|