/** Individual framework detected in the project */ export interface DetectedFramework { name: string; version?: string; } /** Known stack profiles that can be suggested for installation */ export type KnownStack = "TALL" | "RILT" | "VILT" | "SILT" | "ELYRA_FRAMEWORK"; /** Category of a project verification command */ export type VerificationKind = "typecheck" | "lint" | "test" | "build"; /** A project-defined check the agent should run after making changes */ export interface VerificationCommand { kind: VerificationKind; /** Shell command to run from the project root */ command: string; /** Where the command was derived from, e.g. "package.json scripts.check", "composer.json", "Cargo.toml" */ source: string; } /** Result of stack detection */ export interface StackDetectionResult { /** All detected frameworks */ frameworks: DetectedFramework[]; /** Recognized stack profile (if frameworks match a known combination) */ stack?: KnownStack; /** Human-readable summary for system prompt injection */ summary: string; /** Project check commands (typecheck, lint, test, build) derived from manifests */ verification: VerificationCommand[]; } /** Detect the technology stack in a project directory */ export declare function detectStack(cwd: string): StackDetectionResult; /** * Derive the project's own check commands from its manifests. Only reports * commands whose runner is plausibly present (declared script, dependency, or * toolchain manifest); never invents commands. Results are ordered * typecheck, lint, test, build and deduplicated by command string. */ export declare function detectVerificationCommands(cwd: string): VerificationCommand[]; /** Render verification commands as a system prompt block, or "" when there are none */ export declare function formatVerificationForPrompt(commands: VerificationCommand[]): string; /** Get the suggested package name for a detected stack */ export declare function getSuggestedPackage(stack: KnownStack): string; /** Result of Grove site detection */ export interface GroveSiteDetection { /** Site name (registered name, or the directory name for parked sites) */ siteName: string; /** The URL Grove serves this site at */ url: string; } /** * Detect whether `cwd` is served by Grove (the local dev environment * manager): either registered as a site in Grove's config.toml, or a direct * child of a parked path. Uses a line-based scan of the config rather than a * TOML parser dependency (same tradeoff as the Cargo.toml check above). */ export declare function detectGroveSite(cwd: string, groveHomeOverride?: string): GroveSiteDetection | undefined; //# sourceMappingURL=stack-detector.d.ts.map