@massa-ai/opencode-plugin 1.56.0 → 1.58.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 +145 -10
- package/dist/index.js +91 -5
- package/package.json +3 -3
package/dist/config-cli.js
CHANGED
|
@@ -399,11 +399,85 @@ function configDir(app) {
|
|
|
399
399
|
}
|
|
400
400
|
var init_xdg = () => {};
|
|
401
401
|
|
|
402
|
+
// ../../packages/shared/dist/config/embedding-dimensions.js
|
|
403
|
+
var KNOWN_EMBEDDING_DIMENSIONS;
|
|
404
|
+
var init_embedding_dimensions = __esm(() => {
|
|
405
|
+
KNOWN_EMBEDDING_DIMENSIONS = {
|
|
406
|
+
"qwen3-embedding:8b": 4096,
|
|
407
|
+
"qwen3-embedding:4b": 2560,
|
|
408
|
+
"qwen3-embedding:0.6b": 1024,
|
|
409
|
+
"bge-m3": 1024
|
|
410
|
+
};
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
// ../../packages/shared/dist/config/inference-providers.js
|
|
414
|
+
function parseOllamaModelList(body) {
|
|
415
|
+
if (typeof body !== "object" || body === null)
|
|
416
|
+
return null;
|
|
417
|
+
const models = body.models;
|
|
418
|
+
if (!Array.isArray(models))
|
|
419
|
+
return null;
|
|
420
|
+
return models.map((entry) => entry.name).filter((name) => typeof name === "string");
|
|
421
|
+
}
|
|
422
|
+
function parseLmStudioModelList(body) {
|
|
423
|
+
if (typeof body !== "object" || body === null)
|
|
424
|
+
return null;
|
|
425
|
+
const data = body.data;
|
|
426
|
+
if (!Array.isArray(data))
|
|
427
|
+
return null;
|
|
428
|
+
return data.map((entry) => entry.id).filter((id) => typeof id === "string");
|
|
429
|
+
}
|
|
430
|
+
var LOCAL_INFERENCE_IDS, INFERENCE_PROVIDERS;
|
|
431
|
+
var init_inference_providers = __esm(() => {
|
|
432
|
+
init_embedding_dimensions();
|
|
433
|
+
LOCAL_INFERENCE_IDS = ["ollama", "lmstudio"];
|
|
434
|
+
INFERENCE_PROVIDERS = {
|
|
435
|
+
ollama: {
|
|
436
|
+
id: "ollama",
|
|
437
|
+
defaultEmbeddingBaseUrl: "http://localhost:11434",
|
|
438
|
+
defaultLlmBaseUrl: "http://localhost:11434/v1",
|
|
439
|
+
envNames: {
|
|
440
|
+
model: "OLLAMA_EMBEDDING_MODEL",
|
|
441
|
+
baseUrl: "OLLAMA_BASE_URL",
|
|
442
|
+
dimensions: "OLLAMA_EMBEDDING_DIMENSIONS"
|
|
443
|
+
},
|
|
444
|
+
knownDimensions: KNOWN_EMBEDDING_DIMENSIONS,
|
|
445
|
+
supportsOllamaVersionProbe: true,
|
|
446
|
+
injectsDisableThink: true,
|
|
447
|
+
requiresChatCompletionsApi: false,
|
|
448
|
+
parseModelList: parseOllamaModelList
|
|
449
|
+
},
|
|
450
|
+
lmstudio: {
|
|
451
|
+
id: "lmstudio",
|
|
452
|
+
defaultEmbeddingBaseUrl: "http://localhost:1234/v1",
|
|
453
|
+
defaultLlmBaseUrl: "http://localhost:1234/v1",
|
|
454
|
+
envNames: {
|
|
455
|
+
model: "LMSTUDIO_EMBEDDING_MODEL",
|
|
456
|
+
baseUrl: "LMSTUDIO_BASE_URL",
|
|
457
|
+
dimensions: "LMSTUDIO_EMBEDDING_DIMENSIONS"
|
|
458
|
+
},
|
|
459
|
+
knownDimensions: {
|
|
460
|
+
"text-embedding-nomic-embed-text-v1.5": 768
|
|
461
|
+
},
|
|
462
|
+
supportsOllamaVersionProbe: false,
|
|
463
|
+
injectsDisableThink: false,
|
|
464
|
+
requiresChatCompletionsApi: true,
|
|
465
|
+
parseModelList: parseLmStudioModelList
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
});
|
|
469
|
+
|
|
402
470
|
// ../../packages/shared/dist/config/massa-ai-config.js
|
|
403
471
|
import path2 from "path";
|
|
404
|
-
var SCHEDULER_JOB_KINDS, MAX_MATCH_WORK = 1e5, MAX_IGNORE_PATTERNS = 1024, DEFAULT_CAPTURE_POLICY, DEFAULT_SCHEDULER_CONFIG, defaultMassaAiConfig;
|
|
472
|
+
var API_PROVIDER_IDS, EMBEDDING_PROVIDER_IDS, SCHEDULER_JOB_KINDS, MAX_MATCH_WORK = 1e5, MAX_IGNORE_PATTERNS = 1024, DEFAULT_CAPTURE_POLICY, DEFAULT_SCHEDULER_CONFIG, defaultMassaAiConfig;
|
|
405
473
|
var init_massa_ai_config = __esm(() => {
|
|
406
474
|
init_xdg();
|
|
475
|
+
init_inference_providers();
|
|
476
|
+
API_PROVIDER_IDS = ["mistral", "openai", "google", "cohere"];
|
|
477
|
+
EMBEDDING_PROVIDER_IDS = [
|
|
478
|
+
...LOCAL_INFERENCE_IDS,
|
|
479
|
+
...API_PROVIDER_IDS
|
|
480
|
+
];
|
|
407
481
|
SCHEDULER_JOB_KINDS = [
|
|
408
482
|
"memory-consolidation",
|
|
409
483
|
"decay-sweep",
|
|
@@ -672,11 +746,12 @@ function loadConfig() {
|
|
|
672
746
|
try {
|
|
673
747
|
const content = fs.readFileSync(CONFIG_FILE, "utf-8");
|
|
674
748
|
const userConfig = JSON.parse(content);
|
|
749
|
+
const embeddingBase = userConfig.embedding?.provider && userConfig.embedding.provider !== defaultMassaAiConfig.embedding.provider ? {} : defaultMassaAiConfig.embedding;
|
|
675
750
|
return {
|
|
676
751
|
...defaultMassaAiConfig,
|
|
677
752
|
...userConfig,
|
|
678
753
|
database: { ...defaultMassaAiConfig.database, ...userConfig.database },
|
|
679
|
-
embedding: { ...
|
|
754
|
+
embedding: { ...embeddingBase, ...userConfig.embedding },
|
|
680
755
|
compression: { ...defaultMassaAiConfig.compression, ...userConfig.compression },
|
|
681
756
|
cache: { ...defaultMassaAiConfig.cache, ...userConfig.cache },
|
|
682
757
|
logging: { ...defaultMassaAiConfig.logging, ...userConfig.logging },
|
|
@@ -821,18 +896,27 @@ function initConfig() {
|
|
|
821
896
|
function getConfigForEnv() {
|
|
822
897
|
const config = loadConfig();
|
|
823
898
|
const env = {};
|
|
824
|
-
|
|
899
|
+
const provider = config.embedding.provider;
|
|
900
|
+
if (provider === "ollama") {
|
|
825
901
|
env.OLLAMA_EMBEDDING_MODEL = config.embedding.model;
|
|
826
902
|
env.OLLAMA_BASE_URL = config.embedding.baseURL || "http://localhost:11434";
|
|
827
903
|
if (config.embedding.dimensions) {
|
|
828
904
|
env.OLLAMA_EMBEDDING_DIMENSIONS = String(config.embedding.dimensions);
|
|
829
905
|
}
|
|
830
|
-
} else if (
|
|
906
|
+
} else if (provider === "lmstudio") {
|
|
907
|
+
env.LMSTUDIO_EMBEDDING_MODEL = config.embedding.model;
|
|
908
|
+
env.LMSTUDIO_BASE_URL = config.embedding.baseURL || INFERENCE_PROVIDERS.lmstudio.defaultEmbeddingBaseUrl;
|
|
909
|
+
if (config.embedding.dimensions) {
|
|
910
|
+
env.LMSTUDIO_EMBEDDING_DIMENSIONS = String(config.embedding.dimensions);
|
|
911
|
+
}
|
|
912
|
+
} else if (provider === "mistral") {
|
|
831
913
|
env.MISTRAL_API_KEY = config.embedding.apiKey || "";
|
|
832
914
|
env.MISTRAL_TEXT_EMBEDDING_MODEL = config.embedding.model;
|
|
833
|
-
} else if (
|
|
915
|
+
} else if (provider === "openai") {
|
|
834
916
|
env.OPENAI_API_KEY = config.embedding.apiKey || "";
|
|
835
917
|
env.OPENAI_EMBEDDING_MODEL = config.embedding.model;
|
|
918
|
+
} else {
|
|
919
|
+
console.error(`[getConfigForEnv] embedding.provider "${provider}" has no env-projection branch \u2014 no embedding env vars were set`);
|
|
836
920
|
}
|
|
837
921
|
env.LOG_LEVEL = config.logging.level;
|
|
838
922
|
env.ENABLE_METRICS = String(config.logging.enableMetrics);
|
|
@@ -842,6 +926,7 @@ var CONFIG_DIR, CONFIG_FILE, ConfigParseError, ConfigWriteConflictError, migrati
|
|
|
842
926
|
var init_config_loader = __esm(() => {
|
|
843
927
|
init_massa_ai_config();
|
|
844
928
|
init_xdg();
|
|
929
|
+
init_inference_providers();
|
|
845
930
|
CONFIG_DIR = configDir("massa-ai");
|
|
846
931
|
CONFIG_FILE = path3.join(CONFIG_DIR, "config.json");
|
|
847
932
|
ConfigParseError = class ConfigParseError extends Error {
|
|
@@ -917,6 +1002,7 @@ init_xdg();
|
|
|
917
1002
|
init_config_loader();
|
|
918
1003
|
|
|
919
1004
|
// ../../packages/shared/dist/config/index.js
|
|
1005
|
+
init_embedding_dimensions();
|
|
920
1006
|
var DEFAULT_LLM_MODEL = "qwen2.5:7b-instruct";
|
|
921
1007
|
var DEFAULT_LLM_CODE_MODEL = "qwen2.5-coder:7b";
|
|
922
1008
|
function envNum(key, fallback) {
|
|
@@ -3275,11 +3361,13 @@ function formatBootstrapReport(report) {
|
|
|
3275
3361
|
// ../../packages/shared/dist/bootstrap/index.js
|
|
3276
3362
|
init_config_loader();
|
|
3277
3363
|
// src/config-cli.ts
|
|
3364
|
+
init_inference_providers();
|
|
3278
3365
|
import { promises as fs11 } from "fs";
|
|
3279
3366
|
import path15 from "path";
|
|
3280
3367
|
import os8 from "os";
|
|
3281
3368
|
import { fileURLToPath } from "url";
|
|
3282
3369
|
var __dirname2 = path15.dirname(fileURLToPath(import.meta.url));
|
|
3370
|
+
var WRITABLE_PROVIDERS = ["ollama", "lmstudio", "mistral", "openai", "google", "cohere"];
|
|
3283
3371
|
var GENERATOR_MARKER = "scripts/generate-subagent-artifacts.ts";
|
|
3284
3372
|
var GENERATOR_MARKER_MAX_LEVELS = 6;
|
|
3285
3373
|
function formatVariantSync(results) {
|
|
@@ -3299,16 +3387,18 @@ Usage:
|
|
|
3299
3387
|
Commands:
|
|
3300
3388
|
init Initialize massa-ai configuration
|
|
3301
3389
|
--ollama Use Ollama (local, default)
|
|
3390
|
+
--lmstudio Use LM Studio (local)
|
|
3302
3391
|
--mistral <key> Use Mistral with API key
|
|
3303
3392
|
--openai <key> Use OpenAI with API key
|
|
3304
3393
|
|
|
3305
3394
|
path Show config file path
|
|
3306
3395
|
show Show current configuration
|
|
3307
3396
|
set <key> <val> Set a configuration value
|
|
3308
|
-
use <provider> Switch embedding provider
|
|
3309
|
-
|
|
3397
|
+
use <provider> Switch embedding provider (ollama, lmstudio, mistral,
|
|
3398
|
+
openai, google, cohere)
|
|
3399
|
+
--api-key <key> API key (required for mistral/openai/google/cohere)
|
|
3310
3400
|
--model <name> Model name
|
|
3311
|
-
--base-url <url> Base URL (for ollama)
|
|
3401
|
+
--base-url <url> Base URL (for ollama/lmstudio)
|
|
3312
3402
|
|
|
3313
3403
|
agents Manage the 18 subagent specialist definitions
|
|
3314
3404
|
agents install [--user|--project] Write 18 agent .md files
|
|
@@ -3328,8 +3418,10 @@ Commands:
|
|
|
3328
3418
|
|
|
3329
3419
|
Examples:
|
|
3330
3420
|
massa-ai-config init
|
|
3421
|
+
massa-ai-config init --lmstudio
|
|
3331
3422
|
massa-ai-config init --mistral your-api-key
|
|
3332
3423
|
massa-ai-config use ollama --model qwen3-embedding:4b
|
|
3424
|
+
massa-ai-config use lmstudio
|
|
3333
3425
|
massa-ai-config use mistral --api-key your-key
|
|
3334
3426
|
massa-ai-config set embedding.dimensions 1024
|
|
3335
3427
|
massa-ai-config agents install --user
|
|
@@ -3408,6 +3500,18 @@ async function runCli(argv) {
|
|
|
3408
3500
|
};
|
|
3409
3501
|
saveConfig(config2);
|
|
3410
3502
|
console.log("\u2713 Configured for OpenAI embeddings");
|
|
3503
|
+
} else if (options.lmstudio) {
|
|
3504
|
+
const config2 = loadConfig();
|
|
3505
|
+
const model = "text-embedding-nomic-embed-text-v1.5";
|
|
3506
|
+
config2.embedding = {
|
|
3507
|
+
provider: "lmstudio",
|
|
3508
|
+
model,
|
|
3509
|
+
baseURL: INFERENCE_PROVIDERS.lmstudio.defaultEmbeddingBaseUrl,
|
|
3510
|
+
dimensions: INFERENCE_PROVIDERS.lmstudio.knownDimensions[model] ?? 768
|
|
3511
|
+
};
|
|
3512
|
+
config2.llm.baseUrl = INFERENCE_PROVIDERS.lmstudio.defaultLlmBaseUrl;
|
|
3513
|
+
saveConfig(config2);
|
|
3514
|
+
console.log("\u2713 Configured for LM Studio (local) embeddings");
|
|
3411
3515
|
} else {
|
|
3412
3516
|
console.log("\u2713 Configured for Ollama (local) embeddings");
|
|
3413
3517
|
}
|
|
@@ -3452,8 +3556,8 @@ Using defaults:`);
|
|
|
3452
3556
|
}
|
|
3453
3557
|
case "use": {
|
|
3454
3558
|
const provider = args[1];
|
|
3455
|
-
if (!provider || !
|
|
3456
|
-
console.error(
|
|
3559
|
+
if (!provider || !WRITABLE_PROVIDERS.includes(provider)) {
|
|
3560
|
+
console.error(`Provider must be one of: ${WRITABLE_PROVIDERS.join(", ")}`);
|
|
3457
3561
|
return 1;
|
|
3458
3562
|
}
|
|
3459
3563
|
const config2 = loadConfig();
|
|
@@ -3464,6 +3568,15 @@ Using defaults:`);
|
|
|
3464
3568
|
baseURL: options["base-url"] || "http://localhost:11434",
|
|
3465
3569
|
dimensions: 2560
|
|
3466
3570
|
};
|
|
3571
|
+
} else if (provider === "lmstudio") {
|
|
3572
|
+
const model = options.model || "text-embedding-nomic-embed-text-v1.5";
|
|
3573
|
+
config2.embedding = {
|
|
3574
|
+
provider: "lmstudio",
|
|
3575
|
+
model,
|
|
3576
|
+
baseURL: options["base-url"] || INFERENCE_PROVIDERS.lmstudio.defaultEmbeddingBaseUrl,
|
|
3577
|
+
dimensions: INFERENCE_PROVIDERS.lmstudio.knownDimensions[model] ?? 768
|
|
3578
|
+
};
|
|
3579
|
+
config2.llm.baseUrl = options["base-url"] || INFERENCE_PROVIDERS.lmstudio.defaultLlmBaseUrl;
|
|
3467
3580
|
} else if (provider === "mistral") {
|
|
3468
3581
|
if (!options["api-key"]) {
|
|
3469
3582
|
console.error("Error: --api-key required for Mistral");
|
|
@@ -3486,6 +3599,28 @@ Using defaults:`);
|
|
|
3486
3599
|
apiKey: options["api-key"],
|
|
3487
3600
|
dimensions: 1536
|
|
3488
3601
|
};
|
|
3602
|
+
} else if (provider === "google") {
|
|
3603
|
+
if (!options["api-key"]) {
|
|
3604
|
+
console.error("Error: --api-key required for Google");
|
|
3605
|
+
return 1;
|
|
3606
|
+
}
|
|
3607
|
+
config2.embedding = {
|
|
3608
|
+
provider: "google",
|
|
3609
|
+
model: options.model || "gemini-embedding-001",
|
|
3610
|
+
apiKey: options["api-key"],
|
|
3611
|
+
dimensions: 3072
|
|
3612
|
+
};
|
|
3613
|
+
} else if (provider === "cohere") {
|
|
3614
|
+
if (!options["api-key"]) {
|
|
3615
|
+
console.error("Error: --api-key required for Cohere");
|
|
3616
|
+
return 1;
|
|
3617
|
+
}
|
|
3618
|
+
config2.embedding = {
|
|
3619
|
+
provider: "cohere",
|
|
3620
|
+
model: options.model || "embed-english-v3.0",
|
|
3621
|
+
apiKey: options["api-key"],
|
|
3622
|
+
dimensions: 1024
|
|
3623
|
+
};
|
|
3489
3624
|
}
|
|
3490
3625
|
saveConfig(config2);
|
|
3491
3626
|
console.log(`\u2713 Switched to ${provider} embeddings`);
|
package/dist/index.js
CHANGED
|
@@ -398,11 +398,85 @@ function configDir(app) {
|
|
|
398
398
|
}
|
|
399
399
|
var init_xdg = () => {};
|
|
400
400
|
|
|
401
|
+
// ../../packages/shared/dist/config/embedding-dimensions.js
|
|
402
|
+
var KNOWN_EMBEDDING_DIMENSIONS;
|
|
403
|
+
var init_embedding_dimensions = __esm(() => {
|
|
404
|
+
KNOWN_EMBEDDING_DIMENSIONS = {
|
|
405
|
+
"qwen3-embedding:8b": 4096,
|
|
406
|
+
"qwen3-embedding:4b": 2560,
|
|
407
|
+
"qwen3-embedding:0.6b": 1024,
|
|
408
|
+
"bge-m3": 1024
|
|
409
|
+
};
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
// ../../packages/shared/dist/config/inference-providers.js
|
|
413
|
+
function parseOllamaModelList(body) {
|
|
414
|
+
if (typeof body !== "object" || body === null)
|
|
415
|
+
return null;
|
|
416
|
+
const models = body.models;
|
|
417
|
+
if (!Array.isArray(models))
|
|
418
|
+
return null;
|
|
419
|
+
return models.map((entry) => entry.name).filter((name) => typeof name === "string");
|
|
420
|
+
}
|
|
421
|
+
function parseLmStudioModelList(body) {
|
|
422
|
+
if (typeof body !== "object" || body === null)
|
|
423
|
+
return null;
|
|
424
|
+
const data = body.data;
|
|
425
|
+
if (!Array.isArray(data))
|
|
426
|
+
return null;
|
|
427
|
+
return data.map((entry) => entry.id).filter((id) => typeof id === "string");
|
|
428
|
+
}
|
|
429
|
+
var LOCAL_INFERENCE_IDS, INFERENCE_PROVIDERS;
|
|
430
|
+
var init_inference_providers = __esm(() => {
|
|
431
|
+
init_embedding_dimensions();
|
|
432
|
+
LOCAL_INFERENCE_IDS = ["ollama", "lmstudio"];
|
|
433
|
+
INFERENCE_PROVIDERS = {
|
|
434
|
+
ollama: {
|
|
435
|
+
id: "ollama",
|
|
436
|
+
defaultEmbeddingBaseUrl: "http://localhost:11434",
|
|
437
|
+
defaultLlmBaseUrl: "http://localhost:11434/v1",
|
|
438
|
+
envNames: {
|
|
439
|
+
model: "OLLAMA_EMBEDDING_MODEL",
|
|
440
|
+
baseUrl: "OLLAMA_BASE_URL",
|
|
441
|
+
dimensions: "OLLAMA_EMBEDDING_DIMENSIONS"
|
|
442
|
+
},
|
|
443
|
+
knownDimensions: KNOWN_EMBEDDING_DIMENSIONS,
|
|
444
|
+
supportsOllamaVersionProbe: true,
|
|
445
|
+
injectsDisableThink: true,
|
|
446
|
+
requiresChatCompletionsApi: false,
|
|
447
|
+
parseModelList: parseOllamaModelList
|
|
448
|
+
},
|
|
449
|
+
lmstudio: {
|
|
450
|
+
id: "lmstudio",
|
|
451
|
+
defaultEmbeddingBaseUrl: "http://localhost:1234/v1",
|
|
452
|
+
defaultLlmBaseUrl: "http://localhost:1234/v1",
|
|
453
|
+
envNames: {
|
|
454
|
+
model: "LMSTUDIO_EMBEDDING_MODEL",
|
|
455
|
+
baseUrl: "LMSTUDIO_BASE_URL",
|
|
456
|
+
dimensions: "LMSTUDIO_EMBEDDING_DIMENSIONS"
|
|
457
|
+
},
|
|
458
|
+
knownDimensions: {
|
|
459
|
+
"text-embedding-nomic-embed-text-v1.5": 768
|
|
460
|
+
},
|
|
461
|
+
supportsOllamaVersionProbe: false,
|
|
462
|
+
injectsDisableThink: false,
|
|
463
|
+
requiresChatCompletionsApi: true,
|
|
464
|
+
parseModelList: parseLmStudioModelList
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
});
|
|
468
|
+
|
|
401
469
|
// ../../packages/shared/dist/config/massa-ai-config.js
|
|
402
470
|
import path2 from "path";
|
|
403
|
-
var SCHEDULER_JOB_KINDS, MAX_MATCH_WORK = 1e5, MAX_IGNORE_PATTERNS = 1024, DEFAULT_CAPTURE_POLICY, DEFAULT_SCHEDULER_CONFIG, defaultMassaAiConfig;
|
|
471
|
+
var API_PROVIDER_IDS, EMBEDDING_PROVIDER_IDS, SCHEDULER_JOB_KINDS, MAX_MATCH_WORK = 1e5, MAX_IGNORE_PATTERNS = 1024, DEFAULT_CAPTURE_POLICY, DEFAULT_SCHEDULER_CONFIG, defaultMassaAiConfig;
|
|
404
472
|
var init_massa_ai_config = __esm(() => {
|
|
405
473
|
init_xdg();
|
|
474
|
+
init_inference_providers();
|
|
475
|
+
API_PROVIDER_IDS = ["mistral", "openai", "google", "cohere"];
|
|
476
|
+
EMBEDDING_PROVIDER_IDS = [
|
|
477
|
+
...LOCAL_INFERENCE_IDS,
|
|
478
|
+
...API_PROVIDER_IDS
|
|
479
|
+
];
|
|
406
480
|
SCHEDULER_JOB_KINDS = [
|
|
407
481
|
"memory-consolidation",
|
|
408
482
|
"decay-sweep",
|
|
@@ -671,11 +745,12 @@ function loadConfig() {
|
|
|
671
745
|
try {
|
|
672
746
|
const content = fs.readFileSync(CONFIG_FILE, "utf-8");
|
|
673
747
|
const userConfig = JSON.parse(content);
|
|
748
|
+
const embeddingBase = userConfig.embedding?.provider && userConfig.embedding.provider !== defaultMassaAiConfig.embedding.provider ? {} : defaultMassaAiConfig.embedding;
|
|
674
749
|
return {
|
|
675
750
|
...defaultMassaAiConfig,
|
|
676
751
|
...userConfig,
|
|
677
752
|
database: { ...defaultMassaAiConfig.database, ...userConfig.database },
|
|
678
|
-
embedding: { ...
|
|
753
|
+
embedding: { ...embeddingBase, ...userConfig.embedding },
|
|
679
754
|
compression: { ...defaultMassaAiConfig.compression, ...userConfig.compression },
|
|
680
755
|
cache: { ...defaultMassaAiConfig.cache, ...userConfig.cache },
|
|
681
756
|
logging: { ...defaultMassaAiConfig.logging, ...userConfig.logging },
|
|
@@ -820,18 +895,27 @@ function initConfig() {
|
|
|
820
895
|
function getConfigForEnv() {
|
|
821
896
|
const config = loadConfig();
|
|
822
897
|
const env = {};
|
|
823
|
-
|
|
898
|
+
const provider = config.embedding.provider;
|
|
899
|
+
if (provider === "ollama") {
|
|
824
900
|
env.OLLAMA_EMBEDDING_MODEL = config.embedding.model;
|
|
825
901
|
env.OLLAMA_BASE_URL = config.embedding.baseURL || "http://localhost:11434";
|
|
826
902
|
if (config.embedding.dimensions) {
|
|
827
903
|
env.OLLAMA_EMBEDDING_DIMENSIONS = String(config.embedding.dimensions);
|
|
828
904
|
}
|
|
829
|
-
} else if (
|
|
905
|
+
} else if (provider === "lmstudio") {
|
|
906
|
+
env.LMSTUDIO_EMBEDDING_MODEL = config.embedding.model;
|
|
907
|
+
env.LMSTUDIO_BASE_URL = config.embedding.baseURL || INFERENCE_PROVIDERS.lmstudio.defaultEmbeddingBaseUrl;
|
|
908
|
+
if (config.embedding.dimensions) {
|
|
909
|
+
env.LMSTUDIO_EMBEDDING_DIMENSIONS = String(config.embedding.dimensions);
|
|
910
|
+
}
|
|
911
|
+
} else if (provider === "mistral") {
|
|
830
912
|
env.MISTRAL_API_KEY = config.embedding.apiKey || "";
|
|
831
913
|
env.MISTRAL_TEXT_EMBEDDING_MODEL = config.embedding.model;
|
|
832
|
-
} else if (
|
|
914
|
+
} else if (provider === "openai") {
|
|
833
915
|
env.OPENAI_API_KEY = config.embedding.apiKey || "";
|
|
834
916
|
env.OPENAI_EMBEDDING_MODEL = config.embedding.model;
|
|
917
|
+
} else {
|
|
918
|
+
console.error(`[getConfigForEnv] embedding.provider "${provider}" has no env-projection branch \u2014 no embedding env vars were set`);
|
|
835
919
|
}
|
|
836
920
|
env.LOG_LEVEL = config.logging.level;
|
|
837
921
|
env.ENABLE_METRICS = String(config.logging.enableMetrics);
|
|
@@ -841,6 +925,7 @@ var CONFIG_DIR, CONFIG_FILE, ConfigParseError, ConfigWriteConflictError, migrati
|
|
|
841
925
|
var init_config_loader = __esm(() => {
|
|
842
926
|
init_massa_ai_config();
|
|
843
927
|
init_xdg();
|
|
928
|
+
init_inference_providers();
|
|
844
929
|
CONFIG_DIR = configDir("massa-ai");
|
|
845
930
|
CONFIG_FILE = path3.join(CONFIG_DIR, "config.json");
|
|
846
931
|
ConfigParseError = class ConfigParseError extends Error {
|
|
@@ -916,6 +1001,7 @@ init_xdg();
|
|
|
916
1001
|
init_config_loader();
|
|
917
1002
|
|
|
918
1003
|
// ../../packages/shared/dist/config/index.js
|
|
1004
|
+
init_embedding_dimensions();
|
|
919
1005
|
var DEFAULT_LLM_MODEL = "qwen2.5:7b-instruct";
|
|
920
1006
|
var DEFAULT_LLM_CODE_MODEL = "qwen2.5-coder:7b";
|
|
921
1007
|
function envNum(key, fallback) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@massa-ai/opencode-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.58.0",
|
|
4
4
|
"description": "massa-ai plugin for OpenCode - Semantic code search, memory, and context compression",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@opencode-ai/plugin": "^1.2.15",
|
|
26
26
|
"@opencode-ai/sdk": "^1.2.15",
|
|
27
|
-
"@massa-ai/core": "^1.
|
|
28
|
-
"@massa-ai/shared": "^1.
|
|
27
|
+
"@massa-ai/core": "^1.58.0",
|
|
28
|
+
"@massa-ai/shared": "^1.58.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.10.5",
|