@invisiblecities/sidequest-cqo
Version:
Configuration-agnostic TypeScript and ESLint orchestrator with real-time watch mode, SQLite persistence, and intelligent terminal detection
97 lines • 2.67 kB
TypeScript
/**
* Clean type utilities using type-fest patterns
* For code quality that Reddit can't criticize
*/
import type { Simplify } from "type-fest";
/**
* Clean deduplication strategy enum
*/
type DeduplicationStrategy = "exact" | "similar" | "location";
/**
* Simplified CLI flags interface
*/
export interface CLIFlags extends Record<string, unknown> {
readonly help: boolean;
readonly helpMarkdown: boolean;
readonly helpQuick: boolean;
readonly aiContext: boolean;
readonly watch: boolean;
readonly includeAny: boolean;
readonly includeESLint: boolean;
readonly eslintOnly: boolean;
readonly archaeology: boolean;
readonly includeArchaeology: boolean;
readonly targetPath: string;
readonly verbose: boolean;
readonly strict: boolean;
readonly noCrossoverCheck: boolean;
readonly failOnCrossover: boolean;
readonly usePersistence: boolean;
readonly showBurndown: boolean;
readonly resetSession: boolean;
readonly resumeSession: boolean;
readonly debugTerminal: boolean;
readonly debug: boolean;
readonly dataDir: string;
readonly generatePRD: boolean;
readonly installShortcuts: boolean;
readonly configAction: string | undefined;
}
/**
* Ensure proper orchestrator config typing
*/
export type OrchestratorConfigInput = Simplify<{
targetPath: string;
watch: {
enabled: boolean;
interval: number;
debounce: number;
};
engines: {
typescript: {
enabled: boolean;
options: {
includeAny: boolean;
strict: boolean;
targetPath: string;
};
priority: number;
timeout: number;
allowFailure: boolean;
};
eslint: {
enabled: boolean;
options: {
roundRobin: boolean;
maxWarnings: number;
timeout: number;
};
priority: number;
timeout: number;
allowFailure: boolean;
};
unusedExports: {
enabled: boolean;
options: Record<string, unknown>;
priority: number;
timeout: number;
allowFailure: boolean;
};
};
output: {
console: boolean;
json?: string;
};
deduplication: {
enabled: boolean;
strategy: DeduplicationStrategy;
};
crossover: {
enabled: boolean;
warnOnTypeAwareRules: boolean;
warnOnDuplicateViolations: boolean;
failOnCrossover: boolean;
};
}>;
export {};
//# sourceMappingURL=types.d.ts.map