/** * Built-in export registry for crtr-generated host artifacts. * * Slash-command templates are one-way exports: code is the single source of * truth, so crtr renders them into host prompt/command dirs with marker-guarded * writes (see export.ts). Legacy generated Agent Skills are listed only as * cleanup targets; crouter's first-class guidance surface is memory docs. */ import type { RootDef } from '../command.js'; /** A host runtime crtr exports generated artifacts into. */ export type Host = 'claude' | 'pi'; /** One destination for an export artifact. Only targets whose host root exists * are written — crtr never creates `~/.claude` or `~/.pi` itself (export.ts). */ export interface HostTarget { host: Host; /** The leaf dir the artifact is written into (never the host root). */ dir: () => string; /** `bundle` → `//SKILL.md` ; `file` → `/.md`. */ layout: 'bundle' | 'file'; } /** One crtr-generated export artifact and every host it reaches. */ export interface ExportPair { /** Stable id for logging, e.g. `@cmd/`. */ id: string; /** On-disk artifact name (bundle dir name or file stem). */ name: string; /** Marker prefix identifying a crtr-owned file (the clobber guard). */ markerPrefix: string; /** Full file content incl. frontmatter + version marker. */ render: () => string; /** Every host destination. Targets with an absent host root are skipped. */ targets: HostTarget[]; } /** A legacy crtr-generated artifact that should be removed if still present. */ export interface LegacyExportArtifact { /** Stable id for logging/debugging. */ id: string; /** On-disk artifact name (bundle dir name or file stem). */ name: string; /** Marker prefix identifying a crtr-owned file. Markerless files are user-owned. */ markerPrefix: string; /** Every host destination. Targets with an absent host root are skipped. */ targets: HostTarget[]; } export declare const SLASH_CMD_MARKER_PREFIX = "