@lark-project/cli
Version:
飞书项目插件开发工具
37 lines (36 loc) • 1.65 kB
TypeScript
export declare const WORKSPACE_DIR = ".lpm-cache";
export type CleanScope = 'schema' | 'config' | 'mcp' | 'all';
export interface WorkspacePaths {
root: string;
state: string;
schema: string;
schemaDir: string;
configRemote: string;
configLastSet: string;
configDir: string;
historyDir: string;
mcpDir: string;
configDraft: (timestamp: string) => string;
mcp: (slug: string) => string;
relative: (absolute: string) => string;
}
export declare const workspacePaths: (projectDirOverride?: string) => WorkspacePaths;
/**
* 守卫:projectDir 必须是 plugin 工程根(含 plugin.config.json 或 manifest.json),否则 throw。
* 任何会创建 .lpm-cache 子内容的入口都应先调用此守卫,防错误目录污染(ISS-O)。
*/
export declare const assertPluginRoot: (projectDir: string) => void;
export declare const ensureWorkspace: (projectDirOverride?: string) => void;
export declare const ensureGitignore: (projectDirOverride?: string) => void;
export interface CleanOptions {
scope?: CleanScope;
keepState?: boolean;
silent?: boolean;
}
export declare const cleanWorkspace: ({ scope, keepState, silent }?: CleanOptions) => void;
/**
* 把已消费的中间产物移出活跃目录、归档到 historyDir(保留可追溯,不硬删)。
* 文件名前缀 timestamp 避免多次 set 撞名。归档失败时兜底仍清掉源文件——
* 守住"活跃目录里不留陈旧基线/草稿"这条不变量(remote.json 留原地会坑后续 diff/删除闸口)。
*/
export declare const archiveFile: (absolutePath: string, historyDir: string) => void;