@zvec/zvec-grep 0.1.4 → 0.1.6
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 +86 -162
- package/README_CN.md +80 -162
- package/dist/authorization/index.d.ts +7 -0
- package/dist/authorization/index.js +7 -0
- package/dist/authorization/index.js.map +1 -0
- package/dist/authorization/manager.d.ts +8 -0
- package/dist/authorization/manager.js +19 -0
- package/dist/authorization/manager.js.map +1 -0
- package/dist/authorization/operation.d.ts +7 -0
- package/dist/authorization/operation.js +50 -0
- package/dist/authorization/operation.js.map +1 -0
- package/dist/authorization/planner.d.ts +21 -0
- package/dist/authorization/planner.js +97 -0
- package/dist/authorization/planner.js.map +1 -0
- package/dist/authorization/prompt.d.ts +11 -0
- package/dist/authorization/prompt.js +62 -0
- package/dist/authorization/prompt.js.map +1 -0
- package/dist/authorization/store.d.ts +20 -0
- package/dist/authorization/store.js +251 -0
- package/dist/authorization/store.js.map +1 -0
- package/dist/authorization/target.d.ts +15 -0
- package/dist/authorization/target.js +49 -0
- package/dist/authorization/target.js.map +1 -0
- package/dist/authorization/types.d.ts +61 -0
- package/dist/authorization/types.js +2 -0
- package/dist/authorization/types.js.map +1 -0
- package/dist/cli/args.d.ts +3 -0
- package/dist/cli/args.js +749 -201
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/auth.d.ts +21 -0
- package/dist/cli/auth.js +212 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/commands.d.ts +3 -1
- package/dist/cli/commands.js +529 -180
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/errors.js +7 -6
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/format/context.d.ts +1 -0
- package/dist/cli/format/context.js +270 -70
- package/dist/cli/format/context.js.map +1 -1
- package/dist/cli/format/debug.js +14 -16
- package/dist/cli/format/debug.js.map +1 -1
- package/dist/cli/format/highlight.js.map +1 -1
- package/dist/cli/format/progress.d.ts +4 -0
- package/dist/cli/format/progress.js +222 -44
- package/dist/cli/format/progress.js.map +1 -1
- package/dist/cli/format/range.js.map +1 -1
- package/dist/cli/format/status.d.ts +77 -6
- package/dist/cli/format/status.js +343 -114
- package/dist/cli/format/status.js.map +1 -1
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.js +368 -84
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.js +4 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.d.ts +4 -0
- package/dist/cli/install.js +845 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/managed-rg.d.ts +10 -0
- package/dist/cli/managed-rg.js +329 -0
- package/dist/cli/managed-rg.js.map +1 -0
- package/dist/cli/types.d.ts +40 -13
- package/dist/cli/types.js.map +1 -1
- package/dist/cli/version.js +3 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/client/daemon-client.d.ts +19 -0
- package/dist/client/daemon-client.js +180 -0
- package/dist/client/daemon-client.js.map +1 -0
- package/dist/client/mode-router.d.ts +9 -0
- package/dist/client/mode-router.js +28 -0
- package/dist/client/mode-router.js.map +1 -0
- package/dist/client/search-policy.d.ts +11 -0
- package/dist/client/search-policy.js +15 -0
- package/dist/client/search-policy.js.map +1 -0
- package/dist/daemon/backend.d.ts +76 -0
- package/dist/daemon/backend.js +1049 -0
- package/dist/daemon/backend.js.map +1 -0
- package/dist/daemon/change-set.d.ts +25 -0
- package/dist/daemon/change-set.js +101 -0
- package/dist/daemon/change-set.js.map +1 -0
- package/dist/daemon/config.d.ts +24 -0
- package/dist/daemon/config.js +88 -0
- package/dist/daemon/config.js.map +1 -0
- package/dist/daemon/errors.d.ts +5 -0
- package/dist/daemon/errors.js +11 -0
- package/dist/daemon/errors.js.map +1 -0
- package/dist/daemon/http-server.d.ts +30 -0
- package/dist/daemon/http-server.js +287 -0
- package/dist/daemon/http-server.js.map +1 -0
- package/dist/daemon/index-coordinator.d.ts +23 -0
- package/dist/daemon/index-coordinator.js +68 -0
- package/dist/daemon/index-coordinator.js.map +1 -0
- package/dist/daemon/job-scheduler.d.ts +70 -0
- package/dist/daemon/job-scheduler.js +366 -0
- package/dist/daemon/job-scheduler.js.map +1 -0
- package/dist/daemon/logger.d.ts +9 -0
- package/dist/daemon/logger.js +53 -0
- package/dist/daemon/logger.js.map +1 -0
- package/dist/daemon/model-pool.d.ts +45 -0
- package/dist/daemon/model-pool.js +187 -0
- package/dist/daemon/model-pool.js.map +1 -0
- package/dist/daemon/root-lease.d.ts +14 -0
- package/dist/daemon/root-lease.js +188 -0
- package/dist/daemon/root-lease.js.map +1 -0
- package/dist/daemon/root-runtime.d.ts +78 -0
- package/dist/daemon/root-runtime.js +333 -0
- package/dist/daemon/root-runtime.js.map +1 -0
- package/dist/daemon/runtime-manager.d.ts +45 -0
- package/dist/daemon/runtime-manager.js +243 -0
- package/dist/daemon/runtime-manager.js.map +1 -0
- package/dist/daemon/runtime.d.ts +12 -0
- package/dist/daemon/runtime.js +102 -0
- package/dist/daemon/runtime.js.map +1 -0
- package/dist/daemon/server-controller.d.ts +39 -0
- package/dist/daemon/server-controller.js +203 -0
- package/dist/daemon/server-controller.js.map +1 -0
- package/dist/daemon/watch-manager.d.ts +50 -0
- package/dist/daemon/watch-manager.js +293 -0
- package/dist/daemon/watch-manager.js.map +1 -0
- package/dist/daemon/workspace-read-session-cache.d.ts +31 -0
- package/dist/daemon/workspace-read-session-cache.js +115 -0
- package/dist/daemon/workspace-read-session-cache.js.map +1 -0
- package/dist/engine/config.d.ts +50 -0
- package/dist/engine/config.js +321 -0
- package/dist/engine/config.js.map +1 -0
- package/dist/engine/{errors/index.d.ts → errors.d.ts} +6 -1
- package/dist/engine/{errors/details.js → errors.js} +17 -4
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/extraction/code/adapter.d.ts +1 -1
- package/dist/engine/extraction/code/adapter.js.map +1 -1
- package/dist/engine/extraction/code/extractor.d.ts +5 -11
- package/dist/engine/extraction/code/extractor.js +184 -109
- package/dist/engine/extraction/code/extractor.js.map +1 -1
- package/dist/engine/extraction/code/families/c-family.js +13 -7
- package/dist/engine/extraction/code/families/c-family.js.map +1 -1
- package/dist/engine/extraction/code/families/js-ts.d.ts +1 -1
- package/dist/engine/extraction/code/families/js-ts.js +24 -18
- package/dist/engine/extraction/code/families/js-ts.js.map +1 -1
- package/dist/engine/extraction/code/families/metadata.d.ts +1 -1
- package/dist/engine/extraction/code/families/metadata.js +11 -8
- package/dist/engine/extraction/code/families/metadata.js.map +1 -1
- package/dist/engine/extraction/code/families/name-field.js +5 -5
- package/dist/engine/extraction/code/families/name-field.js.map +1 -1
- package/dist/engine/extraction/code/languages/c.js +1 -4
- package/dist/engine/extraction/code/languages/c.js.map +1 -1
- package/dist/engine/extraction/code/languages/cpp.js.map +1 -1
- package/dist/engine/extraction/code/languages/go.js +1 -3
- package/dist/engine/extraction/code/languages/go.js.map +1 -1
- package/dist/engine/extraction/code/languages/java.js.map +1 -1
- package/dist/engine/extraction/code/languages/javascript.js +1 -3
- package/dist/engine/extraction/code/languages/javascript.js.map +1 -1
- package/dist/engine/extraction/code/languages/python.js +5 -6
- package/dist/engine/extraction/code/languages/python.js.map +1 -1
- package/dist/engine/extraction/code/languages/rust.js +1 -5
- package/dist/engine/extraction/code/languages/rust.js.map +1 -1
- package/dist/engine/extraction/code/languages/typescript.js.map +1 -1
- package/dist/engine/extraction/code/tree-sitter/grammar.js.map +1 -0
- package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/nodes.js +2 -1
- package/dist/engine/extraction/code/tree-sitter/nodes.js.map +1 -0
- package/dist/engine/extraction/code/tree-sitter/parser.js.map +1 -0
- package/dist/engine/extraction/ids.js.map +1 -1
- package/dist/engine/extraction/image/extractor.d.ts +5 -0
- package/dist/engine/extraction/image/extractor.js +35 -0
- package/dist/engine/extraction/image/extractor.js.map +1 -0
- package/dist/engine/extraction/index.d.ts +3 -44
- package/dist/engine/extraction/index.js +1 -280
- package/dist/engine/extraction/index.js.map +1 -1
- package/dist/engine/extraction/markdown/extractor.d.ts +5 -11
- package/dist/engine/extraction/markdown/extractor.js +37 -16
- package/dist/engine/extraction/markdown/extractor.js.map +1 -1
- package/dist/engine/extraction/runtime.d.ts +4 -0
- package/dist/engine/extraction/runtime.js +26 -0
- package/dist/engine/extraction/runtime.js.map +1 -0
- package/dist/engine/extraction/source.d.ts +18 -0
- package/dist/engine/extraction/source.js +22 -0
- package/dist/engine/extraction/source.js.map +1 -0
- package/dist/engine/extraction/text/extractor.d.ts +7 -0
- package/dist/engine/extraction/text/extractor.js +168 -0
- package/dist/engine/extraction/text/extractor.js.map +1 -0
- package/dist/engine/extraction/types.d.ts +4 -0
- package/dist/engine/{models → extraction}/types.js.map +1 -1
- package/dist/engine/{files/file-type.d.ts → file-type.d.ts} +1 -1
- package/dist/engine/file-type.js.map +1 -0
- package/dist/engine/index-status.d.ts +9 -0
- package/dist/engine/index-status.js +38 -0
- package/dist/engine/index-status.js.map +1 -0
- package/dist/engine/manifest.d.ts +12 -0
- package/dist/engine/manifest.js +120 -0
- package/dist/engine/manifest.js.map +1 -0
- package/dist/engine/models/{providers/llama-cpp/embedding.d.ts → backends/llama-cpp.d.ts} +25 -20
- package/dist/engine/models/{providers/llama-cpp/embedding.js → backends/llama-cpp.js} +165 -113
- package/dist/engine/models/backends/llama-cpp.js.map +1 -0
- package/dist/engine/models/backends/model2vec.d.ts +57 -0
- package/dist/engine/models/backends/model2vec.js +332 -0
- package/dist/engine/models/backends/model2vec.js.map +1 -0
- package/dist/engine/models/backends/qwen.d.ts +44 -0
- package/dist/engine/models/{providers/qwen/embedding.js → backends/qwen.js} +168 -102
- package/dist/engine/models/backends/qwen.js.map +1 -0
- package/dist/engine/models/backends/transformers-js.d.ts +87 -0
- package/dist/engine/models/backends/transformers-js.js +316 -0
- package/dist/engine/models/backends/transformers-js.js.map +1 -0
- package/dist/engine/models/catalog.d.ts +188 -23
- package/dist/engine/models/catalog.js +172 -41
- package/dist/engine/models/catalog.js.map +1 -1
- package/dist/engine/models/download-progress.d.ts +15 -0
- package/dist/engine/models/download-progress.js +48 -0
- package/dist/engine/models/download-progress.js.map +1 -0
- package/dist/engine/models/embeddings.d.ts +58 -18
- package/dist/engine/models/embeddings.js +53 -29
- package/dist/engine/models/embeddings.js.map +1 -1
- package/dist/engine/models/factory.d.ts +2 -5
- package/dist/engine/models/factory.js +41 -56
- package/dist/engine/models/factory.js.map +1 -1
- package/dist/engine/models/index.d.ts +4 -6
- package/dist/engine/models/index.js +4 -4
- package/dist/engine/models/index.js.map +1 -1
- package/dist/engine/models/ranking.d.ts +7 -3
- package/dist/engine/models/resolution.d.ts +8 -0
- package/dist/engine/models/resolution.js +22 -0
- package/dist/engine/models/resolution.js.map +1 -0
- package/dist/engine/pipeline/indexing/index.d.ts +9 -7
- package/dist/engine/pipeline/indexing/index.js +399 -147
- package/dist/engine/pipeline/indexing/index.js.map +1 -1
- package/dist/engine/pipeline/indexing/root-paths.js +16 -19
- package/dist/engine/pipeline/indexing/root-paths.js.map +1 -1
- package/dist/engine/pipeline/indexing/scanner/index.d.ts +6 -1
- package/dist/engine/pipeline/indexing/scanner/index.js +318 -66
- package/dist/engine/pipeline/indexing/scanner/index.js.map +1 -1
- package/dist/engine/pipeline/search/index.d.ts +6 -6
- package/dist/engine/pipeline/search/index.js +76 -34
- package/dist/engine/pipeline/search/index.js.map +1 -1
- package/dist/engine/service/index.d.ts +3 -2
- package/dist/engine/service/index.js +1 -1
- package/dist/engine/service/index.js.map +1 -1
- package/dist/engine/service/lexical.d.ts +14 -15
- package/dist/engine/service/lexical.js +78 -119
- package/dist/engine/service/lexical.js.map +1 -1
- package/dist/engine/service/root.d.ts +13 -12
- package/dist/engine/service/root.js +35 -24
- package/dist/engine/service/root.js.map +1 -1
- package/dist/engine/service/structure-enrichment.js +29 -25
- package/dist/engine/service/structure-enrichment.js.map +1 -1
- package/dist/engine/service/types.d.ts +61 -35
- package/dist/engine/service/workspace-index.d.ts +24 -0
- package/dist/engine/service/workspace-index.js +151 -0
- package/dist/engine/service/workspace-index.js.map +1 -0
- package/dist/engine/service/zvec-grep.d.ts +12 -1
- package/dist/engine/service/zvec-grep.js +878 -544
- package/dist/engine/service/zvec-grep.js.map +1 -1
- package/dist/engine/storage/index.d.ts +8 -4
- package/dist/engine/storage/index.js +1 -1
- package/dist/engine/storage/index.js.map +1 -1
- package/dist/engine/storage/zvec.d.ts +10 -33
- package/dist/engine/storage/zvec.js +110 -49
- package/dist/engine/storage/zvec.js.map +1 -1
- package/dist/engine/types.d.ts +29 -23
- package/dist/engine/types.js +1 -1
- package/dist/engine/types.js.map +1 -1
- package/dist/engine/utils/daemon-lease.d.ts +17 -0
- package/dist/engine/utils/daemon-lease.js +175 -0
- package/dist/engine/utils/daemon-lease.js.map +1 -0
- package/dist/engine/utils/file-selection.d.ts +10 -0
- package/dist/engine/utils/file-selection.js +157 -0
- package/dist/engine/utils/file-selection.js.map +1 -0
- package/dist/engine/utils/glob.d.ts +3 -0
- package/dist/engine/utils/glob.js +116 -18
- package/dist/engine/utils/glob.js.map +1 -1
- package/dist/engine/utils/hash.js.map +1 -1
- package/dist/engine/utils/json.d.ts +6 -2
- package/dist/engine/utils/json.js +50 -12
- package/dist/engine/utils/json.js.map +1 -1
- package/dist/engine/utils/lock.js +7 -7
- package/dist/engine/utils/lock.js.map +1 -1
- package/dist/engine/utils/path.js +2 -2
- package/dist/engine/utils/path.js.map +1 -1
- package/dist/engine/utils/timing.js.map +1 -1
- package/dist/index-progress.d.ts +10 -0
- package/dist/index-progress.js +159 -0
- package/dist/index-progress.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/http-transport.d.ts +27 -0
- package/dist/mcp/http-transport.js +182 -0
- package/dist/mcp/http-transport.js.map +1 -0
- package/dist/mcp/input-normalization.d.ts +38 -0
- package/dist/mcp/input-normalization.js +95 -0
- package/dist/mcp/input-normalization.js.map +1 -0
- package/dist/mcp/progress-heartbeat.d.ts +17 -0
- package/dist/mcp/progress-heartbeat.js +46 -0
- package/dist/mcp/progress-heartbeat.js.map +1 -0
- package/dist/mcp/request-metadata.d.ts +2 -0
- package/dist/mcp/request-metadata.js +11 -0
- package/dist/mcp/request-metadata.js.map +1 -0
- package/dist/mcp/request-state.d.ts +40 -0
- package/dist/mcp/request-state.js +210 -0
- package/dist/mcp/request-state.js.map +1 -0
- package/dist/mcp/result-format.d.ts +13 -0
- package/dist/mcp/result-format.js +75 -0
- package/dist/mcp/result-format.js.map +1 -0
- package/dist/mcp/schemas.d.ts +430 -0
- package/dist/mcp/schemas.js +447 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/tools.d.ts +150 -0
- package/dist/mcp/tools.js +448 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/toolset.d.ts +5 -0
- package/dist/mcp/toolset.js +12 -0
- package/dist/mcp/toolset.js.map +1 -0
- package/dist/observability/trace-context.d.ts +11 -0
- package/dist/observability/trace-context.js +138 -0
- package/dist/observability/trace-context.js.map +1 -0
- package/docs/01-agents.md +111 -0
- package/docs/02-cli.md +229 -0
- package/docs/03-mcp.md +167 -0
- package/docs/04-pipeline.md +218 -0
- package/docs/05-architecture.md +86 -0
- package/docs/06-server.md +210 -0
- package/docs/07-embedding.md +179 -0
- package/docs/08-roadmap.md +85 -0
- package/docs/README.md +53 -0
- package/package.json +43 -7
- package/skills/zvec-grep/SKILL.md +43 -123
- package/skills/zvec-grep/agents/openai.yaml +2 -2
- package/skills/zvec-grep/references/cli-fallback.md +85 -0
- package/dist/engine/collection/index.d.ts +0 -55
- package/dist/engine/collection/index.js +0 -710
- package/dist/engine/collection/index.js.map +0 -1
- package/dist/engine/errors/details.d.ts +0 -6
- package/dist/engine/errors/details.js.map +0 -1
- package/dist/engine/errors/index.js +0 -16
- package/dist/engine/errors/index.js.map +0 -1
- package/dist/engine/extraction/tree-sitter/grammar.js.map +0 -1
- package/dist/engine/extraction/tree-sitter/nodes.js.map +0 -1
- package/dist/engine/extraction/tree-sitter/parser.js.map +0 -1
- package/dist/engine/files/file-type.js.map +0 -1
- package/dist/engine/models/providers/index.d.ts +0 -2
- package/dist/engine/models/providers/index.js +0 -3
- package/dist/engine/models/providers/index.js.map +0 -1
- package/dist/engine/models/providers/llama-cpp/embedding.js.map +0 -1
- package/dist/engine/models/providers/llama-cpp/index.d.ts +0 -1
- package/dist/engine/models/providers/llama-cpp/index.js +0 -2
- package/dist/engine/models/providers/llama-cpp/index.js.map +0 -1
- package/dist/engine/models/providers/qwen/embedding.d.ts +0 -42
- package/dist/engine/models/providers/qwen/embedding.js.map +0 -1
- package/dist/engine/models/providers/qwen/index.d.ts +0 -1
- package/dist/engine/models/providers/qwen/index.js +0 -2
- package/dist/engine/models/providers/qwen/index.js.map +0 -1
- package/dist/engine/models/types.d.ts +0 -30
- /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/grammar.d.ts +0 -0
- /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/grammar.js +0 -0
- /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/nodes.d.ts +0 -0
- /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/parser.d.ts +0 -0
- /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/parser.js +0 -0
- /package/dist/engine/{models → extraction}/types.js +0 -0
- /package/dist/engine/{files/file-type.js → file-type.js} +0 -0
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
import { closeSync, existsSync, mkdirSync, openSync, readSync, statSync, unlinkSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { EngineError } from "
|
|
4
|
-
import { defaultHome } from "
|
|
5
|
-
import {
|
|
1
|
+
import { closeSync, existsSync, mkdirSync, openSync, readSync, statSync, unlinkSync, } from "node:fs";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
3
|
+
import { EngineError } from "../../errors.js";
|
|
4
|
+
import { defaultHome } from "../../utils/path.js";
|
|
5
|
+
import { BaseEmbeddingModel, } from "../embeddings.js";
|
|
6
|
+
import { createModelDownloadProgressReporter, } from "../download-progress.js";
|
|
6
7
|
const DEFAULT_MODEL_CACHE_DIR = join(defaultHome(), "models");
|
|
7
8
|
const GGUF_MAGIC = Buffer.from("GGUF");
|
|
8
9
|
const DEFAULT_PARALLELISM_CAP = 8;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const DEFAULT_DARWIN_CMAKE_OPTIONS = {
|
|
11
|
+
GGML_OPENMP: "OFF",
|
|
12
|
+
};
|
|
13
|
+
const DEFAULT_DARWIN_ARM64_CMAKE_OPTIONS = {
|
|
14
|
+
...DEFAULT_DARWIN_CMAKE_OPTIONS,
|
|
15
|
+
GGML_NATIVE: "OFF",
|
|
16
|
+
};
|
|
17
|
+
const SUPPRESSED_LLAMA_CPP_LOG_MESSAGES = new Set(["Failed to get swap info"]);
|
|
16
18
|
async function defaultNodeLlamaCppLoader() {
|
|
17
19
|
const moduleName = "node-llama-cpp";
|
|
18
20
|
try {
|
|
19
21
|
installDarwinMetalResidencyMitigation();
|
|
20
|
-
return await import(moduleName);
|
|
22
|
+
return (await import(moduleName));
|
|
21
23
|
}
|
|
22
24
|
catch (cause) {
|
|
23
25
|
throw new EngineError("node-llama-cpp is required for local embedding models", {
|
|
@@ -36,27 +38,25 @@ function installDarwinMetalResidencyMitigation() {
|
|
|
36
38
|
}
|
|
37
39
|
process.env.GGML_METAL_NO_RESIDENCY ??= "1";
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
41
|
+
let defaultRuntimeImport = null;
|
|
42
|
+
const defaultDependencies = {
|
|
43
|
+
loadRuntime() {
|
|
44
|
+
defaultRuntimeImport ??= defaultNodeLlamaCppLoader();
|
|
45
|
+
return defaultRuntimeImport;
|
|
46
|
+
},
|
|
47
|
+
runtimeState: {
|
|
48
|
+
failedGpuInitModes: new Set(),
|
|
49
|
+
cpuCompatibleFallbackWarningShown: false,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export class LlamaCppEmbeddingModel extends BaseEmbeddingModel {
|
|
50
53
|
entry;
|
|
51
|
-
|
|
52
|
-
dimension;
|
|
53
|
-
metric;
|
|
54
|
-
supportedContentKinds = ["text"];
|
|
55
|
-
limits;
|
|
56
|
-
recommendedIndexConcurrency = 1;
|
|
54
|
+
info;
|
|
57
55
|
modelCacheDir;
|
|
58
56
|
gpu;
|
|
59
|
-
|
|
57
|
+
parallelism;
|
|
58
|
+
dependencies;
|
|
59
|
+
runtimeImport = null;
|
|
60
60
|
llama = null;
|
|
61
61
|
model = null;
|
|
62
62
|
contexts = [];
|
|
@@ -65,33 +65,42 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
65
65
|
contextsCreatePromise = null;
|
|
66
66
|
usingCpuFallback = false;
|
|
67
67
|
disposed = false;
|
|
68
|
-
constructor(entry, options) {
|
|
68
|
+
constructor(entry, options, dependencies = {}) {
|
|
69
69
|
super();
|
|
70
70
|
this.entry = entry;
|
|
71
|
-
this.
|
|
71
|
+
this.info = {
|
|
72
|
+
reference: entry.reference,
|
|
72
73
|
provider: entry.provider,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
name: entry.model,
|
|
75
|
+
dimension: entry.dimension,
|
|
76
|
+
metric: entry.metric,
|
|
77
|
+
inputKinds: ["text"],
|
|
78
|
+
limits: {
|
|
79
|
+
maxBatchSize: entry.maxBatchSize,
|
|
80
|
+
maxInputTokens: entry.contextSize,
|
|
81
|
+
},
|
|
80
82
|
};
|
|
81
|
-
this.modelCacheDir =
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
this.modelCacheDir =
|
|
84
|
+
options.modelCacheDir ??
|
|
85
|
+
process.env.ZVEC_GREP_MODEL_CACHE ??
|
|
86
|
+
DEFAULT_MODEL_CACHE_DIR;
|
|
87
|
+
this.gpu = embeddingDeviceToLlamaGpuSelection(options.device ?? "cpu");
|
|
88
|
+
this.parallelism = resolveParallelismOverride(process.env.ZVEC_GREP_LLAMA_CONTEXT_PARALLELISM);
|
|
89
|
+
this.dependencies = { ...defaultDependencies, ...dependencies };
|
|
84
90
|
}
|
|
85
91
|
async doEmbed(contents, options) {
|
|
92
|
+
return await this.embedBatch(contents, options);
|
|
93
|
+
}
|
|
94
|
+
async embedBatch(contents, options) {
|
|
86
95
|
this.ensureNotDisposed();
|
|
87
96
|
const texts = contents.map((content) => formatTextForEmbedding(content.text, options.purpose, this.entry));
|
|
88
97
|
try {
|
|
89
|
-
return await this.embedTexts(texts);
|
|
98
|
+
return await this.embedTexts(texts, options.onProgress);
|
|
90
99
|
}
|
|
91
100
|
catch (cause) {
|
|
92
101
|
throw new EngineError("llama.cpp embedding failed", {
|
|
93
102
|
code: "ZVEC_GREP.ENGINE.MODELS.LLAMA_CPP_EMBED_FAILED",
|
|
94
|
-
context: `model=${this.entry.
|
|
103
|
+
context: `model=${this.entry.reference}`,
|
|
95
104
|
cause,
|
|
96
105
|
});
|
|
97
106
|
}
|
|
@@ -105,32 +114,44 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
105
114
|
this.modelLoadPromise = null;
|
|
106
115
|
this.contextsCreatePromise = null;
|
|
107
116
|
}
|
|
108
|
-
async embedTexts(texts) {
|
|
109
|
-
const contexts = await this.ensureEmbeddingContexts(texts.length);
|
|
117
|
+
async embedTexts(texts, onProgress) {
|
|
118
|
+
const contexts = await this.ensureEmbeddingContexts(texts.length, onProgress);
|
|
119
|
+
const truncatedInputIndexes = [];
|
|
120
|
+
const safeTexts = texts.map((text, index) => {
|
|
121
|
+
const result = this.truncateToContextSize(text);
|
|
122
|
+
if (result.truncated) {
|
|
123
|
+
truncatedInputIndexes.push(index);
|
|
124
|
+
}
|
|
125
|
+
return result.text;
|
|
126
|
+
});
|
|
110
127
|
const chunkSize = Math.ceil(texts.length / contexts.length);
|
|
111
|
-
const chunks = contexts
|
|
128
|
+
const chunks = contexts
|
|
129
|
+
.map((context, index) => ({
|
|
112
130
|
context,
|
|
113
|
-
texts:
|
|
114
|
-
}))
|
|
131
|
+
texts: safeTexts.slice(index * chunkSize, (index + 1) * chunkSize),
|
|
132
|
+
}))
|
|
133
|
+
.filter((chunk) => chunk.texts.length > 0);
|
|
115
134
|
const results = await Promise.all(chunks.map(async (chunk) => {
|
|
116
135
|
const vectors = [];
|
|
117
136
|
for (const text of chunk.texts) {
|
|
118
|
-
const
|
|
119
|
-
const embedding = await chunk.context.getEmbeddingFor(safeText);
|
|
137
|
+
const embedding = await chunk.context.getEmbeddingFor(text);
|
|
120
138
|
vectors.push(Array.from(embedding.vector));
|
|
121
139
|
}
|
|
122
140
|
return vectors;
|
|
123
141
|
}));
|
|
124
|
-
return
|
|
142
|
+
return {
|
|
143
|
+
vectors: results.flat(),
|
|
144
|
+
truncated: truncatedInputIndexes,
|
|
145
|
+
};
|
|
125
146
|
}
|
|
126
|
-
async ensureLlama() {
|
|
147
|
+
async ensureLlama(downloadProgress) {
|
|
127
148
|
if (this.llama) {
|
|
128
149
|
return this.llama;
|
|
129
150
|
}
|
|
130
151
|
if (this.llamaLoadPromise) {
|
|
131
152
|
return await this.llamaLoadPromise;
|
|
132
153
|
}
|
|
133
|
-
this.llamaLoadPromise = this.loadLlamaWithFallback();
|
|
154
|
+
this.llamaLoadPromise = this.loadLlamaWithFallback(downloadProgress);
|
|
134
155
|
try {
|
|
135
156
|
return await this.llamaLoadPromise;
|
|
136
157
|
}
|
|
@@ -138,57 +159,62 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
138
159
|
this.llamaLoadPromise = null;
|
|
139
160
|
}
|
|
140
161
|
}
|
|
141
|
-
async
|
|
142
|
-
|
|
162
|
+
async loadRuntime() {
|
|
163
|
+
this.runtimeImport ??= this.dependencies.loadRuntime();
|
|
164
|
+
return await this.runtimeImport;
|
|
165
|
+
}
|
|
166
|
+
async loadLlamaWithFallback(downloadProgress) {
|
|
167
|
+
const runtime = await this.loadRuntime();
|
|
143
168
|
const requestedGpu = this.usingCpuFallback ? false : this.gpu;
|
|
144
169
|
const load = (gpu) => runtime.getLlama({
|
|
145
170
|
build: "autoAttempt",
|
|
146
171
|
logLevel: runtime.LlamaLogLevel?.error,
|
|
147
172
|
logger: llamaCppLogger,
|
|
148
173
|
gpu,
|
|
174
|
+
cmakeOptions: defaultLlamaCppCmakeOptions(),
|
|
149
175
|
progressLogs: false,
|
|
150
176
|
});
|
|
151
177
|
if (requestedGpu === false) {
|
|
152
|
-
this.llama = await this.loadCpuCompatibleLlama(load);
|
|
178
|
+
this.llama = await this.loadCpuCompatibleLlama(load, downloadProgress);
|
|
153
179
|
return this.llama;
|
|
154
180
|
}
|
|
155
|
-
if (failedGpuInitModes.has(requestedGpu)) {
|
|
156
|
-
|
|
181
|
+
if (this.dependencies.runtimeState.failedGpuInitModes.has(requestedGpu)) {
|
|
182
|
+
reportLlamaWarning(downloadProgress, `skipping previously failed llama.cpp GPU init${requestedGpu === "auto" ? "" : ` for device=${requestedGpu}`}, using CPU.`);
|
|
157
183
|
this.usingCpuFallback = true;
|
|
158
|
-
this.llama = await this.loadCpuCompatibleLlama(load);
|
|
184
|
+
this.llama = await this.loadCpuCompatibleLlama(load, downloadProgress);
|
|
159
185
|
return this.llama;
|
|
160
186
|
}
|
|
161
187
|
try {
|
|
162
188
|
this.llama = await load(requestedGpu);
|
|
163
189
|
}
|
|
164
190
|
catch (error) {
|
|
165
|
-
failedGpuInitModes.add(requestedGpu);
|
|
166
|
-
|
|
191
|
+
this.dependencies.runtimeState.failedGpuInitModes.add(requestedGpu);
|
|
192
|
+
reportLlamaWarning(downloadProgress, `llama.cpp GPU init failed (${formatErrorMessage(error)}), falling back to CPU.`);
|
|
167
193
|
this.usingCpuFallback = true;
|
|
168
|
-
this.llama = await this.loadCpuCompatibleLlama(load);
|
|
194
|
+
this.llama = await this.loadCpuCompatibleLlama(load, downloadProgress);
|
|
169
195
|
}
|
|
170
196
|
return this.llama;
|
|
171
197
|
}
|
|
172
|
-
async loadCpuCompatibleLlama(load) {
|
|
198
|
+
async loadCpuCompatibleLlama(load, downloadProgress) {
|
|
173
199
|
try {
|
|
174
200
|
return await load(false);
|
|
175
201
|
}
|
|
176
202
|
catch (error) {
|
|
177
|
-
if (!cpuCompatibleFallbackWarningShown) {
|
|
178
|
-
cpuCompatibleFallbackWarningShown = true;
|
|
179
|
-
|
|
203
|
+
if (!this.dependencies.runtimeState.cpuCompatibleFallbackWarningShown) {
|
|
204
|
+
this.dependencies.runtimeState.cpuCompatibleFallbackWarningShown = true;
|
|
205
|
+
reportLlamaWarning(downloadProgress, `CPU-only llama.cpp backend unavailable (${formatErrorMessage(error)}); using packaged backend with GPU model offloading disabled.`);
|
|
180
206
|
}
|
|
181
207
|
return await load("auto");
|
|
182
208
|
}
|
|
183
209
|
}
|
|
184
|
-
async ensureModel() {
|
|
210
|
+
async ensureModel(onProgress) {
|
|
185
211
|
if (this.model) {
|
|
186
212
|
return this.model;
|
|
187
213
|
}
|
|
188
214
|
if (this.modelLoadPromise) {
|
|
189
215
|
return await this.modelLoadPromise;
|
|
190
216
|
}
|
|
191
|
-
this.modelLoadPromise = this.loadModelWithFallback();
|
|
217
|
+
this.modelLoadPromise = this.loadModelWithFallback(onProgress);
|
|
192
218
|
try {
|
|
193
219
|
return await this.modelLoadPromise;
|
|
194
220
|
}
|
|
@@ -196,23 +222,32 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
196
222
|
this.modelLoadPromise = null;
|
|
197
223
|
}
|
|
198
224
|
}
|
|
199
|
-
async loadModelWithFallback() {
|
|
225
|
+
async loadModelWithFallback(onProgress) {
|
|
226
|
+
const downloadProgress = createModelDownloadProgressReporter(this.entry.reference, onProgress, [basename(this.entry.uri)]);
|
|
227
|
+
downloadProgress.start();
|
|
200
228
|
try {
|
|
201
|
-
|
|
229
|
+
const model = await this.loadModel(downloadProgress);
|
|
230
|
+
downloadProgress.finish();
|
|
231
|
+
return model;
|
|
202
232
|
}
|
|
203
233
|
catch (error) {
|
|
204
234
|
if (!this.canRetryGpuOperationOnCpu()) {
|
|
205
235
|
throw error;
|
|
206
236
|
}
|
|
207
|
-
|
|
237
|
+
const warning = `llama.cpp GPU model load failed (${formatErrorMessage(error)}), falling back to CPU.`;
|
|
238
|
+
if (!downloadProgress.warning(warning)) {
|
|
239
|
+
process.stderr.write(`zvec-grep warning: ${warning}\n`);
|
|
240
|
+
}
|
|
208
241
|
this.usingCpuFallback = true;
|
|
209
242
|
await this.disposeLoadedRuntime();
|
|
210
|
-
|
|
243
|
+
const model = await this.loadModel(downloadProgress);
|
|
244
|
+
downloadProgress.finish();
|
|
245
|
+
return model;
|
|
211
246
|
}
|
|
212
247
|
}
|
|
213
|
-
async loadModel() {
|
|
214
|
-
const
|
|
215
|
-
const
|
|
248
|
+
async loadModel(downloadProgress) {
|
|
249
|
+
const modelPath = await this.resolveModelPath(downloadProgress);
|
|
250
|
+
const llama = await this.ensureLlama(downloadProgress);
|
|
216
251
|
const model = await llama.loadModel(this.modelLoadOptions(modelPath));
|
|
217
252
|
this.model = model;
|
|
218
253
|
return model;
|
|
@@ -223,7 +258,7 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
223
258
|
...(this.shouldDisableModelGpuOffload() ? { gpuLayers: 0 } : {}),
|
|
224
259
|
};
|
|
225
260
|
}
|
|
226
|
-
async ensureEmbeddingContexts(textCount) {
|
|
261
|
+
async ensureEmbeddingContexts(textCount, onProgress) {
|
|
227
262
|
const targetParallelism = await this.resolveEffectiveParallelism(textCount);
|
|
228
263
|
if (this.contexts.length >= targetParallelism) {
|
|
229
264
|
return this.contexts.slice(0, targetParallelism);
|
|
@@ -234,7 +269,7 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
234
269
|
return this.contexts.slice(0, targetParallelism);
|
|
235
270
|
}
|
|
236
271
|
}
|
|
237
|
-
this.contextsCreatePromise = this.createEmbeddingContextsWithFallback(targetParallelism);
|
|
272
|
+
this.contextsCreatePromise = this.createEmbeddingContextsWithFallback(targetParallelism, onProgress);
|
|
238
273
|
try {
|
|
239
274
|
await this.contextsCreatePromise;
|
|
240
275
|
return this.contexts.slice(0, targetParallelism);
|
|
@@ -243,9 +278,9 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
243
278
|
this.contextsCreatePromise = null;
|
|
244
279
|
}
|
|
245
280
|
}
|
|
246
|
-
async createEmbeddingContextsWithFallback(targetParallelism) {
|
|
281
|
+
async createEmbeddingContextsWithFallback(targetParallelism, onProgress) {
|
|
247
282
|
try {
|
|
248
|
-
return await this.createEmbeddingContexts(targetParallelism);
|
|
283
|
+
return await this.createEmbeddingContexts(targetParallelism, onProgress);
|
|
249
284
|
}
|
|
250
285
|
catch (error) {
|
|
251
286
|
if (!this.canRetryGpuOperationOnCpu()) {
|
|
@@ -254,11 +289,11 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
254
289
|
process.stderr.write(`zvec-grep warning: llama.cpp GPU embedding context failed (${formatErrorMessage(error)}), falling back to CPU.\n`);
|
|
255
290
|
this.usingCpuFallback = true;
|
|
256
291
|
await this.disposeLoadedRuntime();
|
|
257
|
-
return await this.createEmbeddingContexts(targetParallelism);
|
|
292
|
+
return await this.createEmbeddingContexts(targetParallelism, onProgress);
|
|
258
293
|
}
|
|
259
294
|
}
|
|
260
|
-
async createEmbeddingContexts(targetParallelism) {
|
|
261
|
-
const model = await this.ensureModel();
|
|
295
|
+
async createEmbeddingContexts(targetParallelism, onProgress) {
|
|
296
|
+
const model = await this.ensureModel(onProgress);
|
|
262
297
|
const threads = await this.resolveThreadsPerContext(targetParallelism);
|
|
263
298
|
const initialContextCount = this.contexts.length;
|
|
264
299
|
while (this.contexts.length < targetParallelism) {
|
|
@@ -278,12 +313,10 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
278
313
|
return this.contexts.slice(0, targetParallelism);
|
|
279
314
|
}
|
|
280
315
|
canRetryGpuOperationOnCpu() {
|
|
281
|
-
return this.gpu !== false
|
|
282
|
-
&& !this.usingCpuFallback;
|
|
316
|
+
return this.gpu !== false && !this.usingCpuFallback;
|
|
283
317
|
}
|
|
284
318
|
shouldDisableModelGpuOffload() {
|
|
285
|
-
return this.gpu === false
|
|
286
|
-
|| this.usingCpuFallback;
|
|
319
|
+
return this.gpu === false || this.usingCpuFallback;
|
|
287
320
|
}
|
|
288
321
|
async disposeLoadedRuntime() {
|
|
289
322
|
const contexts = this.contexts;
|
|
@@ -305,22 +338,31 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
305
338
|
this.modelLoadPromise = null;
|
|
306
339
|
this.llamaLoadPromise = null;
|
|
307
340
|
}
|
|
308
|
-
async resolveModelPath() {
|
|
341
|
+
async resolveModelPath(downloadProgress) {
|
|
309
342
|
mkdirSync(this.modelCacheDir, { recursive: true });
|
|
310
|
-
const runtime = await
|
|
343
|
+
const runtime = await this.loadRuntime();
|
|
311
344
|
const modelPath = await runtime.resolveModelFile(this.entry.uri, {
|
|
312
345
|
directory: this.modelCacheDir,
|
|
313
346
|
cli: false,
|
|
347
|
+
onProgress: ({ downloadedSize, totalSize }) => {
|
|
348
|
+
downloadProgress.report({
|
|
349
|
+
artifact: basename(this.entry.uri),
|
|
350
|
+
downloadedBytes: downloadedSize,
|
|
351
|
+
totalBytes: totalSize,
|
|
352
|
+
});
|
|
353
|
+
},
|
|
314
354
|
});
|
|
315
355
|
validateGgufFile(modelPath, this.entry.uri);
|
|
316
356
|
return modelPath;
|
|
317
357
|
}
|
|
318
358
|
async resolveParallelism() {
|
|
319
|
-
if (this.
|
|
320
|
-
return this.
|
|
359
|
+
if (this.parallelism !== undefined) {
|
|
360
|
+
return this.parallelism;
|
|
321
361
|
}
|
|
322
362
|
const llama = await this.ensureLlama();
|
|
323
|
-
if (!this.shouldDisableModelGpuOffload() &&
|
|
363
|
+
if (!this.shouldDisableModelGpuOffload() &&
|
|
364
|
+
llama.gpu &&
|
|
365
|
+
llama.getVramState) {
|
|
324
366
|
try {
|
|
325
367
|
const vram = await llama.getVramState();
|
|
326
368
|
const freeMb = vram.free / (1024 * 1024);
|
|
@@ -350,20 +392,23 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
350
392
|
truncateToContextSize(text) {
|
|
351
393
|
const model = this.model;
|
|
352
394
|
if (!model?.tokenize || !model.detokenize) {
|
|
353
|
-
return text;
|
|
395
|
+
return { text, truncated: false };
|
|
354
396
|
}
|
|
355
397
|
const limit = Math.max(1, Math.min(this.entry.contextSize, model.trainContextSize ?? this.entry.contextSize));
|
|
356
398
|
const tokens = model.tokenize(text);
|
|
357
399
|
if (tokens.length <= limit) {
|
|
358
|
-
return text;
|
|
400
|
+
return { text, truncated: false };
|
|
359
401
|
}
|
|
360
|
-
return
|
|
402
|
+
return {
|
|
403
|
+
text: model.detokenize(tokens.slice(0, Math.max(1, limit - 4))),
|
|
404
|
+
truncated: true,
|
|
405
|
+
};
|
|
361
406
|
}
|
|
362
407
|
ensureNotDisposed() {
|
|
363
408
|
if (this.disposed) {
|
|
364
409
|
throw new EngineError("llama.cpp embedding model is disposed", {
|
|
365
410
|
code: "ZVEC_GREP.ENGINE.MODELS.LLAMA_CPP_DISPOSED",
|
|
366
|
-
context: `model=${this.entry.
|
|
411
|
+
context: `model=${this.entry.reference}`,
|
|
367
412
|
});
|
|
368
413
|
}
|
|
369
414
|
}
|
|
@@ -371,6 +416,11 @@ export class LlamaCppEmbeddingModel extends EmbeddingModel {
|
|
|
371
416
|
function formatErrorMessage(error) {
|
|
372
417
|
return error instanceof Error ? error.message : String(error);
|
|
373
418
|
}
|
|
419
|
+
function reportLlamaWarning(downloadProgress, message) {
|
|
420
|
+
if (!downloadProgress?.warning(message)) {
|
|
421
|
+
process.stderr.write(`zvec-grep warning: ${message}\n`);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
374
424
|
function llamaCppLogger(_level, message) {
|
|
375
425
|
const trimmed = message.trim();
|
|
376
426
|
if (SUPPRESSED_LLAMA_CPP_LOG_MESSAGES.has(trimmed)) {
|
|
@@ -388,6 +438,17 @@ function formatLlamaCppLogMessage(message) {
|
|
|
388
438
|
.map((line) => `[node-llama-cpp] ${line}`)
|
|
389
439
|
.join("\n")}\n`;
|
|
390
440
|
}
|
|
441
|
+
function defaultLlamaCppCmakeOptions() {
|
|
442
|
+
if (process.platform !== "darwin") {
|
|
443
|
+
return undefined;
|
|
444
|
+
}
|
|
445
|
+
// macOS machines commonly lack libomp, and Apple Clang's native ARM flag
|
|
446
|
+
// probe emits a scary CMake warning despite falling back successfully.
|
|
447
|
+
if (process.arch === "arm64") {
|
|
448
|
+
return { ...DEFAULT_DARWIN_ARM64_CMAKE_OPTIONS };
|
|
449
|
+
}
|
|
450
|
+
return { ...DEFAULT_DARWIN_CMAKE_OPTIONS };
|
|
451
|
+
}
|
|
391
452
|
function formatTextForEmbedding(text, purpose, entry) {
|
|
392
453
|
if (entry.format === "qwen3") {
|
|
393
454
|
return purpose === "query"
|
|
@@ -398,19 +459,8 @@ function formatTextForEmbedding(text, purpose, entry) {
|
|
|
398
459
|
? `task: search result | query: ${text}`
|
|
399
460
|
: `title: none | text: ${text}`;
|
|
400
461
|
}
|
|
401
|
-
function
|
|
402
|
-
|
|
403
|
-
if (!normalized) {
|
|
404
|
-
return false;
|
|
405
|
-
}
|
|
406
|
-
if (["false", "off", "none", "disable", "disabled", "0"].includes(normalized)) {
|
|
407
|
-
return false;
|
|
408
|
-
}
|
|
409
|
-
if (normalized === "auto" || normalized === "metal" || normalized === "vulkan" || normalized === "cuda") {
|
|
410
|
-
return normalized;
|
|
411
|
-
}
|
|
412
|
-
process.stderr.write(`zvec-grep warning: invalid ZVEC_GREP_LLAMA_GPU="${envValue}", using CPU.\n`);
|
|
413
|
-
return false;
|
|
462
|
+
function embeddingDeviceToLlamaGpuSelection(device) {
|
|
463
|
+
return device === "cpu" ? false : device;
|
|
414
464
|
}
|
|
415
465
|
function resolveParallelismOverride(envValue) {
|
|
416
466
|
const normalized = envValue?.trim() ?? "";
|
|
@@ -419,7 +469,7 @@ function resolveParallelismOverride(envValue) {
|
|
|
419
469
|
}
|
|
420
470
|
const parsed = Number.parseInt(normalized, 10);
|
|
421
471
|
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
422
|
-
process.stderr.write(`zvec-grep warning: invalid
|
|
472
|
+
process.stderr.write(`zvec-grep warning: invalid ZVEC_GREP_LLAMA_CONTEXT_PARALLELISM="${envValue}", using automatic parallelism.\n`);
|
|
423
473
|
return undefined;
|
|
424
474
|
}
|
|
425
475
|
return Math.min(DEFAULT_PARALLELISM_CAP, parsed);
|
|
@@ -443,7 +493,9 @@ function validateGgufFile(filePath, modelUri) {
|
|
|
443
493
|
const text = sniff.toString("utf8").toLowerCase();
|
|
444
494
|
const isHtml = text.includes("<!doctype") || text.includes("<html");
|
|
445
495
|
const got = header.toString("utf8");
|
|
446
|
-
const sizeKb = existsSync(filePath)
|
|
496
|
+
const sizeKb = existsSync(filePath)
|
|
497
|
+
? (statSync(filePath).size / 1024).toFixed(0)
|
|
498
|
+
: "0";
|
|
447
499
|
unlinkSync(filePath);
|
|
448
500
|
if (isHtml) {
|
|
449
501
|
throw new EngineError("Downloaded local embedding model is HTML, not GGUF", {
|
|
@@ -456,4 +508,4 @@ function validateGgufFile(filePath, modelUri) {
|
|
|
456
508
|
context: `model=${modelUri} path=${filePath} expected=GGUF actual=${got} sizeKB=${sizeKb}`,
|
|
457
509
|
});
|
|
458
510
|
}
|
|
459
|
-
//# sourceMappingURL=
|
|
511
|
+
//# sourceMappingURL=llama-cpp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llama-cpp.js","sourceRoot":"","sources":["../../../../src/engine/models/backends/llama-cpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Content } from "../../types.js";
|
|
2
|
+
import { BaseEmbeddingModel, type CreateEmbeddingModelOptions, type EmbeddingModelInfo, type EmbeddingResult, type NormalizedEmbeddingOptions } from "../embeddings.js";
|
|
3
|
+
import type { Model2VecEmbeddingCatalogEntry } from "../catalog.js";
|
|
4
|
+
type TokenTensor = {
|
|
5
|
+
data: ArrayLike<number | bigint>;
|
|
6
|
+
};
|
|
7
|
+
type TokenizerOutput = {
|
|
8
|
+
input_ids: TokenTensor;
|
|
9
|
+
};
|
|
10
|
+
type TokenizerLike = {
|
|
11
|
+
(text: string, options: {
|
|
12
|
+
add_special_tokens: false;
|
|
13
|
+
truncation: true;
|
|
14
|
+
max_length: number;
|
|
15
|
+
}): TokenizerOutput | Promise<TokenizerOutput>;
|
|
16
|
+
unk_token_id?: number | null;
|
|
17
|
+
};
|
|
18
|
+
type StaticEmbeddingTable = {
|
|
19
|
+
data: Float32Array | Uint16Array;
|
|
20
|
+
dimension: number;
|
|
21
|
+
dtype: "F16" | "F32";
|
|
22
|
+
rows: number;
|
|
23
|
+
};
|
|
24
|
+
type Model2VecDependencies = {
|
|
25
|
+
loadTokenizer(repo: string, options: {
|
|
26
|
+
cache_dir: string;
|
|
27
|
+
revision: string;
|
|
28
|
+
local_files_only?: boolean;
|
|
29
|
+
}): Promise<TokenizerLike>;
|
|
30
|
+
loadSafetensors(path: string, tensorName: string, dimension: number): Promise<StaticEmbeddingTable>;
|
|
31
|
+
download(url: string, destination: string, onProgress?: (progress: {
|
|
32
|
+
downloadedBytes: number;
|
|
33
|
+
totalBytes?: number;
|
|
34
|
+
}) => void): Promise<void>;
|
|
35
|
+
};
|
|
36
|
+
export declare class Model2VecEmbeddingModel extends BaseEmbeddingModel {
|
|
37
|
+
private readonly entry;
|
|
38
|
+
readonly info: EmbeddingModelInfo;
|
|
39
|
+
private readonly modelCacheDir;
|
|
40
|
+
private readonly dependencies;
|
|
41
|
+
private tokenizer;
|
|
42
|
+
private staticTable;
|
|
43
|
+
private loadPromise;
|
|
44
|
+
private disposed;
|
|
45
|
+
constructor(entry: Model2VecEmbeddingCatalogEntry, options: CreateEmbeddingModelOptions, dependencies?: Partial<Model2VecDependencies>);
|
|
46
|
+
protected doEmbed(contents: readonly Content[], options: NormalizedEmbeddingOptions): Promise<EmbeddingResult>;
|
|
47
|
+
private embedBatch;
|
|
48
|
+
dispose(): Promise<void>;
|
|
49
|
+
private ensureLoaded;
|
|
50
|
+
private loadModel;
|
|
51
|
+
private resolveModelPath;
|
|
52
|
+
private resolveTokenizerSource;
|
|
53
|
+
private resolveCachedFile;
|
|
54
|
+
private embedTexts;
|
|
55
|
+
private ensureNotDisposed;
|
|
56
|
+
}
|
|
57
|
+
export {};
|