sourcewizard
Version:
SourceWizard - AI-powered setup wizard for dev tools and libraries with MCP integration
61 lines (60 loc) • 2.4 kB
TypeScript
export interface RepositoryAction {
command: string;
flags?: string[];
}
export interface RepositoryActions {
build: RepositoryAction[];
test: RepositoryAction[];
deploy: RepositoryAction[];
dev: RepositoryAction[];
lint: RepositoryAction[];
format: RepositoryAction[];
install: RepositoryAction[];
clean: RepositoryAction[];
check: RepositoryAction[];
add: RepositoryAction[];
[key: string]: RepositoryAction[];
}
export interface ProjectContext {
name: string;
targets?: Record<string, TargetInfo>;
target_dependencies?: BulkTargetData;
}
export interface TargetInfo {
name: string;
path: string;
language: string;
version?: string;
framework?: string;
package_manager?: "npm" | "yarn" | "pnpm" | "bun" | "pip" | "cargo" | "go" | "maven" | "gradle" | "composer" | "bundle";
dependency_files: string[];
env_files: string[];
entrypoint?: string;
target_type?: "package" | "script";
internal_dependencies?: string[];
actions: RepositoryActions;
}
export type BulkTargetData = Record<string, {
dependencies: Record<string, string>;
devDependencies?: Record<string, string>;
envNames: string[];
}>;
export declare function detectRepo(repoPath: string): Promise<ProjectContext>;
export declare function getTargetEnvNames(targetInfo: TargetInfo, repoPath: string): Promise<string[]>;
export declare function getTargetDependencies(targetInfo: TargetInfo, repoPath: string): Promise<{
dependencies: Record<string, string>;
devDependencies?: Record<string, string>;
}>;
export declare function getBulkTargetData(targets: Record<string, TargetInfo>, repoPath: string): Promise<BulkTargetData>;
export interface ExecuteCommandOptions {
onOutput?: (message: string, type: 'info' | 'error' | 'success') => void;
additionalArgs?: string[];
}
export interface ExecuteAddCommandOptions extends ExecuteCommandOptions {
packageName: string;
isDev?: boolean;
useWorkspace?: boolean;
additionalFlags?: string[];
}
export declare function executeRepositoryCommand(actionType: "build" | "dev" | "run" | "check" | "test" | "add", targetArg: string | undefined, repoPath: string, options?: ExecuteCommandOptions): Promise<void>;
export declare function executeAddCommand(targetArg: string | undefined, repoPath: string, options: ExecuteAddCommandOptions): Promise<void>;