/** * Device-identity builder for the cross-harness inventory payload * (SMI-5392, umbrella SMI-5382). * * Produces the {@link InventoryDevice} half of an {@link InventoryUploadPayload}. * Field minimization follows ADR-124: the raw hostname is NEVER sent by default * (`hostname_display` is `null` this wave); only a salt-free sha256 `hostname_hash` * is included as a soft duplicate-device hint. The hash is not trivially * reversible, but a low-entropy hostname is dictionary-recoverable — this is * acceptable per ADR-124 because the hash is scoped to the user's own * authenticated account, never exposed cross-tenant. * * @module @skillsmith/core/sync/inventory-device */ import { type InventoryDevice } from './inventory-types.js'; /** Options accepted by {@link buildInventoryDevice}. */ export interface BuildInventoryDeviceOptions { /** Skillsmith CLI version that produced the snapshot (defaults to `null`). */ cliVersion?: string | null; } /** * Build the {@link InventoryDevice} descriptor for this machine. * * - `device_id` is the stable client-generated UUID (created on first call). * - `label` is the user's optional device label from `~/.skillsmith/config.json` * (`inventory.deviceLabel`); there is no dedicated getter in `device-identity`, * so it is read directly from config and capped to `LABEL_MAX`. * - `hostname_display` is always `null` this wave (ADR-124 minimization). * - `hostname_hash` is the sha256 hex of `os.hostname()` — a soft duplicate hint. * * @param opts - Optional CLI version to stamp on the snapshot. * @returns A fully-minimized device descriptor. * @see SMI-5392 */ export declare function buildInventoryDevice(opts?: BuildInventoryDeviceOptions): InventoryDevice; //# sourceMappingURL=inventory-device.d.ts.map