skillwiki 0.9.45 → 0.9.47
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.
|
@@ -663,7 +663,7 @@ import { readFile as readFile2, readdir, stat } from "fs/promises";
|
|
|
663
663
|
import { join as join2, relative as relative2, sep as sep2 } from "path";
|
|
664
664
|
var TYPED_DIRS = ["entities", "concepts", "comparisons", "queries", "meta"];
|
|
665
665
|
var SKIP_DIRS = /* @__PURE__ */ new Set([".git", "node_modules"]);
|
|
666
|
-
var DEFAULT_IO_CONCURRENCY =
|
|
666
|
+
var DEFAULT_IO_CONCURRENCY = 1;
|
|
667
667
|
function vaultIoConcurrency() {
|
|
668
668
|
const raw = Number.parseInt(process.env.SKILLWIKI_VAULT_IO_CONCURRENCY ?? "", 10);
|
|
669
669
|
return Number.isFinite(raw) && raw > 0 ? Math.min(raw, 64) : DEFAULT_IO_CONCURRENCY;
|
|
@@ -1438,8 +1438,8 @@ async function findVaultRoot(start) {
|
|
|
1438
1438
|
function stripWikilink(s) {
|
|
1439
1439
|
return s.replace(/^\[\[/, "").replace(/(?:\|[^\[\]]*)?\]\]$/, "").trim();
|
|
1440
1440
|
}
|
|
1441
|
-
async function validateCompoundReferences(vault) {
|
|
1442
|
-
const scan = await scanVault(vault);
|
|
1441
|
+
async function validateCompoundReferences(vault, existingScan, pageTextCache) {
|
|
1442
|
+
const scan = existingScan ? ok(existingScan) : await scanVault(vault);
|
|
1443
1443
|
if (!scan.ok) return scan;
|
|
1444
1444
|
const slugToPage = /* @__PURE__ */ new Map();
|
|
1445
1445
|
const pathToPage = /* @__PURE__ */ new Map();
|
|
@@ -1449,7 +1449,7 @@ async function validateCompoundReferences(vault) {
|
|
|
1449
1449
|
}
|
|
1450
1450
|
const findings = [];
|
|
1451
1451
|
for (const cp of scan.data.compound) {
|
|
1452
|
-
const text = await
|
|
1452
|
+
const text = await readPageCached(cp, pageTextCache);
|
|
1453
1453
|
const fm = extractFrontmatter(text);
|
|
1454
1454
|
if (!fm.ok) continue;
|
|
1455
1455
|
const projectRaw = fm.data.project;
|
|
@@ -1464,7 +1464,7 @@ async function validateCompoundReferences(vault) {
|
|
|
1464
1464
|
findings.push({ compound: cp.relPath, work_item: wi, kind: "missing", detail: `no work item found for [[${target}]]` });
|
|
1465
1465
|
continue;
|
|
1466
1466
|
}
|
|
1467
|
-
const wiFm = extractFrontmatter(await
|
|
1467
|
+
const wiFm = extractFrontmatter(await readPageCached(resolved, pageTextCache));
|
|
1468
1468
|
if (wiFm.ok && wiFm.data.project) {
|
|
1469
1469
|
const wiProj = stripWikilink(String(wiFm.data.project));
|
|
1470
1470
|
if (wiProj !== projSlug) {
|
|
@@ -3461,7 +3461,7 @@ async function runLint(input) {
|
|
|
3461
3461
|
files: d.files.map((f) => `${f.relPath} (sha256: ${f.sha256 ?? "none"})`)
|
|
3462
3462
|
}));
|
|
3463
3463
|
}
|
|
3464
|
-
const compoundRefs = await validateCompoundReferences(input.vault);
|
|
3464
|
+
const compoundRefs = await validateCompoundReferences(input.vault, scan, pageTextCache);
|
|
3465
3465
|
if (compoundRefs.ok && compoundRefs.data.length > 0) buckets.compound_refs = compoundRefs.data;
|
|
3466
3466
|
const pathCheck = await runPathTooLong({ vault: input.vault, scan });
|
|
3467
3467
|
if (pathCheck.result.ok && pathCheck.result.data.violations.length > 0) buckets.path_too_long = pathCheck.result.data.violations;
|
package/dist/cli.js
CHANGED
package/dist/skillwiki-mcp.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.47",
|
|
4
4
|
"skills": "./",
|
|
5
5
|
"description": "Project-aware Karpathy-style knowledge base for Claude Code: 18 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
|
|
6
6
|
"author": {
|