kiri-mcp-server 0.9.9 → 0.10.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 +51 -7
- package/dist/package.json +4 -1
- package/dist/src/client/proxy.js +81 -12
- package/dist/src/client/proxy.js.map +1 -1
- package/dist/src/daemon/daemon.js +91 -14
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/server/abbreviations.d.ts +47 -0
- package/dist/src/server/abbreviations.d.ts.map +1 -0
- package/dist/src/server/abbreviations.js +71 -0
- package/dist/src/server/abbreviations.js.map +1 -0
- package/dist/src/server/boost-profiles.d.ts +63 -0
- package/dist/src/server/boost-profiles.d.ts.map +1 -0
- package/dist/src/server/boost-profiles.js +86 -0
- package/dist/src/server/boost-profiles.js.map +1 -0
- package/dist/src/server/handlers.d.ts +3 -2
- package/dist/src/server/handlers.d.ts.map +1 -1
- package/dist/src/server/handlers.js +457 -94
- package/dist/src/server/handlers.js.map +1 -1
- package/dist/src/server/main.d.ts.map +1 -1
- package/dist/src/server/main.js +112 -30
- package/dist/src/server/main.js.map +1 -1
- package/dist/src/server/rpc.d.ts.map +1 -1
- package/dist/src/server/rpc.js +28 -9
- package/dist/src/server/rpc.js.map +1 -1
- package/dist/src/server/rrf.d.ts +86 -0
- package/dist/src/server/rrf.d.ts.map +1 -0
- package/dist/src/server/rrf.js +108 -0
- package/dist/src/server/rrf.js.map +1 -0
- package/dist/src/server/scoring.d.ts.map +1 -1
- package/dist/src/server/scoring.js +19 -0
- package/dist/src/server/scoring.js.map +1 -1
- package/dist/src/shared/cli/args.d.ts +70 -0
- package/dist/src/shared/cli/args.d.ts.map +1 -0
- package/dist/src/shared/cli/args.js +84 -0
- package/dist/src/shared/cli/args.js.map +1 -0
- package/dist/src/shared/embedding/engine.d.ts +38 -0
- package/dist/src/shared/embedding/engine.d.ts.map +1 -0
- package/dist/src/shared/embedding/engine.js +6 -0
- package/dist/src/shared/embedding/engine.js.map +1 -0
- package/dist/src/shared/embedding/lsh-engine.d.ts +11 -0
- package/dist/src/shared/embedding/lsh-engine.d.ts.map +1 -0
- package/dist/src/shared/embedding/lsh-engine.js +14 -0
- package/dist/src/shared/embedding/lsh-engine.js.map +1 -0
- package/dist/src/shared/embedding/registry.d.ts +25 -0
- package/dist/src/shared/embedding/registry.d.ts.map +1 -0
- package/dist/src/shared/embedding/registry.js +50 -0
- package/dist/src/shared/embedding/registry.js.map +1 -0
- package/dist/src/shared/embedding/semantic-engine.d.ts +14 -0
- package/dist/src/shared/embedding/semantic-engine.d.ts.map +1 -0
- package/dist/src/shared/embedding/semantic-engine.js +50 -0
- package/dist/src/shared/embedding/semantic-engine.js.map +1 -0
- package/dist/src/shared/models/model-manager.d.ts +38 -0
- package/dist/src/shared/models/model-manager.d.ts.map +1 -0
- package/dist/src/shared/models/model-manager.js +116 -0
- package/dist/src/shared/models/model-manager.js.map +1 -0
- package/dist/src/shared/models/model-manifest.d.ts +22 -0
- package/dist/src/shared/models/model-manifest.d.ts.map +1 -0
- package/dist/src/shared/models/model-manifest.js +24 -0
- package/dist/src/shared/models/model-manifest.js.map +1 -0
- package/dist/src/shared/utils/validation.d.ts +14 -0
- package/dist/src/shared/utils/validation.d.ts.map +1 -0
- package/dist/src/shared/utils/validation.js +22 -0
- package/dist/src/shared/utils/validation.js.map +1 -0
- package/package.json +4 -1
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/)
|
|
@@ -223,12 +223,12 @@ Tip: Avoid leading command words like `find` or `show`; instead list concrete mo
|
|
|
223
223
|
|
|
224
224
|
**Parameters:**
|
|
225
225
|
|
|
226
|
-
| Parameter | Type | Required | Description
|
|
227
|
-
| --------------- | ------- | -------- |
|
|
228
|
-
| `goal` | string | Yes | Task description or question about the code
|
|
229
|
-
| `limit` | number | No | Max snippets to return (default: 12, max: 20)
|
|
230
|
-
| `compact` | boolean | No | Return only metadata without preview (default: **true** in v0.8.0+, false in v0.7)
|
|
231
|
-
| `boost_profile` | string | No | File type boosting: `"default"` (prioritizes src/, blacklists docs/), `"docs"`
|
|
226
|
+
| Parameter | Type | Required | Description |
|
|
227
|
+
| --------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
228
|
+
| `goal` | string | Yes | Task description or question about the code |
|
|
229
|
+
| `limit` | number | No | Max snippets to return (default: 12, max: 20) |
|
|
230
|
+
| `compact` | boolean | No | Return only metadata without preview (default: **true** in v0.8.0+, false in v0.7) |
|
|
231
|
+
| `boost_profile` | string | No | File type boosting: `"default"` (prioritizes src/, blacklists docs/), `"docs"` (prioritizes .md/.yaml, includes docs/ directory), `"balanced"` (equal weight for docs and impl, NEW in v0.9.10), `"none"` (no boosting) |
|
|
232
232
|
|
|
233
233
|
### 2. files_search
|
|
234
234
|
|
|
@@ -507,7 +507,17 @@ const db = await DuckDBClient.connect({
|
|
|
507
507
|
Control search ranking behavior with the `boost_profile` parameter:
|
|
508
508
|
|
|
509
509
|
- **`"default"`** (default): Prioritizes implementation files (`src/*.ts`) over documentation
|
|
510
|
+
- Implementation files get 30% boost, documentation files get 50% penalty
|
|
511
|
+
- Config files heavily penalized (95% reduction)
|
|
512
|
+
- `docs/` directory is blacklisted
|
|
510
513
|
- **`"docs"`**: Prioritizes documentation files (`*.md`) over implementation
|
|
514
|
+
- Documentation files get 50% boost, implementation files get 50% penalty
|
|
515
|
+
- `docs/` directory is included in search results
|
|
516
|
+
- **`"balanced"`** (NEW in v0.9.10): Equal weight for docs and implementation
|
|
517
|
+
- Both documentation and implementation files: no penalty/boost (1.0x)
|
|
518
|
+
- Config files: relaxed penalty (0.3x, compared to 0.05x in default)
|
|
519
|
+
- `docs/` directory is included in search results
|
|
520
|
+
- No path-specific multipliers (treats all `src/` equally)
|
|
511
521
|
- **`"none"`**: Pure BM25 scoring without file type adjustments
|
|
512
522
|
|
|
513
523
|
```typescript
|
|
@@ -517,6 +527,9 @@ files_search({ query: "authentication", boost_profile: "default" });
|
|
|
517
527
|
// Find documentation
|
|
518
528
|
files_search({ query: "setup guide", boost_profile: "docs" });
|
|
519
529
|
|
|
530
|
+
// Balanced search (docs and code equally weighted)
|
|
531
|
+
files_search({ query: "authentication design", boost_profile: "balanced" });
|
|
532
|
+
|
|
520
533
|
// Pure BM25 ranking without boosting
|
|
521
534
|
files_search({ query: "API", boost_profile: "none" });
|
|
522
535
|
```
|
|
@@ -744,6 +757,37 @@ See [docs/architecture.md](docs/architecture.md) for detailed technical informat
|
|
|
744
757
|
| **Precision @ 10** | ≥ 0.7 | ✅ 0.75 |
|
|
745
758
|
| **Token Reduction (compact)** | ≥ 90% | ✅ 95% (v0.8) |
|
|
746
759
|
|
|
760
|
+
### Evaluation & Quality Assurance
|
|
761
|
+
|
|
762
|
+
KIRI includes a **Golden Set Evaluation System** for tracking search accuracy over time using representative queries.
|
|
763
|
+
|
|
764
|
+
**Metrics:**
|
|
765
|
+
|
|
766
|
+
- **P@10** (Precision at K=10): Fraction of relevant results in top 10 (target: ≥0.70)
|
|
767
|
+
- **TFFU** (Time To First Useful): Time until first relevant result appears (target: ≤1000ms)
|
|
768
|
+
|
|
769
|
+
**For Developers:**
|
|
770
|
+
|
|
771
|
+
```bash
|
|
772
|
+
# Run benchmark evaluation (local only)
|
|
773
|
+
pnpm run eval:golden
|
|
774
|
+
|
|
775
|
+
# Verbose output
|
|
776
|
+
pnpm run eval:golden:verbose
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
The benchmark system evaluates 5+ representative queries across categories (bugfix, feature, refactor, infra, docs) and outputs:
|
|
780
|
+
|
|
781
|
+
- JSON: Detailed per-query results (`var/eval/latest.json`)
|
|
782
|
+
- Markdown: Summary table (`var/eval/latest.md`)
|
|
783
|
+
|
|
784
|
+
**Documentation:**
|
|
785
|
+
|
|
786
|
+
- [Golden Set Guide](tests/eval/goldens/README.md) - Query format, categories, adding queries
|
|
787
|
+
- [Results Recording](tests/eval/results/README.md) - Tracking improvements over time
|
|
788
|
+
|
|
789
|
+
See [docs/testing.md](docs/testing.md) for complete testing and evaluation guidelines.
|
|
790
|
+
|
|
747
791
|
### Community
|
|
748
792
|
|
|
749
793
|
- [GitHub Issues](https://github.com/CAPHTECH/kiri/issues) - Bug reports and feature requests
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kiri-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "KIRI context extraction platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@9.0.0",
|
|
@@ -63,6 +63,8 @@
|
|
|
63
63
|
"verify:tools": "tsx scripts/test/verify-all.ts --category tools",
|
|
64
64
|
"verify:watch": "tsx scripts/test/verify-all.ts --category watch",
|
|
65
65
|
"verify:eval": "tsx scripts/test/verify-all.ts --category eval",
|
|
66
|
+
"eval:golden": "tsx scripts/eval/run-golden.ts",
|
|
67
|
+
"eval:golden:verbose": "tsx scripts/eval/run-golden.ts --verbose",
|
|
66
68
|
"check": "pnpm run lint && pnpm run test",
|
|
67
69
|
"prepublishOnly": "pnpm run build"
|
|
68
70
|
},
|
|
@@ -88,6 +90,7 @@
|
|
|
88
90
|
"eslint-config-prettier": "^9.1.0",
|
|
89
91
|
"eslint-plugin-import": "^2.29.1",
|
|
90
92
|
"execa": "^9.6.0",
|
|
93
|
+
"fast-check": "^4.3.0",
|
|
91
94
|
"lint-staged": "^15.2.10",
|
|
92
95
|
"prettier": "^3.3.3",
|
|
93
96
|
"simple-git-hooks": "^2.10.0",
|
package/dist/src/client/proxy.js
CHANGED
|
@@ -8,25 +8,94 @@
|
|
|
8
8
|
import * as net from "net";
|
|
9
9
|
import * as path from "path";
|
|
10
10
|
import * as readline from "readline";
|
|
11
|
-
import { parseArgs } from "util";
|
|
12
11
|
import packageJson from "../../package.json" with { type: "json" };
|
|
12
|
+
import { defineCli } from "../shared/cli/args.js";
|
|
13
13
|
import { getSocketPath } from "../shared/utils/socket.js";
|
|
14
14
|
import { startDaemon, isDaemonRunning, stopDaemon } from "./start-daemon.js";
|
|
15
|
+
/**
|
|
16
|
+
* CLI specification for kiri proxy
|
|
17
|
+
*/
|
|
18
|
+
const PROXY_CLI_SPEC = {
|
|
19
|
+
commandName: "kiri",
|
|
20
|
+
description: "KIRI MCP Client Proxy - Bridges stdio (MCP client) ↔ Unix socket (daemon)",
|
|
21
|
+
version: packageJson.version,
|
|
22
|
+
usage: "kiri [options]",
|
|
23
|
+
sections: [
|
|
24
|
+
{
|
|
25
|
+
title: "Repository / Database",
|
|
26
|
+
options: [
|
|
27
|
+
{
|
|
28
|
+
flag: "repo",
|
|
29
|
+
type: "string",
|
|
30
|
+
description: "Repository root path",
|
|
31
|
+
placeholder: "<path>",
|
|
32
|
+
default: ".",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
flag: "db",
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Database file path (default: var/index.duckdb relative to --repo)",
|
|
38
|
+
placeholder: "<path>",
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
title: "Daemon Connection",
|
|
44
|
+
options: [
|
|
45
|
+
{
|
|
46
|
+
flag: "socket-path",
|
|
47
|
+
type: "string",
|
|
48
|
+
description: "Unix socket path for daemon connection",
|
|
49
|
+
placeholder: "<path>",
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
title: "Watch Mode",
|
|
55
|
+
options: [
|
|
56
|
+
{
|
|
57
|
+
flag: "watch",
|
|
58
|
+
type: "boolean",
|
|
59
|
+
description: "Enable watch mode for automatic re-indexing",
|
|
60
|
+
default: false,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
title: "Security",
|
|
66
|
+
options: [
|
|
67
|
+
{
|
|
68
|
+
flag: "allow-degrade",
|
|
69
|
+
type: "boolean",
|
|
70
|
+
description: "Allow degraded mode without VSS/FTS extensions",
|
|
71
|
+
default: false,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
flag: "security-config",
|
|
75
|
+
type: "string",
|
|
76
|
+
description: "Security configuration file path",
|
|
77
|
+
placeholder: "<path>",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
flag: "security-lock",
|
|
81
|
+
type: "string",
|
|
82
|
+
description: "Security lock file path",
|
|
83
|
+
placeholder: "<path>",
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
examples: [
|
|
89
|
+
"kiri --repo /path/to/repo --db /path/to/index.duckdb",
|
|
90
|
+
"kiri --watch --allow-degrade",
|
|
91
|
+
"kiri --security-config config/security.yaml",
|
|
92
|
+
],
|
|
93
|
+
};
|
|
15
94
|
/**
|
|
16
95
|
* CLI引数をパース
|
|
17
96
|
*/
|
|
18
97
|
function parseProxyArgs() {
|
|
19
|
-
const { values } =
|
|
20
|
-
options: {
|
|
21
|
-
repo: { type: "string" },
|
|
22
|
-
db: { type: "string" },
|
|
23
|
-
"socket-path": { type: "string" },
|
|
24
|
-
watch: { type: "boolean", default: false },
|
|
25
|
-
"allow-degrade": { type: "boolean", default: false },
|
|
26
|
-
"security-config": { type: "string" },
|
|
27
|
-
"security-lock": { type: "string" },
|
|
28
|
-
},
|
|
29
|
-
});
|
|
98
|
+
const { values } = defineCli(PROXY_CLI_SPEC);
|
|
30
99
|
const repoRoot = path.resolve(values.repo || process.cwd());
|
|
31
100
|
const databasePath = path.resolve(values.db || path.join(repoRoot, "var", "index.duckdb"));
|
|
32
101
|
const socketPath = values["socket-path"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/client/proxy.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/client/proxy.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,SAAS,EAAgB,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB7E;;GAEG;AACH,MAAM,cAAc,GAAY;IAC9B,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,2EAA2E;IACxF,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;oBACnC,WAAW,EAAE,QAAQ;oBACrB,OAAO,EAAE,GAAG;iBACb;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mEAAmE;oBAChF,WAAW,EAAE,QAAQ;iBACtB;aACF;SACF;QACD;YACE,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;oBACrD,WAAW,EAAE,QAAQ;iBACtB;aACF;SACF;QACD;YACE,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,6CAA6C;oBAC1D,OAAO,EAAE,KAAK;iBACf;aACF;SACF;QACD;YACE,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,gDAAgD;oBAC7D,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,WAAW,EAAE,QAAQ;iBACtB;gBACD;oBACE,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;oBACtC,WAAW,EAAE,QAAQ;iBACtB;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR,sDAAsD;QACtD,8BAA8B;QAC9B,6CAA6C;KAC9C;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAE,MAAM,CAAC,IAA2B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAC9B,MAAM,CAAC,EAAyB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAChF,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;QAC/C,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,SAAS,EAAG,MAAM,CAAC,KAAiB,IAAI,KAAK;QAC7C,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,IAAI;QAClB,YAAY,EAAG,MAAM,CAAC,eAAe,CAAa,IAAI,KAAK;QAC3D,kBAAkB,EAAE,MAAM,CAAC,iBAAiB,CAAuB;QACnE,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAuB;KAChE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAkB;IAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7C,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,2BAA2B;QAC3B,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,MAAM;SACf,CAAC;QAEF,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;YACnC,IAAI,gBAAgB;gBAAE,OAAO;YAE7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,QAAQ,CAAC,EAAE,KAAK,eAAe,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACvD,gBAAgB,GAAG,IAAI,CAAC;oBACxB,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBAE3C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,SAAS,CAAC;oBACvE,MAAM,aAAa,GACjB,OAAO,WAAW,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;oBAE3E,uBAAuB;oBACvB,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxE,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAExE,IAAI,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;wBAC1C,MAAM,CACJ,IAAI,KAAK,CACP,4BAA4B,aAAa,gCAAgC,aAAa,kDAAkD,CACzI,CACF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CACX,wCAAwC,aAAa,YAAY,aAAa,EAAE,CACjF,CAAC;wBACF,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,6DAA6D;YAC/D,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,UAAkB,EAClB,YAAoB;IAEpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEvC,UAAU;YACV,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,8BAA8B,OAAO,IAAI,UAAU,YAAa,GAAa,CAAC,OAAO,EAAE,CACxF,CAAC;YAEF,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,gCAAiC,GAAa,CAAC,OAAO,EAAE,CACxG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,iBAAiB;IACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC5C,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACpB,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,CAAC;QACH,gBAAgB;QAChB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAEhE,UAAU;YACV,MAAM,WAAW,CAAC;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACvD,CAAC;QAED,UAAU;QACV,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,YAAY,CACrB,CAAC;QAEF,gBAAgB;QAChB,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,YAAqB,CAAC;YACzC,0BAA0B;YAC1B,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;gBAEjF,MAAM,CAAC,OAAO,EAAE,CAAC;gBAEjB,YAAY;gBACZ,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEvC,oBAAoB;gBACpB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAE1D,aAAa;gBACb,MAAM,WAAW,CAAC;oBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;oBAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;iBAC3C,CAAC,CAAC;gBAEH,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBAExE,UAAU;gBACV,MAAM,SAAS,GAAG,MAAM,eAAe,CACrC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,YAAY,CACrB,CAAC;gBAEF,cAAc;gBACd,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAEpC,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAEzE,yBAAyB;gBACzB,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,YAAY,CAAC;QACrB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAEzE,yBAAyB;QACzB,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAAY,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,YAAY,aAAa,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,YAAY;AACZ,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -6,29 +6,106 @@
|
|
|
6
6
|
* Manages DuckDB connection, watch mode, and graceful lifecycle.
|
|
7
7
|
*/
|
|
8
8
|
import * as path from "path";
|
|
9
|
-
import
|
|
9
|
+
import packageJson from "../../package.json" with { type: "json" };
|
|
10
10
|
import { ensureDatabaseIndexed } from "../server/indexBootstrap.js";
|
|
11
11
|
import { createRpcHandler } from "../server/rpc.js";
|
|
12
12
|
import { createServerRuntime } from "../server/runtime.js";
|
|
13
|
+
import { defineCli } from "../shared/cli/args.js";
|
|
13
14
|
import { getSocketPath } from "../shared/utils/socket.js";
|
|
15
|
+
import { parsePositiveInt } from "../shared/utils/validation.js";
|
|
14
16
|
import { DaemonLifecycle } from "./lifecycle.js";
|
|
15
17
|
import { createSocketServer } from "./socket.js";
|
|
18
|
+
/**
|
|
19
|
+
* CLI specification for kiri-daemon
|
|
20
|
+
*/
|
|
21
|
+
const DAEMON_CLI_SPEC = {
|
|
22
|
+
commandName: "kiri-daemon",
|
|
23
|
+
description: "KIRI Daemon Process - Manages DuckDB connection and handles client requests",
|
|
24
|
+
version: packageJson.version,
|
|
25
|
+
usage: "kiri-daemon [options]",
|
|
26
|
+
sections: [
|
|
27
|
+
{
|
|
28
|
+
title: "Repository / Database",
|
|
29
|
+
options: [
|
|
30
|
+
{
|
|
31
|
+
flag: "repo",
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Repository root path",
|
|
34
|
+
placeholder: "<path>",
|
|
35
|
+
default: ".",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
flag: "db",
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Database file path (default: var/index.duckdb relative to --repo)",
|
|
41
|
+
placeholder: "<path>",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
title: "Daemon Lifecycle",
|
|
47
|
+
options: [
|
|
48
|
+
{
|
|
49
|
+
flag: "socket-path",
|
|
50
|
+
type: "string",
|
|
51
|
+
description: "Unix socket path for daemon connection",
|
|
52
|
+
placeholder: "<path>",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
flag: "daemon-timeout",
|
|
56
|
+
type: "string",
|
|
57
|
+
description: "Idle timeout in minutes before daemon auto-shutdown",
|
|
58
|
+
placeholder: "<minutes>",
|
|
59
|
+
default: "5",
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
title: "Watch Mode",
|
|
65
|
+
options: [
|
|
66
|
+
{
|
|
67
|
+
flag: "watch",
|
|
68
|
+
type: "boolean",
|
|
69
|
+
description: "Enable watch mode for automatic re-indexing",
|
|
70
|
+
default: false,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
title: "Security",
|
|
76
|
+
options: [
|
|
77
|
+
{
|
|
78
|
+
flag: "allow-degrade",
|
|
79
|
+
type: "boolean",
|
|
80
|
+
description: "Allow degraded mode without VSS/FTS extensions",
|
|
81
|
+
default: false,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
flag: "security-config",
|
|
85
|
+
type: "string",
|
|
86
|
+
description: "Security configuration file path",
|
|
87
|
+
placeholder: "<path>",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
flag: "security-lock",
|
|
91
|
+
type: "string",
|
|
92
|
+
description: "Security lock file path",
|
|
93
|
+
placeholder: "<path>",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
examples: [
|
|
99
|
+
"kiri-daemon --repo /path/to/repo --db /path/to/index.duckdb",
|
|
100
|
+
"kiri-daemon --watch --daemon-timeout 10",
|
|
101
|
+
"kiri-daemon --socket-path /tmp/kiri.sock",
|
|
102
|
+
],
|
|
103
|
+
};
|
|
16
104
|
/**
|
|
17
105
|
* CLI引数をパース
|
|
18
106
|
*/
|
|
19
107
|
function parseDaemonArgs() {
|
|
20
|
-
const { values } =
|
|
21
|
-
options: {
|
|
22
|
-
repo: { type: "string" },
|
|
23
|
-
db: { type: "string" },
|
|
24
|
-
"socket-path": { type: "string" },
|
|
25
|
-
watch: { type: "boolean", default: false },
|
|
26
|
-
"daemon-timeout": { type: "string", default: "5" },
|
|
27
|
-
"allow-degrade": { type: "boolean", default: false },
|
|
28
|
-
"security-config": { type: "string" },
|
|
29
|
-
"security-lock": { type: "string" },
|
|
30
|
-
},
|
|
31
|
-
});
|
|
108
|
+
const { values } = defineCli(DAEMON_CLI_SPEC);
|
|
32
109
|
const repoRoot = path.resolve(values.repo || process.cwd());
|
|
33
110
|
const databasePath = path.resolve(values.db || path.join(repoRoot, "var", "index.duckdb"));
|
|
34
111
|
const socketPath = values["socket-path"]
|
|
@@ -39,7 +116,7 @@ function parseDaemonArgs() {
|
|
|
39
116
|
databasePath,
|
|
40
117
|
socketPath,
|
|
41
118
|
watchMode: values.watch || false,
|
|
42
|
-
idleTimeoutMinutes:
|
|
119
|
+
idleTimeoutMinutes: parsePositiveInt(values["daemon-timeout"], 5, "daemon timeout (minutes)"),
|
|
43
120
|
allowDegrade: values["allow-degrade"] || false,
|
|
44
121
|
securityConfigPath: values["security-config"],
|
|
45
122
|
securityLockPath: values["security-lock"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/daemon/daemon.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abbreviation expansion for path matching (ADR 003)
|
|
3
|
+
*
|
|
4
|
+
* Bridges the vocabulary gap between natural language queries and technical path names.
|
|
5
|
+
* Example: "database" → ["database", "db", "data"]
|
|
6
|
+
*
|
|
7
|
+
* LDE principles:
|
|
8
|
+
* - Pure functions (no side effects)
|
|
9
|
+
* - Readonly types (immutability)
|
|
10
|
+
* - Property-based testing
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Abbreviation mapping (LDE: readonly, immutable)
|
|
14
|
+
*/
|
|
15
|
+
export interface AbbreviationMap {
|
|
16
|
+
readonly canonical: string;
|
|
17
|
+
readonly variants: readonly string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Default abbreviation dictionary
|
|
21
|
+
*
|
|
22
|
+
* Maintenance: Add new entries as needed, alphabetically sorted by canonical
|
|
23
|
+
* Conflicts: Use most common meaning (e.g., "db" → "database" not "debug")
|
|
24
|
+
*/
|
|
25
|
+
export declare const DEFAULT_ABBREVIATIONS: readonly AbbreviationMap[];
|
|
26
|
+
/**
|
|
27
|
+
* Expand term with common abbreviations (LDE: pure function)
|
|
28
|
+
*
|
|
29
|
+
* Matches term (case-insensitive) against abbreviation dictionary and returns
|
|
30
|
+
* all related forms (canonical + variants).
|
|
31
|
+
*
|
|
32
|
+
* @param term - Query term to expand (e.g., "db", "database", "config")
|
|
33
|
+
* @param abbreviations - Abbreviation dictionary (default: DEFAULT_ABBREVIATIONS)
|
|
34
|
+
* @returns Readonly array of expanded terms including canonical and all variants
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* expandAbbreviations("db") → ["database", "db", "data"]
|
|
38
|
+
* expandAbbreviations("config") → ["configuration", "config", "cfg", "conf"]
|
|
39
|
+
* expandAbbreviations("unknown") → ["unknown"]
|
|
40
|
+
*
|
|
41
|
+
* LDE properties:
|
|
42
|
+
* - Pure: Same input always produces same output
|
|
43
|
+
* - No side effects: Doesn't modify input or global state
|
|
44
|
+
* - Immutable: Returns readonly array
|
|
45
|
+
*/
|
|
46
|
+
export declare function expandAbbreviations(term: string, abbreviations?: readonly AbbreviationMap[]): readonly string[];
|
|
47
|
+
//# sourceMappingURL=abbreviations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abbreviations.d.ts","sourceRoot":"","sources":["../../../src/server/abbreviations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,eAAe,EAqB3D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,SAAS,eAAe,EAA0B,GAChE,SAAS,MAAM,EAAE,CAenB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abbreviation expansion for path matching (ADR 003)
|
|
3
|
+
*
|
|
4
|
+
* Bridges the vocabulary gap between natural language queries and technical path names.
|
|
5
|
+
* Example: "database" → ["database", "db", "data"]
|
|
6
|
+
*
|
|
7
|
+
* LDE principles:
|
|
8
|
+
* - Pure functions (no side effects)
|
|
9
|
+
* - Readonly types (immutability)
|
|
10
|
+
* - Property-based testing
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Default abbreviation dictionary
|
|
14
|
+
*
|
|
15
|
+
* Maintenance: Add new entries as needed, alphabetically sorted by canonical
|
|
16
|
+
* Conflicts: Use most common meaning (e.g., "db" → "database" not "debug")
|
|
17
|
+
*/
|
|
18
|
+
export const DEFAULT_ABBREVIATIONS = [
|
|
19
|
+
{ canonical: "administrator", variants: ["admin"] },
|
|
20
|
+
{ canonical: "application", variants: ["app"] },
|
|
21
|
+
{ canonical: "authentication", variants: ["auth"] },
|
|
22
|
+
{ canonical: "authorization", variants: ["authz"] },
|
|
23
|
+
{ canonical: "configuration", variants: ["config", "cfg", "conf"] },
|
|
24
|
+
{ canonical: "controller", variants: ["ctrl"] },
|
|
25
|
+
{ canonical: "database", variants: ["db", "data"] },
|
|
26
|
+
{ canonical: "development", variants: ["dev"] },
|
|
27
|
+
{ canonical: "directory", variants: ["dir"] },
|
|
28
|
+
{ canonical: "document", variants: ["doc", "docs"] },
|
|
29
|
+
{ canonical: "error", variants: ["err", "errors"] },
|
|
30
|
+
{ canonical: "implementation", variants: ["impl"] },
|
|
31
|
+
{ canonical: "manager", variants: ["mgr"] },
|
|
32
|
+
{ canonical: "production", variants: ["prod"] },
|
|
33
|
+
{ canonical: "repository", variants: ["repo"] },
|
|
34
|
+
{ canonical: "service", variants: ["svc", "srv"] },
|
|
35
|
+
{ canonical: "source", variants: ["src"] },
|
|
36
|
+
{ canonical: "specification", variants: ["spec", "specs"] },
|
|
37
|
+
{ canonical: "temporary", variants: ["tmp", "temp"] },
|
|
38
|
+
{ canonical: "utilities", variants: ["util", "utils"] },
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* Expand term with common abbreviations (LDE: pure function)
|
|
42
|
+
*
|
|
43
|
+
* Matches term (case-insensitive) against abbreviation dictionary and returns
|
|
44
|
+
* all related forms (canonical + variants).
|
|
45
|
+
*
|
|
46
|
+
* @param term - Query term to expand (e.g., "db", "database", "config")
|
|
47
|
+
* @param abbreviations - Abbreviation dictionary (default: DEFAULT_ABBREVIATIONS)
|
|
48
|
+
* @returns Readonly array of expanded terms including canonical and all variants
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* expandAbbreviations("db") → ["database", "db", "data"]
|
|
52
|
+
* expandAbbreviations("config") → ["configuration", "config", "cfg", "conf"]
|
|
53
|
+
* expandAbbreviations("unknown") → ["unknown"]
|
|
54
|
+
*
|
|
55
|
+
* LDE properties:
|
|
56
|
+
* - Pure: Same input always produces same output
|
|
57
|
+
* - No side effects: Doesn't modify input or global state
|
|
58
|
+
* - Immutable: Returns readonly array
|
|
59
|
+
*/
|
|
60
|
+
export function expandAbbreviations(term, abbreviations = DEFAULT_ABBREVIATIONS) {
|
|
61
|
+
const normalized = term.toLowerCase().trim();
|
|
62
|
+
// Find matching abbreviation map (check both canonical and variants)
|
|
63
|
+
const map = abbreviations.find((m) => m.canonical === normalized || m.variants.includes(normalized));
|
|
64
|
+
if (map) {
|
|
65
|
+
// Return all forms: canonical + variants
|
|
66
|
+
return [map.canonical, ...map.variants];
|
|
67
|
+
}
|
|
68
|
+
// No match: return original term
|
|
69
|
+
return [term];
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=abbreviations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abbreviations.js","sourceRoot":"","sources":["../../../src/server/abbreviations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA+B;IAC/D,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;IACnD,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IAC/C,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;IACnD,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;IACnD,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;IACnE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;IAC/C,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;IACnD,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IAC/C,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IAC7C,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;IACpD,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;IACnD,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;IACnD,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IAC3C,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;IAC/C,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;IAC/C,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;IAClD,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IAC1C,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAC3D,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;IACrD,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;CACxD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,gBAA4C,qBAAqB;IAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7C,qEAAqE;IACrE,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACrE,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,yCAAyC;QACzC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boost Profile Configurations
|
|
3
|
+
*
|
|
4
|
+
* This module provides centralized configuration for boost_profile options.
|
|
5
|
+
* Each profile defines how different file types should be ranked in search results.
|
|
6
|
+
*
|
|
7
|
+
* Profiles:
|
|
8
|
+
* - default: Prioritizes implementation files over documentation
|
|
9
|
+
* - docs: Prioritizes documentation over implementation
|
|
10
|
+
* - balanced: Equal weight for both docs and implementation
|
|
11
|
+
* - none: No file type boosting (pure keyword scoring)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Boost profile configuration
|
|
15
|
+
* Defines how different file types should be ranked
|
|
16
|
+
*/
|
|
17
|
+
export interface BoostProfileConfig {
|
|
18
|
+
/**
|
|
19
|
+
* Directories to allow even if they match global denylist patterns.
|
|
20
|
+
* Example: ["docs/"] allows docs/ files despite being blacklisted by default.
|
|
21
|
+
* This overrides the global blacklist in applyFileTypeBoost/applyAdditiveFilePenalties.
|
|
22
|
+
*/
|
|
23
|
+
denylistOverrides: string[];
|
|
24
|
+
/** Multiplicative factors for different file types */
|
|
25
|
+
fileTypeMultipliers: {
|
|
26
|
+
/** Documentation files (.md, .yaml, .yml, .mdc) */
|
|
27
|
+
doc: number;
|
|
28
|
+
/** Implementation files (src/**) */
|
|
29
|
+
impl: number;
|
|
30
|
+
/** Configuration files (tsconfig.json, package.json, etc.) */
|
|
31
|
+
config: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Path-specific multipliers (e.g., src/app/ gets higher boost than src/)
|
|
35
|
+
* Array is sorted by prefix length (longest first) to ensure correct matching priority
|
|
36
|
+
*/
|
|
37
|
+
pathMultipliers: Array<{
|
|
38
|
+
prefix: string;
|
|
39
|
+
multiplier: number;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Skip additive penalty for config files (-1.5 score penalty)
|
|
43
|
+
* and only apply multiplicative penalty (e.g., 0.3x multiplier)
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
skipConfigAdditivePenalty?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export type BoostProfileName = "default" | "docs" | "none" | "balanced";
|
|
49
|
+
/**
|
|
50
|
+
* Boost profile definitions
|
|
51
|
+
* Centralized configuration for all boost profiles
|
|
52
|
+
*/
|
|
53
|
+
export declare const BOOST_PROFILES: Record<BoostProfileName, BoostProfileConfig>;
|
|
54
|
+
/**
|
|
55
|
+
* Get boost profile configuration by name
|
|
56
|
+
* @throws Error if profile name is invalid
|
|
57
|
+
*/
|
|
58
|
+
export declare function getBoostProfile(name: BoostProfileName): BoostProfileConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Check if a profile name is valid
|
|
61
|
+
*/
|
|
62
|
+
export declare function isValidBoostProfile(name: string): name is BoostProfileName;
|
|
63
|
+
//# sourceMappingURL=boost-profiles.d.ts.map
|
|
@@ -0,0 +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,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/D;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAqDvE,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"}
|