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 = 12;
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 readPage(cp);
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 readPage(resolved));
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
@@ -75,7 +75,7 @@ import {
75
75
  triggerAutoUpdate,
76
76
  writeCache,
77
77
  writeDotenv
78
- } from "./chunk-RYTUYQFQ.js";
78
+ } from "./chunk-MI4BZI7Q.js";
79
79
  import {
80
80
  normalizeDistTag
81
81
  } from "./chunk-E6UWZ3S3.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSkillwikiMcpStdio
4
- } from "./chunk-RYTUYQFQ.js";
4
+ } from "./chunk-MI4BZI7Q.js";
5
5
  import "./chunk-E6UWZ3S3.js";
6
6
 
7
7
  // src/mcp-entry.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.9.45",
3
+ "version": "0.9.47",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "skillwiki": "dist/cli.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.9.45",
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": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.9.45",
3
+ "version": "0.9.47",
4
4
  "description": "Project-aware Karpathy-style knowledge base for Codex with 18 prompt-only skills backed by the deterministic skillwiki CLI.",
5
5
  "author": {
6
6
  "name": "karlorz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillwiki/skills",
3
- "version": "0.9.45",
3
+ "version": "0.9.47",
4
4
  "private": true,
5
5
  "files": [
6
6
  "wiki-*",