@yalehwang/archguard 0.1.7 → 0.1.9

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.
Files changed (166) hide show
  1. package/README.md +33 -23
  2. package/dist/cli/analyze/normalize-to-diagrams.d.ts.map +1 -1
  3. package/dist/cli/analyze/normalize-to-diagrams.js +61 -4
  4. package/dist/cli/analyze/normalize-to-diagrams.js.map +1 -1
  5. package/dist/cli/analyze/run-analysis.d.ts.map +1 -1
  6. package/dist/cli/analyze/run-analysis.js +12 -4
  7. package/dist/cli/analyze/run-analysis.js.map +1 -1
  8. package/dist/cli/commands/mcp.d.ts.map +1 -1
  9. package/dist/cli/commands/mcp.js +2 -6
  10. package/dist/cli/commands/mcp.js.map +1 -1
  11. package/dist/cli/index.js +0 -0
  12. package/dist/cli/mcp/analyze-tool.d.ts +1 -5
  13. package/dist/cli/mcp/analyze-tool.d.ts.map +1 -1
  14. package/dist/cli/mcp/analyze-tool.js +48 -52
  15. package/dist/cli/mcp/analyze-tool.js.map +1 -1
  16. package/dist/cli/mcp/mcp-server.d.ts +4 -4
  17. package/dist/cli/mcp/mcp-server.d.ts.map +1 -1
  18. package/dist/cli/mcp/mcp-server.js +108 -57
  19. package/dist/cli/mcp/mcp-server.js.map +1 -1
  20. package/dist/cli/processors/arch-json-provider.d.ts +4 -1
  21. package/dist/cli/processors/arch-json-provider.d.ts.map +1 -1
  22. package/dist/cli/processors/arch-json-provider.js +87 -23
  23. package/dist/cli/processors/arch-json-provider.js.map +1 -1
  24. package/dist/cli/processors/diagram-output-router.d.ts.map +1 -1
  25. package/dist/cli/processors/diagram-output-router.js +1 -0
  26. package/dist/cli/processors/diagram-output-router.js.map +1 -1
  27. package/dist/cli/processors/diagram-processor.d.ts.map +1 -1
  28. package/dist/cli/processors/diagram-processor.js +10 -5
  29. package/dist/cli/processors/diagram-processor.js.map +1 -1
  30. package/dist/cli/query/engine-loader.js +2 -2
  31. package/dist/cli/query/engine-loader.js.map +1 -1
  32. package/dist/cli/query/query-artifacts.d.ts +5 -1
  33. package/dist/cli/query/query-artifacts.d.ts.map +1 -1
  34. package/dist/cli/query/query-artifacts.js +22 -3
  35. package/dist/cli/query/query-artifacts.js.map +1 -1
  36. package/dist/cli/query/query-manifest.d.ts +2 -0
  37. package/dist/cli/query/query-manifest.d.ts.map +1 -1
  38. package/dist/cli/utils/default-scope-planner.d.ts +22 -0
  39. package/dist/cli/utils/default-scope-planner.d.ts.map +1 -0
  40. package/dist/cli/utils/default-scope-planner.js +84 -0
  41. package/dist/cli/utils/default-scope-planner.js.map +1 -0
  42. package/dist/cli/utils/project-language-detector.d.ts +10 -0
  43. package/dist/cli/utils/project-language-detector.d.ts.map +1 -0
  44. package/dist/cli/utils/project-language-detector.js +179 -0
  45. package/dist/cli/utils/project-language-detector.js.map +1 -0
  46. package/dist/mermaid/render-worker-pool.d.ts.map +1 -1
  47. package/dist/mermaid/render-worker-pool.js +7 -1
  48. package/dist/mermaid/render-worker-pool.js.map +1 -1
  49. package/dist/plugins/golang/atlas/index.d.ts.map +1 -1
  50. package/dist/plugins/golang/atlas/index.js +3 -1
  51. package/dist/plugins/golang/atlas/index.js.map +1 -1
  52. package/dist/plugins/golang/atlas/types.d.ts +1 -0
  53. package/dist/plugins/golang/atlas/types.d.ts.map +1 -1
  54. package/dist/plugins/golang/index.d.ts.map +1 -1
  55. package/dist/plugins/golang/index.js +15 -6
  56. package/dist/plugins/golang/index.js.map +1 -1
  57. package/dist/plugins/golang/source-scope.d.ts +7 -0
  58. package/dist/plugins/golang/source-scope.d.ts.map +1 -0
  59. package/dist/plugins/golang/source-scope.js +83 -0
  60. package/dist/plugins/golang/source-scope.js.map +1 -0
  61. package/dist/types/config.d.ts +1 -0
  62. package/dist/types/config.d.ts.map +1 -1
  63. package/node_modules/node-addon-api/LICENSE.md +9 -0
  64. package/node_modules/node-addon-api/README.md +95 -0
  65. package/node_modules/node-addon-api/common.gypi +21 -0
  66. package/node_modules/node-addon-api/except.gypi +25 -0
  67. package/node_modules/node-addon-api/index.js +14 -0
  68. package/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
  69. package/node_modules/node-addon-api/napi-inl.h +7033 -0
  70. package/node_modules/node-addon-api/napi.h +3309 -0
  71. package/node_modules/node-addon-api/node_addon_api.gyp +42 -0
  72. package/node_modules/node-addon-api/node_api.gyp +9 -0
  73. package/node_modules/node-addon-api/noexcept.gypi +26 -0
  74. package/node_modules/node-addon-api/nothing.c +0 -0
  75. package/node_modules/node-addon-api/package-support.json +21 -0
  76. package/node_modules/node-addon-api/package.json +480 -0
  77. package/node_modules/node-addon-api/tools/README.md +73 -0
  78. package/node_modules/node-addon-api/tools/check-napi.js +99 -0
  79. package/node_modules/node-addon-api/tools/clang-format.js +71 -0
  80. package/node_modules/node-addon-api/tools/conversion.js +301 -0
  81. package/node_modules/node-gyp-build/LICENSE +21 -0
  82. package/node_modules/node-gyp-build/README.md +58 -0
  83. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  84. package/node_modules/node-gyp-build/bin.js +84 -0
  85. package/node_modules/node-gyp-build/build-test.js +19 -0
  86. package/node_modules/node-gyp-build/index.js +6 -0
  87. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  88. package/node_modules/node-gyp-build/optional.js +7 -0
  89. package/node_modules/node-gyp-build/package.json +43 -0
  90. package/node_modules/tree-sitter/LICENSE +21 -0
  91. package/node_modules/tree-sitter/README.md +128 -0
  92. package/node_modules/tree-sitter/binding.gyp +80 -0
  93. package/node_modules/tree-sitter/index.js +916 -0
  94. package/node_modules/tree-sitter/package.json +76 -0
  95. package/node_modules/tree-sitter/prebuilds/linux-x64/node.napi.glibc.node +0 -0
  96. package/node_modules/tree-sitter/src/addon_data.h +47 -0
  97. package/node_modules/tree-sitter/src/binding.cc +35 -0
  98. package/node_modules/tree-sitter/src/conversions.cc +140 -0
  99. package/node_modules/tree-sitter/src/conversions.h +22 -0
  100. package/node_modules/tree-sitter/src/language.cc +106 -0
  101. package/node_modules/tree-sitter/src/language.h +17 -0
  102. package/node_modules/tree-sitter/src/logger.cc +70 -0
  103. package/node_modules/tree-sitter/src/logger.h +19 -0
  104. package/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
  105. package/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
  106. package/node_modules/tree-sitter/src/node.cc +1088 -0
  107. package/node_modules/tree-sitter/src/node.h +30 -0
  108. package/node_modules/tree-sitter/src/parser.cc +306 -0
  109. package/node_modules/tree-sitter/src/parser.h +35 -0
  110. package/node_modules/tree-sitter/src/query.cc +397 -0
  111. package/node_modules/tree-sitter/src/query.h +40 -0
  112. package/node_modules/tree-sitter/src/tree.cc +316 -0
  113. package/node_modules/tree-sitter/src/tree.h +45 -0
  114. package/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
  115. package/node_modules/tree-sitter/src/tree_cursor.h +52 -0
  116. package/node_modules/tree-sitter/tree-sitter.d.ts +1042 -0
  117. package/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1478 -0
  118. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
  119. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
  120. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +291 -0
  121. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
  122. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
  123. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
  124. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +523 -0
  125. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
  126. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
  127. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +293 -0
  128. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +293 -0
  129. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
  130. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +483 -0
  131. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +54 -0
  132. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +12 -0
  133. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +875 -0
  134. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2293 -0
  135. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +286 -0
  136. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +48 -0
  137. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +239 -0
  138. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4350 -0
  139. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
  140. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
  141. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +911 -0
  142. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +133 -0
  143. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1034 -0
  144. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +399 -0
  145. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +170 -0
  146. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
  147. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +717 -0
  148. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
  149. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +11 -0
  150. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
  151. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
  152. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
  153. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
  154. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
  155. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
  156. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
  157. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
  158. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
  159. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +75 -0
  160. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +24 -0
  161. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +113 -0
  162. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1314 -0
  163. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1935 -0
  164. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
  165. package/package.json +8 -2
  166. 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, with optional LLM-powered grouping for better diagram organization.
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
- - **AI-Powered Grouping**: Optional LLM-powered intelligent grouping via Claude API
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
- Source Files
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
- ├─► (Go) Atlas Builders → 4-layer extension
438
+ Shared analysis core (`runAnalysis`)
439
+ Config normalization + diagram selection
428
440
 
