@mrciphersmith/keryx 0.3.80 → 0.3.81

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 CHANGED
@@ -21098,7 +21098,7 @@ var package_default;
21098
21098
  var init_package = __esm(() => {
21099
21099
  package_default = {
21100
21100
  name: "@mrciphersmith/keryx",
21101
- version: "0.3.80",
21101
+ version: "0.3.81",
21102
21102
  description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
21103
21103
  private: false,
21104
21104
  publishConfig: {
@@ -47904,9 +47904,11 @@ async function wikiPruneOrphans(cwd, history) {
47904
47904
  if (!await pathExists(componentsDir)) {
47905
47905
  return { pruned: [], orphanedAccepted: [] };
47906
47906
  }
47907
- const at = new Date().toISOString();
47908
- const candidates = await collectGraphWikiCandidates(cwd, at, DEFAULT_COLLECT_LIMIT, null);
47909
- const validSlugs = new Set(candidates.filter((candidate) => candidate.type === "component").map((candidate) => candidate.slug));
47907
+ const counts = await moduleFileCounts(cwd);
47908
+ if (counts === undefined || counts.size === 0) {
47909
+ return { pruned: [], orphanedAccepted: [] };
47910
+ }
47911
+ const validSlugs = new Set([...counts].filter(([, files]) => files >= MIN_MODULE_FILES).map(([name]) => slugifyPath(name)));
47910
47912
  const pruned = [];
47911
47913
  const orphanedAccepted = [];
47912
47914
  let run;
@@ -47932,18 +47934,23 @@ async function wikiPruneOrphans(cwd, history) {
47932
47934
  return { pruned, orphanedAccepted };
47933
47935
  }
47934
47936
  async function validModuleNames(cwd) {
47937
+ const counts = await moduleFileCounts(cwd);
47938
+ return counts === undefined ? undefined : new Set(counts.keys());
47939
+ }
47940
+ async function moduleFileCounts(cwd) {
47935
47941
  const nodesPath = path105.join(cwd, ".metaproject", "data", "gdgraph", "storage", "nodes.jsonl");
47936
47942
  if (!await pathExists(nodesPath)) {
47937
47943
  return;
47938
47944
  }
47939
- const modules = new Set;
47945
+ const counts = new Map;
47940
47946
  for (const node of parseJsonl(await readFile46(nodesPath, "utf8"))) {
47941
47947
  if (node.kind === "asset")
47942
47948
  continue;
47943
47949
  const nodePath = String(node.path ?? node.id ?? "unknown");
47944
- modules.add(moduleNameFromProjectPath(nodePath));
47950
+ const moduleName = moduleNameFromProjectPath(nodePath);
47951
+ counts.set(moduleName, (counts.get(moduleName) ?? 0) + 1);
47945
47952
  }
47946
- return modules;
47953
+ return counts;
47947
47954
  }
47948
47955
  async function wikiEvidence(input) {
47949
47956
  const ask = await wikiAsk({
package/dist/core.js CHANGED
@@ -23795,9 +23795,11 @@ async function wikiPruneOrphans(cwd, history) {
23795
23795
  if (!await pathExists(componentsDir)) {
23796
23796
  return { pruned: [], orphanedAccepted: [] };
23797
23797
  }
23798
- const at = new Date().toISOString();
23799
- const candidates = await collectGraphWikiCandidates(cwd, at, DEFAULT_COLLECT_LIMIT, null);
23800
- const validSlugs = new Set(candidates.filter((candidate) => candidate.type === "component").map((candidate) => candidate.slug));
23798
+ const counts = await moduleFileCounts(cwd);
23799
+ if (counts === undefined || counts.size === 0) {
23800
+ return { pruned: [], orphanedAccepted: [] };
23801
+ }
23802
+ const validSlugs = new Set([...counts].filter(([, files]) => files >= MIN_MODULE_FILES).map(([name]) => slugifyPath(name)));
23801
23803
  const pruned = [];
23802
23804
  const orphanedAccepted = [];
23803
23805
  let run;
@@ -23823,18 +23825,23 @@ async function wikiPruneOrphans(cwd, history) {
23823
23825
  return { pruned, orphanedAccepted };
23824
23826
  }
23825
23827
  async function validModuleNames(cwd) {
23828
+ const counts = await moduleFileCounts(cwd);
23829
+ return counts === undefined ? undefined : new Set(counts.keys());
23830
+ }
23831
+ async function moduleFileCounts(cwd) {
23826
23832
  const nodesPath = path76.join(cwd, ".metaproject", "data", "gdgraph", "storage", "nodes.jsonl");
23827
23833
  if (!await pathExists(nodesPath)) {
23828
23834
  return;
23829
23835
  }
23830
- const modules = new Set;
23836
+ const counts = new Map;
23831
23837
  for (const node of parseJsonl(await readFile39(nodesPath, "utf8"))) {
23832
23838
  if (node.kind === "asset")
23833
23839
  continue;
23834
23840
  const nodePath = String(node.path ?? node.id ?? "unknown");
23835
- modules.add(moduleNameFromProjectPath(nodePath));
23841
+ const moduleName = moduleNameFromProjectPath(nodePath);
23842
+ counts.set(moduleName, (counts.get(moduleName) ?? 0) + 1);
23836
23843
  }
23837
- return modules;
23844
+ return counts;
23838
23845
  }
23839
23846
  async function wikiEvidence(input) {
23840
23847
  const ask = await wikiAsk({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.3.80",
3
+ "version": "0.3.81",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {