@stackguide/mcp-server 3.3.0 → 3.8.1
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/README.md +259 -10
- package/dist/config/persistence.d.ts +16 -0
- package/dist/config/persistence.d.ts.map +1 -1
- package/dist/config/persistence.js +53 -0
- package/dist/config/persistence.js.map +1 -1
- package/dist/handlers/config.d.ts +1 -8
- package/dist/handlers/config.d.ts.map +1 -1
- package/dist/handlers/config.js +7 -1
- package/dist/handlers/config.js.map +1 -1
- package/dist/handlers/context.d.ts +1 -5
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +7 -1
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/cursor.d.ts +1 -7
- package/dist/handlers/cursor.d.ts.map +1 -1
- package/dist/handlers/cursor.js +7 -1
- package/dist/handlers/cursor.js.map +1 -1
- package/dist/handlers/custom-rule.d.ts +1 -11
- package/dist/handlers/custom-rule.d.ts.map +1 -1
- package/dist/handlers/custom-rule.js +7 -1
- package/dist/handlers/custom-rule.js.map +1 -1
- package/dist/handlers/docs.d.ts +1 -8
- package/dist/handlers/docs.d.ts.map +1 -1
- package/dist/handlers/docs.js +7 -1
- package/dist/handlers/docs.js.map +1 -1
- package/dist/handlers/generate.d.ts +1 -13
- package/dist/handlers/generate.d.ts.map +1 -1
- package/dist/handlers/generate.js +6 -3
- package/dist/handlers/generate.js.map +1 -1
- package/dist/handlers/health.d.ts +1 -8
- package/dist/handlers/health.d.ts.map +1 -1
- package/dist/handlers/health.js +11 -3
- package/dist/handlers/health.js.map +1 -1
- package/dist/handlers/help.d.ts +1 -5
- package/dist/handlers/help.d.ts.map +1 -1
- package/dist/handlers/help.js +7 -1
- package/dist/handlers/help.js.map +1 -1
- package/dist/handlers/knowledge.d.ts +1 -8
- package/dist/handlers/knowledge.d.ts.map +1 -1
- package/dist/handlers/knowledge.js +7 -1
- package/dist/handlers/knowledge.js.map +1 -1
- package/dist/handlers/prompts.d.ts +31 -0
- package/dist/handlers/prompts.d.ts.map +1 -0
- package/dist/handlers/prompts.js +225 -0
- package/dist/handlers/prompts.js.map +1 -0
- package/dist/handlers/resources.d.ts +27 -0
- package/dist/handlers/resources.d.ts.map +1 -0
- package/dist/handlers/resources.js +210 -0
- package/dist/handlers/resources.js.map +1 -0
- package/dist/handlers/review.d.ts.map +1 -1
- package/dist/handlers/review.js +18 -1
- package/dist/handlers/review.js.map +1 -1
- package/dist/handlers/rules.d.ts +1 -9
- package/dist/handlers/rules.d.ts.map +1 -1
- package/dist/handlers/rules.js +7 -1
- package/dist/handlers/rules.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -419
- package/dist/index.js.map +1 -1
- package/dist/router/index.d.ts +69 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +151 -0
- package/dist/router/index.js.map +1 -0
- package/dist/services/ast/analyzer.d.ts +55 -0
- package/dist/services/ast/analyzer.d.ts.map +1 -0
- package/dist/services/ast/analyzer.js +268 -0
- package/dist/services/ast/analyzer.js.map +1 -0
- package/dist/services/ast/index.d.ts +10 -0
- package/dist/services/ast/index.d.ts.map +1 -0
- package/dist/services/ast/index.js +12 -0
- package/dist/services/ast/index.js.map +1 -0
- package/dist/services/ast/rules.d.ts +13 -0
- package/dist/services/ast/rules.d.ts.map +1 -0
- package/dist/services/ast/rules.js +358 -0
- package/dist/services/ast/rules.js.map +1 -0
- package/dist/services/ast/treeSitterParser.d.ts +54 -0
- package/dist/services/ast/treeSitterParser.d.ts.map +1 -0
- package/dist/services/ast/treeSitterParser.js +394 -0
- package/dist/services/ast/treeSitterParser.js.map +1 -0
- package/dist/services/ast/types.d.ts +167 -0
- package/dist/services/ast/types.d.ts.map +1 -0
- package/dist/services/ast/types.js +35 -0
- package/dist/services/ast/types.js.map +1 -0
- package/dist/services/codeAnalyzer.d.ts.map +1 -1
- package/dist/services/codeAnalyzer.js +43 -3
- package/dist/services/codeAnalyzer.js.map +1 -1
- package/dist/services/httpClient.d.ts +45 -0
- package/dist/services/httpClient.d.ts.map +1 -0
- package/dist/services/httpClient.js +309 -0
- package/dist/services/httpClient.js.map +1 -0
- package/dist/services/intelligence/projectFs.d.ts +11 -0
- package/dist/services/intelligence/projectFs.d.ts.map +1 -0
- package/dist/services/intelligence/projectFs.js +30 -0
- package/dist/services/intelligence/projectFs.js.map +1 -0
- package/dist/services/projectFs.d.ts +85 -0
- package/dist/services/projectFs.d.ts.map +1 -0
- package/dist/services/projectFs.js +287 -0
- package/dist/services/projectFs.js.map +1 -0
- package/dist/services/rulesEngine.d.ts +255 -0
- package/dist/services/rulesEngine.d.ts.map +1 -0
- package/dist/services/rulesEngine.js +483 -0
- package/dist/services/rulesEngine.js.map +1 -0
- package/dist/services/webDocumentation.d.ts +9 -0
- package/dist/services/webDocumentation.d.ts.map +1 -1
- package/dist/services/webDocumentation.js +144 -1
- package/dist/services/webDocumentation.js.map +1 -1
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/sqlite.d.ts +92 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +471 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/types.d.ts +147 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +13 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +30 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/validation/index.d.ts +8 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +19 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +341 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +244 -0
- package/dist/validation/schemas.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Dynamic context loading for AI coding assistants. Works with **Cursor** and **GitHub Copilot**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://github.com/stackguide/mcp-server)
|
|
6
|
+
[](./tests)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
|
|
9
|
+
## 🚀 Quick Start
|
|
6
10
|
|
|
7
11
|
**Cursor** (`.cursor/mcp.json`):
|
|
8
12
|
```json
|
|
@@ -18,18 +22,19 @@ Dynamic context loading for AI coding assistants. Works with **Cursor** and **Gi
|
|
|
18
22
|
|
|
19
23
|
**VS Code** (`.vscode/mcp.json`): Same config as above.
|
|
20
24
|
|
|
21
|
-
## Usage
|
|
25
|
+
## 💬 Usage
|
|
22
26
|
|
|
23
27
|
Just talk naturally:
|
|
24
28
|
|
|
25
29
|
- *"Set up my project"* → Auto-configures with interactive wizard
|
|
26
|
-
- *"Review my code"* → Analyzes with Quick
|
|
30
|
+
- *"Review my code"* → Analyzes with AST-powered Quick Fixes
|
|
27
31
|
- *"Generate a component"* → Creates boilerplate code
|
|
28
32
|
- *"Check project health"* → Returns health score (A-F)
|
|
29
|
-
- *"Analyze my project"* →
|
|
33
|
+
- *"Analyze my project"* → Auto-configuration intelligence
|
|
30
34
|
- *"Browse React rules"* → Shows community rules
|
|
35
|
+
- *"Configure rules"* → **NEW!** Customize analysis rules
|
|
31
36
|
|
|
32
|
-
## Tools (13 total)
|
|
37
|
+
## 🛠️ Tools (13 total)
|
|
33
38
|
|
|
34
39
|
### Core Tools
|
|
35
40
|
| Tool | Description | Example |
|
|
@@ -108,6 +113,149 @@ Setup now provides tailored recommendations:
|
|
|
108
113
|
}
|
|
109
114
|
```
|
|
110
115
|
|
|
116
|
+
## 🆕 New in v3.7.0: Configurable Rules Engine
|
|
117
|
+
|
|
118
|
+
### Custom Rules CRUD
|
|
119
|
+
Create, update, delete, and manage custom rules with full persistence:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Create custom rule
|
|
123
|
+
rules action:"create" rule:{"id":"MY-001", "name":"Custom Rule", "description":"...", "severity":"warning", "pattern":"console\\.log"}
|
|
124
|
+
|
|
125
|
+
# Update rule
|
|
126
|
+
rules action:"update" ruleId:"MY-001" updates:{"severity":"error"}
|
|
127
|
+
|
|
128
|
+
# Delete rule
|
|
129
|
+
rules action:"delete" ruleId:"MY-001"
|
|
130
|
+
|
|
131
|
+
# List all rules (builtin + custom)
|
|
132
|
+
rules action:"list" category:"security"
|
|
133
|
+
|
|
134
|
+
# Import/Export rules
|
|
135
|
+
rules action:"export" format:"json"
|
|
136
|
+
rules action:"import" rules:[...]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Rule Overrides
|
|
140
|
+
Override builtin rule behavior without modifying them:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Disable a rule
|
|
144
|
+
rules action:"override" ruleId:"TS-SEC001" override:{"enabled":false}
|
|
145
|
+
|
|
146
|
+
# Change severity
|
|
147
|
+
rules action:"override" ruleId:"TS-PERF002" override:{"severity":"error"}
|
|
148
|
+
|
|
149
|
+
# Custom message
|
|
150
|
+
rules action:"override" ruleId:"TS-BP001" override:{"customMessage":"Use arrow functions in this project"}
|
|
151
|
+
|
|
152
|
+
# File-specific overrides
|
|
153
|
+
rules action:"override" ruleId:"TS-SEC002" override:{"filePatterns":["!**/tests/**"]}
|
|
154
|
+
|
|
155
|
+
# Remove override
|
|
156
|
+
rules action:"clearOverride" ruleId:"TS-SEC001"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Rule Settings
|
|
160
|
+
Configure global rule behavior:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Get current settings
|
|
164
|
+
rules action:"settings"
|
|
165
|
+
|
|
166
|
+
# Update settings
|
|
167
|
+
rules action:"updateSettings" settings:{"enableBuiltin":true, "enableCustom":true, "defaultSeverity":"warning"}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 🆕 New in v3.6.0: Input Validation (Zod)
|
|
173
|
+
|
|
174
|
+
All tool inputs are now validated with Zod schemas:
|
|
175
|
+
|
|
176
|
+
- **Type-safe inputs**: All parameters are validated against schemas
|
|
177
|
+
- **Helpful error messages**: Clear validation errors with path information
|
|
178
|
+
- **Path sanitization**: Prevents path traversal attacks
|
|
179
|
+
- **Automatic sanitization**: Sensitive data is masked in logs
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Example validation error
|
|
183
|
+
{
|
|
184
|
+
"success": false,
|
|
185
|
+
"error": "Validation failed",
|
|
186
|
+
"issues": [
|
|
187
|
+
{ "path": ["file"], "message": "Required" },
|
|
188
|
+
{ "path": ["focus"], "message": "Invalid enum value. Expected 'security' | 'performance' | 'best-practices'" }
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 🆕 New in v3.5.0: AST-Powered Analysis (Tree-sitter)
|
|
196
|
+
|
|
197
|
+
### Real Semantic Code Analysis
|
|
198
|
+
Code review now uses tree-sitter for accurate AST-based analysis:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
review file:"src/index.ts" focus:"security"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Supported Languages**: TypeScript, JavaScript, Python, Go, Rust
|
|
205
|
+
|
|
206
|
+
**Analysis Categories**:
|
|
207
|
+
- 🔒 **Security**: eval detection, SQL injection, XSS, hardcoded secrets
|
|
208
|
+
- ⚡ **Performance**: nested loops, inefficient operations
|
|
209
|
+
- ✨ **Best Practices**: any usage, console.log in production, unused vars
|
|
210
|
+
- 🏗️ **Maintainability**: function complexity, file length
|
|
211
|
+
|
|
212
|
+
**Code Metrics**:
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"metrics": {
|
|
216
|
+
"linesOfCode": 150,
|
|
217
|
+
"functions": 12,
|
|
218
|
+
"classes": 3,
|
|
219
|
+
"imports": 8,
|
|
220
|
+
"exports": 5,
|
|
221
|
+
"complexity": 24,
|
|
222
|
+
"maxNesting": 4
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 🆕 New in v3.4.0: Architecture Improvements
|
|
230
|
+
|
|
231
|
+
### SQLite Persistence
|
|
232
|
+
All configuration now persists across sessions:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
config action:"save" name:"my-project"
|
|
236
|
+
config action:"load" name:"my-project"
|
|
237
|
+
config action:"list"
|
|
238
|
+
config action:"delete" name:"my-project"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Real Filesystem Access
|
|
242
|
+
Analyze actual project files:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
analyze action:"full" path:"./src"
|
|
246
|
+
health detailed:true
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### HTTP Client with Caching
|
|
250
|
+
Rate-limited API calls with automatic caching:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
docs action:"fetch" url:"https://react.dev/reference/react"
|
|
254
|
+
cursor action:"browse" query:"nextjs"
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
111
259
|
## New in v3.3.0: Auto-Configuration Intelligence 🧠
|
|
112
260
|
|
|
113
261
|
### Project Intelligence Analysis
|
|
@@ -159,11 +307,11 @@ Setup now includes quick intelligence analysis:
|
|
|
159
307
|
}
|
|
160
308
|
```
|
|
161
309
|
|
|
162
|
-
## Supported Stacks
|
|
310
|
+
## 📋 Supported Stacks
|
|
163
311
|
|
|
164
312
|
`python-django` · `python-fastapi` · `python-flask` · `react-node` · `react-typescript` · `vue-node` · `nextjs` · `express` · `nestjs` · `laravel` · `rails` · `golang` · `rust`
|
|
165
313
|
|
|
166
|
-
## Examples
|
|
314
|
+
## 📖 Examples
|
|
167
315
|
|
|
168
316
|
```bash
|
|
169
317
|
# Auto-setup with wizard
|
|
@@ -172,21 +320,122 @@ setup
|
|
|
172
320
|
# Generate React component
|
|
173
321
|
generate type:"component" name:"Dashboard"
|
|
174
322
|
|
|
175
|
-
# Review with Quick Fixes
|
|
323
|
+
# Review with AST-powered Quick Fixes
|
|
176
324
|
review file:"src/App.tsx" focus:"performance"
|
|
177
325
|
|
|
178
326
|
# Check project health
|
|
179
327
|
health
|
|
180
328
|
|
|
181
|
-
#
|
|
329
|
+
# Analyze project intelligence
|
|
182
330
|
analyze action:"full"
|
|
183
331
|
analyze action:"generate" configType:"prettier"
|
|
184
332
|
|
|
185
333
|
# Browse and import community rules
|
|
186
334
|
cursor action:"popular"
|
|
187
335
|
cursor action:"import" slug:"typescript-best-practices"
|
|
336
|
+
|
|
337
|
+
# Configure rules
|
|
338
|
+
rules action:"list" category:"security"
|
|
339
|
+
rules action:"create" rule:{"id":"MY-001", "name":"No TODO", "pattern":"TODO", "severity":"info"}
|
|
340
|
+
rules action:"override" ruleId:"TS-SEC001" override:{"severity":"error"}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
## 🏗️ Architecture
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
┌─────────────────────────────────────────────────────────┐
|
|
347
|
+
│ MCP Server │
|
|
348
|
+
├─────────────────────────────────────────────────────────┤
|
|
349
|
+
│ Router (handler registration + validation) │
|
|
350
|
+
├─────────────────────────────────────────────────────────┤
|
|
351
|
+
│ Handlers (setup, review, generate, health, etc.) │
|
|
352
|
+
├─────────────────────────────────────────────────────────┤
|
|
353
|
+
│ Services Layer │
|
|
354
|
+
│ ├── AST Analysis (tree-sitter multi-language) │
|
|
355
|
+
│ ├── Rules Engine (builtin + custom + overrides) │
|
|
356
|
+
│ ├── Code Analyzer (semantic analysis) │
|
|
357
|
+
│ ├── Rule Manager (data loading) │
|
|
358
|
+
│ └── Auto Detect (project type detection) │
|
|
359
|
+
├─────────────────────────────────────────────────────────┤
|
|
360
|
+
│ Infrastructure │
|
|
361
|
+
│ ├── Validation (Zod schemas) │
|
|
362
|
+
│ ├── Persistence (SQLite storage) │
|
|
363
|
+
│ ├── ProjectFs (filesystem abstraction) │
|
|
364
|
+
│ └── HttpClient (rate-limited + cached) │
|
|
365
|
+
└─────────────────────────────────────────────────────────┘
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
## 🧪 Testing
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
# Run all tests
|
|
372
|
+
npm test
|
|
373
|
+
|
|
374
|
+
# With coverage
|
|
375
|
+
npm run test:coverage
|
|
376
|
+
|
|
377
|
+
# Watch mode
|
|
378
|
+
npm run test:watch
|
|
188
379
|
```
|
|
189
380
|
|
|
190
|
-
|
|
381
|
+
**Test Statistics**: 659 tests across 35 test files
|
|
382
|
+
|
|
383
|
+
## 📚 API Reference
|
|
384
|
+
|
|
385
|
+
### Tool Parameters
|
|
386
|
+
|
|
387
|
+
#### `setup`
|
|
388
|
+
| Parameter | Type | Description |
|
|
389
|
+
|-----------|------|-------------|
|
|
390
|
+
| `type` | string | Project type (optional, auto-detected) |
|
|
391
|
+
| `path` | string | Project path (default: current dir) |
|
|
392
|
+
|
|
393
|
+
#### `review`
|
|
394
|
+
| Parameter | Type | Description |
|
|
395
|
+
|-----------|------|-------------|
|
|
396
|
+
| `file` | string | **Required**. File path to review |
|
|
397
|
+
| `content` | string | File content (optional, read from file) |
|
|
398
|
+
| `focus` | string | `security` \| `performance` \| `best-practices` |
|
|
399
|
+
| `detailed` | boolean | Include code metrics |
|
|
400
|
+
|
|
401
|
+
#### `generate`
|
|
402
|
+
| Parameter | Type | Description |
|
|
403
|
+
|-----------|------|-------------|
|
|
404
|
+
| `type` | string | **Required**. `component` \| `hook` \| `service` \| `test` \| `api` \| `model` \| `util` |
|
|
405
|
+
| `name` | string | **Required**. Name for generated code |
|
|
406
|
+
| `options` | object | Framework-specific options |
|
|
407
|
+
|
|
408
|
+
#### `rules`
|
|
409
|
+
| Parameter | Type | Description |
|
|
410
|
+
|-----------|------|-------------|
|
|
411
|
+
| `action` | string | **Required**. `list` \| `search` \| `get` \| `create` \| `update` \| `delete` \| `override` \| `clearOverride` \| `settings` \| `import` \| `export` |
|
|
412
|
+
| `ruleId` | string | Rule ID (for get/update/delete/override) |
|
|
413
|
+
| `rule` | object | Rule definition (for create) |
|
|
414
|
+
| `override` | object | Override settings |
|
|
415
|
+
| `category` | string | Filter by category |
|
|
416
|
+
|
|
417
|
+
#### `health`
|
|
418
|
+
| Parameter | Type | Description |
|
|
419
|
+
|-----------|------|-------------|
|
|
420
|
+
| `detailed` | boolean | Include category breakdown |
|
|
421
|
+
| `path` | string | Project path |
|
|
422
|
+
|
|
423
|
+
#### `analyze`
|
|
424
|
+
| Parameter | Type | Description |
|
|
425
|
+
|-----------|------|-------------|
|
|
426
|
+
| `action` | string | **Required**. `full` \| `structure` \| `config` \| `dependencies` \| `generate` \| `apply` |
|
|
427
|
+
| `path` | string | Project path |
|
|
428
|
+
| `configType` | string | For generate: `eslint` \| `prettier` \| `tsconfig` |
|
|
429
|
+
|
|
430
|
+
## 🤝 Contributing
|
|
431
|
+
|
|
432
|
+
1. Fork the repository
|
|
433
|
+
2. Create your feature branch (`git checkout -b feature/amazing`)
|
|
434
|
+
3. Run tests (`npm test`)
|
|
435
|
+
4. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
436
|
+
5. Push to the branch (`git push origin feature/amazing`)
|
|
437
|
+
6. Open a Pull Request
|
|
438
|
+
|
|
439
|
+
## 📄 License
|
|
191
440
|
|
|
192
441
|
MIT
|
|
@@ -12,4 +12,20 @@ export declare function updateSelectedKnowledge(configId: string, knowledgeIds:
|
|
|
12
12
|
export declare function exportConfiguration(id: string): string | null;
|
|
13
13
|
export declare function importConfiguration(jsonString: string): UserConfiguration | null;
|
|
14
14
|
export declare function getConfigPath(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Get a value from generic storage
|
|
17
|
+
*/
|
|
18
|
+
export declare function getStorageValue<T>(key: string): T | null;
|
|
19
|
+
/**
|
|
20
|
+
* Set a value in generic storage
|
|
21
|
+
*/
|
|
22
|
+
export declare function setStorageValue<T>(key: string, value: T): void;
|
|
23
|
+
/**
|
|
24
|
+
* Delete a value from generic storage
|
|
25
|
+
*/
|
|
26
|
+
export declare function deleteStorageValue(key: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Check if a key exists in storage
|
|
29
|
+
*/
|
|
30
|
+
export declare function hasStorageValue(key: string): boolean;
|
|
15
31
|
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAgDlE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,aAAa,GAAE,MAAM,EAAO,EAC5B,iBAAiB,GAAE,MAAM,EAAO,GAC/B,iBAAiB,CAmBnB;AAGD,wBAAgB,oBAAoB,IAAI,iBAAiB,EAAE,CAG1D;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGzE;AAGD,wBAAgB,sBAAsB,IAAI,iBAAiB,GAAG,IAAI,CAIjE;AAGD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAW3E;AAGD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC5D,iBAAiB,GAAG,IAAI,CAc1B;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAcvD;AAGD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAgBnF;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAGhF;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzF;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBhF;AAQD,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAgDlE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,aAAa,GAAE,MAAM,EAAO,EAC5B,iBAAiB,GAAE,MAAM,EAAO,GAC/B,iBAAiB,CAmBnB;AAGD,wBAAgB,oBAAoB,IAAI,iBAAiB,EAAE,CAG1D;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGzE;AAGD,wBAAgB,sBAAsB,IAAI,iBAAiB,GAAG,IAAI,CAIjE;AAGD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAW3E;AAGD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC5D,iBAAiB,GAAG,IAAI,CAc1B;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAcvD;AAGD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAgBnF;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAGhF;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzF;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBhF;AAQD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAgCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAGxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAI9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGpD"}
|
|
@@ -168,4 +168,57 @@ function generateId() {
|
|
|
168
168
|
export function getConfigPath() {
|
|
169
169
|
return CONFIG_DIR;
|
|
170
170
|
}
|
|
171
|
+
// ============================================================================
|
|
172
|
+
// Generic Storage Functions
|
|
173
|
+
// ============================================================================
|
|
174
|
+
const GENERIC_STORAGE_FILE = join(CONFIG_DIR, 'storage.json');
|
|
175
|
+
function getGenericStorage() {
|
|
176
|
+
ensureConfigDir();
|
|
177
|
+
if (!existsSync(GENERIC_STORAGE_FILE)) {
|
|
178
|
+
return {};
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const data = readFileSync(GENERIC_STORAGE_FILE, 'utf-8');
|
|
182
|
+
return JSON.parse(data);
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return {};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function saveGenericStorage(storage) {
|
|
189
|
+
ensureConfigDir();
|
|
190
|
+
writeFileSync(GENERIC_STORAGE_FILE, JSON.stringify(storage, null, 2));
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get a value from generic storage
|
|
194
|
+
*/
|
|
195
|
+
export function getStorageValue(key) {
|
|
196
|
+
const storage = getGenericStorage();
|
|
197
|
+
return storage[key] ?? null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Set a value in generic storage
|
|
201
|
+
*/
|
|
202
|
+
export function setStorageValue(key, value) {
|
|
203
|
+
const storage = getGenericStorage();
|
|
204
|
+
storage[key] = value;
|
|
205
|
+
saveGenericStorage(storage);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Delete a value from generic storage
|
|
209
|
+
*/
|
|
210
|
+
export function deleteStorageValue(key) {
|
|
211
|
+
const storage = getGenericStorage();
|
|
212
|
+
const exists = key in storage;
|
|
213
|
+
delete storage[key];
|
|
214
|
+
saveGenericStorage(storage);
|
|
215
|
+
return exists;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if a key exists in storage
|
|
219
|
+
*/
|
|
220
|
+
export function hasStorageValue(key) {
|
|
221
|
+
const storage = getGenericStorage();
|
|
222
|
+
return key in storage;
|
|
223
|
+
}
|
|
171
224
|
//# sourceMappingURL=persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,5 @@
|
|
|
2
2
|
* Config handler - save, load, and manage configurations
|
|
3
3
|
*/
|
|
4
4
|
import { ServerState, ToolResponse } from './types.js';
|
|
5
|
-
|
|
6
|
-
action?: 'save' | 'load' | 'list' | 'delete' | 'export' | 'import';
|
|
7
|
-
name?: string;
|
|
8
|
-
id?: string;
|
|
9
|
-
json?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare function handleConfig(args: ConfigArgs, state: ServerState): Promise<ToolResponse>;
|
|
12
|
-
export {};
|
|
5
|
+
export declare function handleConfig(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
13
6
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/handlers/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/handlers/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;AAInF,wBAAsB,YAAY,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAgGvB"}
|
package/dist/handlers/config.js
CHANGED
|
@@ -6,8 +6,14 @@ import * as rulesProvider from '../resources/rulesProvider.js';
|
|
|
6
6
|
import * as knowledgeProvider from '../resources/knowledgeProvider.js';
|
|
7
7
|
import { jsonResponse, textResponse } from './types.js';
|
|
8
8
|
import { logger } from '../utils/logger.js';
|
|
9
|
+
import { ConfigInputSchema, validate } from '../validation/schemas.js';
|
|
9
10
|
export async function handleConfig(args, state) {
|
|
10
|
-
|
|
11
|
+
// Validate input
|
|
12
|
+
const validation = validate(ConfigInputSchema, args || {});
|
|
13
|
+
if (!validation.success) {
|
|
14
|
+
return textResponse(`Validation error: ${validation.error}`);
|
|
15
|
+
}
|
|
16
|
+
const { action = 'list', name, id, json } = validation.data;
|
|
11
17
|
logger.debug('Config action', { action, name, id });
|
|
12
18
|
switch (action) {
|
|
13
19
|
case 'save': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/handlers/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,iBAAiB,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAA6B,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/handlers/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,5 @@
|
|
|
2
2
|
* Context handler - shows current configuration and loaded rules/knowledge
|
|
3
3
|
*/
|
|
4
4
|
import { ServerState, ToolResponse } from './types.js';
|
|
5
|
-
|
|
6
|
-
full?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare function handleContext(args: ContextArgs, state: ServerState): Promise<ToolResponse>;
|
|
9
|
-
export {};
|
|
5
|
+
export declare function handleContext(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
10
6
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;AAInF,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CA6CvB"}
|
package/dist/handlers/context.js
CHANGED
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
import { SUPPORTED_PROJECTS } from '../config/types.js';
|
|
5
5
|
import { jsonResponse, textResponse } from './types.js';
|
|
6
6
|
import { logger } from '../utils/logger.js';
|
|
7
|
+
import { ContextInputSchema, validate } from '../validation/schemas.js';
|
|
7
8
|
export async function handleContext(args, state) {
|
|
8
|
-
|
|
9
|
+
// Validate input
|
|
10
|
+
const validation = validate(ContextInputSchema, args || {});
|
|
11
|
+
if (!validation.success) {
|
|
12
|
+
return textResponse(`Validation error: ${validation.error}`);
|
|
13
|
+
}
|
|
14
|
+
const { full = false } = validation.data;
|
|
9
15
|
logger.debug('Context requested', { full });
|
|
10
16
|
if (!state.activeProjectType) {
|
|
11
17
|
return jsonResponse({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAA6B,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAA6B,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAa,EACb,KAAkB;IAElB,iBAAiB;IACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,qBAAqB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAEzC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC;YAClB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,6CAA6C;SACpD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE5D,IAAI,IAAI,EAAE,CAAC;QACT,sBAAsB;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACtC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACtC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,OAAO,YAAY,CACjB,KAAK,OAAO,CAAC,IAAI,yBAAyB,YAAY,qBAAqB,gBAAgB,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC,iBAAiB;QACpC,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrF,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7F,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;QACpC,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM;KAC7C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -2,11 +2,5 @@
|
|
|
2
2
|
* Cursor Directory handler - browse and import community rules
|
|
3
3
|
*/
|
|
4
4
|
import { ServerState, ToolResponse } from './types.js';
|
|
5
|
-
|
|
6
|
-
action?: 'browse' | 'search' | 'popular' | 'import' | 'categories';
|
|
7
|
-
query?: string;
|
|
8
|
-
slug?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function handleCursor(args: CursorArgs, state: ServerState): Promise<ToolResponse>;
|
|
11
|
-
export {};
|
|
5
|
+
export declare function handleCursor(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
12
6
|
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/handlers/cursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/handlers/cursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;AAInF,wBAAsB,YAAY,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAoEvB"}
|
package/dist/handlers/cursor.js
CHANGED
|
@@ -5,8 +5,14 @@ import * as cursorDirectory from '../services/cursorDirectory.js';
|
|
|
5
5
|
import * as ruleManager from '../services/ruleManager.js';
|
|
6
6
|
import { jsonResponse, textResponse } from './types.js';
|
|
7
7
|
import { logger } from '../utils/logger.js';
|
|
8
|
+
import { CursorInputSchema, validate } from '../validation/schemas.js';
|
|
8
9
|
export async function handleCursor(args, state) {
|
|
9
|
-
|
|
10
|
+
// Validate input
|
|
11
|
+
const validation = validate(CursorInputSchema, args || {});
|
|
12
|
+
if (!validation.success) {
|
|
13
|
+
return textResponse(`Validation error: ${validation.error}`);
|
|
14
|
+
}
|
|
15
|
+
const { action = 'categories', query, slug } = validation.data;
|
|
10
16
|
logger.debug('Cursor action', { action, query, slug });
|
|
11
17
|
switch (action) {
|
|
12
18
|
case 'categories': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/handlers/cursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAA6B,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/handlers/cursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAA6B,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAa,EACb,KAAkB;IAElB,iBAAiB;IACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,qBAAqB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAE/D,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,UAAU,GAAG,eAAe,CAAC,4BAA4B,EAAE,CAAC;YAClE,OAAO,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,8BAA8B,EAAE,CAAC;YACvE,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,YAAY,CAAC,kCAAkC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;YAC/E,OAAO,YAAY,CAAC;gBAClB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACzE,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,YAAY,CAAC,sBAAsB,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,EAAE,GAAG,KAAK,CAAC,iBAAiB,IAAI,kBAAkB,CAAC;YACzD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,YAAY,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,SAAS,GAAG,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAEjH,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAElF,OAAO,YAAY,CAAC;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,EAAE,EAAE,QAAQ,CAAC,EAAE;aAChB,CAAC,CAAC;QACL,CAAC;QAED;YACE,OAAO,YAAY,CAAC,sDAAsD,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Custom Rule handler - create, update, delete custom rules
|
|
3
3
|
*/
|
|
4
|
-
import { RuleCategory } from '../config/types.js';
|
|
5
4
|
import { ServerState, ToolResponse } from './types.js';
|
|
6
|
-
|
|
7
|
-
action?: 'create' | 'update' | 'delete' | 'list' | 'export' | 'import';
|
|
8
|
-
name?: string;
|
|
9
|
-
content?: string;
|
|
10
|
-
category?: RuleCategory;
|
|
11
|
-
id?: string;
|
|
12
|
-
json?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function handleCustomRule(args: CustomRuleArgs, state: ServerState): Promise<ToolResponse>;
|
|
15
|
-
export {};
|
|
5
|
+
export declare function handleCustomRule(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
16
6
|
//# sourceMappingURL=custom-rule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-rule.d.ts","sourceRoot":"","sources":["../../src/handlers/custom-rule.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"custom-rule.d.ts","sourceRoot":"","sources":["../../src/handlers/custom-rule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;AAInF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAkFvB"}
|
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
import * as ruleManager from '../services/ruleManager.js';
|
|
5
5
|
import { jsonResponse, textResponse } from './types.js';
|
|
6
6
|
import { logger } from '../utils/logger.js';
|
|
7
|
+
import { CustomRuleInputSchema, validate } from '../validation/schemas.js';
|
|
7
8
|
export async function handleCustomRule(args, state) {
|
|
8
|
-
|
|
9
|
+
// Validate input
|
|
10
|
+
const validation = validate(CustomRuleInputSchema, args || {});
|
|
11
|
+
if (!validation.success) {
|
|
12
|
+
return textResponse(`Validation error: ${validation.error}`);
|
|
13
|
+
}
|
|
14
|
+
const { action = 'list', name, content, category, id, json } = validation.data;
|
|
9
15
|
const pt = state.activeProjectType || 'react-typescript';
|
|
10
16
|
logger.debug('Custom rule action', { action, name, id });
|
|
11
17
|
switch (action) {
|