@lousy-agents/mcp 5.18.2 → 5.19.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.
Files changed (2) hide show
  1. package/dist/mcp-server.js +26 -16
  2. package/package.json +1 -1
@@ -37635,13 +37635,13 @@ const PackageJsonSchema = schemas_object({
37635
37635
  "shared"
37636
37636
  ]
37637
37637
  },
37638
- // Doctor-only skill locations
37638
+ // Additional skill roots (SKILL.md convention, no alternate layout documented)
37639
37639
  {
37640
37640
  id: "skill-pi",
37641
37641
  path: ".pi/skills",
37642
37642
  matchKind: "directory-prefix",
37643
37643
  primaryConstruct: "skill",
37644
- lintTarget: "none",
37644
+ lintTarget: "skills",
37645
37645
  harnessHints: [
37646
37646
  "pi"
37647
37647
  ]
@@ -37651,7 +37651,7 @@ const PackageJsonSchema = schemas_object({
37651
37651
  path: ".pi/prompts",
37652
37652
  matchKind: "directory-prefix",
37653
37653
  primaryConstruct: "skill",
37654
- lintTarget: "none",
37654
+ lintTarget: "skills",
37655
37655
  harnessHints: [
37656
37656
  "pi"
37657
37657
  ]
@@ -37771,13 +37771,13 @@ const PackageJsonSchema = schemas_object({
37771
37771
  ],
37772
37772
  instructionFormat: "claude-md"
37773
37773
  },
37774
- // Doctor-only construct locations
37774
+ // Subagent lint root
37775
37775
  {
37776
37776
  id: "subagent-claude",
37777
37777
  path: ".claude/agents",
37778
37778
  matchKind: "directory-prefix",
37779
37779
  primaryConstruct: "subagent",
37780
- lintTarget: "none",
37780
+ lintTarget: "subagents",
37781
37781
  harnessHints: [
37782
37782
  "claude"
37783
37783
  ]
@@ -37813,11 +37813,14 @@ const PackageJsonSchema = schemas_object({
37813
37813
  * Normalizes a repo-relative path for catalog matching.
37814
37814
  * Collapses `.` / `..` segments. Returns "" when the path is absolute or
37815
37815
  * escapes the repository root — callers treat "" as non-matching.
37816
- */ function normalizeRepoRelativePath(path) {
37817
- const normalized = path.replaceAll("\\", "/");
37816
+ */ function isAbsoluteRepoPath(normalized) {
37818
37817
  // POSIX absolute, UNC-style leading slash after backslash conversion,
37819
37818
  // and Windows drive-letter absolute (C:/..., d:\...).
37820
- if (normalized.startsWith("/") || /^[A-Za-z]:(\/|$)/.test(normalized)) {
37819
+ return normalized.startsWith("/") || /^[A-Za-z]:(\/|$)/.test(normalized);
37820
+ }
37821
+ function normalizeRepoRelativePath(path) {
37822
+ const normalized = path.replaceAll("\\", "/");
37823
+ if (isAbsoluteRepoPath(normalized)) {
37821
37824
  return "";
37822
37825
  }
37823
37826
  const resolved = [];
@@ -37825,10 +37828,10 @@ const PackageJsonSchema = schemas_object({
37825
37828
  if (segment === "" || segment === ".") {
37826
37829
  continue;
37827
37830
  }
37831
+ if (segment === ".." && resolved.length === 0) {
37832
+ return "";
37833
+ }
37828
37834
  if (segment === "..") {
37829
- if (resolved.length === 0) {
37830
- return "";
37831
- }
37832
37835
  resolved.pop();
37833
37836
  continue;
37834
37837
  }
@@ -37876,14 +37879,15 @@ function constructTypesForPath(path, catalog = AGENTIC_LOCATION_CATALOG) {
37876
37879
  if (!best) {
37877
37880
  return [];
37878
37881
  }
37879
- if (best.secondaryConstructs && best.secondaryConstructs.length > 0) {
37882
+ const secondary = best.secondaryConstructs ?? [];
37883
+ if (secondary.length === 0) {
37880
37884
  return [
37881
- best.primaryConstruct,
37882
- ...best.secondaryConstructs
37885
+ best.primaryConstruct
37883
37886
  ];
37884
37887
  }
37885
37888
  return [
37886
- best.primaryConstruct
37889
+ best.primaryConstruct,
37890
+ ...secondary
37887
37891
  ];
37888
37892
  }
37889
37893
  function lintTargetEntries(target, catalog = agentic_location_catalog_AGENTIC_LOCATION_CATALOG) {
@@ -37895,8 +37899,14 @@ function skillDirectoryRoots(catalog = agentic_location_catalog_AGENTIC_LOCATION
37895
37899
  function agentDirectoryRoots(catalog = AGENTIC_LOCATION_CATALOG) {
37896
37900
  return lintTargetEntries("agents", catalog).filter((entry)=>entry.matchKind === "directory-prefix").map((entry)=>entry.path);
37897
37901
  }
37902
+ function subagentDirectoryRoots(catalog = AGENTIC_LOCATION_CATALOG) {
37903
+ return lintTargetEntries("subagents", catalog).filter((entry)=>entry.matchKind === "directory-prefix").map((entry)=>entry.path);
37904
+ }
37905
+ function isHookConfigEntry(entry) {
37906
+ return entry.matchKind === "exact" && entry.hookPlatform != null;
37907
+ }
37898
37908
  function hookConfigPaths(catalog = AGENTIC_LOCATION_CATALOG) {
37899
- return lintTargetEntries("hooks", catalog).filter((entry)=>entry.matchKind === "exact" && entry.hookPlatform != null).map((entry)=>({
37909
+ return lintTargetEntries("hooks", catalog).filter(isHookConfigEntry).map((entry)=>({
37900
37910
  relativePath: entry.path,
37901
37911
  platform: entry.hookPlatform
37902
37912
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lousy-agents/mcp",
3
- "version": "5.18.2",
3
+ "version": "5.19.0",
4
4
  "description": "MCP server for lousy-agents - provides AI coding assistant tools via the Model Context Protocol",
5
5
  "type": "module",
6
6
  "repository": {