lmgrep 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -3
- package/dist/application/LmgrepFactory.d.ts +5 -0
- package/dist/application/LmgrepFactory.js +28 -5
- package/dist/application/LmgrepFactory.js.map +1 -1
- package/dist/application/indexing/IndexBuilder.js +2 -0
- package/dist/application/indexing/IndexBuilder.js.map +1 -1
- package/dist/application/operations/IndexAlternatives.js +7 -0
- package/dist/application/operations/IndexAlternatives.js.map +1 -1
- package/dist/application/search/SearchService.d.ts +3 -1
- package/dist/application/search/SearchService.js +9 -1
- package/dist/application/search/SearchService.js.map +1 -1
- package/dist/domain/ports/IndexPathPort.d.ts +3 -0
- package/dist/domain/ports/IndexPathPort.js +2 -0
- package/dist/domain/ports/IndexPathPort.js.map +1 -0
- package/dist/domain/project/EmbeddingProfile.d.ts +14 -0
- package/dist/domain/project/EmbeddingProfile.js +34 -0
- package/dist/domain/project/EmbeddingProfile.js.map +1 -0
- package/dist/domain/project/IndexMetadata.d.ts +2 -0
- package/dist/domain/project/ModelIdentity.d.ts +7 -16
- package/dist/domain/project/ModelIdentity.js +12 -24
- package/dist/domain/project/ModelIdentity.js.map +1 -1
- package/dist/domain/project/ProjectLocator.d.ts +3 -1
- package/dist/domain/project/ProjectLocator.js +7 -3
- package/dist/domain/project/ProjectLocator.js.map +1 -1
- package/dist/infrastructure/ai/DockerModelIdentityResolver.d.ts +7 -0
- package/dist/infrastructure/ai/DockerModelIdentityResolver.js +55 -0
- package/dist/infrastructure/ai/DockerModelIdentityResolver.js.map +1 -0
- package/dist/infrastructure/ai/DockerModelRunnerProbe.d.ts +16 -0
- package/dist/infrastructure/ai/DockerModelRunnerProbe.js +52 -0
- package/dist/infrastructure/ai/DockerModelRunnerProbe.js.map +1 -0
- package/dist/infrastructure/ai/LocalRuntimeDetector.js +2 -0
- package/dist/infrastructure/ai/LocalRuntimeDetector.js.map +1 -1
- package/dist/infrastructure/ai/OllamaProbe.d.ts +1 -0
- package/dist/infrastructure/ai/OllamaProbe.js +2 -0
- package/dist/infrastructure/ai/OllamaProbe.js.map +1 -1
- package/dist/infrastructure/ai/ProviderModuleLoader.d.ts +4 -3
- package/dist/infrastructure/ai/ProviderModuleLoader.js +10 -3
- package/dist/infrastructure/ai/ProviderModuleLoader.js.map +1 -1
- package/dist/infrastructure/ai/ProviderRegistry.d.ts +1 -0
- package/dist/infrastructure/ai/ProviderRegistry.js +9 -1
- package/dist/infrastructure/ai/ProviderRegistry.js.map +1 -1
- package/dist/infrastructure/fs/IndexableFileRules.js +4 -0
- package/dist/infrastructure/fs/IndexableFileRules.js.map +1 -1
- package/dist/infrastructure/fs/ProjectMetadataStore.js +3 -0
- package/dist/infrastructure/fs/ProjectMetadataStore.js.map +1 -1
- package/dist/infrastructure/fs/VerifiedIndexPath.d.ts +9 -0
- package/dist/infrastructure/fs/VerifiedIndexPath.js +42 -0
- package/dist/infrastructure/fs/VerifiedIndexPath.js.map +1 -0
- package/dist/infrastructure/p2p/IndexShare.js +13 -1
- package/dist/infrastructure/p2p/IndexShare.js.map +1 -1
- package/dist/infrastructure/p2p/SecureChannel.d.ts +2 -0
- package/dist/infrastructure/p2p/SecureChannel.js.map +1 -1
- package/dist/infrastructure/treesitter/EmbeddedTreeSitterAssets.d.ts +8 -0
- package/dist/infrastructure/treesitter/EmbeddedTreeSitterAssets.js +12 -0
- package/dist/infrastructure/treesitter/EmbeddedTreeSitterAssets.js.map +1 -0
- package/dist/infrastructure/treesitter/LanguageCatalog.js +6 -2
- package/dist/infrastructure/treesitter/LanguageCatalog.js.map +1 -1
- package/dist/infrastructure/treesitter/TreeSitterChunker.js +3 -1
- package/dist/infrastructure/treesitter/TreeSitterChunker.js.map +1 -1
- package/dist/presentation/cli/commands/ConfigCommands.d.ts +1 -0
- package/dist/presentation/cli/commands/ConfigCommands.js +25 -9
- package/dist/presentation/cli/commands/ConfigCommands.js.map +1 -1
- package/dist/presentation/cli/commands/ProjectsCommand.js +3 -1
- package/dist/presentation/cli/commands/ProjectsCommand.js.map +1 -1
- package/dist/presentation/cli/commands/ShareCommands.js +37 -14
- package/dist/presentation/cli/commands/ShareCommands.js.map +1 -1
- package/package.json +11 -2
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ lmgrep uses [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) to parse s
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
9
|
- **Any embedding provider** — works with Ollama, OpenAI, Google, or any provider supported by the [Vercel AI SDK](https://sdk.vercel.ai/)
|
|
10
|
-
- **Tree-sitter chunking** — splits code at AST boundaries so search results are complete, meaningful units
|
|
10
|
+
- **Tree-sitter chunking** — splits code at AST boundaries so search results are complete, meaningful units. JavaScript module variants (`.mjs`, `.cjs`) and TypeScript module variants (`.mts`, `.cts`) are indexed by default using their respective language grammars.
|
|
11
11
|
- **The index lives in the repo** — under `.git/lmgrep/`, so `du` finds it, `rm -rf` removes it, and deleting a clone deletes its index
|
|
12
12
|
- **One index per model** — switching embedding models selects a different database instead of invalidating the one you have; switching back is instant
|
|
13
13
|
- **Ask (research mode)** — `lmgrep ask` runs a local model that searches, reads, and synthesizes a cited answer, so agents spend one call instead of many searches
|
|
@@ -25,6 +25,24 @@ lmgrep uses [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) to parse s
|
|
|
25
25
|
pnpm install -g lmgrep
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
Requires Node.js 20 or newer.
|
|
29
|
+
|
|
30
|
+
#### Standalone executable
|
|
31
|
+
|
|
32
|
+
Release builds can bundle lmgrep, the Bun runtime, the OpenAI-compatible model
|
|
33
|
+
adapter, LanceDB native binding, and every Tree-sitter grammar into one file:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
pnpm install
|
|
37
|
+
pnpm build:standalone
|
|
38
|
+
./artifacts/lmgrep --help
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The executable targets the operating system and architecture running Bun, so
|
|
42
|
+
build each release artifact on its target platform. For the auto-detected
|
|
43
|
+
local runtimes, users need neither Node.js, Bun, npm packages, nor a separately
|
|
44
|
+
installed provider adapter.
|
|
45
|
+
|
|
28
46
|
### 2. Set up an embedding model
|
|
29
47
|
|
|
30
48
|
Start a local inference server, then let lmgrep configure itself.
|
|
@@ -37,14 +55,24 @@ ollama pull nomic-embed-text
|
|
|
37
55
|
lmgrep init
|
|
38
56
|
```
|
|
39
57
|
|
|
40
|
-
Or with [
|
|
41
|
-
|
|
58
|
+
Or with [Docker Model Runner](https://docs.docker.com/ai/model-runner/):
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
docker model pull ai/mxbai-embed-large
|
|
62
|
+
lmgrep init
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
LM Studio is supported too: install an embedding model, enable its local
|
|
66
|
+
server, and run `lmgrep init`.
|
|
42
67
|
|
|
43
68
|
`init` detects whichever server is running, picks an embedding model, and
|
|
44
69
|
writes the provider, base URL and any prefixes that model requires. Where the
|
|
45
70
|
server also reports a chat model it configures `chatModel` too, which is what
|
|
46
71
|
enables `lmgrep ask`.
|
|
47
72
|
|
|
73
|
+
Use `lmgrep init --preview` to inspect the detected YAML without creating or
|
|
74
|
+
overwriting the config file.
|
|
75
|
+
|
|
48
76
|
This creates a config file at `~/.config/lmgrep/config.yml` (Linux) or `~/Library/Application Support/lmgrep/config.yml` (macOS).
|
|
49
77
|
|
|
50
78
|
### 3. Index your project
|
|
@@ -167,6 +195,41 @@ Each embedding model gets its own subdirectory. Changing `model` in your config
|
|
|
167
195
|
selects a different database rather than invalidating the one you have, so
|
|
168
196
|
trying another model costs one re-index and switching back costs nothing.
|
|
169
197
|
|
|
198
|
+
### Docker model aliases and verified indexes
|
|
199
|
+
|
|
200
|
+
For Docker Model Runner, lmgrep resolves the configured name through the runner's
|
|
201
|
+
`/models` catalog and records its immutable artifact digest, configured dimensions,
|
|
202
|
+
and query/document prefixes in `lmgrep.json`. Those values identify the index;
|
|
203
|
+
repository names and tags do not. Two aliases for the same artifact and settings
|
|
204
|
+
reuse one index, and embedding requests use the resolved digest so a retag during
|
|
205
|
+
indexing cannot silently change the model. Different artifacts or prefix settings
|
|
206
|
+
get separate indexes. Other providers retain their existing name-based lookup.
|
|
207
|
+
|
|
208
|
+
The digest identifies the complete Docker artifact, not just its weights.
|
|
209
|
+
Repackaged artifacts with different digests are kept separate even when their
|
|
210
|
+
model names, architecture, quantization, or reported dimensions match. The runner
|
|
211
|
+
must be reachable to verify identity; an unavailable catalog or missing alias
|
|
212
|
+
produces an explicit error, not a guessed match.
|
|
213
|
+
|
|
214
|
+
Existing directories with a matching recorded embedding profile are reused in
|
|
215
|
+
place. Legacy indexes containing only a model name and dimensions are preserved,
|
|
216
|
+
but cannot be automatically certified: their original artifact and prefixes are
|
|
217
|
+
unknown. `lmgrep index` creates a separate verified index; it does not rename,
|
|
218
|
+
delete, or silently relabel the legacy one. An explicit path cannot bypass a
|
|
219
|
+
profile mismatch. Imports into verified indexes also require matching profiles.
|
|
220
|
+
|
|
221
|
+
The live integration test uses a temporary corpus and the real Docker embedding
|
|
222
|
+
endpoint (no existing indexes are modified):
|
|
223
|
+
|
|
224
|
+
```sh
|
|
225
|
+
pnpm build
|
|
226
|
+
LMGREP_TEST_DOCKER_MODEL=docker:docker.io/ai/text-embedding-qwen3-embedding-4b:q4_k_m-ctx8k \\
|
|
227
|
+
node --test test/docker-identity-live.test.mjs
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Set `LMGREP_TEST_DOCKER_URL` if the runner is not at
|
|
231
|
+
`http://localhost:12434/engines/v1`. Without a model variable, this test is skipped.
|
|
232
|
+
|
|
170
233
|
### Changing your embedding model
|
|
171
234
|
|
|
172
235
|
The new model has no index yet, so lmgrep says so and names what you already
|
|
@@ -2,6 +2,7 @@ import type { LmgrepConfig } from "../domain/config/LmgrepConfig.js";
|
|
|
2
2
|
import type { ChunkerPort } from "../domain/ports/ChunkerPort.js";
|
|
3
3
|
import type { EmbedderPort } from "../domain/ports/EmbedderPort.js";
|
|
4
4
|
import type { LoggerPort } from "../domain/ports/LoggerPort.js";
|
|
5
|
+
import { ProjectLocator } from "../domain/project/ProjectLocator.js";
|
|
5
6
|
import { Lmgrep } from "./Lmgrep.js";
|
|
6
7
|
export interface LmgrepOptions {
|
|
7
8
|
cwd: string;
|
|
@@ -29,6 +30,10 @@ export interface LmgrepOptions {
|
|
|
29
30
|
* dependency direction one-way.
|
|
30
31
|
*/
|
|
31
32
|
export declare class LmgrepFactory {
|
|
33
|
+
locate(config: LmgrepConfig): Promise<{
|
|
34
|
+
locator: ProjectLocator;
|
|
35
|
+
profile: import("../domain/project/EmbeddingProfile.js").EmbeddingProfile | undefined;
|
|
36
|
+
}>;
|
|
32
37
|
open(options: LmgrepOptions): Promise<Lmgrep>;
|
|
33
38
|
/**
|
|
34
39
|
* Opens another project's database read-only for cross-project search.
|
|
@@ -2,6 +2,7 @@ import { ModelIdentity } from "../domain/project/ModelIdentity.js";
|
|
|
2
2
|
import { ProjectLocator } from "../domain/project/ProjectLocator.js";
|
|
3
3
|
import { AiSdkChatModel } from "../infrastructure/ai/AiSdkChatModel.js";
|
|
4
4
|
import { AiSdkEmbedder } from "../infrastructure/ai/AiSdkEmbedder.js";
|
|
5
|
+
import { DockerModelIdentityResolver } from "../infrastructure/ai/DockerModelIdentityResolver.js";
|
|
5
6
|
import { LocalModelReloader } from "../infrastructure/ai/LocalModelReloader.js";
|
|
6
7
|
import { ConfigLoader } from "../infrastructure/fs/ConfigLoader.js";
|
|
7
8
|
import { DatabaseLocks } from "../infrastructure/fs/DatabaseLocks.js";
|
|
@@ -10,6 +11,7 @@ import { ProjectIndexes } from "../infrastructure/fs/ProjectIndexes.js";
|
|
|
10
11
|
import { ProjectMetadataStore } from "../infrastructure/fs/ProjectMetadataStore.js";
|
|
11
12
|
import { ProjectRegistry } from "../infrastructure/fs/ProjectRegistry.js";
|
|
12
13
|
import { StateDirectory } from "../infrastructure/fs/StateDirectory.js";
|
|
14
|
+
import { VerifiedIndexPath } from "../infrastructure/fs/VerifiedIndexPath.js";
|
|
13
15
|
import { Workspace } from "../infrastructure/fs/Workspace.js";
|
|
14
16
|
import { GitClient } from "../infrastructure/git/GitClient.js";
|
|
15
17
|
import { ChunkRepository } from "../infrastructure/lancedb/ChunkRepository.js";
|
|
@@ -35,6 +37,13 @@ import { SearchTargetResolver, } from "./search/SearchTargetResolver.js";
|
|
|
35
37
|
* dependency direction one-way.
|
|
36
38
|
*/
|
|
37
39
|
export class LmgrepFactory {
|
|
40
|
+
async locate(config) {
|
|
41
|
+
const profile = await new DockerModelIdentityResolver().resolve(config);
|
|
42
|
+
const locator = new ProjectLocator(new GitClient(), new StateDirectory(), ModelIdentity.of(config.model), config.dimensions, profile
|
|
43
|
+
? new VerifiedIndexPath(profile, new ProjectMetadataStore())
|
|
44
|
+
: undefined);
|
|
45
|
+
return { locator, profile };
|
|
46
|
+
}
|
|
38
47
|
async open(options) {
|
|
39
48
|
const { cwd } = options;
|
|
40
49
|
const logger = options.logger ?? new ConsoleLogger();
|
|
@@ -47,11 +56,22 @@ export class LmgrepFactory {
|
|
|
47
56
|
options.onWarning?.(warning);
|
|
48
57
|
const state = new StateDirectory();
|
|
49
58
|
const git = new GitClient();
|
|
50
|
-
|
|
51
|
-
// location can be resolved — which is why config loads first.
|
|
52
|
-
const locator = new ProjectLocator(git, state, ModelIdentity.of(config.model), config.dimensions);
|
|
59
|
+
const { locator, profile } = await this.locate(config);
|
|
53
60
|
const location = locator.resolveDatabase(cwd, options.database);
|
|
54
61
|
const metadata = new ProjectMetadataStore();
|
|
62
|
+
const verifyMetadata = () => {
|
|
63
|
+
const existing = metadata.read(location.path);
|
|
64
|
+
if (existing?.embeddingProfile &&
|
|
65
|
+
!profile?.equals(existing.embeddingProfile)) {
|
|
66
|
+
throw new Error(`Embedding model or settings do not match the index at ${location.path}. Existing index was not changed.`);
|
|
67
|
+
}
|
|
68
|
+
if (profile &&
|
|
69
|
+
metadata.holdsIndex(location.path) &&
|
|
70
|
+
!existing?.embeddingProfile) {
|
|
71
|
+
throw new Error(`Cannot verify the artifact and embedding settings of legacy index at ${location.path}. Use a new index instead; the legacy index is preserved.`);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
verifyMetadata();
|
|
55
75
|
const registry = new ProjectRegistry(state);
|
|
56
76
|
const alternatives = new IndexAlternatives(new ProjectIndexes(metadata), locator, location, config, cwd);
|
|
57
77
|
const locks = new DatabaseLocks(state.locksDirectory(), location.path, location.root);
|
|
@@ -59,7 +79,8 @@ export class LmgrepFactory {
|
|
|
59
79
|
const manifest = new FileManifestRepository(tables, location.branch);
|
|
60
80
|
const chunks = new ChunkRepository(tables, manifest, location.branch);
|
|
61
81
|
const maintenance = new IndexMaintenance(tables, manifest);
|
|
62
|
-
const embedder = options.embedder ??
|
|
82
|
+
const embedder = options.embedder ??
|
|
83
|
+
new AiSdkEmbedder(profile ? { ...config, model: profile.data.artifact } : config);
|
|
63
84
|
const chunker = options.chunker ?? new TreeSitterChunker();
|
|
64
85
|
const workspace = new Workspace();
|
|
65
86
|
const reloader = new LocalModelReloader(config);
|
|
@@ -78,6 +99,7 @@ export class LmgrepFactory {
|
|
|
78
99
|
location,
|
|
79
100
|
locks,
|
|
80
101
|
recordMetadata: (dimensions) => {
|
|
102
|
+
verifyMetadata();
|
|
81
103
|
const project = locator.resolveProject(cwd);
|
|
82
104
|
metadata.write(location.path, {
|
|
83
105
|
root: project.root,
|
|
@@ -85,6 +107,7 @@ export class LmgrepFactory {
|
|
|
85
107
|
branch: location.branch.toString(),
|
|
86
108
|
model: config.model,
|
|
87
109
|
dimensions,
|
|
110
|
+
embeddingProfile: profile?.data,
|
|
88
111
|
});
|
|
89
112
|
},
|
|
90
113
|
// The sidecar says what this database is; the registry says that
|
|
@@ -106,7 +129,7 @@ export class LmgrepFactory {
|
|
|
106
129
|
reloadModel: () => reloader.reload(),
|
|
107
130
|
isLocalProvider: reloader.isLocal,
|
|
108
131
|
});
|
|
109
|
-
const searcher = new SearchService(embedder, new SearchTargetResolver(cwd, chunks, location, locator, this.foreignOpener(locator)), config, logger, () => metadata.read(location.path), alternatives);
|
|
132
|
+
const searcher = new SearchService(embedder, new SearchTargetResolver(cwd, chunks, location, locator, this.foreignOpener(locator)), config, logger, () => metadata.read(location.path), alternatives, profile);
|
|
110
133
|
const services = {
|
|
111
134
|
cwd,
|
|
112
135
|
config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmgrepFactory.js","sourceRoot":"","sources":["../../src/application/LmgrepFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAEN,oBAAoB,GACpB,MAAM,kCAAkC,CAAC;AAqB1C;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACzB,KAAK,CAAC,IAAI,CAAC,OAAsB;QAChC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB;YAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACnB,GAAG,OAAO,CAAC,MAAM;SACjB,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,
|
|
1
|
+
{"version":3,"file":"LmgrepFactory.js","sourceRoot":"","sources":["../../src/application/LmgrepFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qDAAqD,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAEN,oBAAoB,GACpB,MAAM,kCAAkC,CAAC;AAqB1C;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACzB,KAAK,CAAC,MAAM,CAAC,MAAoB;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,2BAA2B,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,cAAc,CACjC,IAAI,SAAS,EAAE,EACf,IAAI,cAAc,EAAE,EACpB,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9B,MAAM,CAAC,UAAU,EACjB,OAAO;YACN,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,oBAAoB,EAAE,CAAC;YAC5D,CAAC,CAAC,SAAS,CACZ,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAsB;QAChC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB;YAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACnB,GAAG,OAAO,CAAC,MAAM;SACjB,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,GAAG,EAAE;YAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,IACC,QAAQ,EAAE,gBAAgB;gBAC1B,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAC1C,CAAC;gBACF,MAAM,IAAI,KAAK,CACd,yDAAyD,QAAQ,CAAC,IAAI,mCAAmC,CACzG,CAAC;YACH,CAAC;YACD,IACC,OAAO;gBACP,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAClC,CAAC,QAAQ,EAAE,gBAAgB,EAC1B,CAAC;gBACF,MAAM,IAAI,KAAK,CACd,wEAAwE,QAAQ,CAAC,IAAI,2DAA2D,CAChJ,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QACF,cAAc,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,iBAAiB,CACzC,IAAI,cAAc,CAAC,QAAQ,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,CACH,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,aAAa,CAC9B,KAAK,CAAC,cAAc,EAAE,EACtB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,CACb,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE3D,MAAM,QAAQ,GACb,OAAO,CAAC,QAAQ;YAChB,IAAI,aAAa,CAChB,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAC9D,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,iBAAiB,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEjE,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;YAChC,SAAS;YACT,OAAO;YACP,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,WAAW;YACX,YAAY,EAAE,IAAI,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;YAC3D,OAAO;YACP,MAAM;YACN,MAAM;YACN,QAAQ;YACR,KAAK;YACL,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE;gBAC9B,cAAc,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5C,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU;oBACV,gBAAgB,EAAE,OAAO,EAAE,IAAI;iBAC/B,CAAC,CAAC;YACJ,CAAC;YACD,iEAAiE;YACjE,gEAAgE;YAChE,8DAA8D;YAC9D,8DAA8D;YAC9D,qBAAqB;YACrB,aAAa,EAAE,GAAG,EAAE;gBACnB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5C,QAAQ,CAAC,MAAM,CAAC;oBACf,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC;oBACjC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBACpD,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,YAAY,EAAE,QAAQ,CAAC,IAAI;oBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU;iBACpD,CAAC,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpC,eAAe,EAAE,QAAQ,CAAC,OAAO;SACjC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,aAAa,CACjC,QAAQ,EACR,IAAI,oBAAoB,CACvB,GAAG,EACH,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAC3B,EACD,MAAM,EACN,MAAM,EACN,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAClC,YAAY,EACZ,OAAO,CACP,CAAC;QAEF,MAAM,QAAQ,GAAmB;YAChC,GAAG;YACH,MAAM;YACN,QAAQ;YACR,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,QAAQ;YACR,YAAY;YACZ,QAAQ;YACR,OAAO;YACP,OAAO;YACP,OAAO;YACP,QAAQ;YACR,cAAc,EAAE,IAAI,aAAa,CAChC,MAAM,EACN,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,GAAG,EACH,MAAM,CAAC,OAAO,EACd,YAAY,CACZ;YACD,OAAO,EAAE,IAAI,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;YACzE,UAAU,EAAE,IAAI,aAAa,CAC5B,QAAQ,EACR,IAAI,cAAc,CAAC,MAAM,CAAC,EAC1B,MAAM,CACN;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;SAC/C,CAAC;QAEF,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,OAAuB;QAC5C,OAAO;YACN,KAAK,CAAC,IAAI,CAAC,WAAmB;gBAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,IAAI,WAAW,CAC7B,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,EACpC,OAAO,CAAC,MAAM,CACd,CAAC;gBACF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpE,OAAO;oBACN,MAAM,EAAE,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;oBAC7D,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;iBACjC,CAAC;YACH,CAAC;SACD,CAAC;IACH,CAAC;CACD"}
|
|
@@ -36,6 +36,8 @@ export class IndexBuilder {
|
|
|
36
36
|
}
|
|
37
37
|
async buildLocked(options) {
|
|
38
38
|
const { logger } = this.deps;
|
|
39
|
+
if (!options.dry)
|
|
40
|
+
this.deps.recordMetadata(undefined);
|
|
39
41
|
if (options.reset) {
|
|
40
42
|
logger.info("Resetting index...");
|
|
41
43
|
await this.deps.maintenance.reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexBuilder.js","sourceRoot":"","sources":["../../../src/application/indexing/IndexBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IndexBuilder.js","sourceRoot":"","sources":["../../../src/application/indexing/IndexBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,13 @@ export class IndexAlternatives {
|
|
|
42
42
|
const named = others.filter((index) => index.model);
|
|
43
43
|
const previous = named[0] ?? others[0];
|
|
44
44
|
const configured = ModelIdentity.of(this.config.model).family;
|
|
45
|
+
if (this.config.model.startsWith("docker:")) {
|
|
46
|
+
return {
|
|
47
|
+
reason: `No verified index matches the Docker artifact and embedding settings for "${this.config.model}". Existing indexes: ${this.describe(named)}.`,
|
|
48
|
+
fix: "Names alone do not prove compatibility. Legacy indexes without a recorded artifact and prefix settings cannot be verified automatically. Run `lmgrep index` to create a verified index; existing indexes are kept.",
|
|
49
|
+
others,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
45
52
|
return {
|
|
46
53
|
reason: `This project has no index for "${configured}" — but it is indexed ` +
|
|
47
54
|
`with ${this.describe(named)}.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexAlternatives.js","sourceRoot":"","sources":["../../../src/application/operations/IndexAlternatives.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAWtE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iBAAiB;IAEX;IACA;IACA;IACA;IACA;IALlB,YACkB,OAA2B,EAC3B,OAAuB,EACvB,QAA0B,EAC1B,MAAoB,EACpB,GAAW;QAJX,YAAO,GAAP,OAAO,CAAoB;QAC3B,YAAO,GAAP,OAAO,CAAgB;QACvB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAQ;IAC1B,CAAC;IAEJ,4DAA4D;IAC5D,MAAM;QACL,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO;aACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC5D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,4EAA4E;IAC5E,cAAc;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAE9D,OAAO;YACN,MAAM,EACL,kCAAkC,UAAU,wBAAwB;gBACpE,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG;YAChC,GAAG,EACF,yBAAyB,QAAQ,CAAC,KAAK,IAAI,oBAAoB,kCAAkC;gBACjG,2FAA2F;YAC5F,MAAM;SACN,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,OAAgC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC;QACjD,OAAO,OAAO;aACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;aACjE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"IndexAlternatives.js","sourceRoot":"","sources":["../../../src/application/operations/IndexAlternatives.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAWtE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iBAAiB;IAEX;IACA;IACA;IACA;IACA;IALlB,YACkB,OAA2B,EAC3B,OAAuB,EACvB,QAA0B,EAC1B,MAAoB,EACpB,GAAW;QAJX,YAAO,GAAP,OAAO,CAAoB;QAC3B,YAAO,GAAP,OAAO,CAAgB;QACvB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAQ;IAC1B,CAAC;IAEJ,4DAA4D;IAC5D,MAAM;QACL,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO;aACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC5D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,4EAA4E;IAC5E,cAAc;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAE9D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACN,MAAM,EAAE,6EAA6E,IAAI,CAAC,MAAM,CAAC,KAAK,wBAAwB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG;gBACrJ,GAAG,EAAE,oNAAoN;gBACzN,MAAM;aACN,CAAC;QACH,CAAC;QAED,OAAO;YACN,MAAM,EACL,kCAAkC,UAAU,wBAAwB;gBACpE,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG;YAChC,GAAG,EACF,yBAAyB,QAAQ,CAAC,KAAK,IAAI,oBAAoB,kCAAkC;gBACjG,2FAA2F;YAC5F,MAAM;SACN,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,OAAgC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC;QACjD,OAAO,OAAO;aACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;aACjE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { LmgrepConfig } from "../../domain/config/LmgrepConfig.js";
|
|
2
2
|
import type { EmbedderPort } from "../../domain/ports/EmbedderPort.js";
|
|
3
3
|
import type { LoggerPort } from "../../domain/ports/LoggerPort.js";
|
|
4
|
+
import type { EmbeddingProfile } from "../../domain/project/EmbeddingProfile.js";
|
|
4
5
|
import type { IndexMetadata } from "../../domain/project/IndexMetadata.js";
|
|
5
6
|
import { HitList } from "../../domain/retrieval/HitList.js";
|
|
6
7
|
import type { IndexAlternatives } from "../operations/IndexAlternatives.js";
|
|
@@ -17,13 +18,14 @@ export declare class SearchService {
|
|
|
17
18
|
private readonly logger;
|
|
18
19
|
private readonly readMetadata;
|
|
19
20
|
private readonly alternatives;
|
|
21
|
+
private readonly profile?;
|
|
20
22
|
/**
|
|
21
23
|
* How strongly a `--not` query pushes results away. Full subtraction
|
|
22
24
|
* overshoots into unrelated space; half keeps the original intent dominant
|
|
23
25
|
* while still displacing the unwanted sense.
|
|
24
26
|
*/
|
|
25
27
|
private static readonly NEGATION_WEIGHT;
|
|
26
|
-
constructor(embedder: EmbedderPort, targets: SearchTargetResolver, config: LmgrepConfig, logger: LoggerPort, readMetadata: () => IndexMetadata | undefined, alternatives: IndexAlternatives);
|
|
28
|
+
constructor(embedder: EmbedderPort, targets: SearchTargetResolver, config: LmgrepConfig, logger: LoggerPort, readMetadata: () => IndexMetadata | undefined, alternatives: IndexAlternatives, profile?: EmbeddingProfile | undefined);
|
|
27
29
|
search(query: string, criteria: SearchCriteria): Promise<HitList>;
|
|
28
30
|
private retrieveFrom;
|
|
29
31
|
private buildQueryVector;
|
|
@@ -12,19 +12,21 @@ export class SearchService {
|
|
|
12
12
|
logger;
|
|
13
13
|
readMetadata;
|
|
14
14
|
alternatives;
|
|
15
|
+
profile;
|
|
15
16
|
/**
|
|
16
17
|
* How strongly a `--not` query pushes results away. Full subtraction
|
|
17
18
|
* overshoots into unrelated space; half keeps the original intent dominant
|
|
18
19
|
* while still displacing the unwanted sense.
|
|
19
20
|
*/
|
|
20
21
|
static NEGATION_WEIGHT = 0.5;
|
|
21
|
-
constructor(embedder, targets, config, logger, readMetadata, alternatives) {
|
|
22
|
+
constructor(embedder, targets, config, logger, readMetadata, alternatives, profile) {
|
|
22
23
|
this.embedder = embedder;
|
|
23
24
|
this.targets = targets;
|
|
24
25
|
this.config = config;
|
|
25
26
|
this.logger = logger;
|
|
26
27
|
this.readMetadata = readMetadata;
|
|
27
28
|
this.alternatives = alternatives;
|
|
29
|
+
this.profile = profile;
|
|
28
30
|
}
|
|
29
31
|
async search(query, criteria) {
|
|
30
32
|
const queryVector = await this.buildQueryVector(query, criteria);
|
|
@@ -94,6 +96,12 @@ export class SearchService {
|
|
|
94
96
|
`your model produces ${queryVector.dimensions}-dim. ` +
|
|
95
97
|
"These embeddings are incompatible.");
|
|
96
98
|
}
|
|
99
|
+
if (meta.embeddingProfile) {
|
|
100
|
+
if (!this.profile?.equals(meta.embeddingProfile)) {
|
|
101
|
+
throw new Error("Embedding model or settings do not match the index.");
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
97
105
|
if (!meta.model)
|
|
98
106
|
return;
|
|
99
107
|
const indexModel = ModelIdentity.of(meta.model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchService.js","sourceRoot":"","sources":["../../../src/application/search/SearchService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SearchService.js","sourceRoot":"","sources":["../../../src/application/search/SearchService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexPathPort.js","sourceRoot":"","sources":["../../../src/domain/ports/IndexPathPort.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LmgrepConfig } from "../config/LmgrepConfig.js";
|
|
2
|
+
export interface EmbeddingProfileData {
|
|
3
|
+
artifact: string;
|
|
4
|
+
dimensions?: number;
|
|
5
|
+
queryPrefix: string;
|
|
6
|
+
documentPrefix: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class EmbeddingProfile {
|
|
9
|
+
readonly data: EmbeddingProfileData;
|
|
10
|
+
constructor(data: EmbeddingProfileData);
|
|
11
|
+
static forArtifact(artifact: string, config: LmgrepConfig): EmbeddingProfile;
|
|
12
|
+
equals(other: EmbeddingProfileData): boolean;
|
|
13
|
+
toSlug(): string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export class EmbeddingProfile {
|
|
3
|
+
data;
|
|
4
|
+
constructor(data) {
|
|
5
|
+
this.data = data;
|
|
6
|
+
}
|
|
7
|
+
static forArtifact(artifact, config) {
|
|
8
|
+
return new EmbeddingProfile({
|
|
9
|
+
artifact,
|
|
10
|
+
dimensions: config.dimensions,
|
|
11
|
+
queryPrefix: config.queryPrefix ?? "",
|
|
12
|
+
documentPrefix: config.documentPrefix ?? "",
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
equals(other) {
|
|
16
|
+
return (this.data.artifact === other.artifact &&
|
|
17
|
+
this.data.dimensions === other.dimensions &&
|
|
18
|
+
this.data.queryPrefix === other.queryPrefix &&
|
|
19
|
+
this.data.documentPrefix === other.documentPrefix);
|
|
20
|
+
}
|
|
21
|
+
toSlug() {
|
|
22
|
+
const { artifact, dimensions, queryPrefix, documentPrefix } = this.data;
|
|
23
|
+
const hash = createHash("sha256")
|
|
24
|
+
.update(JSON.stringify([
|
|
25
|
+
artifact,
|
|
26
|
+
dimensions ?? null,
|
|
27
|
+
queryPrefix,
|
|
28
|
+
documentPrefix,
|
|
29
|
+
]))
|
|
30
|
+
.digest("hex");
|
|
31
|
+
return `embedding-${hash}`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=EmbeddingProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingProfile.js","sourceRoot":"","sources":["../../../src/domain/project/EmbeddingProfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,MAAM,OAAO,gBAAgB;IACP;IAArB,YAAqB,IAA0B;QAA1B,SAAI,GAAJ,IAAI,CAAsB;IAAG,CAAC;IAEnD,MAAM,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAoB;QACxD,OAAO,IAAI,gBAAgB,CAAC;YAC3B,QAAQ;YACR,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;SAC3C,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAA2B;QACjC,OAAO,CACN,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;YAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,CACjD,CAAC;IACH,CAAC;IAED,MAAM;QACL,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACxE,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;aAC/B,MAAM,CACN,IAAI,CAAC,SAAS,CAAC;YACd,QAAQ;YACR,UAAU,IAAI,IAAI;YAClB,WAAW;YACX,cAAc;SACd,CAAC,CACF;aACA,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,aAAa,IAAI,EAAE,CAAC;IAC5B,CAAC;CACD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { EmbeddingProfileData } from "./EmbeddingProfile.js";
|
|
1
2
|
/**
|
|
2
3
|
* What an index records about itself: where it came from and how it was built.
|
|
3
4
|
*
|
|
@@ -14,4 +15,5 @@ export interface IndexMetadata {
|
|
|
14
15
|
model?: string;
|
|
15
16
|
/** Embedding vector dimensions. */
|
|
16
17
|
dimensions?: number;
|
|
18
|
+
embeddingProfile?: EmbeddingProfileData;
|
|
17
19
|
}
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A model
|
|
3
|
-
* whether two models produce interchangeable embeddings, and the directory
|
|
4
|
-
* slug derived from it.
|
|
2
|
+
* A model reference and the historical name-based family and directory slug.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* The slug is the load-bearing part. Databases are stored per model, so
|
|
12
|
-
* {@link toSlug} draws the boundary between them — and it must draw it in
|
|
13
|
-
* exactly the same place as {@link isSameFamilyAs}. Two models share a
|
|
14
|
-
* database if and only if they are compatible; a slug that split more finely
|
|
15
|
-
* would re-embed a corpus for nothing, and one that split more coarsely would
|
|
16
|
-
* mix incomparable vectors into one table.
|
|
4
|
+
* Family names remain useful for display, runtime discovery, legacy indexes,
|
|
5
|
+
* and providers without artifact resolution. They are not proof of embedding
|
|
6
|
+
* compatibility. Docker index selection uses a verified EmbeddingProfile
|
|
7
|
+
* instead, including the artifact digest and embedding settings.
|
|
17
8
|
*/
|
|
18
9
|
export declare class ModelIdentity {
|
|
19
10
|
private readonly value;
|
|
20
|
-
/**
|
|
11
|
+
/** Variant suffixes ignored by historical name-based lookup. */
|
|
21
12
|
private static readonly VARIANT_SUFFIX;
|
|
22
13
|
/** Long enough to stay readable in a path, short enough to stay a path. */
|
|
23
14
|
private static readonly SLUG_PREFIX_LENGTH;
|
|
@@ -35,7 +26,7 @@ export declare class ModelIdentity {
|
|
|
35
26
|
* "lmstudio:bge-large-en:fp16" -> "bge-large-en"
|
|
36
27
|
*/
|
|
37
28
|
get family(): string;
|
|
38
|
-
/** Whether two
|
|
29
|
+
/** Whether two model references share the historical family name. */
|
|
39
30
|
isSameFamilyAs(other: ModelIdentity): boolean;
|
|
40
31
|
/**
|
|
41
32
|
* Directory name holding this model's embeddings.
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
/**
|
|
3
|
-
* A model
|
|
4
|
-
* whether two models produce interchangeable embeddings, and the directory
|
|
5
|
-
* slug derived from it.
|
|
3
|
+
* A model reference and the historical name-based family and directory slug.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* The slug is the load-bearing part. Databases are stored per model, so
|
|
13
|
-
* {@link toSlug} draws the boundary between them — and it must draw it in
|
|
14
|
-
* exactly the same place as {@link isSameFamilyAs}. Two models share a
|
|
15
|
-
* database if and only if they are compatible; a slug that split more finely
|
|
16
|
-
* would re-embed a corpus for nothing, and one that split more coarsely would
|
|
17
|
-
* mix incomparable vectors into one table.
|
|
5
|
+
* Family names remain useful for display, runtime discovery, legacy indexes,
|
|
6
|
+
* and providers without artifact resolution. They are not proof of embedding
|
|
7
|
+
* compatibility. Docker index selection uses a verified EmbeddingProfile
|
|
8
|
+
* instead, including the artifact digest and embedding settings.
|
|
18
9
|
*/
|
|
19
10
|
export class ModelIdentity {
|
|
20
11
|
value;
|
|
21
|
-
/**
|
|
12
|
+
/** Variant suffixes ignored by historical name-based lookup. */
|
|
22
13
|
static VARIANT_SUFFIX = /^(Q\d|q\d|fp\d|f\d|latest|gguf|ggml)/i;
|
|
23
14
|
/** Long enough to stay readable in a path, short enough to stay a path. */
|
|
24
15
|
static SLUG_PREFIX_LENGTH = 48;
|
|
@@ -50,16 +41,13 @@ export class ModelIdentity {
|
|
|
50
41
|
return this.value;
|
|
51
42
|
const rest = this.value.slice(colon + 1);
|
|
52
43
|
const lastColon = rest.lastIndexOf(":");
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
// Unrecognized trailing segment — likely part of the name itself.
|
|
60
|
-
return rest;
|
|
44
|
+
const suffix = lastColon === -1 ? "" : rest.slice(lastColon + 1);
|
|
45
|
+
const family = lastColon !== -1 && ModelIdentity.VARIANT_SUFFIX.test(suffix)
|
|
46
|
+
? rest.slice(0, lastColon)
|
|
47
|
+
: rest;
|
|
48
|
+
return family.replace(/^(?:docker\.io\/(?:ai|library)\/|docker\.io\/|huggingface\.co\/)/i, "");
|
|
61
49
|
}
|
|
62
|
-
/** Whether two
|
|
50
|
+
/** Whether two model references share the historical family name. */
|
|
63
51
|
isSameFamilyAs(other) {
|
|
64
52
|
return this.family === other.family;
|
|
65
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelIdentity.js","sourceRoot":"","sources":["../../../src/domain/project/ModelIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"ModelIdentity.js","sourceRoot":"","sources":["../../../src/domain/project/ModelIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IASY;IARrC,gEAAgE;IACxD,MAAM,CAAU,cAAc,GACrC,uCAAuC,CAAC;IAEzC,2EAA2E;IACnE,MAAM,CAAU,kBAAkB,GAAG,EAAE,CAAC;IACxC,MAAM,CAAU,gBAAgB,GAAG,CAAC,CAAC;IAE7C,YAAqC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAEtD,MAAM,CAAC,EAAE,CAAC,KAAa;QACtB,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,mEAAmE;IACnE,IAAI,QAAQ;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,IAAI,MAAM;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GACX,SAAS,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;YAC1B,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,MAAM,CAAC,OAAO,CACpB,mEAAmE,EACnE,EAAE,CACF,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,cAAc,CAAC,KAAoB;QAClC,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,UAAmB;QACzB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;aAC/B,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,CAAC,KAAK,CAAC;aACb,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;aAC1B,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;aAChC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC"}
|