@massa-ai/mcp-client 1.58.0 → 1.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config-cli.js +140 -36
- package/dist/index.js +122 -28
- package/package.json +3 -3
package/dist/config-cli.js
CHANGED
|
@@ -444,10 +444,33 @@ function parseLmStudioModelList(body) {
|
|
|
444
444
|
function inferenceProviderList() {
|
|
445
445
|
return LOCAL_INFERENCE_IDS.map((id) => INFERENCE_PROVIDERS[id]);
|
|
446
446
|
}
|
|
447
|
-
|
|
447
|
+
function deriveInferenceBaseUrls(providerId, explicitBaseUrl) {
|
|
448
|
+
const spec = INFERENCE_PROVIDERS[providerId];
|
|
449
|
+
if (!explicitBaseUrl) {
|
|
450
|
+
return {
|
|
451
|
+
embeddingBaseUrl: spec.defaultEmbeddingBaseUrl,
|
|
452
|
+
llmBaseUrl: spec.defaultLlmBaseUrl
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
let end = explicitBaseUrl.length;
|
|
456
|
+
while (end > 0 && explicitBaseUrl.charCodeAt(end - 1) === SLASH)
|
|
457
|
+
end--;
|
|
458
|
+
const base = explicitBaseUrl.slice(0, end);
|
|
459
|
+
const suffix = spec.defaultLlmBaseUrl.startsWith(spec.defaultEmbeddingBaseUrl) ? spec.defaultLlmBaseUrl.slice(spec.defaultEmbeddingBaseUrl.length) : "";
|
|
460
|
+
return {
|
|
461
|
+
embeddingBaseUrl: base,
|
|
462
|
+
llmBaseUrl: `${base}${suffix}`
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
var LOCAL_INFERENCE_IDS, INFERENCE_ROLE_DEFAULTS, INFERENCE_PROVIDERS, SLASH = 47;
|
|
448
466
|
var init_inference_providers = __esm(() => {
|
|
449
467
|
init_embedding_dimensions();
|
|
450
468
|
LOCAL_INFERENCE_IDS = ["ollama", "lmstudio"];
|
|
469
|
+
INFERENCE_ROLE_DEFAULTS = {
|
|
470
|
+
embedding: { contextWindow: 8192 },
|
|
471
|
+
instruct: { contextWindow: 16384, temperature: 0.2 },
|
|
472
|
+
coding: { contextWindow: 32768, temperature: 0 }
|
|
473
|
+
};
|
|
451
474
|
INFERENCE_PROVIDERS = {
|
|
452
475
|
ollama: {
|
|
453
476
|
id: "ollama",
|
|
@@ -459,6 +482,13 @@ var init_inference_providers = __esm(() => {
|
|
|
459
482
|
dimensions: "OLLAMA_EMBEDDING_DIMENSIONS"
|
|
460
483
|
},
|
|
461
484
|
knownDimensions: KNOWN_EMBEDDING_DIMENSIONS,
|
|
485
|
+
defaultModels: {
|
|
486
|
+
embedding: "qwen3-embedding:0.6b",
|
|
487
|
+
instruct: "qwen3-vl:8b",
|
|
488
|
+
coding: "qwen2.5-coder:7b"
|
|
489
|
+
},
|
|
490
|
+
appliesContextPerRequest: true,
|
|
491
|
+
embedBatchSize: 64,
|
|
462
492
|
supportsOllamaVersionProbe: true,
|
|
463
493
|
injectsDisableThink: true,
|
|
464
494
|
requiresChatCompletionsApi: false,
|
|
@@ -474,8 +504,16 @@ var init_inference_providers = __esm(() => {
|
|
|
474
504
|
dimensions: "LMSTUDIO_EMBEDDING_DIMENSIONS"
|
|
475
505
|
},
|
|
476
506
|
knownDimensions: {
|
|
477
|
-
"text-embedding-nomic-embed-text-v1.5": 768
|
|
507
|
+
"text-embedding-nomic-embed-text-v1.5": 768,
|
|
508
|
+
"text-embedding-qwen3-embedding-0.6b": 1024
|
|
478
509
|
},
|
|
510
|
+
defaultModels: {
|
|
511
|
+
embedding: "text-embedding-qwen3-embedding-0.6b",
|
|
512
|
+
instruct: "qwen3-vl-8b-instruct",
|
|
513
|
+
coding: "qwen2.5-coder-7b-instruct"
|
|
514
|
+
},
|
|
515
|
+
appliesContextPerRequest: false,
|
|
516
|
+
embedBatchSize: 64,
|
|
479
517
|
supportsOllamaVersionProbe: false,
|
|
480
518
|
injectsDisableThink: false,
|
|
481
519
|
requiresChatCompletionsApi: true,
|
|
@@ -490,6 +528,7 @@ var API_PROVIDER_IDS, EMBEDDING_PROVIDER_IDS, SCHEDULER_JOB_KINDS, MAX_MATCH_WOR
|
|
|
490
528
|
var init_massa_ai_config = __esm(() => {
|
|
491
529
|
init_xdg();
|
|
492
530
|
init_inference_providers();
|
|
531
|
+
init_embedding_dimensions();
|
|
493
532
|
API_PROVIDER_IDS = ["mistral", "openai", "google", "cohere"];
|
|
494
533
|
EMBEDDING_PROVIDER_IDS = [
|
|
495
534
|
...LOCAL_INFERENCE_IDS,
|
|
@@ -556,9 +595,9 @@ var init_massa_ai_config = __esm(() => {
|
|
|
556
595
|
},
|
|
557
596
|
embedding: {
|
|
558
597
|
provider: "ollama",
|
|
559
|
-
model:
|
|
598
|
+
model: INFERENCE_PROVIDERS.ollama.defaultModels.embedding,
|
|
560
599
|
baseURL: "http://localhost:11434",
|
|
561
|
-
dimensions:
|
|
600
|
+
dimensions: knownEmbeddingDimensions(INFERENCE_PROVIDERS.ollama.defaultModels.embedding) ?? 768
|
|
562
601
|
},
|
|
563
602
|
compression: {
|
|
564
603
|
defaultStrategy: "code_structure",
|
|
@@ -597,12 +636,15 @@ var init_massa_ai_config = __esm(() => {
|
|
|
597
636
|
enabled: false,
|
|
598
637
|
baseUrl: "http://localhost:11434/v1",
|
|
599
638
|
apiKey: "ollama",
|
|
600
|
-
model:
|
|
601
|
-
codeModel:
|
|
639
|
+
model: INFERENCE_PROVIDERS.ollama.defaultModels.instruct,
|
|
640
|
+
codeModel: INFERENCE_PROVIDERS.ollama.defaultModels.coding,
|
|
602
641
|
temperature: 0.2,
|
|
603
642
|
maxOutputTokens: 8000,
|
|
604
643
|
timeoutMs: 90000,
|
|
605
|
-
disableThink: true
|
|
644
|
+
disableThink: true,
|
|
645
|
+
contextWindow: INFERENCE_ROLE_DEFAULTS.instruct.contextWindow,
|
|
646
|
+
codeContextWindow: INFERENCE_ROLE_DEFAULTS.coding.contextWindow,
|
|
647
|
+
codeTemperature: INFERENCE_ROLE_DEFAULTS.coding.temperature
|
|
606
648
|
},
|
|
607
649
|
memory: {
|
|
608
650
|
decay: {
|
|
@@ -1157,6 +1199,13 @@ function getGlobalDataDir() {
|
|
|
1157
1199
|
return fileConfig.dataDir;
|
|
1158
1200
|
return path4.join(getConfigDir(), "data");
|
|
1159
1201
|
}
|
|
1202
|
+
function activeInferenceProviderId() {
|
|
1203
|
+
const providerId = fileConfig.embedding?.provider;
|
|
1204
|
+
if (providerId && LOCAL_INFERENCE_IDS.includes(providerId)) {
|
|
1205
|
+
return providerId;
|
|
1206
|
+
}
|
|
1207
|
+
return "ollama";
|
|
1208
|
+
}
|
|
1160
1209
|
|
|
1161
1210
|
class Config {
|
|
1162
1211
|
config;
|
|
@@ -1293,11 +1342,12 @@ class Config {
|
|
|
1293
1342
|
this.config[key] = value;
|
|
1294
1343
|
}
|
|
1295
1344
|
}
|
|
1296
|
-
var
|
|
1345
|
+
var SCHEDULER_JOB_ENV, DEFAULT_ALLOWED_EXTENSIONS, fileConfig, DEFAULT_LLM_MODEL, DEFAULT_LLM_CODE_MODEL, fileCacheL1Bytes, fileCacheL2Bytes, resolvedDataDir, defaultConfig, config;
|
|
1297
1346
|
var init_config = __esm(() => {
|
|
1298
1347
|
init_env();
|
|
1299
1348
|
init_config_loader();
|
|
1300
1349
|
init_massa_ai_config();
|
|
1350
|
+
init_inference_providers();
|
|
1301
1351
|
init_massa_ai_config();
|
|
1302
1352
|
init_massa_ai_config();
|
|
1303
1353
|
init_config_loader();
|
|
@@ -1368,6 +1418,8 @@ var init_config = __esm(() => {
|
|
|
1368
1418
|
".hs"
|
|
1369
1419
|
];
|
|
1370
1420
|
fileConfig = loadConfigSafe();
|
|
1421
|
+
DEFAULT_LLM_MODEL = INFERENCE_PROVIDERS[activeInferenceProviderId()].defaultModels.instruct;
|
|
1422
|
+
DEFAULT_LLM_CODE_MODEL = INFERENCE_PROVIDERS[activeInferenceProviderId()].defaultModels.coding;
|
|
1371
1423
|
fileCacheL1Bytes = fileConfig.cache?.l1MaxSizeMB ? fileConfig.cache.l1MaxSizeMB * 1024 * 1024 : undefined;
|
|
1372
1424
|
fileCacheL2Bytes = fileConfig.cache?.l2MaxSizeMB ? fileConfig.cache.l2MaxSizeMB * 1024 * 1024 : undefined;
|
|
1373
1425
|
resolvedDataDir = getGlobalDataDir();
|
|
@@ -1410,7 +1462,10 @@ var init_config = __esm(() => {
|
|
|
1410
1462
|
temperature: envNum("MASSA_AI_LLM_TEMPERATURE", fileConfig.llm?.temperature ?? 0.2),
|
|
1411
1463
|
maxOutputTokens: envNum("MASSA_AI_LLM_MAX_OUTPUT_TOKENS", fileConfig.llm?.maxOutputTokens ?? 8000),
|
|
1412
1464
|
timeoutMs: envNum("MASSA_AI_LLM_TIMEOUT_MS", fileConfig.llm?.timeoutMs ?? 90000),
|
|
1413
|
-
disableThink: envBool("MASSA_AI_LLM_DISABLE_THINK", fileConfig.llm?.disableThink ?? true)
|
|
1465
|
+
disableThink: envBool("MASSA_AI_LLM_DISABLE_THINK", fileConfig.llm?.disableThink ?? true),
|
|
1466
|
+
contextWindow: fileConfig.llm?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.instruct.contextWindow,
|
|
1467
|
+
codeContextWindow: fileConfig.llm?.codeContextWindow ?? INFERENCE_ROLE_DEFAULTS.coding.contextWindow,
|
|
1468
|
+
codeTemperature: envNum("MASSA_AI_LLM_CODE_TEMPERATURE", fileConfig.llm?.codeTemperature ?? INFERENCE_ROLE_DEFAULTS.coding.temperature)
|
|
1414
1469
|
},
|
|
1415
1470
|
memory: {
|
|
1416
1471
|
decay: {
|
|
@@ -9346,7 +9401,7 @@ var require_ignore = __commonJS((exports, module) => {
|
|
|
9346
9401
|
var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
|
|
9347
9402
|
var REGEX_SPLITALL_CRLF = /\r?\n/g;
|
|
9348
9403
|
var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
|
|
9349
|
-
var
|
|
9404
|
+
var SLASH2 = "/";
|
|
9350
9405
|
var TMP_KEY_IGNORE = "node-ignore";
|
|
9351
9406
|
if (typeof Symbol !== "undefined") {
|
|
9352
9407
|
TMP_KEY_IGNORE = Symbol.for("node-ignore");
|
|
@@ -9557,13 +9612,13 @@ var require_ignore = __commonJS((exports, module) => {
|
|
|
9557
9612
|
return cache[path16];
|
|
9558
9613
|
}
|
|
9559
9614
|
if (!slices) {
|
|
9560
|
-
slices = path16.split(
|
|
9615
|
+
slices = path16.split(SLASH2);
|
|
9561
9616
|
}
|
|
9562
9617
|
slices.pop();
|
|
9563
9618
|
if (!slices.length) {
|
|
9564
9619
|
return cache[path16] = this._testOne(path16, checkUnignored);
|
|
9565
9620
|
}
|
|
9566
|
-
const parent = this._t(slices.join(
|
|
9621
|
+
const parent = this._t(slices.join(SLASH2) + SLASH2, cache, checkUnignored, slices);
|
|
9567
9622
|
return cache[path16] = parent.ignored ? parent : this._testOne(path16, checkUnignored);
|
|
9568
9623
|
}
|
|
9569
9624
|
ignores(path16) {
|
|
@@ -52395,20 +52450,26 @@ function isLlmEnabled() {
|
|
|
52395
52450
|
function _setLlmEnabledForTesting(flag) {
|
|
52396
52451
|
testEnabledOverride = flag;
|
|
52397
52452
|
}
|
|
52398
|
-
function
|
|
52399
|
-
const
|
|
52400
|
-
const
|
|
52401
|
-
const model = role === "code" ? cfg?.codeModel ??
|
|
52453
|
+
function _resolveLlmConfig(cfg, role, baseUrlOverride) {
|
|
52454
|
+
const baseUrl = baseUrlOverride ?? cfg?.baseUrl ?? INFERENCE_PROVIDERS.ollama.defaultLlmBaseUrl;
|
|
52455
|
+
const spec = resolveInferenceSpec(baseUrl);
|
|
52456
|
+
const model = role === "code" ? cfg?.codeModel ?? spec.defaultModels.coding : cfg?.model ?? spec.defaultModels.instruct;
|
|
52457
|
+
const temperature = role === "code" ? cfg?.codeTemperature ?? INFERENCE_ROLE_DEFAULTS.coding.temperature : cfg?.temperature ?? INFERENCE_ROLE_DEFAULTS.instruct.temperature;
|
|
52458
|
+
const contextWindow = role === "code" ? cfg?.codeContextWindow ?? INFERENCE_ROLE_DEFAULTS.coding.contextWindow : cfg?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.instruct.contextWindow;
|
|
52402
52459
|
return {
|
|
52403
|
-
baseUrl
|
|
52404
|
-
apiKey: cfg?.apiKey ??
|
|
52460
|
+
baseUrl,
|
|
52461
|
+
apiKey: cfg?.apiKey ?? spec.id,
|
|
52405
52462
|
model,
|
|
52406
|
-
temperature
|
|
52463
|
+
temperature,
|
|
52464
|
+
contextWindow,
|
|
52407
52465
|
maxOutputTokens: cfg?.maxOutputTokens ?? 8000,
|
|
52408
52466
|
timeoutMs: cfg?.timeoutMs ?? 90000,
|
|
52409
|
-
disableThink: cfg?.disableThink ??
|
|
52467
|
+
disableThink: cfg?.disableThink ?? spec.injectsDisableThink
|
|
52410
52468
|
};
|
|
52411
52469
|
}
|
|
52470
|
+
function getLlmConfig(opts) {
|
|
52471
|
+
return _resolveLlmConfig(config.get("llm"), opts?.modelRole ?? "instruct", testBaseUrlOverride);
|
|
52472
|
+
}
|
|
52412
52473
|
function hostPort(url2) {
|
|
52413
52474
|
try {
|
|
52414
52475
|
const u = new URL(url2);
|
|
@@ -52452,12 +52513,34 @@ function _wrapFetchDisableThink(baseFetch) {
|
|
|
52452
52513
|
};
|
|
52453
52514
|
return wrapped;
|
|
52454
52515
|
}
|
|
52516
|
+
function _wrapFetchContextWindow(baseFetch, contextWindow) {
|
|
52517
|
+
const wrapped = async (input, init) => {
|
|
52518
|
+
try {
|
|
52519
|
+
if (init?.body && typeof init.body === "string") {
|
|
52520
|
+
const parsed = JSON.parse(init.body);
|
|
52521
|
+
if (parsed && typeof parsed === "object") {
|
|
52522
|
+
parsed.options = { ...parsed.options, num_ctx: contextWindow };
|
|
52523
|
+
init = { ...init, body: JSON.stringify(parsed) };
|
|
52524
|
+
}
|
|
52525
|
+
}
|
|
52526
|
+
} catch {}
|
|
52527
|
+
return baseFetch(input, init);
|
|
52528
|
+
};
|
|
52529
|
+
return wrapped;
|
|
52530
|
+
}
|
|
52455
52531
|
function buildProvider(llm) {
|
|
52456
52532
|
const spec = resolveInferenceSpec(llm.baseUrl);
|
|
52533
|
+
let fetchImpl;
|
|
52534
|
+
if (spec.appliesContextPerRequest) {
|
|
52535
|
+
fetchImpl = _wrapFetchContextWindow(fetchImpl ?? globalThis.fetch, llm.contextWindow);
|
|
52536
|
+
}
|
|
52537
|
+
if (llm.disableThink && spec.injectsDisableThink) {
|
|
52538
|
+
fetchImpl = _wrapFetchDisableThink(fetchImpl ?? globalThis.fetch);
|
|
52539
|
+
}
|
|
52457
52540
|
const openai2 = createOpenAI({
|
|
52458
52541
|
baseURL: llm.baseUrl,
|
|
52459
52542
|
apiKey: llm.apiKey,
|
|
52460
|
-
...
|
|
52543
|
+
...fetchImpl ? { fetch: fetchImpl } : {}
|
|
52461
52544
|
});
|
|
52462
52545
|
return spec.requiresChatCompletionsApi ? openai2.chat(llm.model) : openai2(llm.model);
|
|
52463
52546
|
}
|
|
@@ -95205,6 +95288,9 @@ var init_local_transformers = __esm(() => {
|
|
|
95205
95288
|
});
|
|
95206
95289
|
|
|
95207
95290
|
// ../../packages/core/dist/services/embeddings/provider.js
|
|
95291
|
+
function _resolveEmbedContextWindow(embeddingConfig) {
|
|
95292
|
+
return parsePositiveIntEnv(process.env.OLLAMA_EMBEDDING_NUM_CTX, embeddingConfig?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.embedding.contextWindow);
|
|
95293
|
+
}
|
|
95208
95294
|
function sleep(ms) {
|
|
95209
95295
|
return new Promise((resolve4) => setTimeout(resolve4, ms));
|
|
95210
95296
|
}
|
|
@@ -95247,7 +95333,7 @@ function createProvider(config3, providerId) {
|
|
|
95247
95333
|
}
|
|
95248
95334
|
return new AISDKEmbeddingProvider(config3, providerId);
|
|
95249
95335
|
}
|
|
95250
|
-
var
|
|
95336
|
+
var DimensionMismatchError, AISDKEmbeddingProvider;
|
|
95251
95337
|
var init_provider = __esm(() => {
|
|
95252
95338
|
init_dist6();
|
|
95253
95339
|
init_dist7();
|
|
@@ -95259,8 +95345,8 @@ var init_provider = __esm(() => {
|
|
|
95259
95345
|
init_rate_limiter2();
|
|
95260
95346
|
init_dist();
|
|
95261
95347
|
init_config();
|
|
95348
|
+
init_inference_providers();
|
|
95262
95349
|
init_local_transformers();
|
|
95263
|
-
OLLAMA_EMBED_NUM_CTX = parsePositiveIntEnv(process.env.OLLAMA_EMBEDDING_NUM_CTX, 8192);
|
|
95264
95350
|
DimensionMismatchError = class DimensionMismatchError extends Error {
|
|
95265
95351
|
providerId;
|
|
95266
95352
|
expected;
|
|
@@ -95422,7 +95508,7 @@ var init_provider = __esm(() => {
|
|
|
95422
95508
|
const response = await this.ollamaFetch("/api/embed", {
|
|
95423
95509
|
model: this.model,
|
|
95424
95510
|
input: inputText,
|
|
95425
|
-
options: { num_ctx:
|
|
95511
|
+
options: { num_ctx: _resolveEmbedContextWindow(loadConfigSafe().embedding) }
|
|
95426
95512
|
});
|
|
95427
95513
|
if (!response.ok) {
|
|
95428
95514
|
throw new Error(`Ollama API error: ${response.status} ${response.statusText}`);
|
|
@@ -95513,7 +95599,7 @@ var init_provider = __esm(() => {
|
|
|
95513
95599
|
const response = await this.ollamaFetch("/api/embed", {
|
|
95514
95600
|
model: this.model,
|
|
95515
95601
|
input: texts.map((t) => this.sanitizeText(this.truncateText(t))),
|
|
95516
|
-
options: { num_ctx:
|
|
95602
|
+
options: { num_ctx: _resolveEmbedContextWindow(loadConfigSafe().embedding) }
|
|
95517
95603
|
});
|
|
95518
95604
|
if (!response.ok) {
|
|
95519
95605
|
throw new Error(`Ollama batch API error: ${response.status} ${response.statusText}`);
|
|
@@ -108159,7 +108245,7 @@ var init_config2 = __esm(() => {
|
|
|
108159
108245
|
})(),
|
|
108160
108246
|
ollama: (() => {
|
|
108161
108247
|
const file2 = fileFor("ollama");
|
|
108162
|
-
const model = process.env.OLLAMA_EMBEDDING_MODEL || file2?.model ||
|
|
108248
|
+
const model = process.env.OLLAMA_EMBEDDING_MODEL || file2?.model || INFERENCE_PROVIDERS.ollama.defaultModels.embedding;
|
|
108163
108249
|
const rawEnvDimensions = Number(process.env.OLLAMA_EMBEDDING_DIMENSIONS);
|
|
108164
108250
|
const envDimensions = Number.isInteger(rawEnvDimensions) && rawEnvDimensions > 0 ? rawEnvDimensions : undefined;
|
|
108165
108251
|
const resolvedDimensions = resolveEmbeddingDimensions(model, file2?.dimensions, envDimensions);
|
|
@@ -108265,7 +108351,7 @@ var init_config2 = __esm(() => {
|
|
|
108265
108351
|
})(),
|
|
108266
108352
|
lmstudio: (() => {
|
|
108267
108353
|
const file2 = fileFor("lmstudio");
|
|
108268
|
-
const model = process.env.LMSTUDIO_EMBEDDING_MODEL || file2?.model ||
|
|
108354
|
+
const model = process.env.LMSTUDIO_EMBEDDING_MODEL || file2?.model || INFERENCE_PROVIDERS.lmstudio.defaultModels.embedding;
|
|
108269
108355
|
return {
|
|
108270
108356
|
provider: "custom",
|
|
108271
108357
|
model,
|
|
@@ -110617,6 +110703,12 @@ var init_base_vector_store = __esm(() => {
|
|
|
110617
110703
|
});
|
|
110618
110704
|
|
|
110619
110705
|
// ../../packages/core/dist/data/vector/postgres-vector-store.js
|
|
110706
|
+
function _resolveEmbedBatchSize(embeddingConfig) {
|
|
110707
|
+
const providerId = embeddingConfig?.provider;
|
|
110708
|
+
const spec = providerId && LOCAL_INFERENCE_IDS.includes(providerId) ? INFERENCE_PROVIDERS[providerId] : INFERENCE_PROVIDERS.ollama;
|
|
110709
|
+
return embeddingConfig?.batchSize ?? spec.embedBatchSize;
|
|
110710
|
+
}
|
|
110711
|
+
|
|
110620
110712
|
class PostgresVectorCollection {
|
|
110621
110713
|
pool;
|
|
110622
110714
|
name;
|
|
@@ -110729,6 +110821,8 @@ var init_postgres_vector_store = __esm(() => {
|
|
|
110729
110821
|
init_base_vector_store();
|
|
110730
110822
|
init_dist();
|
|
110731
110823
|
init_dist();
|
|
110824
|
+
init_config();
|
|
110825
|
+
init_inference_providers();
|
|
110732
110826
|
init_identity_guard_installer();
|
|
110733
110827
|
PostgresVectorStore = class PostgresVectorStore extends BaseVectorStore {
|
|
110734
110828
|
pool = null;
|
|
@@ -110954,7 +111048,7 @@ var init_postgres_vector_store = __esm(() => {
|
|
|
110954
111048
|
if (documents.length === 0)
|
|
110955
111049
|
return;
|
|
110956
111050
|
const pool = await this.ensureInitialized();
|
|
110957
|
-
const EMBED_SUB_BATCH_SIZE =
|
|
111051
|
+
const EMBED_SUB_BATCH_SIZE = _resolveEmbedBatchSize(loadConfigSafe().embedding);
|
|
110958
111052
|
let totalInserted = 0;
|
|
110959
111053
|
let totalFailed = 0;
|
|
110960
111054
|
for (let i = 0;i < documents.length; i += EMBED_SUB_BATCH_SIZE) {
|
|
@@ -154152,7 +154246,7 @@ Examples:
|
|
|
154152
154246
|
massa-ai-config init
|
|
154153
154247
|
massa-ai-config init --lmstudio
|
|
154154
154248
|
massa-ai-config init --mistral your-api-key
|
|
154155
|
-
massa-ai-config use ollama --model qwen3-embedding:
|
|
154249
|
+
massa-ai-config use ollama --model qwen3-embedding:0.6b
|
|
154156
154250
|
massa-ai-config use lmstudio
|
|
154157
154251
|
massa-ai-config use mistral --api-key your-key
|
|
154158
154252
|
massa-ai-config set embedding.dimensions 1024
|
|
@@ -154234,7 +154328,7 @@ async function runCli(argv) {
|
|
|
154234
154328
|
console.log("\u2713 Configured for OpenAI embeddings");
|
|
154235
154329
|
} else if (options.lmstudio) {
|
|
154236
154330
|
const config3 = loadConfig();
|
|
154237
|
-
const model =
|
|
154331
|
+
const model = INFERENCE_PROVIDERS.lmstudio.defaultModels.embedding;
|
|
154238
154332
|
config3.embedding = {
|
|
154239
154333
|
provider: "lmstudio",
|
|
154240
154334
|
model,
|
|
@@ -154242,6 +154336,8 @@ async function runCli(argv) {
|
|
|
154242
154336
|
dimensions: INFERENCE_PROVIDERS.lmstudio.knownDimensions[model] ?? 768
|
|
154243
154337
|
};
|
|
154244
154338
|
config3.llm.baseUrl = INFERENCE_PROVIDERS.lmstudio.defaultLlmBaseUrl;
|
|
154339
|
+
config3.llm.model = INFERENCE_PROVIDERS.lmstudio.defaultModels.instruct;
|
|
154340
|
+
config3.llm.codeModel = INFERENCE_PROVIDERS.lmstudio.defaultModels.coding;
|
|
154245
154341
|
saveConfig(config3);
|
|
154246
154342
|
console.log("\u2713 Configured for LM Studio (local) embeddings");
|
|
154247
154343
|
} else {
|
|
@@ -154294,21 +154390,29 @@ Using defaults:`);
|
|
|
154294
154390
|
}
|
|
154295
154391
|
const config3 = loadConfig();
|
|
154296
154392
|
if (provider === "ollama") {
|
|
154393
|
+
const model = options.model || INFERENCE_PROVIDERS.ollama.defaultModels.embedding;
|
|
154394
|
+
const urls = deriveInferenceBaseUrls("ollama", options["base-url"]);
|
|
154297
154395
|
config3.embedding = {
|
|
154298
154396
|
provider: "ollama",
|
|
154299
|
-
model
|
|
154300
|
-
baseURL:
|
|
154301
|
-
dimensions:
|
|
154397
|
+
model,
|
|
154398
|
+
baseURL: urls.embeddingBaseUrl,
|
|
154399
|
+
dimensions: knownEmbeddingDimensions(model) ?? 768
|
|
154302
154400
|
};
|
|
154401
|
+
config3.llm.baseUrl = urls.llmBaseUrl;
|
|
154402
|
+
config3.llm.model = INFERENCE_PROVIDERS.ollama.defaultModels.instruct;
|
|
154403
|
+
config3.llm.codeModel = INFERENCE_PROVIDERS.ollama.defaultModels.coding;
|
|
154303
154404
|
} else if (provider === "lmstudio") {
|
|
154304
|
-
const model = options.model ||
|
|
154405
|
+
const model = options.model || INFERENCE_PROVIDERS.lmstudio.defaultModels.embedding;
|
|
154406
|
+
const urls = deriveInferenceBaseUrls("lmstudio", options["base-url"]);
|
|
154305
154407
|
config3.embedding = {
|
|
154306
154408
|
provider: "lmstudio",
|
|
154307
154409
|
model,
|
|
154308
|
-
baseURL:
|
|
154410
|
+
baseURL: urls.embeddingBaseUrl,
|
|
154309
154411
|
dimensions: INFERENCE_PROVIDERS.lmstudio.knownDimensions[model] ?? 768
|
|
154310
154412
|
};
|
|
154311
|
-
config3.llm.baseUrl =
|
|
154413
|
+
config3.llm.baseUrl = urls.llmBaseUrl;
|
|
154414
|
+
config3.llm.model = INFERENCE_PROVIDERS.lmstudio.defaultModels.instruct;
|
|
154415
|
+
config3.llm.codeModel = INFERENCE_PROVIDERS.lmstudio.defaultModels.coding;
|
|
154312
154416
|
} else if (provider === "mistral") {
|
|
154313
154417
|
if (!options["api-key"]) {
|
|
154314
154418
|
console.error("Error: --api-key required for Mistral");
|
package/dist/index.js
CHANGED
|
@@ -25441,10 +25441,33 @@ function parseLmStudioModelList(body) {
|
|
|
25441
25441
|
function inferenceProviderList() {
|
|
25442
25442
|
return LOCAL_INFERENCE_IDS.map((id) => INFERENCE_PROVIDERS[id]);
|
|
25443
25443
|
}
|
|
25444
|
-
|
|
25444
|
+
function deriveInferenceBaseUrls(providerId, explicitBaseUrl) {
|
|
25445
|
+
const spec = INFERENCE_PROVIDERS[providerId];
|
|
25446
|
+
if (!explicitBaseUrl) {
|
|
25447
|
+
return {
|
|
25448
|
+
embeddingBaseUrl: spec.defaultEmbeddingBaseUrl,
|
|
25449
|
+
llmBaseUrl: spec.defaultLlmBaseUrl
|
|
25450
|
+
};
|
|
25451
|
+
}
|
|
25452
|
+
let end = explicitBaseUrl.length;
|
|
25453
|
+
while (end > 0 && explicitBaseUrl.charCodeAt(end - 1) === SLASH)
|
|
25454
|
+
end--;
|
|
25455
|
+
const base = explicitBaseUrl.slice(0, end);
|
|
25456
|
+
const suffix = spec.defaultLlmBaseUrl.startsWith(spec.defaultEmbeddingBaseUrl) ? spec.defaultLlmBaseUrl.slice(spec.defaultEmbeddingBaseUrl.length) : "";
|
|
25457
|
+
return {
|
|
25458
|
+
embeddingBaseUrl: base,
|
|
25459
|
+
llmBaseUrl: `${base}${suffix}`
|
|
25460
|
+
};
|
|
25461
|
+
}
|
|
25462
|
+
var LOCAL_INFERENCE_IDS, INFERENCE_ROLE_DEFAULTS, INFERENCE_PROVIDERS, SLASH = 47;
|
|
25445
25463
|
var init_inference_providers = __esm(() => {
|
|
25446
25464
|
init_embedding_dimensions();
|
|
25447
25465
|
LOCAL_INFERENCE_IDS = ["ollama", "lmstudio"];
|
|
25466
|
+
INFERENCE_ROLE_DEFAULTS = {
|
|
25467
|
+
embedding: { contextWindow: 8192 },
|
|
25468
|
+
instruct: { contextWindow: 16384, temperature: 0.2 },
|
|
25469
|
+
coding: { contextWindow: 32768, temperature: 0 }
|
|
25470
|
+
};
|
|
25448
25471
|
INFERENCE_PROVIDERS = {
|
|
25449
25472
|
ollama: {
|
|
25450
25473
|
id: "ollama",
|
|
@@ -25456,6 +25479,13 @@ var init_inference_providers = __esm(() => {
|
|
|
25456
25479
|
dimensions: "OLLAMA_EMBEDDING_DIMENSIONS"
|
|
25457
25480
|
},
|
|
25458
25481
|
knownDimensions: KNOWN_EMBEDDING_DIMENSIONS,
|
|
25482
|
+
defaultModels: {
|
|
25483
|
+
embedding: "qwen3-embedding:0.6b",
|
|
25484
|
+
instruct: "qwen3-vl:8b",
|
|
25485
|
+
coding: "qwen2.5-coder:7b"
|
|
25486
|
+
},
|
|
25487
|
+
appliesContextPerRequest: true,
|
|
25488
|
+
embedBatchSize: 64,
|
|
25459
25489
|
supportsOllamaVersionProbe: true,
|
|
25460
25490
|
injectsDisableThink: true,
|
|
25461
25491
|
requiresChatCompletionsApi: false,
|
|
@@ -25471,8 +25501,16 @@ var init_inference_providers = __esm(() => {
|
|
|
25471
25501
|
dimensions: "LMSTUDIO_EMBEDDING_DIMENSIONS"
|
|
25472
25502
|
},
|
|
25473
25503
|
knownDimensions: {
|
|
25474
|
-
"text-embedding-nomic-embed-text-v1.5": 768
|
|
25504
|
+
"text-embedding-nomic-embed-text-v1.5": 768,
|
|
25505
|
+
"text-embedding-qwen3-embedding-0.6b": 1024
|
|
25475
25506
|
},
|
|
25507
|
+
defaultModels: {
|
|
25508
|
+
embedding: "text-embedding-qwen3-embedding-0.6b",
|
|
25509
|
+
instruct: "qwen3-vl-8b-instruct",
|
|
25510
|
+
coding: "qwen2.5-coder-7b-instruct"
|
|
25511
|
+
},
|
|
25512
|
+
appliesContextPerRequest: false,
|
|
25513
|
+
embedBatchSize: 64,
|
|
25476
25514
|
supportsOllamaVersionProbe: false,
|
|
25477
25515
|
injectsDisableThink: false,
|
|
25478
25516
|
requiresChatCompletionsApi: true,
|
|
@@ -25487,6 +25525,7 @@ var API_PROVIDER_IDS, EMBEDDING_PROVIDER_IDS, SCHEDULER_JOB_KINDS, MAX_MATCH_WOR
|
|
|
25487
25525
|
var init_massa_ai_config = __esm(() => {
|
|
25488
25526
|
init_xdg();
|
|
25489
25527
|
init_inference_providers();
|
|
25528
|
+
init_embedding_dimensions();
|
|
25490
25529
|
API_PROVIDER_IDS = ["mistral", "openai", "google", "cohere"];
|
|
25491
25530
|
EMBEDDING_PROVIDER_IDS = [
|
|
25492
25531
|
...LOCAL_INFERENCE_IDS,
|
|
@@ -25553,9 +25592,9 @@ var init_massa_ai_config = __esm(() => {
|
|
|
25553
25592
|
},
|
|
25554
25593
|
embedding: {
|
|
25555
25594
|
provider: "ollama",
|
|
25556
|
-
model:
|
|
25595
|
+
model: INFERENCE_PROVIDERS.ollama.defaultModels.embedding,
|
|
25557
25596
|
baseURL: "http://localhost:11434",
|
|
25558
|
-
dimensions:
|
|
25597
|
+
dimensions: knownEmbeddingDimensions(INFERENCE_PROVIDERS.ollama.defaultModels.embedding) ?? 768
|
|
25559
25598
|
},
|
|
25560
25599
|
compression: {
|
|
25561
25600
|
defaultStrategy: "code_structure",
|
|
@@ -25594,12 +25633,15 @@ var init_massa_ai_config = __esm(() => {
|
|
|
25594
25633
|
enabled: false,
|
|
25595
25634
|
baseUrl: "http://localhost:11434/v1",
|
|
25596
25635
|
apiKey: "ollama",
|
|
25597
|
-
model:
|
|
25598
|
-
codeModel:
|
|
25636
|
+
model: INFERENCE_PROVIDERS.ollama.defaultModels.instruct,
|
|
25637
|
+
codeModel: INFERENCE_PROVIDERS.ollama.defaultModels.coding,
|
|
25599
25638
|
temperature: 0.2,
|
|
25600
25639
|
maxOutputTokens: 8000,
|
|
25601
25640
|
timeoutMs: 90000,
|
|
25602
|
-
disableThink: true
|
|
25641
|
+
disableThink: true,
|
|
25642
|
+
contextWindow: INFERENCE_ROLE_DEFAULTS.instruct.contextWindow,
|
|
25643
|
+
codeContextWindow: INFERENCE_ROLE_DEFAULTS.coding.contextWindow,
|
|
25644
|
+
codeTemperature: INFERENCE_ROLE_DEFAULTS.coding.temperature
|
|
25603
25645
|
},
|
|
25604
25646
|
memory: {
|
|
25605
25647
|
decay: {
|
|
@@ -26154,6 +26196,13 @@ function getGlobalDataDir() {
|
|
|
26154
26196
|
return fileConfig.dataDir;
|
|
26155
26197
|
return path4.join(getConfigDir(), "data");
|
|
26156
26198
|
}
|
|
26199
|
+
function activeInferenceProviderId() {
|
|
26200
|
+
const providerId = fileConfig.embedding?.provider;
|
|
26201
|
+
if (providerId && LOCAL_INFERENCE_IDS.includes(providerId)) {
|
|
26202
|
+
return providerId;
|
|
26203
|
+
}
|
|
26204
|
+
return "ollama";
|
|
26205
|
+
}
|
|
26157
26206
|
|
|
26158
26207
|
class Config {
|
|
26159
26208
|
config;
|
|
@@ -26290,11 +26339,12 @@ class Config {
|
|
|
26290
26339
|
this.config[key] = value;
|
|
26291
26340
|
}
|
|
26292
26341
|
}
|
|
26293
|
-
var
|
|
26342
|
+
var SCHEDULER_JOB_ENV, DEFAULT_ALLOWED_EXTENSIONS, fileConfig, DEFAULT_LLM_MODEL, DEFAULT_LLM_CODE_MODEL, fileCacheL1Bytes, fileCacheL2Bytes, resolvedDataDir, defaultConfig, config2;
|
|
26294
26343
|
var init_config = __esm(() => {
|
|
26295
26344
|
init_env();
|
|
26296
26345
|
init_config_loader();
|
|
26297
26346
|
init_massa_ai_config();
|
|
26347
|
+
init_inference_providers();
|
|
26298
26348
|
init_massa_ai_config();
|
|
26299
26349
|
init_massa_ai_config();
|
|
26300
26350
|
init_config_loader();
|
|
@@ -26365,6 +26415,8 @@ var init_config = __esm(() => {
|
|
|
26365
26415
|
".hs"
|
|
26366
26416
|
];
|
|
26367
26417
|
fileConfig = loadConfigSafe();
|
|
26418
|
+
DEFAULT_LLM_MODEL = INFERENCE_PROVIDERS[activeInferenceProviderId()].defaultModels.instruct;
|
|
26419
|
+
DEFAULT_LLM_CODE_MODEL = INFERENCE_PROVIDERS[activeInferenceProviderId()].defaultModels.coding;
|
|
26368
26420
|
fileCacheL1Bytes = fileConfig.cache?.l1MaxSizeMB ? fileConfig.cache.l1MaxSizeMB * 1024 * 1024 : undefined;
|
|
26369
26421
|
fileCacheL2Bytes = fileConfig.cache?.l2MaxSizeMB ? fileConfig.cache.l2MaxSizeMB * 1024 * 1024 : undefined;
|
|
26370
26422
|
resolvedDataDir = getGlobalDataDir();
|
|
@@ -26407,7 +26459,10 @@ var init_config = __esm(() => {
|
|
|
26407
26459
|
temperature: envNum("MASSA_AI_LLM_TEMPERATURE", fileConfig.llm?.temperature ?? 0.2),
|
|
26408
26460
|
maxOutputTokens: envNum("MASSA_AI_LLM_MAX_OUTPUT_TOKENS", fileConfig.llm?.maxOutputTokens ?? 8000),
|
|
26409
26461
|
timeoutMs: envNum("MASSA_AI_LLM_TIMEOUT_MS", fileConfig.llm?.timeoutMs ?? 90000),
|
|
26410
|
-
disableThink: envBool("MASSA_AI_LLM_DISABLE_THINK", fileConfig.llm?.disableThink ?? true)
|
|
26462
|
+
disableThink: envBool("MASSA_AI_LLM_DISABLE_THINK", fileConfig.llm?.disableThink ?? true),
|
|
26463
|
+
contextWindow: fileConfig.llm?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.instruct.contextWindow,
|
|
26464
|
+
codeContextWindow: fileConfig.llm?.codeContextWindow ?? INFERENCE_ROLE_DEFAULTS.coding.contextWindow,
|
|
26465
|
+
codeTemperature: envNum("MASSA_AI_LLM_CODE_TEMPERATURE", fileConfig.llm?.codeTemperature ?? INFERENCE_ROLE_DEFAULTS.coding.temperature)
|
|
26411
26466
|
},
|
|
26412
26467
|
memory: {
|
|
26413
26468
|
decay: {
|
|
@@ -34343,7 +34398,7 @@ var require_ignore = __commonJS((exports, module) => {
|
|
|
34343
34398
|
var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
|
|
34344
34399
|
var REGEX_SPLITALL_CRLF = /\r?\n/g;
|
|
34345
34400
|
var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
|
|
34346
|
-
var
|
|
34401
|
+
var SLASH2 = "/";
|
|
34347
34402
|
var TMP_KEY_IGNORE = "node-ignore";
|
|
34348
34403
|
if (typeof Symbol !== "undefined") {
|
|
34349
34404
|
TMP_KEY_IGNORE = Symbol.for("node-ignore");
|
|
@@ -34554,13 +34609,13 @@ var require_ignore = __commonJS((exports, module) => {
|
|
|
34554
34609
|
return cache[path16];
|
|
34555
34610
|
}
|
|
34556
34611
|
if (!slices) {
|
|
34557
|
-
slices = path16.split(
|
|
34612
|
+
slices = path16.split(SLASH2);
|
|
34558
34613
|
}
|
|
34559
34614
|
slices.pop();
|
|
34560
34615
|
if (!slices.length) {
|
|
34561
34616
|
return cache[path16] = this._testOne(path16, checkUnignored);
|
|
34562
34617
|
}
|
|
34563
|
-
const parent = this._t(slices.join(
|
|
34618
|
+
const parent = this._t(slices.join(SLASH2) + SLASH2, cache, checkUnignored, slices);
|
|
34564
34619
|
return cache[path16] = parent.ignored ? parent : this._testOne(path16, checkUnignored);
|
|
34565
34620
|
}
|
|
34566
34621
|
ignores(path16) {
|
|
@@ -58954,20 +59009,26 @@ function isLlmEnabled() {
|
|
|
58954
59009
|
function _setLlmEnabledForTesting(flag) {
|
|
58955
59010
|
testEnabledOverride = flag;
|
|
58956
59011
|
}
|
|
58957
|
-
function
|
|
58958
|
-
const
|
|
58959
|
-
const
|
|
58960
|
-
const model = role === "code" ? cfg?.codeModel ??
|
|
59012
|
+
function _resolveLlmConfig(cfg, role, baseUrlOverride) {
|
|
59013
|
+
const baseUrl = baseUrlOverride ?? cfg?.baseUrl ?? INFERENCE_PROVIDERS.ollama.defaultLlmBaseUrl;
|
|
59014
|
+
const spec = resolveInferenceSpec(baseUrl);
|
|
59015
|
+
const model = role === "code" ? cfg?.codeModel ?? spec.defaultModels.coding : cfg?.model ?? spec.defaultModels.instruct;
|
|
59016
|
+
const temperature = role === "code" ? cfg?.codeTemperature ?? INFERENCE_ROLE_DEFAULTS.coding.temperature : cfg?.temperature ?? INFERENCE_ROLE_DEFAULTS.instruct.temperature;
|
|
59017
|
+
const contextWindow = role === "code" ? cfg?.codeContextWindow ?? INFERENCE_ROLE_DEFAULTS.coding.contextWindow : cfg?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.instruct.contextWindow;
|
|
58961
59018
|
return {
|
|
58962
|
-
baseUrl
|
|
58963
|
-
apiKey: cfg?.apiKey ??
|
|
59019
|
+
baseUrl,
|
|
59020
|
+
apiKey: cfg?.apiKey ?? spec.id,
|
|
58964
59021
|
model,
|
|
58965
|
-
temperature
|
|
59022
|
+
temperature,
|
|
59023
|
+
contextWindow,
|
|
58966
59024
|
maxOutputTokens: cfg?.maxOutputTokens ?? 8000,
|
|
58967
59025
|
timeoutMs: cfg?.timeoutMs ?? 90000,
|
|
58968
|
-
disableThink: cfg?.disableThink ??
|
|
59026
|
+
disableThink: cfg?.disableThink ?? spec.injectsDisableThink
|
|
58969
59027
|
};
|
|
58970
59028
|
}
|
|
59029
|
+
function getLlmConfig(opts) {
|
|
59030
|
+
return _resolveLlmConfig(config2.get("llm"), opts?.modelRole ?? "instruct", testBaseUrlOverride);
|
|
59031
|
+
}
|
|
58971
59032
|
function hostPort(url2) {
|
|
58972
59033
|
try {
|
|
58973
59034
|
const u = new URL(url2);
|
|
@@ -59011,12 +59072,34 @@ function _wrapFetchDisableThink(baseFetch) {
|
|
|
59011
59072
|
};
|
|
59012
59073
|
return wrapped;
|
|
59013
59074
|
}
|
|
59075
|
+
function _wrapFetchContextWindow(baseFetch, contextWindow) {
|
|
59076
|
+
const wrapped = async (input, init) => {
|
|
59077
|
+
try {
|
|
59078
|
+
if (init?.body && typeof init.body === "string") {
|
|
59079
|
+
const parsed = JSON.parse(init.body);
|
|
59080
|
+
if (parsed && typeof parsed === "object") {
|
|
59081
|
+
parsed.options = { ...parsed.options, num_ctx: contextWindow };
|
|
59082
|
+
init = { ...init, body: JSON.stringify(parsed) };
|
|
59083
|
+
}
|
|
59084
|
+
}
|
|
59085
|
+
} catch {}
|
|
59086
|
+
return baseFetch(input, init);
|
|
59087
|
+
};
|
|
59088
|
+
return wrapped;
|
|
59089
|
+
}
|
|
59014
59090
|
function buildProvider(llm) {
|
|
59015
59091
|
const spec = resolveInferenceSpec(llm.baseUrl);
|
|
59092
|
+
let fetchImpl;
|
|
59093
|
+
if (spec.appliesContextPerRequest) {
|
|
59094
|
+
fetchImpl = _wrapFetchContextWindow(fetchImpl ?? globalThis.fetch, llm.contextWindow);
|
|
59095
|
+
}
|
|
59096
|
+
if (llm.disableThink && spec.injectsDisableThink) {
|
|
59097
|
+
fetchImpl = _wrapFetchDisableThink(fetchImpl ?? globalThis.fetch);
|
|
59098
|
+
}
|
|
59016
59099
|
const openai2 = createOpenAI({
|
|
59017
59100
|
baseURL: llm.baseUrl,
|
|
59018
59101
|
apiKey: llm.apiKey,
|
|
59019
|
-
...
|
|
59102
|
+
...fetchImpl ? { fetch: fetchImpl } : {}
|
|
59020
59103
|
});
|
|
59021
59104
|
return spec.requiresChatCompletionsApi ? openai2.chat(llm.model) : openai2(llm.model);
|
|
59022
59105
|
}
|
|
@@ -101764,6 +101847,9 @@ var init_local_transformers = __esm(() => {
|
|
|
101764
101847
|
});
|
|
101765
101848
|
|
|
101766
101849
|
// ../../packages/core/dist/services/embeddings/provider.js
|
|
101850
|
+
function _resolveEmbedContextWindow(embeddingConfig) {
|
|
101851
|
+
return parsePositiveIntEnv(process.env.OLLAMA_EMBEDDING_NUM_CTX, embeddingConfig?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.embedding.contextWindow);
|
|
101852
|
+
}
|
|
101767
101853
|
function sleep(ms) {
|
|
101768
101854
|
return new Promise((resolve4) => setTimeout(resolve4, ms));
|
|
101769
101855
|
}
|
|
@@ -101806,7 +101892,7 @@ function createProvider(config3, providerId) {
|
|
|
101806
101892
|
}
|
|
101807
101893
|
return new AISDKEmbeddingProvider(config3, providerId);
|
|
101808
101894
|
}
|
|
101809
|
-
var
|
|
101895
|
+
var DimensionMismatchError, AISDKEmbeddingProvider;
|
|
101810
101896
|
var init_provider = __esm(() => {
|
|
101811
101897
|
init_dist6();
|
|
101812
101898
|
init_dist7();
|
|
@@ -101818,8 +101904,8 @@ var init_provider = __esm(() => {
|
|
|
101818
101904
|
init_rate_limiter2();
|
|
101819
101905
|
init_dist();
|
|
101820
101906
|
init_config();
|
|
101907
|
+
init_inference_providers();
|
|
101821
101908
|
init_local_transformers();
|
|
101822
|
-
OLLAMA_EMBED_NUM_CTX = parsePositiveIntEnv(process.env.OLLAMA_EMBEDDING_NUM_CTX, 8192);
|
|
101823
101909
|
DimensionMismatchError = class DimensionMismatchError extends Error {
|
|
101824
101910
|
providerId;
|
|
101825
101911
|
expected;
|
|
@@ -101981,7 +102067,7 @@ var init_provider = __esm(() => {
|
|
|
101981
102067
|
const response = await this.ollamaFetch("/api/embed", {
|
|
101982
102068
|
model: this.model,
|
|
101983
102069
|
input: inputText,
|
|
101984
|
-
options: { num_ctx:
|
|
102070
|
+
options: { num_ctx: _resolveEmbedContextWindow(loadConfigSafe().embedding) }
|
|
101985
102071
|
});
|
|
101986
102072
|
if (!response.ok) {
|
|
101987
102073
|
throw new Error(`Ollama API error: ${response.status} ${response.statusText}`);
|
|
@@ -102072,7 +102158,7 @@ var init_provider = __esm(() => {
|
|
|
102072
102158
|
const response = await this.ollamaFetch("/api/embed", {
|
|
102073
102159
|
model: this.model,
|
|
102074
102160
|
input: texts.map((t) => this.sanitizeText(this.truncateText(t))),
|
|
102075
|
-
options: { num_ctx:
|
|
102161
|
+
options: { num_ctx: _resolveEmbedContextWindow(loadConfigSafe().embedding) }
|
|
102076
102162
|
});
|
|
102077
102163
|
if (!response.ok) {
|
|
102078
102164
|
throw new Error(`Ollama batch API error: ${response.status} ${response.statusText}`);
|
|
@@ -114718,7 +114804,7 @@ var init_config2 = __esm(() => {
|
|
|
114718
114804
|
})(),
|
|
114719
114805
|
ollama: (() => {
|
|
114720
114806
|
const file2 = fileFor("ollama");
|
|
114721
|
-
const model = process.env.OLLAMA_EMBEDDING_MODEL || file2?.model ||
|
|
114807
|
+
const model = process.env.OLLAMA_EMBEDDING_MODEL || file2?.model || INFERENCE_PROVIDERS.ollama.defaultModels.embedding;
|
|
114722
114808
|
const rawEnvDimensions = Number(process.env.OLLAMA_EMBEDDING_DIMENSIONS);
|
|
114723
114809
|
const envDimensions = Number.isInteger(rawEnvDimensions) && rawEnvDimensions > 0 ? rawEnvDimensions : undefined;
|
|
114724
114810
|
const resolvedDimensions = resolveEmbeddingDimensions(model, file2?.dimensions, envDimensions);
|
|
@@ -114824,7 +114910,7 @@ var init_config2 = __esm(() => {
|
|
|
114824
114910
|
})(),
|
|
114825
114911
|
lmstudio: (() => {
|
|
114826
114912
|
const file2 = fileFor("lmstudio");
|
|
114827
|
-
const model = process.env.LMSTUDIO_EMBEDDING_MODEL || file2?.model ||
|
|
114913
|
+
const model = process.env.LMSTUDIO_EMBEDDING_MODEL || file2?.model || INFERENCE_PROVIDERS.lmstudio.defaultModels.embedding;
|
|
114828
114914
|
return {
|
|
114829
114915
|
provider: "custom",
|
|
114830
114916
|
model,
|
|
@@ -117176,6 +117262,12 @@ var init_base_vector_store = __esm(() => {
|
|
|
117176
117262
|
});
|
|
117177
117263
|
|
|
117178
117264
|
// ../../packages/core/dist/data/vector/postgres-vector-store.js
|
|
117265
|
+
function _resolveEmbedBatchSize(embeddingConfig) {
|
|
117266
|
+
const providerId = embeddingConfig?.provider;
|
|
117267
|
+
const spec = providerId && LOCAL_INFERENCE_IDS.includes(providerId) ? INFERENCE_PROVIDERS[providerId] : INFERENCE_PROVIDERS.ollama;
|
|
117268
|
+
return embeddingConfig?.batchSize ?? spec.embedBatchSize;
|
|
117269
|
+
}
|
|
117270
|
+
|
|
117179
117271
|
class PostgresVectorCollection {
|
|
117180
117272
|
pool;
|
|
117181
117273
|
name;
|
|
@@ -117288,6 +117380,8 @@ var init_postgres_vector_store = __esm(() => {
|
|
|
117288
117380
|
init_base_vector_store();
|
|
117289
117381
|
init_dist();
|
|
117290
117382
|
init_dist();
|
|
117383
|
+
init_config();
|
|
117384
|
+
init_inference_providers();
|
|
117291
117385
|
init_identity_guard_installer();
|
|
117292
117386
|
PostgresVectorStore = class PostgresVectorStore extends BaseVectorStore {
|
|
117293
117387
|
pool = null;
|
|
@@ -117513,7 +117607,7 @@ var init_postgres_vector_store = __esm(() => {
|
|
|
117513
117607
|
if (documents.length === 0)
|
|
117514
117608
|
return;
|
|
117515
117609
|
const pool = await this.ensureInitialized();
|
|
117516
|
-
const EMBED_SUB_BATCH_SIZE =
|
|
117610
|
+
const EMBED_SUB_BATCH_SIZE = _resolveEmbedBatchSize(loadConfigSafe().embedding);
|
|
117517
117611
|
let totalInserted = 0;
|
|
117518
117612
|
let totalFailed = 0;
|
|
117519
117613
|
for (let i = 0;i < documents.length; i += EMBED_SUB_BATCH_SIZE) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@massa-ai/mcp-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.59.0",
|
|
4
4
|
"description": "massa-ai MCP server - Semantic code search, memory, and context compression via Model Context Protocol",
|
|
5
5
|
"author": "luizgmassa",
|
|
6
6
|
"type": "module",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"type-check": "tsc --noEmit"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@massa-ai/core": "^1.
|
|
24
|
-
"@massa-ai/shared": "^1.
|
|
23
|
+
"@massa-ai/core": "^1.59.0",
|
|
24
|
+
"@massa-ai/shared": "^1.59.0",
|
|
25
25
|
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|