/**
* 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 = "