sqlew 4.1.1 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1862 -1817
- package/README.md +25 -165
- package/assets/claude-md-snippets/plan-mode-integration.md +48 -24
- package/assets/sample-skills/sqlew-decision-format/SKILL.md +73 -0
- package/dist/cli/hooks/check-completion.d.ts.map +1 -1
- package/dist/cli/hooks/check-completion.js +90 -2
- package/dist/cli/hooks/check-completion.js.map +1 -1
- package/dist/cli/hooks/init-hooks.d.ts.map +1 -1
- package/dist/cli/hooks/init-hooks.js +97 -5
- package/dist/cli/hooks/init-hooks.js.map +1 -1
- package/dist/cli/hooks/on-enter-plan.d.ts +22 -0
- package/dist/cli/hooks/on-enter-plan.d.ts.map +1 -0
- package/dist/cli/hooks/on-enter-plan.js +51 -0
- package/dist/cli/hooks/on-enter-plan.js.map +1 -0
- package/dist/cli/hooks/on-exit-plan.d.ts +20 -0
- package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -0
- package/dist/cli/hooks/on-exit-plan.js +66 -0
- package/dist/cli/hooks/on-exit-plan.js.map +1 -0
- package/dist/cli/hooks/on-stop.d.ts +19 -0
- package/dist/cli/hooks/on-stop.d.ts.map +1 -0
- package/dist/cli/hooks/on-stop.js +152 -0
- package/dist/cli/hooks/on-stop.js.map +1 -0
- package/dist/cli/hooks/on-subagent-stop.d.ts +20 -0
- package/dist/cli/hooks/on-subagent-stop.d.ts.map +1 -0
- package/dist/cli/hooks/on-subagent-stop.js +94 -0
- package/dist/cli/hooks/on-subagent-stop.js.map +1 -0
- package/dist/cli/hooks/plan-pattern-extractor.d.ts +87 -0
- package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -0
- package/dist/cli/hooks/plan-pattern-extractor.js +218 -0
- package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -0
- package/dist/cli/hooks/plan-processor.d.ts +43 -0
- package/dist/cli/hooks/plan-processor.d.ts.map +1 -0
- package/dist/cli/hooks/plan-processor.js +115 -0
- package/dist/cli/hooks/plan-processor.js.map +1 -0
- package/dist/cli/hooks/plan-toml-parser.d.ts +42 -0
- package/dist/cli/hooks/plan-toml-parser.d.ts.map +1 -0
- package/dist/cli/hooks/plan-toml-parser.js +178 -0
- package/dist/cli/hooks/plan-toml-parser.js.map +1 -0
- package/dist/cli/hooks/save.d.ts +7 -9
- package/dist/cli/hooks/save.d.ts.map +1 -1
- package/dist/cli/hooks/save.js +50 -25
- package/dist/cli/hooks/save.js.map +1 -1
- package/dist/cli/hooks/stdin-parser.d.ts +66 -2
- package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
- package/dist/cli/hooks/stdin-parser.js +57 -2
- package/dist/cli/hooks/stdin-parser.js.map +1 -1
- package/dist/cli/hooks/suggest.d.ts +8 -4
- package/dist/cli/hooks/suggest.d.ts.map +1 -1
- package/dist/cli/hooks/suggest.js +21 -123
- package/dist/cli/hooks/suggest.js.map +1 -1
- package/dist/cli/hooks/track-plan.d.ts +8 -1
- package/dist/cli/hooks/track-plan.d.ts.map +1 -1
- package/dist/cli/hooks/track-plan.js +64 -66
- package/dist/cli/hooks/track-plan.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +139 -38
- package/dist/cli.js.map +1 -1
- package/dist/config/global-config.d.ts +90 -0
- package/dist/config/global-config.d.ts.map +1 -1
- package/dist/config/global-config.js +86 -1
- package/dist/config/global-config.js.map +1 -1
- package/dist/database/initialization/init.js +3 -3
- package/dist/database/initialization/init.js.map +1 -1
- package/dist/database/initialization/schema-version.js +1 -1
- package/dist/database/initialization/schema-version.js.map +1 -1
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +32 -32
- package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.d.ts +14 -0
- package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.js +201 -0
- package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.js.map +1 -0
- package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.d.ts +12 -0
- package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.js +61 -0
- package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.js.map +1 -0
- package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.d.ts +15 -0
- package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.d.ts.map +1 -0
- package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js +74 -0
- package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js.map +1 -0
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/init-skills.d.ts +6 -1
- package/dist/init-skills.d.ts.map +1 -1
- package/dist/init-skills.js +50 -1
- package/dist/init-skills.js.map +1 -1
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +16 -12
- package/dist/knexfile.js.map +1 -1
- package/dist/server/setup.d.ts.map +1 -1
- package/dist/server/setup.js +33 -11
- package/dist/server/setup.js.map +1 -1
- package/dist/server/tool-handlers.d.ts.map +1 -1
- package/dist/server/tool-handlers.js +7 -1
- package/dist/server/tool-handlers.js.map +1 -1
- package/dist/server/tool-registry.js +1 -1
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/tests/database/sql-dump/table-ordering.test.js +6 -1
- package/dist/tests/database/sql-dump/table-ordering.test.js.map +1 -1
- package/dist/tests/docker/native/constraint-operations.test.js +74 -137
- package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
- package/dist/tests/docker/native/decision-operations.test.js +52 -40
- package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
- package/dist/tests/docker/native/help-system.test.d.ts +3 -2
- package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
- package/dist/tests/docker/native/help-system.test.js +90 -80
- package/dist/tests/docker/native/help-system.test.js.map +1 -1
- package/dist/tests/docker/native/suggest-tool.test.d.ts +2 -2
- package/dist/tests/docker/native/suggest-tool.test.js +130 -63
- package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
- package/dist/tests/docker/native/task-operations.test.js +9 -19
- package/dist/tests/docker/native/task-operations.test.js.map +1 -1
- package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
- package/dist/tests/docker/native/test-harness.js +6 -5
- package/dist/tests/docker/native/test-harness.js.map +1 -1
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +7 -8
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
- package/dist/tests/feature/decision/context-modular.test.js +1 -3
- package/dist/tests/feature/decision/context-modular.test.js.map +1 -1
- package/dist/tests/feature/decision/truncate.test.d.ts +8 -0
- package/dist/tests/feature/decision/truncate.test.d.ts.map +1 -0
- package/dist/tests/feature/decision/truncate.test.js +192 -0
- package/dist/tests/feature/decision/truncate.test.js.map +1 -0
- package/dist/tests/feature/help/help-system.test.d.ts +1 -13
- package/dist/tests/feature/help/help-system.test.d.ts.map +1 -1
- package/dist/tests/feature/help/help-system.test.js +107 -331
- package/dist/tests/feature/help/help-system.test.js.map +1 -1
- package/dist/tests/feature/task/auto-pruning-decision-link.test.js +2 -4
- package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +1 -1
- package/dist/tests/integration/all-features.standalone.js +1 -3
- package/dist/tests/integration/all-features.standalone.js.map +1 -1
- package/dist/tests/migrations/test-all-versions-real.js +2 -4
- package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
- package/dist/tests/migrations/test-all-versions.js +3 -7
- package/dist/tests/migrations/test-all-versions.js.map +1 -1
- package/dist/tests/unit/config/plan-toml-cache.test.d.ts +9 -0
- package/dist/tests/unit/config/plan-toml-cache.test.d.ts.map +1 -0
- package/dist/tests/unit/config/plan-toml-cache.test.js +230 -0
- package/dist/tests/unit/config/plan-toml-cache.test.js.map +1 -0
- package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts +10 -0
- package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts.map +1 -0
- package/dist/tests/unit/hooks/plan-toml-parser.test.js +316 -0
- package/dist/tests/unit/hooks/plan-toml-parser.test.js.map +1 -0
- package/dist/tests/unit/universal-knex.test.js +3 -0
- package/dist/tests/unit/universal-knex.test.js.map +1 -1
- package/dist/tests/unit/utils/config-loader.test.js +130 -191
- package/dist/tests/unit/utils/config-loader.test.js.map +1 -1
- package/dist/tests/unit/utils/project-detector.test.js +24 -0
- package/dist/tests/unit/utils/project-detector.test.js.map +1 -1
- package/dist/tests/unit/validation/parameter-validation.test.js +2 -2
- package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
- package/dist/tests/unit/validation/policy-validation.test.js +1 -3
- package/dist/tests/unit/validation/policy-validation.test.js.map +1 -1
- package/dist/tools/constraints/actions/activate.d.ts +46 -0
- package/dist/tools/constraints/actions/activate.d.ts.map +1 -0
- package/dist/tools/constraints/actions/activate.js +105 -0
- package/dist/tools/constraints/actions/activate.js.map +1 -0
- package/dist/tools/constraints/actions/add.d.ts.map +1 -1
- package/dist/tools/constraints/actions/add.js +30 -13
- package/dist/tools/constraints/actions/add.js.map +1 -1
- package/dist/tools/constraints/actions/deactivate.d.ts.map +1 -1
- package/dist/tools/constraints/actions/deactivate.js +7 -4
- package/dist/tools/constraints/actions/deactivate.js.map +1 -1
- package/dist/tools/constraints/actions/get.d.ts.map +1 -1
- package/dist/tools/constraints/actions/get.js +10 -7
- package/dist/tools/constraints/actions/get.js.map +1 -1
- package/dist/tools/constraints/actions/suggest-pending.d.ts +41 -0
- package/dist/tools/constraints/actions/suggest-pending.d.ts.map +1 -0
- package/dist/tools/constraints/actions/suggest-pending.js +71 -0
- package/dist/tools/constraints/actions/suggest-pending.js.map +1 -0
- package/dist/tools/constraints/help/example.d.ts.map +1 -1
- package/dist/tools/constraints/help/example.js +65 -1
- package/dist/tools/constraints/help/example.js.map +1 -1
- package/dist/tools/constraints/help/help.d.ts.map +1 -1
- package/dist/tools/constraints/help/help.js +10 -5
- package/dist/tools/constraints/help/help.js.map +1 -1
- package/dist/tools/constraints/index.d.ts +2 -0
- package/dist/tools/constraints/index.d.ts.map +1 -1
- package/dist/tools/constraints/index.js +2 -0
- package/dist/tools/constraints/index.js.map +1 -1
- package/dist/tools/context/actions/add-context.d.ts.map +1 -1
- package/dist/tools/context/actions/add-context.js +13 -6
- package/dist/tools/context/actions/add-context.js.map +1 -1
- package/dist/tools/context/actions/list-contexts.d.ts.map +1 -1
- package/dist/tools/context/actions/list-contexts.js +12 -7
- package/dist/tools/context/actions/list-contexts.js.map +1 -1
- package/dist/tools/context/actions/list.d.ts.map +1 -1
- package/dist/tools/context/actions/list.js +8 -0
- package/dist/tools/context/actions/list.js.map +1 -1
- package/dist/tools/context/actions/search-advanced.d.ts.map +1 -1
- package/dist/tools/context/actions/search-advanced.js +41 -27
- package/dist/tools/context/actions/search-advanced.js.map +1 -1
- package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
- package/dist/tools/context/actions/search-layer.js +8 -0
- package/dist/tools/context/actions/search-layer.js.map +1 -1
- package/dist/tools/context/actions/search-tags.d.ts.map +1 -1
- package/dist/tools/context/actions/search-tags.js +8 -0
- package/dist/tools/context/actions/search-tags.js.map +1 -1
- package/dist/tools/files/actions/check-lock.d.ts.map +1 -1
- package/dist/tools/files/actions/check-lock.js +9 -3
- package/dist/tools/files/actions/check-lock.js.map +1 -1
- package/dist/tools/files/actions/get.d.ts.map +1 -1
- package/dist/tools/files/actions/get.js +18 -13
- package/dist/tools/files/actions/get.js.map +1 -1
- package/dist/tools/files/actions/record-batch.d.ts.map +1 -1
- package/dist/tools/files/actions/record-batch.js +11 -6
- package/dist/tools/files/actions/record-batch.js.map +1 -1
- package/dist/tools/files/actions/record.d.ts.map +1 -1
- package/dist/tools/files/actions/record.js +8 -2
- package/dist/tools/files/actions/record.js.map +1 -1
- package/dist/tools/files/help/example.js +8 -8
- package/dist/tools/files/help/example.js.map +1 -1
- package/dist/tools/files/help/help.js +4 -4
- package/dist/tools/files/help/help.js.map +1 -1
- package/dist/tools/files/internal/validation.d.ts.map +1 -1
- package/dist/tools/files/internal/validation.js +1 -2
- package/dist/tools/files/internal/validation.js.map +1 -1
- package/dist/tools/help-queries.d.ts.map +1 -1
- package/dist/tools/help-queries.js +57 -27
- package/dist/tools/help-queries.js.map +1 -1
- package/dist/tools/suggest/actions/by-tags.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-tags.js +3 -1
- package/dist/tools/suggest/actions/by-tags.js.map +1 -1
- package/dist/tools/suggest/help/constraint-help.js +2 -2
- package/dist/tools/suggest/help/constraint-help.js.map +1 -1
- package/dist/tools/tasks/help/example.d.ts.map +1 -1
- package/dist/tools/tasks/help/example.js +10 -0
- package/dist/tools/tasks/help/example.js.map +1 -1
- package/dist/tools/tasks/help/help.d.ts.map +1 -1
- package/dist/tools/tasks/help/help.js +10 -0
- package/dist/tools/tasks/help/help.js.map +1 -1
- package/dist/tools/use_case/actions/search.js +5 -5
- package/dist/tools/use_case/actions/search.js.map +1 -1
- package/dist/tools/use_case/help/example.d.ts +2 -7
- package/dist/tools/use_case/help/example.d.ts.map +1 -1
- package/dist/tools/use_case/help/example.js +24 -37
- package/dist/tools/use_case/help/example.js.map +1 -1
- package/dist/tools/use_case/help/help.js +1 -1
- package/dist/tools/use_case/help/help.js.map +1 -1
- package/dist/types/actions.d.ts +1 -1
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types.d.ts +11 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/action-specs/constraint-specs.d.ts +1 -1
- package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -1
- package/dist/utils/action-specs/constraint-specs.js +22 -5
- package/dist/utils/action-specs/constraint-specs.js.map +1 -1
- package/dist/utils/action-specs/decision-specs.js +13 -13
- package/dist/utils/action-specs/decision-specs.js.map +1 -1
- package/dist/utils/action-specs/file-specs.d.ts.map +1 -1
- package/dist/utils/action-specs/file-specs.js +8 -10
- package/dist/utils/action-specs/file-specs.js.map +1 -1
- package/dist/utils/db-aggregations.d.ts.map +1 -1
- package/dist/utils/db-aggregations.js +44 -1
- package/dist/utils/db-aggregations.js.map +1 -1
- package/dist/utils/hook-queue.d.ts +43 -3
- package/dist/utils/hook-queue.d.ts.map +1 -1
- package/dist/utils/hook-queue.js +326 -32
- package/dist/utils/hook-queue.js.map +1 -1
- package/dist/utils/param-normalizer.d.ts +52 -0
- package/dist/utils/param-normalizer.d.ts.map +1 -0
- package/dist/utils/param-normalizer.js +70 -0
- package/dist/utils/param-normalizer.js.map +1 -0
- package/dist/utils/parameter-validator.d.ts.map +1 -1
- package/dist/utils/parameter-validator.js +2 -0
- package/dist/utils/parameter-validator.js.map +1 -1
- package/dist/utils/project-detector.js +21 -6
- package/dist/utils/project-detector.js.map +1 -1
- package/dist/utils/suggestion-scorer.d.ts.map +1 -1
- package/dist/utils/suggestion-scorer.js +5 -0
- package/dist/utils/suggestion-scorer.js.map +1 -1
- package/dist/utils/text-truncate.d.ts +13 -0
- package/dist/utils/text-truncate.d.ts.map +1 -0
- package/dist/utils/text-truncate.js +18 -0
- package/dist/utils/text-truncate.js.map +1 -0
- package/dist/utils/validators.d.ts +1 -1
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +1 -1
- package/dist/utils/validators.js.map +1 -1
- package/dist/watcher/base-watcher.d.ts.map +1 -1
- package/dist/watcher/base-watcher.js +4 -3
- package/dist/watcher/base-watcher.js.map +1 -1
- package/dist/watcher/file-watcher.d.ts.map +1 -1
- package/dist/watcher/file-watcher.js +5 -1
- package/dist/watcher/file-watcher.js.map +1 -1
- package/dist/watcher/queue-watcher.d.ts +12 -1
- package/dist/watcher/queue-watcher.d.ts.map +1 -1
- package/dist/watcher/queue-watcher.js +92 -12
- package/dist/watcher/queue-watcher.js.map +1 -1
- package/docs/ADR_CONCEPTS.md +4 -0
- package/docs/HOOKS_GUIDE.md +1 -1
- package/package.json +87 -123
- package/dist/tests/feature/vcs/git-aware-completion.test.d.ts +0 -6
- package/dist/tests/feature/vcs/git-aware-completion.test.d.ts.map +0 -1
- package/dist/tests/feature/vcs/git-aware-completion.test.js +0 -197
- package/dist/tests/feature/vcs/git-aware-completion.test.js.map +0 -1
- package/dist/tests/feature/vcs/two-step-git-completion.test.d.ts +0 -6
- package/dist/tests/feature/vcs/two-step-git-completion.test.d.ts.map +0 -1
- package/dist/tests/feature/vcs/two-step-git-completion.test.js +0 -305
- package/dist/tests/feature/vcs/two-step-git-completion.test.js.map +0 -1
- package/dist/tests/feature/vcs/vcs-staging.test.d.ts +0 -6
- package/dist/tests/feature/vcs/vcs-staging.test.d.ts.map +0 -1
- package/dist/tests/feature/vcs/vcs-staging.test.js +0 -142
- package/dist/tests/feature/vcs/vcs-staging.test.js.map +0 -1
|
@@ -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)');
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v4 Seed Missing Help Data Migration
|
|
3
|
+
*
|
|
4
|
+
* Adds missing help system data:
|
|
5
|
+
* - v4_help_action_params for analytics, by_key, by_tags, check_duplicate
|
|
6
|
+
* - v4_help_action_examples (initial examples)
|
|
7
|
+
*
|
|
8
|
+
* This migration supplements the original seed migration with
|
|
9
|
+
* data that was missing in v4.1.1 clean installs.
|
|
10
|
+
*/
|
|
11
|
+
import type { Knex } from 'knex';
|
|
12
|
+
export declare function up(knex: Knex): Promise<void>;
|
|
13
|
+
export declare function down(knex: Knex): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=20251225000000_v4_seed_missing_help_data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251225000000_v4_seed_missing_help_data.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000000_v4_seed_missing_help_data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4LlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpD"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v4 Seed Missing Help Data Migration
|
|
3
|
+
*
|
|
4
|
+
* Adds missing help system data:
|
|
5
|
+
* - v4_help_action_params for analytics, by_key, by_tags, check_duplicate
|
|
6
|
+
* - v4_help_action_examples (initial examples)
|
|
7
|
+
*
|
|
8
|
+
* This migration supplements the original seed migration with
|
|
9
|
+
* data that was missing in v4.1.1 clean installs.
|
|
10
|
+
*/
|
|
11
|
+
export async function up(knex) {
|
|
12
|
+
console.error('🌱 Seeding missing help system data...');
|
|
13
|
+
// Get action IDs
|
|
14
|
+
const actions = await knex('v4_help_actions').select('id', 'tool_name', 'action_name');
|
|
15
|
+
const actionMap = actions.reduce((map, action) => {
|
|
16
|
+
map[`${action.tool_name}:${action.action_name}`] = action.id;
|
|
17
|
+
return map;
|
|
18
|
+
}, {});
|
|
19
|
+
// 1. Seed missing v4_help_action_params
|
|
20
|
+
const missingParams = [
|
|
21
|
+
// DECISION:ANALYTICS
|
|
22
|
+
{ action_id: actionMap['decision:analytics'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "analytics"', default_value: null },
|
|
23
|
+
{ action_id: actionMap['decision:analytics'], param_name: 'key_pattern', param_type: 'string', required: 1, description: 'SQL LIKE pattern for decision keys (e.g., "metric/%")', default_value: null },
|
|
24
|
+
{ action_id: actionMap['decision:analytics'], param_name: 'aggregation', param_type: 'string', required: 1, description: 'Aggregation type: avg, sum, max, min, count', default_value: null },
|
|
25
|
+
{ action_id: actionMap['decision:analytics'], param_name: 'layer', param_type: 'string', required: 0, description: 'Filter by layer', default_value: null },
|
|
26
|
+
{ action_id: actionMap['decision:analytics'], param_name: 'time_series', param_type: 'object', required: 0, description: 'Time series options: { bucket, start_ts, end_ts }', default_value: null },
|
|
27
|
+
{ action_id: actionMap['decision:analytics'], param_name: 'percentiles', param_type: 'number[]', required: 0, description: 'Percentiles to calculate (e.g., [50, 90, 95, 99])', default_value: null },
|
|
28
|
+
// SUGGEST:BY_KEY
|
|
29
|
+
{ action_id: actionMap['suggest:by_key'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "by_key"', default_value: null },
|
|
30
|
+
{ action_id: actionMap['suggest:by_key'], param_name: 'key', param_type: 'string', required: 1, description: 'Decision key pattern to search', default_value: null },
|
|
31
|
+
{ action_id: actionMap['suggest:by_key'], param_name: 'limit', param_type: 'number', required: 0, description: 'Max suggestions', default_value: '5' },
|
|
32
|
+
{ action_id: actionMap['suggest:by_key'], param_name: 'min_score', param_type: 'number', required: 0, description: 'Minimum relevance score', default_value: '30' },
|
|
33
|
+
// SUGGEST:BY_TAGS
|
|
34
|
+
{ action_id: actionMap['suggest:by_tags'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "by_tags"', default_value: null },
|
|
35
|
+
{ action_id: actionMap['suggest:by_tags'], param_name: 'tags', param_type: 'string[]', required: 1, description: 'Tags to search for', default_value: null },
|
|
36
|
+
{ action_id: actionMap['suggest:by_tags'], param_name: 'layer', param_type: 'string', required: 0, description: 'Filter by layer', default_value: null },
|
|
37
|
+
{ action_id: actionMap['suggest:by_tags'], param_name: 'limit', param_type: 'number', required: 0, description: 'Max suggestions', default_value: '5' },
|
|
38
|
+
{ action_id: actionMap['suggest:by_tags'], param_name: 'min_score', param_type: 'number', required: 0, description: 'Minimum relevance score', default_value: '15' },
|
|
39
|
+
// SUGGEST:CHECK_DUPLICATE
|
|
40
|
+
{ action_id: actionMap['suggest:check_duplicate'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "check_duplicate"', default_value: null },
|
|
41
|
+
{ action_id: actionMap['suggest:check_duplicate'], param_name: 'key', param_type: 'string', required: 1, description: 'Decision key to check', default_value: null },
|
|
42
|
+
{ action_id: actionMap['suggest:check_duplicate'], param_name: 'tags', param_type: 'string[]', required: 0, description: 'Tags for context matching', default_value: '[]' },
|
|
43
|
+
{ action_id: actionMap['suggest:check_duplicate'], param_name: 'layer', param_type: 'string', required: 0, description: 'Layer for context matching', default_value: null },
|
|
44
|
+
].filter(p => p.action_id);
|
|
45
|
+
if (missingParams.length > 0) {
|
|
46
|
+
// Check for existing params to avoid duplicates
|
|
47
|
+
for (const param of missingParams) {
|
|
48
|
+
const exists = await knex('v4_help_action_params')
|
|
49
|
+
.where({ action_id: param.action_id, param_name: param.param_name })
|
|
50
|
+
.first();
|
|
51
|
+
if (!exists) {
|
|
52
|
+
await knex('v4_help_action_params').insert(param);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
console.error(` ✓ Missing help action params seeded`);
|
|
56
|
+
}
|
|
57
|
+
// 2. Seed v4_help_action_examples
|
|
58
|
+
const existingExamples = await knex('v4_help_action_examples').count('* as count').first();
|
|
59
|
+
if (!existingExamples || Number(existingExamples.count) === 0) {
|
|
60
|
+
const examples = [
|
|
61
|
+
// DECISION:SET examples
|
|
62
|
+
{
|
|
63
|
+
action_id: actionMap['decision:set'],
|
|
64
|
+
title: 'Basic decision',
|
|
65
|
+
code: JSON.stringify({
|
|
66
|
+
action: 'set',
|
|
67
|
+
key: 'auth/method',
|
|
68
|
+
value: 'JWT tokens with refresh',
|
|
69
|
+
tags: ['security', 'auth'],
|
|
70
|
+
layer: 'infrastructure'
|
|
71
|
+
}, null, 2),
|
|
72
|
+
explanation: 'Store a simple architectural decision with tags and layer'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
action_id: actionMap['decision:set'],
|
|
76
|
+
title: 'Decision with context',
|
|
77
|
+
code: JSON.stringify({
|
|
78
|
+
action: 'set',
|
|
79
|
+
key: 'database/orm',
|
|
80
|
+
value: 'Prisma',
|
|
81
|
+
tags: ['database', 'orm'],
|
|
82
|
+
layer: 'data',
|
|
83
|
+
rationale: 'Type safety and migration support',
|
|
84
|
+
alternatives: 'TypeORM, Knex, raw SQL',
|
|
85
|
+
tradeoffs: 'Learning curve, but better DX'
|
|
86
|
+
}, null, 2),
|
|
87
|
+
explanation: 'Store a decision with full context (rationale, alternatives, tradeoffs)'
|
|
88
|
+
},
|
|
89
|
+
// DECISION:LIST examples
|
|
90
|
+
{
|
|
91
|
+
action_id: actionMap['decision:list'],
|
|
92
|
+
title: 'List all decisions',
|
|
93
|
+
code: JSON.stringify({
|
|
94
|
+
action: 'list'
|
|
95
|
+
}, null, 2),
|
|
96
|
+
explanation: 'Get all active decisions'
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
action_id: actionMap['decision:list'],
|
|
100
|
+
title: 'Filter by layer',
|
|
101
|
+
code: JSON.stringify({
|
|
102
|
+
action: 'list',
|
|
103
|
+
layer: 'infrastructure',
|
|
104
|
+
limit: 10
|
|
105
|
+
}, null, 2),
|
|
106
|
+
explanation: 'List decisions filtered by architecture layer'
|
|
107
|
+
},
|
|
108
|
+
// SUGGEST:BY_KEY examples
|
|
109
|
+
{
|
|
110
|
+
action_id: actionMap['suggest:by_key'],
|
|
111
|
+
title: 'Find similar by key',
|
|
112
|
+
code: JSON.stringify({
|
|
113
|
+
action: 'by_key',
|
|
114
|
+
key: 'auth'
|
|
115
|
+
}, null, 2),
|
|
116
|
+
explanation: 'Find decisions with keys similar to "auth" (e.g., auth/method, auth/provider)'
|
|
117
|
+
},
|
|
118
|
+
// SUGGEST:BY_TAGS examples
|
|
119
|
+
{
|
|
120
|
+
action_id: actionMap['suggest:by_tags'],
|
|
121
|
+
title: 'Find by tags',
|
|
122
|
+
code: JSON.stringify({
|
|
123
|
+
action: 'by_tags',
|
|
124
|
+
tags: ['security', 'auth']
|
|
125
|
+
}, null, 2),
|
|
126
|
+
explanation: 'Find decisions tagged with security or auth'
|
|
127
|
+
},
|
|
128
|
+
// DECISION:ANALYTICS examples
|
|
129
|
+
{
|
|
130
|
+
action_id: actionMap['decision:analytics'],
|
|
131
|
+
title: 'Count decisions',
|
|
132
|
+
code: JSON.stringify({
|
|
133
|
+
action: 'analytics',
|
|
134
|
+
key_pattern: '%',
|
|
135
|
+
aggregation: 'count'
|
|
136
|
+
}, null, 2),
|
|
137
|
+
explanation: 'Count all decisions in the database'
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
action_id: actionMap['decision:analytics'],
|
|
141
|
+
title: 'Average metric value',
|
|
142
|
+
code: JSON.stringify({
|
|
143
|
+
action: 'analytics',
|
|
144
|
+
key_pattern: 'metric/api-latency/%',
|
|
145
|
+
aggregation: 'avg',
|
|
146
|
+
layer: 'infrastructure'
|
|
147
|
+
}, null, 2),
|
|
148
|
+
explanation: 'Calculate average of numeric decisions matching pattern'
|
|
149
|
+
},
|
|
150
|
+
// TASK:CREATE examples
|
|
151
|
+
{
|
|
152
|
+
action_id: actionMap['task:create'],
|
|
153
|
+
title: 'Create simple task',
|
|
154
|
+
code: JSON.stringify({
|
|
155
|
+
action: 'create',
|
|
156
|
+
title: 'Implement user authentication',
|
|
157
|
+
priority: 3,
|
|
158
|
+
layer: 'business'
|
|
159
|
+
}, null, 2),
|
|
160
|
+
explanation: 'Create a high-priority task in the business layer'
|
|
161
|
+
},
|
|
162
|
+
// CONSTRAINT:ADD examples
|
|
163
|
+
{
|
|
164
|
+
action_id: actionMap['constraint:add'],
|
|
165
|
+
title: 'Add architectural constraint',
|
|
166
|
+
code: JSON.stringify({
|
|
167
|
+
action: 'add',
|
|
168
|
+
constraint_text: 'All API endpoints must validate input',
|
|
169
|
+
category: 'security',
|
|
170
|
+
priority: 3,
|
|
171
|
+
layer: 'infrastructure'
|
|
172
|
+
}, null, 2),
|
|
173
|
+
explanation: 'Add a security constraint to enforce input validation'
|
|
174
|
+
}
|
|
175
|
+
].filter(e => e.action_id);
|
|
176
|
+
if (examples.length > 0) {
|
|
177
|
+
await knex('v4_help_action_examples').insert(examples);
|
|
178
|
+
console.error(` ✓ Help action examples seeded (${examples.length})`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
console.error(' ℹ Help action examples already exist, skipping');
|
|
183
|
+
}
|
|
184
|
+
console.error('🎉 Missing help system data seeded!');
|
|
185
|
+
}
|
|
186
|
+
export async function down(knex) {
|
|
187
|
+
// Remove examples added by this migration
|
|
188
|
+
await knex('v4_help_action_examples').del();
|
|
189
|
+
// Remove params added by this migration (analytics, by_key, by_tags, check_duplicate)
|
|
190
|
+
const actions = await knex('v4_help_actions')
|
|
191
|
+
.whereIn('action_name', ['analytics', 'by_key', 'by_tags', 'check_duplicate'])
|
|
192
|
+
.select('id');
|
|
193
|
+
const actionIds = actions.map(a => a.id);
|
|
194
|
+
if (actionIds.length > 0) {
|
|
195
|
+
await knex('v4_help_action_params')
|
|
196
|
+
.whereIn('action_id', actionIds)
|
|
197
|
+
.del();
|
|
198
|
+
}
|
|
199
|
+
console.error('🗑️ Missing help system data removed');
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=20251225000000_v4_seed_missing_help_data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251225000000_v4_seed_missing_help_data.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000000_v4_seed_missing_help_data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v4 Fix Help Params Migration
|
|
3
|
+
*
|
|
4
|
+
* Fixes incorrect parameter descriptions in the help system:
|
|
5
|
+
* - constraint:add priority: "Priority: 1-4" → "Priority level: low, medium, high, critical"
|
|
6
|
+
*
|
|
7
|
+
* NOTE: file:record agent_name is not in DB (handled in code only)
|
|
8
|
+
*/
|
|
9
|
+
import type { Knex } from 'knex';
|
|
10
|
+
export declare function up(knex: Knex): Promise<void>;
|
|
11
|
+
export declare function down(knex: Knex): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=20251225000001_v4_fix_help_params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251225000001_v4_fix_help_params.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000001_v4_fix_help_params.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgClD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v4 Fix Help Params Migration
|
|
3
|
+
*
|
|
4
|
+
* Fixes incorrect parameter descriptions in the help system:
|
|
5
|
+
* - constraint:add priority: "Priority: 1-4" → "Priority level: low, medium, high, critical"
|
|
6
|
+
*
|
|
7
|
+
* NOTE: file:record agent_name is not in DB (handled in code only)
|
|
8
|
+
*/
|
|
9
|
+
export async function up(knex) {
|
|
10
|
+
console.error('🔧 Fixing help parameter descriptions...');
|
|
11
|
+
// Get constraint:add action ID
|
|
12
|
+
const constraintAddAction = await knex('v4_help_actions')
|
|
13
|
+
.where({ tool_name: 'constraint', action_name: 'add' })
|
|
14
|
+
.select('id')
|
|
15
|
+
.first();
|
|
16
|
+
if (constraintAddAction) {
|
|
17
|
+
// Fix priority description: "Priority: 1-4" → "Priority level: low, medium, high, critical"
|
|
18
|
+
const updated = await knex('v4_help_action_params')
|
|
19
|
+
.where({
|
|
20
|
+
action_id: constraintAddAction.id,
|
|
21
|
+
param_name: 'priority'
|
|
22
|
+
})
|
|
23
|
+
.update({
|
|
24
|
+
param_type: 'string',
|
|
25
|
+
description: 'Priority level: low, medium, high, critical',
|
|
26
|
+
default_value: 'medium'
|
|
27
|
+
});
|
|
28
|
+
if (updated > 0) {
|
|
29
|
+
console.error(' ✓ Fixed constraint:add priority parameter');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error(' ℹ constraint:add priority parameter not found (may not exist)');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.error(' ⚠ constraint:add action not found');
|
|
37
|
+
}
|
|
38
|
+
console.error('🎉 Help parameter descriptions fixed!');
|
|
39
|
+
}
|
|
40
|
+
export async function down(knex) {
|
|
41
|
+
// Get constraint:add action ID
|
|
42
|
+
const constraintAddAction = await knex('v4_help_actions')
|
|
43
|
+
.where({ tool_name: 'constraint', action_name: 'add' })
|
|
44
|
+
.select('id')
|
|
45
|
+
.first();
|
|
46
|
+
if (constraintAddAction) {
|
|
47
|
+
// Revert to original values
|
|
48
|
+
await knex('v4_help_action_params')
|
|
49
|
+
.where({
|
|
50
|
+
action_id: constraintAddAction.id,
|
|
51
|
+
param_name: 'priority'
|
|
52
|
+
})
|
|
53
|
+
.update({
|
|
54
|
+
param_type: 'number',
|
|
55
|
+
description: 'Priority: 1-4',
|
|
56
|
+
default_value: '2'
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
console.error('🗑️ Help parameter descriptions reverted');
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=20251225000001_v4_fix_help_params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251225000001_v4_fix_help_params.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000001_v4_fix_help_params.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAE1D,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;SACtD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;SACtD,MAAM,CAAC,IAAI,CAAC;SACZ,KAAK,EAAE,CAAC;IAEX,IAAI,mBAAmB,EAAE,CAAC;QACxB,4FAA4F;QAC5F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC;aAChD,KAAK,CAAC;YACL,SAAS,EAAE,mBAAmB,CAAC,EAAE;YACjC,UAAU,EAAE,UAAU;SACvB,CAAC;aACD,MAAM,CAAC;YACN,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,6CAA6C;YAC1D,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QAEL,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;SACtD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;SACtD,MAAM,CAAC,IAAI,CAAC;SACZ,KAAK,EAAE,CAAC;IAEX,IAAI,mBAAmB,EAAE,CAAC;QACxB,4BAA4B;QAC5B,MAAM,IAAI,CAAC,uBAAuB,CAAC;aAChC,KAAK,CAAC;YACL,SAAS,EAAE,mBAAmB,CAAC,EAAE;YACjC,UAAU,EAAE,UAAU;SACvB,CAAC;aACD,MAAM,CAAC;YACN,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,eAAe;YAC5B,aAAa,EAAE,GAAG;SACnB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration: Fix decision.set example that incorrectly shows rationale/alternatives/tradeoffs
|
|
3
|
+
*
|
|
4
|
+
* The original example in 20251225000000_v4_seed_missing_help_data.ts incorrectly shows
|
|
5
|
+
* rationale, alternatives, and tradeoffs as parameters for decision.set action.
|
|
6
|
+
* These are actually parameters for add_decision_context action.
|
|
7
|
+
*
|
|
8
|
+
* This migration updates the example to show the correct 2-step workflow.
|
|
9
|
+
*
|
|
10
|
+
* @since v4.2.1
|
|
11
|
+
*/
|
|
12
|
+
import type { Knex } from 'knex';
|
|
13
|
+
export declare function up(knex: Knex): Promise<void>;
|
|
14
|
+
export declare function down(knex: Knex): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=20260102204000_v4_fix_decision_set_example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260102204000_v4_fix_decision_set_example.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20260102204000_v4_fix_decision_set_example.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuClD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BpD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration: Fix decision.set example that incorrectly shows rationale/alternatives/tradeoffs
|
|
3
|
+
*
|
|
4
|
+
* The original example in 20251225000000_v4_seed_missing_help_data.ts incorrectly shows
|
|
5
|
+
* rationale, alternatives, and tradeoffs as parameters for decision.set action.
|
|
6
|
+
* These are actually parameters for add_decision_context action.
|
|
7
|
+
*
|
|
8
|
+
* This migration updates the example to show the correct 2-step workflow.
|
|
9
|
+
*
|
|
10
|
+
* @since v4.2.1
|
|
11
|
+
*/
|
|
12
|
+
export async function up(knex) {
|
|
13
|
+
// Find the incorrect example
|
|
14
|
+
const example = await knex('v4_help_action_examples')
|
|
15
|
+
.where('title', 'Decision with context')
|
|
16
|
+
.whereRaw("code LIKE '%rationale%'")
|
|
17
|
+
.first();
|
|
18
|
+
if (!example) {
|
|
19
|
+
// Example not found or already fixed
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Correct example: show 2-step workflow
|
|
23
|
+
const correctCode = JSON.stringify({
|
|
24
|
+
action: 'set',
|
|
25
|
+
key: 'database/orm',
|
|
26
|
+
value: 'Prisma',
|
|
27
|
+
tags: ['database', 'orm'],
|
|
28
|
+
layer: 'data'
|
|
29
|
+
}, null, 2);
|
|
30
|
+
const contextNote = `
|
|
31
|
+
|
|
32
|
+
// To add context (rationale, alternatives, tradeoffs), use add_decision_context:
|
|
33
|
+
${JSON.stringify({
|
|
34
|
+
action: 'add_decision_context',
|
|
35
|
+
key: 'database/orm',
|
|
36
|
+
rationale: 'Type safety and migration support',
|
|
37
|
+
alternatives: 'TypeORM, Knex, raw SQL',
|
|
38
|
+
tradeoffs: 'Learning curve, but better DX'
|
|
39
|
+
}, null, 2)}`;
|
|
40
|
+
await knex('v4_help_action_examples')
|
|
41
|
+
.where('id', example.id)
|
|
42
|
+
.update({
|
|
43
|
+
title: 'Decision with context (2-step)',
|
|
44
|
+
code: correctCode + contextNote,
|
|
45
|
+
explanation: 'First create decision with set, then add context with add_decision_context action'
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export async function down(knex) {
|
|
49
|
+
// Revert to original (incorrect) example
|
|
50
|
+
const example = await knex('v4_help_action_examples')
|
|
51
|
+
.where('title', 'Decision with context (2-step)')
|
|
52
|
+
.first();
|
|
53
|
+
if (!example) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const originalCode = JSON.stringify({
|
|
57
|
+
action: 'set',
|
|
58
|
+
key: 'database/orm',
|
|
59
|
+
value: 'Prisma',
|
|
60
|
+
tags: ['database', 'orm'],
|
|
61
|
+
layer: 'data',
|
|
62
|
+
rationale: 'Type safety and migration support',
|
|
63
|
+
alternatives: 'TypeORM, Knex, raw SQL',
|
|
64
|
+
tradeoffs: 'Learning curve, but better DX'
|
|
65
|
+
}, null, 2);
|
|
66
|
+
await knex('v4_help_action_examples')
|
|
67
|
+
.where('id', example.id)
|
|
68
|
+
.update({
|
|
69
|
+
title: 'Decision with context',
|
|
70
|
+
code: originalCode,
|
|
71
|
+
explanation: 'Store a decision with full context (rationale, alternatives, tradeoffs)'
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=20260102204000_v4_fix_decision_set_example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260102204000_v4_fix_decision_set_example.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20260102204000_v4_fix_decision_set_example.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,6BAA6B;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClD,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACvC,QAAQ,CAAC,yBAAyB,CAAC;SACnC,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,qCAAqC;QACrC,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;QACzB,KAAK,EAAE,MAAM;KACd,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG;;;EAGpB,IAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE,sBAAsB;QAC9B,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,mCAAmC;QAC9C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,+BAA+B;KAC3C,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAEd,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;SACvB,MAAM,CAAC;QACN,KAAK,EAAE,gCAAgC;QACvC,IAAI,EAAE,WAAW,GAAG,WAAW;QAC/B,WAAW,EAAE,mFAAmF;KACjG,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,yCAAyC;IACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClD,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC;SAChD,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;QACzB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,mCAAmC;QAC9C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,+BAA+B;KAC3C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEZ,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;SACvB,MAAM,CAAC;QACN,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yEAAyE;KACvF,CAAC,CAAC;AACP,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,12 +12,16 @@
|
|
|
12
12
|
// ============================================================================
|
|
13
13
|
const rawArgs = process.argv.slice(2);
|
|
14
14
|
const firstArg = rawArgs[0] || '';
|
|
15
|
-
// Check if this is a CLI command
|
|
15
|
+
// Check if this is a CLI command or flag
|
|
16
16
|
const cliCommands = [
|
|
17
17
|
'db:dump', 'db:export', 'db:import', 'query',
|
|
18
|
-
'suggest', 'track-plan', 'save', 'check-completion', 'mark-done', 'init'
|
|
18
|
+
'suggest', 'track-plan', 'save', 'check-completion', 'mark-done', 'init',
|
|
19
|
+
// New hook events (v4.2.0+)
|
|
20
|
+
'on-subagent-stop', 'on-stop', 'on-exit-plan',
|
|
19
21
|
];
|
|
20
|
-
|
|
22
|
+
// CLI flags that should route to CLI (not MCP server)
|
|
23
|
+
const cliFlags = ['--init', '--help', '--version'];
|
|
24
|
+
const isCliCommand = cliCommands.includes(firstArg) || cliFlags.includes(firstArg);
|
|
21
25
|
if (isCliCommand) {
|
|
22
26
|
// Delegate to CLI module
|
|
23
27
|
import('./cli.js').then(async (cli) => {
|
|
@@ -58,7 +62,7 @@ async function startMcpServer() {
|
|
|
58
62
|
// Create MCP server
|
|
59
63
|
const server = new Server({
|
|
60
64
|
name: 'mcp-sqlew',
|
|
61
|
-
version: '4.0
|
|
65
|
+
version: '4.2.0',
|
|
62
66
|
}, {
|
|
63
67
|
capabilities: {
|
|
64
68
|
tools: {},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,gEAAgE;AAChE,+EAA+E;AAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAElC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/init-skills.d.ts
CHANGED
|
@@ -13,8 +13,13 @@ export declare function initializeSkills(projectRoot: string): void;
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function initializeClaudeMd(projectRoot: string): void;
|
|
15
15
|
/**
|
|
16
|
-
* Initialize all sqlew integrations (skills + CLAUDE.md + hooks)
|
|
16
|
+
* Initialize all sqlew integrations (skills + CLAUDE.md + hooks + gitignore)
|
|
17
17
|
* Called during server startup
|
|
18
18
|
*/
|
|
19
19
|
export declare function initializeSqlewIntegrations(projectRoot: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize .gitignore with sqlew auto-generated file entries
|
|
22
|
+
* Only adds entries if not already present
|
|
23
|
+
*/
|
|
24
|
+
export declare function initializeGitignore(projectRoot: string): void;
|
|
20
25
|
//# sourceMappingURL=init-skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-skills.d.ts","sourceRoot":"","sources":["../src/init-skills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuC1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"init-skills.d.ts","sourceRoot":"","sources":["../src/init-skills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuC1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBrE;AAeD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmC7D"}
|