@appinternalleads/ui 0.3.0 → 0.4.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/dist/cjs/agent/base.js +25 -0
- package/dist/cjs/agent/base.js.map +1 -0
- package/dist/cjs/agent/catalog.js +0 -32
- package/dist/cjs/agent/catalog.js.map +1 -1
- package/dist/cjs/agent/core.js +22 -20
- package/dist/cjs/agent/core.js.map +1 -1
- package/dist/cjs/agent/index.js +6 -5
- package/dist/cjs/agent/index.js.map +1 -1
- package/dist/cjs/agent/search/document.js +50 -0
- package/dist/cjs/agent/search/document.js.map +1 -0
- package/dist/cjs/agent/search/embedding.js +107 -0
- package/dist/cjs/agent/search/embedding.js.map +1 -0
- package/dist/cjs/agent/search/index.js +25 -0
- package/dist/cjs/agent/search/index.js.map +1 -0
- package/dist/cjs/agent/search/lexical.js +28 -0
- package/dist/cjs/agent/search/lexical.js.map +1 -0
- package/dist/cjs/agent/search/normalize.js +15 -0
- package/dist/cjs/agent/search/normalize.js.map +1 -0
- package/dist/cjs/agent/search/search.js +123 -0
- package/dist/cjs/agent/search/search.js.map +1 -0
- package/dist/cjs/agent/search/searchIndex.js +120 -0
- package/dist/cjs/agent/search/searchIndex.js.map +1 -0
- package/dist/cjs/agent/search/types.js +8 -0
- package/dist/cjs/agent/search/types.js.map +1 -0
- package/dist/cjs/agent/search/weights.js +34 -0
- package/dist/cjs/agent/search/weights.js.map +1 -0
- package/dist/cjs/agent/search/wordvectors.json +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/agent/base.d.ts +11 -0
- package/dist/esm/agent/base.d.ts.map +1 -0
- package/dist/esm/agent/base.js +11 -0
- package/dist/esm/agent/base.js.map +1 -0
- package/dist/esm/agent/catalog.d.ts +0 -8
- package/dist/esm/agent/catalog.d.ts.map +1 -1
- package/dist/esm/agent/catalog.js +0 -31
- package/dist/esm/agent/catalog.js.map +1 -1
- package/dist/esm/agent/core.d.ts +6 -7
- package/dist/esm/agent/core.d.ts.map +1 -1
- package/dist/esm/agent/core.js +6 -7
- package/dist/esm/agent/core.js.map +1 -1
- package/dist/esm/agent/index.d.ts +6 -5
- package/dist/esm/agent/index.d.ts.map +1 -1
- package/dist/esm/agent/index.js +6 -5
- package/dist/esm/agent/index.js.map +1 -1
- package/dist/esm/agent/search/document.d.ts +6 -0
- package/dist/esm/agent/search/document.d.ts.map +1 -0
- package/dist/esm/agent/search/document.js +46 -0
- package/dist/esm/agent/search/document.js.map +1 -0
- package/dist/esm/agent/search/embedding.d.ts +31 -0
- package/dist/esm/agent/search/embedding.d.ts.map +1 -0
- package/dist/esm/agent/search/embedding.js +103 -0
- package/dist/esm/agent/search/embedding.js.map +1 -0
- package/dist/esm/agent/search/index.d.ts +10 -0
- package/dist/esm/agent/search/index.d.ts.map +1 -0
- package/dist/esm/agent/search/index.js +17 -0
- package/dist/esm/agent/search/index.js.map +1 -0
- package/dist/esm/agent/search/lexical.d.ts +3 -0
- package/dist/esm/agent/search/lexical.d.ts.map +1 -0
- package/dist/esm/agent/search/lexical.js +25 -0
- package/dist/esm/agent/search/lexical.js.map +1 -0
- package/dist/esm/agent/search/normalize.d.ts +13 -0
- package/dist/esm/agent/search/normalize.d.ts.map +1 -0
- package/dist/esm/agent/search/normalize.js +12 -0
- package/dist/esm/agent/search/normalize.js.map +1 -0
- package/dist/esm/agent/search/search.d.ts +42 -0
- package/dist/esm/agent/search/search.d.ts.map +1 -0
- package/dist/esm/agent/search/search.js +119 -0
- package/dist/esm/agent/search/search.js.map +1 -0
- package/dist/esm/agent/search/searchIndex.d.ts +42 -0
- package/dist/esm/agent/search/searchIndex.d.ts.map +1 -0
- package/dist/esm/agent/search/searchIndex.js +114 -0
- package/dist/esm/agent/search/searchIndex.js.map +1 -0
- package/dist/esm/agent/search/types.d.ts +67 -0
- package/dist/esm/agent/search/types.d.ts.map +1 -0
- package/dist/esm/agent/search/types.js +7 -0
- package/dist/esm/agent/search/types.js.map +1 -0
- package/dist/esm/agent/search/weights.d.ts +22 -0
- package/dist/esm/agent/search/weights.d.ts.map +1 -0
- package/dist/esm/agent/search/weights.js +31 -0
- package/dist/esm/agent/search/weights.js.map +1 -0
- package/dist/esm/agent/search/wordvectors.json +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -1
- package/src/agent/base.ts +17 -0
- package/src/agent/catalog.ts +0 -32
- package/src/agent/core.ts +6 -14
- package/src/agent/index.ts +6 -5
- package/src/agent/search/document.ts +46 -0
- package/src/agent/search/embedding.ts +95 -0
- package/src/agent/search/index.ts +20 -0
- package/src/agent/search/lexical.ts +25 -0
- package/src/agent/search/normalize.ts +17 -0
- package/src/agent/search/search.ts +148 -0
- package/src/agent/search/searchIndex.ts +107 -0
- package/src/agent/search/types.ts +68 -0
- package/src/agent/search/weights.ts +32 -0
- package/src/index.ts +1 -1
- package/tools/ask/dist/components.mjs +348 -12
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.indexVersion = exports.SearchIndex = void 0;
|
|
4
|
+
exports.cosine = cosine;
|
|
5
|
+
const document_1 = require("./document");
|
|
6
|
+
class SearchIndex {
|
|
7
|
+
provider;
|
|
8
|
+
version;
|
|
9
|
+
entries = new Map();
|
|
10
|
+
mean = null;
|
|
11
|
+
/** The first principal component of the (centred) document vectors — the direction every text shares most (SIF's common-component removal). */
|
|
12
|
+
principal = null;
|
|
13
|
+
constructor(provider, version) {
|
|
14
|
+
this.provider = provider;
|
|
15
|
+
this.version = version;
|
|
16
|
+
}
|
|
17
|
+
/** Throw away everything and index these documents. */
|
|
18
|
+
build(docs) {
|
|
19
|
+
this.entries.clear();
|
|
20
|
+
for (const d of docs)
|
|
21
|
+
this.put(d);
|
|
22
|
+
this.version = (0, exports.indexVersion)(docs, this.provider);
|
|
23
|
+
return this.recentre();
|
|
24
|
+
}
|
|
25
|
+
/** Add or replace one component. */
|
|
26
|
+
upsert(doc, allDocs) {
|
|
27
|
+
this.put(doc);
|
|
28
|
+
if (allDocs)
|
|
29
|
+
this.version = (0, exports.indexVersion)(allDocs, this.provider);
|
|
30
|
+
return this.recentre();
|
|
31
|
+
}
|
|
32
|
+
remove(component, allDocs) {
|
|
33
|
+
this.entries.delete(component);
|
|
34
|
+
if (allDocs)
|
|
35
|
+
this.version = (0, exports.indexVersion)(allDocs, this.provider);
|
|
36
|
+
return this.recentre();
|
|
37
|
+
}
|
|
38
|
+
put(d) {
|
|
39
|
+
const vectors = this.provider.embed([...d.positive.map(p => p.text), ...d.negative.map(n => n.text)]);
|
|
40
|
+
if (vectors.length !== d.positive.length + d.negative.length)
|
|
41
|
+
throw new Error(`${this.provider.id} returned ${vectors.length} vectors for ${d.component}`);
|
|
42
|
+
this.entries.set(d.component, {
|
|
43
|
+
component: d.component,
|
|
44
|
+
order: d.order,
|
|
45
|
+
positive: d.positive.map((p, i) => ({ type: p.type, vector: vectors[i] })),
|
|
46
|
+
negative: vectors.slice(d.positive.length),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/** The mean of every positive field vector: what all documents share, subtracted before comparing when centring. */
|
|
50
|
+
recentre() {
|
|
51
|
+
let sum = null;
|
|
52
|
+
let n = 0;
|
|
53
|
+
for (const e of this.entries.values())
|
|
54
|
+
for (const p of e.positive) {
|
|
55
|
+
sum ??= new Float32Array(p.vector.length);
|
|
56
|
+
for (let i = 0; i < sum.length; i++)
|
|
57
|
+
sum[i] += p.vector[i];
|
|
58
|
+
n++;
|
|
59
|
+
}
|
|
60
|
+
if (sum && n)
|
|
61
|
+
for (let i = 0; i < sum.length; i++)
|
|
62
|
+
sum[i] /= n;
|
|
63
|
+
this.mean = sum;
|
|
64
|
+
this.principal = sum ? firstComponent([...this.entries.values()].flatMap(e => e.positive.map(p => p.vector)), sum) : null;
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.SearchIndex = SearchIndex;
|
|
69
|
+
const indexVersion = (docs, provider) => `${(0, document_1.versionOf)(docs)}:${provider.id}`;
|
|
70
|
+
exports.indexVersion = indexVersion;
|
|
71
|
+
/** Power iteration — deterministic start, fixed iterations. */
|
|
72
|
+
function firstComponent(vectors, mean) {
|
|
73
|
+
const d = mean.length;
|
|
74
|
+
let u = new Float32Array(d).fill(1 / Math.sqrt(d));
|
|
75
|
+
for (let it = 0; it < 30; it++) {
|
|
76
|
+
const next = new Float32Array(d);
|
|
77
|
+
for (const v of vectors) {
|
|
78
|
+
let dot = 0;
|
|
79
|
+
for (let i = 0; i < d; i++)
|
|
80
|
+
dot += (v[i] - mean[i]) * u[i];
|
|
81
|
+
for (let i = 0; i < d; i++)
|
|
82
|
+
next[i] += dot * (v[i] - mean[i]);
|
|
83
|
+
}
|
|
84
|
+
let n = 0;
|
|
85
|
+
for (const x of next)
|
|
86
|
+
n += x * x;
|
|
87
|
+
n = Math.sqrt(n) || 1;
|
|
88
|
+
for (let i = 0; i < d; i++)
|
|
89
|
+
next[i] /= n;
|
|
90
|
+
u = next;
|
|
91
|
+
}
|
|
92
|
+
return u;
|
|
93
|
+
}
|
|
94
|
+
function centred(v, c) {
|
|
95
|
+
if (!c.mean && !c.principal)
|
|
96
|
+
return v;
|
|
97
|
+
const out = new Float32Array(v.length);
|
|
98
|
+
for (let i = 0; i < v.length; i++)
|
|
99
|
+
out[i] = v[i] - (c.mean ? c.mean[i] : 0);
|
|
100
|
+
if (c.principal) {
|
|
101
|
+
let dot = 0;
|
|
102
|
+
for (let i = 0; i < v.length; i++)
|
|
103
|
+
dot += out[i] * c.principal[i];
|
|
104
|
+
for (let i = 0; i < v.length; i++)
|
|
105
|
+
out[i] -= dot * c.principal[i];
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
/** Cosine similarity after centring. */
|
|
110
|
+
function cosine(a, b, c = { mean: null, principal: null }) {
|
|
111
|
+
const x = centred(a, c), y = centred(b, c);
|
|
112
|
+
let dot = 0, na = 0, nb = 0;
|
|
113
|
+
for (let i = 0; i < x.length; i++) {
|
|
114
|
+
dot += x[i] * y[i];
|
|
115
|
+
na += x[i] * x[i];
|
|
116
|
+
nb += y[i] * y[i];
|
|
117
|
+
}
|
|
118
|
+
return na && nb ? dot / Math.sqrt(na * nb) : 0;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=searchIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchIndex.js","sourceRoot":"","sources":["../../../../src/agent/search/searchIndex.ts"],"names":[],"mappings":";;;AAqGA,wBAKC;AA1GD,yCAAuC;AAgBvC,MAAa,WAAW;IAKD;IAAoC;IAJhD,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtD,IAAI,GAAwB,IAAI,CAAC;IACjC,+IAA+I;IAC/I,SAAS,GAAwB,IAAI,CAAC;IACtC,YAAqB,QAA2B,EAAS,OAAe;QAAnD,aAAQ,GAAR,QAAQ,CAAmB;QAAS,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAE5E,uDAAuD;IACvD,KAAK,CAAC,IAA+B;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAGD,oCAAoC;IACpC,MAAM,CAAC,GAAmB,EAAE,OAAmC;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAmC;QAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEO,GAAG,CAAC,CAAiB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3J,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;YAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YAC3E,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,oHAAoH;IAC5G,QAAQ;QACd,IAAI,GAAG,GAAwB,IAAI,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAClE,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;gBAC7D,CAAC,EAAE,CAAC;YACN,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1H,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArDD,kCAqDC;AAEM,MAAM,YAAY,GAAG,CAAC,IAA+B,EAAE,QAA2B,EAAE,EAAE,CAAC,GAAG,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;AAArH,QAAA,YAAY,gBAAyG;AAElI,+DAA+D;AAC/D,SAAS,cAAc,CAAC,OAAuB,EAAE,IAAkB;IACjE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,GAAG,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,CAAC,CAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,GAAG,IAAI,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAID,SAAS,OAAO,CAAC,CAAe,EAAE,CAAW;IAC3C,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,CAAC,CAAE,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;IAAC,CAAC;IAC3K,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wCAAwC;AACxC,SAAgB,MAAM,CAAC,CAAe,EAAE,CAAe,EAAE,IAAc,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACpG,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAAC,CAAC;IACtG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* **Component search — its internal types.** None of this is part of the agent contract: the agent
|
|
4
|
+
* calls `searchComponents(query)` and gets cards. How candidates are found — lexical, semantic,
|
|
5
|
+
* in memory or not — can change without it knowing.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/agent/search/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_WEIGHTS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* **The ranking weights — measured, not guessed.** Chosen on the dev half of the evaluation set
|
|
6
|
+
* (`tests/agent/search-eval.ts`) with `tools/search/tune.ts` and a threshold sweep; the test half is
|
|
7
|
+
* reported, never tuned on. The record of why is in docs/DECISIONS.md §19.
|
|
8
|
+
*
|
|
9
|
+
* - Every document field counts; the ones about what a person does with the component (actions,
|
|
10
|
+
* states, events, data) a little less than what it is for.
|
|
11
|
+
* - The semantic score is the mean of the three closest fields, after removing the catalogue mean.
|
|
12
|
+
* - A query closer to a component's `avoidWhen` than to anything it is for is pushed down by half
|
|
13
|
+
* the difference.
|
|
14
|
+
* - Lexical matching adds up to 0.3 — a confident phrase or name match keeps its place; a shared
|
|
15
|
+
* word alone cannot outvote meaning.
|
|
16
|
+
* - A candidate needs 0.3, and 60% of the best — so an ambiguous request keeps its alternatives and
|
|
17
|
+
* a clear one does not trail five weak ones. (Off-topic and on-topic scores overlap; 0.3 rejects
|
|
18
|
+
* about half the off-topic requests without losing on-topic ones.)
|
|
19
|
+
*
|
|
20
|
+
* Measured and not adopted: word-level alignment, reciprocal rank fusion, hubness (CSLS) correction
|
|
21
|
+
* and principal-component removal — none beat this on the development data.
|
|
22
|
+
*/
|
|
23
|
+
exports.DEFAULT_WEIGHTS = {
|
|
24
|
+
fields: { name: 1, purpose: 1, signal: 1, useWhen: 1, scenario: 1, action: 0.8, state: 0.8, event: 0.8, data: 0.8 },
|
|
25
|
+
topK: 3,
|
|
26
|
+
negative: 0.5,
|
|
27
|
+
centre: 'mean',
|
|
28
|
+
semantic: 1,
|
|
29
|
+
lexical: 0.3,
|
|
30
|
+
lexicalHalf: 6,
|
|
31
|
+
minScore: 0.3,
|
|
32
|
+
relative: 0.6,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=weights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weights.js","sourceRoot":"","sources":["../../../../src/agent/search/weights.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,eAAe,GAAkB;IAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;IACnH,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAC"}
|