429
- LLM Grouper (optional, Claude API)
430
- Grouped ArchJSON
441
+ DiagramProcessor
442
+ ArchJsonProvider + language plugins
431
443
 
432
- Mermaid Generator
433
- .mmd syntax
444
+ ArchJSON (entities + relations + optional extensions)
434
445
 
435
- Five-Layer Validator + Auto-repair
436
- Valid .mmd
446
+ ├─► Query artifacts (`.archguard/query/*`)
447
+ ├─► Mermaid / JSON outputs (`.archguard/output/*`)
448
+ └─► Go Atlas extension (package / capability / goroutine / flow)
437
449
 
438
- isomorphic-mermaid + sharp
439
- .svg + .png
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 on macOS arm64 + Node.js 25** — `tree-sitter` native addon compilation requires C++20; use `npm install -g @yalehwang/archguard --ignore-scripts` to skip native build (JS functionality unaffected), or use Node.js 22 LTS
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":"AAGA,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,CA2D1B;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAM5F"}
1
+ {"version":3,"file":"normalize-to-diagrams.d.ts","sourceRoot":"","sources":["../../../src/cli/analyze/normalize-to-diagrams.ts"],"names":[],"mappings":"AAQA,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,CAqI1B;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAM5F"}
@@ -1,13 +1,16 @@
1
1
  import path from 'path';
