/** * 资源路径解析器 * * 提供两层路径: * - 项目级: /data// (高优先级,启动时检测) * - 用户级: ~/.opencode-bridge//(低优先级,跨项目共享) * * 列表 / 读取时按 “项目级覆盖用户级”合并;写入时默认落在项目级,前端可显式选择 scope。 * * Electron 打包后 process.cwd() 不可靠,因此项目根目录通过环境变量 OPENCODE_BRIDGE_DATA_ROOT * 显式指定优先;否则回退到 process.cwd(),并保证目录存在。 */ import type { ResourceKind, ResourceScope } from './types.js'; /** 解析项目级数据根目录(绝对路径)。 */ export declare function getProjectDataRoot(): string; /** 解析用户级数据根目录(绝对路径)。 */ export declare function getUserDataRoot(): string; /** 给定 scope 的资源目录绝对路径(含 kind 子目录)。 */ export declare function getResourceDir(kind: ResourceKind, scope: ResourceScope): string; /** 同时返回 project + user 两个目录(用于扫描合并)。 */ export declare function getResourceDirs(kind: ResourceKind): Record; /** 确保资源目录存在;返回是否新建。 */ export declare function ensureResourceDir(kind: ResourceKind, scope: ResourceScope): boolean; /** 启动时一次性确保所有 kind 的项目级目录存在(用户级目录按需创建,避免污染 HOME)。 */ export declare function ensureAllProjectDirs(): void; /** * 解析单个资源的 scope:若项目级文件/目录存在则 project,否则若用户级存在则 user,否则 null。 * 用于按 name 读单个资源时定位它住在哪一层。 * * @param entry 相对路径(文件名或目录名),如 "my-skill" 或 "github.json" */ export declare function locateResource(kind: ResourceKind, entry: string): { scope: ResourceScope; absPath: string; } | null; /** 资源名安全校验:仅允许 a-z 0-9 - _,长度 1-64。 */ export declare function isValidResourceName(name: string): boolean; /** 抛错版校验,便于路由层使用。 */ export declare function assertValidResourceName(name: string): void; //# sourceMappingURL=paths.d.ts.map