/** * Framework-specific renderers for GitAgent packages. * * Each renderer transforms a parsed GitAgent package (agent.yaml + SOUL.md + RULES.md) * into the native file format that the target agent framework natively reads. * * Only backends with a full bridge driver (runtime execution) are included: * claude-code → .claude/agents/.md (YAML frontmatter + markdown body) * omp → .omp/agents// (directory with agent.yaml + SOUL.md) * codex → .codex/agents/.toml (TOML) * * Removed (no bridge driver): cursor, roo, github-copilot, gemini, amp. * Add them back when a bridge driver is implemented. */ import type { AgentManifest } from "@skaile/workspaces/core"; import type { AbilityRef, ContractRef } from "./fragments.js"; export type { AgentManifest }; /** * All data an {@link AgentRenderer} needs to produce a native agent definition file. * * @docLink packages/asset-manager/api-reference#renderers */ export interface AgentRenderInput { /** Parsed `agent.yaml` manifest for the GitAgent being rendered. */ manifest: AgentManifest; /** Raw content of `SOUL.md`, or `null` if absent. */ soul: string | null; /** Raw content of `RULES.md`, or `null` if absent. */ rules: string | null; /** Raw content of `DUTIES.md`, or `null` if absent. */ duties: string | null; /** Agent name used as the output filename and frontmatter `name` field. */ agentName: string; /** Resolved absolute path to the framework's agent deploy directory (e.g. `.claude/agents/`). */ agentDeployDir: string; /** Absolute path to the workspace root. */ workspaceRoot: string; /** Resolved ability refs — installed skills referenced in the `## Installed Abilities` section. */ abilityRefs: AbilityRef[]; /** Resolved contract refs — installed in the skills dir, listed in the `## Contracts` section. */ contractRefs: ContractRef[]; /** Resolved framework fragment markdown blocks (agent-mode, handoff, skill-discovery, etc.). */ frameworkFragments: string[]; /** Per-project prompt extension markdown blocks loaded from `skaile.yaml` `agent.prompt-extensions`. */ promptExtensions: string[]; } /** * Result returned by every {@link AgentRenderer}. * * @docLink packages/asset-manager/api-reference#renderers */ export interface AgentRenderResult { /** Paths to files/dirs created, relative to `workspaceRoot`. */ created: string[]; /** Non-fatal warnings (e.g. experimental feature notices). */ warnings: string[]; } /** * A function that transforms an {@link AgentRenderInput} into framework-native agent definition files. * * @docLink packages/asset-manager/api-reference#renderers */ export type AgentRenderer = (input: AgentRenderInput) => AgentRenderResult; /** * Render a GitAgent to Claude Code's `.claude/agents/.md` format. * * Writes YAML frontmatter (name, description, model, tools, maxTurns) followed * by the enriched system prompt body. Always overwrites to reflect current source. * * @docLink packages/asset-manager/api-reference#renderers */ export declare const claudeCodeRenderer: AgentRenderer; /** * Render a GitAgent to OpenAI Codex's `.codex/agents/.toml` format. * * Produces a TOML file with `name`, `description`, and `developer_instructions` * fields. Triple-quoted TOML multi-line strings are escaped to avoid syntax errors. * * @docLink packages/asset-manager/api-reference#renderers */ export declare const codexRenderer: AgentRenderer; /** * Render a GitAgent to oh-my-pi's `.omp/agents//` directory format. * * Writes `agent.yaml` (with resolved model/tools/delegation) and an enriched * `SOUL.md` that includes fragments and extensions. omp reads this directory * natively via the `PI_CODING_AGENT_DIR` environment variable. * * @docLink packages/asset-manager/api-reference#renderers */ export declare const ompRenderer: AgentRenderer; export type Log = (msg: string) => void; /** * Render an agent to framework-native format via the renderer registry. * * Shared by both the simple deploy path (`deployAsset`) and the enriched scaffold path (agents layer). * * @param input - Full render input including manifest, SOUL/RULES text, and resolved refs. * @param driverTarget - Agent framework ID to look up in {@link AGENT_RENDERERS}. * @param log - Optional logger callback for progress messages. * @returns Object with `created` file paths and `warnings` list. * @docLink packages/asset-manager/api-reference#renderers */ export declare function renderAgentToFramework(input: AgentRenderInput, driverTarget: string, log?: Log): { created: string[]; warnings: string[]; }; /** * Registry mapping framework IDs to their {@link AgentRenderer} functions. * * Only backends with a full bridge driver are registered. Add new entries * when a bridge driver is implemented in `workspaces/bridge/src/drivers/`. * * @docLink packages/asset-manager/api-reference#renderers */ export declare const AGENT_RENDERERS: Record; /** * Returns `true` if the given driver target supports file-based sub-agent installation. * * @param driverTarget - Agent framework ID to check. * @returns `true` when `driverTarget` has a registered entry in {@link AGENT_RENDERERS}. * @docLink packages/asset-manager/api-reference#renderers */ export declare function driverTargetSupportsAgents(driverTarget: string): boolean; //# sourceMappingURL=renderers.d.ts.map