mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-07 07:42:13 +03:00
chore: move sqlite-vec to optionalDependencies, fix js-tiktoken static import
Both changes ensure native binary dependencies are properly categorized as optional:
- sqlite-vec: moved from dependencies to optionalDependencies. Only used via
lazy _require("sqlite-vec") in vectorStore.ts — zero static imports.
- js-tiktoken: already in optionalDependencies, import changed to createRequire
pattern to avoid crash when package is not installed (same pattern as sqlite-vec
in vectorStore.ts).
Resolves ScoutDeps findings from browser-pool pluginization audit.
This commit is contained in:
@@ -304,7 +304,6 @@
|
||||
"smol-toml": "1.7.1",
|
||||
"socks": "^2.8.7",
|
||||
"sql.js": "^1.14.1",
|
||||
"sqlite-vec": "^0.1.9",
|
||||
"tailwind-merge": "^3.6.0",
|
||||
"tsx": "^4.23.0",
|
||||
"undici": "^8.3.0",
|
||||
@@ -324,7 +323,8 @@
|
||||
"js-tiktoken": "^1.0.20",
|
||||
"keytar": "^7.9.0",
|
||||
"tls-client-node": "^0.2.0",
|
||||
"wreq-js": "^2.3.1"
|
||||
"wreq-js": "^2.3.1",
|
||||
"sqlite-vec": "^0.1.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@axe-core/playwright": "^4.11.3",
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { getEncoding, type Tiktoken } from "js-tiktoken";
|
||||
import type { Tiktoken } from "js-tiktoken";
|
||||
import { createRequire } from "module";
|
||||
|
||||
const _require = createRequire(import.meta.url);
|
||||
|
||||
export type TokenizerEncoding = "cl100k_base" | "o200k_base";
|
||||
|
||||
@@ -41,9 +44,15 @@ export function resolveTokenizerEncoding(context?: TokenizerContext): TokenizerE
|
||||
function getEncoder(encoding: TokenizerEncoding): Tiktoken {
|
||||
const cached = encoders.get(encoding);
|
||||
if (cached) return cached;
|
||||
const created = getEncoding(encoding);
|
||||
encoders.set(encoding, created);
|
||||
return created;
|
||||
let tiktoken: { getEncoding: (name: string) => Tiktoken } | null = null;
|
||||
try {
|
||||
tiktoken ??= _require("js-tiktoken") as { getEncoding: (name: string) => Tiktoken };
|
||||
const created = tiktoken.getEncoding(encoding);
|
||||
encoders.set(encoding, created);
|
||||
return created;
|
||||
} catch {
|
||||
throw new Error(`js-tiktoken not available: cannot create encoder for ${encoding}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user