import type { KyroLocalProjectState, KyroProjectState, KyroSharedProjectState, SprintFile, TaskDisposition, TaskEvidence, TaskVerdict } from '../types'; export declare const KYRO_SCOPE_STATUS: { readonly PLANNING: "planning"; readonly ACTIVE: "active"; readonly COMPLETED: "completed"; readonly BLOCKED: "blocked"; readonly RETIRED: "retired"; }; export type KyroScopeStatus = (typeof KYRO_SCOPE_STATUS)[keyof typeof KYRO_SCOPE_STATUS]; export declare const SCOPE_STATUS_VALUES: ("retired" | "planning" | "active" | "completed" | "blocked")[]; export declare const NEXT_ACTION_VALUES: readonly ["init", "clarify", "plan_sprint", "await_scope_completion", "execute_task", "review_task", "qa_or_close", "close_sprint", "done"]; export declare const TASK_STATUS_VALUES: readonly ["pending", "in_progress", "done", "blocked"]; export declare const TASK_DISPOSITION_KIND_VALUES: ("blocked" | "deferred" | "superseded" | "cancelled")[]; export declare const TASK_DISPOSITION_TARGET_KIND_VALUES: ("debt" | "task" | "sprint")[]; export declare const PHASE_STATUS_VALUES: readonly ["pending", "active", "blocked", "done"]; export declare const DEBT_STATUS_VALUES: readonly ["open", "in_progress", "resolved", "deferred"]; export declare const DEBT_PRIORITY_VALUES: readonly ["critical", "high", "medium", "low"]; /** The exact canonical debt output key set. Kept here so the validator owns no second vocabulary. */ export declare const CANONICAL_DEBT_KEY_VALUES: readonly ["id", "title", "origin", "priority", "status", "targetSprint", "note"]; /** * `exact` is the write boundary: canonical debt output, no extra keys (ADR-0001). * `compatible` is the read boundary: required fields must still be valid, but legacy-only keys are * tolerated so a diagnostic or a remediation preparation path can read a legacy scope at all. * Reading a record in `compatible` mode is never authorization to write it back. */ export declare const DEBT_VALIDATION_MODE: { readonly EXACT: "exact"; readonly COMPATIBLE: "compatible"; }; export type DebtValidationMode = (typeof DEBT_VALIDATION_MODE)[keyof typeof DEBT_VALIDATION_MODE]; export declare const TASK_VERDICT_RESULT_VALUES: readonly ["pass", "fail"]; export declare const TASK_VERDICT_FINDING_SEVERITY_VALUES: readonly ["critical", "warning", "suggestion"]; export declare const SPEC_REQUIREMENT_PRIORITY_VALUES: readonly ["must", "should", "could"]; export declare const ADR_STATUS_VALUES: ("superseded" | "proposed" | "accepted" | "rejected")[]; export declare const ADR_LINK_KEY_VALUES: ("debt" | "tasks" | "conventions" | "docs" | "adrs" | "supersedes")[]; export interface ValidationIssue { path: string; field: string; message: string; } export interface KyroScopeState { schemaVersion: 1; scope: string; status: string; activeSprint: string | null; currentPhase: string; nextAction: string; roadmapPath: string; sprintsPath: string; lastUpdated: string; } export interface SizingDecisionSummary { recommendedSprintCount: number; riskLevel: string; rationale: string; splitTriggers: string[]; whyNotFewer: string; whyNotMore: string; sprintProofs: string[]; } export interface RelevantArtifactPaths { roadmap: string; roadmapSummary: string; sprints: string; reentry: string; } export interface KyroScopeIndex { schemaVersion: 1; scope: string; roadmapSummary: string; activeSprintSummary: string | null; openDebtCount: number; nextTask: string | null; sizingDecision?: SizingDecisionSummary; relevantArtifactPaths: RelevantArtifactPaths; lastUpdated: string; } export interface RoadmapSummary { schemaVersion: 1; scope: string; status: string; summary: string; plannedSprintCount: number; completedSprintCount: number; adaptationCount: number; sizingDecision?: SizingDecisionSummary; nextRecommendedAction: string; openDecisions: string[]; relevantArtifactPaths: string[]; lastUpdated: string; } export interface SprintSummary { schemaVersion: 1; scope: string; sprint: string; status: string; completedTasks: number; blockedTasks: number; carryOverTasks: number; nextRecommendedAction: string; nextTask: string | null; openDecisions: string[]; filesTouched: string[]; debtDeltas: unknown[]; sourceMarkdown: string; lastUpdated: string; } export interface DebtSummary { schemaVersion: 1; scope: string; open: number; inProgress: number; resolved: number; deferred: number; critical: number; oldestOpenItem: string | null; sourceMarkdown: string | null; lastUpdated: string; } export interface RuleIndex { schemaVersion: 1; rules: RuleIndexEntry[]; sourceMarkdown: string; lastUpdated: string; } export interface RuleIndexEntry { id: string; category: string; tags: string[]; affectedModes: string[]; summary: string; sourceLocation: string; } export declare function validateProjectStateShape(value: unknown, path: string): ValidationIssue[]; /** * Shared team file (`.agents/kyro/project.json`). * Must never include activeScope or installedAdapters (personal/machine fields). */ export declare function validateSharedProjectStateShape(value: unknown, path: string): ValidationIssue[]; /** * Local overlay (`.agents/kyro/local.json`). * Personal/machine fields only — principles belong on shared after migration. */ export declare function validateLocalProjectStateShape(value: unknown, path: string): ValidationIssue[]; export interface SprintFileValidationOptions { /** Debt boundary: `exact` (default) for anything that will be written, `compatible` for readers. */ readonly debt?: DebtValidationMode; } /** Validate a v4 sprint.json. Catches shape drift (string conventions, bad snapshot, etc.). */ export declare function validateSprintFile(value: unknown, path: string, options?: SprintFileValidationOptions): ValidationIssue[]; /** * Per-field reasons a task.evidence value fails the schema, e.g. `evidence.notes must be a string * when present`. Reuses validateTaskEvidence so analyze/review can name the exact malformed field * instead of the generic "missing or malformed evidence". */ export declare function taskEvidenceIssues(value: unknown, prefix?: string): string[]; export declare function validateScopeState(value: unknown, path: string): ValidationIssue[]; export declare function validateScopeIndex(value: unknown, path: string): ValidationIssue[]; export declare function validateRoadmapSummary(value: unknown, path: string): ValidationIssue[]; export declare function validateSprintSummary(value: unknown, path: string): ValidationIssue[]; export declare function validateRuleIndex(value: unknown, path: string): ValidationIssue[]; export declare function validateExecutionEvent(value: unknown, path: string): ValidationIssue[]; export declare function validateDebtSummary(value: unknown, path: string): ValidationIssue[]; export declare function asProjectState(value: unknown): KyroProjectState | null; export declare function asSharedProjectState(value: unknown): KyroSharedProjectState | null; export declare function asLocalProjectState(value: unknown): KyroLocalProjectState | null; export declare function asSprintFile(value: unknown): SprintFile | null; export declare function asTaskEvidence(value: unknown): TaskEvidence | null; export declare function asTaskVerdict(value: unknown): TaskVerdict | null; export declare function asTaskDisposition(value: unknown, refs?: { taskIds: Iterable; debtIds: Iterable; }, selfId?: string): TaskDisposition | null; export declare function asScopeState(value: unknown): KyroScopeState | null; export declare function asScopeIndex(value: unknown): KyroScopeIndex | null; //# sourceMappingURL=schema.d.ts.map