@pcircle/memesh 2.9.2 → 2.9.3

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 (122) hide show
  1. package/README.de.md +119 -78
  2. package/README.es.md +116 -75
  3. package/README.fr.md +116 -75
  4. package/README.id.md +115 -74
  5. package/README.ja.md +111 -70
  6. package/README.ko.md +116 -75
  7. package/README.md +113 -72
  8. package/README.th.md +118 -77
  9. package/README.vi.md +116 -75
  10. package/README.zh-CN.md +120 -79
  11. package/README.zh-TW.md +116 -75
  12. package/dist/core/GitCommandParser.d.ts +11 -0
  13. package/dist/core/GitCommandParser.d.ts.map +1 -0
  14. package/dist/core/GitCommandParser.js +43 -0
  15. package/dist/core/GitCommandParser.js.map +1 -0
  16. package/dist/core/HookIntegration.d.ts +0 -3
  17. package/dist/core/HookIntegration.d.ts.map +1 -1
  18. package/dist/core/HookIntegration.js +6 -30
  19. package/dist/core/HookIntegration.js.map +1 -1
  20. package/dist/embeddings/EmbeddingService.d.ts +3 -0
  21. package/dist/embeddings/EmbeddingService.d.ts.map +1 -1
  22. package/dist/embeddings/EmbeddingService.js +32 -6
  23. package/dist/embeddings/EmbeddingService.js.map +1 -1
  24. package/dist/embeddings/InMemoryVectorAdapter.d.ts +15 -0
  25. package/dist/embeddings/InMemoryVectorAdapter.d.ts.map +1 -0
  26. package/dist/embeddings/InMemoryVectorAdapter.js +58 -0
  27. package/dist/embeddings/InMemoryVectorAdapter.js.map +1 -0
  28. package/dist/embeddings/SqliteVecAdapter.d.ts +15 -0
  29. package/dist/embeddings/SqliteVecAdapter.d.ts.map +1 -0
  30. package/dist/embeddings/SqliteVecAdapter.js +107 -0
  31. package/dist/embeddings/SqliteVecAdapter.js.map +1 -0
  32. package/dist/embeddings/VectorExtension.d.ts +2 -4
  33. package/dist/embeddings/VectorExtension.d.ts.map +1 -1
  34. package/dist/embeddings/VectorExtension.js.map +1 -1
  35. package/dist/embeddings/VectorSearchAdapter.d.ts +17 -0
  36. package/dist/embeddings/VectorSearchAdapter.d.ts.map +1 -0
  37. package/dist/embeddings/VectorSearchAdapter.js +2 -0
  38. package/dist/embeddings/VectorSearchAdapter.js.map +1 -0
  39. package/dist/embeddings/index.d.ts +6 -1
  40. package/dist/embeddings/index.d.ts.map +1 -1
  41. package/dist/embeddings/index.js +4 -1
  42. package/dist/embeddings/index.js.map +1 -1
  43. package/dist/knowledge-graph/ContentHasher.d.ts +4 -0
  44. package/dist/knowledge-graph/ContentHasher.d.ts.map +1 -0
  45. package/dist/knowledge-graph/ContentHasher.js +8 -0
  46. package/dist/knowledge-graph/ContentHasher.js.map +1 -0
  47. package/dist/knowledge-graph/KGSearchEngine.d.ts +36 -0
  48. package/dist/knowledge-graph/KGSearchEngine.d.ts.map +1 -0
  49. package/dist/knowledge-graph/KGSearchEngine.js +257 -0
  50. package/dist/knowledge-graph/KGSearchEngine.js.map +1 -0
  51. package/dist/knowledge-graph/index.d.ts +18 -7
  52. package/dist/knowledge-graph/index.d.ts.map +1 -1
  53. package/dist/knowledge-graph/index.js +147 -242
  54. package/dist/knowledge-graph/index.js.map +1 -1
  55. package/dist/mcp/ServerInitializer.d.ts.map +1 -1
  56. package/dist/mcp/ServerInitializer.js +1 -1
  57. package/dist/mcp/ServerInitializer.js.map +1 -1
  58. package/dist/mcp/StdinBufferManager.d.ts +11 -0
  59. package/dist/mcp/StdinBufferManager.d.ts.map +1 -0
  60. package/dist/mcp/StdinBufferManager.js +62 -0
  61. package/dist/mcp/StdinBufferManager.js.map +1 -0
  62. package/dist/mcp/daemon/StdioProxyClient.d.ts.map +1 -1
  63. package/dist/mcp/daemon/StdioProxyClient.js +6 -0
  64. package/dist/mcp/daemon/StdioProxyClient.js.map +1 -1
  65. package/dist/mcp/handlers/HookToolHandler.d.ts +10 -0
  66. package/dist/mcp/handlers/HookToolHandler.d.ts.map +1 -0
  67. package/dist/mcp/handlers/HookToolHandler.js +92 -0
  68. package/dist/mcp/handlers/HookToolHandler.js.map +1 -0
  69. package/dist/mcp/handlers/MemoryToolHandler.d.ts +21 -0
  70. package/dist/mcp/handlers/MemoryToolHandler.d.ts.map +1 -0
  71. package/dist/mcp/handlers/MemoryToolHandler.js +430 -0
  72. package/dist/mcp/handlers/MemoryToolHandler.js.map +1 -0
  73. package/dist/mcp/handlers/SystemToolHandler.d.ts +14 -0
  74. package/dist/mcp/handlers/SystemToolHandler.d.ts.map +1 -0
  75. package/dist/mcp/handlers/SystemToolHandler.js +224 -0
  76. package/dist/mcp/handlers/SystemToolHandler.js.map +1 -0
  77. package/dist/mcp/handlers/ToolHandlers.d.ts +4 -17
  78. package/dist/mcp/handlers/ToolHandlers.d.ts.map +1 -1
  79. package/dist/mcp/handlers/ToolHandlers.js +19 -689
  80. package/dist/mcp/handlers/ToolHandlers.js.map +1 -1
  81. package/dist/mcp/handlers/index.d.ts +3 -0
  82. package/dist/mcp/handlers/index.d.ts.map +1 -1
  83. package/dist/mcp/handlers/index.js +3 -0
  84. package/dist/mcp/handlers/index.js.map +1 -1
  85. package/dist/mcp/server-bootstrap.js +24 -59
  86. package/dist/mcp/server-bootstrap.js.map +1 -1
  87. package/dist/mcp/tools/create-entities.d.ts.map +1 -1
  88. package/dist/mcp/tools/create-entities.js +18 -24
  89. package/dist/mcp/tools/create-entities.js.map +1 -1
  90. package/dist/memory/MemorySearchEngine.d.ts +17 -0
  91. package/dist/memory/MemorySearchEngine.d.ts.map +1 -0
  92. package/dist/memory/MemorySearchEngine.js +88 -0
  93. package/dist/memory/MemorySearchEngine.js.map +1 -0
  94. package/dist/memory/ProactiveRecaller.d.ts +26 -0
  95. package/dist/memory/ProactiveRecaller.d.ts.map +1 -0
  96. package/dist/memory/ProactiveRecaller.js +96 -0
  97. package/dist/memory/ProactiveRecaller.js.map +1 -0
  98. package/dist/memory/UnifiedMemoryStore.d.ts +1 -0
  99. package/dist/memory/UnifiedMemoryStore.d.ts.map +1 -1
  100. package/dist/memory/UnifiedMemoryStore.js +7 -63
  101. package/dist/memory/UnifiedMemoryStore.js.map +1 -1
  102. package/dist/memory/index.d.ts +3 -0
  103. package/dist/memory/index.d.ts.map +1 -1
  104. package/dist/memory/index.js +2 -0
  105. package/dist/memory/index.js.map +1 -1
  106. package/dist/utils/index.d.ts +0 -2
  107. package/dist/utils/index.d.ts.map +1 -1
  108. package/dist/utils/index.js +0 -2
  109. package/dist/utils/index.js.map +1 -1
  110. package/dist/utils/tracing/index.d.ts +0 -1
  111. package/dist/utils/tracing/index.d.ts.map +1 -1
  112. package/dist/utils/tracing/index.js +0 -1
  113. package/dist/utils/tracing/index.js.map +1 -1
  114. package/package.json +2 -11
  115. package/plugin.json +1 -1
  116. package/scripts/hooks/__tests__/post-tool-use-recall.test.js +192 -0
  117. package/scripts/hooks/__tests__/session-start-recall.test.js +86 -0
  118. package/scripts/hooks/post-tool-use-recall-utils.js +74 -0
  119. package/scripts/hooks/post-tool-use.js +79 -0
  120. package/scripts/hooks/session-start-recall-utils.js +40 -0
  121. package/scripts/hooks/session-start.js +66 -0
  122. package/scripts/hooks/templates/planning-template.md +46 -0