2
2
  import { detectProjectStructure } from '../utils/project-structure-detector.js';
3
3
  import { detectCppProjectStructure } from '../utils/cpp-project-structure-detector.js';
4
+ import { createProjectRootLanguageDiagrams, planDefaultDiagrams, } from '../utils/default-scope-planner.js';
5
+ import { detectProjectLanguages } from '../utils/project-language-detector.js';
4
6
  export async function normalizeToDiagrams(config, cliOptions, rootDir) {
7
+ const resolvedRoot = rootDir ?? process.cwd();
5
8
  if (config.diagrams && config.diagrams.length > 0) {
6
9
  return filterByLevels(config.diagrams, cliOptions.diagrams);
7
10
  }
8
11
  if (cliOptions.sources && cliOptions.sources.length > 0) {
9
12
  const language = cliOptions.lang ?? (cliOptions.atlas ? 'go' : undefined);
10
- const atlasEnabled = language === 'go' && !cliOptions.noAtlas;
13
+ const atlasEnabled = language === 'go' && cliOptions.atlas !== false;
11
14
  if (atlasEnabled) {
12
15
  const diagram = {
13
16
  name: 'architecture',
@@ -28,7 +31,7 @@ export async function normalizeToDiagrams(config, cliOptions, rootDir) {
28
31
  };
29
32
  return [diagram];
30
33
  }
31
- if (language === 'go' && cliOptions.noAtlas) {
34
+ if (language === 'go' && cliOptions.atlas === false) {
32
35
  const diagram = {
33
36
  name: 'architecture',
34
37
  sources: cliOptions.sources,
@@ -48,11 +51,65 @@ export async function normalizeToDiagrams(config, cliOptions, rootDir) {
48
51
  });
49
52
  return filterByLevels(diagrams, cliOptions.diagrams);
50
53
  }
54
+ if (language === 'python' || language === 'java' || language === 'typescript') {
55
+ const sourcePath = path.resolve(cliOptions.sources[0]);
56
+ return filterByLevels(createProjectRootLanguageDiagrams(resolvedRoot, language, {
57
+ label: path.basename(sourcePath),
58
+ source: cliOptions.sources[0],
59
+ format: cliOptions.format,
60
+ exclude: cliOptions.exclude,
61
+ }), cliOptions.diagrams);
62
+ }
51
63
  const externalSourceRoot = path.resolve(cliOptions.sources[0]);
52
- const diagrams = await detectProjectStructure(rootDir ?? process.cwd(), externalSourceRoot);
64
+ const diagrams = await detectProjectStructure(resolvedRoot, externalSourceRoot);
53
65
  return filterByLevels(diagrams, cliOptions.diagrams);
54
66
  }
55
- const diagrams = await detectProjectStructure(rootDir ?? process.cwd());
67
+ if (cliOptions.lang === 'go' || (cliOptions.lang === undefined && cliOptions.atlas)) {
68
+ return [
69
+ {
70
+ name: 'architecture',
71
+ sources: ['.'],
72
+ level: 'package',
73
+ format: cliOptions.format,
74
+ exclude: cliOptions.exclude,
75
+ language: 'go',
76
+ languageSpecific: {
77
+ atlas: {
78
+ enabled: cliOptions.atlas !== false,
79
+ functionBodyStrategy: cliOptions.atlasStrategy ?? 'selective',
80
+ excludeTests: !cliOptions.atlasIncludeTests,
81
+ protocols: cliOptions.atlasProtocols?.split(',').map((s) => s.trim()),
82
+ layers: cliOptions.atlasLayers?.split(',').map((s) => s.trim()),
83
+ },
84
+ },
85
+ },
86
+ ];
87
+ }
88
+ if (cliOptions.lang === 'cpp') {
89
+ return filterByLevels(createProjectRootLanguageDiagrams(resolvedRoot, 'cpp', {
90
+ format: cliOptions.format,
91
+ exclude: cliOptions.exclude,
92
+ }), cliOptions.diagrams);
93
+ }
94
+ if (cliOptions.lang === 'python' ||
95
+ cliOptions.lang === 'java' ||
96
+ cliOptions.lang === 'typescript') {
97
+ return filterByLevels(createProjectRootLanguageDiagrams(resolvedRoot, cliOptions.lang, {
98
+ format: cliOptions.format,
99
+ exclude: cliOptions.exclude,
100
+ }), cliOptions.diagrams);
101
+ }
102
+ const candidates = await detectProjectLanguages(resolvedRoot);
103
+ if (candidates.length === 1 &&
104
+ candidates[0].language === 'typescript' &&
105
+ candidates[0].score === 0) {
106
+ const fallbackDiagrams = await detectProjectStructure(resolvedRoot);
107
+ return filterByLevels(fallbackDiagrams, cliOptions.diagrams);
108
+ }
109
+ const diagrams = await planDefaultDiagrams(resolvedRoot, {
110
+ format: cliOptions.format,
111
+ exclude: cliOptions.exclude,
112
+ });
56
113
  return filterByLevels(diagrams, cliOptions.diagrams);
57
114
  }
58
115
  export function filterByLevels(diagrams, levels) {
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-to-diagrams.js","sourceRoot":"","sources":["../../../src/cli/analyze/normalize-to-diagrams.ts"],"names":[],"mappings":"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"}
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,CA+FzF"}
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,CAuGzF"}
@@ -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 {
@@ -60,10 +63,13 @@ export async function runAnalysis(options) {
60
63
  const queryScopes = processor.getQuerySourceGroups();
61
64
  if (queryScopes.length > 0) {
62
65
  try {
63
- const entries = await persistQueryScopes(config.workDir || workDir, queryScopes);
66
+ const preferredGlobalScopeKey = queryScopes.find((scope) => scope.role === 'primary')?.key;
67
+ const entries = await persistQueryScopes(config.workDir || workDir, queryScopes, {
68
+ preferredGlobalScopeKey,
69
+ });
64
70
  persistedScopeKeys = entries.map((entry) => entry.key);
65
71
  if (config.verbose) {
66
- reporter.info(`Persisted ${entries.length} query scope(s) to ${(config.workDir || workDir)}/query/`);
72
+ reporter.info(`Persisted ${entries.length} query scope(s) to ${config.workDir || workDir}/query/`);
67
73
  }
68
74
  }
69
75
  catch (err) {
@@ -138,7 +144,9 @@ function buildConfigOverrides(cliOptions, workDir, sessionRoot) {
138
144
  if (!sourcePath.startsWith(sessionRoot)) {
139
145
  const SOURCE_ROOT_NAMES = ['src', 'lib', 'app', 'source'];
140
146
  const basename = path.basename(sourcePath);
141
- const projectRoot = SOURCE_ROOT_NAMES.includes(basename) ? path.dirname(sourcePath) : sourcePath;
147
+ const projectRoot = SOURCE_ROOT_NAMES.includes(basename)
148
+ ? path.dirname(sourcePath)
149
+ : sourcePath;
142
150
  configOverrides.workDir = path.join(projectRoot, '.archguard');
143
151
  }
144
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-analysis.js","sourceRoot":"","sources":["../../../src/cli/analyze/run-analysis.ts"],"names":[],"mappings":"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"}
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;AAQpC,wBAAgB,gBAAgB,IAAI,OAAO,CAiB1C"}
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"}
@@ -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
- .option('--arch-dir <dir>', 'ArchGuard work directory')
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(archDir, opts.scope);
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;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE7C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAChE,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,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"}
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
- sessionRoot: string;
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;AAKzE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AA6BD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI,CA8DpF"}
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 MCP session root. Omit to analyze the session root.'),
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
- let analyzeInProgress = false;
31
- server.tool('archguard_analyze', 'Analyze project sources with an optional code-language plugin override and refresh query artifacts for the current MCP session.', analyzeSchema, async ({ sources, lang, diagrams, format, noCache }) => {
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
- const normalizedSources = sources?.map((source) => path.resolve(ctx.sessionRoot, source));
39
- const result = await runAnalysis({
40
- sessionRoot: ctx.sessionRoot,
41
- workDir: ctx.archDir,
42
- cliOptions: {
43
- sources: normalizedSources,
44
- lang,
45
- diagrams,
46
- format,
47
- cache: noCache ? false : undefined,
48
- },
49
- reporter: new StderrReporter(),
50
- });
51
- if (result.queryScopesPersisted === 0) {
52
- return textResponse('Analysis failed: No query scopes were persisted.\nPrevious query state is unchanged.');
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
- return textResponse(formatAnalyzeResponse(result, {
65
- elapsedMs: Date.now() - startedAt,
66
- sessionRoot: ctx.sessionRoot,
67
- currentScope,
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(`Session root: ${meta.sessionRoot}`);
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":"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"}
1
+ {"version":3,"file":"analyze-tool.js","sourceRoot":"","sources":["../../../src/cli/mcp/analyze-tool.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { QueryEngine } from '../query/query-engine.js';
3
- export declare function createMcpServer(archDir: string, scopeKey?: string, sessionRoot?: string): McpServer;
4
- export declare function startMcpServer(archDir: string, scopeKey?: string): Promise<void>;
5
- export declare function registerTools(server: McpServer, engineOrGetter: QueryEngine | (() => Promise<QueryEngine>)): void;
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;AAIpE,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAI3E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,MAAsB,GAClC,SAAS,CA+BX;AAUD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AA4BD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,WAAW,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,GACzD,IAAI,CA+GN"}
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"}