/**
 * Tier 8.7 — ComplianceAgentTemplate generator contract.
 *
 * Architectural correction (Thomas directive, 2026-05-15):
 *   A ComplianceAgentTemplate is NOT a data object describing report
 *   sections. It is a GENERATOR that emits an MD-file bundle structurally
 *   conforming to our existing CXNI single-MD Claude Code sub-agent
 *   pattern (see `/root/.claude/agents/_template-new-agent.md`).
 *
 *   Each template produces:
 *     1. ONE primary agent MD file (`.claude/agents/<pack>-compliance-agent.md`)
 *        following the 9 mandatory sections (Mandatory Startup Protocol /
 *        Identity / Soul / Token Economics / Responsibilities / Authority
 *        Tiers / Boundaries / Projects / Kanban) + V2 Governance Compliance
 *        footer.
 *     2. PACK-SPECIFIC skill files (`.claude/skills/compliance/<pack>-*.md`)
 *        covering governance dos/don'ts, the heartbeat cycle (load-bearing
 *        for cadenced compliance reporting), reporting composition, and
 *        broker usage.
 *     3. SHARED skill copies (`.claude/skills/_shared/*.md`) the agent loads
 *        at startup. Only included if the customer's .claude/ tree doesn't
 *        already have them.
 *     4. A customer-specific GOVERNANCE.md at the project root.
 *
 *   The customer extracts this tarball into their project root; the files
 *   land at the expected `.claude/...` paths and the agent becomes a working
 *   Claude Code sub-agent that Claude Code recognises natively via the
 *   frontmatter `identifier:` field.
 *
 * @connexum/ai-governance — Tier 8.7
 */
/** Scope kinds a compliance agent can read (read-only). */
export type ScopeKind = 'database' | 'codebase' | 'audit-chain' | 'document-store' | 'object-store';
/** Cadence options mirroring scheduled-report-routes.ts:35. */
export type ReportCadence = 'weekly' | 'monthly' | 'quarterly' | 'annual';
/**
 * Input handed to a template generator at spawn time.
 * Mirrors what the spawn endpoint already collects.
 */
export interface ComplianceAgentSpawnInput {
    /** The pack id (matches registry-expanded.ts `id` exactly). */
    packId: string;
    /** Tier 8.7 agent id assigned at spawn (e.g., agent_hipaa_acme_...). */
    agentId: string;
    /** Tenant org id (from JWT `claims.org`). */
    orgId: string;
    /** Location string supplied by ORG_ADMIN at spawn. */
    location: string;
    /** Department string supplied by ORG_ADMIN at spawn. */
    department: string;
    /** License key issued for this agent (used in setup instructions). */
    licenseKey: string;
    /** Connexum gov-server base URL the agent posts back to. */
    govServerUrl?: string;
}
/**
 * One file in the generated MD bundle.
 *
 * `path` is RELATIVE to the customer's project root (e.g.,
 * `.claude/agents/hipaa-compliance-agent.md`). The tarball builder
 * preserves the path verbatim so extraction into the project root
 * lands files at the expected `.claude/...` locations.
 *
 * `mode` is an octal POSIX permission (defaults to 0o644). Use 0o444
 * for files the agent must never rewrite (Authority Tiers, Boundaries).
 */
export interface GeneratedFile {
    path: string;
    content: string;
    mode?: number;
}
/**
 * A ComplianceAgentTemplate is a PURE generator function.
 *
 * Same `spawnInput` MUST produce a byte-identical bundle — auditors
 * verify the bundle hash against the audit-chain entry at spawn time.
 * Non-determinism (timestamps, random IDs) is the caller's responsibility.
 */
export type ComplianceAgentTemplate = (spawnInput: ComplianceAgentSpawnInput) => GeneratedFile[];
/**
 * Lightweight metadata about a template. Lets the tarball builder and
 * the dashboard surface what the agent IS without invoking the generator.
 * Every template module exports both `generate` and `metadata`.
 */
export interface ComplianceAgentTemplateMetadata {
    packId: string;
    templateVersion: string;
    cadences: ReportCadence[];
    requiredScopeKinds: ScopeKind[];
    displayName: string;
    shortDescription: string;
}
//# sourceMappingURL=types.d.ts.map