archtracker-mcp 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +344 -0
- package/README.md +16 -321
- package/dist/bin.js +1 -1
- package/dist/bin.js.map +1 -1
- package/dist/cli/index.js +507 -1689
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.js +79 -17
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.js +507 -81
- package/dist/mcp/index.js.map +1 -1
- package/dist/web/viewer.js +1572 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<p align="right">
|
|
2
|
+
<a href="README.ja.md">🇯🇵 日本語</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
<p align="center">
|
|
2
6
|
<img src="https://img.shields.io/badge/MCP-Compatible-blue?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiIvPjwvc3ZnPg==" alt="MCP Compatible">
|
|
3
7
|
<img src="https://img.shields.io/npm/v/archtracker-mcp?style=for-the-badge&color=cb3837&logo=npm" alt="npm version">
|
|
@@ -19,8 +23,7 @@
|
|
|
19
23
|
<a href="#multi-layer-architecture">Multi-Layer</a> •
|
|
20
24
|
<a href="#web-viewer">Web Viewer</a> •
|
|
21
25
|
<a href="#mcp-tools">MCP Tools</a> •
|
|
22
|
-
<a href="#cli-commands">CLI</a>
|
|
23
|
-
<a href="#日本語">日本語</a>
|
|
26
|
+
<a href="#cli-commands">CLI</a>
|
|
24
27
|
</p>
|
|
25
28
|
|
|
26
29
|
---
|
|
@@ -42,11 +45,12 @@ When AI agents modify code, they **miss cascading impacts**:
|
|
|
42
45
|
## Features
|
|
43
46
|
|
|
44
47
|
- **Dependency Graph Analysis** — Regex-based static analysis for **13 languages** (JS/TS, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala)
|
|
45
|
-
- **Multi-Layer Architecture** — Analyze multiple services/layers as a unified graph with cross-layer connection detection
|
|
48
|
+
- **Multi-Layer Architecture** — Analyze multiple services/layers as a unified graph with cross-layer connection detection
|
|
46
49
|
- **Interactive Web Viewer** — Force-directed graph with convex hull layer grouping, hierarchy diagram, diff view with D3.js
|
|
50
|
+
- **Security Hardened** — XSS-safe HTML escaping, path traversal protection on all MCP tools (v0.6.0)
|
|
47
51
|
- **Impact Simulation** — Click any file to visualize transitive dependents (BFS traversal)
|
|
48
52
|
- **Snapshot Diffing** — Save architecture snapshots and detect drift over time
|
|
49
|
-
- **MCP Server** —
|
|
53
|
+
- **MCP Server** — 6 tools for Claude Code / AI agents via Model Context Protocol
|
|
50
54
|
- **Claude Code Skills** — 6 slash commands (`/arch-check`, `/arch-snapshot`, `/arch-serve`, etc.)
|
|
51
55
|
- **CI Integration** — `--ci` mode + auto-generated GitHub Actions workflow
|
|
52
56
|
- **Bilingual** — Full English/Japanese support (auto-detected from `LANG` env)
|
|
@@ -168,6 +172,14 @@ The interactive web viewer provides three visualization modes:
|
|
|
168
172
|
|
|
169
173
|

|
|
170
174
|
|
|
175
|
+
#### Layer Focus
|
|
176
|
+
|
|
177
|
+

|
|
178
|
+
|
|
179
|
+
- Shift+click a layer tab to **solo** it; click others to add
|
|
180
|
+
- Convex hulls show layer boundaries; dashed lines show cross-layer links
|
|
181
|
+
- Filtered physics automatically adjust for clearer separation
|
|
182
|
+
|
|
171
183
|
### Hierarchy View (DAG Layout)
|
|
172
184
|
|
|
173
185
|

