import { SkillCatalogEntry, SkillRecord } from "./skill-record.type.mjs"; //#region ../ai/src/skills/contracts/skills-store.contract.d.ts /** * Provider-neutral contract for a skills backing store. * * Every {@link SkillSource} resolves to one of these readers; the * `skills(...)` factory merges several of them. `list` powers the cheap * catalog; `load` powers on-demand body fetch. `saveCandidate` / `promote` * are the **Phase 2** self-authoring half — they write/promote candidates * but are inert until a `review` gate is wired (a candidate can never be * injected). */ interface SkillsStoreContract { /** Cheap metadata listing — names/descriptions/versions, never bodies. */ list(scope?: { tags?: string[]; }): Promise; /** Full record for one skill (latest, or a pinned `version`); `undefined` when unknown. */ load(name: string, version?: number): Promise; /** Phase 2 — writes an INERT candidate (`type: "candidate"`). Never injectable. */ saveCandidate(record: Omit): Promise; /** Phase 2 — promotes a candidate to a new monotonic version (`type: "promoted"`). */ promote(name: string): Promise; } //#endregion export { SkillsStoreContract }; //# sourceMappingURL=skills-store.contract.d.mts.map