diff --git "a/journals/20260206-0000-\346\241\210\344\273\266.md" "b/journals/20260206-0000-\346\241\210\344\273\266.md" deleted file mode 100644 index 8d6b83e..0000000 --- "a/journals/20260206-0000-\346\241\210\344\273\266.md" +++ /dev/null @@ -1,134 +0,0 @@ -# 作業報告書 20260206-0000-案件 - -## 概要 -Electron + Bun をベースにした常駐型 MCP サーバーを構築し、SQLite + sqlite-vec でベクトル検索を提供。llama.cpp を利用した埋め込み生成とテキスト生成を統合。 - -## 実施内容 -- Electron 常駐アプリ化(トレイ常駐) -- MCP SSE サーバー構築 -- sqlite-vec + better-sqlite3 導入 -- knex 導入(items テーブル操作) -- llama.cpp 連携(埋め込み/生成) -- ツール分割(db / handlers / tools / client) -- ドキュメント整備(概要/ER/データフロー/OpenAPI) - -## 図(データフロー) -```mermaid -graph TD - A[Client] -->|SSE| B[Express /sse] - B --> C[MCP Server] - C --> D{Handlers} - D -->|embedding| E[llama.cpp] - D -->|add_item| F[knex: items] - D -->|add_item| G[sqlite-vec: vec_items] - D -->|search| G - G --> H[Results] - F --> H - H --> C -``` - -## 追加・更新ファイル -- document/overview.md -- document/openapi.yaml -- src/db.js -- src/llama-client.js -- src/mcp-tools.js -- src/mcp-handlers.js -- src/mcp-server.js -- src/main.js -- src/index.html -- .env -- mcp.json.sample -- .vscode/launch.json -- .vscode/tasks.json - -## 起動手順 -```bash -bun start -``` - -## 環境変数(例) -``` -LLAMA_CPP_BASE_URL=http://127.0.0.1:8080 -LLAMA_CPP_EMBEDDING_MODEL= -LLAMA_CPP_MODEL= -VEC_DIM=3 -``` - -## 備考 -- REST API は OpenAPI の雛形を作成済み。現状は MCP 経由のツール呼び出しが主。 -- アイコンは `src/icon.ico` / `src/icon.png` に配置。 - ---- - -## 追加作業(テストスイート完成) - -### 実施内容 -- 包括的なテストスイート作成(test/ フォルダ) -- 5つのテストモジュール、35テスト、全て成功 -- bun:test フレームワーク採用 -- 139個の expect() 呼び出しで検証 - -### テストモジュール -1. **db.test.js** (5テスト) - - データベース初期化・スキーマ検証 - - アイテム挿入・取得 - - タイムスタンプデフォルト値 - -2. **mcp-tools.test.js** (11テスト) - - 5つの MCP ツール定義確認 - - スキーマ・入力パラメータ検証 - - ベクトル次元チェック(3次元) - -3. **mcp-handlers.test.js** (6テスト) - - エンベッディング次元検証 - - 検索結果フィールド完全性 - - タイムスタンプ保存・操作 - -4. **llama-client.test.js** (9テスト) - - llamaEmbedding() API - - llamaCompletion() API - - エラーハンドリング - - 環境変数使用確認 - -5. **integration.test.js** (4テスト) - - 完全なアイテムライフサイクル - - 複数アイテム・メタデータ処理 - - データ完全性・並行処理シミュレーション - -### テスト実行結果 -``` -35 pass -0 fail -139 expect() calls -Ran 35 tests across 5 files. [238.00ms] -``` - -### テスト実行コマンド -```bash -bun test # 全テスト -bun test test/db.test.js # DB テストのみ -npm run test:watch # ウォッチモード -npm run test:db # db テスト -npm run test:llama # llama テスト -npm run test:tools # tools テスト -npm run test:handlers # handlers テスト -npm run test:integration # integration テスト -``` - -### 新規ファイル -- test/setup.js - テスト用ユーティリティ -- test/db.test.js - DB テスト -- test/mcp-tools.test.js - ツール定義テスト -- test/mcp-handlers.test.js - ハンドラーテスト -- test/llama-client.test.js - LLama クライアントテスト -- test/integration.test.js - 統合テスト -- test/README.md - テスト概要ドキュメント -- package.json: test スクリプト追加 (7種類) - -### 技術的工夫 -- bun:sqlite を使用(テスト環境では better-sqlite3 の代わり) -- 各テストで独立したテーブル・環境設定 -- DELETE FROM items で前のテストデータをクリア -- エラーハンドリング(ロックファイルの許容など) -- モック fetch を使用した LLama API テスト