kiri-mcp-server 0.11.0 โ 0.12.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.md +43 -10
- package/config/kiri.yml +25 -0
- package/dist/config/kiri.yml +25 -0
- package/dist/package.json +1 -1
- package/dist/src/server/boost-profiles.d.ts +6 -5
- package/dist/src/server/boost-profiles.d.ts.map +1 -1
- package/dist/src/server/boost-profiles.js +22 -0
- package/dist/src/server/boost-profiles.js.map +1 -1
- package/dist/src/server/config-loader.d.ts +9 -0
- package/dist/src/server/config-loader.d.ts.map +1 -0
- package/dist/src/server/config-loader.js +121 -0
- package/dist/src/server/config-loader.js.map +1 -0
- package/dist/src/server/config.d.ts +2 -0
- package/dist/src/server/config.d.ts.map +1 -1
- package/dist/src/server/config.js +11 -0
- package/dist/src/server/config.js.map +1 -1
- package/dist/src/server/handlers.d.ts +1 -0
- package/dist/src/server/handlers.d.ts.map +1 -1
- package/dist/src/server/handlers.js +224 -5
- package/dist/src/server/handlers.js.map +1 -1
- package/dist/src/server/rpc.d.ts.map +1 -1
- package/dist/src/server/rpc.js +24 -4
- package/dist/src/server/rpc.js.map +1 -1
- package/dist/src/shared/tokenizer.d.ts +1 -1
- package/dist/src/shared/tokenizer.d.ts.map +1 -1
- package/dist/src/shared/tokenizer.js +97 -15
- package/dist/src/shared/tokenizer.js.map +1 -1
- package/package.json +28 -26
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/)
|
|
@@ -20,11 +20,22 @@
|
|
|
20
20
|
- **๐ Phrase-Aware**: Recognizes compound terms (kebab-case, snake_case) for precise matching
|
|
21
21
|
- **๐ Concurrency-Safe** _(v0.9.7+)_: Per-database queues, canonicalized DuckDB paths, and bootstrap-safe locking prevent FTS rebuild conflicts and keep locks consistent across symlinksโeven on first run
|
|
22
22
|
|
|
23
|
-
## ๐ What
|
|
23
|
+
## ๐ What's New in v0.12.0
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
25
|
+
### ๐ง Improvements
|
|
26
|
+
|
|
27
|
+
- **Request Tracing**: Added optional `requestId` parameter to `context_bundle` for debugging and tracing
|
|
28
|
+
- **Tokenizer Enhancement**: Improved keyword extraction with camelCase/snake_case variant support
|
|
29
|
+
- **Path Penalties**: Configurable path penalties via config files for fine-tuned search results
|
|
30
|
+
|
|
31
|
+
### ๐ Bug Fixes
|
|
32
|
+
|
|
33
|
+
- **TypeScript Compatibility**: Fixed build errors related to `exactOptionalPropertyTypes`
|
|
34
|
+
- **Search Precision**: Improved candidate trimming to only affect fallback-only results
|
|
35
|
+
|
|
36
|
+
### ๐ Documentation
|
|
37
|
+
|
|
38
|
+
- Added path penalties user and developer guides (EN/JA)
|
|
28
39
|
|
|
29
40
|
## โ๏ธ Prerequisites
|
|
30
41
|
|
|
@@ -43,6 +54,27 @@ npm --version # Should be >= v9.0.0
|
|
|
43
54
|
git --version # Should be >= v2.0
|
|
44
55
|
```
|
|
45
56
|
|
|
57
|
+
## โ ๏ธ Troubleshooting
|
|
58
|
+
|
|
59
|
+
### Migration or Database Issues
|
|
60
|
+
|
|
61
|
+
If you encounter issues after upgrading (database corruption, migration failures, etc.), the simplest solution is to delete the database and let KIRI recreate it:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# For MCP users (Claude Code, Codex CLI, etc.)
|
|
65
|
+
# 1. Restart your MCP client to stop the KIRI server
|
|
66
|
+
# 2. Delete the database
|
|
67
|
+
rm -rf .kiri/
|
|
68
|
+
# 3. Restart your MCP client - KIRI will automatically reindex
|
|
69
|
+
|
|
70
|
+
# For CLI/Daemon users
|
|
71
|
+
pkill -f "kiri.*daemon" # Stop daemon if running
|
|
72
|
+
rm -rf .kiri/ # Delete database
|
|
73
|
+
kiri --repo . --db .kiri/index.duckdb --full # Reindex
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
> **Note**: Deleting the database is safe - it only removes the index, not your source code. KIRI will automatically rebuild the index on next startup. For MCP users, no manual reindexing is needed.
|
|
77
|
+
|
|
46
78
|
## ๐ Quick Start for MCP Users
|
|
47
79
|
|
|
48
80
|
### Step 1: Install KIRI
|
|
@@ -58,6 +90,7 @@ npm install -g kiri-mcp-server
|
|
|
58
90
|
## ๐ Documentation
|
|
59
91
|
|
|
60
92
|
- [Authoring Docs for KIRI Search](docs/documentation-best-practices.md) โ best practices for writing metadata-rich, link-aware documentation so that `context_bundle` and the docs vs. docs-plain benchmark maintain high precision. Includes guidance on querying custom front-matter keys via `meta.<key>:<value>` (for example, `meta.id:runbook-001`).
|
|
93
|
+
- [Path Penalties (User Guide)](docs/user/path-penalties.md) โ `.kiri/config.yaml` ใจ็ฐๅขๅคๆฐใงใในๅ็ใ่จญๅฎใใๆ้ ใๅชๅ
้ ไฝใๆญฃ่ฆๅใซใผใซใ้ฉ็จใฟใคใใณใฐใใพใจใใใฆใผใถใผๅใใฌใคใใ
|
|
61
94
|
|
|
62
95
|
> **Note**: This installs the `kiri` command globally. You can verify with `kiri --version`.
|
|
63
96
|
|
|
@@ -760,11 +793,11 @@ See [docs/architecture.md](docs/architecture.md) for detailed technical informat
|
|
|
760
793
|
|
|
761
794
|
### Performance
|
|
762
795
|
|
|
763
|
-
| Metric | Target | Current
|
|
764
|
-
| ----------------------------- | ------ |
|
|
765
|
-
| **Time to First Result** | โค 1.0s | โ
0.8s
|
|
766
|
-
| **Precision @ 10** | โฅ 0.7 |
|
|
767
|
-
| **Token Reduction (compact)** | โฅ 90% | โ
95% (v0.8)
|
|
796
|
+
| Metric | Target | Current |
|
|
797
|
+
| ----------------------------- | ------ | --------------------------------------------------------------------------------------- |
|
|
798
|
+
| **Time to First Result** | โค 1.0s | โ
0.8s |
|
|
799
|
+
| **Precision @ 10** | โฅ 0.7 | โ ๏ธ 0.25 (2025-11-21, dataset v2025-11-docs-plain, K=10, see var/eval/2025-11-21-k10.md) |
|
|
800
|
+
| **Token Reduction (compact)** | โฅ 90% | โ
95% (v0.8) |
|
|
768
801
|
|
|
769
802
|
### Evaluation & Quality Assurance
|
|
770
803
|
|
package/config/kiri.yml
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
path_penalties:
|
|
2
|
+
# Reduce noisy auxiliary packages
|
|
3
|
+
- prefix: ".eslint-plugin-local/"
|
|
4
|
+
multiplier: 0.1
|
|
5
|
+
- prefix: "cli/"
|
|
6
|
+
multiplier: 0.25
|
|
7
|
+
- prefix: "cli/src/"
|
|
8
|
+
multiplier: 0.2
|
|
9
|
+
- prefix: "extensions/"
|
|
10
|
+
multiplier: 0.15
|
|
11
|
+
- prefix: "tests/eval/"
|
|
12
|
+
multiplier: 0.05
|
|
13
|
+
- prefix: "datasets/"
|
|
14
|
+
multiplier: 0.05
|
|
15
|
+
- prefix: "tests/"
|
|
16
|
+
multiplier: 0.3
|
|
17
|
+
- prefix: "examples/"
|
|
18
|
+
multiplier: 0.1
|
|
19
|
+
- prefix: "fixtures/"
|
|
20
|
+
multiplier: 0.1
|
|
21
|
+
- prefix: "testdata/"
|
|
22
|
+
multiplier: 0.1
|
|
23
|
+
# Suppress repo-local baseline fixtures that surface via fallback
|
|
24
|
+
- prefix: "packages/assay-kit/baseline-tests"
|
|
25
|
+
multiplier: 0.05
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
path_penalties:
|
|
2
|
+
# Reduce noisy auxiliary packages
|
|
3
|
+
- prefix: ".eslint-plugin-local/"
|
|
4
|
+
multiplier: 0.1
|
|
5
|
+
- prefix: "cli/"
|
|
6
|
+
multiplier: 0.25
|
|
7
|
+
- prefix: "cli/src/"
|
|
8
|
+
multiplier: 0.2
|
|
9
|
+
- prefix: "extensions/"
|
|
10
|
+
multiplier: 0.15
|
|
11
|
+
- prefix: "tests/eval/"
|
|
12
|
+
multiplier: 0.05
|
|
13
|
+
- prefix: "datasets/"
|
|
14
|
+
multiplier: 0.05
|
|
15
|
+
- prefix: "tests/"
|
|
16
|
+
multiplier: 0.3
|
|
17
|
+
- prefix: "examples/"
|
|
18
|
+
multiplier: 0.1
|
|
19
|
+
- prefix: "fixtures/"
|
|
20
|
+
multiplier: 0.1
|
|
21
|
+
- prefix: "testdata/"
|
|
22
|
+
multiplier: 0.1
|
|
23
|
+
# Suppress repo-local baseline fixtures that surface via fallback
|
|
24
|
+
- prefix: "packages/assay-kit/baseline-tests"
|
|
25
|
+
multiplier: 0.05
|
package/dist/package.json
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
* - balanced: Equal weight for both docs and implementation
|
|
11
11
|
* - none: No file type boosting (pure keyword scoring)
|
|
12
12
|
*/
|
|
13
|
+
export interface PathMultiplier {
|
|
14
|
+
prefix: string;
|
|
15
|
+
multiplier: number;
|
|
16
|
+
}
|
|
13
17
|
/**
|
|
14
18
|
* Boost profile configuration
|
|
15
19
|
* Defines how different file types should be ranked
|
|
@@ -34,10 +38,7 @@ export interface BoostProfileConfig {
|
|
|
34
38
|
* Path-specific multipliers (e.g., src/app/ gets higher boost than src/)
|
|
35
39
|
* Array is sorted by prefix length (longest first) to ensure correct matching priority
|
|
36
40
|
*/
|
|
37
|
-
pathMultipliers:
|
|
38
|
-
prefix: string;
|
|
39
|
-
multiplier: number;
|
|
40
|
-
}>;
|
|
41
|
+
pathMultipliers: PathMultiplier[];
|
|
41
42
|
/**
|
|
42
43
|
* Skip additive penalty for config files (-1.5 score penalty)
|
|
43
44
|
* and only apply multiplicative penalty (e.g., 0.3x multiplier)
|
|
@@ -45,7 +46,7 @@ export interface BoostProfileConfig {
|
|
|
45
46
|
*/
|
|
46
47
|
skipConfigAdditivePenalty?: boolean;
|
|
47
48
|
}
|
|
48
|
-
export type BoostProfileName = "default" | "docs" | "none" | "balanced" | "feature" | "bugfix" | "debug" | "api" | "editor" | "testfail" | "typeerror";
|
|
49
|
+
export type BoostProfileName = "default" | "docs" | "none" | "balanced" | "feature" | "bugfix" | "debug" | "api" | "editor" | "testfail" | "typeerror" | "vscode";
|
|
49
50
|
/**
|
|
50
51
|
* Boost profile definitions
|
|
51
52
|
* Centralized configuration for all boost profiles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boost-profiles.d.ts","sourceRoot":"","sources":["../../../src/server/boost-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B,sDAAsD;IACtD,mBAAmB,EAAE;QACnB,mDAAmD;QACnD,GAAG,EAAE,MAAM,CAAC;QACZ,oCAAoC;QACpC,IAAI,EAAE,MAAM,CAAC;QACb,8DAA8D;QAC9D,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;;OAGG;IACH,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"boost-profiles.d.ts","sourceRoot":"","sources":["../../../src/server/boost-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B,sDAAsD;IACtD,mBAAmB,EAAE;QACnB,mDAAmD;QACnD,GAAG,EAAE,MAAM,CAAC;QACZ,oCAAoC;QACpC,IAAI,EAAE,MAAM,CAAC;QACb,8DAA8D;QAC9D,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;;OAGG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,GACT,QAAQ,GACR,OAAO,GACP,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAuMvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAS1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAE1E"}
|
|
@@ -180,6 +180,28 @@ export const BOOST_PROFILES = {
|
|
|
180
180
|
{ prefix: "src/", multiplier: 0.6 }, // ๆๅถ: 1.0 โ 0.6
|
|
181
181
|
],
|
|
182
182
|
},
|
|
183
|
+
vscode: {
|
|
184
|
+
denylistOverrides: ["extensions/"],
|
|
185
|
+
fileTypeMultipliers: {
|
|
186
|
+
doc: 0.6,
|
|
187
|
+
impl: 1.35,
|
|
188
|
+
config: 0.05,
|
|
189
|
+
},
|
|
190
|
+
pathMultipliers: [
|
|
191
|
+
{ prefix: "src/vs/workbench/contrib/", multiplier: 2.8 },
|
|
192
|
+
{ prefix: "src/vs/workbench/", multiplier: 2.6 },
|
|
193
|
+
{ prefix: "src/vs/platform/", multiplier: 2.5 },
|
|
194
|
+
{ prefix: "src/vs/editor/", multiplier: 2.4 },
|
|
195
|
+
{ prefix: "src/vs/base/", multiplier: 2.3 },
|
|
196
|
+
{ prefix: "src/vs/", multiplier: 2.1 },
|
|
197
|
+
// VS Code extensions are often noisy for repo-level queries; keep but suppress
|
|
198
|
+
{ prefix: "extensions/", multiplier: 0.1 },
|
|
199
|
+
{ prefix: "src/", multiplier: 0.8 },
|
|
200
|
+
{ prefix: "cli/src/", multiplier: 0.25 },
|
|
201
|
+
{ prefix: "cli/", multiplier: 0.3 },
|
|
202
|
+
{ prefix: ".eslint-plugin-local/", multiplier: 0.15 },
|
|
203
|
+
],
|
|
204
|
+
},
|
|
183
205
|
};
|
|
184
206
|
/**
|
|
185
207
|
* Get boost profile configuration by name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boost-profiles.js","sourceRoot":"","sources":["../../../src/server/boost-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"boost-profiles.js","sourceRoot":"","sources":["../../../src/server/boost-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PathMultiplier } from "./boost-profiles.js";
|
|
2
|
+
/**
|
|
3
|
+
* Global resolver for path penalties (Issue #106)
|
|
4
|
+
* Precedence: profile < env < YAML (last definition wins)
|
|
5
|
+
*/
|
|
6
|
+
export declare function loadPathPenalties(basePathMultipliers?: PathMultiplier[], cwd?: string): PathMultiplier[];
|
|
7
|
+
/** Test helper: merge logic without disk/env side effects */
|
|
8
|
+
export declare function mergePathPenaltyEntries(base: PathMultiplier[], env: PathMultiplier[], yaml: PathMultiplier[]): PathMultiplier[];
|
|
9
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/server/config-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAmH1D;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,mBAAmB,GAAE,cAAc,EAAO,EAC1C,GAAG,GAAE,MAAsB,GAC1B,cAAc,EAAE,CAelB;AAED,6DAA6D;AAC7D,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,cAAc,EAAE,EACtB,GAAG,EAAE,cAAc,EAAE,EACrB,IAAI,EAAE,cAAc,EAAE,GACrB,cAAc,EAAE,CAElB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { parse } from "yaml";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
const ENV_PREFIX = "KIRI_PATH_PENALTY_";
|
|
6
|
+
const penaltyCache = new Map();
|
|
7
|
+
const PathPenaltySchema = z.object({
|
|
8
|
+
prefix: z.string().trim().min(1, "prefix is required"),
|
|
9
|
+
multiplier: z.number().finite().nonnegative(),
|
|
10
|
+
});
|
|
11
|
+
const ConfigSchema = z.object({
|
|
12
|
+
path_penalties: z.array(PathPenaltySchema).optional(),
|
|
13
|
+
});
|
|
14
|
+
function normalizePrefix(raw) {
|
|
15
|
+
const trimmed = raw.trim();
|
|
16
|
+
if (trimmed.length === 0) {
|
|
17
|
+
throw new Error("Path penalty prefix cannot be empty");
|
|
18
|
+
}
|
|
19
|
+
const hadTrailingSlash = /[\\/]+$/.test(trimmed);
|
|
20
|
+
const normalized = path.posix
|
|
21
|
+
.normalize(trimmed.replace(/\\/g, "/"))
|
|
22
|
+
.replace(/^([A-Za-z]:)?\//, "") // drop drive letter or leading slash
|
|
23
|
+
.replace(/^\.\//, "");
|
|
24
|
+
if (normalized === "" || normalized === ".") {
|
|
25
|
+
throw new Error(`Path penalty prefix "${raw}" resolves to an empty path`);
|
|
26
|
+
}
|
|
27
|
+
if (normalized.startsWith("../") || normalized.includes("/../")) {
|
|
28
|
+
throw new Error(`Path penalty prefix "${raw}" must not contain ".." segments`);
|
|
29
|
+
}
|
|
30
|
+
// Re-append trailing slash only when the original explicitly had it
|
|
31
|
+
return hadTrailingSlash && !normalized.endsWith("/") ? `${normalized}/` : normalized;
|
|
32
|
+
}
|
|
33
|
+
function sortByPrefixLength(entries) {
|
|
34
|
+
return [...entries].sort((a, b) => b.prefix.length - a.prefix.length);
|
|
35
|
+
}
|
|
36
|
+
function decodeEnvKey(key) {
|
|
37
|
+
const encoded = key.slice(ENV_PREFIX.length);
|
|
38
|
+
if (!encoded) {
|
|
39
|
+
throw new Error("KIRI_PATH_PENALTY_* must include a prefix segment");
|
|
40
|
+
}
|
|
41
|
+
// Spec: "/" โ "__" encoding
|
|
42
|
+
const decoded = encoded.replace(/__/g, "/");
|
|
43
|
+
return normalizePrefix(decoded);
|
|
44
|
+
}
|
|
45
|
+
function parseEnvPathPenalties(env = process.env) {
|
|
46
|
+
const entries = [];
|
|
47
|
+
for (const [key, rawValue] of Object.entries(env)) {
|
|
48
|
+
if (!key.startsWith(ENV_PREFIX) || rawValue === undefined) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const prefix = decodeEnvKey(key);
|
|
52
|
+
const multiplier = Number.parseFloat(rawValue);
|
|
53
|
+
if (!Number.isFinite(multiplier)) {
|
|
54
|
+
throw new Error(`Invalid multiplier for ${key}: ${rawValue}`);
|
|
55
|
+
}
|
|
56
|
+
if (multiplier < 0) {
|
|
57
|
+
throw new Error(`Multiplier for ${key} must be >= 0`);
|
|
58
|
+
}
|
|
59
|
+
entries.push({ prefix, multiplier });
|
|
60
|
+
}
|
|
61
|
+
return entries;
|
|
62
|
+
}
|
|
63
|
+
function readYamlConfig(cwd) {
|
|
64
|
+
const candidates = [
|
|
65
|
+
path.join(cwd, ".kiri/config.yaml"),
|
|
66
|
+
path.join(cwd, ".kiri/config.yml"),
|
|
67
|
+
path.join(cwd, "config/kiri.yaml"),
|
|
68
|
+
path.join(cwd, "config/kiri.yml"),
|
|
69
|
+
];
|
|
70
|
+
for (const candidate of candidates) {
|
|
71
|
+
if (!fs.existsSync(candidate)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const raw = fs.readFileSync(candidate, "utf8");
|
|
75
|
+
const parsed = parse(raw);
|
|
76
|
+
const result = ConfigSchema.safeParse(parsed);
|
|
77
|
+
if (!result.success) {
|
|
78
|
+
const details = result.error.issues.map((issue) => issue.message).join(", ");
|
|
79
|
+
throw new Error(`Invalid path penalty config in ${candidate}: ${details}`);
|
|
80
|
+
}
|
|
81
|
+
const entries = result.data.path_penalties?.map((entry) => ({
|
|
82
|
+
prefix: normalizePrefix(entry.prefix),
|
|
83
|
+
multiplier: entry.multiplier,
|
|
84
|
+
})) ?? [];
|
|
85
|
+
return entries;
|
|
86
|
+
}
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
function mergePathPenalties(priorityOrdered) {
|
|
90
|
+
const merged = new Map();
|
|
91
|
+
for (const entries of priorityOrdered) {
|
|
92
|
+
for (const entry of entries) {
|
|
93
|
+
merged.set(entry.prefix, entry);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return sortByPrefixLength(Array.from(merged.values()));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Global resolver for path penalties (Issue #106)
|
|
100
|
+
* Precedence: profile < env < YAML (last definition wins)
|
|
101
|
+
*/
|
|
102
|
+
export function loadPathPenalties(basePathMultipliers = [], cwd = process.cwd()) {
|
|
103
|
+
const envEntries = Object.entries(process.env)
|
|
104
|
+
.filter(([key]) => key.startsWith(ENV_PREFIX))
|
|
105
|
+
.sort(([a], [b]) => a.localeCompare(b));
|
|
106
|
+
const cacheKey = JSON.stringify({ cwd, base: basePathMultipliers, env: envEntries });
|
|
107
|
+
const cached = penaltyCache.get(cacheKey);
|
|
108
|
+
if (cached) {
|
|
109
|
+
return cached;
|
|
110
|
+
}
|
|
111
|
+
const envPenalties = parseEnvPathPenalties();
|
|
112
|
+
const yamlPenalties = readYamlConfig(cwd);
|
|
113
|
+
const merged = mergePathPenalties([basePathMultipliers, envPenalties, yamlPenalties]);
|
|
114
|
+
penaltyCache.set(cacheKey, merged);
|
|
115
|
+
return merged;
|
|
116
|
+
}
|
|
117
|
+
/** Test helper: merge logic without disk/env side effects */
|
|
118
|
+
export function mergePathPenaltyEntries(base, env, yaml) {
|
|
119
|
+
return mergePathPenalties([base, env, yaml]);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/server/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PathMultiplier } from "./boost-profiles.js";
|
|
1
2
|
export interface ServerConfig {
|
|
2
3
|
features: {
|
|
3
4
|
suppressNonCode: boolean;
|
|
@@ -40,6 +41,7 @@ export interface ServerConfig {
|
|
|
40
41
|
pathMissDelta: number;
|
|
41
42
|
largeFileDelta: number;
|
|
42
43
|
};
|
|
44
|
+
pathPenalties: PathMultiplier[];
|
|
43
45
|
}
|
|
44
46
|
export declare function loadServerConfig(): ServerConfig;
|
|
45
47
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/server/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,eAAe,EAAE,OAAO,CAAC;QACzB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE;YACR,cAAc,EAAE,MAAM,CAAC;YACvB,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,UAAU,EAAE;YACV,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,iBAAiB,EAAE,MAAM,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/server/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,eAAe,EAAE,OAAO,CAAC;QACzB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE;YACR,cAAc,EAAE,MAAM,CAAC;YACvB,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,UAAU,EAAE;YACV,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,iBAAiB,EAAE,MAAM,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,EAAE,cAAc,EAAE,CAAC;CACjC;AAuFD,wBAAgB,gBAAgB,IAAI,YAAY,CAoF/C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
|
+
import { loadPathPenalties } from "./config-loader.js";
|
|
2
3
|
let cachedConfig = null;
|
|
3
4
|
function envFlagEnabled(value, defaultEnabled) {
|
|
4
5
|
if (value === undefined) {
|
|
@@ -68,6 +69,14 @@ function validateServerConfig(config) {
|
|
|
68
69
|
if (penalties.pathMissDelta > 0 || penalties.largeFileDelta > 0) {
|
|
69
70
|
throw new Error("Penalty deltas should be <= 0 (they reduce scores)");
|
|
70
71
|
}
|
|
72
|
+
for (const entry of config.pathPenalties) {
|
|
73
|
+
if (!entry.prefix || typeof entry.prefix !== "string") {
|
|
74
|
+
throw new Error("Path penalty prefix must be a non-empty string");
|
|
75
|
+
}
|
|
76
|
+
if (!Number.isFinite(entry.multiplier) || entry.multiplier < 0) {
|
|
77
|
+
throw new Error(`Path penalty multiplier for ${entry.prefix} must be a non-negative finite number`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
71
80
|
}
|
|
72
81
|
export function loadServerConfig() {
|
|
73
82
|
if (cachedConfig) {
|
|
@@ -82,6 +91,7 @@ export function loadServerConfig() {
|
|
|
82
91
|
const semanticEnabled = envFlagEnabled(process.env.KIRI_HINT_ENABLE_SEM, false);
|
|
83
92
|
const substringEnabled = envFlagEnabled(process.env.KIRI_HINT_ENABLE_SUBSTRING, true);
|
|
84
93
|
const hintsEnabled = directoryEnabled || dependencyEnabled || semanticEnabled;
|
|
94
|
+
const pathPenalties = loadPathPenalties();
|
|
85
95
|
const config = {
|
|
86
96
|
features: {
|
|
87
97
|
suppressNonCode,
|
|
@@ -138,6 +148,7 @@ export function loadServerConfig() {
|
|
|
138
148
|
pathMissDelta: parseEnvFloat(process.env.KIRI_PATH_MISS_DELTA, -0.5),
|
|
139
149
|
largeFileDelta: parseEnvFloat(process.env.KIRI_LARGE_FILE_DELTA, -0.8),
|
|
140
150
|
},
|
|
151
|
+
pathPenalties,
|
|
141
152
|
};
|
|
142
153
|
validateServerConfig(config);
|
|
143
154
|
cachedConfig = config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/server/config.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/server/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/server/handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EACL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/server/handlers.ts"],"names":[],"mappings":"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"}
|