@mrciphersmith/keryx 0.3.7 → 0.3.9

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.
Files changed (2) hide show
  1. package/dist/cli.js +16 -4
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -17628,7 +17628,7 @@ var package_default;
17628
17628
  var init_package = __esm(() => {
17629
17629
  package_default = {
17630
17630
  name: "@mrciphersmith/keryx",
17631
- version: "0.3.7",
17631
+ version: "0.3.9",
17632
17632
  description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
17633
17633
  private: false,
17634
17634
  publishConfig: {
@@ -97269,9 +97269,12 @@ function classify2(file) {
97269
97269
  const decision = classifyRuleSourceCategory(file.path, file.text);
97270
97270
  return { file: { ...file, category: decision.category }, decision };
97271
97271
  }
97272
+ function stripKeryxManagedBlock(text) {
97273
+ return text.replace(/<!-- keryx:index -->[\s\S]*?<!-- \/keryx:index -->\n?/g, "");
97274
+ }
97272
97275
  async function discoverRuleSources(cwd, explicitPaths) {
97273
97276
  const discovered = [];
97274
- for (const root of [join5(cwd, ".metaproject", "rules"), join5(cwd, "rules")]) {
97277
+ for (const root of [join5(cwd, ".metaproject", "rules"), join5(cwd, "rules"), join5(cwd, ".claude", "rules")]) {
97275
97278
  for (const file of await walkMatching(root, [".md", ".mdc"])) {
97276
97279
  const text = await readIfExists(file);
97277
97280
  if (text === undefined)
@@ -97279,6 +97282,15 @@ async function discoverRuleSources(cwd, explicitPaths) {
97279
97282
  discovered.push(classify2({ path: relative3(cwd, file), kind: "project-rule", text }));
97280
97283
  }
97281
97284
  }
97285
+ for (const name of ["CLAUDE.md", "AGENTS.md"]) {
97286
+ const text = await readIfExists(join5(cwd, name));
97287
+ if (text === undefined)
97288
+ continue;
97289
+ const body = stripKeryxManagedBlock(text);
97290
+ if (body.trim().length > 0)
97291
+ discovered.push(classify2({ path: name, kind: "project-rule", text: body }));
97292
+ break;
97293
+ }
97282
97294
  const skillRoots = [
97283
97295
  [join5(cwd, ".metaproject", "project-skills"), "project-skill"],
97284
97296
  [join5(cwd, ".metaproject", "skills", "gdskills"), "gdskill"]
@@ -101223,7 +101235,7 @@ async function runJevEditGuardHook(cwd, deps = {}) {
101223
101235
  await finish({ file: "(none)", tool: "(none)", status: "skipped", reason: "review.jev.edit_guard is not enabled", jevCalls: 0, threshold: cfg.threshold, flags: [] });
101224
101236
  return;
101225
101237
  }
101226
- const apiKey = resolveJevApiKey(env, root);
101238
+ const apiKey = resolveJevApiKey(env, deps.configDir);
101227
101239
  if (apiKey === undefined || apiKey.length === 0) {
101228
101240
  await finish({ file: "(none)", tool: "(none)", status: "skipped", reason: "no Jev/OpenRouter credential", jevCalls: 0, threshold: cfg.threshold, flags: [] });
101229
101241
  return;
@@ -101278,7 +101290,7 @@ async function runJevEditGuardHook(cwd, deps = {}) {
101278
101290
  threshold: cfg.threshold,
101279
101291
  fetchFn: deps.fetchFn ?? globalThis.fetch,
101280
101292
  signal: controller.signal,
101281
- env
101293
+ env: { ...env, OPENROUTER_API_KEY: apiKey }
101282
101294
  });
101283
101295
  } finally {
101284
101296
  clearTimeout(timer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
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": {