/** * `lockfile` — browser stub. * * The Node version of this module imports `node:crypto`, `node:fs`, and * `node:path` to compute content hashes and read `qodo.lock.yaml` off * disk. None of those APIs exist in the browser, and the lockfile is a * server-side concern anyway: there's no reproducibility story for a * browser bundle that holds no catalog. * * The stub preserves the type surface so `import type { Lockfile } from * '@qodo/sdk'` resolves in both environments; runtime calls reject with * a clear message. Wired via the `browser` field in `package.json`. */ import type { SkillSource } from './types.js'; export declare const LOCKFILE_SCHEMA_VERSION = 1; export declare const LOCKFILE_BASENAME = "qodo.lock.yaml"; export interface LockfileEntry { readonly fqn: string; readonly source: SkillSource; readonly sha256: string; } export interface Lockfile { readonly schemaVersion: number; readonly skills: readonly LockfileEntry[]; } export type LockfileValidation = { readonly outcome: 'ok'; readonly actualSha256: string; } | { readonly outcome: 'drift'; readonly actualSha256: string; readonly expectedSha256: string; } | { readonly outcome: 'unreachable'; readonly reason: string; }; export declare class LockfileParseError extends Error { constructor(message: string); } export declare class LockfileValidationError extends Error { readonly fqn: string; readonly kind: 'drift' | 'unreachable'; constructor(fqn: string, kind: 'drift' | 'unreachable', message: string); } export declare function findLockfile(_paths: readonly string[]): Promise; export declare function loadLockfile(_path: string): Promise; export declare function parseLockfile(_text: string): Lockfile; export declare function writeLockfile(_lockfile: Lockfile): string; export declare function computeSkillHash(_dir: string): Promise<{ readonly sha256: string; readonly fileCount: number; readonly skipped: readonly string[]; }>; export declare function validateLockfileEntry(_entry: LockfileEntry, _skill: unknown): Promise; export declare function buildLockfile(_skills: readonly unknown[]): Promise; //# sourceMappingURL=lockfile.browser.d.ts.map