/** * People Hub — FEAT-015 pack-operation projection reads (api_references §6.4). * * Four READ-ONLY endpoints the People pack mounts on the engine; every * mutation (install/upgrade/rollback/disable/uninstall) stays on the engine * pack API (`/api/v1/packs/*`). Responses are snake_case per the projection * contract (they bypass the generic content casing — the engine mounts these * routers verbatim), so keys are typed snake_case here and mapped at the * consumer boundary. */ /** One CMS-registered pack row (`product_packs` projection). */ export interface PeoplePackOpsRegistryItem { /** Pack uuid. */ id: string; slug: string; name?: string | null; /** Credentials redacted server-side (`sourceRedacted` flags it). */ source: string | null; sourceRedacted: boolean; branch?: string | null; version?: string | null; /** CMS state: draft | active | archived (install states derive). */ state: string; /** People convention: meta | template | generated. */ kind: 'meta' | 'template' | 'generated' | string; cachePath?: string | null; lastSyncedAt?: string | null; lastSyncStatus?: string | null; createdAt?: string | null; updatedAt?: string | null; [key: string]: unknown; } /** One available template from the registry seed manifest (D7 shape). */ export interface PeoplePackOpsCatalogEntry { slug: string; repo: string | null; latestVersion: string | null; baseCommit: string | null; kind: 'template' | string; installed: boolean; [key: string]: unknown; } export interface PeoplePackOpsRegistry { count: number; items: PeoplePackOpsRegistryItem[]; catalogSource: 'registry_seed_manifest' | 'cms_product_packs' | string; remoteCatalogAvailable: boolean; registryRepo: string | null; availableCatalog: PeoplePackOpsCatalogEntry[]; /** Degrade reasons (e.g. no registry_repo configured). */ limitations: string[]; } export interface PeoplePackPreflightBlocker { code: string; detail?: string; details?: Array>; required?: string; running?: string; [key: string]: unknown; } /** Manifest summary shared by preflight / upgrade-check / impact. */ export interface PeoplePackManifestSummary { slug: string; displayName?: string | null; version?: string | null; minCmsVersion?: string | null; contentTypes: string[]; dependencies: Array<{ slug: string; version: string | null; }>; migrationCount: number; releaseNotes?: string | null; } export interface PeoplePackPreflight { ok: boolean; blockers: PeoplePackPreflightBlocker[]; warnings: Array>; targetRef: string | null; manifestSummary: PeoplePackManifestSummary | null; } export interface PeoplePackUpgradeCheck { slug: string; upgradeAvailable: boolean; currentRef: string | null; targetRef: string | null; currentVersion: string | null; targetVersion: string | null; diffSummary: { available: boolean; changedCount: number; changedFiles: string[]; }; manifestSummary: PeoplePackManifestSummary | null; } /** A pending migration of the target ref. */ export interface PeoplePackPendingMigration { name: string; oneWay?: boolean; [key: string]: unknown; } export interface PeoplePackImpact { slug: string; currentRef: string | null; targetRef: string | null; currentVersion: string | null; targetVersion: string | null; majorUpgrade: boolean; artifactDiff: { available: boolean; changedCount: number; changedFiles: string[]; }; pendingMigrations: PeoplePackPendingMigration[]; /** One-way entries — rollback stops at the safe checkpoint. */ rollbackBlockers: Array<{ code: string; migration: string; }>; contentImpact: { basis: 'non_deleted_contents' | string; countsByContentType: Record; }; collisions: Array>; manifestSummary: PeoplePackManifestSummary | null; } /** `GET /api/v1/packs/audit-log` row — the install/upgrade/rollback/ * disable/uninstall trail (US7; survives uninstall). */ export interface PeoplePackAuditEntry { id?: number; action: string; resourceType?: string; resourceId?: string; actorId?: number | null; details?: Record; ipAddress?: string | null; success?: boolean; errorMessage?: string | null; createdAt?: string; [key: string]: unknown; } /** Query for the pack audit log read. */ export interface PeoplePackAuditQuery { action?: string; resourceId?: string; actorId?: number; limit?: number; } /** Query for `GET /people/pack-ops/preflight`. */ export interface PeoplePackPreflightQuery { slug: string; source: string; /** Defaults to `main`. */ ref?: string; } /** One detected git-vs-DB conflict (`GET /packs/{slug}/conflicts`). */ export interface PeoplePackConflictEntry { id: number; artifact_id: number; conflict_type: string; git_hash: string | null; db_hash: string | null; detected_at: string | null; resolved: boolean; } /** 3-way merge preview (`GET /packs/{slug}/conflicts/{artifact_id}/preview`). */ export interface PeoplePackConflictPreview { artifact_name: string; base_content: string | null; git_content: string | null; db_content: string | null; git_changes: string | null; db_changes: string | null; auto_resolvable: boolean; } /** Cursor-paginated sync history (`GET /packs/{slug}/sync-log`). */ export interface PeoplePackSyncLog { items: Array>; total?: number; cursor?: string | null; next_cursor?: string | null; } /** `GET /packs/{slug}/status` — live install state of the pack cache. * Loose on purpose: the engine augments keys per install state. */ export interface PeoplePackStatus { state?: string; git_ref?: string | null; gitRef?: string | null; manifest_version?: string | null; manifestVersion?: string | null; [key: string]: unknown; } /** `GET /packs/{slug}/health` — install/runtime health report. */ export interface PeoplePackHealth { status?: string; ok?: boolean; [key: string]: unknown; } /** `GET /packs/{slug}/artifacts` — hash-tracked artifact sync inventory * (SHA-256 per the manifest `artifacts:` block). */ export interface PeoplePackArtifactEntry { name?: string; path?: string; hash?: string | null; state?: string | null; [key: string]: unknown; } //# sourceMappingURL=packops.type.d.ts.map