@functional-systems/srcx 0.1.0-dev.3 → 0.1.0-dev.30
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/CHANGELOG.md +132 -1
- package/DESIGN.md +193 -58
- package/README.md +542 -38
- package/RELEASING.md +30 -9
- package/VALIDATION.md +834 -25
- package/dist/build.d.ts +81 -1
- package/dist/build.js +187 -37
- package/dist/build.js.map +1 -1
- package/dist/chunk.d.ts +9 -3
- package/dist/chunk.js +341 -14
- package/dist/chunk.js.map +1 -1
- package/dist/cli.js +103 -19
- package/dist/cli.js.map +1 -1
- package/dist/file-policy.d.ts +20 -0
- package/dist/file-policy.js +96 -0
- package/dist/file-policy.js.map +1 -0
- package/dist/implementation.d.ts +11 -0
- package/dist/implementation.js +191 -0
- package/dist/implementation.js.map +1 -0
- package/dist/publish.d.ts +18 -0
- package/dist/publish.js +158 -34
- package/dist/publish.js.map +1 -1
- package/dist/releases.js +21 -3
- package/dist/releases.js.map +1 -1
- package/dist/remote.js +38 -9
- package/dist/remote.js.map +1 -1
- package/dist/repository.d.ts +4 -1
- package/dist/repository.js +15 -11
- package/dist/repository.js.map +1 -1
- package/dist/rerank.d.ts +16 -0
- package/dist/rerank.js +87 -0
- package/dist/rerank.js.map +1 -0
- package/dist/search.d.ts +14 -4
- package/dist/search.js +119 -23
- package/dist/search.js.map +1 -1
- package/dist/skills.d.ts +24 -0
- package/dist/skills.js +155 -0
- package/dist/skills.js.map +1 -0
- package/package.json +16 -5
- package/runtime/grammars/README.md +50 -0
- package/runtime/grammars/tree-sitter-bash.LICENSE +21 -0
- package/runtime/grammars/tree-sitter-bash.wasm +0 -0
- package/runtime/grammars/tree-sitter-sql.LICENSE +21 -0
- package/runtime/grammars/tree-sitter-sql.wasm +0 -0
- package/runtime/grammars/tree-sitter-wasm.LICENSE +21 -0
- package/runtime/qwen.py +132 -0
- package/runtime/requirements.txt +34 -0
- package/skills/srcx-search/SKILL.md +85 -0
- package/src/build.ts +258 -47
- package/src/chunk.ts +360 -12
- package/src/cli.ts +212 -24
- package/src/file-policy.ts +157 -0
- package/src/implementation.ts +253 -0
- package/src/publish.ts +226 -34
- package/src/releases.ts +36 -3
- package/src/remote.ts +59 -13
- package/src/repository.ts +20 -11
- package/src/rerank.ts +131 -0
- package/src/search.ts +154 -28
- package/src/skills.ts +205 -0
package/dist/releases.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../src/releases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAY,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAwB,MAAM,aAAa,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../src/releases.ts"],"names":[],"mappings":"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"}
|
package/dist/remote.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LambdaDBClient, branchRef, tagRef, branchSource, tagSource, tagTarget, } from "@functional-systems/lambdadb";
|
|
2
|
-
import { invariant } from "./common.js";
|
|
2
|
+
import { hash, invariant } from "./common.js";
|
|
3
3
|
export class RemoteError extends Error {
|
|
4
4
|
}
|
|
5
5
|
async function request(operation, call) {
|
|
@@ -41,6 +41,30 @@ export class LambdaRemote {
|
|
|
41
41
|
store(name) {
|
|
42
42
|
const c = this.client.collection(name);
|
|
43
43
|
const ref = (r) => r.kind === "tag" ? tagRef(r.name) : branchRef(r.name);
|
|
44
|
+
// Some deployments omit managed vectors from list/query responses despite
|
|
45
|
+
// includeVectors. Keep the same immutable Tag and exact non-vector payload.
|
|
46
|
+
const hydrate = async (r, docs) => {
|
|
47
|
+
const missing = docs.filter((d) => d.embeddingStatus === "managed" && d.embedding === undefined);
|
|
48
|
+
const hydrated = new Map();
|
|
49
|
+
if (missing.length) {
|
|
50
|
+
invariant(r.kind === "tag", "Managed vector hydration requires an immutable Tag.");
|
|
51
|
+
const fetched = await request("fetch omitted vectors", () => c.docs.fetch({
|
|
52
|
+
ref: tagRef(r.name),
|
|
53
|
+
ids: missing.map((d) => d.id),
|
|
54
|
+
consistentRead: false,
|
|
55
|
+
includeVectors: true,
|
|
56
|
+
}));
|
|
57
|
+
const expected = new Map(missing.map((d) => [d.id, hash(d)]));
|
|
58
|
+
for (const item of fetched.docs) {
|
|
59
|
+
const doc = item.doc;
|
|
60
|
+
const { embedding: _, ...source } = doc;
|
|
61
|
+
invariant(!hydrated.has(doc.id) && expected.get(doc.id) === hash(source), "Returned/fetched managed payloads disagree.");
|
|
62
|
+
hydrated.set(doc.id, doc);
|
|
63
|
+
}
|
|
64
|
+
invariant(hydrated.size === expected.size, "Returned managed records are missing from fetch.");
|
|
65
|
+
}
|
|
66
|
+
return docs.map((doc) => hydrated.get(doc.id) ?? doc);
|
|
67
|
+
};
|
|
44
68
|
return {
|
|
45
69
|
fetch: (r, ids, consistent = false) => request("fetch", async () => {
|
|
46
70
|
invariant(!consistent || r.kind === "branch", "Consistent reads require a Branch.");
|
|
@@ -69,8 +93,8 @@ export class LambdaRemote {
|
|
|
69
93
|
includeVectors: true,
|
|
70
94
|
pageToken: cursor,
|
|
71
95
|
}));
|
|
72
|
-
for (const
|
|
73
|
-
yield
|
|
96
|
+
for (const doc of await hydrate(r, page.docs.map((d) => d.doc)))
|
|
97
|
+
yield doc;
|
|
74
98
|
cursor = page.nextPageToken || undefined;
|
|
75
99
|
if (cursor) {
|
|
76
100
|
invariant(!seen.has(cursor), "LambdaDB repeated a pagination cursor.");
|
|
@@ -117,12 +141,17 @@ export class LambdaRemote {
|
|
|
117
141
|
? c.aliases.retarget(name, { target: tagTarget(target) })
|
|
118
142
|
: c.aliases.create({ aliasName: name, target: tagTarget(target) }));
|
|
119
143
|
},
|
|
120
|
-
query: (
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
144
|
+
query: async (name, query, size) => {
|
|
145
|
+
const result = await request("query", () => c.query({
|
|
146
|
+
ref: tagRef(name),
|
|
147
|
+
consistentRead: false,
|
|
148
|
+
query,
|
|
149
|
+
size,
|
|
150
|
+
includeVectors: true,
|
|
151
|
+
}));
|
|
152
|
+
const docs = await hydrate({ kind: "tag", name }, result.docs.map((h) => h.doc));
|
|
153
|
+
return result.docs.map((h, i) => ({ doc: docs[i], score: h.score }));
|
|
154
|
+
},
|
|
126
155
|
};
|
|
127
156
|
}
|
|
128
157
|
}
|
package/dist/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,MAAM,EACN,YAAY,EACZ,SAAS,EACT,SAAS,GAEV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
package/dist/repository.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { type Preset } from "./build.js";
|
|
1
2
|
import { type Identity } from "./git.js";
|
|
2
3
|
import { LambdaRemote } from "./remote.js";
|
|
3
4
|
import { type Binding } from "./publish.js";
|
|
4
5
|
import { type Settings } from "./settings.js";
|
|
5
6
|
export type Repository = Binding & {
|
|
7
|
+
preset?: Preset;
|
|
6
8
|
collection: string;
|
|
7
9
|
name: string;
|
|
8
10
|
description: string;
|
|
@@ -11,7 +13,7 @@ export type Repository = Binding & {
|
|
|
11
13
|
export declare function destination(s: Settings, collection: string): string;
|
|
12
14
|
export declare function collectionName(key: string, name: string, configHash: string): string;
|
|
13
15
|
/** LambdaDB adds its built-in keyword id index to collection metadata. */
|
|
14
|
-
export declare function matchesIndexSchema(actual: unknown): boolean;
|
|
16
|
+
export declare function matchesIndexSchema(actual: unknown, preset?: Preset): boolean;
|
|
15
17
|
export declare function discover(remote: LambdaRemote): Promise<{
|
|
16
18
|
repositories: Repository[];
|
|
17
19
|
partial: {
|
|
@@ -25,5 +27,6 @@ export declare function register(remote: LambdaRemote, args: {
|
|
|
25
27
|
remote?: string;
|
|
26
28
|
description?: string;
|
|
27
29
|
labels?: Record<string, string>;
|
|
30
|
+
preset?: Preset;
|
|
28
31
|
}): Promise<Repository>;
|
|
29
32
|
export declare function attachment(s: Settings, r: Repository): Promise<Identity>;
|
package/dist/repository.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { atomic, hash, invariant, optionalJson, PURPOSE, } from "./common.js";
|
|
4
|
-
import { PRESET,
|
|
4
|
+
import { PRESET, indexConfigs, supportedPreset } from "./build.js";
|
|
5
5
|
import { identity } from "./git.js";
|
|
6
6
|
import { one, branch } from "./remote.js";
|
|
7
7
|
import { exclusive } from "./publish.js";
|
|
@@ -18,13 +18,13 @@ export function collectionName(key, name, configHash) {
|
|
|
18
18
|
return `code-${slug}-${hash(["collection-v1", key, configHash]).slice(0, 16)}`;
|
|
19
19
|
}
|
|
20
20
|
/** LambdaDB adds its built-in keyword id index to collection metadata. */
|
|
21
|
-
export function matchesIndexSchema(actual) {
|
|
21
|
+
export function matchesIndexSchema(actual, preset = PRESET) {
|
|
22
22
|
if (!actual || typeof actual !== "object" || Array.isArray(actual))
|
|
23
23
|
return false;
|
|
24
24
|
const { id, ...fields } = actual;
|
|
25
25
|
if (id !== undefined && hash(id) !== hash({ type: "keyword" }))
|
|
26
26
|
return false;
|
|
27
|
-
return hash(fields) === hash(
|
|
27
|
+
return hash(fields) === hash(indexConfigs(preset));
|
|
28
28
|
}
|
|
29
29
|
function descriptor(r) {
|
|
30
30
|
return {
|
|
@@ -37,24 +37,25 @@ function descriptor(r) {
|
|
|
37
37
|
repoId: r.repoId,
|
|
38
38
|
indexId: r.indexId,
|
|
39
39
|
name: r.name,
|
|
40
|
-
preset: PRESET,
|
|
40
|
+
preset: r.preset ?? PRESET,
|
|
41
41
|
initialization: "ready",
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
function decode(doc, c) {
|
|
45
45
|
invariant(doc?.role === "repository" &&
|
|
46
46
|
doc.initialization === "ready" &&
|
|
47
|
-
doc.
|
|
48
|
-
|
|
47
|
+
supportedPreset(doc.preset) &&
|
|
48
|
+
doc.configHash === hash(doc.preset), "Repository is partially initialized or uses an unsupported preset.");
|
|
49
49
|
invariant(doc.indexId === c.tags["index-id"] &&
|
|
50
50
|
doc.configHash === c.tags["config-hash"] &&
|
|
51
51
|
c.tags.purpose === PURPOSE, "Repository descriptor and Collection labels disagree.");
|
|
52
|
-
invariant(matchesIndexSchema(c.indexConfigs), "Collection schema differs from the pinned preset.");
|
|
52
|
+
invariant(matchesIndexSchema(c.indexConfigs, doc.preset), "Collection schema differs from the pinned preset.");
|
|
53
53
|
invariant(typeof doc.repoKey === "string" &&
|
|
54
54
|
typeof doc.repoId === "string" &&
|
|
55
55
|
typeof doc.indexId === "string" &&
|
|
56
56
|
typeof doc.name === "string", "Malformed repository descriptor.");
|
|
57
57
|
return {
|
|
58
|
+
preset: doc.preset,
|
|
58
59
|
collection: c.collectionName,
|
|
59
60
|
repoKey: doc.repoKey,
|
|
60
61
|
repoId: doc.repoId,
|
|
@@ -91,13 +92,15 @@ export async function selectRepository(remote, selector) {
|
|
|
91
92
|
r.repoKey.split("/").slice(1).join("/") === selector ||
|
|
92
93
|
r.collection === selector);
|
|
93
94
|
invariant(selected.length === 1, selected.length
|
|
94
|
-
? "Ambiguous repository; use its
|
|
95
|
+
? "Ambiguous repository; use its exact Collection name (presets have separate Collections)."
|
|
95
96
|
: `Repository not found${partial.length ? "; partially initialized collections exist (see repo list)" : ""}.`);
|
|
96
97
|
return selected[0];
|
|
97
98
|
}
|
|
98
99
|
export async function register(remote, args) {
|
|
99
100
|
const source = await identity(args.path, args.remote);
|
|
100
|
-
const
|
|
101
|
+
const preset = args.preset ?? PRESET;
|
|
102
|
+
invariant(supportedPreset(preset), "Unsupported repository preset.");
|
|
103
|
+
const configHash = hash(preset), collection = collectionName(source.key, source.name, configHash), state = destination(remote.settings, collection);
|
|
101
104
|
return exclusive(state, async () => {
|
|
102
105
|
const initPath = join(state, "initialization.json");
|
|
103
106
|
let intent = await optionalJson(initPath);
|
|
@@ -127,6 +130,7 @@ export async function register(remote, args) {
|
|
|
127
130
|
invariant(description.length <= 255, "Description exceeds 255 characters.");
|
|
128
131
|
const indexId = randomUUID();
|
|
129
132
|
intent = {
|
|
133
|
+
preset,
|
|
130
134
|
repoKey: source.key,
|
|
131
135
|
name: source.name,
|
|
132
136
|
repoId: randomUUID(),
|
|
@@ -149,9 +153,9 @@ export async function register(remote, args) {
|
|
|
149
153
|
invariant(intent.repoKey === source.key && intent.configHash === configHash, "Provisioning journal identity mismatch.");
|
|
150
154
|
if (existing)
|
|
151
155
|
invariant(hash(existing.tags) === hash(intent.tags) &&
|
|
152
|
-
matchesIndexSchema(existing.indexConfigs), "Existing Collection differs from provisioning journal.");
|
|
156
|
+
matchesIndexSchema(existing.indexConfigs, preset), "Existing Collection differs from provisioning journal.");
|
|
153
157
|
else
|
|
154
|
-
await remote.create(collection, JSON.parse(JSON.stringify(
|
|
158
|
+
await remote.create(collection, JSON.parse(JSON.stringify(indexConfigs(preset))), intent.description, intent.tags);
|
|
155
159
|
const store = remote.store(collection);
|
|
156
160
|
const branches = await store.branches();
|
|
157
161
|
const empty = branches.find((b) => b.name === "checkpoint-empty");
|
package/dist/repository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,OAAO,GAER,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
|
package/dist/rerank.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const QWEN_MODEL = "Qwen/Qwen3-Reranker-0.6B";
|
|
2
|
+
export declare const QWEN_REVISION = "e61197ed45024b0ed8a2d74b80b4d909f1255473";
|
|
3
|
+
export type Candidate = {
|
|
4
|
+
id: string;
|
|
5
|
+
text: string;
|
|
6
|
+
};
|
|
7
|
+
export type RerankOptions = {
|
|
8
|
+
rerank?: "qwen";
|
|
9
|
+
candidates?: number;
|
|
10
|
+
onTiming?: (timing: Record<string, unknown>) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare function candidateLimit(limit: number, options: RerankOptions): number;
|
|
13
|
+
export declare function qwenScores(query: string, candidates: Candidate[]): Promise<{
|
|
14
|
+
scores: number[];
|
|
15
|
+
elapsedMs: number;
|
|
16
|
+
}>;
|
package/dist/rerank.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { invariant } from "./common.js";
|
|
4
|
+
export const QWEN_MODEL = "Qwen/Qwen3-Reranker-0.6B";
|
|
5
|
+
export const QWEN_REVISION = "e61197ed45024b0ed8a2d74b80b4d909f1255473";
|
|
6
|
+
// Reserved worker exit codes; never interpret or forward library stderr.
|
|
7
|
+
const WORKER_FAILURES = {
|
|
8
|
+
20: "Qwen Python dependencies are missing or incompatible. Install runtime/requirements.txt with the Python selected by SRCX_RERANK_PYTHON.",
|
|
9
|
+
21: "Qwen model cache is missing or incomplete. Download the pinned model revision from README and check HF_HUB_CACHE.",
|
|
10
|
+
22: "Qwen device is invalid or unavailable. Set SRCX_RERANK_DEVICE to auto or cpu, or a supported mps/cuda device.",
|
|
11
|
+
23: "Qwen query/chunk pair exceeds 8,192 tokens. Shorten the query or use search without --rerank; source is not truncated.",
|
|
12
|
+
24: "Qwen request exceeds 4 MiB. Reduce --candidates or shorten the query.",
|
|
13
|
+
};
|
|
14
|
+
export function candidateLimit(limit, options) {
|
|
15
|
+
invariant(Number.isInteger(limit) && limit >= 1 && limit <= 100, "Limit must be an integer from 1 to 100.");
|
|
16
|
+
invariant(options.rerank === undefined || options.rerank === "qwen", "Unknown reranker.");
|
|
17
|
+
invariant(options.rerank || options.candidates === undefined, "--candidates requires --rerank qwen.");
|
|
18
|
+
const count = options.rerank
|
|
19
|
+
? (options.candidates ?? Math.max(50, limit))
|
|
20
|
+
: limit;
|
|
21
|
+
invariant(Number.isInteger(count) && count >= limit && count <= 100, "Candidates must be an integer between --limit and 100.");
|
|
22
|
+
if (options.rerank)
|
|
23
|
+
invariant(process.env.SRCX_RERANK_PYTHON, "Set SRCX_RERANK_PYTHON to the prepared Python executable; see README reranker setup.");
|
|
24
|
+
return count;
|
|
25
|
+
}
|
|
26
|
+
export async function qwenScores(query, candidates) {
|
|
27
|
+
invariant(candidates.length > 0 &&
|
|
28
|
+
candidates.length <= 100 &&
|
|
29
|
+
new Set(candidates.map((c) => c.id)).size === candidates.length, "Invalid reranker candidates.");
|
|
30
|
+
const input = JSON.stringify({ query, candidates });
|
|
31
|
+
invariant(Buffer.byteLength(input) <= 4 * 1024 * 1024, "Reranker input exceeds 4 MiB. Reduce --candidates or shorten the query; no fallback was applied.");
|
|
32
|
+
const python = process.env.SRCX_RERANK_PYTHON;
|
|
33
|
+
invariant(python, "Set SRCX_RERANK_PYTHON to the prepared Python executable.");
|
|
34
|
+
const start = performance.now();
|
|
35
|
+
const stdout = await new Promise((resolve, reject) => {
|
|
36
|
+
const child = execFile(python, [fileURLToPath(new URL("../runtime/qwen.py", import.meta.url))], {
|
|
37
|
+
encoding: "utf8",
|
|
38
|
+
timeout: 120_000,
|
|
39
|
+
killSignal: "SIGKILL",
|
|
40
|
+
maxBuffer: 1024 * 1024,
|
|
41
|
+
env: {
|
|
42
|
+
...process.env,
|
|
43
|
+
HF_HUB_OFFLINE: "1",
|
|
44
|
+
HF_HUB_DISABLE_TELEMETRY: "1",
|
|
45
|
+
TOKENIZERS_PARALLELISM: "false",
|
|
46
|
+
},
|
|
47
|
+
}, (error, output) => {
|
|
48
|
+
if (!error)
|
|
49
|
+
return resolve(output);
|
|
50
|
+
let message = "Qwen reranking failed. Check Python dependencies, cached model and SRCX_RERANK_DEVICE.";
|
|
51
|
+
if (error.code === "ENOENT")
|
|
52
|
+
message =
|
|
53
|
+
"Qwen Python executable was not found. Set SRCX_RERANK_PYTHON to an existing Python executable.";
|
|
54
|
+
else if (error.code === "EACCES")
|
|
55
|
+
message =
|
|
56
|
+
"Qwen Python executable cannot be started. Check execute permissions for SRCX_RERANK_PYTHON.";
|
|
57
|
+
else if (error.killed && error.signal === "SIGKILL" && !error.code)
|
|
58
|
+
message =
|
|
59
|
+
"Qwen reranking exceeded 120 seconds. Reduce --candidates or use an available faster device via SRCX_RERANK_DEVICE.";
|
|
60
|
+
else if (typeof error.code === "number")
|
|
61
|
+
message = WORKER_FAILURES[error.code] ?? message;
|
|
62
|
+
reject(new Error(`${message} No fallback was applied.`));
|
|
63
|
+
});
|
|
64
|
+
// An early worker exit can close stdin before Node finishes writing.
|
|
65
|
+
child.stdin?.on("error", () => { });
|
|
66
|
+
child.stdin?.end(input);
|
|
67
|
+
});
|
|
68
|
+
let response;
|
|
69
|
+
try {
|
|
70
|
+
response = JSON.parse(stdout);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
throw new Error("Invalid Qwen response.");
|
|
74
|
+
}
|
|
75
|
+
invariant(response?.model === QWEN_MODEL &&
|
|
76
|
+
response?.revision === QWEN_REVISION &&
|
|
77
|
+
Array.isArray(response.scores) &&
|
|
78
|
+
response.scores.length === candidates.length, "Qwen response model or candidate count mismatch.");
|
|
79
|
+
const scores = response.scores.map((entry, index) => {
|
|
80
|
+
invariant(entry?.id === candidates[index].id &&
|
|
81
|
+
typeof entry.score === "number" &&
|
|
82
|
+
Number.isFinite(entry.score), "Qwen response candidate identity or score mismatch.");
|
|
83
|
+
return entry.score;
|
|
84
|
+
});
|
|
85
|
+
return { scores, elapsedMs: performance.now() - start };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=rerank.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rerank.js","sourceRoot":"","sources":["../src/rerank.ts"],"names":[],"mappings":"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"}
|
package/dist/search.d.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { type CollectionStore } from "./remote.js";
|
|
|
2
2
|
import { type Settings } from "./settings.js";
|
|
3
3
|
import type { Repository } from "./repository.js";
|
|
4
4
|
import type { Published } from "./publish.js";
|
|
5
|
-
import type
|
|
5
|
+
import { type InventoryItem } from "./build.js";
|
|
6
|
+
import { type Implementation } from "./implementation.js";
|
|
7
|
+
import { type RerankOptions } from "./rerank.js";
|
|
6
8
|
export type Handle = {
|
|
7
9
|
id: string;
|
|
8
10
|
endpoint: string;
|
|
@@ -22,17 +24,27 @@ export declare function lexicalQuery(query: string, filters?: {
|
|
|
22
24
|
path?: string;
|
|
23
25
|
language?: string;
|
|
24
26
|
}): Record<string, unknown>;
|
|
27
|
+
export type SearchMode = "lexical" | "semantic" | "hybrid";
|
|
28
|
+
export declare function retrievalQuery(query: string, size: number, filters: {
|
|
29
|
+
path?: string;
|
|
30
|
+
language?: string;
|
|
31
|
+
}, mode: SearchMode): Record<string, unknown>;
|
|
25
32
|
export declare function search(store: CollectionStore, s: Settings, r: Repository, v: Published, query: string, size?: number, filters?: {
|
|
26
33
|
path?: string;
|
|
27
34
|
language?: string;
|
|
28
|
-
}): Promise<unknown[]>;
|
|
35
|
+
}, mode?: SearchMode, options?: RerankOptions): Promise<unknown[]>;
|
|
29
36
|
export declare function loadHandle(id: string): Promise<Handle>;
|
|
30
37
|
export declare function directHandle(store: CollectionStore, s: Settings, r: Repository, v: Published, path: string): Promise<Handle>;
|
|
31
38
|
export declare function readHandle(store: CollectionStore, s: Settings, h: Handle, options?: {
|
|
32
39
|
context?: number;
|
|
33
40
|
fullFile?: boolean;
|
|
34
41
|
lines?: [number, number];
|
|
42
|
+
exactChunk?: boolean;
|
|
43
|
+
implementation?: boolean;
|
|
35
44
|
}): Promise<{
|
|
45
|
+
sourceText: string;
|
|
46
|
+
citation: string;
|
|
47
|
+
implementation?: Implementation | undefined;
|
|
36
48
|
repository: string;
|
|
37
49
|
commitOid: string;
|
|
38
50
|
version: string;
|
|
@@ -41,6 +53,4 @@ export declare function readHandle(store: CollectionStore, s: Settings, h: Handl
|
|
|
41
53
|
startLine: number;
|
|
42
54
|
endLine: number;
|
|
43
55
|
contentHash: string;
|
|
44
|
-
sourceText: string;
|
|
45
|
-
citation: string;
|
|
46
56
|
}>;
|