|
|
@@ -350,320 +362,3 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
|
350
362
|
## License
|
|
351
363
|
|
|
352
364
|
[MIT](LICENSE) © un907
|
|
353
|
-
|
|
354
|
-
---
|
|
355
|
-
|
|
356
|
-
<a id="日本語"></a>
|
|
357
|
-
|
|
358
|
-
<h1 align="center">archtracker-mcp <sub>(日本語)</sub></h1>
|
|
359
|
-
|
|
360
|
-
<p align="center">
|
|
361
|
-
<b>AI駆動開発のためのアーキテクチャ & 依存関係トラッカー</b><br>
|
|
362
|
-
MCP サーバー + CLI + Web ビューア + Claude Code Skills
|
|
363
|
-
</p>
|
|
364
|
-
|
|
365
|
-
## なぜ archtracker?
|
|
366
|
-
|
|
367
|
-
AI エージェントがコードを修正する際、**波及的な影響を見逃します**:
|
|
368
|
-
|
|
369
|
-
| 問題 | archtracker なし | archtracker あり |
|
|
370
|
-
|------|-----------------|-----------------|
|
|
371
|
-
| `auth.ts` を変更 | 12ファイルが依存していることを知らない | 影響を受ける全12ファイルを即座に表示 |
|
|
372
|
-
| リファクタでファイル名変更 | 次のセッションで古いパスを参照 | `context` コマンドで現在の有効パスを取得 |
|
|
373
|
-
| 新しい依存関係を追加 | 結合度の増加が見えない | 差分レポートがアーキテクチャ変更を検出 |
|
|
374
|
-
| PRレビュー | 手動で依存関係を追跡 | CIが自動でアーキテクチャドリフトをチェック |
|
|
375
|
-
| マルチサービス構成 | サービス境界を跨ぐ影響が見えない | レイヤー対応分析でクロスレイヤー接続を検出 |
|
|
376
|
-
|
|
377
|
-
**archtracker-mcp** は依存関係分析、スナップショット差分、影響シミュレーション、インタラクティブな可視化を提供します。MCP ツール、CLI、Web UI、Claude Code Skills からアクセス可能です。
|
|
378
|
-
|
|
379
|
-
## 機能
|
|
380
|
-
|
|
381
|
-
- **依存関係グラフ分析** — 正規表現ベースの静的解析、**13言語**対応(JS/TS, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala)
|
|
382
|
-
- **マルチレイヤーアーキテクチャ** — 複数サービス/レイヤーを統合グラフとして分析、クロスレイヤー接続の自動検出(v0.5.0 新機能)
|
|
383
|
-
- **インタラクティブ Web ビューア** — D3.js による力学モデルグラフ(凸包レイヤーグループ表示)、階層図、差分ビュー
|
|
384
|
-
- **影響シミュレーション** — ファイルをクリックして推移的な被依存ファイルを可視化(BFS探索)
|
|
385
|
-
- **スナップショット差分** — アーキテクチャスナップショットを保存し、ドリフトを検出
|
|
386
|
-
- **MCP サーバー** — Model Context Protocol 経由で5つのツールを提供
|
|
387
|
-
- **Claude Code Skills** — 6つのスラッシュコマンド(`/arch-check`、`/arch-snapshot`、`/arch-serve` 等)
|
|
388
|
-
- **CI 統合** — `--ci` モード + GitHub Actions ワークフロー自動生成
|
|
389
|
-
- **多言語対応** — 日本語・英語完全対応(`LANG` 環境変数から自動検出)
|
|
390
|
-
- **ダーク/ライトテーマ** — localStorage で設定を永続化
|
|
391
|
-
- **SVG/PNG エクスポート** — ドキュメント用にグラフをエクスポート
|
|
392
|
-
|
|
393
|
-
## クイックスタート
|
|
394
|
-
|
|
395
|
-
### インストール
|
|
396
|
-
|
|
397
|
-
```bash
|
|
398
|
-
npm install -g archtracker-mcp
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
### 1. プロジェクトを分析
|
|
402
|
-
|
|
403
|
-
```bash
|
|
404
|
-
archtracker analyze --target src
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
### 2. ベースラインスナップショットを保存
|
|
408
|
-
|
|
409
|
-
```bash
|
|
410
|
-
archtracker init --target src
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
### 3. Web ビューアを起動
|
|
414
|
-
|
|
415
|
-
```bash
|
|
416
|
-
archtracker serve --target src --watch
|
|
417
|
-
# => http://localhost:3000
|
|
418
|
-
```
|
|
419
|
-
|
|
420
|
-
### 4. アーキテクチャドリフトをチェック
|
|
421
|
-
|
|
422
|
-
```bash
|
|
423
|
-
archtracker check --target src
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
## マルチレイヤーアーキテクチャ
|
|
427
|
-
|
|
428
|
-
フロントエンド + バックエンド + 共有ライブラリなど、複数のサービスやレイヤーを持つプロジェクトを統合的に分析できます。
|
|
429
|
-
|
|
430
|
-
### セットアップ
|
|
431
|
-
|
|
432
|
-
プロジェクトルートに `.archtracker/layers.json` を作成:
|
|
433
|
-
|
|
434
|
-
```json
|
|
435
|
-
{
|
|
436
|
-
"version": "1.0",
|
|
437
|
-
"layers": [
|
|
438
|
-
{
|
|
439
|
-
"name": "Frontend",
|
|
440
|
-
"targetDir": "frontend/src",
|
|
441
|
-
"language": "javascript",
|
|
442
|
-
"color": "#58a6ff",
|
|
443
|
-
"description": "React Web App"
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
"name": "Backend",
|
|
447
|
-
"targetDir": "backend/app",
|
|
448
|
-
"language": "python",
|
|
449
|
-
"color": "#3fb950",
|
|
450
|
-
"description": "FastAPI Server"
|
|
451
|
-
}
|
|
452
|
-
],
|
|
453
|
-
"connections": [
|
|
454
|
-
{
|
|
455
|
-
"fromLayer": "Frontend",
|
|
456
|
-
"fromFile": "api/client.ts",
|
|
457
|
-
"toLayer": "Backend",
|
|
458
|
-
"toFile": "main.py",
|
|
459
|
-
"type": "api-call",
|
|
460
|
-
"label": "REST API"
|
|
461
|
-
}
|
|
462
|
-
]
|
|
463
|
-
}
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
テンプレートの自動生成:
|
|
467
|
-
|
|
468
|
-
```bash
|
|
469
|
-
archtracker layers init
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
### 使い方
|
|
473
|
-
|
|
474
|
-
`layers.json` が存在する場合、全コマンドが自動的にマルチレイヤーモードで動作します:
|
|
475
|
-
|
|
476
|
-
```bash
|
|
477
|
-
archtracker analyze --root . # 全レイヤーを分析
|
|
478
|
-
archtracker serve --root . --watch # レイヤータブ・凸包表示付き Web ビューア
|
|
479
|
-
archtracker check --root . # クロスレイヤー差分チェック
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
各レイヤーは独立した言語設定で個別に分析され、プレフィックス付きパス(例: `Backend/worker.py`)で統合グラフにマージされます。
|
|
483
|
-
|
|
484
|
-
### Web ビューアでのレイヤー表示
|
|
485
|
-
|
|
486
|
-
- **レイヤータブ**: 複数選択トグルで特定レイヤーにフォーカス(Shift+クリックでソロモード)
|
|
487
|
-
- **凸包グループ**: 各レイヤーが色付きの境界で視覚的にグループ化
|
|
488
|
-
- **クロスレイヤーリンク**: レイヤー間接続を点線で表示(設定で切替可能)
|
|
489
|
-
- **Layer Cohesion スライダー**: レイヤー内ノードの凝集度を調整
|
|
490
|
-
- **差分ハイライト**: 変更を含むレイヤーの境界がハイライト
|
|
491
|
-
|
|
492
|
-
## Web ビューア
|
|
493
|
-
|
|
494
|
-
インタラクティブな Web ビューアは3つの可視化モードを提供します:
|
|
495
|
-
|
|
496
|
-
### グラフビュー(力学モデル)
|
|
497
|
-
|
|
498
|
-

|
|
499
|
-
|
|
500
|
-
- ドラッグ、ズーム、クリックでノードの依存関係を探索
|
|
501
|
-
- ノードをクリックでハイライトを**ピン固定** — 他のノードをホバーして比較
|
|
502
|
-
- 下部のピルでディレクトリごと、上部のタブでレイヤーごとにフィルタリング
|
|
503
|
-
- 重力、レイヤー凝集力、ノードサイズ、フォントサイズ、リンク透明度を調整可能
|
|
504
|
-
- **影響モード**: ファイルをクリックして推移的に影響を受ける全ファイルを表示
|
|
505
|
-
|
|
506
|
-

|
|
507
|
-
|
|
508
|
-
### 階層ビュー(DAGレイアウト)
|
|
509
|
-
|
|
510
|
-

|
|
511
|
-
|
|
512
|
-
- 依存の深さを示すレイヤー型トップダウンレイアウト
|
|
513
|
-
- クリックでピン固定 + 詳細パネル
|
|
514
|
-
- レイヤー対応フィルタリング + コンパクト再配置
|
|
515
|
-
|
|
516
|
-
### 差分ビュー
|
|
517
|
-
|
|
518
|
-

|
|
519
|
-
|
|
520
|
-
- アーキテクチャ変更の色分け可視化
|
|
521
|
-
- 緑=追加、赤=削除、黄=変更、青=影響
|
|
522
|
-
- 変更を含むレイヤー境界のハイライト表示
|
|
523
|
-
- スナップショットが存在する場合に利用可能
|
|
524
|
-
|
|
525
|
-
```bash
|
|
526
|
-
# ファイル変更の自動リロード付きで起動
|
|
527
|
-
archtracker serve --target src --port 3456 --watch
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
## MCP ツール
|
|
531
|
-
|
|
532
|
-
archtracker を MCP サーバーとして Claude Code や MCP 互換 AI エージェントに追加:
|
|
533
|
-
|
|
534
|
-
```json
|
|
535
|
-
{
|
|
536
|
-
"mcpServers": {
|
|
537
|
-
"archtracker": {
|
|
538
|
-
"command": "npx",
|
|
539
|
-
"args": ["-y", "archtracker-mcp"]
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
```
|
|
544
|
-
|
|
545
|
-
| ツール | 説明 |
|
|
546
|
-
|--------|------|
|
|
547
|
-
| `generate_map` | 依存関係グラフを解析し構造化JSONで返す(プログラム用) |
|
|
548
|
-
| `analyze_existing_architecture` | 包括的な人間向け分析レポート |
|
|
549
|
-
| `save_architecture_snapshot` | `.archtracker/snapshot.json` にスナップショットを保存 |
|
|
550
|
-
| `check_architecture_diff` | スナップショットと現在のコードを比較し影響を表示 |
|
|
551
|
-
| `get_current_context` | 有効なファイルパスとアーキテクチャサマリーを取得 |
|
|
552
|
-
| `search_architecture` | パス、影響範囲、重要度、孤立ファイルで検索 |
|
|
553
|
-
|
|
554
|
-
`.archtracker/layers.json` が存在する場合、全ツールがマルチレイヤーモードを自動検出します。
|
|
555
|
-
|
|
556
|
-
## CLI コマンド
|
|
557
|
-
|
|
558
|
-
```
|
|
559
|
-
archtracker init [options] 初期アーキテクチャスナップショットを生成
|
|
560
|
-
archtracker analyze [options] 包括的な分析レポート
|
|
561
|
-
archtracker check [options] スナップショットと現在のコードを比較
|
|
562
|
-
archtracker context [options] アーキテクチャコンテキストを表示(AIセッション用)
|
|
563
|
-
archtracker serve [options] インタラクティブ Web ビューアを起動
|
|
564
|
-
archtracker ci-setup [options] GitHub Actions ワークフローを生成
|
|
565
|
-
archtracker layers init テンプレート layers.json を作成
|
|
566
|
-
archtracker layers list 設定済みレイヤーを一覧表示
|
|
567
|
-
|
|
568
|
-
オプション:
|
|
569
|
-
-t, --target <dir> 対象ディレクトリ(デフォルト: "src")
|
|
570
|
-
-r, --root <dir> プロジェクトルート(デフォルト: ".")
|
|
571
|
-
-l, --language <lang> 対象言語(省略時は自動検出)
|
|
572
|
-
-p, --port <number> Web ビューアのポート(デフォルト: 3000)
|
|
573
|
-
-w, --watch ファイル変更の監視と自動リロード
|
|
574
|
-
-e, --exclude <pattern> 除外パターン(正規表現)
|
|
575
|
-
-n, --top <number> 分析の上位N件(デフォルト: 10)
|
|
576
|
-
--save 分析後にスナップショットを保存
|
|
577
|
-
--ci CIモード: 要確認ファイルがあれば exit 1
|
|
578
|
-
--json JSON形式で出力(context コマンド)
|
|
579
|
-
--lang <locale> 言語: en | ja(LANG から自動検出)
|
|
580
|
-
```
|
|
581
|
-
|
|
582
|
-
> **マルチレイヤー**: `.archtracker/layers.json` が存在し `--target` が明示指定されていない場合、全コマンドが自動的にマルチレイヤー分析を使用します。`--root` でプロジェクトルートを指定してください。
|
|
583
|
-
|
|
584
|
-
## Claude Code Skills
|
|
585
|
-
|
|
586
|
-
`skills/` ディレクトリをプロジェクトにコピー:
|
|
587
|
-
|
|
588
|
-
```bash
|
|
589
|
-
cp -r node_modules/archtracker-mcp/skills/ .claude/skills/
|
|
590
|
-
```
|
|
591
|
-
|
|
592
|
-
| スキル | 説明 |
|
|
593
|
-
|--------|------|
|
|
594
|
-
| `/arch-analyze` | 包括的なアーキテクチャ分析を実行 |
|
|
595
|
-
| `/arch-check` | スナップショットと現在のコードを比較 |
|
|
596
|
-
| `/arch-snapshot` | 現在のアーキテクチャスナップショットを保存 |
|
|
597
|
-
| `/arch-context` | 有効なファイルパスでAIセッションを初期化 |
|
|
598
|
-
| `/arch-search` | アーキテクチャ検索(パス、影響、重要度、孤立) |
|
|
599
|
-
| `/arch-serve` | インタラクティブ Web ビューアを起動 |
|
|
600
|
-
|
|
601
|
-
全スキルがマルチレイヤープロジェクトに自動対応します。
|
|
602
|
-
|
|
603
|
-
## プログラマティック API
|
|
604
|
-
|
|
605
|
-
```typescript
|
|
606
|
-
import {
|
|
607
|
-
analyzeProject,
|
|
608
|
-
analyzeMultiLayer,
|
|
609
|
-
saveSnapshot,
|
|
610
|
-
loadSnapshot,
|
|
611
|
-
computeDiff,
|
|
612
|
-
formatDiffReport,
|
|
613
|
-
formatAnalysisReport,
|
|
614
|
-
} from "archtracker-mcp";
|
|
615
|
-
|
|
616
|
-
// 単一ディレクトリ分析
|
|
617
|
-
const graph = await analyzeProject("src", { exclude: ["__tests__"] });
|
|
618
|
-
|
|
619
|
-
// マルチレイヤー分析
|
|
620
|
-
const layers = [
|
|
621
|
-
{ name: "Frontend", targetDir: "frontend/src", language: "javascript" },
|
|
622
|
-
{ name: "Backend", targetDir: "backend/app", language: "python" },
|
|
623
|
-
];
|
|
624
|
-
const multi = await analyzeMultiLayer(".", layers);
|
|
625
|
-
|
|
626
|
-
// スナップショット
|
|
627
|
-
const snapshot = await saveSnapshot(".", graph);
|
|
628
|
-
|
|
629
|
-
// 差分比較
|
|
630
|
-
const prev = await loadSnapshot(".");
|
|
631
|
-
if (prev) {
|
|
632
|
-
const diff = computeDiff(prev.graph, graph);
|
|
633
|
-
console.log(formatDiffReport(diff));
|
|
634
|
-
}
|
|
635
|
-
```
|
|
636
|
-
|
|
637
|
-
## CI / CD
|
|
638
|
-
|
|
639
|
-
### GitHub Actions ワークフローの自動生成
|
|
640
|
-
|
|
641
|
-
```bash
|
|
642
|
-
archtracker ci-setup --target src
|
|
643
|
-
# .github/workflows/arch-check.yml を生成
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
## 多言語対応
|
|
647
|
-
|
|
648
|
-
`LANG` / `LC_ALL` 環境変数から自動検出されます:
|
|
649
|
-
|
|
650
|
-
```bash
|
|
651
|
-
LANG=ja_JP.UTF-8 archtracker analyze # 日本語出力
|
|
652
|
-
archtracker --lang ja check # 明示的に日本語指定
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
Web ビューアでも設定パネルから言語を切り替え可能です。
|
|
656
|
-
|
|
657
|
-
## 動作要件
|
|
658
|
-
|
|
659
|
-
- **Node.js** >= 18.0.0
|
|
660
|
-
|
|
661
|
-
対応言語: JavaScript/TypeScript, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala
|
|
662
|
-
|
|
663
|
-
## コントリビュート
|
|
664
|
-
|
|
665
|
-
[CONTRIBUTING.md](CONTRIBUTING.md) をご覧ください。
|
|
666
|
-
|
|
667
|
-
## ライセンス
|
|
668
|
-
|
|
669
|
-
[MIT](LICENSE) © un907
|
package/dist/bin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/bin.ts
|
|
4
|
-
var CLI_COMMANDS = ["init", "analyze", "check", "context", "serve", "ci-setup", "layers", "help"];
|
|
4
|
+
var CLI_COMMANDS = ["init", "analyze", "check", "context", "serve", "ci-setup", "layers", "history", "help"];
|
|
5
5
|
var CLI_FLAGS = ["--help", "-h", "--version", "-V"];
|
|
6
6
|
var args = process.argv.slice(2);
|
|
7
7
|
var hasCommand = args.some((arg) => CLI_COMMANDS.includes(arg));
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bin.ts"],"sourcesContent":["/**\n * Smart entry point for `archtracker-mcp` binary.\n *\n * - If CLI subcommands are detected (serve, analyze, init, etc.) → run CLI\n * - Otherwise → start MCP server on stdio\n *\n * This allows both:\n * npx archtracker-mcp → MCP server\n * npx archtracker-mcp serve --target src → Web viewer (CLI mode)\n * npx archtracker-mcp analyze --target src → Analysis report (CLI mode)\n */\n\nconst CLI_COMMANDS = [\"init\", \"analyze\", \"check\", \"context\", \"serve\", \"ci-setup\", \"layers\", \"help\"];\nconst CLI_FLAGS = [\"--help\", \"-h\", \"--version\", \"-V\"];\n\nconst args = process.argv.slice(2);\nconst hasCommand = args.some((arg) => CLI_COMMANDS.includes(arg));\nconst hasFlag = args.some((arg) => CLI_FLAGS.includes(arg));\n\nif (hasCommand || hasFlag) {\n await import(\"./cli/index.js\");\n} else {\n await import(\"./mcp/index.js\");\n}\n\nexport {};\n"],"mappings":";;;AAYA,IAAM,eAAe,CAAC,QAAQ,WAAW,SAAS,WAAW,SAAS,YAAY,UAAU,MAAM;
|
|
1
|
+
{"version":3,"sources":["../src/bin.ts"],"sourcesContent":["/**\n * Smart entry point for `archtracker-mcp` binary.\n *\n * - If CLI subcommands are detected (serve, analyze, init, etc.) → run CLI\n * - Otherwise → start MCP server on stdio\n *\n * This allows both:\n * npx archtracker-mcp → MCP server\n * npx archtracker-mcp serve --target src → Web viewer (CLI mode)\n * npx archtracker-mcp analyze --target src → Analysis report (CLI mode)\n */\n\nconst CLI_COMMANDS = [\"init\", \"analyze\", \"check\", \"context\", \"serve\", \"ci-setup\", \"layers\", \"history\", \"help\"];\nconst CLI_FLAGS = [\"--help\", \"-h\", \"--version\", \"-V\"];\n\nconst args = process.argv.slice(2);\nconst hasCommand = args.some((arg) => CLI_COMMANDS.includes(arg));\nconst hasFlag = args.some((arg) => CLI_FLAGS.includes(arg));\n\nif (hasCommand || hasFlag) {\n await import(\"./cli/index.js\");\n} else {\n await import(\"./mcp/index.js\");\n}\n\nexport {};\n"],"mappings":";;;AAYA,IAAM,eAAe,CAAC,QAAQ,WAAW,SAAS,WAAW,SAAS,YAAY,UAAU,WAAW,MAAM;AAC7G,IAAM,YAAY,CAAC,UAAU,MAAM,aAAa,IAAI;AAEpD,IAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;AACjC,IAAM,aAAa,KAAK,KAAK,CAAC,QAAQ,aAAa,SAAS,GAAG,CAAC;AAChE,IAAM,UAAU,KAAK,KAAK,CAAC,QAAQ,UAAU,SAAS,GAAG,CAAC;AAE1D,IAAI,cAAc,SAAS;AACzB,QAAM,OAAO,gBAAgB;AAC/B,OAAO;AACL,QAAM,OAAO,gBAAgB;AAC/B;","names":[]}
|