package/README.zh-TW.md CHANGED
@@ -1,60 +1,89 @@
1
1
  <div align="center">
2
2
 
3
- # 🧠 MeMesh Plugin
3
+ <img src="https://img.shields.io/badge/%F0%9F%A7%A0-MeMesh-blueviolet?style=for-the-badge" alt="MeMesh" />
4
4
 
5
- ### Claude Code 的生產力插件
5
+ # MeMesh
6
6
 
7
- 記憶、智慧任務分析、工作流自動化 一個插件搞定。
7
+ ### 你的 AI 程式開發應該有記憶。
8
8
 
9
- [![npm version](https://img.shields.io/npm/v/@pcircle/memesh)](https://www.npmjs.com/package/@pcircle/memesh)
10
- [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
11
- [![MCP](https://img.shields.io/badge/MCP-compatible-purple.svg)](https://modelcontextprotocol.io)
9
+ MeMesh 賦予 Claude Code 持久、可搜尋的記憶 — 讓每次對話都能延續上一次的成果。
12
10
 
13
- [安裝](#安裝) • [使用方式](#使用方式) • [疑難排解](#疑難排解) • [English](README.md)
11
+ [![npm version](https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@pcircle/memesh)
12
+ [![Downloads](https://img.shields.io/npm/dm/@pcircle/memesh?style=flat-square&color=blue)](https://www.npmjs.com/package/@pcircle/memesh)
13
+ [![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE)
14
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen?style=flat-square)](https://nodejs.org)
15
+ [![MCP](https://img.shields.io/badge/MCP-compatible-purple?style=flat-square)](https://modelcontextprotocol.io)
14
16
 
15
- [简体中文](README.zh-CN.md) • [日本語](README.ja.md) • [한국어](README.ko.md) • [Français](README.fr.md) • [Deutsch](README.de.md) • [Español](README.es.md) • [Tiếng Việt](README.vi.md) • [ภาษาไทย](README.th.md) • [Bahasa Indonesia](README.id.md)
17
+ ```bash
18
+ npm install -g @pcircle/memesh
19
+ ```
20
+
21
+ [開始使用](#開始使用) · [運作原理](#運作原理) · [指令](#指令) · [文件](docs/USER_GUIDE.md)
22
+
23
+ [English](README.md) · **繁體中文** · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Español](README.es.md) · [Tiếng Việt](README.vi.md) · [ภาษาไทย](README.th.md) · [Bahasa Indonesia](README.id.md)
16
24
 
17
25
  </div>
18
26
 
27
+ > **備註**:本專案原名「Claude Code Buddy」,為避免潛在的商標問題已更名為 MeMesh Plugin。
28
+
19
29
  ---
20
30
 
21
- ## 為什麼做這個專案
31
+ ## 問題所在
22
32
 
23
- 我很喜歡 Claude Code,它改變了我寫軟體的方式。
33
+ 你正在用 Claude Code 深入開發一個專案。三個 session 前你做了重要決策 — 用哪個 auth 函式庫、為什麼選了那個資料庫 schema、該遵循什麼模式。但 Claude 不記得了。你只能重複說明、失去脈絡、浪費時間。
24
34
 
25
- 這個專案的起點很簡單:我想幫助更多人 特別是剛接觸程式的新手 — 更好地用 Claude Code 來 vibe coding。我發現當專案越來越大,很難記住跨 session 做過的所有決策。所以我(跟 Claude Code 一起)做了一個插件,幫你記住。
35
+ **MeMesh 解決了這個問題。** 它賦予 Claude 持久、可搜尋的記憶,隨著你的專案一起成長。
36
+
37
+ ---
26
38
 
27
- > **備註**:本專案原名「Claude Code Buddy」,為避免潛在商標問題已更名為 MeMesh Plugin。
39
+ ## 運作原理
28
40
 
29
- ## 它能做什麼?
41
+ <table>
42
+ <tr>
43
+ <td width="50%">
44
+
45
+ ### 沒有 MeMesh
46
+ ```
47
+ Session 1: "用 JWT 做 auth"
48
+ Session 2: "我們當初為什麼選 JWT?"
49
+ Session 3: "等等,我們用的是哪個 auth 函式庫?"
50
+ ```
51
+ 你不斷重複決策。Claude 忘了脈絡。進度停滯。
52
+
53
+ </td>
54
+ <td width="50%">
55
+
56
+ ### 有了 MeMesh
57
+ ```
58
+ Session 1: "用 JWT 做 auth" → 已儲存
59
+ Session 2: buddy-remember "auth" → 即時回憶
60
+ Session 3: 啟動時自動載入脈絡
61
+ ```
62
+ 每次 session 都能接續上次的進度。
30
63
 
31
- MeMesh Plugin 讓 Claude Code 更聰明、更有生產力。不只是記憶 — 它是一整套工具:
64
+ </td>
65
+ </tr>
66
+ </table>
32
67
 
33
- **可搜尋的專案記憶** — 工作時自動儲存決策、模式和經驗教訓。用語意搜尋,不只是關鍵字。問「我們之前怎麼決定 auth 的?」就能馬上得到答案。
68
+ ---
34
69
 
35
- **智慧任務分析** — 當你說 `buddy-do "加上使用者認證"`,MeMesh 會分析任務、從過去的工作中拉出相關脈絡,在執行前給你一個完整的計畫。
70
+ ## 你能獲得什麼
36
71
 
37
- **工作流自動化**MeMesh 在背後自動幫你:
38
- - 開始新 session 時顯示上次工作摘要
39
- - 追蹤你改了哪些檔案、測試了哪些
40
- - 在 commit 前提醒你做 code review
41
- - 把任務分配到最合適的模型(搜尋用快的、規劃用強的)
72
+ **可搜尋的專案記憶**問「我們之前怎麼決定 auth 的?」就能即時得到語意匹配的答案。不是關鍵字搜尋 — 而是*語意*搜尋,由本地 ONNX embeddings 驅動。
42
73
 
43
- **從錯誤中學習**記錄錯誤和修復方式,避免重蹈覆轍。MeMesh 會建立一個什麼有效、什麼不行的知識庫。
74
+ **智慧任務分析**`buddy-do "加上使用者認證"` 不只是執行。它會從過去的 session 中提取相關脈絡、檢查你已建立的模式,在寫下任何一行程式碼之前先建構完整的計畫。
44
75
 
45
- **跟 Claude 內建記憶有什麼不同?**
76
+ **主動回憶** MeMesh 在你開始 session、遇到測試失敗或碰到錯誤時,自動浮現相關記憶。不需要手動搜尋。
46
77
 
47
- Claude Code 已經有 auto memory CLAUDE.md — 很適合存一般偏好和指令。MeMesh 在此基礎上增加了專案級的**專用工具**:可用語意搜尋的記憶、能拉取過去脈絡的任務分析、以及讓每個 session 都更有效率的自動化工作流。
78
+ **工作流自動化** 啟動時顯示 session 回顧、追蹤檔案變更、commit 前提醒 code review。全部在背景靜靜運行。
48
79
 
49
- 簡單來說:
50
- - **CLAUDE.md** = 你寫給 Claude 的使用手冊
51
- - **MeMesh** = 可搜尋的筆記本 + 隨專案成長而學習的智慧助手
80
+ **錯誤學習** — 記錄錯誤和修復方式來建立知識庫。同樣的錯誤不會再犯第二次。
52
81
 
53
82
  ---
54
83
 
55
- ## 安裝
84
+ ## 開始使用
56
85
 
57
- **你需要**:[Claude Code](https://docs.anthropic.com/en/docs/claude-code) Node.js 20+
86
+ **前置需求**:[Claude Code](https://docs.anthropic.com/en/docs/claude-code) + Node.js 20+
58
87
 
59
88
  ```bash
60
89
  npm install -g @pcircle/memesh
@@ -62,16 +91,16 @@ npm install -g @pcircle/memesh
62
91
 
63
92
  重啟 Claude Code,完成。
64
93
 
65
- **確認安裝成功** — 在 Claude Code 中輸入:
94
+ **驗證** — 在 Claude Code 中輸入:
66
95
 
67
96
  ```
68
97
  buddy-help
69
98
  ```
70
99
 
71
- 看到指令列表就代表安裝成功。
100
+ 你應該會看到可用指令的列表。
72
101
 
73
102
  <details>
74
- <summary>從原始碼安裝(給貢獻者)</summary>
103
+ <summary><strong>從原始碼安裝</strong>(貢獻者)</summary>
75
104
 
76
105
  ```bash
77
106
  git clone https://github.com/PCIRCLE-AI/claude-code-buddy.git
@@ -83,76 +112,88 @@ npm install && npm run build
83
112
 
84
113
  ---
85
114
 
86
- ## 使用方式
87
-
88
- MeMesh 在 Claude Code 中增加 3 個指令:
115
+ ## 指令
89
116
 
90
- | 指令 | 功能 |
91
- |------|------|
92
- | `buddy-do "任務"` | 帶著記憶脈絡執行任務 |
117
+ | 指令 | 功能說明 |
118
+ |------|----------|
119
+ | `buddy-do "任務"` | 帶著完整記憶脈絡執行任務 |
93
120
  | `buddy-remember "主題"` | 搜尋過去的決策和脈絡 |
94
121
  | `buddy-help` | 顯示可用指令 |
95
122
 
96
- **範例:**
123
+ **實際範例:**
97
124
 
98
125
  ```bash
99
- buddy-do "解釋這個 codebase"
100
- buddy-do "加上使用者認證"
101
- buddy-remember "API 設計決策"
102
- buddy-remember "為什麼選 PostgreSQL"
126
+ # 快速了解一個不熟悉的 codebase
127
+ buddy-do "explain this codebase"
128
+
129
+ # 帶著過去工作的脈絡來開發功能
130
+ buddy-do "add user authentication"
131
+
132
+ # 回顧決策的原因
133
+ buddy-remember "API design decisions"
134
+ buddy-remember "why we chose PostgreSQL"
103
135
  ```
104
136
 
105
137
  所有資料都存在你的電腦上。決策保留 90 天,session 筆記保留 30 天。
106
138
 
107
139
  ---
108
140
 
109
- ## 支援環境
141
+ ## 這跟 CLAUDE.md 有什麼不同?
142
+
143
+ | | CLAUDE.md | MeMesh |
144
+ |---|-----------|--------|
145
+ | **用途** | 給 Claude 的靜態指令 | 隨專案成長的活記憶 |
146
+ | **搜尋** | 手動文字搜尋 | 依語意搜尋 |
147
+ | **更新** | 你手動編輯 | 工作時自動捕捉決策 |
148
+ | **回憶** | 永遠載入(可能變很長) | 按需浮現相關脈絡 |
149
+ | **範圍** | 一般偏好設定 | 專案專屬的知識圖譜 |
150
+
151
+ **它們可以搭配使用。** CLAUDE.md 告訴 Claude *如何*工作。MeMesh 記住你*建了什麼*。
152
+
153
+ ---
154
+
155
+ ## 平台支援
110
156
 
111
157
  | 平台 | 狀態 |
112
158
  |------|------|
113
- | **macOS** | ✅ 正常 |
114
- | **Linux** | ✅ 正常 |
115
- | **Windows** | ✅ 正常(建議 WSL2)|
159
+ | macOS | ✅ |
160
+ | Linux | ✅ |
161
+ | Windows | ✅ (建議 WSL2) |
116
162
 
117
- **可搭配使用:**
118
- - Claude Code CLI(終端機)
119
- - Claude Code VS Code 擴充套件
120
- - Cursor(透過 MCP)
121
- - 其他相容 MCP 的編輯器
122
-
123
- **Claude Desktop (Cowork)**:基本指令可用,記憶功能需使用 CLI 版本。詳見 [Cowork 說明](docs/COWORK_SUPPORT.md)。
163
+ **可搭配使用:** Claude Code CLI · VS Code Extension · Cursor (透過 MCP) · 任何相容 MCP 的編輯器
124
164
 
125
165
  ---
126
166
 
127
- ## 疑難排解
167
+ ## 架構
128
168
 
129
- **MeMesh 沒出現?**
169
+ MeMesh 作為本地 MCP 伺服器與 Claude Code 並行運作:
130
170
 
131
- ```bash
132
- # 確認已安裝
133
- npm list -g @pcircle/memesh
171
+ - **知識圖譜** — SQLite 支援的實體儲存,搭配 FTS5 全文搜尋
172
+ - **向量嵌入** — ONNX 執行環境實現語意相似度(100% 本地運行)
173
+ - **內容去重** — SHA-256 雜湊跳過重複的嵌入運算
174
+ - **批次處理** — 針對大型知識庫的高效批量操作
175
+ - **Hook 系統** — 在 session 啟動、測試失敗和錯誤時主動回憶
134
176
 
135
- # 確認 Node.js 版本(需要 20+)
136
- node --version
177
+ 一切在本地運行。沒有雲端。沒有 API 呼叫。你的資料永遠不會離開你的電腦。
137
178
 
138
- # 重新設定
139
- memesh setup
140
- ```
179
+ ---
141
180
 
142
- 然後完全重啟 Claude Code。
181
+ ## 文件
143
182
 
144
- 更多說明:[疑難排解指南](docs/TROUBLESHOOTING.md)
183
+ | 文件 | 說明 |
184
+ |------|------|
185
+ | [快速開始](docs/GETTING_STARTED.md) | 一步步的安裝指南 |
186
+ | [使用指南](docs/USER_GUIDE.md) | 完整使用指南與範例 |
187
+ | [指令參考](docs/COMMANDS.md) | 完整的指令參考 |
188
+ | [架構說明](docs/ARCHITECTURE.md) | 技術深入解析 |
189
+ | [貢獻指南](CONTRIBUTING.md) | 貢獻者指南 |
190
+ | [開發指南](docs/DEVELOPMENT.md) | 給貢獻者的開發設定 |
145
191
 
146
192
  ---
147
193
 
148
- ## 了解更多
194
+ ## 貢獻
149
195
 
150
- - **[快速開始](docs/GETTING_STARTED.md)** — 一步步安裝教學
151
- - **[使用指南](docs/USER_GUIDE.md)** — 完整使用範例
152
- - **[指令參考](docs/COMMANDS.md)** — 所有可用指令
153
- - **[架構說明](docs/ARCHITECTURE.md)** — 內部運作原理
154
- - **[貢獻指南](CONTRIBUTING.md)** — 想幫忙?從這裡開始
155
- - **[開發指南](docs/DEVELOPMENT.md)** — 給貢獻者
196
+ 歡迎貢獻!請參閱 [CONTRIBUTING.md](CONTRIBUTING.md) 開始。
156
197
 
157
198
  ---
158
199
 
@@ -164,8 +205,8 @@ MIT — 詳見 [LICENSE](LICENSE)
164
205
 
165
206
  <div align="center">
166
207
 
167
- 遇到問題?[回報 Issue](https://github.com/PCIRCLE-AI/claude-code-buddy/issues/new) 我們會快速回應。
208
+ **用 Claude Code 打造,為 Claude Code 而生。**
168
209
 
169
- [回報 Bug](https://github.com/PCIRCLE-AI/claude-code-buddy/issues/new?labels=bug&template=bug_report.yml) [功能請求](https://github.com/PCIRCLE-AI/claude-code-buddy/discussions)
210
+ [回報 Bug](https://github.com/PCIRCLE-AI/claude-code-buddy/issues/new?labels=bug&template=bug_report.yml) · [功能請求](https://github.com/PCIRCLE-AI/claude-code-buddy/discussions) · [取得協助](https://github.com/PCIRCLE-AI/claude-code-buddy/issues/new)
170
211
 
171
212
  </div>
@@ -0,0 +1,11 @@
1
+ export declare class GitCommandParser {
2
+ private static readonly TEST_FILE_PATTERNS;
3
+ private static readonly TEST_COMMAND_PATTERNS;
4
+ static isGitAdd(command: string): boolean;
5
+ static isGitCommit(command: string): boolean;
6
+ static extractCommitMessage(command: string): string | null;
7
+ static isTestFile(filePath: string): boolean;
8
+ static isTestCommand(command: string): boolean;
9
+ static findGitCommitSegment(command: string): string | null;
10
+ }
11
+ //# sourceMappingURL=GitCommandParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitCommandParser.d.ts","sourceRoot":"","sources":["../../src/core/GitCommandParser.ts"],"names":[],"mappings":"AAOA,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAmC;IAG7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAA2D;IAQxG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAUzC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAa5C,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAuB3D,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAU5C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAY9C,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAc5D"}
@@ -0,0 +1,43 @@
1
+ export class GitCommandParser {
2
+ static TEST_FILE_PATTERNS = ['.test.', '.spec.', '/tests/'];
3
+ static TEST_COMMAND_PATTERNS = ['npm test', 'npm run test', 'vitest', 'jest', 'mocha'];
4
+ static isGitAdd(command) {
5
+ return command.trim().startsWith('git add');
6
+ }
7
+ static isGitCommit(command) {
8
+ return GitCommandParser.findGitCommitSegment(command) !== null;
9
+ }
10
+ static extractCommitMessage(command) {
11
+ const segment = GitCommandParser.findGitCommitSegment(command);
12
+ const source = segment ?? command;
13
+ const messages = [];
14
+ const regex = /-m\s+(?:"([^"]*)"|'([^']*)'|([^\s]+))/g;
15
+ let match;
16
+ while ((match = regex.exec(source)) !== null) {
17
+ const message = match[1] ?? match[2] ?? match[3];
18
+ if (message) {
19
+ messages.push(message);
20
+ }
21
+ }
22
+ return messages.length > 0 ? messages.join('\n') : null;
23
+ }
24
+ static isTestFile(filePath) {
25
+ return GitCommandParser.TEST_FILE_PATTERNS.some(p => filePath.includes(p));
26
+ }
27
+ static isTestCommand(command) {
28
+ return GitCommandParser.TEST_COMMAND_PATTERNS.some(p => command.includes(p));
29
+ }
30
+ static findGitCommitSegment(command) {
31
+ const segments = command
32
+ .split(/&&|;/)
33
+ .map(segment => segment.trim())
34
+ .filter(Boolean);
35
+ for (const segment of segments) {
36
+ if (/^git\s+commit(\s|$)/.test(segment)) {
37
+ return segment;
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ }
43
+ //# sourceMappingURL=GitCommandParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitCommandParser.js","sourceRoot":"","sources":["../../src/core/GitCommandParser.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,gBAAgB;IAEnB,MAAM,CAAU,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAGrE,MAAM,CAAU,qBAAqB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAQxG,MAAM,CAAC,QAAQ,CAAC,OAAe;QAC7B,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAQD,MAAM,CAAC,WAAW,CAAC,OAAe;QAChC,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACjE,CAAC;IAWD,MAAM,CAAC,oBAAoB,CAAC,OAAe;QACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,wCAAwC,CAAC;QACvD,IAAI,KAA6B,CAAC;QAElC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAQD,MAAM,CAAC,UAAU,CAAC,QAAgB;QAChC,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAQD,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAUD,MAAM,CAAC,oBAAoB,CAAC,OAAe;QACzC,MAAM,QAAQ,GAAG,OAAO;aACrB,KAAK,CAAC,MAAM,CAAC;aACb,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC"}
@@ -34,14 +34,11 @@ export declare class HookIntegration {
34
34
  private buildCheckpointDetails;
35
35
  private ensureProjectMemoryInitialized;
36
36
  onButlerTrigger(callback: (context: CheckpointContext) => void): void;
37
- private static readonly TEST_FILE_PATTERNS;
38
- private static readonly TEST_COMMAND_PATTERNS;
39
37
  private isTestFile;
40
38
  private isTestCommand;
41
39
  private isGitAddCommand;
42
40
  private isGitCommitCommand;
43
41
  private extractGitCommitMessage;
44
- private findGitCommitSegment;
45
42
  private isValidTestResults;
46
43
  private shouldRecordError;
47
44
  private recordErrorFromOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"HookIntegration.d.ts","sourceRoot":"","sources":["../../src/core/HookIntegration.ts"],"names":[],"mappings":"AA8CA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAyCrE,MAAM,WAAW,WAAW;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+DD,UAAU,UAAU;IAElB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAsBD,MAAM,WAAW,iBAAiB;IAEhC,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,gBAAgB,CAAmD;IAC3E,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;gBAmB9C,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,CAAC,EAAE,kBAAkB;IAiDzC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAkE7C,2BAA2B,CAC/B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiIvB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAiF5C,qBAAqB;IAyDnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA2E;YAKnG,wBAAwB;IAoCtC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,8BAA8B;IA0DtC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAKrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAmC;IAG7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAA2D;IAQxG,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;YAeX,qBAAqB;CAuBpC"}
1
+ {"version":3,"file":"HookIntegration.d.ts","sourceRoot":"","sources":["../../src/core/HookIntegration.ts"],"names":[],"mappings":"AA8CA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAyCrE,MAAM,WAAW,WAAW;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+DD,UAAU,UAAU;IAElB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAsBD,MAAM,WAAW,iBAAiB;IAEhC,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,gBAAgB,CAAmD;IAC3E,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;gBAmB9C,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,CAAC,EAAE,kBAAkB;IAiDzC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAkE7C,2BAA2B,CAC/B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiIvB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAiF5C,qBAAqB;IAyDnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA2E;YAKnG,wBAAwB;IAoCtC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,8BAA8B;IA0DtC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAQrE,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;YAeX,qBAAqB;CAuBpC"}
@@ -1,3 +1,4 @@
1
+ import { GitCommandParser } from './GitCommandParser.js';
1
2
  import { logger } from '../utils/logger.js';
2
3
  import { TestOutputParser } from './TestOutputParser.js';
3
4
  export class HookIntegration {
@@ -216,45 +217,20 @@ export class HookIntegration {
216
217
  onButlerTrigger(callback) {
217
218
  this.triggerCallbacks.push(callback);
218
219
  }
219
- static TEST_FILE_PATTERNS = ['.test.', '.spec.', '/tests/'];
220
- static TEST_COMMAND_PATTERNS = ['npm test', 'npm run test', 'vitest', 'jest', 'mocha'];
221
220
  isTestFile(filePath) {
222
- return HookIntegration.TEST_FILE_PATTERNS.some(p => filePath.includes(p));
221
+ return GitCommandParser.isTestFile(filePath);
223
222
  }
224
223
  isTestCommand(command) {
225
- return HookIntegration.TEST_COMMAND_PATTERNS.some(p => command.includes(p));
224
+ return GitCommandParser.isTestCommand(command);
226
225
  }
227
226
  isGitAddCommand(command) {
228
- return command.trim().startsWith('git add');
227
+ return GitCommandParser.isGitAdd(command);
229
228
  }
230
229
  isGitCommitCommand(command) {
231
- return this.findGitCommitSegment(command) !== null;
230
+ return GitCommandParser.isGitCommit(command);
232
231
  }
233
232
  extractGitCommitMessage(command) {
234
- const segment = this.findGitCommitSegment(command);
235
- const source = segment ?? command;
236
- const messages = [];
237
- const regex = /-m\s+(?:"([^"]*)"|'([^']*)'|([^\s]+))/g;
238
- let match;
239
- while ((match = regex.exec(source)) !== null) {
240
- const message = match[1] ?? match[2] ?? match[3];
241
- if (message) {
242
- messages.push(message);
243
- }
244
- }
245
- return messages.length > 0 ? messages.join('\n') : null;
246
- }
247
- findGitCommitSegment(command) {
248
- const segments = command
249
- .split(/&&|;/)
250
- .map(segment => segment.trim())
251
- .filter(Boolean);
252
- for (const segment of segments) {
253
- if (/^git\s+commit(\s|$)/.test(segment)) {
254
- return segment;
255
- }
256
- }
257
- return null;
233
+ return GitCommandParser.extractCommitMessage(command);
258
234
  }
259
235
  isValidTestResults(data) {
260
236
  if (!data || typeof data !== 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"HookIntegration.js","sourceRoot":"","sources":["../../src/core/HookIntegration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HookIntegration.js","sourceRoot":"","sources":["../../src/core/HookIntegration.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  export declare class EmbeddingService {
2
2
  private static readonly DIMENSIONS;
3
3
  private static readonly MODEL_NAME;
4
+ private static readonly MAX_CACHE_SIZE;
4
5
  private extractor;
5
6
  private initialized;
7
+ private cache;
6
8
  initialize(): Promise<void>;
7
9
  isInitialized(): boolean;
8
10
  encode(text: string): Promise<Float32Array>;
@@ -15,6 +17,7 @@ export declare class LazyEmbeddingService {
15
17
  private static instance;
16
18
  private static initPromise;
17
19
  static get(): Promise<EmbeddingService>;
20
+ static preload(): Promise<void>;
18
21
  static dispose(): Promise<void>;
19
22
  }
20
23
  //# sourceMappingURL=EmbeddingService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../src/embeddings/EmbeddingService.ts"],"names":[],"mappings":"AA+CA,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAO;IAGzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAG/D,OAAO,CAAC,SAAS,CAA0C;IAG3D,OAAO,CAAC,WAAW,CAAS;IAWtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BjC,aAAa,IAAI,OAAO;IAoBlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+B3C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA+B3D,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM;IA4B1D,aAAa,IAAI,MAAM;IAUjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B;AAmBD,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IAGxD,OAAO,CAAC,MAAM,CAAC,WAAW,CAA0C;WAYvD,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;WA+BhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAOtC"}
1
+ {"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../src/embeddings/EmbeddingService.ts"],"names":[],"mappings":"AA+CA,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAO;IAGzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAG/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;IAG7C,OAAO,CAAC,SAAS,CAA0C;IAG3D,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,KAAK,CAAmC;IAW1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BjC,aAAa,IAAI,OAAO;IAoBlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA8C3C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiC3D,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM;IA4B1D,aAAa,IAAI,MAAM;IAUjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B;AAmBD,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IAGxD,OAAO,CAAC,MAAM,CAAC,WAAW,CAA0C;WAYvD,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;WAgChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;WAiBxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAOtC"}
@@ -8,8 +8,10 @@ env.allowRemoteModels = true;
8
8
  export class EmbeddingService {
9
9
  static DIMENSIONS = 384;
10
10
  static MODEL_NAME = 'Xenova/all-MiniLM-L6-v2';
11
+ static MAX_CACHE_SIZE = 500;
11
12
  extractor = null;
12
13
  initialized = false;
14
+ cache = new Map();
13
15
  async initialize() {
14
16
  if (this.initialized) {
15
17
  return;
@@ -34,19 +36,32 @@ export class EmbeddingService {
34
36
  if (!this.extractor) {
35
37
  throw new Error('EmbeddingService not initialized. Call initialize() first.');
36
38
  }
39
+ const cached = this.cache.get(text);
40
+ if (cached) {
41
+ return new Float32Array(cached);
42
+ }
37
43
  const result = await this.extractor(text, {
38
44
  pooling: 'mean',
39
45
  normalize: true,
40
46
  });
41
- return new Float32Array(result.data);
47
+ const embedding = new Float32Array(result.data);
48
+ if (this.cache.size >= EmbeddingService.MAX_CACHE_SIZE) {
49
+ const firstKey = this.cache.keys().next().value;
50
+ if (firstKey !== undefined)
51
+ this.cache.delete(firstKey);
52
+ }
53
+ this.cache.set(text, new Float32Array(embedding));
54
+ return embedding;
42
55
  }
43
56
  async encodeBatch(texts) {
44
- const embeddings = [];
45
- for (const text of texts) {
46
- const embedding = await this.encode(text);
47
- embeddings.push(embedding);
57
+ const chunkSize = 10;
58
+ const results = [];
59
+ for (let i = 0; i < texts.length; i += chunkSize) {
60
+ const chunk = texts.slice(i, i + chunkSize);
61
+ const chunkResults = await Promise.all(chunk.map(text => this.encode(text)));
62
+ results.push(...chunkResults);
48
63
  }
49
- return embeddings;
64
+ return results;
50
65
  }
51
66
  cosineSimilarity(a, b) {
52
67
  if (a.length !== b.length) {
@@ -72,6 +87,7 @@ export class EmbeddingService {
72
87
  async dispose() {
73
88
  this.extractor = null;
74
89
  this.initialized = false;
90
+ this.cache.clear();
75
91
  logger.debug('EmbeddingService disposed');
76
92
  }
77
93
  }
@@ -98,6 +114,16 @@ export class LazyEmbeddingService {
98
114
  }
99
115
  return this.initPromise;
100
116
  }
117
+ static async preload() {
118
+ try {
119
+ await LazyEmbeddingService.get();
120
+ }
121
+ catch (err) {
122
+ logger.debug('ONNX model preload failed (will load on first use)', {
123
+ error: err instanceof Error ? err.message : String(err),
124
+ });
125
+ }
126
+ }
101
127
  static async dispose() {
102
128
  if (this.instance) {
103
129
  await this.instance.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../src/embeddings/EmbeddingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../src/embeddings/EmbeddingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { VectorSearchAdapter, KnnSearchResult } from './VectorSearchAdapter.js';
3
+ export declare class InMemoryVectorAdapter implements VectorSearchAdapter {
4
+ private vectors;
5
+ loadExtension(_db: Database.Database): void;
6
+ createVectorTable(_db: Database.Database, _dimensions?: number): void;
7
+ insertEmbedding(_db: Database.Database, entityName: string, embedding: Float32Array, dimensions?: number): void;
8
+ deleteEmbedding(_db: Database.Database, entityName: string): void;
9
+ knnSearch(_db: Database.Database, queryEmbedding: Float32Array, k: number, dimensions?: number): KnnSearchResult[];
10
+ getEmbedding(_db: Database.Database, entityName: string): Float32Array | null;
11
+ hasEmbedding(_db: Database.Database, entityName: string): boolean;
12
+ getEmbeddingCount(_db: Database.Database): number;
13
+ private cosineDistance;
14
+ }
15
+ //# sourceMappingURL=InMemoryVectorAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryVectorAdapter.d.ts","sourceRoot":"","sources":["../../src/embeddings/InMemoryVectorAdapter.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGrF,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,OAAO,CAAmC;IAElD,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;IAI3C,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrE,eAAe,CACb,GAAG,EAAE,QAAQ,CAAC,QAAQ,EACtB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,YAAY,EACvB,UAAU,GAAE,MAAqC,GAChD,IAAI;IASP,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIjE,SAAS,CACP,GAAG,EAAE,QAAQ,CAAC,QAAQ,EACtB,cAAc,EAAE,YAAY,EAC5B,CAAC,EAAE,MAAM,EACT,UAAU,GAAE,MAAqC,GAChD,eAAe,EAAE;IAkBpB,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAM7E,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAIjE,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM;IAIjD,OAAO,CAAC,cAAc;CAavB"}