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
package/docs/ADR_CONCEPTS.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
**Architecture Decision Records (ADR)** document the architectural decisions made on a project, including context, consequences, and alternatives considered. sqlew extends this proven pattern to AI agents.
|
|
4
4
|
|
|
5
|
+
## Plan-to-ADR (v4.3.0+)
|
|
6
|
+
|
|
7
|
+
**Plan-to-ADR** is sqlew's automatic ADR generation feature. Write decisions in your plan files using Markdown patterns (`📌 Decision` / `🚫 Constraint`), and they're automatically extracted and registered as structured ADR entries.
|
|
8
|
+
|
|
5
9
|
## How It Works
|
|
6
10
|
|
|
7
11
|
```mermaid
|
package/docs/HOOKS_GUIDE.md
CHANGED
|
@@ -4,7 +4,7 @@ Integration guide for sqlew with Claude Code hooks.
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
sqlew integrates with Claude Code through PreToolUse and PostToolUse hooks, enabling automatic
|
|
7
|
+
sqlew integrates with Claude Code through PreToolUse and PostToolUse hooks, enabling **Plan-to-ADR** (v4.3.0+): automatic Architecture Decision Record generation during AI-assisted development.
|
|
8
8
|
|
|
9
9
|
## Architecture
|
|
10
10
|
|
package/package.json
CHANGED
|
@@ -1,123 +1,87 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "sqlew",
|
|
3
|
-
"description": "Automated ADR (Architecture Decision Records) for Claude Code - MCP server with SQL-backed decision repository",
|
|
4
|
-
"version": "4.
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"sqlew": "dist/index.js",
|
|
9
|
-
"sqlew-init-commands": "dist/init-commands.js"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"dist/",
|
|
13
|
-
"scripts/",
|
|
14
|
-
"assets/",
|
|
15
|
-
"docs/",
|
|
16
|
-
"README.md",
|
|
17
|
-
"LICENSE",
|
|
18
|
-
"NOTICE",
|
|
19
|
-
"CHANGELOG.md",
|
|
20
|
-
"MIGRATION_v2.md"
|
|
21
|
-
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"build": "tsc",
|
|
24
|
-
"start": "node dist/index.js",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"test": "node --test --test-
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
},
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"architecture-decision-record",
|
|
89
|
-
"mcp",
|
|
90
|
-
"mcp-server",
|
|
91
|
-
"model-context-protocol",
|
|
92
|
-
"ai-agents",
|
|
93
|
-
"claude-code",
|
|
94
|
-
"architectural-decisions",
|
|
95
|
-
"decision-management",
|
|
96
|
-
"sqlite",
|
|
97
|
-
"postgresql",
|
|
98
|
-
"mysql",
|
|
99
|
-
"token-efficiency"
|
|
100
|
-
],
|
|
101
|
-
"author": "sin5ddd",
|
|
102
|
-
"license": "Apache-2.0",
|
|
103
|
-
"dependencies": {
|
|
104
|
-
"@modelcontextprotocol/sdk": "^1.21.1",
|
|
105
|
-
"better-sqlite3": "^12.4.1",
|
|
106
|
-
"chokidar": "^4.0.3",
|
|
107
|
-
"ignore": "^7.0.5",
|
|
108
|
-
"knex": "^3.1.0",
|
|
109
|
-
"knex-schema-inspector": "^3.1.0",
|
|
110
|
-
"mysql2": "^3.15.3",
|
|
111
|
-
"pg": "^8.16.3",
|
|
112
|
-
"smol-toml": "^1.4.2"
|
|
113
|
-
},
|
|
114
|
-
"devDependencies": {
|
|
115
|
-
"@types/better-sqlite3": "^7.6.0",
|
|
116
|
-
"@types/knex": "^0.15.2",
|
|
117
|
-
"@types/node": "^20.0.0",
|
|
118
|
-
"husky": "^9.1.7",
|
|
119
|
-
"rimraf": "^6.1.0",
|
|
120
|
-
"tsx": "^4.20.6",
|
|
121
|
-
"typescript": "^5.0.0"
|
|
122
|
-
}
|
|
123
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "sqlew",
|
|
3
|
+
"description": "Automated ADR (Architecture Decision Records) for Claude Code - MCP server with SQL-backed decision repository",
|
|
4
|
+
"version": "4.3.0",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"sqlew": "dist/index.js",
|
|
9
|
+
"sqlew-init-commands": "dist/init-commands.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/",
|
|
13
|
+
"scripts/",
|
|
14
|
+
"assets/",
|
|
15
|
+
"docs/",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE",
|
|
18
|
+
"NOTICE",
|
|
19
|
+
"CHANGELOG.md",
|
|
20
|
+
"MIGRATION_v2.md"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"start": "node dist/index.js",
|
|
25
|
+
"dev": "tsc --watch",
|
|
26
|
+
"clean": "rimraf dist",
|
|
27
|
+
"rebuild": "npm run clean && npm run build",
|
|
28
|
+
"test": "node --test --test-force-exit --import tsx \"src/tests/unit/**/*.test.ts\" \"src/tests/feature/**/*.test.ts\" \"src/tests/database/**/*.test.ts\" \"src/tests/integration/**/*.test.ts\" | node scripts/filter-test-output.js",
|
|
29
|
+
"test:ci": "npm run build && npm test",
|
|
30
|
+
"test:native": "npm run build && node --test --test-concurrency=1 --test-force-exit dist/tests/docker/native/**/*.test.js | node scripts/filter-test-output.js",
|
|
31
|
+
"prepare": "husky",
|
|
32
|
+
"prepublishOnly": "npm run rebuild",
|
|
33
|
+
"knex": "npx tsx node_modules/knex/bin/cli.js --knexfile src/knexfile.ts",
|
|
34
|
+
"migrate:make": "npm run knex migrate:make",
|
|
35
|
+
"migrate:latest": "npm run knex migrate:latest",
|
|
36
|
+
"migrate:rollback": "npm run knex migrate:rollback",
|
|
37
|
+
"migrate:status": "npm run knex migrate:status"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=20.0.0"
|
|
41
|
+
},
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "git+https://github.com/sin5ddd/mcp-sqlew.git"
|
|
45
|
+
},
|
|
46
|
+
"bugs": {
|
|
47
|
+
"url": "https://github.com/sin5ddd/mcp-sqlew/issues"
|
|
48
|
+
},
|
|
49
|
+
"homepage": "https://github.com/sin5ddd/mcp-sqlew#readme",
|
|
50
|
+
"keywords": [
|
|
51
|
+
"adr",
|
|
52
|
+
"architecture-decision-record",
|
|
53
|
+
"mcp",
|
|
54
|
+
"mcp-server",
|
|
55
|
+
"model-context-protocol",
|
|
56
|
+
"ai-agents",
|
|
57
|
+
"claude-code",
|
|
58
|
+
"architectural-decisions",
|
|
59
|
+
"decision-management",
|
|
60
|
+
"sqlite",
|
|
61
|
+
"postgresql",
|
|
62
|
+
"mysql",
|
|
63
|
+
"token-efficiency"
|
|
64
|
+
],
|
|
65
|
+
"author": "sin5ddd",
|
|
66
|
+
"license": "Apache-2.0",
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@modelcontextprotocol/sdk": "^1.21.1",
|
|
69
|
+
"better-sqlite3": "^12.4.1",
|
|
70
|
+
"chokidar": "^4.0.3",
|
|
71
|
+
"ignore": "^7.0.5",
|
|
72
|
+
"knex": "^3.1.0",
|
|
73
|
+
"knex-schema-inspector": "^3.1.0",
|
|
74
|
+
"mysql2": "^3.15.3",
|
|
75
|
+
"pg": "^8.16.3",
|
|
76
|
+
"smol-toml": "^1.4.2"
|
|
77
|
+
},
|
|
78
|
+
"devDependencies": {
|
|
79
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
80
|
+
"@types/knex": "^0.15.2",
|
|
81
|
+
"@types/node": "^20.0.0",
|
|
82
|
+
"husky": "^9.1.7",
|
|
83
|
+
"rimraf": "^6.1.0",
|
|
84
|
+
"tsx": "^4.20.6",
|
|
85
|
+
"typescript": "^5.0.0"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-aware-completion.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/vcs/git-aware-completion.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git-Aware Auto-Complete Tests (v3.4.0)
|
|
3
|
-
* Tests for detectAndCompleteReviewedTasks function
|
|
4
|
-
*/
|
|
5
|
-
import { describe, it, before, after } from 'node:test';
|
|
6
|
-
import assert from 'node:assert';
|
|
7
|
-
import { mkdirSync, rmSync, existsSync } from 'fs';
|
|
8
|
-
import { join } from 'path';
|
|
9
|
-
import { execSync } from 'child_process';
|
|
10
|
-
import { initializeDatabase, closeDatabase, setConfigValue } from '../../../database.js';
|
|
11
|
-
import { detectAndCompleteReviewedTasks } from '../../../utils/task-stale-detection.js';
|
|
12
|
-
import { ProjectContext } from '../../../utils/project-context.js';
|
|
13
|
-
const TEST_DIR = join(process.cwd(), 'test-tracking');
|
|
14
|
-
// Helper to clean up test directory
|
|
15
|
-
function cleanupTestDir() {
|
|
16
|
-
if (existsSync(TEST_DIR)) {
|
|
17
|
-
rmSync(TEST_DIR, { recursive: true, force: true });
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
// Helper to get current git HEAD hash
|
|
21
|
-
function getGitHead() {
|
|
22
|
-
try {
|
|
23
|
-
return execSync('git rev-parse HEAD', { encoding: 'utf-8' }).trim();
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
// Helper to reset git to a specific commit
|
|
30
|
-
function resetGitTo(commitHash) {
|
|
31
|
-
try {
|
|
32
|
-
execSync(`git reset --hard ${commitHash}`, { stdio: 'ignore' });
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
// Ignore errors (e.g., if reset fails)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
describe('Git-Aware Auto-Complete', () => {
|
|
39
|
-
let db;
|
|
40
|
-
let initialGitHead = null;
|
|
41
|
-
before(async () => {
|
|
42
|
-
// Record initial git HEAD to reset after tests (cleanup test commits)
|
|
43
|
-
initialGitHead = getGitHead();
|
|
44
|
-
// Clean up before tests
|
|
45
|
-
cleanupTestDir();
|
|
46
|
-
// Configure git user for test commits (required if not set globally)
|
|
47
|
-
try {
|
|
48
|
-
execSync('git config user.email 2>/dev/null || git config user.email "test@example.com"', { stdio: 'ignore' });
|
|
49
|
-
execSync('git config user.name 2>/dev/null || git config user.name "Test User"', { stdio: 'ignore' });
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// Ignore - may already be configured
|
|
53
|
-
}
|
|
54
|
-
// Create test database (in-memory)
|
|
55
|
-
db = await initializeDatabase({
|
|
56
|
-
databaseType: 'sqlite',
|
|
57
|
-
connection: {
|
|
58
|
-
filename: ':memory:'
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
const knex = db.getKnex();
|
|
62
|
-
// Initialize ProjectContext (required for v3.7.0+ multi-project support)
|
|
63
|
-
const projectContext = ProjectContext.getInstance();
|
|
64
|
-
await projectContext.ensureProject(knex, 'test-git-aware-completion', 'config', {
|
|
65
|
-
projectRootPath: process.cwd(),
|
|
66
|
-
});
|
|
67
|
-
// Add test config for git auto-complete (v4.0: in-memory config)
|
|
68
|
-
await setConfigValue(db, 'git_auto_complete_enabled', '1');
|
|
69
|
-
await setConfigValue(db, 'require_all_files_committed', '1');
|
|
70
|
-
// Create test directory
|
|
71
|
-
if (!existsSync(TEST_DIR)) {
|
|
72
|
-
mkdirSync(TEST_DIR, { recursive: true });
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
after(async () => {
|
|
76
|
-
// Close database
|
|
77
|
-
if (db) {
|
|
78
|
-
await closeDatabase();
|
|
79
|
-
}
|
|
80
|
-
// Clean up test directory
|
|
81
|
-
cleanupTestDir();
|
|
82
|
-
// Reset git to initial HEAD to drop test commits
|
|
83
|
-
if (initialGitHead) {
|
|
84
|
-
resetGitTo(initialGitHead);
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
it('should auto-complete task when all watched files are committed', async () => {
|
|
88
|
-
const knex = db.getKnex();
|
|
89
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
90
|
-
// 1. Create a task in waiting_review status with watched files
|
|
91
|
-
const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
|
|
92
|
-
const [taskId] = await knex('v4_tasks').insert({
|
|
93
|
-
title: 'Test git-aware task',
|
|
94
|
-
status_id: statusRow.id,
|
|
95
|
-
priority: 2,
|
|
96
|
-
project_id: projectId,
|
|
97
|
-
created_ts: Math.floor(Date.now() / 1000),
|
|
98
|
-
updated_ts: Math.floor(Date.now() / 1000)
|
|
99
|
-
});
|
|
100
|
-
// 2. Add watched files
|
|
101
|
-
const [file1Id] = await knex('v4_files').insert({ path: 'test-tracking/file1.ts' });
|
|
102
|
-
const [file2Id] = await knex('v4_files').insert({ path: 'test-tracking/file2.ts' });
|
|
103
|
-
await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file1Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
|
|
104
|
-
await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file2Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
|
|
105
|
-
// 3. Commit the files to git
|
|
106
|
-
execSync(`touch ${TEST_DIR}/file1.ts`);
|
|
107
|
-
execSync(`touch ${TEST_DIR}/file2.ts`);
|
|
108
|
-
execSync(`git add ${TEST_DIR}/file1.ts ${TEST_DIR}/file2.ts`);
|
|
109
|
-
execSync(`git commit -m "Test commit for git-aware completion"`);
|
|
110
|
-
// 4. Run git-aware auto-complete
|
|
111
|
-
const completedCount = await detectAndCompleteReviewedTasks(db);
|
|
112
|
-
// 5. Verify task was auto-completed
|
|
113
|
-
assert.strictEqual(completedCount, 1, 'Should auto-complete 1 task');
|
|
114
|
-
const task = await knex('v4_tasks').where({ id: taskId }).first('status_id');
|
|
115
|
-
const doneStatus = await knex('v4_task_statuses').where({ name: 'done' }).first('id');
|
|
116
|
-
assert.strictEqual(task.status_id, doneStatus.id, 'Task should be in done status');
|
|
117
|
-
});
|
|
118
|
-
it('should NOT auto-complete task when only some files are committed', async () => {
|
|
119
|
-
const knex = db.getKnex();
|
|
120
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
121
|
-
// 1. Create a task in waiting_review
|
|
122
|
-
const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
|
|
123
|
-
const [taskId] = await knex('v4_tasks').insert({
|
|
124
|
-
title: 'Partial commit task',
|
|
125
|
-
status_id: statusRow.id,
|
|
126
|
-
priority: 2,
|
|
127
|
-
project_id: projectId,
|
|
128
|
-
created_ts: Math.floor(Date.now() / 1000),
|
|
129
|
-
updated_ts: Math.floor(Date.now() / 1000)
|
|
130
|
-
});
|
|
131
|
-
// 2. Add watched files
|
|
132
|
-
const [file3Id] = await knex('v4_files').insert({ path: 'test-tracking/file3.ts' });
|
|
133
|
-
const [file4Id] = await knex('v4_files').insert({ path: 'test-tracking/file4.ts' });
|
|
134
|
-
await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file3Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
|
|
135
|
-
await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file4Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
|
|
136
|
-
// 3. Commit only ONE file
|
|
137
|
-
execSync(`touch ${TEST_DIR}/file3.ts`);
|
|
138
|
-
execSync(`git add ${TEST_DIR}/file3.ts`);
|
|
139
|
-
execSync(`git commit -m "Partial commit - only file3"`);
|
|
140
|
-
// 4. Run git-aware auto-complete
|
|
141
|
-
const completedCount = await detectAndCompleteReviewedTasks(db);
|
|
142
|
-
// 5. Verify task was NOT auto-completed (still in waiting_review)
|
|
143
|
-
assert.strictEqual(completedCount, 0, 'Should NOT auto-complete task with partial commits');
|
|
144
|
-
const task = await knex('v4_tasks').where({ id: taskId }).first('status_id');
|
|
145
|
-
const waitingReviewStatus = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
|
|
146
|
-
assert.strictEqual(task.status_id, waitingReviewStatus.id, 'Task should still be in waiting_review status');
|
|
147
|
-
});
|
|
148
|
-
it('should skip tasks with no watched files', async () => {
|
|
149
|
-
const knex = db.getKnex();
|
|
150
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
151
|
-
// 1. Create a task in waiting_review with NO watched files
|
|
152
|
-
const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
|
|
153
|
-
const [taskId] = await knex('v4_tasks').insert({
|
|
154
|
-
title: 'No watched files task',
|
|
155
|
-
status_id: statusRow.id,
|
|
156
|
-
priority: 2,
|
|
157
|
-
project_id: projectId,
|
|
158
|
-
created_ts: Math.floor(Date.now() / 1000),
|
|
159
|
-
updated_ts: Math.floor(Date.now() / 1000)
|
|
160
|
-
});
|
|
161
|
-
// 2. Run git-aware auto-complete
|
|
162
|
-
const completedCount = await detectAndCompleteReviewedTasks(db);
|
|
163
|
-
// 3. Verify no tasks were auto-completed
|
|
164
|
-
assert.strictEqual(completedCount, 0, 'Should skip tasks with no watched files');
|
|
165
|
-
const task = await knex('v4_tasks').where({ id: taskId }).first('status_id');
|
|
166
|
-
const waitingReviewStatus = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
|
|
167
|
-
assert.strictEqual(task.status_id, waitingReviewStatus.id, 'Task should still be in waiting_review status');
|
|
168
|
-
});
|
|
169
|
-
it('should respect git_auto_complete_enabled config', async () => {
|
|
170
|
-
const knex = db.getKnex();
|
|
171
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
172
|
-
// 1. Disable git auto-complete (v4.0: in-memory config)
|
|
173
|
-
await setConfigValue(db, 'git_auto_complete_enabled', '0');
|
|
174
|
-
// 2. Create a task with all files committed
|
|
175
|
-
const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
|
|
176
|
-
const [taskId] = await knex('v4_tasks').insert({
|
|
177
|
-
title: 'Config disabled task',
|
|
178
|
-
status_id: statusRow.id,
|
|
179
|
-
priority: 2,
|
|
180
|
-
project_id: projectId,
|
|
181
|
-
created_ts: Math.floor(Date.now() / 1000),
|
|
182
|
-
updated_ts: Math.floor(Date.now() / 1000)
|
|
183
|
-
});
|
|
184
|
-
const [file5Id] = await knex('v4_files').insert({ path: 'test-tracking/file5.ts' });
|
|
185
|
-
await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file5Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
|
|
186
|
-
execSync(`touch ${TEST_DIR}/file5.ts`);
|
|
187
|
-
execSync(`git add ${TEST_DIR}/file5.ts`);
|
|
188
|
-
execSync(`git commit -m "Test with config disabled"`);
|
|
189
|
-
// 3. Run git-aware auto-complete (should skip due to config)
|
|
190
|
-
const completedCount = await detectAndCompleteReviewedTasks(db);
|
|
191
|
-
// 4. Verify no tasks were auto-completed
|
|
192
|
-
assert.strictEqual(completedCount, 0, 'Should respect disabled config');
|
|
193
|
-
// Re-enable for other tests (v4.0: in-memory config)
|
|
194
|
-
await setConfigValue(db, 'git_auto_complete_enabled', '1');
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
//# sourceMappingURL=git-aware-completion.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-aware-completion.test.js","sourceRoot":"","sources":["../../../../src/tests/feature/vcs/git-aware-completion.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"two-step-git-completion.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/vcs/two-step-git-completion.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|