Merge pull request #4299 from aliou/fix/resource-location-in-config-tui

fix(coding-agent): preserve .agents provenance in skill metadata
This commit is contained in:
Mario Zechner
2026-05-08 15:32:01 +02:00
committed by GitHub
3 changed files with 152 additions and 6 deletions

View File

@@ -2,6 +2,7 @@
* TUI component for managing package resources (enable/disable)
*/
import { homedir } from "node:os";
import { basename, dirname, join, relative } from "node:path";
import {
type Component,
@@ -55,12 +56,34 @@ interface ResourceGroup {
subgroups: ResourceSubgroup[];
}
function formatBaseDir(baseDir: string): string {
const homeDir = homedir();
let displayPath: string;
if (baseDir === homeDir) {
displayPath = "~";
} else if (baseDir.startsWith(homeDir)) {
// Replace home prefix with ~, normalize separators for display
const rest = baseDir.slice(homeDir.length);
displayPath = `~${rest.replace(/\\/g, "/")}`;
} else {
displayPath = baseDir.replace(/\\/g, "/");
}
return displayPath.endsWith("/") ? displayPath : `${displayPath}/`;
}
function getGroupLabel(metadata: PathMetadata): string {
if (metadata.origin === "package") {
return `${metadata.source} (${metadata.scope})`;
}
// Top-level resources
if (metadata.source === "auto") {
if (metadata.baseDir) {
return metadata.scope === "user"
? `User (${formatBaseDir(metadata.baseDir)})`
: `Project (${formatBaseDir(metadata.baseDir)})`;
}
return metadata.scope === "user" ? "User (~/.pi/agent/)" : "Project (.pi/)";
}
return metadata.scope === "user" ? "User settings" : "Project settings";
@@ -72,7 +95,7 @@ function buildGroups(resolved: ResolvedPaths): ResourceGroup[] {
const addToGroup = (resources: ResolvedResource[], resourceType: ResourceType) => {
for (const res of resources) {
const { path, enabled, metadata } = res;
const groupKey = `${metadata.origin}:${metadata.scope}:${metadata.source}`;
const groupKey = `${metadata.origin}:${metadata.scope}:${metadata.source}:${metadata.baseDir ?? ""}`;
if (!groupMap.has(groupKey)) {
groupMap.set(groupKey, {