アーキテクチャ
ソースレイアウト
コードの所在と、各ファイルの責務。
アプリ全体は src/ 配下に収まっています。ネストしたモジュールも、
共有パッケージもありません。すべて相対パスで import するので、各ファイルの
冒頭を見ればその呼び出しグラフがそのまま読み取れます。
src/domain.ts 共有型と AppError
src/files.ts ローカルとブラウザのファイルアダプタ
src/rag.ts チャンク化と根拠付きプロンプト
src/qvac.ts QVAC 連携
src/store.ts JSON 永続化
src/locallens.ts アプリケーションのワークフロー
src/cli.ts UI なしのインターフェース
src/server.ts オプションの HTTP インターフェース
src/ui/ オプションのブラウザ UI(index.html, app.js, styles.css)依存方向
依存の方向は一方向です。上から下に向かって、各行はそれより上の行 からだけ import します。
| ファイル | src/ から import するもの |
|---|---|
domain.ts | — |
rag.ts | domain |
qvac.ts | domain |
store.ts | domain |
files.ts | domain |
locallens.ts | domain, files, rag, qvac, store |
cli.ts | domain, locallens |
server.ts | domain, locallens |
ui/ | (server.ts と HTTP 経由でのみやり取り) |
domain.ts は土台です。他のすべてのファイルがこれを import し、これ自体は
何も import しません。locallens.ts は頂点です。他のすべてのファイルが
その下にあり、これがすべてを束ねます。
2 行で言うと
cliとserverはどちらもlocallens.tsのLocalLensAppを使う。LocalLensAppはfiles、rag、qvac、storeを使う。これら 4 つはdomainだけを使う。
次へ
ビルドパスの次のページ 実装ウォークスルーでは、各ファイルをビルド順に たどりながら、必要な最小限のコードを示します。
「X が持つべきものは?」の素早いリファレンスだけが欲しい場合は、 コード構造のページに全表があります。