tea-rags 1.0.4 → 1.2.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/build/core/adapters/qdrant/client.d.ts +27 -0
- package/build/core/adapters/qdrant/client.d.ts.map +1 -1
- package/build/core/adapters/qdrant/client.js +64 -0
- package/build/core/adapters/qdrant/client.js.map +1 -1
- package/build/core/api/internal/facades/explore-facade.d.ts +5 -1
- package/build/core/api/internal/facades/explore-facade.d.ts.map +1 -1
- package/build/core/api/internal/facades/explore-facade.js +66 -7
- package/build/core/api/internal/facades/explore-facade.js.map +1 -1
- package/build/core/api/public/app.d.ts +2 -1
- package/build/core/api/public/app.d.ts.map +1 -1
- package/build/core/api/public/app.js +2 -1
- package/build/core/api/public/app.js.map +1 -1
- package/build/core/api/public/dto/explore.d.ts +27 -2
- package/build/core/api/public/dto/explore.d.ts.map +1 -1
- package/build/core/api/public/dto/index.d.ts +1 -1
- package/build/core/api/public/dto/index.d.ts.map +1 -1
- package/build/core/contracts/types/reranker.d.ts +4 -0
- package/build/core/contracts/types/reranker.d.ts.map +1 -1
- package/build/core/contracts/types/trajectory.d.ts +3 -1
- package/build/core/contracts/types/trajectory.d.ts.map +1 -1
- package/build/core/domains/explore/index.d.ts +2 -2
- package/build/core/domains/explore/index.d.ts.map +1 -1
- package/build/core/domains/explore/index.js +1 -1
- package/build/core/domains/explore/index.js.map +1 -1
- package/build/core/domains/explore/post-process.d.ts +1 -0
- package/build/core/domains/explore/post-process.d.ts.map +1 -1
- package/build/core/domains/explore/post-process.js +1 -1
- package/build/core/domains/explore/post-process.js.map +1 -1
- package/build/core/domains/explore/rank-module.js +1 -1
- package/build/core/domains/explore/rank-module.js.map +1 -1
- package/build/core/domains/explore/reranker.d.ts +2 -2
- package/build/core/domains/explore/reranker.d.ts.map +1 -1
- package/build/core/domains/explore/reranker.js +20 -8
- package/build/core/domains/explore/reranker.js.map +1 -1
- package/build/core/domains/explore/strategies/base.d.ts +3 -1
- package/build/core/domains/explore/strategies/base.d.ts.map +1 -1
- package/build/core/domains/explore/strategies/base.js +11 -1
- package/build/core/domains/explore/strategies/base.js.map +1 -1
- package/build/core/domains/explore/strategies/hybrid.d.ts.map +1 -1
- package/build/core/domains/explore/strategies/hybrid.js +6 -1
- package/build/core/domains/explore/strategies/hybrid.js.map +1 -1
- package/build/core/domains/explore/strategies/index.d.ts +2 -0
- package/build/core/domains/explore/strategies/index.d.ts.map +1 -1
- package/build/core/domains/explore/strategies/index.js +1 -0
- package/build/core/domains/explore/strategies/index.js.map +1 -1
- package/build/core/domains/explore/strategies/similar.d.ts +29 -0
- package/build/core/domains/explore/strategies/similar.d.ts.map +1 -0
- package/build/core/domains/explore/strategies/similar.js +87 -0
- package/build/core/domains/explore/strategies/similar.js.map +1 -0
- package/build/core/domains/explore/strategies/types.d.ts +1 -1
- package/build/core/domains/explore/strategies/types.d.ts.map +1 -1
- package/build/core/domains/explore/strategies/vector.d.ts.map +1 -1
- package/build/core/domains/explore/strategies/vector.js +8 -0
- package/build/core/domains/explore/strategies/vector.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/age.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/age.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/block-penalty.d.ts +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/block-penalty.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/block-penalty.js +2 -2
- package/build/core/domains/trajectory/git/rerank/derived-signals/block-penalty.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/bug-fix.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/bug-fix.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/burst-activity.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/burst-activity.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/chunk-churn.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/chunk-churn.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/chunk-relative-churn.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/chunk-relative-churn.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/churn.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/churn.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/density.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/density.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/helpers.d.ts +5 -4
- package/build/core/domains/trajectory/git/rerank/derived-signals/helpers.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/helpers.js +8 -6
- package/build/core/domains/trajectory/git/rerank/derived-signals/helpers.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/knowledge-silo.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/knowledge-silo.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/recency.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/recency.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/relative-churn-norm.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/relative-churn-norm.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/stability.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/stability.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/volatility.js +1 -1
- package/build/core/domains/trajectory/git/rerank/derived-signals/volatility.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/code-review.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/code-review.js +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/code-review.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/hotspots.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/hotspots.js +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/hotspots.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/onboarding.d.ts +2 -1
- package/build/core/domains/trajectory/git/rerank/presets/onboarding.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/onboarding.js +2 -1
- package/build/core/domains/trajectory/git/rerank/presets/onboarding.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/ownership.d.ts +2 -1
- package/build/core/domains/trajectory/git/rerank/presets/ownership.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/ownership.js +4 -2
- package/build/core/domains/trajectory/git/rerank/presets/ownership.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/recent.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/recent.js +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/recent.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/refactoring.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/refactoring.js +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/refactoring.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/security-audit.d.ts +2 -1
- package/build/core/domains/trajectory/git/rerank/presets/security-audit.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/security-audit.js +6 -3
- package/build/core/domains/trajectory/git/rerank/presets/security-audit.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/stable.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/stable.js +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/stable.js.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/tech-debt.d.ts.map +1 -1
- package/build/core/domains/trajectory/git/rerank/presets/tech-debt.js +5 -3
- package/build/core/domains/trajectory/git/rerank/presets/tech-debt.js.map +1 -1
- package/build/core/domains/trajectory/static/rerank/presets/decomposition.d.ts.map +1 -1
- package/build/core/domains/trajectory/static/rerank/presets/decomposition.js +1 -1
- package/build/core/domains/trajectory/static/rerank/presets/decomposition.js.map +1 -1
- package/build/core/domains/trajectory/static/rerank/presets/relevance.d.ts.map +1 -1
- package/build/core/domains/trajectory/static/rerank/presets/relevance.js +1 -1
- package/build/core/domains/trajectory/static/rerank/presets/relevance.js.map +1 -1
- package/build/mcp/tools/explore.d.ts.map +1 -1
- package/build/mcp/tools/explore.js +26 -3
- package/build/mcp/tools/explore.js.map +1 -1
- package/build/mcp/tools/schemas.d.ts +39 -10
- package/build/mcp/tools/schemas.d.ts.map +1 -1
- package/build/mcp/tools/schemas.js +39 -5
- package/build/mcp/tools/schemas.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimilarSearchStrategy — find similar chunks via Qdrant recommend API.
|
|
3
|
+
*
|
|
4
|
+
* Unlike other strategies (cached in ExploreFacade constructor), this is
|
|
5
|
+
* created per-request because it needs positive/negative inputs per call.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseExploreStrategy } from "./base.js";
|
|
8
|
+
export class SimilarSearchStrategy extends BaseExploreStrategy {
|
|
9
|
+
embeddings;
|
|
10
|
+
input;
|
|
11
|
+
type = "similar";
|
|
12
|
+
constructor(qdrant, reranker, payloadSignals, essentialKeys, embeddings, input) {
|
|
13
|
+
super(qdrant, reranker, payloadSignals, essentialKeys);
|
|
14
|
+
this.embeddings = embeddings;
|
|
15
|
+
this.input = input;
|
|
16
|
+
}
|
|
17
|
+
async executeExplore(ctx) {
|
|
18
|
+
// 1. Collect code blocks to embed (filter empty strings)
|
|
19
|
+
const positiveCodeBlocks = (this.input.positiveCode ?? []).filter((c) => c.trim().length > 0);
|
|
20
|
+
const negativeCodeBlocks = (this.input.negativeCode ?? []).filter((c) => c.trim().length > 0);
|
|
21
|
+
const allCodeBlocks = [...positiveCodeBlocks, ...negativeCodeBlocks];
|
|
22
|
+
// 2. Embed all code blocks in one batch
|
|
23
|
+
let embeddedVectors = [];
|
|
24
|
+
if (allCodeBlocks.length > 0) {
|
|
25
|
+
const results = await this.embeddings.embedBatch(allCodeBlocks);
|
|
26
|
+
embeddedVectors = results.map((r) => r.embedding);
|
|
27
|
+
}
|
|
28
|
+
// 3. Split embedded vectors back into positive/negative
|
|
29
|
+
const positiveVectors = embeddedVectors.slice(0, positiveCodeBlocks.length);
|
|
30
|
+
const negativeVectors = embeddedVectors.slice(positiveCodeBlocks.length);
|
|
31
|
+
// 4. Build positive/negative arrays (IDs + vectors)
|
|
32
|
+
const positive = [...(this.input.positiveIds ?? []), ...positiveVectors];
|
|
33
|
+
const negative = [...(this.input.negativeIds ?? []), ...negativeVectors];
|
|
34
|
+
// 5. Build filter (merge user filter + fileExtensions)
|
|
35
|
+
const filter = this.buildFilter(ctx.filter, this.input.fileExtensions);
|
|
36
|
+
// 6. Call Qdrant query (overfetch for file-level dedup)
|
|
37
|
+
const fetchLimit = ctx.level === "file" ? ctx.limit * 3 : ctx.limit;
|
|
38
|
+
const results = await this.qdrant.query(ctx.collectionName, {
|
|
39
|
+
positive,
|
|
40
|
+
negative: negative.length > 0 ? negative : undefined,
|
|
41
|
+
strategy: this.input.strategy ?? "best_score",
|
|
42
|
+
limit: fetchLimit,
|
|
43
|
+
offset: ctx.offset,
|
|
44
|
+
filter,
|
|
45
|
+
});
|
|
46
|
+
// Client-side grouping for file level
|
|
47
|
+
if (ctx.level === "file") {
|
|
48
|
+
return this.groupByFile(results, ctx.limit);
|
|
49
|
+
}
|
|
50
|
+
return results;
|
|
51
|
+
}
|
|
52
|
+
buildFilter(userFilter, fileExtensions) {
|
|
53
|
+
const extensionCondition = fileExtensions?.length
|
|
54
|
+
? { key: "fileExtension", match: { any: fileExtensions } }
|
|
55
|
+
: undefined;
|
|
56
|
+
if (!userFilter && !extensionCondition)
|
|
57
|
+
return undefined;
|
|
58
|
+
const mustClauses = [];
|
|
59
|
+
// Merge existing must clauses from user filter
|
|
60
|
+
if (userFilter) {
|
|
61
|
+
if (Array.isArray(userFilter.must)) {
|
|
62
|
+
mustClauses.push(...userFilter.must);
|
|
63
|
+
}
|
|
64
|
+
else if (!userFilter.must && !userFilter.should && !userFilter.must_not) {
|
|
65
|
+
// Simple key-value filter — convert to must format
|
|
66
|
+
const entries = Object.entries(userFilter).map(([key, value]) => ({
|
|
67
|
+
key,
|
|
68
|
+
match: { value },
|
|
69
|
+
}));
|
|
70
|
+
mustClauses.push(...entries);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (extensionCondition) {
|
|
74
|
+
mustClauses.push(extensionCondition);
|
|
75
|
+
}
|
|
76
|
+
if (mustClauses.length === 0)
|
|
77
|
+
return userFilter;
|
|
78
|
+
// Preserve should/must_not from user filter
|
|
79
|
+
const result = { must: mustClauses };
|
|
80
|
+
if (userFilter?.should)
|
|
81
|
+
result.should = userFilter.should;
|
|
82
|
+
if (userFilter?.must_not)
|
|
83
|
+
result.must_not = userFilter.must_not;
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=similar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similar.js","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/similar.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ export interface ExploreResult<P = Record<string, unknown>> {
|
|
|
30
30
|
rankingOverlay?: RankingOverlay;
|
|
31
31
|
}
|
|
32
32
|
export interface ExploreStrategy {
|
|
33
|
-
readonly type: "vector" | "hybrid" | "scroll-rank";
|
|
33
|
+
readonly type: "vector" | "hybrid" | "scroll-rank" | "similar";
|
|
34
34
|
execute: (ctx: ExploreContext) => Promise<ExploreResult[]>;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxD,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxD,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;IAC/D,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,cAAc,EAAE,MAAM;CAMnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/vector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;cAElB,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/vector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;cAElB,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAc9E"}
|
|
@@ -11,6 +11,14 @@ export class VectorSearchStrategy extends BaseExploreStrategy {
|
|
|
11
11
|
if (!ctx.embedding) {
|
|
12
12
|
throw new Error("VectorSearchStrategy requires an embedding in the context.");
|
|
13
13
|
}
|
|
14
|
+
if (ctx.level === "file") {
|
|
15
|
+
return this.qdrant.queryGroups(ctx.collectionName, ctx.embedding, {
|
|
16
|
+
groupBy: "relativePath",
|
|
17
|
+
groupSize: 1,
|
|
18
|
+
limit: ctx.limit,
|
|
19
|
+
filter: ctx.filter,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
14
22
|
return this.qdrant.search(ctx.collectionName, ctx.embedding, ctx.limit, ctx.filter);
|
|
15
23
|
}
|
|
16
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/vector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAClD,IAAI,GAAG,QAAiB,CAAC;IAExB,KAAK,CAAC,cAAc,CAAC,GAAmB;QAChD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../../src/core/domains/explore/strategies/vector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAClD,IAAI,GAAG,QAAiB,CAAC;IAExB,KAAK,CAAC,cAAc,CAAC,GAAmB;QAChD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE;gBAChE,OAAO,EAAE,cAAc;gBACvB,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;CACF"}
|
|
@@ -7,7 +7,7 @@ export class AgeSignal {
|
|
|
7
7
|
extract(rawSignals, ctx) {
|
|
8
8
|
const fb = ctx?.bounds?.["file.ageDays"] ?? this.defaultBound;
|
|
9
9
|
const cb = ctx?.bounds?.["chunk.ageDays"] ?? this.defaultBound;
|
|
10
|
-
return blendNormalized(rawSignals, "ageDays", fb, cb);
|
|
10
|
+
return blendNormalized(rawSignals, "ageDays", fb, cb, ctx?.signalLevel);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=age.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"age.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/age.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,SAAS;IACX,IAAI,GAAG,KAAK,CAAC;IACb,WAAW,GAAG,qEAAqE,CAAC;IACpF,OAAO,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC5C,YAAY,GAAG,GAAG,CAAC;IAC5B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC/D,OAAO,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"age.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/age.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,SAAS;IACX,IAAI,GAAG,KAAK,CAAC;IACb,WAAW,GAAG,qEAAqE,CAAC;IACpF,OAAO,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC5C,YAAY,GAAG,GAAG,CAAC;IAC5B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC/D,OAAO,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -5,6 +5,6 @@ export declare class BlockPenaltySignal implements DerivedSignalDescriptor {
|
|
|
5
5
|
readonly description = "Data quality discount for block chunks: 1.0 if block without chunk data (alpha=0), 0 otherwise";
|
|
6
6
|
readonly sources: string[];
|
|
7
7
|
readonly inverted: true;
|
|
8
|
-
extract(rawSignals: Record<string, unknown>,
|
|
8
|
+
extract(rawSignals: Record<string, unknown>, ctx?: ExtractContext): number;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=block-penalty.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-penalty.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/block-penalty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAGnF,qBAAa,kBAAmB,YAAW,uBAAuB;IAChE,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,oGAC+E;IACnG,QAAQ,CAAC,OAAO,WAA6C;IAC7D,QAAQ,CAAC,QAAQ,EAAG,IAAI,CAAU;IAClC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"block-penalty.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/block-penalty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAGnF,qBAAa,kBAAmB,YAAW,uBAAuB;IAChE,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,oGAC+E;IACnG,QAAQ,CAAC,OAAO,WAA6C;IAC7D,QAAQ,CAAC,QAAQ,EAAG,IAAI,CAAU;IAClC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM;CAW3E"}
|
|
@@ -4,13 +4,13 @@ export class BlockPenaltySignal {
|
|
|
4
4
|
description = "Data quality discount for block chunks: 1.0 if block without chunk data (alpha=0), 0 otherwise";
|
|
5
5
|
sources = ["chunk.commitCount", "file.commitCount"];
|
|
6
6
|
inverted = true;
|
|
7
|
-
extract(rawSignals,
|
|
7
|
+
extract(rawSignals, ctx) {
|
|
8
8
|
const { chunkType } = rawSignals;
|
|
9
9
|
if (chunkType !== "block")
|
|
10
10
|
return 0;
|
|
11
11
|
// If chunk-level git data exists, compute alpha to determine penalty
|
|
12
12
|
if (hasChunkData(rawSignals)) {
|
|
13
|
-
const alpha = payloadAlpha(rawSignals);
|
|
13
|
+
const alpha = payloadAlpha(rawSignals, ctx?.signalLevel);
|
|
14
14
|
return 1.0 - alpha;
|
|
15
15
|
}
|
|
16
16
|
// No chunk data at all — full penalty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-penalty.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/block-penalty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAClB,gGAAgG,CAAC;IAC1F,OAAO,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACpD,QAAQ,GAAG,IAAa,CAAC;IAClC,OAAO,CAAC,UAAmC,EAAE,
|
|
1
|
+
{"version":3,"file":"block-penalty.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/block-penalty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAClB,gGAAgG,CAAC;IAC1F,OAAO,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACpD,QAAQ,GAAG,IAAa,CAAC;IAClC,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QACjC,IAAI,SAAS,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC;QACpC,qEAAqE;QACrE,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACzD,OAAO,GAAG,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,sCAAsC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export class BugFixSignal {
|
|
|
9
9
|
extract(rawSignals, ctx) {
|
|
10
10
|
const fb = ctx?.bounds?.["file.bugFixRate"] ?? this.defaultBound;
|
|
11
11
|
const cb = ctx?.bounds?.["chunk.bugFixRate"] ?? this.defaultBound;
|
|
12
|
-
let value = blendNormalized(rawSignals, "bugFixRate", fb, cb);
|
|
12
|
+
let value = blendNormalized(rawSignals, "bugFixRate", fb, cb, ctx?.signalLevel);
|
|
13
13
|
const k = ctx?.dampeningThreshold ?? BugFixSignal.FALLBACK_THRESHOLD;
|
|
14
14
|
value *= confidenceDampening(fileNum(rawSignals, "commitCount"), k);
|
|
15
15
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bug-fix.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/bug-fix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,0FAA0F,CAAC;IACzG,OAAO,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAClD,YAAY,GAAG,GAAG,CAAC;IACnB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACjE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bug-fix.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/bug-fix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,0FAA0F,CAAC;IACzG,OAAO,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAClD,YAAY,GAAG,GAAG,CAAC;IACnB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACjE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,IAAI,YAAY,CAAC,kBAAkB,CAAC;QACrE,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -7,7 +7,7 @@ export class BurstActivitySignal {
|
|
|
7
7
|
extract(rawSignals, ctx) {
|
|
8
8
|
const fb = ctx?.bounds?.["file.recencyWeightedFreq"] ?? this.defaultBound;
|
|
9
9
|
const cb = ctx?.bounds?.["chunk.recencyWeightedFreq"] ?? this.defaultBound;
|
|
10
|
-
return blendNormalized(rawSignals, "recencyWeightedFreq", fb, cb);
|
|
10
|
+
return blendNormalized(rawSignals, "recencyWeightedFreq", fb, cb, ctx?.signalLevel);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=burst-activity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"burst-activity.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/burst-activity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,8EAA8E,CAAC;IAC7F,OAAO,GAAG,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,CAAC;IACpE,YAAY,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC1E,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3E,OAAO,eAAe,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"burst-activity.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/burst-activity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,8EAA8E,CAAC;IAC7F,OAAO,GAAG,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,CAAC;IACpE,YAAY,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC1E,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3E,OAAO,eAAe,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ export class ChunkChurnSignal {
|
|
|
8
8
|
extract(rawSignals, ctx) {
|
|
9
9
|
const b = ctx?.bounds?.["chunk.commitCount"] ?? this.defaultBound;
|
|
10
10
|
const chunkCC = chunkNum(rawSignals, "commitCount");
|
|
11
|
-
const alpha = payloadAlpha(rawSignals);
|
|
11
|
+
const alpha = payloadAlpha(rawSignals, ctx?.signalLevel);
|
|
12
12
|
return normalize(chunkCC, b) * alpha;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-churn.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/chunk-churn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,oEAAoE,CAAC;IACnF,OAAO,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACpD,YAAY,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chunk-churn.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/chunk-churn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,oEAAoE,CAAC;IACnF,OAAO,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACpD,YAAY,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ export class ChunkRelativeChurnSignal {
|
|
|
8
8
|
extract(rawSignals, ctx) {
|
|
9
9
|
const b = ctx?.bounds?.["chunk.churnRatio"] ?? this.defaultBound;
|
|
10
10
|
const chunkCR = chunkNum(rawSignals, "churnRatio");
|
|
11
|
-
const alpha = payloadAlpha(rawSignals);
|
|
11
|
+
const alpha = payloadAlpha(rawSignals, ctx?.signalLevel);
|
|
12
12
|
return normalize(chunkCR, b) * alpha;
|
|
13
13
|
}
|
|
14
14
|
}
|
package/build/core/domains/trajectory/git/rerank/derived-signals/chunk-relative-churn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-relative-churn.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/chunk-relative-churn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,OAAO,wBAAwB;IAC1B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,0EAA0E,CAAC;IACzF,OAAO,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACnD,YAAY,GAAG,GAAG,CAAC;IAC5B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chunk-relative-churn.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/chunk-relative-churn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,OAAO,wBAAwB;IAC1B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,0EAA0E,CAAC;IACzF,OAAO,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACnD,YAAY,GAAG,GAAG,CAAC;IAC5B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -7,7 +7,7 @@ export class ChurnSignal {
|
|
|
7
7
|
extract(rawSignals, ctx) {
|
|
8
8
|
const fb = ctx?.bounds?.["file.commitCount"] ?? this.defaultBound;
|
|
9
9
|
const cb = ctx?.bounds?.["chunk.commitCount"] ?? this.defaultBound;
|
|
10
|
-
return blendNormalized(rawSignals, "commitCount", fb, cb);
|
|
10
|
+
return blendNormalized(rawSignals, "commitCount", fb, cb, ctx?.signalLevel);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=churn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"churn.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/churn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,WAAW;IACb,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAClB,+FAA+F,CAAC;IACzF,OAAO,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACpD,YAAY,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACnE,OAAO,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"churn.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/churn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,WAAW;IACb,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAClB,+FAA+F,CAAC;IACzF,OAAO,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACpD,YAAY,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACnE,OAAO,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export class DensitySignal {
|
|
|
9
9
|
extract(rawSignals, ctx) {
|
|
10
10
|
const fb = ctx?.bounds?.["file.changeDensity"] ?? this.defaultBound;
|
|
11
11
|
const cb = ctx?.bounds?.["chunk.changeDensity"] ?? this.defaultBound;
|
|
12
|
-
let value = blendNormalized(rawSignals, "changeDensity", fb, cb);
|
|
12
|
+
let value = blendNormalized(rawSignals, "changeDensity", fb, cb, ctx?.signalLevel);
|
|
13
13
|
const k = ctx?.dampeningThreshold ?? DensitySignal.FALLBACK_THRESHOLD;
|
|
14
14
|
value *= confidenceDampening(fileNum(rawSignals, "commitCount"), k);
|
|
15
15
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"density.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/density.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,wEAAwE,CAAC;IACvF,OAAO,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IACxD,YAAY,GAAG,EAAE,CAAC;IAClB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACrE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"density.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/density.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,wEAAwE,CAAC;IACvF,OAAO,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IACxD,YAAY,GAAG,EAAE,CAAC;IAClB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACrE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,IAAI,aAAa,CAAC,kBAAkB,CAAC;QACtE,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Generic algorithms (computeAlpha, blend, normalize, confidenceDampening)
|
|
6
6
|
* live in contracts/signal-utils.
|
|
7
7
|
*/
|
|
8
|
+
import type { SignalLevel } from "../../../../../contracts/types/reranker.js";
|
|
8
9
|
export { blend, computeAlpha, confidenceDampening, normalize } from "../../../../../contracts/signal-utils.js";
|
|
9
10
|
export { GIT_FILE_DAMPENING } from "../constants.js";
|
|
10
11
|
export interface GitLike {
|
|
@@ -29,16 +30,16 @@ export declare function chunkField(payload: Record<string, unknown>, field: stri
|
|
|
29
30
|
export declare function chunkNum(payload: Record<string, unknown>, field: string): number;
|
|
30
31
|
/** Check if chunk-level data exists at all. */
|
|
31
32
|
export declare function hasChunkData(payload: Record<string, unknown>): boolean;
|
|
32
|
-
/** Get alpha from payload's chunk and file commit counts. */
|
|
33
|
-
export declare function payloadAlpha(payload: Record<string, unknown
|
|
33
|
+
/** Get alpha from payload's chunk and file commit counts. Returns 0 when signalLevel is "file". */
|
|
34
|
+
export declare function payloadAlpha(payload: Record<string, unknown>, signalLevel?: SignalLevel): number;
|
|
34
35
|
/**
|
|
35
36
|
* Blend a file+chunk numeric signal using payload alpha.
|
|
36
37
|
* For signals where chunk-level data may not exist (e.g., ageDays, bugFixRate).
|
|
37
38
|
*/
|
|
38
|
-
export declare function blendSignal(payload: Record<string, unknown>, field: string): number;
|
|
39
|
+
export declare function blendSignal(payload: Record<string, unknown>, field: string, signalLevel?: SignalLevel): number;
|
|
39
40
|
/**
|
|
40
41
|
* Normalize file and chunk values with per-source bounds, then alpha-blend.
|
|
41
42
|
* Each source is normalized to its own distribution before blending.
|
|
42
43
|
*/
|
|
43
|
-
export declare function blendNormalized(payload: Record<string, unknown>, field: string, fileBound: number, chunkBound: number): number;
|
|
44
|
+
export declare function blendNormalized(payload: Record<string, unknown>, field: string, fileBound: number, chunkBound: number, signalLevel?: SignalLevel): number;
|
|
44
45
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAG9E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAE/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAMrD,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAI5E;AAED,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAYlF;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQtE;AAMD,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CAahG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CAM9G;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CAOR"}
|
|
@@ -70,8 +70,10 @@ export function hasChunkData(payload) {
|
|
|
70
70
|
// ---------------------------------------------------------------------------
|
|
71
71
|
// Blending helpers (compute alpha from payload)
|
|
72
72
|
// ---------------------------------------------------------------------------
|
|
73
|
-
/** Get alpha from payload's chunk and file commit counts. */
|
|
74
|
-
export function payloadAlpha(payload) {
|
|
73
|
+
/** Get alpha from payload's chunk and file commit counts. Returns 0 when signalLevel is "file". */
|
|
74
|
+
export function payloadAlpha(payload, signalLevel) {
|
|
75
|
+
if (signalLevel === "file")
|
|
76
|
+
return 0;
|
|
75
77
|
const chunkCC = chunkField(payload, "commitCount");
|
|
76
78
|
if (chunkCC === undefined || chunkCC <= 0)
|
|
77
79
|
return 0;
|
|
@@ -88,9 +90,9 @@ export function payloadAlpha(payload) {
|
|
|
88
90
|
* Blend a file+chunk numeric signal using payload alpha.
|
|
89
91
|
* For signals where chunk-level data may not exist (e.g., ageDays, bugFixRate).
|
|
90
92
|
*/
|
|
91
|
-
export function blendSignal(payload, field) {
|
|
93
|
+
export function blendSignal(payload, field, signalLevel) {
|
|
92
94
|
const fileVal = fileNum(payload, field);
|
|
93
|
-
const alpha = payloadAlpha(payload);
|
|
95
|
+
const alpha = payloadAlpha(payload, signalLevel);
|
|
94
96
|
if (alpha === 0)
|
|
95
97
|
return fileVal;
|
|
96
98
|
const chunkVal = chunkField(payload, field);
|
|
@@ -100,9 +102,9 @@ export function blendSignal(payload, field) {
|
|
|
100
102
|
* Normalize file and chunk values with per-source bounds, then alpha-blend.
|
|
101
103
|
* Each source is normalized to its own distribution before blending.
|
|
102
104
|
*/
|
|
103
|
-
export function blendNormalized(payload, field, fileBound, chunkBound) {
|
|
105
|
+
export function blendNormalized(payload, field, fileBound, chunkBound, signalLevel) {
|
|
104
106
|
const fileVal = normalize(fileNum(payload, field), fileBound);
|
|
105
|
-
const alpha = payloadAlpha(payload);
|
|
107
|
+
const alpha = payloadAlpha(payload, signalLevel);
|
|
106
108
|
if (alpha === 0)
|
|
107
109
|
return fileVal;
|
|
108
110
|
const chunkVal = chunkField(payload, field);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export class KnowledgeSiloSignal {
|
|
|
6
6
|
dampeningSource = GIT_FILE_DAMPENING;
|
|
7
7
|
static FALLBACK_THRESHOLD = 5;
|
|
8
8
|
extract(rawSignals, ctx) {
|
|
9
|
-
const effectiveCount = blendSignal(rawSignals, "contributorCount");
|
|
9
|
+
const effectiveCount = blendSignal(rawSignals, "contributorCount", ctx?.signalLevel);
|
|
10
10
|
let value;
|
|
11
11
|
if (effectiveCount <= 0)
|
|
12
12
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-silo.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/knowledge-silo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7F,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,4FAA4F,CAAC;IAC3G,OAAO,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;IAC9D,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge-silo.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/knowledge-silo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7F,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,4FAA4F,CAAC;IAC3G,OAAO,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;IAC9D,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACrF,IAAI,KAAa,CAAC;QAClB,IAAI,cAAc,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,IAAI,cAAc,KAAK,CAAC;YAAE,KAAK,GAAG,GAAG,CAAC;aACjC,IAAI,cAAc,KAAK,CAAC;YAAE,KAAK,GAAG,GAAG,CAAC;;YACtC,OAAO,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,IAAI,mBAAmB,CAAC,kBAAkB,CAAC;QAC5E,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -8,7 +8,7 @@ export class RecencySignal {
|
|
|
8
8
|
extract(rawSignals, ctx) {
|
|
9
9
|
const fb = ctx?.bounds?.["file.ageDays"] ?? this.defaultBound;
|
|
10
10
|
const cb = ctx?.bounds?.["chunk.ageDays"] ?? this.defaultBound;
|
|
11
|
-
return 1 - blendNormalized(rawSignals, "ageDays", fb, cb);
|
|
11
|
+
return 1 - blendNormalized(rawSignals, "ageDays", fb, cb, ctx?.signalLevel);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=recency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recency.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/recency.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,qFAAqF,CAAC;IACpG,OAAO,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC5C,YAAY,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,IAAa,CAAC;IAClC,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC/D,OAAO,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"recency.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/recency.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,qFAAqF,CAAC;IACpG,OAAO,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC5C,YAAY,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,IAAa,CAAC;IAClC,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC/D,OAAO,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export class RelativeChurnNormSignal {
|
|
|
9
9
|
extract(rawSignals, ctx) {
|
|
10
10
|
const fb = ctx?.bounds?.["file.relativeChurn"] ?? this.defaultBound;
|
|
11
11
|
const cb = ctx?.bounds?.["chunk.relativeChurn"] ?? this.defaultBound;
|
|
12
|
-
let value = blendNormalized(rawSignals, "relativeChurn", fb, cb);
|
|
12
|
+
let value = blendNormalized(rawSignals, "relativeChurn", fb, cb, ctx?.signalLevel);
|
|
13
13
|
const k = ctx?.dampeningThreshold ?? RelativeChurnNormSignal.FALLBACK_THRESHOLD;
|
|
14
14
|
value *= confidenceDampening(fileNum(rawSignals, "commitCount"), k);
|
|
15
15
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relative-churn-norm.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/relative-churn-norm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,uBAAuB;IACzB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAAG,0FAA0F,CAAC;IACzG,OAAO,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IACxD,YAAY,GAAG,GAAG,CAAC;IACnB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACrE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"relative-churn-norm.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/relative-churn-norm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,uBAAuB;IACzB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAAG,0FAA0F,CAAC;IACzG,OAAO,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IACxD,YAAY,GAAG,GAAG,CAAC;IACnB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACrE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,IAAI,uBAAuB,CAAC,kBAAkB,CAAC;QAChF,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -8,7 +8,7 @@ export class StabilitySignal {
|
|
|
8
8
|
extract(rawSignals, ctx) {
|
|
9
9
|
const fb = ctx?.bounds?.["file.commitCount"] ?? this.defaultBound;
|
|
10
10
|
const cb = ctx?.bounds?.["chunk.commitCount"] ?? this.defaultBound;
|
|
11
|
-
return 1 - blendNormalized(rawSignals, "commitCount", fb, cb);
|
|
11
|
+
return 1 - blendNormalized(rawSignals, "commitCount", fb, cb, ctx?.signalLevel);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=stability.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stability.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/stability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAClB,iGAAiG,CAAC;IAC3F,OAAO,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACpD,YAAY,GAAG,EAAE,CAAC;IAClB,QAAQ,GAAG,IAAa,CAAC;IAClC,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACnE,OAAO,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"stability.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/stability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAClB,iGAAiG,CAAC;IAC3F,OAAO,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACpD,YAAY,GAAG,EAAE,CAAC;IAClB,QAAQ,GAAG,IAAa,CAAC;IAClC,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACnE,OAAO,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export class VolatilitySignal {
|
|
|
9
9
|
extract(rawSignals, ctx) {
|
|
10
10
|
const fb = ctx?.bounds?.["file.churnVolatility"] ?? this.defaultBound;
|
|
11
11
|
const cb = ctx?.bounds?.["chunk.churnVolatility"] ?? this.defaultBound;
|
|
12
|
-
let value = blendNormalized(rawSignals, "churnVolatility", fb, cb);
|
|
12
|
+
let value = blendNormalized(rawSignals, "churnVolatility", fb, cb, ctx?.signalLevel);
|
|
13
13
|
const k = ctx?.dampeningThreshold ?? VolatilitySignal.FALLBACK_THRESHOLD;
|
|
14
14
|
value *= confidenceDampening(fileNum(rawSignals, "commitCount"), k);
|
|
15
15
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volatility.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/volatility.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAClB,wGAAwG,CAAC;IAClG,OAAO,GAAG,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;IAC5D,YAAY,GAAG,GAAG,CAAC;IACnB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACtE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACvE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"volatility.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/derived-signals/volatility.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAClB,wGAAwG,CAAC;IAClG,OAAO,GAAG,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;IAC5D,YAAY,GAAG,GAAG,CAAC;IACnB,eAAe,GAAG,kBAAkB,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAmC,EAAE,GAAoB;QAC/D,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACtE,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACvE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACrF,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,IAAI,gBAAgB,CAAC,kBAAkB,CAAC;QACzE,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-review.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/code-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE5F,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,kDAAkD;IACtE,QAAQ,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"code-review.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/code-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE5F,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,kDAAkD;IACtE,QAAQ,CAAC,KAAK,WAAwD;IACtE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAQ9B;IACF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAG/B;CACH"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export class CodeReviewPreset {
|
|
2
2
|
name = "codeReview";
|
|
3
3
|
description = "Surface recent high-activity code for review";
|
|
4
|
-
tools = ["semantic_search", "hybrid_search"];
|
|
4
|
+
tools = ["semantic_search", "hybrid_search", "find_similar"];
|
|
5
5
|
weights = {
|
|
6
6
|
similarity: 0.3,
|
|
7
7
|
recency: 0.15,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/code-review.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,8CAA8C,CAAC;IAC7D,KAAK,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/code-review.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,8CAA8C,CAAC;IAC7D,KAAK,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC7D,OAAO,GAAmB;QACjC,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,GAAG;QACvB,YAAY,EAAE,CAAC,GAAG;KACnB,CAAC;IACO,WAAW,GAAgB;QAClC,IAAI,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,eAAe,CAAC;QACzD,KAAK,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;KACrC,CAAC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotspots.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/hotspots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE5F,qBAAa,cAAe,YAAW,YAAY;IACjD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,uDAAuD;IAC3E,QAAQ,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"hotspots.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/hotspots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE5F,qBAAa,cAAe,YAAW,YAAY;IACjD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,uDAAuD;IAC3E,QAAQ,CAAC,KAAK,WAAuE;IACrF,QAAQ,CAAC,OAAO,EAAE,cAAc,CAS9B;IACF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAG/B;CACH"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export class HotspotsPreset {
|
|
2
2
|
name = "hotspots";
|
|
3
3
|
description = "Identify frequently-changing bug-prone code areas";
|
|
4
|
-
tools = ["semantic_search", "hybrid_search", "rank_chunks"];
|
|
4
|
+
tools = ["semantic_search", "hybrid_search", "rank_chunks", "find_similar"];
|
|
5
5
|
weights = {
|
|
6
6
|
similarity: 0.2,
|
|
7
7
|
chunkSize: 0.1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotspots.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/hotspots.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,mDAAmD,CAAC;IAClE,KAAK,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"hotspots.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/hotspots.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,mDAAmD,CAAC;IAClE,KAAK,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAC5E,OAAO,GAAmB;QACjC,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,IAAI;QACxB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,CAAC,IAAI;KACpB,CAAC;IACO,WAAW,GAAgB;QAClC,IAAI,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;QAC9D,KAAK,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;KACrC,CAAC;CACH"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ScoringWeights } from "../../../../../contracts/types/provider.js";
|
|
2
|
-
import type { OverlayMask, RerankPreset } from "../../../../../contracts/types/reranker.js";
|
|
2
|
+
import type { OverlayMask, RerankPreset, SignalLevel } from "../../../../../contracts/types/reranker.js";
|
|
3
3
|
export declare class OnboardingPreset implements RerankPreset {
|
|
4
4
|
readonly name = "onboarding";
|
|
5
5
|
readonly description = "Well-documented, stable, mature code with shared ownership \u2014 ideal for new team members";
|
|
6
|
+
readonly signalLevel: SignalLevel;
|
|
6
7
|
readonly tools: string[];
|
|
7
8
|
readonly weights: ScoringWeights;
|
|
8
9
|
readonly overlayMask: OverlayMask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzG,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,kGAA6F;IACjH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAU;IAC3C,QAAQ,CAAC,KAAK,WAAwD;IACtE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAO9B;IACF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAG/B;CACH"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export class OnboardingPreset {
|
|
2
2
|
name = "onboarding";
|
|
3
3
|
description = "Well-documented, stable, mature code with shared ownership — ideal for new team members";
|
|
4
|
-
|
|
4
|
+
signalLevel = "file";
|
|
5
|
+
tools = ["semantic_search", "hybrid_search", "find_similar"];
|
|
5
6
|
weights = {
|
|
6
7
|
similarity: 0.3,
|
|
7
8
|
documentation: 0.2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/onboarding.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,yFAAyF,CAAC;IACxG,KAAK,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../../../../../src/core/domains/trajectory/git/rerank/presets/onboarding.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,yFAAyF,CAAC;IACxG,WAAW,GAAgB,MAAM,CAAC;IAClC,KAAK,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC7D,OAAO,GAAmB;QACjC,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,GAAG;QACd,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,CAAC,GAAG;QACf,UAAU,EAAE,CAAC,GAAG;KACjB,CAAC;IACO,WAAW,GAAgB;QAClC,IAAI,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,CAAC;QACxE,KAAK,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;KAClC,CAAC;CACH"}
|