pindex 1.4.0 → 1.7.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 +53 -23
- package/dist/cli/daemon.d.ts +1 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +25 -6
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/federate.d.ts +6 -0
- package/dist/cli/federate.d.ts.map +1 -0
- package/dist/cli/federate.js +121 -0
- package/dist/cli/federate.js.map +1 -0
- package/dist/cli/index.js +46 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +14 -7
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/project-detector.d.ts +16 -3
- package/dist/cli/project-detector.d.ts.map +1 -1
- package/dist/cli/project-detector.js +83 -11
- package/dist/cli/project-detector.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +3 -5
- package/dist/cli/setup.js.map +1 -1
- package/dist/db/queries.d.ts +14 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +22 -3
- package/dist/db/queries.js.map +1 -1
- package/dist/federation/merge.d.ts +4 -0
- package/dist/federation/merge.d.ts.map +1 -0
- package/dist/federation/merge.js +15 -0
- package/dist/federation/merge.js.map +1 -0
- package/dist/federation/registry-name.d.ts +6 -0
- package/dist/federation/registry-name.d.ts.map +1 -0
- package/dist/federation/registry-name.js +17 -0
- package/dist/federation/registry-name.js.map +1 -0
- package/dist/federation/repo-set.d.ts +27 -0
- package/dist/federation/repo-set.d.ts.map +1 -0
- package/dist/federation/repo-set.js +41 -0
- package/dist/federation/repo-set.js.map +1 -0
- package/dist/federation/repos-env.d.ts +16 -0
- package/dist/federation/repos-env.d.ts.map +1 -0
- package/dist/federation/repos-env.js +27 -0
- package/dist/federation/repos-env.js.map +1 -0
- package/dist/gui/server.d.ts.map +1 -1
- package/dist/gui/server.js +63 -23
- package/dist/gui/server.js.map +1 -1
- package/dist/index.js +36 -34
- package/dist/index.js.map +1 -1
- package/dist/indexer/detect-languages.d.ts +10 -0
- package/dist/indexer/detect-languages.d.ts.map +1 -0
- package/dist/indexer/detect-languages.js +36 -0
- package/dist/indexer/detect-languages.js.map +1 -0
- package/dist/indexer/index.d.ts +2 -0
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +21 -9
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/parser.d.ts.map +1 -1
- package/dist/indexer/parser.js +36 -5
- package/dist/indexer/parser.js.map +1 -1
- package/dist/indexer/summarizer.d.ts.map +1 -1
- package/dist/indexer/summarizer.js +3 -0
- package/dist/indexer/summarizer.js.map +1 -1
- package/dist/memory/retention.d.ts +16 -0
- package/dist/memory/retention.d.ts.map +1 -0
- package/dist/memory/retention.js +32 -0
- package/dist/memory/retention.js.map +1 -0
- package/dist/monitoring/server.d.ts.map +1 -1
- package/dist/monitoring/server.js +22 -1
- package/dist/monitoring/server.js.map +1 -1
- package/dist/monitoring/ui/dashboard.js +83 -31
- package/dist/monitoring/ui/esc.js +17 -0
- package/dist/monitoring/ui/index.html +17 -11
- package/dist/monitoring/ui/styles.css +24 -4
- package/dist/server-config.d.ts +18 -0
- package/dist/server-config.d.ts.map +1 -0
- package/dist/server-config.js +41 -0
- package/dist/server-config.js.map +1 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -14
- package/dist/server.js.map +1 -1
- package/dist/tools/find_usages.d.ts +2 -2
- package/dist/tools/find_usages.d.ts.map +1 -1
- package/dist/tools/find_usages.js +24 -10
- package/dist/tools/find_usages.js.map +1 -1
- package/dist/tools/get_context.d.ts +2 -2
- package/dist/tools/get_context.d.ts.map +1 -1
- package/dist/tools/get_context.js +54 -50
- package/dist/tools/get_context.js.map +1 -1
- package/dist/tools/get_dependencies.d.ts +2 -2
- package/dist/tools/get_dependencies.d.ts.map +1 -1
- package/dist/tools/get_dependencies.js +24 -11
- package/dist/tools/get_dependencies.js.map +1 -1
- package/dist/tools/get_doc_chunk.d.ts +2 -2
- package/dist/tools/get_doc_chunk.d.ts.map +1 -1
- package/dist/tools/get_doc_chunk.js +38 -29
- package/dist/tools/get_doc_chunk.js.map +1 -1
- package/dist/tools/get_file_summary.d.ts +2 -2
- package/dist/tools/get_file_summary.d.ts.map +1 -1
- package/dist/tools/get_file_summary.js +48 -37
- package/dist/tools/get_file_summary.js.map +1 -1
- package/dist/tools/get_project_overview.d.ts +2 -3
- package/dist/tools/get_project_overview.d.ts.map +1 -1
- package/dist/tools/get_project_overview.js +22 -22
- package/dist/tools/get_project_overview.js.map +1 -1
- package/dist/tools/get_symbol.d.ts +2 -2
- package/dist/tools/get_symbol.d.ts.map +1 -1
- package/dist/tools/get_symbol.js +33 -27
- package/dist/tools/get_symbol.js.map +1 -1
- package/dist/tools/schemas.d.ts +9 -0
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +20 -2
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/search_docs.d.ts +2 -2
- package/dist/tools/search_docs.d.ts.map +1 -1
- package/dist/tools/search_docs.js +40 -28
- package/dist/tools/search_docs.js.map +1 -1
- package/dist/tools/search_symbols.d.ts +2 -3
- package/dist/tools/search_symbols.d.ts.map +1 -1
- package/dist/tools/search_symbols.js +35 -46
- package/dist/tools/search_symbols.js.map +1 -1
- package/dist/types.d.ts +24 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/util/net.d.ts +25 -0
- package/dist/util/net.d.ts.map +1 -0
- package/dist/util/net.js +50 -0
- package/dist/util/net.js.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_project_overview.js","sourceRoot":"","sources":["../../src/tools/get_project_overview.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get_project_overview.js","sourceRoot":"","sources":["../../src/tools/get_project_overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type Database from 'better-sqlite3';
|
|
2
1
|
import type { GetSymbolInput, GetSymbolOutput } from '../types.js';
|
|
3
|
-
|
|
2
|
+
import type { RepoSet } from '../federation/repo-set.js';
|
|
3
|
+
export declare function getSymbol(repoSet: RepoSet, input: GetSymbolInput): GetSymbolOutput[];
|
|
4
4
|
//# sourceMappingURL=get_symbol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_symbol.d.ts","sourceRoot":"","sources":["../../src/tools/get_symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"get_symbol.d.ts","sourceRoot":"","sources":["../../src/tools/get_symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,GAAG,eAAe,EAAE,CAwCpF"}
|
package/dist/tools/get_symbol.js
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
1
|
import { getSymbolByName, getDependenciesByFile, getFileByPath, getObservationsByFileSymbol, } from '../db/queries.js';
|
|
2
|
-
export function getSymbol(
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const hasStale = observations.some((o) => o.stale === 1);
|
|
24
|
-
output.memory_context = {
|
|
25
|
-
last_seen_session: observations[0]?.session_id ?? null,
|
|
26
|
-
observations: observations.map((o) => o.observation),
|
|
27
|
-
stale: hasStale,
|
|
2
|
+
export function getSymbol(repoSet, input) {
|
|
3
|
+
const repos = repoSet.filter(input.repos);
|
|
4
|
+
const out = [];
|
|
5
|
+
for (const repo of repos) {
|
|
6
|
+
const symbol = getSymbolByName(repo.db, input.name, input.file);
|
|
7
|
+
if (!symbol)
|
|
8
|
+
continue;
|
|
9
|
+
// Get the file's import dependencies as context for this symbol
|
|
10
|
+
const file = getFileByPath(repo.db, symbol.file_path);
|
|
11
|
+
const dependencies = file ? getDependenciesByFile(repo.db, file.id) : [];
|
|
12
|
+
const detail = {
|
|
13
|
+
name: symbol.name,
|
|
14
|
+
kind: symbol.kind,
|
|
15
|
+
signature: symbol.signature,
|
|
16
|
+
summary: symbol.summary,
|
|
17
|
+
file: symbol.file_path,
|
|
18
|
+
startLine: symbol.start_line,
|
|
19
|
+
endLine: symbol.end_line,
|
|
20
|
+
isExported: symbol.is_exported === 1,
|
|
21
|
+
dependencies,
|
|
22
|
+
project: repo.name,
|
|
28
23
|
};
|
|
24
|
+
// Attach memory context if prior observations exist for this symbol
|
|
25
|
+
const observations = getObservationsByFileSymbol(repo.db, symbol.file_path, symbol.name, 3);
|
|
26
|
+
if (observations.length > 0) {
|
|
27
|
+
const hasStale = observations.some((o) => o.stale === 1);
|
|
28
|
+
detail.memory_context = {
|
|
29
|
+
last_seen_session: observations[0]?.session_id ?? null,
|
|
30
|
+
observations: observations.map((o) => o.observation),
|
|
31
|
+
stale: hasStale,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
out.push(detail);
|
|
29
35
|
}
|
|
30
|
-
return
|
|
36
|
+
return out;
|
|
31
37
|
}
|
|
32
38
|
//# sourceMappingURL=get_symbol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_symbol.js","sourceRoot":"","sources":["../../src/tools/get_symbol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get_symbol.js","sourceRoot":"","sources":["../../src/tools/get_symbol.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,KAAqB;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,gEAAgE;QAChE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzE,MAAM,MAAM,GAAoB;YAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,UAAU,EAAE,MAAM,CAAC,WAAW,KAAK,CAAC;YACpC,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC;QAEF,oEAAoE;QACpE,MAAM,YAAY,GAAG,2BAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,cAAc,GAAG;gBACtB,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI;gBACtD,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBACpD,KAAK,EAAE,QAAQ;aAChB,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/tools/schemas.d.ts
CHANGED
|
@@ -5,21 +5,26 @@ export declare const SearchSymbolsSchema: z.ZodObject<{
|
|
|
5
5
|
isAsync: z.ZodOptional<z.ZodBoolean>;
|
|
6
6
|
hasTryCatch: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
snippet: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
8
9
|
}, z.core.$strip>;
|
|
9
10
|
export declare const GetSymbolSchema: z.ZodObject<{
|
|
10
11
|
name: z.ZodString;
|
|
11
12
|
file: z.ZodOptional<z.ZodString>;
|
|
13
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
12
14
|
}, z.core.$strip>;
|
|
13
15
|
export declare const GetContextSchema: z.ZodObject<{
|
|
14
16
|
file: z.ZodString;
|
|
15
17
|
line: z.ZodNumber;
|
|
16
18
|
range: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
20
|
}, z.core.$strip>;
|
|
18
21
|
export declare const GetFileSummarySchema: z.ZodObject<{
|
|
19
22
|
file: z.ZodString;
|
|
23
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
20
24
|
}, z.core.$strip>;
|
|
21
25
|
export declare const FindUsagesSchema: z.ZodObject<{
|
|
22
26
|
symbol: z.ZodString;
|
|
27
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
28
|
}, z.core.$strip>;
|
|
24
29
|
export declare const GetDependenciesSchema: z.ZodObject<{
|
|
25
30
|
target: z.ZodString;
|
|
@@ -28,12 +33,14 @@ export declare const GetDependenciesSchema: z.ZodObject<{
|
|
|
28
33
|
imported_by: "imported_by";
|
|
29
34
|
both: "both";
|
|
30
35
|
}>>;
|
|
36
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
37
|
}, z.core.$strip>;
|
|
32
38
|
export declare const GetProjectOverviewSchema: z.ZodObject<{
|
|
33
39
|
mode: z.ZodOptional<z.ZodEnum<{
|
|
34
40
|
brief: "brief";
|
|
35
41
|
full: "full";
|
|
36
42
|
}>>;
|
|
43
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
37
44
|
}, z.core.$strip>;
|
|
38
45
|
export declare const ReindexSchema: z.ZodObject<{
|
|
39
46
|
target: z.ZodOptional<z.ZodString>;
|
|
@@ -56,10 +63,12 @@ export declare const SearchDocsSchema: z.ZodObject<{
|
|
|
56
63
|
context: "context";
|
|
57
64
|
all: "all";
|
|
58
65
|
}>>;
|
|
66
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
59
67
|
}, z.core.$strip>;
|
|
60
68
|
export declare const GetDocChunkSchema: z.ZodObject<{
|
|
61
69
|
file: z.ZodString;
|
|
62
70
|
chunk_index: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
63
72
|
}, z.core.$strip>;
|
|
64
73
|
export declare const SaveContextSchema: z.ZodObject<{
|
|
65
74
|
content: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;iBAIhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;iBAGnC,CAAC;AAEH,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAKH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAepD,CAAC"}
|
package/dist/tools/schemas.js
CHANGED
|
@@ -1,52 +1,70 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
// ─── Zod Schemas for MCP Tool Input Validation ──────────────────────────────
|
|
3
|
+
const reposField = z.array(z.string()).optional();
|
|
4
|
+
/** A project-relative path that may not be absolute or contain ".." traversal
|
|
5
|
+
* segments. Defense-in-depth on top of the runtime resolveWithinRoot guard. */
|
|
6
|
+
const safeRelPath = z
|
|
7
|
+
.string()
|
|
8
|
+
.min(1)
|
|
9
|
+
.refine((p) => !p.startsWith('/') &&
|
|
10
|
+
!/^[A-Za-z]:[\\/]/.test(p) &&
|
|
11
|
+
!p.split(/[\\/]/).includes('..'), { message: 'Path must be project-relative and contain no ".." segments' });
|
|
3
12
|
export const SearchSymbolsSchema = z.object({
|
|
4
13
|
query: z.string().min(1),
|
|
5
14
|
limit: z.number().int().positive().optional(),
|
|
6
15
|
isAsync: z.boolean().optional(),
|
|
7
16
|
hasTryCatch: z.boolean().optional(),
|
|
8
17
|
snippet: z.boolean().optional(),
|
|
18
|
+
repos: reposField,
|
|
9
19
|
});
|
|
10
20
|
export const GetSymbolSchema = z.object({
|
|
11
21
|
name: z.string().min(1),
|
|
12
22
|
file: z.string().optional(),
|
|
23
|
+
repos: reposField,
|
|
13
24
|
});
|
|
14
25
|
export const GetContextSchema = z.object({
|
|
15
26
|
file: z.string().min(1),
|
|
16
27
|
line: z.number().int().positive(),
|
|
17
28
|
range: z.number().int().positive().optional(),
|
|
29
|
+
repos: reposField,
|
|
18
30
|
});
|
|
19
31
|
export const GetFileSummarySchema = z.object({
|
|
20
32
|
file: z.string().min(1),
|
|
33
|
+
repos: reposField,
|
|
21
34
|
});
|
|
22
35
|
export const FindUsagesSchema = z.object({
|
|
23
36
|
symbol: z.string().min(1),
|
|
37
|
+
repos: reposField,
|
|
24
38
|
});
|
|
25
39
|
export const GetDependenciesSchema = z.object({
|
|
26
40
|
target: z.string().min(1),
|
|
27
41
|
direction: z.enum(['imports', 'imported_by', 'both']).optional(),
|
|
42
|
+
repos: reposField,
|
|
28
43
|
});
|
|
29
44
|
export const GetProjectOverviewSchema = z.object({
|
|
30
45
|
mode: z.enum(['brief', 'full']).optional(),
|
|
46
|
+
repos: reposField,
|
|
31
47
|
});
|
|
32
48
|
export const ReindexSchema = z.object({
|
|
33
|
-
target:
|
|
49
|
+
target: safeRelPath.optional(),
|
|
34
50
|
});
|
|
35
51
|
export const GetTokenStatsSchema = z.object({
|
|
36
52
|
session_id: z.string().optional(),
|
|
37
53
|
});
|
|
38
54
|
export const StartComparisonSchema = z.object({
|
|
39
|
-
label: z.string().min(1),
|
|
55
|
+
label: z.string().min(1).max(200),
|
|
40
56
|
mode: z.enum(['indexed', 'baseline']),
|
|
41
57
|
});
|
|
42
58
|
export const SearchDocsSchema = z.object({
|
|
43
59
|
query: z.string().min(1),
|
|
44
60
|
limit: z.number().int().positive().optional(),
|
|
45
61
|
type: z.enum(['docs', 'context', 'all']).optional(),
|
|
62
|
+
repos: reposField,
|
|
46
63
|
});
|
|
47
64
|
export const GetDocChunkSchema = z.object({
|
|
48
65
|
file: z.string().min(1),
|
|
49
66
|
chunk_index: z.number().int().nonnegative().optional(),
|
|
67
|
+
repos: reposField,
|
|
50
68
|
});
|
|
51
69
|
export const SaveContextSchema = z.object({
|
|
52
70
|
content: z.string().min(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type Database from 'better-sqlite3';
|
|
2
1
|
import type { SearchDocsInput, DocSearchResult } from '../types.js';
|
|
3
|
-
|
|
2
|
+
import type { RepoSet } from '../federation/repo-set.js';
|
|
3
|
+
export declare function searchDocs(repoSet: RepoSet, input: SearchDocsInput): DocSearchResult[];
|
|
4
4
|
//# sourceMappingURL=search_docs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_docs.d.ts","sourceRoot":"","sources":["../../src/tools/search_docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"search_docs.d.ts","sourceRoot":"","sources":["../../src/tools/search_docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAYzD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,CAkDtF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { searchDocumentsFts, searchContextEntriesFts } from '../db/queries.js';
|
|
2
|
+
import { dedupByKey } from '../federation/merge.js';
|
|
2
3
|
const PREVIEW_LENGTH = 200;
|
|
3
4
|
function preview(content) {
|
|
4
5
|
const trimmed = content.trim();
|
|
@@ -6,37 +7,48 @@ function preview(content) {
|
|
|
6
7
|
? trimmed
|
|
7
8
|
: trimmed.substring(0, PREVIEW_LENGTH) + '…';
|
|
8
9
|
}
|
|
9
|
-
export function searchDocs(
|
|
10
|
+
export function searchDocs(repoSet, input) {
|
|
10
11
|
const { query, limit = 20, type = 'all' } = input;
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
12
|
+
const repos = repoSet.filter(input.repos);
|
|
13
|
+
const all = [];
|
|
14
|
+
for (const repo of repos) {
|
|
15
|
+
try {
|
|
16
|
+
if (type === 'docs' || type === 'all') {
|
|
17
|
+
const docLimit = type === 'all' ? Math.ceil(limit * 0.7) : limit;
|
|
18
|
+
const docRows = searchDocumentsFts(repo.db, query, docLimit);
|
|
19
|
+
for (const row of docRows) {
|
|
20
|
+
all.push({
|
|
21
|
+
type: 'doc',
|
|
22
|
+
id: row.id,
|
|
23
|
+
content_preview: preview(row.content),
|
|
24
|
+
project: repo.name,
|
|
25
|
+
file: row.file_path,
|
|
26
|
+
heading: row.heading,
|
|
27
|
+
start_line: row.start_line,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (type === 'context' || type === 'all') {
|
|
32
|
+
const ctxLimit = type === 'all' ? Math.ceil(limit * 0.3) : limit;
|
|
33
|
+
const ctxRows = searchContextEntriesFts(repo.db, query, ctxLimit);
|
|
34
|
+
for (const row of ctxRows) {
|
|
35
|
+
all.push({
|
|
36
|
+
type: 'context',
|
|
37
|
+
id: row.id,
|
|
38
|
+
content_preview: preview(row.content),
|
|
39
|
+
project: repo.name,
|
|
40
|
+
tags: row.tags,
|
|
41
|
+
session_id: row.session_id,
|
|
42
|
+
created_at: row.created_at,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
24
46
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const ctxLimit = type === 'all' ? Math.ceil(limit * 0.3) : limit;
|
|
28
|
-
const ctxRows = searchContextEntriesFts(db, query, ctxLimit);
|
|
29
|
-
for (const row of ctxRows) {
|
|
30
|
-
results.push({
|
|
31
|
-
type: 'context',
|
|
32
|
-
id: row.id,
|
|
33
|
-
content_preview: preview(row.content),
|
|
34
|
-
tags: row.tags,
|
|
35
|
-
session_id: row.session_id,
|
|
36
|
-
created_at: row.created_at,
|
|
37
|
-
});
|
|
47
|
+
catch (err) {
|
|
48
|
+
process.stderr.write(`[pindex] search_docs failed for repo '${repo.name}': ${String(err)}\n`);
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
|
-
|
|
51
|
+
const deduped = dedupByKey(all, (r) => `${r.project}::${r.file ?? r.id}::${r.start_line ?? r.created_at ?? ''}`);
|
|
52
|
+
return deduped.slice(0, limit * Math.max(repos.length, 1));
|
|
41
53
|
}
|
|
42
54
|
//# sourceMappingURL=search_docs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_docs.js","sourceRoot":"","sources":["../../src/tools/search_docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search_docs.js","sourceRoot":"","sources":["../../src/tools/search_docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type Database from 'better-sqlite3';
|
|
2
1
|
import type { SearchSymbolsInput, SymbolSearchResult } from '../types.js';
|
|
3
|
-
import type {
|
|
4
|
-
export declare function searchSymbols(
|
|
2
|
+
import type { RepoSet } from '../federation/repo-set.js';
|
|
3
|
+
export declare function searchSymbols(repoSet: RepoSet, input: SearchSymbolsInput): SymbolSearchResult[];
|
|
5
4
|
//# sourceMappingURL=search_symbols.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_symbols.d.ts","sourceRoot":"","sources":["../../src/tools/search_symbols.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search_symbols.d.ts","sourceRoot":"","sources":["../../src/tools/search_symbols.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,GACxB,kBAAkB,EAAE,CA2CtB"}
|
|
@@ -1,57 +1,46 @@
|
|
|
1
1
|
import { readFileSync, existsSync } from 'node:fs';
|
|
2
|
-
import { basename } from 'node:path';
|
|
3
2
|
import { searchSymbolsFts } from '../db/queries.js';
|
|
3
|
+
import { dedupByKey } from '../federation/merge.js';
|
|
4
4
|
import { resolveWithinRoot } from '../util/paths.js';
|
|
5
|
-
export function searchSymbols(
|
|
5
|
+
export function searchSymbols(repoSet, input) {
|
|
6
6
|
const limit = input.limit ?? 20;
|
|
7
|
-
const filters = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
7
|
+
const filters = { isAsync: input.isAsync, hasTryCatch: input.hasTryCatch };
|
|
8
|
+
const repos = repoSet.filter(input.repos);
|
|
9
|
+
const all = [];
|
|
10
|
+
for (const repo of repos) {
|
|
11
|
+
try {
|
|
12
|
+
for (const row of searchSymbolsFts(repo.db, input.query, limit, filters)) {
|
|
13
|
+
const result = {
|
|
14
|
+
name: row.name,
|
|
15
|
+
kind: row.kind,
|
|
16
|
+
signature: row.signature,
|
|
17
|
+
summary: row.summary,
|
|
18
|
+
file: row.file_path,
|
|
19
|
+
line: row.start_line,
|
|
20
|
+
isAsync: row.is_async === 1,
|
|
21
|
+
hasTryCatch: row.has_try_catch === 1,
|
|
22
|
+
project: repo.name,
|
|
23
|
+
};
|
|
24
|
+
if (input.snippet && repo.path) {
|
|
25
|
+
const absPath = resolveWithinRoot(repo.path, row.file_path);
|
|
26
|
+
if (absPath && existsSync(absPath)) {
|
|
27
|
+
try {
|
|
28
|
+
const lines = readFileSync(absPath, 'utf-8').split('\n');
|
|
29
|
+
const startIdx = Math.max(0, row.start_line - 1);
|
|
30
|
+
result.snippet = lines.slice(startIdx, startIdx + 5).join('\n');
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
process.stderr.write(`[pindex] search_symbols snippet read failed for ${absPath}: ${String(err)}\n`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
32
36
|
}
|
|
37
|
+
all.push(result);
|
|
33
38
|
}
|
|
34
39
|
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
// Search primary DB
|
|
38
|
-
const primary = searchSymbolsFts(db, input.query, limit, filters).map((row) => mapRow(row, projectRoot));
|
|
39
|
-
if (federatedDbs.length === 0)
|
|
40
|
-
return primary;
|
|
41
|
-
// Search each federated DB and tag results with project name
|
|
42
|
-
const federated = federatedDbs.flatMap(({ path, db: fedDb }) => {
|
|
43
|
-
try {
|
|
44
|
-
return searchSymbolsFts(fedDb, input.query, limit, filters).map((row) => ({
|
|
45
|
-
...mapRow(row),
|
|
46
|
-
project: basename(path),
|
|
47
|
-
}));
|
|
48
|
-
}
|
|
49
40
|
catch (err) {
|
|
50
|
-
process.stderr.write(`[pindex]
|
|
51
|
-
return [];
|
|
41
|
+
process.stderr.write(`[pindex] search_symbols failed for repo '${repo.name}': ${String(err)}\n`);
|
|
52
42
|
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return [...primary, ...federated].slice(0, limit * (1 + federatedDbs.length));
|
|
43
|
+
}
|
|
44
|
+
return dedupByKey(all, (r) => `${r.project}::${r.name}::${r.kind}`).slice(0, limit * Math.max(repos.length, 1));
|
|
56
45
|
}
|
|
57
46
|
//# sourceMappingURL=search_symbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_symbols.js","sourceRoot":"","sources":["../../src/tools/search_symbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"search_symbols.js","sourceRoot":"","sources":["../../src/tools/search_symbols.ts"],"names":[],"mappings":"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"}
|