/** * Canonical Ory agent skills and commands. * * The skill playbooks (auth-setup, login-flow, social-login, local-dev, * permissions-onboarding, contribute-integration, build-integration, * e2b-sandbox, build-agent) and the local-stack commands (local-up, local-down) live once, * as token-bearing templates under `packages/core/assets/`. Every harness plugin renders them * e2b-sandbox, temporal-worker) and the local-stack commands (local-up, * local-down, temporal-up) live once, as token-bearing templates under * `packages/core/assets/`. Every harness plugin renders them * through {@link renderOrySkills} / {@link renderOryCommands}, substituting the * harness's CLI binary, package name, and the way it references sibling skills * and commands. Plugins then write the rendered docs into whatever location * their harness discovers skills/commands from (a marketplace plugin dir, an * extension bundle, `~/.codex/skills`, `.opencode/skills`, …). * * This keeps the ~1200 lines of guidance in one place — there is no per-harness * copy to drift. */ /** Names of the skills materialized by the plugins (for uninstall cleanup). */ export declare const ORY_SKILL_NAMES: readonly string[]; /** Skill names of the local-stack commands when rendered as skills. */ export declare const ORY_COMMAND_SKILL_NAMES: readonly string[]; /** File stems of the local-stack commands when rendered as commands. */ export declare const ORY_COMMAND_SLUGS: readonly string[]; export interface RenderedSkill { /** Stable id, e.g. "auth-setup". */ id: string; /** Skill name / frontmatter `name`, e.g. "ory-auth-setup". */ name: string; /** One-line description (rendered). */ description: string; /** Markdown body without frontmatter (rendered). */ body: string; /** Full `SKILL.md` content: frontmatter + body (rendered). */ markdown: string; } export interface RenderedCommand { /** Stable id, e.g. "local-up". */ id: string; /** Skill-style name, e.g. "ory-local-up". */ name: string; /** Command slug / file stem, e.g. "local-up". */ slug: string; /** One-line description (rendered). */ description: string; /** Markdown body (rendered). */ body: string; } export interface RenderProfileOptions { /** CLI binary the harness exposes, e.g. "ory-codex". */ binName: string; /** npm package name, e.g. "@ory/codex". */ packageName: string; } /** * Render the guide skills for a harness as `SKILL.md` documents. */ export declare function renderOrySkills(harness: string, opts: RenderProfileOptions): RenderedSkill[]; /** * Render the two local-stack commands for a harness. The `body` is the rendered * markdown; callers format it into the harness's command shape (plain markdown, * TOML, frontmatter markdown) or wrap it as a skill via {@link commandToSkill}. */ export declare function renderOryCommands(harness: string, opts: RenderProfileOptions): RenderedCommand[]; /** Compose a `SKILL.md` from its parts. */ export declare function toSkillMarkdown(name: string, description: string, body: string): string; /** Wrap a rendered command as a user-invocable skill (Codex, OpenClaw). */ export declare function commandToSkill(cmd: RenderedCommand): RenderedSkill; /** Render a command as a Gemini CLI TOML command definition. */ export declare function commandToToml(cmd: RenderedCommand): string; /** Render a command as an OpenCode markdown command (frontmatter + body). */ export declare function commandToFrontmatterMarkdown(cmd: RenderedCommand): string; /** Render a command as a plain markdown command file (Claude Code). */ export declare function commandToPlainMarkdown(cmd: RenderedCommand): string; /** * Write each skill into `//SKILL.md`. Overwrites existing * files; creates directories as needed. */ export declare function writeSkillTree(skillsDir: string, skills: RenderedSkill[]): void; /** Remove the named skill directories from `skillsDir` (best-effort). */ export declare function removeSkillDirs(skillsDir: string, names: readonly string[]): void;