/** * MCP handler: spec_store_status (change: add-spec-store-binding). * * A spec-store binding points OpenLore at an external spec repository that * declares the code repositories its plans target and reference. The declared * target/reference NAMES are resolved against the multi-repo federation registry * (`.openlore/federation.json`) — the binding adds no index machinery of its own; * it is a thin declarative layer over the shipped index-of-indexes. * * This handler is read-only and conclusion-shaped: it returns a single binding * health report (counts + named findings with stable codes + pasteable * remediations), never a graph. It NEVER throws for a configuration or * infrastructure problem and it NEVER blocks — every problem degrades to a * finding. No LLM (north star `c6d1ad07`). */ import type { SpecStoreConfig } from '../../../types/index.js'; import type { RepoIndexState } from '../../federation/types.js'; /** Stable finding codes — part of the agent-facing `--json` contract. */ export type SpecStoreFindingCode = 'no-binding' | 'binding-invalid' | 'registry-unreadable' | 'store-path-missing' | 'target-unresolved' | 'target-missing' | 'index-missing' | 'index-stale' | 'reference-missing' | 'certificate-stale'; export type SpecStoreFindingSeverity = 'info' | 'warn' | 'error'; export interface SpecStoreFinding { code: SpecStoreFindingCode; severity: SpecStoreFindingSeverity; /** The store name, target/reference name, or path the finding concerns. */ subject: string; /** What is wrong, in one line. */ message: string; /** A pasteable remediation. */ remediation: string; } interface ResolvedRepoStatus { name: string; resolved: boolean; state?: RepoIndexState; path?: string; } export interface SpecStoreStatusReport { bound: boolean; store?: { name: string; path: string; }; targets: ResolvedRepoStatus[]; references: ResolvedRepoStatus[]; findings: SpecStoreFinding[]; /** True when the binding carries no error-severity findings. */ sound: boolean; /** Conclusion-shaped headline. */ summary: string; } /** * Validate the binding shape. Returns the offending findings (empty when valid). * Pure: no filesystem access beyond a self-reference path comparison. */ export declare function validateSpecStoreConfig(binding: SpecStoreConfig, homeDir: string): SpecStoreFinding[]; /** * Compute the spec-store binding health report for a home repository. Read-only; * composes the federation registry only. Never throws for a binding/registry * problem — every problem is a finding. */ export declare function handleSpecStoreStatus(directory: string): Promise; export {}; //# sourceMappingURL=spec-store.d.ts.map