@shahmilsaari/memory-core 0.2.4 → 0.2.5
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/cli.js +38 -8
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -699,6 +699,20 @@ import { execSync } from "child_process";
|
|
|
699
699
|
import { writeFileSync as writeFileSync2, existsSync as existsSync4, unlinkSync, readFileSync as readFileSync3, chmodSync } from "fs";
|
|
700
700
|
import { join as join4 } from "path";
|
|
701
701
|
import chalk from "chalk";
|
|
702
|
+
async function resolveModel(ollamaUrl, chatModel) {
|
|
703
|
+
try {
|
|
704
|
+
const res = await fetch(`${ollamaUrl}/api/tags`, { signal: AbortSignal.timeout(3e3) });
|
|
705
|
+
if (!res.ok) return chatModel;
|
|
706
|
+
const data = await res.json();
|
|
707
|
+
const models = data.models ?? [];
|
|
708
|
+
const exact = models.find((m) => m.name === chatModel);
|
|
709
|
+
if (exact) return exact.name;
|
|
710
|
+
const prefixed = models.find((m) => m.name.startsWith(`${chatModel}:`));
|
|
711
|
+
if (prefixed) return prefixed.name;
|
|
712
|
+
} catch {
|
|
713
|
+
}
|
|
714
|
+
return chatModel;
|
|
715
|
+
}
|
|
702
716
|
var reasonMap = new Map(
|
|
703
717
|
seeds.filter((s) => s.reason).map((s) => [s.content, s.reason])
|
|
704
718
|
);
|
|
@@ -794,7 +808,7 @@ async function checkStaged(options = {}) {
|
|
|
794
808
|
}
|
|
795
809
|
if (rules.length === 0) return;
|
|
796
810
|
const ollamaUrl = process.env.OLLAMA_URL ?? "http://localhost:11434";
|
|
797
|
-
const chatModel = process.env.OLLAMA_CHAT_MODEL ?? "llama3.2";
|
|
811
|
+
const chatModel = await resolveModel(ollamaUrl, process.env.OLLAMA_CHAT_MODEL ?? "llama3.2");
|
|
798
812
|
const MAX_DIFF = 8e3;
|
|
799
813
|
const truncated = diff.length > MAX_DIFF;
|
|
800
814
|
const diffToSend = truncated ? diff.slice(0, MAX_DIFF) + "\n\n[diff truncated]" : diff;
|
|
@@ -918,6 +932,20 @@ import { execSync as execSync2 } from "child_process";
|
|
|
918
932
|
import { existsSync as existsSync5, readFileSync as readFileSync4 } from "fs";
|
|
919
933
|
import { join as join5, relative } from "path";
|
|
920
934
|
import chalk2 from "chalk";
|
|
935
|
+
async function resolveModel2(ollamaUrl, chatModel) {
|
|
936
|
+
try {
|
|
937
|
+
const res = await fetch(`${ollamaUrl}/api/tags`, { signal: AbortSignal.timeout(3e3) });
|
|
938
|
+
if (!res.ok) return chatModel;
|
|
939
|
+
const data = await res.json();
|
|
940
|
+
const models = data.models ?? [];
|
|
941
|
+
const exact = models.find((m) => m.name === chatModel);
|
|
942
|
+
if (exact) return exact.name;
|
|
943
|
+
const prefixed = models.find((m) => m.name.startsWith(`${chatModel}:`));
|
|
944
|
+
if (prefixed) return prefixed.name;
|
|
945
|
+
} catch {
|
|
946
|
+
}
|
|
947
|
+
return chatModel;
|
|
948
|
+
}
|
|
921
949
|
function getFileLines(filePath) {
|
|
922
950
|
try {
|
|
923
951
|
return readFileSync4(filePath, "utf-8").split("\n");
|
|
@@ -993,7 +1021,7 @@ async function checkFile(filePath, cwd, config2, verbose) {
|
|
|
993
1021
|
const { rules, avoids } = getProfileRules(config2);
|
|
994
1022
|
if (rules.length === 0) return;
|
|
995
1023
|
const ollamaUrl = process.env.OLLAMA_URL ?? "http://localhost:11434";
|
|
996
|
-
const chatModel = process.env.OLLAMA_CHAT_MODEL ?? "llama3.2";
|
|
1024
|
+
const chatModel = await resolveModel2(ollamaUrl, process.env.OLLAMA_CHAT_MODEL ?? "llama3.2");
|
|
997
1025
|
const MAX_DIFF = 6e3;
|
|
998
1026
|
const truncated = diff.length > MAX_DIFF;
|
|
999
1027
|
const diffToSend = truncated ? diff.slice(0, MAX_DIFF) + "\n\n[diff truncated]" : diff;
|
|
@@ -1092,7 +1120,7 @@ ${diffToSend}` }
|
|
|
1092
1120
|
}
|
|
1093
1121
|
}
|
|
1094
1122
|
}
|
|
1095
|
-
function startWatch(options = {}) {
|
|
1123
|
+
async function startWatch(options = {}) {
|
|
1096
1124
|
const cwd = process.cwd();
|
|
1097
1125
|
const config2 = loadConfig(cwd);
|
|
1098
1126
|
if (!config2) {
|
|
@@ -1106,7 +1134,7 @@ function startWatch(options = {}) {
|
|
|
1106
1134
|
}
|
|
1107
1135
|
const watchPath = options.path ?? cwd;
|
|
1108
1136
|
const ollamaUrl = process.env.OLLAMA_URL ?? "http://localhost:11434";
|
|
1109
|
-
const chatModel = process.env.OLLAMA_CHAT_MODEL ?? "llama3.2";
|
|
1137
|
+
const chatModel = await resolveModel2(ollamaUrl, process.env.OLLAMA_CHAT_MODEL ?? "llama3.2");
|
|
1110
1138
|
console.log(chalk2.cyan("\n archmind watch \u2014 real-time rule enforcement\n"));
|
|
1111
1139
|
console.log(chalk2.dim(` watching: ${watchPath}`));
|
|
1112
1140
|
console.log(chalk2.dim(` model: ${chatModel}`));
|
|
@@ -1304,10 +1332,12 @@ program.command("init").description("Initialize memory-core in the current proje
|
|
|
1304
1332
|
try {
|
|
1305
1333
|
const res = await fetch(`${ollamaUrl}/api/tags`, { signal: AbortSignal.timeout(5e3) });
|
|
1306
1334
|
const data = await res.json();
|
|
1307
|
-
const
|
|
1308
|
-
|
|
1309
|
-
);
|
|
1310
|
-
|
|
1335
|
+
const models = data.models ?? [];
|
|
1336
|
+
const exact = models.find((m) => m.name === chatModel);
|
|
1337
|
+
const prefixed = models.find((m) => m.name.startsWith(`${chatModel}:`));
|
|
1338
|
+
const match = exact ?? prefixed;
|
|
1339
|
+
if (match) {
|
|
1340
|
+
chatModel = match.name;
|
|
1311
1341
|
modelSpinner.succeed(chalk3.green(`${chatModel} is installed and ready`));
|
|
1312
1342
|
break;
|
|
1313
1343
|
} else {
|