@untangle-code/search 0.0.0-stage → 0.1.1
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/LICENSE +661 -0
- package/NOTICE +90 -0
- package/README.md +433 -2
- package/THIRD_PARTY_LICENSES.md +29 -0
- package/dist/benchmark-integrity.d.ts +12 -0
- package/dist/benchmark-integrity.d.ts.map +1 -0
- package/dist/benchmark-integrity.js +10 -0
- package/dist/benchmark-integrity.js.map +1 -0
- package/dist/bm25.d.ts +46 -0
- package/dist/bm25.d.ts.map +1 -0
- package/dist/bm25.js +105 -0
- package/dist/bm25.js.map +1 -0
- package/dist/deadline.d.ts +4 -0
- package/dist/deadline.d.ts.map +1 -0
- package/dist/deadline.js +54 -0
- package/dist/deadline.js.map +1 -0
- package/dist/dedupe.d.ts +48 -0
- package/dist/dedupe.d.ts.map +1 -0
- package/dist/dedupe.js +58 -0
- package/dist/dedupe.js.map +1 -0
- package/dist/diversify.d.ts +45 -0
- package/dist/diversify.d.ts.map +1 -0
- package/dist/diversify.js +30 -0
- package/dist/diversify.js.map +1 -0
- package/dist/engine.d.ts +157 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1498 -0
- package/dist/engine.js.map +1 -0
- package/dist/enrichment.d.ts +16 -0
- package/dist/enrichment.d.ts.map +1 -0
- package/dist/enrichment.js +92 -0
- package/dist/enrichment.js.map +1 -0
- package/dist/filter.d.ts +86 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +166 -0
- package/dist/filter.js.map +1 -0
- package/dist/findability.d.ts +144 -0
- package/dist/findability.d.ts.map +1 -0
- package/dist/findability.js +393 -0
- package/dist/findability.js.map +1 -0
- package/dist/format.d.ts +28 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +172 -0
- package/dist/format.js.map +1 -0
- package/dist/fusion.d.ts +47 -0
- package/dist/fusion.d.ts.map +1 -0
- package/dist/fusion.js +84 -0
- package/dist/fusion.js.map +1 -0
- package/dist/glob.d.ts +50 -0
- package/dist/glob.d.ts.map +1 -0
- package/dist/glob.js +144 -0
- package/dist/glob.js.map +1 -0
- package/dist/grep.d.ts +76 -0
- package/dist/grep.d.ts.map +1 -0
- package/dist/grep.js +475 -0
- package/dist/grep.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger.d.ts +45 -0
- package/dist/ledger.d.ts.map +1 -0
- package/dist/ledger.js +39 -0
- package/dist/ledger.js.map +1 -0
- package/dist/payload.d.ts +108 -0
- package/dist/payload.d.ts.map +1 -0
- package/dist/payload.js +263 -0
- package/dist/payload.js.map +1 -0
- package/dist/port.d.ts +112 -0
- package/dist/port.d.ts.map +1 -0
- package/dist/port.js +2 -0
- package/dist/port.js.map +1 -0
- package/dist/product-complexity.d.ts +89 -0
- package/dist/product-complexity.d.ts.map +1 -0
- package/dist/product-complexity.js +1367 -0
- package/dist/product-complexity.js.map +1 -0
- package/dist/regex-safety.d.ts +75 -0
- package/dist/regex-safety.d.ts.map +1 -0
- package/dist/regex-safety.js +902 -0
- package/dist/regex-safety.js.map +1 -0
- package/dist/relevance-prerequisites.d.ts +21 -0
- package/dist/relevance-prerequisites.d.ts.map +1 -0
- package/dist/relevance-prerequisites.js +47 -0
- package/dist/relevance-prerequisites.js.map +1 -0
- package/dist/relevance.d.ts +107 -0
- package/dist/relevance.d.ts.map +1 -0
- package/dist/relevance.js +199 -0
- package/dist/relevance.js.map +1 -0
- package/dist/retrieval.d.ts +46 -0
- package/dist/retrieval.d.ts.map +1 -0
- package/dist/retrieval.js +182 -0
- package/dist/retrieval.js.map +1 -0
- package/dist/scoring.d.ts +102 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +175 -0
- package/dist/scoring.js.map +1 -0
- package/dist/sort.d.ts +21 -0
- package/dist/sort.d.ts.map +1 -0
- package/dist/sort.js +53 -0
- package/dist/sort.js.map +1 -0
- package/dist/symbol-match.d.ts +21 -0
- package/dist/symbol-match.d.ts.map +1 -0
- package/dist/symbol-match.js +72 -0
- package/dist/symbol-match.js.map +1 -0
- package/dist/tokenize.d.ts +41 -0
- package/dist/tokenize.d.ts.map +1 -0
- package/dist/tokenize.js +202 -0
- package/dist/tokenize.js.map +1 -0
- package/dist/types.d.ts +173 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +42 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -3
- package/src/benchmark-integrity.ts +25 -0
- package/src/bm25.ts +135 -0
- package/src/deadline.ts +59 -0
- package/src/dedupe.ts +99 -0
- package/src/diversify.ts +71 -0
- package/src/engine.ts +1957 -0
- package/src/enrichment.ts +115 -0
- package/src/filter.ts +267 -0
- package/src/findability.ts +580 -0
- package/src/format.ts +228 -0
- package/src/fusion.ts +121 -0
- package/src/glob.ts +151 -0
- package/src/grep.ts +618 -0
- package/src/index.ts +83 -0
- package/src/ledger.ts +72 -0
- package/src/payload.ts +382 -0
- package/src/port.ts +133 -0
- package/src/product-complexity.ts +2168 -0
- package/src/regex-safety.ts +1002 -0
- package/src/relevance-prerequisites.ts +83 -0
- package/src/relevance.ts +328 -0
- package/src/retrieval.ts +299 -0
- package/src/scoring.ts +321 -0
- package/src/sort.ts +86 -0
- package/src/symbol-match.ts +87 -0
- package/src/tokenize.ts +213 -0
- package/src/types.ts +206 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SearchGraphOmissionReason, SearchGraphOmissionV1, SearchGraphRelationsV1, SearchGraphRelationV1 } from "@untangle-code/domain";
|
|
2
|
+
/** Harte Obergrenze je Treffer UND Graphart. */
|
|
3
|
+
export declare const SEARCH_GRAPH_RELATION_LIMIT = 32;
|
|
4
|
+
/** Maximale Textlaenge eines einzelnen Auslassungsdetails. */
|
|
5
|
+
export declare const SEARCH_GRAPH_OMISSION_DETAIL_LIMIT = 512;
|
|
6
|
+
/** Begrenzt freie Providerdiagnostik mit einem sichtbaren Restzaehler. */
|
|
7
|
+
export declare function boundSearchGraphDetail(detail: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Macht ein Provider-Ergebnis deterministisch und erzwingt die Grenze erneut
|
|
10
|
+
* an der Search-Paketgrenze. Ein Adapter darf also nicht versehentlich eine
|
|
11
|
+
* unbeschraenkte Nachbarschaft an einen Treffer haengen.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createSearchGraphRelations(relations: readonly SearchGraphRelationV1[], omissions?: readonly SearchGraphOmissionV1[], relationLimit?: number): SearchGraphRelationsV1;
|
|
14
|
+
/** Eine leere, aber erklaerte Facette fuer einen sichtbaren Degradationsfall. */
|
|
15
|
+
export declare function unavailableSearchGraphRelations(reason: SearchGraphOmissionReason, detail: string, relationLimit?: number): SearchGraphRelationsV1;
|
|
16
|
+
//# sourceMappingURL=enrichment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichment.d.ts","sourceRoot":"","sources":["../src/enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,gDAAgD;AAChD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,8DAA8D;AAC9D,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7D;AA8DD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,qBAAqB,EAAE,EAC3C,SAAS,GAAE,SAAS,qBAAqB,EAAO,EAChD,aAAa,SAA8B,GAC1C,sBAAsB,CAexB;AAED,iFAAiF;AACjF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,yBAAyB,EACjC,MAAM,EAAE,MAAM,EACd,aAAa,SAA8B,GAC1C,sBAAsB,CAExB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { compareCodepoints } from "@untangle-code/domain";
|
|
2
|
+
/** Harte Obergrenze je Treffer UND Graphart. */
|
|
3
|
+
export const SEARCH_GRAPH_RELATION_LIMIT = 32;
|
|
4
|
+
/** Maximale Textlaenge eines einzelnen Auslassungsdetails. */
|
|
5
|
+
export const SEARCH_GRAPH_OMISSION_DETAIL_LIMIT = 512;
|
|
6
|
+
/** Begrenzt freie Providerdiagnostik mit einem sichtbaren Restzaehler. */
|
|
7
|
+
export function boundSearchGraphDetail(detail) {
|
|
8
|
+
if (detail.length <= SEARCH_GRAPH_OMISSION_DETAIL_LIMIT)
|
|
9
|
+
return detail;
|
|
10
|
+
const previewLength = 440;
|
|
11
|
+
const suffix = `… [${String(detail.length - previewLength)} further character(s) omitted]`;
|
|
12
|
+
return `${detail.slice(0, previewLength)}${suffix}`;
|
|
13
|
+
}
|
|
14
|
+
function compareRelation(left, right) {
|
|
15
|
+
const fields = [
|
|
16
|
+
[left.source, right.source],
|
|
17
|
+
[left.direction, right.direction],
|
|
18
|
+
[left.repoId, right.repoId],
|
|
19
|
+
[left.refId, right.refId],
|
|
20
|
+
[left.path, right.path],
|
|
21
|
+
[left.fileId, right.fileId],
|
|
22
|
+
[left.edgeKind, right.edgeKind],
|
|
23
|
+
[left.edgeId, right.edgeId],
|
|
24
|
+
[left.symbol?.id ?? "", right.symbol?.id ?? ""],
|
|
25
|
+
];
|
|
26
|
+
for (const [leftValue, rightValue] of fields) {
|
|
27
|
+
const compared = compareCodepoints(leftValue, rightValue);
|
|
28
|
+
if (compared !== 0)
|
|
29
|
+
return compared;
|
|
30
|
+
}
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
function normalizeOmissions(input, truncatedRelationCount) {
|
|
34
|
+
const counts = new Map();
|
|
35
|
+
const add = (omission) => {
|
|
36
|
+
if (!Number.isInteger(omission.count) || omission.count <= 0 || omission.detail.trim() === "") {
|
|
37
|
+
throw new TypeError("search graph omission requires a positive integer count and non-empty detail");
|
|
38
|
+
}
|
|
39
|
+
const previous = counts.get(omission.reason) ?? { count: 0, details: new Set() };
|
|
40
|
+
previous.count += omission.count;
|
|
41
|
+
previous.details.add(omission.detail);
|
|
42
|
+
counts.set(omission.reason, previous);
|
|
43
|
+
};
|
|
44
|
+
for (const omission of input)
|
|
45
|
+
add(omission);
|
|
46
|
+
if (truncatedRelationCount > 0) {
|
|
47
|
+
add({
|
|
48
|
+
reason: "relation_limit",
|
|
49
|
+
count: truncatedRelationCount,
|
|
50
|
+
detail: `${String(truncatedRelationCount)} direct persisted relation(s) were omitted by the per-hit limit`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return [...counts.entries()]
|
|
54
|
+
.sort(([left], [right]) => compareCodepoints(left, right))
|
|
55
|
+
.map(([reason, aggregate]) => {
|
|
56
|
+
const details = [...aggregate.details].sort(compareCodepoints);
|
|
57
|
+
const first = details[0];
|
|
58
|
+
return {
|
|
59
|
+
reason,
|
|
60
|
+
count: aggregate.count,
|
|
61
|
+
detail: boundSearchGraphDetail(details.length === 1
|
|
62
|
+
? first
|
|
63
|
+
: `${first} (+${String(details.length - 1)} further distinct detail(s), aggregated deterministically)`),
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Macht ein Provider-Ergebnis deterministisch und erzwingt die Grenze erneut
|
|
69
|
+
* an der Search-Paketgrenze. Ein Adapter darf also nicht versehentlich eine
|
|
70
|
+
* unbeschraenkte Nachbarschaft an einen Treffer haengen.
|
|
71
|
+
*/
|
|
72
|
+
export function createSearchGraphRelations(relations, omissions = [], relationLimit = SEARCH_GRAPH_RELATION_LIMIT) {
|
|
73
|
+
if (!Number.isInteger(relationLimit) || relationLimit <= 0) {
|
|
74
|
+
throw new TypeError("search graph relationLimit must be a positive integer");
|
|
75
|
+
}
|
|
76
|
+
const sorted = [...relations].sort(compareRelation);
|
|
77
|
+
const kept = sorted.slice(0, relationLimit);
|
|
78
|
+
const normalizedOmissions = normalizeOmissions(omissions, sorted.length - kept.length);
|
|
79
|
+
return {
|
|
80
|
+
schemaVersion: 1,
|
|
81
|
+
relations: kept,
|
|
82
|
+
relationLimit,
|
|
83
|
+
truncated: normalizedOmissions.some((omission) => omission.reason === "relation_limit"),
|
|
84
|
+
omittedCount: normalizedOmissions.reduce((sum, omission) => sum + omission.count, 0),
|
|
85
|
+
omissions: normalizedOmissions,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/** Eine leere, aber erklaerte Facette fuer einen sichtbaren Degradationsfall. */
|
|
89
|
+
export function unavailableSearchGraphRelations(reason, detail, relationLimit = SEARCH_GRAPH_RELATION_LIMIT) {
|
|
90
|
+
return createSearchGraphRelations([], [{ reason, count: 1, detail }], relationLimit);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=enrichment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichment.js","sourceRoot":"","sources":["../src/enrichment.ts"],"names":[],"mappings":"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"}
|
package/dist/filter.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abbildung der normalisierten Suchfilter auf einen `PayloadFilter`
|
|
3
|
+
* (spec.md §13.2 Schritt 7: „Payloadfilter direkt in Qdrant anwenden").
|
|
4
|
+
*
|
|
5
|
+
* Zentrale Entscheidung dieses Moduls: Es sagt ausdruecklich, WELCHE Filter
|
|
6
|
+
* es NICHT in den Speicher schieben konnte. Ein Filter, den der Speicher
|
|
7
|
+
* nicht kennt (Pfad-Globs, Findability), muss im Prozess nachgezogen werden —
|
|
8
|
+
* und wenn das niemand tut, faellt es hier auf, statt dass die Suche
|
|
9
|
+
* stillschweigend zu viele Treffer liefert.
|
|
10
|
+
*/
|
|
11
|
+
import type { PayloadFilter, SearchFiltersV1 } from "@untangle-code/domain";
|
|
12
|
+
/** Ein Filter, der nicht in den Speicher geschoben werden konnte. */
|
|
13
|
+
export interface ResidualFilter {
|
|
14
|
+
/** Name des Filters, z. B. "pathGlobs". */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Warum er im Speicher nicht ausdrueckbar ist. */
|
|
17
|
+
reason: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Der GELTUNGSBEREICH einer Suche — Workspace und die Repositories, die das
|
|
21
|
+
* angefragte Ziel ueberhaupt enthaelt.
|
|
22
|
+
*
|
|
23
|
+
* Er steht bewusst NICHT in `SearchFiltersV1`: `workspaceId` ist kein Filter,
|
|
24
|
+
* den ein Nutzer setzt oder weglaesst, sondern die Grenze, innerhalb derer die
|
|
25
|
+
* Anfrage ueberhaupt gilt (spec.md §10.4 fuehrt `workspace_id` als
|
|
26
|
+
* Pflicht-Keyword-Index genau dafuer). Weil er ein PFLICHTPARAMETER dieser
|
|
27
|
+
* Funktion ist, kann ihn kein Aufrufer vergessen — das ist der eigentliche
|
|
28
|
+
* Grund fuer diese Form.
|
|
29
|
+
*/
|
|
30
|
+
export interface SearchScopeV1 {
|
|
31
|
+
/** Workspace der normalisierten Anfrage; darf nicht leer sein. */
|
|
32
|
+
workspaceId: string;
|
|
33
|
+
/**
|
|
34
|
+
* Repositories, die das Ziel (die Collection) enthaelt
|
|
35
|
+
* (`ProfileTargetV1.repoIds`). Leer heisst „nicht deklariert" und schraenkt
|
|
36
|
+
* dann nichts ein — wie eine leere Filterliste in `SearchFiltersV1`.
|
|
37
|
+
*/
|
|
38
|
+
targetRepoIds?: readonly string[];
|
|
39
|
+
}
|
|
40
|
+
export interface BuiltPayloadFilter {
|
|
41
|
+
filter: PayloadFilter;
|
|
42
|
+
/** Filter, die der Aufrufer NACH dem Abruf selbst anwenden muss. */
|
|
43
|
+
residual: ResidualFilter[];
|
|
44
|
+
/**
|
|
45
|
+
* Die Repositories, aus denen dieses Ziel Treffer liefern KANN: der
|
|
46
|
+
* Durchschnitt aus Anfragefilter und Ziel-Repositories. Leer heisst „nicht
|
|
47
|
+
* eingeschraenkt". Der Aufrufer meldet damit die Herkunft der Ergebnisgruppe,
|
|
48
|
+
* statt die deklarierten Ziel-Repositories ungeprueft zu wiederholen.
|
|
49
|
+
*/
|
|
50
|
+
scopeRepoIds: string[];
|
|
51
|
+
/**
|
|
52
|
+
* Gesetzt, wenn der Geltungsbereich LEER ist (die angefragten Repositories
|
|
53
|
+
* liegen saemtlich ausserhalb des Ziels). Dann darf der Aufrufer den Speicher
|
|
54
|
+
* NICHT fragen: eine leere `in`-Liste waere kein Filter, sondern gar keiner —
|
|
55
|
+
* die Suche liefe ueber die ganze Collection. Der Text ist die Begruendung
|
|
56
|
+
* fuer den Skip-Ledger.
|
|
57
|
+
*/
|
|
58
|
+
emptyScopeReason?: string;
|
|
59
|
+
/**
|
|
60
|
+
* WP-176: die ANGEFRAGTEN Repositories, die dieses Ziel nicht enthaelt und
|
|
61
|
+
* die deshalb hier nicht durchsucht wurden. Leer heisst „alles Angefragte
|
|
62
|
+
* lag im Ziel". Der Aufrufer MUSS sie melden — sie sind der Unterschied
|
|
63
|
+
* zwischen „in a und b gesucht" und „nur in a gesucht".
|
|
64
|
+
*/
|
|
65
|
+
outOfScopeRepoIds: string[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Baut den Speicherfilter aus dem Geltungsbereich und den normalisierten Filtern.
|
|
69
|
+
*
|
|
70
|
+
* `point_type = "code_chunk"` steht IMMER drin: eine Code-Collection kann
|
|
71
|
+
* neben Chunks auch andere Punktarten enthalten, und ein Treffer, der kein
|
|
72
|
+
* Chunk ist, hat in einer Trefferliste nichts verloren (spec.md §10.3/§10.4).
|
|
73
|
+
*
|
|
74
|
+
* `workspace_id` steht EBENSO IMMER drin. Eine Collection kann Chunks mehrerer
|
|
75
|
+
* Workspaces tragen — der Dedupe-Schluessel dieses Pakets rechnet selbst damit —
|
|
76
|
+
* und ein Treffer aus einem fremden Workspace waere kein ungenauer Treffer,
|
|
77
|
+
* sondern ein fremder Inhalt, ausgegeben als eigener. Deshalb ist der
|
|
78
|
+
* Geltungsbereich ein Pflichtparameter und keine Option.
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildPayloadFilter(filters: SearchFiltersV1, scope: SearchScopeV1): BuiltPayloadFilter;
|
|
81
|
+
/**
|
|
82
|
+
* Zusaetzlicher Filter fuer den Zweig der exakten Symbolnamen: nur Punkte,
|
|
83
|
+
* deren `symbol_name` einem der Kandidaten entspricht.
|
|
84
|
+
*/
|
|
85
|
+
export declare function buildSymbolNameFilter(base: PayloadFilter, symbolNames: readonly string[]): PayloadFilter | undefined;
|
|
86
|
+
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAkB,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG5F,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,oEAAoE;IACpE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AA2DD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,aAAa,GACnB,kBAAkB,CA2GpB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,aAAa,GAAG,SAAS,CAM3B"}
|
package/dist/filter.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { sortByCodepoints } from "@untangle-code/domain";
|
|
2
|
+
/**
|
|
3
|
+
* Durchschnitt zweier Repo-Listen; leere Liste heisst „keine Einschraenkung".
|
|
4
|
+
*
|
|
5
|
+
* WP-176: `dropped` nennt die ANGEFRAGTEN Repositories, die das Ziel gar nicht
|
|
6
|
+
* enthaelt. Frueher fiel diese Menge lautlos aus dem Durchschnitt heraus und
|
|
7
|
+
* nur der VOLLSTAENDIG leere Fall kam in den Ledger — wer `--repo=a,b` fragte
|
|
8
|
+
* und ein Ziel nur `a` fuehrt, bekam Treffer aus `a` und kein Wort darueber,
|
|
9
|
+
* dass `b` nie durchsucht wurde. Das ist derselbe Fehler wie ein leeres
|
|
10
|
+
* Ergebnis ohne Grund, nur schwerer zu bemerken: er sieht wie ein Erfolg aus.
|
|
11
|
+
*/
|
|
12
|
+
function intersectRepoIds(requested, target) {
|
|
13
|
+
if (requested.length === 0) {
|
|
14
|
+
return { repoIds: sortByCodepoints([...target]), dropped: [], empty: false };
|
|
15
|
+
}
|
|
16
|
+
if (target.length === 0) {
|
|
17
|
+
return { repoIds: sortByCodepoints([...requested]), dropped: [], empty: false };
|
|
18
|
+
}
|
|
19
|
+
const targetSet = new Set(target);
|
|
20
|
+
const shared = requested.filter((repoId) => targetSet.has(repoId));
|
|
21
|
+
const dropped = requested.filter((repoId) => !targetSet.has(repoId));
|
|
22
|
+
return {
|
|
23
|
+
repoIds: sortByCodepoints(shared),
|
|
24
|
+
dropped: sortByCodepoints(dropped),
|
|
25
|
+
empty: shared.length === 0,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function keywordIn(field, values) {
|
|
29
|
+
if (values.length === 0) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (values.length === 1) {
|
|
33
|
+
return { field, match: { eq: values[0] } };
|
|
34
|
+
}
|
|
35
|
+
return { field, match: { in: [...values] } };
|
|
36
|
+
}
|
|
37
|
+
function range(field, min, max) {
|
|
38
|
+
if (min === undefined && max === undefined) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
field,
|
|
43
|
+
range: {
|
|
44
|
+
...(min === undefined ? {} : { gte: min }),
|
|
45
|
+
...(max === undefined ? {} : { lte: max }),
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Baut den Speicherfilter aus dem Geltungsbereich und den normalisierten Filtern.
|
|
51
|
+
*
|
|
52
|
+
* `point_type = "code_chunk"` steht IMMER drin: eine Code-Collection kann
|
|
53
|
+
* neben Chunks auch andere Punktarten enthalten, und ein Treffer, der kein
|
|
54
|
+
* Chunk ist, hat in einer Trefferliste nichts verloren (spec.md §10.3/§10.4).
|
|
55
|
+
*
|
|
56
|
+
* `workspace_id` steht EBENSO IMMER drin. Eine Collection kann Chunks mehrerer
|
|
57
|
+
* Workspaces tragen — der Dedupe-Schluessel dieses Pakets rechnet selbst damit —
|
|
58
|
+
* und ein Treffer aus einem fremden Workspace waere kein ungenauer Treffer,
|
|
59
|
+
* sondern ein fremder Inhalt, ausgegeben als eigener. Deshalb ist der
|
|
60
|
+
* Geltungsbereich ein Pflichtparameter und keine Option.
|
|
61
|
+
*/
|
|
62
|
+
export function buildPayloadFilter(filters, scope) {
|
|
63
|
+
const workspaceId = scope.workspaceId.trim();
|
|
64
|
+
if (workspaceId === "") {
|
|
65
|
+
throw new Error("buildPayloadFilter requires a non-empty workspaceId: without it the store filter would span every workspace in the collection");
|
|
66
|
+
}
|
|
67
|
+
const must = [
|
|
68
|
+
{ field: "point_type", match: { eq: "code_chunk" } },
|
|
69
|
+
{ field: "workspace_id", match: { eq: workspaceId } },
|
|
70
|
+
];
|
|
71
|
+
const residual = [];
|
|
72
|
+
const scoped = intersectRepoIds(filters.repoIds, scope.targetRepoIds ?? []);
|
|
73
|
+
if (scoped.empty) {
|
|
74
|
+
return {
|
|
75
|
+
filter: { must },
|
|
76
|
+
residual,
|
|
77
|
+
scopeRepoIds: [],
|
|
78
|
+
outOfScopeRepoIds: scoped.dropped,
|
|
79
|
+
emptyScopeReason: `the requested repositories [${filters.repoIds.join(", ")}] are not part of this target's repositories [${sortByCodepoints([...(scope.targetRepoIds ?? [])]).join(", ")}]; this target was not searched`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const conditions = [
|
|
83
|
+
keywordIn("repo_id", scoped.repoIds),
|
|
84
|
+
keywordIn("ref_id", filters.refIds),
|
|
85
|
+
keywordIn("language", filters.languages),
|
|
86
|
+
keywordIn("symbol_name", filters.symbolNames),
|
|
87
|
+
keywordIn("symbol_kind", filters.symbolKinds),
|
|
88
|
+
keywordIn("chunk_kind", filters.chunkKinds),
|
|
89
|
+
filters.commitSha === undefined
|
|
90
|
+
? undefined
|
|
91
|
+
: { field: "commit_sha", match: { eq: filters.commitSha } },
|
|
92
|
+
];
|
|
93
|
+
for (const condition of conditions) {
|
|
94
|
+
if (condition !== undefined) {
|
|
95
|
+
must.push(condition);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const complexity = filters.complexity;
|
|
99
|
+
const complexityConditions = complexity === undefined
|
|
100
|
+
? []
|
|
101
|
+
: [
|
|
102
|
+
range("cyclomatic_extended", complexity.cyclomaticMin, complexity.cyclomaticMax),
|
|
103
|
+
range("cognitive", complexity.cognitiveMin, complexity.cognitiveMax),
|
|
104
|
+
range("risk_score", complexity.riskMin, complexity.riskMax),
|
|
105
|
+
];
|
|
106
|
+
for (const condition of complexityConditions) {
|
|
107
|
+
if (condition !== undefined) {
|
|
108
|
+
must.push(condition);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (filters.changed !== undefined) {
|
|
112
|
+
const since = Date.parse(filters.changed.since);
|
|
113
|
+
const until = filters.changed.until === undefined ? undefined : Date.parse(filters.changed.until);
|
|
114
|
+
// Ein unlesbarer Zeitstempel wuerde als NaN in die Bereichsbedingung
|
|
115
|
+
// wandern; je nach Speicher filtert das dann alles oder nichts, in beiden
|
|
116
|
+
// Faellen ohne Hinweis. Lieber ablehnen (E4).
|
|
117
|
+
if (Number.isNaN(since)) {
|
|
118
|
+
throw new Error(`search query filter "changed.since" is not a valid ISO-8601 timestamp: "${filters.changed.since}"`);
|
|
119
|
+
}
|
|
120
|
+
if (until !== undefined && Number.isNaN(until)) {
|
|
121
|
+
throw new Error(`search query filter "changed.until" is not a valid ISO-8601 timestamp: "${String(filters.changed.until)}"`);
|
|
122
|
+
}
|
|
123
|
+
// `changed_at_epoch_ms` ist der numerische Index aus spec.md §10.4. Punkte
|
|
124
|
+
// ohne dieses Feld erfuellen eine Bereichsbedingung nicht und fallen damit
|
|
125
|
+
// heraus — das ist gewollt und in der README vermerkt: „seit X geaendert"
|
|
126
|
+
// ist ohne Aenderungsdatum nicht beantwortbar, und ein stilles Durchwinken
|
|
127
|
+
// waere eine falsche Antwort.
|
|
128
|
+
must.push({
|
|
129
|
+
field: "changed_at_epoch_ms",
|
|
130
|
+
range: {
|
|
131
|
+
gte: since,
|
|
132
|
+
...(until === undefined ? {} : { lt: until }),
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
if (filters.pathGlobs.length > 0) {
|
|
137
|
+
residual.push({
|
|
138
|
+
name: "pathGlobs",
|
|
139
|
+
reason: "the vector store's payload filter matches exact values and ranges only, not glob patterns",
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
if (filters.findability !== undefined) {
|
|
143
|
+
residual.push({
|
|
144
|
+
name: "findability",
|
|
145
|
+
reason: "findability is derived per symbol and is not part of the stored chunk payload",
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
filter: { must },
|
|
150
|
+
residual,
|
|
151
|
+
scopeRepoIds: scoped.repoIds,
|
|
152
|
+
outOfScopeRepoIds: scoped.dropped,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Zusaetzlicher Filter fuer den Zweig der exakten Symbolnamen: nur Punkte,
|
|
157
|
+
* deren `symbol_name` einem der Kandidaten entspricht.
|
|
158
|
+
*/
|
|
159
|
+
export function buildSymbolNameFilter(base, symbolNames) {
|
|
160
|
+
const condition = keywordIn("symbol_name", symbolNames);
|
|
161
|
+
if (condition === undefined) {
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
return { ...base, must: [...(base.must ?? []), condition] };
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
|