kiri-mcp-server 0.22.3 → 0.22.4
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.md +3 -3
- package/dist/package.json +2 -2
- package/dist/src/daemon/daemon.js +16 -1
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/indexer/watch.d.ts +26 -13
- package/dist/src/indexer/watch.d.ts.map +1 -1
- package/dist/src/indexer/watch.js +124 -170
- package/dist/src/indexer/watch.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Intelligent code context extraction for LLMs via Model Context Protocol
|
|
4
4
|
|
|
5
|
-
[](package.json)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://www.typescriptlang.org/)
|
|
8
8
|
[](https://modelcontextprotocol.io/)
|
|
@@ -139,10 +139,10 @@ See [CHANGELOG.md](CHANGELOG.md) for release notes.
|
|
|
139
139
|
|
|
140
140
|
**Recent highlights:**
|
|
141
141
|
|
|
142
|
+
- **v0.22.4**: Replace chokidar with @parcel/watcher to fix EMFILE error on large repos (PR #165)
|
|
142
143
|
- **v0.22.3**: Denylist filter using node-ignore library for proper gitignore compliance (Issue #154)
|
|
143
144
|
- **v0.22.2**: files_search path_prefix filter fix (Issue #162)
|
|
144
145
|
- **v0.22.1**: FTS index WAL visibility fix (Issue #158)
|
|
145
|
-
- **v0.21.0**: Daemon Watch Mode (`--watch` flag for auto re-indexing)
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
@@ -221,4 +221,4 @@ Built with [Model Context Protocol](https://modelcontextprotocol.io/), [DuckDB](
|
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
224
|
-
**Status**: v0.22.
|
|
224
|
+
**Status**: v0.22.4 (Beta) - Production-ready for MCP clients
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kiri-mcp-server",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.4",
|
|
4
4
|
"description": "KIRI context extraction platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@9.0.0",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"@duckdb/node-api": "1.4.2-r.1",
|
|
83
|
-
"
|
|
83
|
+
"@parcel/watcher": "^2.5.1",
|
|
84
84
|
"csv-parse": "^5.5.6",
|
|
85
85
|
"fast-deep-equal": "^3.1.3",
|
|
86
86
|
"gpt-tokenizer": "^3.2.0",
|
|
@@ -178,6 +178,7 @@ async function main() {
|
|
|
178
178
|
process.exit(1);
|
|
179
179
|
}
|
|
180
180
|
// ウォッチモードの設定(自動インクリメンタル再インデックス)
|
|
181
|
+
// 注意: watch modeの起動に失敗してもデーモン自体は継続起動する
|
|
181
182
|
if (options.watchMode) {
|
|
182
183
|
lifecycle.setWatchModeActive(true);
|
|
183
184
|
await lifecycle.log("Watch mode enabled (daemon will not auto-stop)");
|
|
@@ -187,7 +188,21 @@ async function main() {
|
|
|
187
188
|
databasePath: options.databasePath,
|
|
188
189
|
debounceMs: options.debounceMs,
|
|
189
190
|
});
|
|
190
|
-
|
|
191
|
+
try {
|
|
192
|
+
await watcher.start();
|
|
193
|
+
}
|
|
194
|
+
catch (watchError) {
|
|
195
|
+
// Watch modeの起動失敗は致命的エラーではない
|
|
196
|
+
// デーモンは継続起動し、検索機能は正常に動作する
|
|
197
|
+
// 自動再インデックスのみが無効になる
|
|
198
|
+
const errorMessage = watchError instanceof Error ? watchError.message : String(watchError);
|
|
199
|
+
await lifecycle.log(`Watch mode failed to start: ${errorMessage}`);
|
|
200
|
+
console.error(`[Daemon] ⚠️ Watch mode disabled due to error: ${errorMessage}`);
|
|
201
|
+
console.error(`[Daemon] Daemon will continue without automatic re-indexing.`);
|
|
202
|
+
console.error(`[Daemon] To fix: increase file descriptor limit (ulimit -n 65536) or reduce watched files.`);
|
|
203
|
+
watcher = null;
|
|
204
|
+
lifecycle.setWatchModeActive(false);
|
|
205
|
+
}
|
|
191
206
|
}
|
|
192
207
|
// RPCハンドラを作成(既存のロジックを再利用)
|
|
193
208
|
const rpcHandler = createRpcHandler(runtime);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/daemon/daemon.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ export interface WatcherStatistics {
|
|
|
32
32
|
* IndexWatcher monitors filesystem changes and triggers automatic reindexing.
|
|
33
33
|
*
|
|
34
34
|
* Features:
|
|
35
|
+
* - Uses @parcel/watcher for efficient native recursive watching (FSEvents on macOS, etc.)
|
|
35
36
|
* - Debouncing: Aggregates rapid consecutive changes to minimize reindex operations
|
|
36
37
|
* - Denylist Integration: Respects both denylist.yml and .gitignore patterns
|
|
37
38
|
* - Lock Management: Prevents concurrent indexing using lock files
|
|
@@ -39,14 +40,15 @@ export interface WatcherStatistics {
|
|
|
39
40
|
* - Statistics: Tracks reindex count, duration, and queue depth
|
|
40
41
|
*
|
|
41
42
|
* Implementation Note:
|
|
42
|
-
* Uses
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Uses @parcel/watcher instead of chokidar for better performance and
|
|
44
|
+
* to avoid EMFILE (too many open files) errors on large repositories.
|
|
45
|
+
* @parcel/watcher uses native OS APIs (FSEvents, inotify, etc.) that
|
|
46
|
+
* efficiently watch entire directory trees without per-file descriptors.
|
|
45
47
|
*/
|
|
46
48
|
export declare class IndexWatcher {
|
|
47
49
|
private readonly options;
|
|
48
50
|
private readonly rawRepoRoot;
|
|
49
|
-
private
|
|
51
|
+
private subscription;
|
|
50
52
|
private reindexTimer;
|
|
51
53
|
private isReindexing;
|
|
52
54
|
private reindexPromise;
|
|
@@ -56,15 +58,13 @@ export declare class IndexWatcher {
|
|
|
56
58
|
private readonly lockfilePath;
|
|
57
59
|
private readonly realpathCache;
|
|
58
60
|
private isStopping;
|
|
59
|
-
private
|
|
60
|
-
private
|
|
61
|
+
private denylistFilter;
|
|
62
|
+
private ignoredRelativePaths;
|
|
61
63
|
constructor(options: IndexWatcherOptions);
|
|
62
64
|
private getCachedRealPath;
|
|
63
65
|
/**
|
|
64
66
|
* Normalizes absolute file path to repository-relative path.
|
|
65
67
|
*
|
|
66
|
-
* Fix #3: Proper cross-platform path handling to prevent denylist bypass on Windows.
|
|
67
|
-
*
|
|
68
68
|
* Strategy:
|
|
69
69
|
* - Use path.relative() instead of string replacement
|
|
70
70
|
* - Normalize path separator to forward slash (git-compatible)
|
|
@@ -76,18 +76,34 @@ export declare class IndexWatcher {
|
|
|
76
76
|
* @returns Git-compatible relative path, or null if outside repo
|
|
77
77
|
*/
|
|
78
78
|
private normalizePathForRepo;
|
|
79
|
+
/**
|
|
80
|
+
* Checks if a path should be ignored based on denylist and internal paths.
|
|
81
|
+
*
|
|
82
|
+
* @param relativePath - Repository-relative path (forward slashes)
|
|
83
|
+
* @returns true if the path should be ignored
|
|
84
|
+
*/
|
|
85
|
+
private shouldIgnore;
|
|
79
86
|
/**
|
|
80
87
|
* Starts the file watcher and begins monitoring for changes.
|
|
81
88
|
*
|
|
89
|
+
* Uses @parcel/watcher for efficient native recursive watching.
|
|
90
|
+
* This avoids EMFILE errors that occur with chokidar on large repositories.
|
|
91
|
+
*
|
|
82
92
|
* @throws {Error} If the watcher is already running
|
|
83
93
|
*/
|
|
84
94
|
start(): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Handles a single file system event from @parcel/watcher.
|
|
97
|
+
*
|
|
98
|
+
* @param event - The file system event containing type and path
|
|
99
|
+
*/
|
|
100
|
+
private handleEvent;
|
|
85
101
|
/**
|
|
86
102
|
* Schedules a reindex operation with debouncing.
|
|
87
103
|
*
|
|
88
104
|
* Multiple rapid changes are aggregated into a single reindex operation.
|
|
89
105
|
*
|
|
90
|
-
* @param event - Type of file event (
|
|
106
|
+
* @param event - Type of file event (create/update/delete)
|
|
91
107
|
* @param path - Absolute path to the changed file
|
|
92
108
|
*/
|
|
93
109
|
private scheduleReindex;
|
|
@@ -97,20 +113,17 @@ export declare class IndexWatcher {
|
|
|
97
113
|
* If a reindex is already in progress, marks a pending flag to trigger
|
|
98
114
|
* another reindex after the current one completes.
|
|
99
115
|
*
|
|
100
|
-
* @param changedPaths - Array of file paths that changed
|
|
116
|
+
* @param changedPaths - Array of file paths that changed
|
|
101
117
|
*/
|
|
102
118
|
private executeReindex;
|
|
103
119
|
/**
|
|
104
120
|
* Stops the file watcher and cleans up resources.
|
|
105
121
|
*
|
|
106
122
|
* Waits for any ongoing reindex to complete before stopping.
|
|
107
|
-
* Uses the reindex promise to ensure proper synchronization.
|
|
108
123
|
*/
|
|
109
124
|
stop(): Promise<void>;
|
|
110
125
|
/**
|
|
111
126
|
* Returns current watcher statistics.
|
|
112
|
-
*
|
|
113
|
-
* Useful for monitoring and diagnostics.
|
|
114
127
|
*/
|
|
115
128
|
getStatistics(): Readonly<WatcherStatistics>;
|
|
116
129
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/indexer/watch.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/indexer/watch.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,oBAAoB,CAAqB;gBAErC,OAAO,EAAE,mBAAmB;IAiDxC,OAAO,CAAC,iBAAiB;IAqBzB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAmBpB;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE5B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA0CvB;;;;;;;OAOG;YACW,cAAc;IAmI5B;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B;;OAEG;IACH,aAAa,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IAI5C;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { realpathSync, mkdirSync } from "node:fs";
|
|
2
2
|
import { resolve, relative, sep, dirname, isAbsolute } from "node:path";
|
|
3
3
|
import { performance } from "node:perf_hooks";
|
|
4
|
-
import
|
|
4
|
+
import watcher from "@parcel/watcher";
|
|
5
5
|
import { acquireLock, releaseLock, getLockOwner, LockfileError } from "../shared/utils/lockfile.js";
|
|
6
6
|
import { normalizeDbPath, normalizeRepoPath } from "../shared/utils/path.js";
|
|
7
7
|
import { runIndexer } from "./cli.js";
|
|
@@ -10,6 +10,7 @@ import { createDenylistFilter } from "./pipeline/filters/denylist.js";
|
|
|
10
10
|
* IndexWatcher monitors filesystem changes and triggers automatic reindexing.
|
|
11
11
|
*
|
|
12
12
|
* Features:
|
|
13
|
+
* - Uses @parcel/watcher for efficient native recursive watching (FSEvents on macOS, etc.)
|
|
13
14
|
* - Debouncing: Aggregates rapid consecutive changes to minimize reindex operations
|
|
14
15
|
* - Denylist Integration: Respects both denylist.yml and .gitignore patterns
|
|
15
16
|
* - Lock Management: Prevents concurrent indexing using lock files
|
|
@@ -17,14 +18,15 @@ import { createDenylistFilter } from "./pipeline/filters/denylist.js";
|
|
|
17
18
|
* - Statistics: Tracks reindex count, duration, and queue depth
|
|
18
19
|
*
|
|
19
20
|
* Implementation Note:
|
|
20
|
-
* Uses
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* Uses @parcel/watcher instead of chokidar for better performance and
|
|
22
|
+
* to avoid EMFILE (too many open files) errors on large repositories.
|
|
23
|
+
* @parcel/watcher uses native OS APIs (FSEvents, inotify, etc.) that
|
|
24
|
+
* efficiently watch entire directory trees without per-file descriptors.
|
|
23
25
|
*/
|
|
24
26
|
export class IndexWatcher {
|
|
25
27
|
options;
|
|
26
28
|
rawRepoRoot;
|
|
27
|
-
|
|
29
|
+
subscription = null;
|
|
28
30
|
reindexTimer = null;
|
|
29
31
|
isReindexing = false;
|
|
30
32
|
reindexPromise = null;
|
|
@@ -34,23 +36,14 @@ export class IndexWatcher {
|
|
|
34
36
|
lockfilePath;
|
|
35
37
|
realpathCache = new Map();
|
|
36
38
|
isStopping = false; // Flag to prevent new reindexes during shutdown
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
42
|
-
return /\b(EMFILE|ENOSPC)\b/.test(message);
|
|
43
|
-
}
|
|
44
|
-
getWatcherModeLabel(usePolling) {
|
|
45
|
-
return usePolling ? "polling" : "native";
|
|
46
|
-
}
|
|
39
|
+
denylistFilter = null;
|
|
40
|
+
ignoredRelativePaths = new Set();
|
|
47
41
|
constructor(options) {
|
|
48
42
|
this.rawRepoRoot = resolve(options.repoRoot);
|
|
49
43
|
const repoRoot = normalizeRepoPath(this.rawRepoRoot);
|
|
50
44
|
let databasePath;
|
|
51
|
-
//
|
|
45
|
+
// Ensure parent directory exists BEFORE normalization
|
|
52
46
|
// This guarantees consistent path normalization on first and subsequent runs
|
|
53
|
-
// Using sync version because constructors can't be async
|
|
54
47
|
try {
|
|
55
48
|
const parentDir = dirname(resolve(options.databasePath));
|
|
56
49
|
mkdirSync(parentDir, { recursive: true });
|
|
@@ -59,7 +52,6 @@ export class IndexWatcher {
|
|
|
59
52
|
// Ignore if already exists or permission denied
|
|
60
53
|
}
|
|
61
54
|
// Critical: Use normalizeDbPath to ensure consistent path with cli.ts
|
|
62
|
-
// This prevents lock file and queue key mismatch
|
|
63
55
|
databasePath = normalizeDbPath(options.databasePath);
|
|
64
56
|
this.options = {
|
|
65
57
|
repoRoot,
|
|
@@ -110,8 +102,6 @@ export class IndexWatcher {
|
|
|
110
102
|
/**
|
|
111
103
|
* Normalizes absolute file path to repository-relative path.
|
|
112
104
|
*
|
|
113
|
-
* Fix #3: Proper cross-platform path handling to prevent denylist bypass on Windows.
|
|
114
|
-
*
|
|
115
105
|
* Strategy:
|
|
116
106
|
* - Use path.relative() instead of string replacement
|
|
117
107
|
* - Normalize path separator to forward slash (git-compatible)
|
|
@@ -124,12 +114,7 @@ export class IndexWatcher {
|
|
|
124
114
|
*/
|
|
125
115
|
normalizePathForRepo(absPath) {
|
|
126
116
|
const rel = relative(this.options.repoRoot, absPath);
|
|
127
|
-
//
|
|
128
|
-
// - Parent directory traversal: ".."
|
|
129
|
-
// - Absolute paths (Unix): starts with "/"
|
|
130
|
-
// - Absolute paths (Windows): starts with drive letter "C:" or "C:\"
|
|
131
|
-
// - UNC paths (Windows): starts with "\\" or "//"
|
|
132
|
-
// Note: Empty string is ALLOWED (represents repo root for chokidar directory watching)
|
|
117
|
+
// Security - Reject paths outside repository
|
|
133
118
|
if (rel.startsWith("..") ||
|
|
134
119
|
isAbsolute(rel) ||
|
|
135
120
|
/^[A-Za-z]:/.test(rel) ||
|
|
@@ -137,152 +122,134 @@ export class IndexWatcher {
|
|
|
137
122
|
rel.startsWith("//")) {
|
|
138
123
|
return null;
|
|
139
124
|
}
|
|
140
|
-
//
|
|
141
|
-
// This prevents bypass via junction points or symlinks pointing outside the repo
|
|
125
|
+
// Additional safety - Resolve symlinks once and cache the result
|
|
142
126
|
const realAbsPath = this.getCachedRealPath(absPath);
|
|
143
127
|
if (realAbsPath) {
|
|
144
|
-
const realRepoRoot = this.options.repoRoot;
|
|
128
|
+
const realRepoRoot = this.options.repoRoot;
|
|
145
129
|
const realRel = relative(realRepoRoot, realAbsPath);
|
|
146
|
-
// Double-check the real path is still inside repo
|
|
147
130
|
if (realRel.startsWith("..") || isAbsolute(realRel)) {
|
|
148
131
|
return null;
|
|
149
132
|
}
|
|
150
133
|
}
|
|
151
|
-
// Allow empty string (repo root itself) for chokidar directory watching
|
|
152
134
|
// Normalize to forward slash for cross-platform compatibility
|
|
153
|
-
// Windows uses backslash, but git and denylist rules expect forward slash
|
|
154
135
|
return rel.split(sep).join("/");
|
|
155
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Checks if a path should be ignored based on denylist and internal paths.
|
|
139
|
+
*
|
|
140
|
+
* @param relativePath - Repository-relative path (forward slashes)
|
|
141
|
+
* @returns true if the path should be ignored
|
|
142
|
+
*/
|
|
143
|
+
shouldIgnore(relativePath) {
|
|
144
|
+
// Always ignore git internals
|
|
145
|
+
if (relativePath === ".git" || relativePath.startsWith(".git/")) {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
// Ignore database-related files to prevent loops
|
|
149
|
+
if (this.ignoredRelativePaths.has(relativePath)) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
// Check denylist (includes .gitignore patterns)
|
|
153
|
+
if (this.denylistFilter && this.denylistFilter.isDenied(relativePath)) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
156
158
|
/**
|
|
157
159
|
* Starts the file watcher and begins monitoring for changes.
|
|
158
160
|
*
|
|
161
|
+
* Uses @parcel/watcher for efficient native recursive watching.
|
|
162
|
+
* This avoids EMFILE errors that occur with chokidar on large repositories.
|
|
163
|
+
*
|
|
159
164
|
* @throws {Error} If the watcher is already running
|
|
160
165
|
*/
|
|
161
166
|
async start() {
|
|
162
|
-
if (this.
|
|
167
|
+
if (this.subscription !== null) {
|
|
163
168
|
throw new Error("IndexWatcher is already running. Call stop() before starting again.");
|
|
164
169
|
}
|
|
165
170
|
// Load denylist patterns
|
|
166
|
-
|
|
171
|
+
this.denylistFilter = createDenylistFilter(this.options.repoRoot, this.options.configPath);
|
|
172
|
+
// Build ignore list for database files
|
|
167
173
|
const relativeDbPath = this.normalizePathForRepo(this.options.databasePath);
|
|
168
|
-
|
|
174
|
+
this.ignoredRelativePaths.clear();
|
|
169
175
|
if (relativeDbPath) {
|
|
170
|
-
ignoredRelativePaths.add(relativeDbPath);
|
|
171
|
-
ignoredRelativePaths.add(`${relativeDbPath}.wal`);
|
|
172
|
-
ignoredRelativePaths.add(`${relativeDbPath}.tmp`);
|
|
173
|
-
ignoredRelativePaths.add(`${relativeDbPath}.lock`);
|
|
174
|
-
ignoredRelativePaths.add(`${relativeDbPath}.sock`);
|
|
175
|
-
ignoredRelativePaths.add(`${relativeDbPath}.daemon.log`);
|
|
176
|
-
ignoredRelativePaths.add(`${relativeDbPath}.daemon.pid`);
|
|
177
|
-
ignoredRelativePaths.add(`${relativeDbPath}.daemon.starting`);
|
|
176
|
+
this.ignoredRelativePaths.add(relativeDbPath);
|
|
177
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.wal`);
|
|
178
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.tmp`);
|
|
179
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.lock`);
|
|
180
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.sock`);
|
|
181
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.daemon.log`);
|
|
182
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.daemon.pid`);
|
|
183
|
+
this.ignoredRelativePaths.add(`${relativeDbPath}.daemon.starting`);
|
|
184
|
+
}
|
|
185
|
+
// Build ignore patterns for @parcel/watcher
|
|
186
|
+
// Note: @parcel/watcher's ignore option uses micromatch globs
|
|
187
|
+
const ignorePatterns = [
|
|
188
|
+
"**/.git/**",
|
|
189
|
+
"**/.git",
|
|
190
|
+
"**/node_modules/**", // Common pattern to reduce noise
|
|
191
|
+
];
|
|
192
|
+
// Add database path patterns
|
|
193
|
+
if (relativeDbPath) {
|
|
194
|
+
const dbDir = dirname(relativeDbPath);
|
|
195
|
+
if (dbDir && dbDir !== ".") {
|
|
196
|
+
// Ignore the entire .kiri directory if db is in .kiri/
|
|
197
|
+
ignorePatterns.push(`**/${dbDir}/**`);
|
|
198
|
+
}
|
|
178
199
|
}
|
|
179
|
-
const startOnce = async (usePolling) => {
|
|
180
|
-
// Configure chokidar with denylist and editor-specific options
|
|
181
|
-
this.watcher = watch(this.options.repoRoot, {
|
|
182
|
-
persistent: true,
|
|
183
|
-
ignoreInitial: true, // Don't trigger on existing files
|
|
184
|
-
ignored: (path) => {
|
|
185
|
-
const relativePath = this.normalizePathForRepo(path);
|
|
186
|
-
// Reject paths outside repo or invalid paths (explicit null check, not falsy check)
|
|
187
|
-
if (relativePath === null) {
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
|
-
// Always ignore git internals (not indexable, and very noisy)
|
|
191
|
-
if (relativePath === ".git" || relativePath.startsWith(".git/")) {
|
|
192
|
-
return true;
|
|
193
|
-
}
|
|
194
|
-
// If the DB lives under the repo root (e.g., ".kiri/index.duckdb"), ignore it to prevent loops
|
|
195
|
-
if (ignoredRelativePaths.has(relativePath)) {
|
|
196
|
-
return true;
|
|
197
|
-
}
|
|
198
|
-
return denylistFilter.isDenied(relativePath);
|
|
199
|
-
},
|
|
200
|
-
// Editor-specific handling
|
|
201
|
-
awaitWriteFinish: {
|
|
202
|
-
stabilityThreshold: 200, // Wait 200ms for file to stabilize
|
|
203
|
-
pollInterval: 100,
|
|
204
|
-
},
|
|
205
|
-
// Performance tuning
|
|
206
|
-
usePolling,
|
|
207
|
-
// depth option omitted for no depth limit
|
|
208
|
-
});
|
|
209
|
-
// Return promise that resolves when watcher is fully initialized
|
|
210
|
-
return new Promise((resolve, reject) => {
|
|
211
|
-
const watcher = this.watcher;
|
|
212
|
-
let settled = false;
|
|
213
|
-
const settle = (cb) => {
|
|
214
|
-
if (settled) {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
settled = true;
|
|
218
|
-
cb();
|
|
219
|
-
};
|
|
220
|
-
const handleError = (error) => {
|
|
221
|
-
process.stderr.write(`❌ File watcher error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
222
|
-
if (this.watcher) {
|
|
223
|
-
void this.watcher.close().catch(() => {
|
|
224
|
-
/* ignore */
|
|
225
|
-
});
|
|
226
|
-
this.watcher = null;
|
|
227
|
-
}
|
|
228
|
-
if (settled && !this.isStopping && !usePolling && this.isResourceExhaustionError(error)) {
|
|
229
|
-
process.stderr.write(`⚠️ Watch mode hit OS resource limits. Switching to polling mode...\n`);
|
|
230
|
-
// フォールバック前に保留中の変更を保存
|
|
231
|
-
const pendingSnapshot = new Set(this.pendingFiles);
|
|
232
|
-
void startOnce(true)
|
|
233
|
-
.then(() => {
|
|
234
|
-
// フォールバック成功後に保留中の変更を復元
|
|
235
|
-
for (const path of pendingSnapshot) {
|
|
236
|
-
this.pendingFiles.add(path);
|
|
237
|
-
}
|
|
238
|
-
if (pendingSnapshot.size > 0) {
|
|
239
|
-
this.pendingReindex = true;
|
|
240
|
-
}
|
|
241
|
-
})
|
|
242
|
-
.catch((restartError) => {
|
|
243
|
-
process.stderr.write(`❌ Failed to restart watch mode (polling): ${restartError instanceof Error ? restartError.message : String(restartError)}\n`);
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
settle(() => {
|
|
247
|
-
reject(new Error(`Failed to start watch mode (${this.getWatcherModeLabel(usePolling)}): ${error instanceof Error ? error.message : String(error)}`));
|
|
248
|
-
});
|
|
249
|
-
};
|
|
250
|
-
// Register event handlers
|
|
251
|
-
watcher
|
|
252
|
-
.on("add", (path) => {
|
|
253
|
-
this.scheduleReindex("add", path);
|
|
254
|
-
})
|
|
255
|
-
.on("change", (path) => {
|
|
256
|
-
this.scheduleReindex("change", path);
|
|
257
|
-
})
|
|
258
|
-
.on("unlink", (path) => {
|
|
259
|
-
this.scheduleReindex("unlink", path);
|
|
260
|
-
})
|
|
261
|
-
.on("error", handleError)
|
|
262
|
-
.once("ready", () => {
|
|
263
|
-
process.stderr.write(`👁️ Watch mode started (${this.getWatcherModeLabel(usePolling)}). Monitoring ${this.options.repoRoot} for changes...\n`);
|
|
264
|
-
process.stderr.write(` Debounce: ${this.options.debounceMs}ms\n`);
|
|
265
|
-
settle(resolve);
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
};
|
|
269
200
|
try {
|
|
270
|
-
|
|
201
|
+
// Subscribe to file changes using @parcel/watcher
|
|
202
|
+
// @parcel/watcher uses native OS APIs (FSEvents on macOS, inotify on Linux)
|
|
203
|
+
// which efficiently watch entire directory trees without per-file descriptors
|
|
204
|
+
this.subscription = await watcher.subscribe(this.options.repoRoot, (err, events) => {
|
|
205
|
+
if (err) {
|
|
206
|
+
process.stderr.write(`❌ File watcher error: ${err.message}\n`);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
// Process each event
|
|
210
|
+
for (const event of events) {
|
|
211
|
+
this.handleEvent(event);
|
|
212
|
+
}
|
|
213
|
+
}, {
|
|
214
|
+
ignore: ignorePatterns,
|
|
215
|
+
});
|
|
216
|
+
process.stderr.write(`👁️ Watch mode started (native). Monitoring ${this.options.repoRoot} for changes...\n`);
|
|
217
|
+
process.stderr.write(` Debounce: ${this.options.debounceMs}ms\n`);
|
|
218
|
+
process.stderr.write(` Backend: @parcel/watcher (FSEvents/inotify)\n`);
|
|
271
219
|
}
|
|
272
220
|
catch (error) {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}
|
|
276
|
-
process.stderr.write(`⚠️ Watch mode failed to start due to resource limits. Falling back to polling mode...\n`);
|
|
277
|
-
await startOnce(true);
|
|
221
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
222
|
+
throw new Error(`Failed to start watch mode: ${message}`);
|
|
278
223
|
}
|
|
279
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Handles a single file system event from @parcel/watcher.
|
|
227
|
+
*
|
|
228
|
+
* @param event - The file system event containing type and path
|
|
229
|
+
*/
|
|
230
|
+
handleEvent(event) {
|
|
231
|
+
// Don't process events if stopping
|
|
232
|
+
if (this.isStopping) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const relativePath = this.normalizePathForRepo(event.path);
|
|
236
|
+
// Ignore paths outside repository or invalid
|
|
237
|
+
if (relativePath === null) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
// Check if path should be ignored (denylist, .git, db files)
|
|
241
|
+
if (this.shouldIgnore(relativePath)) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Schedule reindex for this file
|
|
245
|
+
this.scheduleReindex(event.type, event.path);
|
|
246
|
+
}
|
|
280
247
|
/**
|
|
281
248
|
* Schedules a reindex operation with debouncing.
|
|
282
249
|
*
|
|
283
250
|
* Multiple rapid changes are aggregated into a single reindex operation.
|
|
284
251
|
*
|
|
285
|
-
* @param event - Type of file event (
|
|
252
|
+
* @param event - Type of file event (create/update/delete)
|
|
286
253
|
* @param path - Absolute path to the changed file
|
|
287
254
|
*/
|
|
288
255
|
scheduleReindex(event, path) {
|
|
@@ -309,7 +276,7 @@ export class IndexWatcher {
|
|
|
309
276
|
const moreCount = Math.max(0, this.pendingFiles.size - 5);
|
|
310
277
|
const summary = moreCount > 0 ? `${fileList} (+${moreCount} more)` : fileList;
|
|
311
278
|
process.stderr.write(`\n📝 File changes detected: ${summary}\n`);
|
|
312
|
-
//
|
|
279
|
+
// Capture snapshot BEFORE clearing to prevent data loss
|
|
313
280
|
const changedPaths = Array.from(this.pendingFiles);
|
|
314
281
|
this.pendingFiles.clear();
|
|
315
282
|
// Pass snapshot to executeReindex
|
|
@@ -324,7 +291,7 @@ export class IndexWatcher {
|
|
|
324
291
|
* If a reindex is already in progress, marks a pending flag to trigger
|
|
325
292
|
* another reindex after the current one completes.
|
|
326
293
|
*
|
|
327
|
-
* @param changedPaths - Array of file paths that changed
|
|
294
|
+
* @param changedPaths - Array of file paths that changed
|
|
328
295
|
*/
|
|
329
296
|
async executeReindex(changedPaths) {
|
|
330
297
|
// Don't start reindex if watcher is stopping
|
|
@@ -334,7 +301,7 @@ export class IndexWatcher {
|
|
|
334
301
|
}
|
|
335
302
|
// Check if already reindexing
|
|
336
303
|
if (this.isReindexing) {
|
|
337
|
-
//
|
|
304
|
+
// Restore changedPaths back to pendingFiles to prevent data loss
|
|
338
305
|
for (const path of changedPaths) {
|
|
339
306
|
this.pendingFiles.add(path);
|
|
340
307
|
}
|
|
@@ -345,11 +312,9 @@ export class IndexWatcher {
|
|
|
345
312
|
this.isReindexing = true;
|
|
346
313
|
this.pendingReindex = false;
|
|
347
314
|
this.stats.lastReindexStart = performance.now();
|
|
348
|
-
// Fix #3 & #4: Use changedPaths parameter (snapshot from scheduleReindex) instead of reading pendingFiles
|
|
349
|
-
// This prevents data loss on lock contention and enables true incremental indexing
|
|
350
315
|
// Create and store the reindex promise for proper shutdown handling
|
|
351
316
|
this.reindexPromise = (async () => {
|
|
352
|
-
//
|
|
317
|
+
// Track lock ownership to prevent releasing locks we don't own
|
|
353
318
|
let lockAcquired = false;
|
|
354
319
|
try {
|
|
355
320
|
// Double-check stopping flag before acquiring lock
|
|
@@ -360,15 +325,15 @@ export class IndexWatcher {
|
|
|
360
325
|
// Acquire lock to prevent concurrent indexing
|
|
361
326
|
try {
|
|
362
327
|
acquireLock(this.lockfilePath);
|
|
363
|
-
lockAcquired = true;
|
|
328
|
+
lockAcquired = true;
|
|
364
329
|
}
|
|
365
330
|
catch (error) {
|
|
366
331
|
if (error instanceof LockfileError) {
|
|
367
|
-
//
|
|
332
|
+
// Restore changedPaths to pendingFiles to prevent data loss
|
|
368
333
|
for (const path of changedPaths) {
|
|
369
334
|
this.pendingFiles.add(path);
|
|
370
335
|
}
|
|
371
|
-
this.pendingReindex = true;
|
|
336
|
+
this.pendingReindex = true;
|
|
372
337
|
const ownerPid = error.ownerPid ?? getLockOwner(this.lockfilePath);
|
|
373
338
|
const ownerInfo = ownerPid ? ` (PID: ${ownerPid})` : "";
|
|
374
339
|
process.stderr.write(`⚠️ Another indexing process${ownerInfo} holds the lock. Changes queued for retry.\n`);
|
|
@@ -384,7 +349,7 @@ export class IndexWatcher {
|
|
|
384
349
|
databasePath: this.options.databasePath,
|
|
385
350
|
full: false,
|
|
386
351
|
changedPaths,
|
|
387
|
-
skipLocking: true, //
|
|
352
|
+
skipLocking: true, // Watcher already holds the lock
|
|
388
353
|
});
|
|
389
354
|
const duration = performance.now() - start;
|
|
390
355
|
this.stats.reindexCount++;
|
|
@@ -398,12 +363,7 @@ export class IndexWatcher {
|
|
|
398
363
|
}
|
|
399
364
|
}
|
|
400
365
|
catch (error) {
|
|
401
|
-
//
|
|
402
|
-
// This prevents permanent data loss when reindex fails due to:
|
|
403
|
-
// - Database I/O errors
|
|
404
|
-
// - Parsing failures
|
|
405
|
-
// - Network timeouts
|
|
406
|
-
// - Any other transient errors
|
|
366
|
+
// Restore changedPaths for ALL errors to prevent data loss
|
|
407
367
|
for (const path of changedPaths) {
|
|
408
368
|
this.pendingFiles.add(path);
|
|
409
369
|
}
|
|
@@ -413,7 +373,7 @@ export class IndexWatcher {
|
|
|
413
373
|
}
|
|
414
374
|
finally {
|
|
415
375
|
this.isReindexing = false;
|
|
416
|
-
//
|
|
376
|
+
// Only release lock if we acquired it
|
|
417
377
|
if (lockAcquired) {
|
|
418
378
|
releaseLock(this.lockfilePath);
|
|
419
379
|
}
|
|
@@ -423,11 +383,9 @@ export class IndexWatcher {
|
|
|
423
383
|
clearTimeout(this.reindexTimer);
|
|
424
384
|
this.reindexTimer = null;
|
|
425
385
|
}
|
|
426
|
-
//
|
|
386
|
+
// If more changes occurred during reindex, trigger direct retry
|
|
427
387
|
if (this.pendingReindex && this.pendingFiles.size > 0) {
|
|
428
388
|
process.stderr.write(`🔁 New changes detected during reindex. Scheduling another reindex...\n`);
|
|
429
|
-
// Direct retry without file system event dependency
|
|
430
|
-
// Don't clear pendingFiles here - let the timer callback handle it
|
|
431
389
|
this.reindexTimer = setTimeout(() => {
|
|
432
390
|
this.reindexTimer = null;
|
|
433
391
|
const changedPaths = Array.from(this.pendingFiles);
|
|
@@ -443,10 +401,9 @@ export class IndexWatcher {
|
|
|
443
401
|
* Stops the file watcher and cleans up resources.
|
|
444
402
|
*
|
|
445
403
|
* Waits for any ongoing reindex to complete before stopping.
|
|
446
|
-
* Uses the reindex promise to ensure proper synchronization.
|
|
447
404
|
*/
|
|
448
405
|
async stop() {
|
|
449
|
-
if (this.
|
|
406
|
+
if (this.subscription === null) {
|
|
450
407
|
return; // Already stopped
|
|
451
408
|
}
|
|
452
409
|
process.stderr.write(`\n🛑 Stopping watch mode...\n`);
|
|
@@ -457,14 +414,13 @@ export class IndexWatcher {
|
|
|
457
414
|
clearTimeout(this.reindexTimer);
|
|
458
415
|
this.reindexTimer = null;
|
|
459
416
|
}
|
|
460
|
-
// Wait for ongoing reindex to complete
|
|
461
|
-
// This is more reliable than polling isReindexing flag
|
|
417
|
+
// Wait for ongoing reindex to complete
|
|
462
418
|
if (this.reindexPromise !== null) {
|
|
463
419
|
await this.reindexPromise;
|
|
464
420
|
}
|
|
465
|
-
//
|
|
466
|
-
await this.
|
|
467
|
-
this.
|
|
421
|
+
// Unsubscribe from @parcel/watcher
|
|
422
|
+
await this.subscription.unsubscribe();
|
|
423
|
+
this.subscription = null;
|
|
468
424
|
// Print final statistics
|
|
469
425
|
const uptime = Math.round((performance.now() - this.stats.watcherStartTime) / 1000);
|
|
470
426
|
process.stderr.write(`📊 Final stats: ${this.stats.reindexCount} reindexes, ${uptime}s uptime\n`);
|
|
@@ -472,8 +428,6 @@ export class IndexWatcher {
|
|
|
472
428
|
}
|
|
473
429
|
/**
|
|
474
430
|
* Returns current watcher statistics.
|
|
475
|
-
*
|
|
476
|
-
* Useful for monitoring and diagnostics.
|
|
477
431
|
*/
|
|
478
432
|
getStatistics() {
|
|
479
433
|
return { ...this.stats };
|
|
@@ -482,7 +436,7 @@ export class IndexWatcher {
|
|
|
482
436
|
* Checks if the watcher is currently running.
|
|
483
437
|
*/
|
|
484
438
|
isRunning() {
|
|
485
|
-
return this.
|
|
439
|
+
return this.subscription !== null;
|
|
486
440
|
}
|
|
487
441
|
}
|
|
488
442
|
//# sourceMappingURL=watch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/indexer/watch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/indexer/watch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kiri-mcp-server",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.4",
|
|
4
4
|
"description": "KIRI context extraction platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@9.0.0",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"@duckdb/node-api": "1.4.2-r.1",
|
|
83
|
-
"
|
|
83
|
+
"@parcel/watcher": "^2.5.1",
|
|
84
84
|
"csv-parse": "^5.5.6",
|
|
85
85
|
"fast-deep-equal": "^3.1.3",
|
|
86
86
|
"gpt-tokenizer": "^3.2.0",
|