@cairnkeep/cli 2.23.0 → 2.24.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/CHANGELOG.md +49 -0
- package/docs/containers.md +4 -0
- package/docs/domain-knowledge.md +42 -4
- package/docs/learning/CURRICULUM-MAP.md +3 -3
- package/docs/learning/FEATURE-GUIDE.md +8 -1
- package/docs/learning/lessons/L00-why-cairnkeep.md +1 -1
- package/docs/learning/lessons/L01-safe-trial.md +3 -3
- package/docs/learning/lessons/L02-installation.md +2 -2
- package/docs/learning/lessons/L03-first-project.md +1 -1
- package/docs/learning/lessons/L04-memory-fundamentals.md +12 -0
- package/docs/learning/lessons/L09-domain-knowledge.md +11 -0
- package/docs/learning/lessons/L19-validated-skill-improvement.md +1 -1
- package/docs/learning/lessons/L20-mcp-tool-profiles.md +1 -1
- package/docs/learning/lessons/L21-context-packs.md +1 -1
- package/docs/learning/lessons/L22-native-windows.md +2 -2
- package/docs/learning/lessons/L23-guided-setup.md +1 -1
- package/docs/learning/lessons/L24-okf-exchange.md +1 -1
- package/docs/learning/lessons/L25-playbooks.md +1 -1
- package/docs/learning/lessons/L26-context-intelligence.md +1 -1
- package/docs/learning/lessons/L27-ecosystem-evidence.md +1 -1
- package/docs/learning/lessons/L28-security-assurance.md +2 -2
- package/docs/learning/video-scripts/V04-memory-retrieval-supplement.md +13 -0
- package/docs/learning/video-scripts/V09-workspace-routing-supplement.md +36 -0
- package/docs/mcp-tool-profiles.md +7 -0
- package/docs/memory-retrieval.md +84 -2
- package/docs/operating.md +5 -0
- package/docs/privacy-and-data-flow.md +13 -4
- package/examples/eval/bundled-fake.json +1 -1
- package/mcp-memory-server/dist/anythingllm-workspace.js +109 -0
- package/mcp-memory-server/dist/index.js +41 -6
- package/mcp-memory-server/dist/mcp-tool-catalog.js +4 -1
- package/mcp-memory-server/dist/memory-reranker.js +109 -0
- package/mcp-memory-server/package.json +4 -2
- package/package.json +2 -2
- package/scripts/doctor.sh +17 -0
- package/scripts/probe-memory-reranker.mjs +22 -0
- package/scripts/test-container-health.mjs +2 -0
- package/scripts/test-container.sh +21 -1
- package/scripts/test-dependency-security.mjs +50 -0
- package/scripts/test-dependency-security.sh +4 -0
- package/scripts/test-doctor.sh +28 -0
- package/scripts/test-windows-native.mjs +5 -0
- package/scripts/verify-dependency-security.mjs +22 -2
- package/scripts/windows-platform.mjs +8 -0
|
@@ -7,9 +7,10 @@ const ROOT = resolve(process.cwd());
|
|
|
7
7
|
const MINIMUM_SDK = [1, 32, 1];
|
|
8
8
|
const MINIMUM_NODE_SERVER = [2, 0, 5];
|
|
9
9
|
const TRANSITIVE_MINIMUMS = new Map([
|
|
10
|
-
["
|
|
10
|
+
["body-parser", [2, 4, 0]],
|
|
11
|
+
["fast-uri", [3, 1, 9]],
|
|
11
12
|
["hono", [4, 13, 13]],
|
|
12
|
-
["ip-address", [10, 7,
|
|
13
|
+
["ip-address", [10, 7, 4]],
|
|
13
14
|
["proxy-addr", [2, 0, 8]],
|
|
14
15
|
]);
|
|
15
16
|
const DIRECT_HONO_PACKAGES = new Set(["hono", "@hono/node-server"]);
|
|
@@ -130,8 +131,27 @@ function verifyPackageRoot({ label, directory }) {
|
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
|
|
134
|
+
function verifySchemaDependencyParity() {
|
|
135
|
+
let expectedRange;
|
|
136
|
+
let expectedVersion;
|
|
137
|
+
for (const { label, directory } of PACKAGE_ROOTS) {
|
|
138
|
+
const manifest = readJson(`${directory}/package.json`);
|
|
139
|
+
const lock = readJson(`${directory}/package-lock.json`);
|
|
140
|
+
const range = manifest.dependencies?.zod;
|
|
141
|
+
assert.equal(typeof range, "string", `${label}: direct Zod range is missing`);
|
|
142
|
+
assert.equal(lock.packages?.[""].dependencies?.zod, range, `${label}: manifest and lock root Zod ranges differ`);
|
|
143
|
+
const version = lock.packages?.["node_modules/zod"]?.version;
|
|
144
|
+
parseVersion(version, `${label} direct Zod`);
|
|
145
|
+
expectedRange ??= range;
|
|
146
|
+
expectedVersion ??= version;
|
|
147
|
+
assert.equal(range, expectedRange, "root and server Zod ranges differ");
|
|
148
|
+
assert.equal(version, expectedVersion, "root and server resolved Zod versions differ");
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
133
152
|
try {
|
|
134
153
|
PACKAGE_ROOTS.forEach(verifyPackageRoot);
|
|
154
|
+
verifySchemaDependencyParity();
|
|
135
155
|
process.stdout.write("PASS: dependency manifests and lock graphs exclude known MCP transport advisories\n");
|
|
136
156
|
} catch (error) {
|
|
137
157
|
process.stderr.write(`FAIL: dependency security policy: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
@@ -526,6 +526,14 @@ async function doctorWindows(root, args) {
|
|
|
526
526
|
} catch { line("FAIL", `embedding endpoint request failed (${process.env.CAIRN_MEMORY_EMBEDDING_URL})`); }
|
|
527
527
|
}
|
|
528
528
|
} else line("SKIP", "embedding endpoint unset");
|
|
529
|
+
if (process.env.CAIRN_MEMORY_RERANK === "1") {
|
|
530
|
+
let status = 3;
|
|
531
|
+
try { status = await (await import("./probe-memory-reranker.mjs")).probeMemoryReranker(); } catch {}
|
|
532
|
+
line(status === 0 ? "PASS" : "FAIL", status === 0
|
|
533
|
+
? "memory reranker accepted a synthetic ranking request"
|
|
534
|
+
: status === 2 ? "memory reranker configuration invalid — set URL/model and a timeout within 100–10000 ms"
|
|
535
|
+
: "memory reranker unavailable or returned invalid ranking data — search falls back to its existing order");
|
|
536
|
+
} else line("SKIP", "memory reranker unset/not 1");
|
|
529
537
|
const provider = process.env.CAIRN_GIT_PROVIDER?.trim();
|
|
530
538
|
if (!provider || provider === "none") line("SKIP", "git provider unset/none; collaboration commands are off");
|
|
531
539
|
else if (["github", "gitlab", "codeberg", "forgejo"].includes(provider)) line("PASS", `git provider configured: ${provider}`);
|