import type { ConnectorRequirement, NodeOverrides, RequirementsReport, SkillRequirements } from "./types.js"; /** * Validate skill requirements against the filesystem and collected inputs. * * File checks resolve paths relative to `projectDir`. Hard-gate files that are absent * set `satisfied: false` on the returned report; soft-gate misses are recorded but do not block. * Input checks read `_concept/_grounding/{skillId}/input.json`; missing files are treated as * no inputs collected. Resource checks are always recorded as `available: true` — actual * availability must be confirmed by the runner's `ResourceManager`. * * **Async and bounded since #454.** `projectDir` reaches this function straight * from the agent — `workspace_check_skill_requirements` takes `target_dir` as a * tool argument — so it can be `/skaile/workspace`, the rclone FUSE mount. Every * probe is now awaited and deadline-bounded, and the `min_entries` count walks * through the bounded {@link walkDir}, so a wedged mount or a symlink cycle * costs one failed tool call instead of the whole `skaile serve` event loop. * * @param skillId - Canonical skill identifier, used to locate `input.json` * @param requirements - Parsed requirements from SKILL.md (`parseSkillRequirements` output) * @param projectDir - Absolute path to the project root directory * @param overrides - Optional flow-level overrides; paths in `skip_checks` are treated as present * @param producesIndex - Maps file paths to the skill ID that produces them, enabling "produced by" hints in the report * @returns `RequirementsReport` with per-check results and an overall `satisfied` flag * * @docLink packages/resolver/api-reference#validate-requirements */ export declare function validateRequirements(skillId: string, requirements: SkillRequirements, projectDir: string, overrides?: NodeOverrides, producesIndex?: Map): Promise; /** * A warning produced by `validateConnectorRequirements` when a skill's declared * connector requirement is not satisfied by the connectors in skaile.yaml. * Each warning covers either a missing driver or an insufficient access level. * * @docLink packages/resolver/api-reference#connector-validation-warning */ export interface ConnectorValidationWarning { /** Driver name that triggered the warning. */ driver: string; /** Human-readable explanation of the gap, including a remediation command where applicable. */ message: string; } /** Minimal structural type accepted by validateConnectorRequirements. Compatible with both * ConnectorDeclaration shapes in @skaile/workspaces/core and @skaile/workspaces/connectors. */ interface AvailableConnector { driver: string; access?: "read-only" | "read-write"; } /** * Check that all connector requirements declared in a skill's SKILL.md are * satisfied by the connectors declared in skaile.yaml. * * Returns one warning per gap — either a missing driver or an insufficient * access level. This is a pre-flight advisory; no runtime enforcement is done. * * @param requirements - Connector requirements from `parseSkillRequirements().connectors` * @param available - Connector declarations from `skaile.yaml` (via `loadConnectorDeclarations`) * @returns Array of warnings — one per gap. Empty array when all requirements are satisfied. * * @docLink packages/resolver/api-reference#validate-connector-requirements */ export declare function validateConnectorRequirements(requirements: ConnectorRequirement[], available: AvailableConnector[]): ConnectorValidationWarning[]; export {}; //# sourceMappingURL=validator.d.ts.map