@yalehwang/archguard 0.1.7 → 0.1.8
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 +33 -23
- package/dist/cli/analyze/normalize-to-diagrams.d.ts.map +1 -1
- package/dist/cli/analyze/normalize-to-diagrams.js +34 -4
- package/dist/cli/analyze/normalize-to-diagrams.js.map +1 -1
- package/dist/cli/analyze/run-analysis.d.ts.map +1 -1
- package/dist/cli/analyze/run-analysis.js +4 -1
- package/dist/cli/analyze/run-analysis.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +2 -6
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/cli/mcp/analyze-tool.d.ts +1 -5
- package/dist/cli/mcp/analyze-tool.d.ts.map +1 -1
- package/dist/cli/mcp/analyze-tool.js +48 -52
- package/dist/cli/mcp/analyze-tool.js.map +1 -1
- package/dist/cli/mcp/mcp-server.d.ts +4 -4
- package/dist/cli/mcp/mcp-server.d.ts.map +1 -1
- package/dist/cli/mcp/mcp-server.js +108 -57
- package/dist/cli/mcp/mcp-server.js.map +1 -1
- package/dist/cli/processors/arch-json-provider.d.ts.map +1 -1
- package/dist/cli/processors/arch-json-provider.js +8 -2
- package/dist/cli/processors/arch-json-provider.js.map +1 -1
- package/dist/cli/processors/diagram-output-router.d.ts.map +1 -1
- package/dist/cli/processors/diagram-output-router.js +1 -0
- package/dist/cli/processors/diagram-output-router.js.map +1 -1
- package/dist/cli/query/engine-loader.js +2 -2
- package/dist/cli/query/engine-loader.js.map +1 -1
- package/dist/plugins/golang/atlas/index.d.ts.map +1 -1
- package/dist/plugins/golang/atlas/index.js +3 -1
- package/dist/plugins/golang/atlas/index.js.map +1 -1
- package/dist/plugins/golang/atlas/types.d.ts +1 -0
- package/dist/plugins/golang/atlas/types.d.ts.map +1 -1
- package/dist/plugins/golang/index.d.ts.map +1 -1
- package/dist/plugins/golang/index.js +15 -6
- package/dist/plugins/golang/index.js.map +1 -1
- package/dist/plugins/golang/source-scope.d.ts +7 -0
- package/dist/plugins/golang/source-scope.d.ts.map +1 -0
- package/dist/plugins/golang/source-scope.js +83 -0
- package/dist/plugins/golang/source-scope.js.map +1 -0
- package/node_modules/node-addon-api/LICENSE.md +9 -0
- package/node_modules/node-addon-api/README.md +95 -0
- package/node_modules/node-addon-api/common.gypi +21 -0
- package/node_modules/node-addon-api/except.gypi +25 -0
- package/node_modules/node-addon-api/index.js +14 -0
- package/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
- package/node_modules/node-addon-api/napi-inl.h +7033 -0
- package/node_modules/node-addon-api/napi.h +3309 -0
- package/node_modules/node-addon-api/node_addon_api.gyp +42 -0
- package/node_modules/node-addon-api/node_api.gyp +9 -0
- package/node_modules/node-addon-api/noexcept.gypi +26 -0
- package/node_modules/node-addon-api/nothing.c +0 -0
- package/node_modules/node-addon-api/package-support.json +21 -0
- package/node_modules/node-addon-api/package.json +480 -0
- package/node_modules/node-addon-api/tools/README.md +73 -0
- package/node_modules/node-addon-api/tools/check-napi.js +99 -0
- package/node_modules/node-addon-api/tools/clang-format.js +71 -0
- package/node_modules/node-addon-api/tools/conversion.js +301 -0
- package/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/node-gyp-build/package.json +43 -0
- package/node_modules/tree-sitter/LICENSE +21 -0
- package/node_modules/tree-sitter/README.md +128 -0
- package/node_modules/tree-sitter/binding.gyp +80 -0
- package/node_modules/tree-sitter/index.js +916 -0
- package/node_modules/tree-sitter/package.json +76 -0
- package/node_modules/tree-sitter/prebuilds/linux-x64/node.napi.glibc.node +0 -0
- package/node_modules/tree-sitter/src/addon_data.h +47 -0
- package/node_modules/tree-sitter/src/binding.cc +35 -0
- package/node_modules/tree-sitter/src/conversions.cc +140 -0
- package/node_modules/tree-sitter/src/conversions.h +22 -0
- package/node_modules/tree-sitter/src/language.cc +106 -0
- package/node_modules/tree-sitter/src/language.h +17 -0
- package/node_modules/tree-sitter/src/logger.cc +70 -0
- package/node_modules/tree-sitter/src/logger.h +19 -0
- package/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
- package/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
- package/node_modules/tree-sitter/src/node.cc +1088 -0
- package/node_modules/tree-sitter/src/node.h +30 -0
- package/node_modules/tree-sitter/src/parser.cc +306 -0
- package/node_modules/tree-sitter/src/parser.h +35 -0
- package/node_modules/tree-sitter/src/query.cc +397 -0
- package/node_modules/tree-sitter/src/query.h +40 -0
- package/node_modules/tree-sitter/src/tree.cc +316 -0
- package/node_modules/tree-sitter/src/tree.h +45 -0
- package/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
- package/node_modules/tree-sitter/src/tree_cursor.h +52 -0
- package/node_modules/tree-sitter/tree-sitter.d.ts +1042 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1478 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +291 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +523 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +293 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +293 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +483 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +54 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +12 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +875 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2293 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +286 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +239 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4350 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +911 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +133 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1034 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +399 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +170 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +717 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +11 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +75 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +24 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +113 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1314 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1935 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
- package/package.json +8 -2
- package/scripts/postinstall-tree-sitter.mjs +28 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArchGuard
|
|
2
2
|
|
|
3
|
-
ArchGuard analyzes source code to extract architectural insights and generates **Mermaid diagrams** at multiple levels of detail. It supports TypeScript (stable), Go (stable), Java (beta), and Python (beta) through a plugin system,
|
|
3
|
+
ArchGuard analyzes source code to extract architectural insights and generates **Mermaid diagrams** at multiple levels of detail. It supports TypeScript (stable), Go (stable), Java (beta), and Python (beta) through a plugin system, and exposes query and MCP workflows for architecture inspection.
|
|
4
4
|
|
|
5
5
|
## Screenshots
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@ ArchGuard analyzes source code to extract architectural insights and generates *
|
|
|
20
20
|
- **Go Architecture Atlas**: 4-layer visualization — package graph, capability graph, goroutine topology, flow graph
|
|
21
21
|
- **Parallel Processing**: High-performance parsing with configurable concurrency
|
|
22
22
|
- **Smart Caching**: File-based caching with SHA-256 hashing for fast repeated runs
|
|
23
|
-
- **
|
|
23
|
+
- **Query & MCP Workflows**: Persisted architecture data can be inspected via CLI query tools or MCP
|
|
24
24
|
- **Zero External Dependencies**: Local Mermaid rendering using isomorphic-mermaid
|
|
25
25
|
- **Five-Layer Validation**: Automatic syntax, structure, render, quality, and auto-repair validation
|
|
26
26
|
- **Configuration Files**: Project-level config with `archguard.config.json` support
|
|
@@ -165,6 +165,17 @@ archguard query --implementers-of "ILanguagePlugin"
|
|
|
165
165
|
archguard query --list-scopes
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
Typical architecture checking tasks:
|
|
169
|
+
|
|
170
|
+
- Dependency impact: `archguard query --deps-of "DiagramProcessor" --depth 2`
|
|
171
|
+
- Reverse impact: `archguard query --used-by "DiagramProcessor" --depth 2`
|
|
172
|
+
- Extension points: `archguard query --implementers-of "ILanguagePlugin"`
|
|
173
|
+
- Circular dependencies: `archguard query --cycles`
|
|
174
|
+
- Refactoring hotspots: `archguard query --high-coupling`
|
|
175
|
+
- Orphans: `archguard query --orphans`
|
|
176
|
+
|
|
177
|
+
See [Architecture Checking Scenarios](docs/user-guide/architecture-checking-scenarios.md) for task-oriented workflows.
|
|
178
|
+
|
|
168
179
|
### `mcp`
|
|
169
180
|
|
|
170
181
|
Start the ArchGuard MCP server over stdio.
|
|
@@ -377,6 +388,12 @@ archguard analyze -s ./src -c 1 # sequential (debugging)
|
|
|
377
388
|
|
|
378
389
|
## Architecture
|
|
379
390
|
|
|
391
|
+
For current implementation details, see:
|
|
392
|
+
|
|
393
|
+
- [Architecture Checking Scenarios](docs/user-guide/architecture-checking-scenarios.md)
|
|
394
|
+
- [Architecture Overview](docs/dev-guide/architecture.md)
|
|
395
|
+
- [CLI Usage](docs/user-guide/cli-usage.md)
|
|
396
|
+
|
|
380
397
|
### Project Structure
|
|
381
398
|
|
|
382
399
|
```
|
|
@@ -416,27 +433,22 @@ archguard/
|
|
|
416
433
|
### Data Flow
|
|
417
434
|
|
|
418
435
|
```
|
|
419
|
-
|
|
420
|
-
│
|
|
421
|
-
▼ Language Plugin (TypeScript / Go / Java / Python)
|
|
422
|
-
AST / Tree-sitter Parse
|
|
423
|
-
│
|
|
424
|
-
▼ Extractors
|
|
425
|
-
ArchJSON (entities + relations)
|
|
436
|
+
CLI / MCP entrypoint
|
|
426
437
|
│
|
|
427
|
-
|
|
438
|
+
▼ Shared analysis core (`runAnalysis`)
|
|
439
|
+
Config normalization + diagram selection
|
|
428
440
|
│
|
|
429
|
-
▼
|
|
430
|
-
|
|
441
|
+
▼ DiagramProcessor
|
|
442
|
+
ArchJsonProvider + language plugins
|
|
431
443
|
│
|
|
432
|
-
▼
|
|
433
|
-
.mmd syntax
|
|
444
|
+
▼ ArchJSON (entities + relations + optional extensions)
|
|
434
445
|
│
|
|
435
|
-
|
|
436
|
-
|
|
446
|
+
├─► Query artifacts (`.archguard/query/*`)
|
|
447
|
+
├─► Mermaid / JSON outputs (`.archguard/output/*`)
|
|
448
|
+
└─► Go Atlas extension (package / capability / goroutine / flow)
|
|
437
449
|
│
|
|
438
|
-
▼
|
|
439
|
-
|
|
450
|
+
▼ QueryEngine / MCP query tools
|
|
451
|
+
Architecture inspection workflows
|
|
440
452
|
```
|
|
441
453
|
|
|
442
454
|
## Development
|
|
@@ -447,7 +459,6 @@ Valid .mmd
|
|
|
447
459
|
- npm or yarn
|
|
448
460
|
|
|
449
461
|
Optional, for enhanced features:
|
|
450
|
-
- **Claude CLI** — LLM-powered diagram grouping
|
|
451
462
|
- **gopls** — Semantic interface detection for Go projects
|
|
452
463
|
|
|
453
464
|
### Setup
|
|
@@ -507,7 +518,6 @@ node dist/cli/index.js analyze -s ./src/cli -l method -n cli-module
|
|
|
507
518
|
| Go LSP | gopls | latest | Semantic interface detection |
|
|
508
519
|
| Diagram Generation | isomorphic-mermaid | ^0.1.1 | Local Mermaid rendering |
|
|
509
520
|
| Image Processing | sharp | ^0.34.5 | SVG → PNG conversion |
|
|
510
|
-
| LLM Integration | @anthropic-ai/sdk | ^0.20.0 | Optional LLM grouping |
|
|
511
521
|
| Process Management | execa | ^8.0.0 | Subprocess execution |
|
|
512
522
|
| Testing | Vitest | ^1.2.0 | Unit/integration tests |
|
|
513
523
|
| CLI | commander | ^11.1.0 | Command-line interface |
|
|
@@ -521,17 +531,18 @@ See [TROUBLESHOOTING.md](docs/user-guide/troubleshooting.md) for common issues.
|
|
|
521
531
|
|
|
522
532
|
Quick fixes:
|
|
523
533
|
|
|
524
|
-
- **LLM grouping fails** — run with `--no-llm-grouping` to use heuristic mode
|
|
525
534
|
- **Go interface detection low** — install gopls: `go install golang.org/x/tools/gopls@latest`
|
|
526
535
|
- **Slow first run** — normal; subsequent runs use cache (80%+ hit rate)
|
|
527
536
|
- **Render errors** — the five-layer validator auto-repairs most issues; run with `-v` for details
|
|
528
|
-
- **Install fails
|
|
537
|
+
- **Install fails with missing `tree-sitter` binding** — use the packaged release tarball that bundles the required prebuilt `tree-sitter` binary for your platform/runtime; source rebuild fallback is disabled
|
|
529
538
|
|
|
530
539
|
## Documentation
|
|
531
540
|
|
|
532
541
|
- [CLI Usage Guide](docs/user-guide/cli-usage.md)
|
|
542
|
+
- [Architecture Checking Scenarios](docs/user-guide/architecture-checking-scenarios.md)
|
|
533
543
|
- [Configuration Reference](docs/user-guide/configuration.md)
|
|
534
544
|
- [Go Plugin Usage Guide](docs/user-guide/golang-plugin-usage.md)
|
|
545
|
+
- [Architecture Overview](docs/dev-guide/architecture.md)
|
|
535
546
|
- [Plugin Development Guide](docs/dev-guide/plugin-development-guide.md)
|
|
536
547
|
- [Plugin Registry](docs/user-guide/plugin-registry.md)
|
|
537
548
|
- [Troubleshooting](docs/user-guide/troubleshooting.md)
|
|
@@ -557,4 +568,3 @@ Built with:
|
|
|
557
568
|
- [tree-sitter](https://tree-sitter.github.io/) for Go/Java/Python parsing
|
|
558
569
|
- [Mermaid](https://mermaid.js.org/) for diagram syntax
|
|
559
570
|
- [isomorphic-mermaid](https://github.com/brede95/isomorphic-mermaid) for rendering
|
|
560
|
-
- [Claude AI](https://www.anthropic.com/claude) for optional LLM-powered grouping
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-to-diagrams.d.ts","sourceRoot":"","sources":["../../../src/cli/analyze/normalize-to-diagrams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-to-diagrams.d.ts","sourceRoot":"","sources":["../../../src/cli/analyze/normalize-to-diagrams.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKvE,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,EAAE,CAAC,CAoF1B;AASD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAM5F"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
2
3
|
import { detectProjectStructure } from '../utils/project-structure-detector.js';
|
|
3
4
|
import { detectCppProjectStructure } from '../utils/cpp-project-structure-detector.js';
|
|
4
5
|
export async function normalizeToDiagrams(config, cliOptions, rootDir) {
|
|
6
|
+
const resolvedRoot = rootDir ?? process.cwd();
|
|
5
7
|
if (config.diagrams && config.diagrams.length > 0) {
|
|
6
8
|
return filterByLevels(config.diagrams, cliOptions.diagrams);
|
|
7
9
|
}
|
|
8
10
|
if (cliOptions.sources && cliOptions.sources.length > 0) {
|
|
9
11
|
const language = cliOptions.lang ?? (cliOptions.atlas ? 'go' : undefined);
|
|
10
|
-
const atlasEnabled = language === 'go' &&
|
|
12
|
+
const atlasEnabled = language === 'go' && cliOptions.atlas !== false;
|
|
11
13
|
if (atlasEnabled) {
|
|
12
14
|
const diagram = {
|
|
13
15
|
name: 'architecture',
|
|
@@ -28,7 +30,7 @@ export async function normalizeToDiagrams(config, cliOptions, rootDir) {
|
|
|
28
30
|
};
|
|
29
31
|
return [diagram];
|
|
30
32
|
}
|
|
31
|
-
if (language === 'go' && cliOptions.
|
|
33
|
+
if (language === 'go' && cliOptions.atlas === false) {
|
|
32
34
|
const diagram = {
|
|
33
35
|
name: 'architecture',
|
|
34
36
|
sources: cliOptions.sources,
|
|
@@ -49,12 +51,40 @@ export async function normalizeToDiagrams(config, cliOptions, rootDir) {
|
|
|
49
51
|
return filterByLevels(diagrams, cliOptions.diagrams);
|
|
50
52
|
}
|
|
51
53
|
const externalSourceRoot = path.resolve(cliOptions.sources[0]);
|
|
52
|
-
const diagrams = await detectProjectStructure(
|
|
54
|
+
const diagrams = await detectProjectStructure(resolvedRoot, externalSourceRoot);
|
|
53
55
|
return filterByLevels(diagrams, cliOptions.diagrams);
|
|
54
56
|
}
|
|
55
|
-
const
|
|
57
|
+
const inferredLanguage = cliOptions.lang ?? (cliOptions.atlas ? 'go' : await detectRootLanguage(resolvedRoot));
|
|
58
|
+
if (inferredLanguage === 'go') {
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
name: 'architecture',
|
|
62
|
+
sources: ['.'],
|
|
63
|
+
level: 'package',
|
|
64
|
+
format: cliOptions.format,
|
|
65
|
+
exclude: cliOptions.exclude,
|
|
66
|
+
language: 'go',
|
|
67
|
+
languageSpecific: {
|
|
68
|
+
atlas: {
|
|
69
|
+
enabled: cliOptions.atlas !== false,
|
|
70
|
+
functionBodyStrategy: cliOptions.atlasStrategy ?? 'selective',
|
|
71
|
+
excludeTests: !cliOptions.atlasIncludeTests,
|
|
72
|
+
protocols: cliOptions.atlasProtocols?.split(',').map((s) => s.trim()),
|
|
73
|
+
layers: cliOptions.atlasLayers?.split(',').map((s) => s.trim()),
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
const diagrams = await detectProjectStructure(resolvedRoot);
|
|
56
80
|
return filterByLevels(diagrams, cliOptions.diagrams);
|
|
57
81
|
}
|
|
82
|
+
async function detectRootLanguage(rootDir) {
|
|
83
|
+
if (await fs.pathExists(path.join(rootDir, 'go.mod'))) {
|
|
84
|
+
return 'go';
|
|
85
|
+
}
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
58
88
|
export function filterByLevels(diagrams, levels) {
|
|
59
89
|
if (!levels || levels.length === 0) {
|
|
60
90
|
return diagrams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-to-diagrams.js","sourceRoot":"","sources":["../../../src/cli/analyze/normalize-to-diagrams.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAOvF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,UAAsB,EACtB,OAAgB;IAEhB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,cAAc,CAAC,MAAM,CAAC,QAA2B,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,QAAQ,KAAK,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"normalize-to-diagrams.js","sourceRoot":"","sources":["../../../src/cli/analyze/normalize-to-diagrams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-analysis.d.ts","sourceRoot":"","sources":["../../../src/cli/analyze/run-analysis.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"run-analysis.d.ts","sourceRoot":"","sources":["../../../src/cli/analyze/run-analysis.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoGzF"}
|
|
@@ -13,7 +13,10 @@ export async function runAnalysis(options) {
|
|
|
13
13
|
const configOverrides = buildConfigOverrides(cliOptions, workDir, sessionRoot);
|
|
14
14
|
const config = await configLoader.load(configOverrides, cliOptions.config);
|
|
15
15
|
reporter.succeed('Configuration loaded');
|
|
16
|
-
const selectedDiagrams = await normalizeToDiagrams(config, cliOptions, sessionRoot)
|
|
16
|
+
const selectedDiagrams = (await normalizeToDiagrams(config, cliOptions, sessionRoot)).map((diagram) => ({
|
|
17
|
+
...diagram,
|
|
18
|
+
sources: diagram.sources.map((source) => path.resolve(sessionRoot, source)),
|
|
19
|
+
}));
|
|
17
20
|
reporter.info(`Found ${selectedDiagrams.length} diagram(s) to generate`);
|
|
18
21
|
if (selectedDiagrams.length === 0) {
|
|
19
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-analysis.js","sourceRoot":"","sources":["../../../src/cli/analyze/run-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAmBjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC/D,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,oBAAoB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3E,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEzC,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,UAAwB,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"run-analysis.js","sourceRoot":"","sources":["../../../src/cli/analyze/run-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,gBAAgB,IAAI,OAAO,CAc1C"}
|
package/dist/cli/commands/mcp.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { resolveArchDir } from '../query/engine-loader.js';
|
|
3
2
|
export function createMcpCommand() {
|
|
4
3
|
return new Command('mcp')
|
|
5
4
|
.description('Start ArchGuard MCP server (stdio transport)')
|
|
6
|
-
.
|
|
7
|
-
.option('--scope <key>', 'Query scope key')
|
|
8
|
-
.action(async (opts) => {
|
|
5
|
+
.action(async () => {
|
|
9
6
|
try {
|
|
10
|
-
const archDir = resolveArchDir(opts.archDir);
|
|
11
7
|
const { startMcpServer } = await import('../mcp/mcp-server.js');
|
|
12
|
-
await startMcpServer(
|
|
8
|
+
await startMcpServer(process.cwd());
|
|
13
9
|
}
|
|
14
10
|
catch (error) {
|
|
15
11
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YAEH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAChE,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,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,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
export interface AnalyzeToolContext {
|
|
3
|
-
|
|
4
|
-
archDir: string;
|
|
5
|
-
getActiveScope(): string | undefined;
|
|
6
|
-
setActiveScope(scopeKey?: string): void;
|
|
7
|
-
invalidateEngine(): void;
|
|
3
|
+
defaultRoot: string;
|
|
8
4
|
}
|
|
9
5
|
export declare function registerAnalyzeTool(server: McpServer, ctx: AnalyzeToolContext): void;
|
|
10
6
|
//# sourceMappingURL=analyze-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-tool.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/analyze-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-tool.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/analyze-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAkCD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI,CA4CpF"}
|
|
@@ -2,13 +2,17 @@ import path from 'path';
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { runAnalysis } from '../analyze/run-analysis.js';
|
|
4
4
|
import { StderrReporter } from '../progress.js';
|
|
5
|
-
import { hashSources } from '../processors/arch-json-provider.js';
|
|
6
5
|
const supportedAnalyzeLanguages = ['typescript', 'go', 'java', 'python', 'cpp'];
|
|
6
|
+
const analyzeLocks = new Set();
|
|
7
7
|
const analyzeSchema = {
|
|
8
|
+
projectRoot: z
|
|
9
|
+
.string()
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('Root directory of the target project. Defaults to the MCP server startup cwd.'),
|
|
8
12
|
sources: z
|
|
9
13
|
.array(z.string())
|
|
10
14
|
.optional()
|
|
11
|
-
.describe('Source paths relative to the
|
|
15
|
+
.describe('Source paths relative to the target project root. Omit to analyze the project root.'),
|
|
12
16
|
lang: z
|
|
13
17
|
.enum(supportedAnalyzeLanguages)
|
|
14
18
|
.optional()
|
|
@@ -27,74 +31,66 @@ const analyzeSchema = {
|
|
|
27
31
|
.describe('Disable analysis caches for this run.'),
|
|
28
32
|
};
|
|
29
33
|
export function registerAnalyzeTool(server, ctx) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (analyzeInProgress) {
|
|
33
|
-
return textResponse('An analysis is already running in this MCP session.');
|
|
34
|
-
}
|
|
35
|
-
analyzeInProgress = true;
|
|
34
|
+
server.tool('archguard_analyze', 'Analyze project sources with an optional code-language plugin override and refresh query artifacts for the target project.', analyzeSchema, async ({ projectRoot, sources, lang, diagrams, format, noCache }) => {
|
|
35
|
+
const root = resolveRoot(projectRoot, ctx.defaultRoot);
|
|
36
36
|
const startedAt = Date.now();
|
|
37
37
|
try {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const currentScope = ctx.getActiveScope();
|
|
55
|
-
if (!currentScope) {
|
|
56
|
-
ctx.invalidateEngine();
|
|
57
|
-
}
|
|
58
|
-
else if (normalizedSources && normalizedSources.length > 0) {
|
|
59
|
-
const nextScope = hashSources(normalizedSources);
|
|
60
|
-
if (result.persistedScopeKeys.includes(nextScope)) {
|
|
61
|
-
ctx.setActiveScope(nextScope);
|
|
38
|
+
return await withPerProjectLock(root, async () => {
|
|
39
|
+
const normalizedSources = sources?.map((source) => path.resolve(root, source));
|
|
40
|
+
const result = await runAnalysis({
|
|
41
|
+
sessionRoot: root,
|
|
42
|
+
workDir: path.join(root, '.archguard'),
|
|
43
|
+
cliOptions: {
|
|
44
|
+
sources: normalizedSources,
|
|
45
|
+
lang,
|
|
46
|
+
diagrams,
|
|
47
|
+
format,
|
|
48
|
+
cache: noCache ? false : undefined,
|
|
49
|
+
},
|
|
50
|
+
reporter: new StderrReporter(),
|
|
51
|
+
});
|
|
52
|
+
if (result.queryScopesPersisted === 0) {
|
|
53
|
+
return textResponse('Analysis failed: No query scopes were persisted.\nPrevious query state is unchanged.');
|
|
62
54
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
nextScope: ctx.getActiveScope(),
|
|
69
|
-
}));
|
|
55
|
+
return textResponse(formatAnalyzeResponse(result, {
|
|
56
|
+
elapsedMs: Date.now() - startedAt,
|
|
57
|
+
projectRoot: root,
|
|
58
|
+
}));
|
|
59
|
+
});
|
|
70
60
|
}
|
|
71
61
|
catch (error) {
|
|
72
62
|
const message = error instanceof Error ? error.message : String(error);
|
|
73
63
|
return textResponse(`Analysis failed: ${message}\nPrevious query state is unchanged.`);
|
|
74
64
|
}
|
|
75
|
-
finally {
|
|
76
|
-
analyzeInProgress = false;
|
|
77
|
-
}
|
|
78
65
|
});
|
|
79
66
|
}
|
|
80
67
|
function textResponse(text) {
|
|
81
68
|
return { content: [{ type: 'text', text }] };
|
|
82
69
|
}
|
|
70
|
+
function resolveRoot(projectRoot, defaultRoot) {
|
|
71
|
+
if (!projectRoot)
|
|
72
|
+
return defaultRoot;
|
|
73
|
+
return path.isAbsolute(projectRoot) ? projectRoot : path.resolve(defaultRoot, projectRoot);
|
|
74
|
+
}
|
|
75
|
+
async function withPerProjectLock(root, fn) {
|
|
76
|
+
const key = path.resolve(root);
|
|
77
|
+
if (analyzeLocks.has(key)) {
|
|
78
|
+
throw new Error(`An analysis is already running for ${key}. Wait for it to complete or analyze a different project.`);
|
|
79
|
+
}
|
|
80
|
+
analyzeLocks.add(key);
|
|
81
|
+
try {
|
|
82
|
+
return await fn();
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
analyzeLocks.delete(key);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
83
88
|
function formatAnalyzeResponse(result, meta) {
|
|
84
89
|
const lines = [`Analysis completed in ${(meta.elapsedMs / 1000).toFixed(1)}s`, ''];
|
|
85
|
-
lines.push(`
|
|
90
|
+
lines.push(`Project root: ${meta.projectRoot}`);
|
|
86
91
|
lines.push(`Work dir: ${result.config.workDir}`);
|
|
87
92
|
lines.push(`Output: ${result.config.outputDir}`);
|
|
88
93
|
lines.push(`Query: ${result.queryScopesPersisted} scopes written`);
|
|
89
|
-
if (!meta.currentScope) {
|
|
90
|
-
lines.push('Scope: auto-select on next query');
|
|
91
|
-
}
|
|
92
|
-
else if (meta.nextScope && meta.nextScope !== meta.currentScope) {
|
|
93
|
-
lines.push(`Scope: ${meta.currentScope} -> ${meta.nextScope}`);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
lines.push(`Scope: ${meta.currentScope} (unchanged)`);
|
|
97
|
-
}
|
|
98
94
|
if (result.results.length > 0) {
|
|
99
95
|
lines.push('', 'Diagrams:');
|
|
100
96
|
for (const diagram of result.results) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-tool.js","sourceRoot":"","sources":["../../../src/cli/mcp/analyze-tool.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-tool.js","sourceRoot":"","sources":["../../../src/cli/mcp/analyze-tool.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMhD,MAAM,yBAAyB,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AACzF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AAEvC,MAAM,aAAa,GAAG;IACpB,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,qFAAqF,CAAC;IAClG,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,yBAAyB,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CACP,iIAAiI,CAClI;IACH,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC7C,QAAQ,EAAE;SACV,QAAQ,CAAC,0FAA0F,CAAC;IACvG,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,QAAQ,CAAC,qFAAqF,CAAC;IAClG,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,GAAuB;IAC5E,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,4HAA4H,EAC5H,aAAa,EACb,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAClE,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,OAAO,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC/C,MAAM,iBAAiB,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;oBAC/B,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;oBACtC,UAAU,EAAE;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,IAAI;wBACJ,QAAQ;wBACR,MAAM;wBACN,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;qBACnC;oBACD,QAAQ,EAAE,IAAI,cAAc,EAAE;iBAC/B,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,oBAAoB,KAAK,CAAC,EAAE,CAAC;oBACtC,OAAO,YAAY,CACjB,sFAAsF,CACvF,CAAC;gBACJ,CAAC;gBAED,OAAO,YAAY,CACjB,qBAAqB,CAAC,MAAM,EAAE;oBAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACjC,WAAW,EAAE,IAAI;iBAClB,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,YAAY,CAAC,oBAAoB,OAAO,sCAAsC,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,WAA+B,EAAE,WAAmB;IACvE,IAAI,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAI,IAAY,EAAE,EAAoB;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,2DAA2D,CACrG,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA+C,EAC/C,IAAgD;IAEhD,MAAM,KAAK,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,oBAAoB,iBAAiB,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CACR,OAAO,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,cAAc,OAAO,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzK,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0DAA0D,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
|
|
3
|
-
export declare function createMcpServer(
|
|
4
|
-
export declare function startMcpServer(
|
|
5
|
-
export declare function registerTools(server: McpServer,
|
|
2
|
+
export declare function resolveRoot(projectRoot: string | undefined, defaultRoot: string): string;
|
|
3
|
+
export declare function createMcpServer(defaultRoot?: string): McpServer;
|
|
4
|
+
export declare function startMcpServer(defaultRoot?: string): Promise<void>;
|
|
5
|
+
export declare function registerTools(server: McpServer, defaultRoot: string): void;
|
|
6
6
|
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/mcp-server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/mcp-server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBpE,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGxF;AAqBD,wBAAgB,eAAe,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,CAW9E;AASD,wBAAsB,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvF;AA4BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAoJ1E"}
|