From 5b1ba437ba85487446950fcba7a7dfaadfcefd3c Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Wed, 17 Jun 2026 16:24:54 +0800 Subject: [PATCH] refactor(skills): trim loader export surface --- src/skills/lifecycle/gh-config-discovery.ts | 2 +- src/skills/loading/bundled-context.ts | 2 +- src/skills/loading/config.ts | 4 +--- src/skills/loading/plugin-skills.ts | 1 - src/skills/loading/skill-contract.ts | 21 +-------------------- src/skills/loading/symlink-targets.ts | 7 ------- 6 files changed, 4 insertions(+), 33 deletions(-) diff --git a/src/skills/lifecycle/gh-config-discovery.ts b/src/skills/lifecycle/gh-config-discovery.ts index 05f2f68c8e18..063d43cc690c 100644 --- a/src/skills/lifecycle/gh-config-discovery.ts +++ b/src/skills/lifecycle/gh-config-discovery.ts @@ -12,7 +12,7 @@ function pathFor(platform: NodeJS.Platform) { // "not logged in", even though the operator HOME has a valid hosts.yml. // See https://github.com/openclaw/openclaw/issues/78063. -export type GhConfigDiscoveryEnv = { +type GhConfigDiscoveryEnv = { HOME?: string; XDG_CONFIG_HOME?: string; GH_CONFIG_DIR?: string; diff --git a/src/skills/loading/bundled-context.ts b/src/skills/loading/bundled-context.ts index dec20cd49a27..672879fb077b 100644 --- a/src/skills/loading/bundled-context.ts +++ b/src/skills/loading/bundled-context.ts @@ -8,7 +8,7 @@ let hasWarnedMissingBundledDir = false; let cachedBundledContext: { dir: string; names: Set } | null = null; /** Bundled skill path context resolved from runtime defaults. */ -export type BundledSkillsContext = { +type BundledSkillsContext = { dir?: string; names: Set; }; diff --git a/src/skills/loading/config.ts b/src/skills/loading/config.ts index a44432bde225..d2423c095df3 100644 --- a/src/skills/loading/config.ts +++ b/src/skills/loading/config.ts @@ -10,8 +10,6 @@ import { evaluateRuntimeEligibility, hasBinary, isConfigPathTruthyWithDefaults, - resolveConfigPath, - resolveRuntimePlatform, } from "../../shared/config-eval.js"; import type { SkillEligibilityContext, SkillEntry, SkillsInstallPreferences } from "../types.js"; import { resolveSkillKey } from "./frontmatter.js"; @@ -23,7 +21,7 @@ const DEFAULT_CONFIG_VALUES: Record = { }; /** Platform helpers re-exported for skill loading callers and tests. */ -export { hasBinary, resolveConfigPath, resolveRuntimePlatform }; +export { hasBinary }; export function resolveSkillsInstallPreferences(config?: OpenClawConfig): SkillsInstallPreferences { const raw = config?.skills?.install; diff --git a/src/skills/loading/plugin-skills.ts b/src/skills/loading/plugin-skills.ts index 1881dfa63c7e..944c3a1c9527 100644 --- a/src/skills/loading/plugin-skills.ts +++ b/src/skills/loading/plugin-skills.ts @@ -292,4 +292,3 @@ export const testing = { publishPluginSkills, resolvePluginSkillLinkType, }; -export { testing as __testing }; diff --git a/src/skills/loading/skill-contract.ts b/src/skills/loading/skill-contract.ts index 9500c4ea774b..e98bce02e811 100644 --- a/src/skills/loading/skill-contract.ts +++ b/src/skills/loading/skill-contract.ts @@ -1,9 +1,6 @@ // Skill contract types describe loaded skill metadata, sources, and prompt surfaces. import type { SourceInfo } from "../../agents/sessions/source-info.js"; -export type SourceScope = "user" | "project" | "temporary"; -export type SourceOrigin = "package" | "top-level"; - export interface Skill { name: string; description: string; @@ -17,23 +14,7 @@ export interface Skill { source: string; } -export function createSyntheticSourceInfo( - path: string, - options: { - source: string; - scope?: SourceScope; - origin?: SourceOrigin; - baseDir?: string; - }, -): SourceInfo { - return { - path, - source: options.source, - scope: options.scope ?? "temporary", - origin: options.origin ?? "top-level", - baseDir: options.baseDir, - }; -} +export { createSyntheticSourceInfo } from "../../agents/sessions/source-info.js"; function escapeXml(str: string): string { return str diff --git a/src/skills/loading/symlink-targets.ts b/src/skills/loading/symlink-targets.ts index 864eb16d314f..77f4f742e134 100644 --- a/src/skills/loading/symlink-targets.ts +++ b/src/skills/loading/symlink-targets.ts @@ -31,13 +31,6 @@ export function findContainingAllowedSkillSymlinkTarget( return null; } -export function isPathInsideAnyAllowedSkillSymlinkTarget( - rootRealPaths: readonly string[], - candidateRealPath: string, -): boolean { - return findContainingAllowedSkillSymlinkTarget(rootRealPaths, candidateRealPath) !== null; -} - export function tryRealpath(filePath: string): string | null { try { return fs.realpathSync(filePath);