/** * Author-shipped inventory discovery. * * When a `skaile.manifest.yaml` (adapted to a `version: 2` source config via * `manifestToSourceConfig`) carries an `assets:` block, discovery uses the * inventory verbatim. No glob walk, no AI enrichment. * Per-entry verification: * * - Each `files[]` entry exists on disk → hard error otherwise * - The manifest file parses (frontmatter / YAML / JSON) → hard error otherwise * - The kind is registered in the `IAssetKindRegistry` → ghost-install with * a warning (mirrors the Phase 1.7 amendment for unknown kinds) * - SHA256 hash is computed deterministically and compared against * `entry.sha256` when present → hard error on mismatch * - `entry.requires` refs are syntactically valid → hard error otherwise * * Output shape matches `discoverAssetsInTree()` so downstream consumers * (`LocalCatalogSource`, store backend) need no changes. */ import type { IAssetKindRegistry } from "@skaile/workspaces/plugins"; import type { DiscoveryResult } from "./discover.js"; import type { SourceConfigV2 } from "./source-config.js"; /** * Discover assets from an author-shipped inventory. * * Walks each `assets[]` entry in `sourceConfig`, verifies the declared file * filter against disk, parses the manifest, computes the deterministic hash, * validates requires syntax, and emits a `DiscoveredAsset` per entry. * * Verification failures are recorded in `result.errors` as * `: : ` and the offending entry is skipped. * Tags: `ManifestFileMissing`, `ManifestSchemaError`, `ManifestHashMismatch`, * `ManifestRequiresError`. * * @param rootPath - Absolute path to the repo root * @param sourceConfig - Validated `version: 2` source config with `assets:` populated * @param registry - Asset kind registry for kind validation + file-filter fallback * @returns A {@link DiscoveryResult} identical in shape to `discoverAssetsInTree()` * @docLink packages/discovery/concepts#discover-from-manifest */ export declare function discoverFromManifest(rootPath: string, sourceConfig: SourceConfigV2, registry: IAssetKindRegistry, includeDev?: boolean): DiscoveryResult; //# sourceMappingURL=discover-manifest.d.ts.map