sqlew 4.1.2 → 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 +32 -0
- 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/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.js +5 -5
- 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/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/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/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/types/actions.d.ts +1 -1
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types.d.ts +9 -2
- 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.d.ts.map +1 -1
- package/dist/utils/action-specs/decision-specs.js +11 -10
- package/dist/utils/action-specs/decision-specs.js.map +1 -1
- package/dist/utils/action-specs/file-specs.js +4 -4
- package/dist/utils/action-specs/file-specs.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/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 +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [4.3.0] - 2026-01-04
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
**Plan-to-ADR: Automatic Architecture Decision Records**
|
|
15
|
+
|
|
16
|
+
- Automatic ADR generation from Claude Code Plan Mode
|
|
17
|
+
- Markdown pattern extraction (📌 Decision / 🚫 Constraint markers)
|
|
18
|
+
- File Queue Architecture for async decision processing
|
|
19
|
+
- SubagentStop event integration for reliable pattern detection
|
|
20
|
+
- Parameter aliases for simplified tool usage (`path` → `file_path`, etc.)
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Documentation: Removed TOML format references (Markdown-only implementation)
|
|
25
|
+
- Unified feature branding as "Plan-to-ADR"
|
|
26
|
+
- Quick Start: `sqlew --init` as recommended one-shot setup
|
|
27
|
+
- Skills: Updated sqlew-decision-format and sqlew-plan-guidance
|
|
28
|
+
|
|
29
|
+
### Deprecated
|
|
30
|
+
|
|
31
|
+
- **`task` tool**: Will be removed in v5.0. Use Claude Code's native TodoWrite instead
|
|
32
|
+
- **`file` tool**: Will be removed in v5.0. File tracking was primarily used with task system
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Version alignment across package.json, README.md, CLAUDE.md
|
|
37
|
+
- Constraints duplication on automation
|
|
38
|
+
- Windows file locking issues with chokidar
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
10
42
|
## [4.1.2] - 2025-12-25
|
|
11
43
|
|
|
12
44
|
### Fixed
|
package/README.md
CHANGED
|
@@ -28,12 +28,18 @@ Add to `.mcp.json` in your project root:
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
### 3. Initialize
|
|
31
|
+
### 3. Initialize project
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
sqlew init
|
|
34
|
+
sqlew --init
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
This one-shot command sets up:
|
|
38
|
+
- Claude Code Skills
|
|
39
|
+
- CLAUDE.md integration hints
|
|
40
|
+
- Plan-to-ADR hooks
|
|
41
|
+
- .gitignore entries
|
|
42
|
+
|
|
37
43
|
### 4. Just use Plan Mode!
|
|
38
44
|
|
|
39
45
|
**That's it!** Now every time you:
|
|
@@ -99,7 +105,7 @@ AI agents automatically accumulate project knowledge through Plan Mode. Decision
|
|
|
99
105
|
|
|
100
106
|
---
|
|
101
107
|
|
|
102
|
-
**Technical Features**:
|
|
108
|
+
**Technical Features**: 6 MCP tools (3 core: decision, constraint, suggest + 3 utility: help, example, use_case), three-tier similarity detection (0-100 point scoring), ACID transaction support, multi-database backend (SQLite/PostgreSQL/MySQL), metadata-driven organization with layers and tags
|
|
103
109
|
|
|
104
110
|
|
|
105
111
|
## Installation
|
|
@@ -128,18 +134,9 @@ Then add to `.mcp.json` in your project root:
|
|
|
128
134
|
}
|
|
129
135
|
```
|
|
130
136
|
|
|
131
|
-
### Alternative: npx (
|
|
137
|
+
### Alternative: npx (Not Recommended)
|
|
132
138
|
|
|
133
|
-
|
|
134
|
-
{
|
|
135
|
-
"mcpServers": {
|
|
136
|
-
"sqlew": {
|
|
137
|
-
"command": "npx",
|
|
138
|
-
"args": ["sqlew"]
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
```
|
|
139
|
+
**⚠️ Not recommended**: npx usage prevents Claude Code Hooks from working, disabling Plan-to-ADR automatic decision capture. Use global install instead.
|
|
143
140
|
|
|
144
141
|
**Note**: First run initializes the database. Restart Claude Code to load the MCP server.
|
|
145
142
|
|
|
@@ -148,147 +145,19 @@ Each project maintains its own context database in `.sqlew/sqlew.db`.
|
|
|
148
145
|
**Custom database path:** Add path as argument: `"args": ["sqlew", "/path/to/db.db"]`
|
|
149
146
|
**Default location:** `.sqlew/sqlew.db`
|
|
150
147
|
|
|
151
|
-
**⚠️ Not Supported:** Junie AI cannot use relative paths in MCP server configurations, which makes it incompatible with sqlew's project-based database model. Each project requires its own isolated database at `.sqlew/sqlew.db`, but Junie AI's global MCP configuration cannot handle per-project database paths.
|
|
152
|
-
|
|
153
148
|
## Configuration
|
|
154
149
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
sqlew supports multiple database backends for different deployment scenarios:
|
|
158
|
-
|
|
159
|
-
| Database | Use Case | Status |
|
|
160
|
-
|----------|----------------------------------------------|-------------|
|
|
161
|
-
| **SQLite** | Personal or small projects | ✅ Default |
|
|
162
|
-
| **MySQL 8.0 / MariaDB 10+** | Production, shared environments, remote work | ✅ Supported |
|
|
163
|
-
| **PostgreSQL 12+** | Production, shared environments, remote work | ✅ Supported |
|
|
164
|
-
|
|
165
|
-
Of course, it also works with Docker RDB instances.
|
|
166
|
-
|
|
167
|
-
### Optional Config File
|
|
168
|
-
|
|
169
|
-
On first run, `.sqlew/config.toml` will be created for persistent settings:
|
|
170
|
-
|
|
171
|
-
**SQLite (Default):**
|
|
172
|
-
```toml
|
|
173
|
-
[database]
|
|
174
|
-
path = ".sqlew/custom.db"
|
|
175
|
-
|
|
176
|
-
[autodelete]
|
|
177
|
-
ignore_weekend = true
|
|
178
|
-
message_hours = 48
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**PostgreSQL:**
|
|
182
|
-
```toml
|
|
183
|
-
[database]
|
|
184
|
-
type = "postgres"
|
|
185
|
-
|
|
186
|
-
[database.connection]
|
|
187
|
-
host = "localhost"
|
|
188
|
-
port = 5432
|
|
189
|
-
database = "sqlew_db"
|
|
190
|
-
|
|
191
|
-
[database.auth]
|
|
192
|
-
type = "direct"
|
|
193
|
-
user = "sqlew_user"
|
|
194
|
-
password = "secret"
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
**MySQL/MariaDB:**
|
|
198
|
-
```toml
|
|
199
|
-
[database]
|
|
200
|
-
type = "mysql"
|
|
201
|
-
|
|
202
|
-
[database.connection]
|
|
203
|
-
host = "localhost"
|
|
204
|
-
port = 3306
|
|
205
|
-
database = "sqlew_db"
|
|
206
|
-
|
|
207
|
-
[database.auth]
|
|
208
|
-
type = "direct"
|
|
209
|
-
user = "sqlew_user"
|
|
210
|
-
password = "secret"
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Also `.sqlew/config.example.toml` is created for reference.
|
|
214
|
-
|
|
215
|
-
**Settings Priority:** CLI args > config.toml > database defaults
|
|
216
|
-
|
|
217
|
-
See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for all options and validation rules.
|
|
218
|
-
|
|
219
|
-
### CLI Configuration (Recommended)
|
|
150
|
+
sqlew supports multiple database backends:
|
|
220
151
|
|
|
221
|
-
|
|
152
|
+
| Database | Use Case | Status |
|
|
153
|
+
|----------|----------|--------|
|
|
154
|
+
| **SQLite** | Personal/small projects | ✅ Default |
|
|
155
|
+
| **MySQL 8.0+ / MariaDB 10+** | Production, team sharing | ✅ Supported |
|
|
156
|
+
| **PostgreSQL 12+** | Production, team sharing | ✅ Supported |
|
|
222
157
|
|
|
223
|
-
|
|
224
|
-
- **No drift:** Single source of truth (config file)
|
|
225
|
-
- **Version control:** Commit config to git, share with team
|
|
226
|
-
- **Clear documentation:** Config file documents project requirements
|
|
227
|
-
- **Type safety:** TOML validation catches errors at startup
|
|
228
|
-
|
|
229
|
-
**Common CLI arguments:**
|
|
230
|
-
```bash
|
|
231
|
-
# Custom database path
|
|
232
|
-
npx sqlew /path/to/database.db
|
|
233
|
-
|
|
234
|
-
# Auto-deletion settings
|
|
235
|
-
npx sqlew --autodelete-message-hours=48
|
|
236
|
-
npx sqlew --autodelete-file-history-days=30
|
|
237
|
-
npx sqlew --autodelete-ignore-weekend
|
|
238
|
-
|
|
239
|
-
# Custom config file
|
|
240
|
-
npx sqlew --config-path=.sqlew/custom.toml
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
For persistent settings, edit `.sqlew/config.toml` instead of using CLI arguments.
|
|
244
|
-
|
|
245
|
-
## Quick Start
|
|
246
|
-
|
|
247
|
-
install it, launch claude, exit claude and launch Claude again.
|
|
248
|
-
|
|
249
|
-
### Basic Usage
|
|
250
|
-
|
|
251
|
-
You'll never need to call it manually, I recommend to call this tool via prompt.
|
|
252
|
-
|
|
253
|
-
```
|
|
254
|
-
read sqlew usecases, and plan implementation of feature X using sqlew.
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
or invoke Specialized Agent
|
|
258
|
-
|
|
259
|
-
```
|
|
260
|
-
/sqw-plan implementation of feature X .
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
Specialized Agents use sqlew more efficiently.
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
**Note**: The `/sqlew` command supersedes the previous multi-command system (`/sqw-plan`, `/sqw-scrum`, etc.). All functionality is now available through the unified `/sqlew` interface with automatic intent detection.
|
|
268
|
-
|
|
269
|
-
### Advanced: Direct MCP Tool Access
|
|
270
|
-
|
|
271
|
-
Power users can still call MCP tools directly. See [Available Tools](#available-tools) section below.
|
|
272
|
-
|
|
273
|
-
### Available Tools
|
|
274
|
-
|
|
275
|
-
#### Core ADR Tools
|
|
276
|
-
|
|
277
|
-
| Tool | Purpose | Example Use |
|
|
278
|
-
|------|---------|------------|
|
|
279
|
-
| **decision** | Record architectural decisions with context | "We chose PostgreSQL over MongoDB (ACID requirement)" |
|
|
280
|
-
| **constraint** | Define architectural rules and principles | "All API endpoints must use /v2/ prefix" |
|
|
281
|
-
| **file** | Track code changes linked to decisions | "Modified auth.ts per security ADR" |
|
|
282
|
-
| **suggest** | Find similar decisions, prevent duplicates | Duplicate detection, similarity search |
|
|
283
|
-
|
|
284
|
-
#### Utility Tools
|
|
285
|
-
|
|
286
|
-
| Tool | Purpose | Example Use |
|
|
287
|
-
|------|---------|------------|
|
|
288
|
-
| **help** | Query action documentation and parameters | Get decision.set parameters |
|
|
289
|
-
| **example** | Browse code examples by tool/action | Find task.create examples |
|
|
290
|
-
| **use_case** | Complete workflow scenarios | Multi-step ADR workflows |
|
|
158
|
+
Configuration is managed via `.sqlew/config.toml` file and CLI arguments.
|
|
291
159
|
|
|
160
|
+
→ **[Full Configuration Guide](docs/CONFIGURATION.md)** - All options, database setup, validation rules
|
|
292
161
|
|
|
293
162
|
## Documentation
|
|
294
163
|
|
|
@@ -363,23 +232,14 @@ Support development via [GitHub Sponsors](https://github.com/sponsors/sin5ddd) -
|
|
|
363
232
|
|
|
364
233
|
## Version
|
|
365
234
|
|
|
366
|
-
Current version: **4.
|
|
235
|
+
Current version: **4.3.0**
|
|
367
236
|
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
368
237
|
|
|
369
|
-
**What's New in v4.
|
|
370
|
-
- **
|
|
371
|
-
- **
|
|
372
|
-
- **
|
|
373
|
-
- **
|
|
374
|
-
- **Cross-DB Verified** - SQLite, MySQL, MariaDB, PostgreSQL all tested
|
|
375
|
-
|
|
376
|
-
**What's New in v4.0.5:**
|
|
377
|
-
- **License Change** - Apache License 2.0 (from AGPL-3.0)
|
|
378
|
-
|
|
379
|
-
**What's New in v4.0.2:**
|
|
380
|
-
- **Unified CLI Entry Point** - `npx sqlew db:export` works directly (no `npm install` required)
|
|
381
|
-
- **Cross-DB Migration via JSON Only** - SQL dump no longer supports cross-database conversion
|
|
382
|
-
- **Node.js 20+ Required** - Updated minimum version requirement
|
|
238
|
+
**What's New in v4.3.0:**
|
|
239
|
+
- **Plan-to-ADR** - Automatic Architecture Decision Records from Claude Code Plan Mode
|
|
240
|
+
- **Markdown Pattern Extraction** - 📌 Decision / 🚫 Constraint markers auto-detected
|
|
241
|
+
- **One-shot Setup** - `sqlew --init` initializes everything (Skills, Hooks, gitignore)
|
|
242
|
+
- **Parameter Aliases** - Simplified tool usage with intuitive parameter names
|
|
383
243
|
|
|
384
244
|
See [docs/HOOKS_GUIDE.md](docs/HOOKS_GUIDE.md) for Claude Code Hooks details.
|
|
385
245
|
|
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
## Plan Mode Integration
|
|
2
|
-
|
|
3
|
-
###
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
**
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
## Plan Mode Integration
|
|
2
|
+
|
|
3
|
+
### Decision & Constraint Recording Format
|
|
4
|
+
|
|
5
|
+
When writing plans, use these formats to record decisions and constraints.
|
|
6
|
+
They will be **auto-detected on ExitPlanMode** and registered as draft in sqlew.
|
|
7
|
+
|
|
8
|
+
**Decision format:**
|
|
9
|
+
```markdown
|
|
10
|
+
### 📌 Decision: [key/path]
|
|
11
|
+
- **Value**: Description of the decision
|
|
12
|
+
- **Layer**: presentation | business | data | infrastructure | cross-cutting
|
|
13
|
+
- **Tags**: tag1, tag2 (optional)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Constraint format:**
|
|
17
|
+
```markdown
|
|
18
|
+
### 🚫 Constraint: [category]
|
|
19
|
+
- **Rule**: Description of the constraint
|
|
20
|
+
- **Priority**: critical | high | medium | low
|
|
21
|
+
- **Tags**: tag1, tag2 (optional)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Category options: `architecture` | `security` | `code-style` | `performance`
|
|
25
|
+
|
|
26
|
+
### With Claude Code Hooks (Recommended)
|
|
27
|
+
|
|
28
|
+
If you've run `sqlew init --hooks`, sqlew integration is **fully automatic**:
|
|
29
|
+
- Related decisions are auto-suggested before Task execution
|
|
30
|
+
- Plan files are auto-tracked with unique IDs
|
|
31
|
+
- 📌/🚫 patterns are auto-detected and registered as draft
|
|
32
|
+
- Decisions are auto-saved when code is edited
|
|
33
|
+
- Status updates to `in_review` when all tasks complete
|
|
34
|
+
- Status updates to `implemented` after git merge/rebase
|
|
35
|
+
|
|
36
|
+
### Manual Usage (Without Hooks)
|
|
37
|
+
|
|
38
|
+
When `<system-reminder>Plan mode is active</system-reminder>` appears:
|
|
39
|
+
|
|
40
|
+
**Research Phase:**
|
|
41
|
+
- `/sqlew search for <topic>` - find related decisions
|
|
42
|
+
- `/sqlew show remaining tasks` - check active tasks
|
|
43
|
+
|
|
44
|
+
**Final Plan Phase:**
|
|
45
|
+
- `/sqlew record <decision>` - record key architectural decisions
|
|
46
|
+
- `/sqlew create task <description>` - create implementation tasks
|
|
47
|
+
|
|
48
|
+
**Quick Reference**: `.claude/skills/sqlew-decision-format/SKILL.md`
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sqlew-decision-format
|
|
3
|
+
description: |
|
|
4
|
+
Format guide for recording decisions and constraints in plan mode.
|
|
5
|
+
Auto-injected during plan creation to encourage structured documentation.
|
|
6
|
+
Auto-detected and registered as draft on ExitPlanMode.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Plan Mode: Decision & Constraint Recording
|
|
10
|
+
|
|
11
|
+
When including decisions or constraints in your plan, use the following format.
|
|
12
|
+
They will be auto-detected on ExitPlanMode and registered as draft in sqlew.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### 📌 Decision: [hierarchical/key]
|
|
17
|
+
|
|
18
|
+
Record decisions using this format:
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
### 📌 Decision: [key/path]
|
|
22
|
+
- **Value**: Description of the decision
|
|
23
|
+
- **Layer**: presentation | business | data | infrastructure | cross-cutting
|
|
24
|
+
- **Tags**: tag1, tag2 (optional)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Examples:**
|
|
28
|
+
|
|
29
|
+
### 📌 Decision: frontend/framework
|
|
30
|
+
- **Value**: Use React 18
|
|
31
|
+
- **Layer**: presentation
|
|
32
|
+
- **Tags**: react, frontend
|
|
33
|
+
|
|
34
|
+
### 📌 Decision: database/orm
|
|
35
|
+
- **Value**: Adopt Prisma
|
|
36
|
+
- **Layer**: data
|
|
37
|
+
- **Tags**: prisma, orm, typescript
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### 🚫 Constraint: [category]
|
|
42
|
+
|
|
43
|
+
Record constraints using this format:
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
### 🚫 Constraint: [category]
|
|
47
|
+
- **Rule**: Description of the constraint
|
|
48
|
+
- **Priority**: critical | high | medium | low
|
|
49
|
+
- **Tags**: tag1, tag2 (optional)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Category options:** `architecture` | `security` | `code-style` | `performance`
|
|
53
|
+
|
|
54
|
+
**Examples:**
|
|
55
|
+
|
|
56
|
+
### 🚫 Constraint: code-style
|
|
57
|
+
- **Rule**: No inline styles, use CSS Modules
|
|
58
|
+
- **Priority**: medium
|
|
59
|
+
- **Tags**: css, styling
|
|
60
|
+
|
|
61
|
+
### 🚫 Constraint: security
|
|
62
|
+
- **Rule**: No hardcoded API keys, use environment variables
|
|
63
|
+
- **Priority**: critical
|
|
64
|
+
- **Tags**: security, env
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Automatic Processing Flow
|
|
69
|
+
|
|
70
|
+
1. **During Planning**: Write Decision/Constraint in the format above
|
|
71
|
+
2. **On ExitPlanMode**: Auto-detected → registered as draft/inactive
|
|
72
|
+
3. **On Implementation File Edit**: Auto-promoted to active
|
|
73
|
+
4. **Check command**: `mcp__sqlew__decision({ action: "list", status: "draft" })`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"check-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmHH;;;;;GAKG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4F5D"}
|
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
* @since v4.1.0
|
|
11
11
|
*/
|
|
12
12
|
import { readStdinJson, sendContinue, areAllTodosCompleted, getProjectPath } from './stdin-parser.js';
|
|
13
|
-
import { loadCurrentPlan } from '../../config/global-config.js';
|
|
13
|
+
import { loadCurrentPlan, loadPlanTomlCache, savePlanTomlCache, } from '../../config/global-config.js';
|
|
14
14
|
import { initializeDatabase } from '../../database.js';
|
|
15
15
|
import { setDecision } from '../../tools/context/actions/set.js';
|
|
16
|
+
import { enqueueDecisionCreate } from '../../utils/hook-queue.js';
|
|
16
17
|
import { join } from 'path';
|
|
17
18
|
// ============================================================================
|
|
18
19
|
// Constants
|
|
@@ -24,6 +25,77 @@ const IN_REVIEW_STATUS = 'active';
|
|
|
24
25
|
/** Workflow tag for in-review state */
|
|
25
26
|
const WORKFLOW_TAG_IN_REVIEW = 'workflow:in_review';
|
|
26
27
|
// ============================================================================
|
|
28
|
+
// TOML Decision/Constraint Processing (v4.2.0+)
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Format constraint candidates as a registration prompt
|
|
32
|
+
*
|
|
33
|
+
* @param cache - Plan TOML cache with constraint candidates
|
|
34
|
+
* @returns Formatted prompt string with MCP command examples
|
|
35
|
+
*/
|
|
36
|
+
function formatConstraintPrompt(cache) {
|
|
37
|
+
if (cache.constraints.length === 0) {
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
const lines = [
|
|
41
|
+
'',
|
|
42
|
+
'🎯 **Constraint Candidates Ready for Registration**',
|
|
43
|
+
'',
|
|
44
|
+
`Found ${cache.constraints.length} constraint candidate(s) from plan TOML:`,
|
|
45
|
+
'',
|
|
46
|
+
];
|
|
47
|
+
cache.constraints.forEach((c, i) => {
|
|
48
|
+
const priority = c.priority || 'medium';
|
|
49
|
+
lines.push(`${i + 1}. [${c.category}/${priority}] ${c.text}`);
|
|
50
|
+
if (c.rationale) {
|
|
51
|
+
lines.push(` Rationale: ${c.rationale}`);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
lines.push('');
|
|
55
|
+
lines.push('To register, use mcp__sqlew__constraint with action="add":');
|
|
56
|
+
lines.push('```');
|
|
57
|
+
// Show example for first constraint
|
|
58
|
+
const first = cache.constraints[0];
|
|
59
|
+
lines.push(`mcp__sqlew__constraint action="add" constraint_text="${first.text}" category="${first.category}" priority="${first.priority || 'medium'}"`);
|
|
60
|
+
lines.push('```');
|
|
61
|
+
lines.push('');
|
|
62
|
+
return lines.join('\n');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Process TOML decisions and constraints from plan cache
|
|
66
|
+
*
|
|
67
|
+
* @param projectPath - Project root path
|
|
68
|
+
* @param cache - Plan TOML cache
|
|
69
|
+
* @returns Context message with results
|
|
70
|
+
*/
|
|
71
|
+
function processPlanTomlCache(projectPath, cache) {
|
|
72
|
+
const messages = [];
|
|
73
|
+
// Auto-register decisions (queued for MCP server processing)
|
|
74
|
+
if (!cache.decisions_registered && cache.decisions.length > 0) {
|
|
75
|
+
for (const d of cache.decisions) {
|
|
76
|
+
enqueueDecisionCreate(projectPath, {
|
|
77
|
+
key: d.key,
|
|
78
|
+
value: d.value,
|
|
79
|
+
status: d.status || 'active',
|
|
80
|
+
layer: d.layer || 'cross-cutting',
|
|
81
|
+
tags: d.tags || [],
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
cache.decisions_registered = true;
|
|
85
|
+
messages.push(`✅ Registered ${cache.decisions.length} decision(s) to queue`);
|
|
86
|
+
}
|
|
87
|
+
// Prompt for constraints (user decision required)
|
|
88
|
+
if (!cache.constraints_prompted && cache.constraints.length > 0) {
|
|
89
|
+
messages.push(formatConstraintPrompt(cache));
|
|
90
|
+
cache.constraints_prompted = true;
|
|
91
|
+
}
|
|
92
|
+
// Save updated cache
|
|
93
|
+
if (cache.decisions_registered || cache.constraints_prompted) {
|
|
94
|
+
savePlanTomlCache(projectPath, cache);
|
|
95
|
+
}
|
|
96
|
+
return messages.join('\n');
|
|
97
|
+
}
|
|
98
|
+
// ============================================================================
|
|
27
99
|
// Main Entry Point
|
|
28
100
|
// ============================================================================
|
|
29
101
|
/**
|
|
@@ -85,12 +157,28 @@ export async function checkCompletionCommand() {
|
|
|
85
157
|
layer: 'cross-cutting',
|
|
86
158
|
tags: ['plan', 'implementation', WORKFLOW_TAG_IN_REVIEW, planInfo.plan_id.slice(0, 8)],
|
|
87
159
|
});
|
|
88
|
-
|
|
160
|
+
// Process TOML decisions and constraints (v4.2.0+)
|
|
161
|
+
let tomlContext = '';
|
|
162
|
+
const tomlCache = loadPlanTomlCache(projectPath);
|
|
163
|
+
if (tomlCache && tomlCache.plan_id === planInfo.plan_id) {
|
|
164
|
+
tomlContext = processPlanTomlCache(projectPath, tomlCache);
|
|
165
|
+
}
|
|
166
|
+
const baseMessage = `[sqlew] All tasks completed! Decision updated to status: ${IN_REVIEW_STATUS}`;
|
|
167
|
+
sendContinue(tomlContext ? `${baseMessage}\n${tomlContext}` : baseMessage);
|
|
89
168
|
}
|
|
90
169
|
catch (error) {
|
|
91
170
|
// Log error but continue
|
|
92
171
|
const message = error instanceof Error ? error.message : String(error);
|
|
93
172
|
console.error(`[sqlew check-completion] Error updating decision: ${message}`);
|
|
173
|
+
// Still process TOML even if decision update failed
|
|
174
|
+
const tomlCache = loadPlanTomlCache(projectPath);
|
|
175
|
+
if (tomlCache && tomlCache.plan_id === planInfo.plan_id) {
|
|
176
|
+
const tomlContext = processPlanTomlCache(projectPath, tomlCache);
|
|
177
|
+
if (tomlContext) {
|
|
178
|
+
sendContinue(tomlContext);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
94
182
|
sendContinue();
|
|
95
183
|
}
|
|
96
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-completion.js","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,
|
|
1
|
+
{"version":3,"file":"check-completion.js","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,mDAAmD;AACnD,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEnD,kGAAkG;AAClG,MAAM,gBAAgB,GAAG,QAAiB,CAAC;AAE3C,uCAAuC;AACvC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAEpD,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,KAAoB;IAClD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,EAAE;QACF,qDAAqD;QACrD,EAAE;QACF,SAAS,KAAK,CAAC,WAAW,CAAC,MAAM,0CAA0C;QAC3E,EAAE;KACH,CAAC;IAEF,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAElB,oCAAoC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,wDAAwD,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,QAAQ,eAAe,KAAK,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC;IAExJ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,WAAmB,EAAE,KAAoB;IACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,6DAA6D;IAC7D,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAChC,qBAAqB,CAAC,WAAW,EAAE;gBACjC,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ;gBAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,eAAe;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,SAAS,CAAC,MAAM,uBAAuB,CAAC,CAAC;IAC/E,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7D,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;QAEpC,8BAA8B;QAC9B,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACpC,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,8CAA8C;YAC9C,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,kDAAkD;YAClD,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;YACvD,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,GAAG,oBAAoB,IAAI,QAAQ,EAAE,CAAC;QAE1D,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,WAAW,CAAC;gBAChB,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,iCAAiC,QAAQ,CAAC,SAAS,EAAE;gBAC5D,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACvF,CAAC,CAAC;YAEH,mDAAmD;YACnD,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxD,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,WAAW,GAAG,4DAA4D,gBAAgB,EAAE,CAAC;YACnG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yBAAyB;YACzB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,EAAE,CAAC,CAAC;YAE9E,oDAAoD;YACpD,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxD,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,WAAW,EAAE,CAAC;oBAChB,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;YACH,CAAC;YACD,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iDAAiD;QACjD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;QAC5D,YAAY,EAAE,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/init-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"init-hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/init-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0YH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CzE;AA0CD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAkChE"}
|