UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

108 lines 4.04 kB
/** * Deployment Registration * * Scans deployed agent and skill directories, extracts metadata from frontmatter, * and registers them in the extension registry for discovery. * * @implements #56, #57 * @architecture @.aiwg/architecture/unified-extension-schema.md * @tests @test/unit/extensions/deployment-registration.test.ts */ import type { Extension } from './types.js'; import type { ExtensionRegistry } from './registry.js'; /** * Registration options */ export interface RegistrationOptions { /** Path to deployed agents directory */ agentsPath?: string; /** Path, or paths, to deployed skills directories */ skillsPath?: string | string[]; /** Path to deployed commands directory */ commandsPath?: string; /** Path to deployed rules directory */ rulesPath?: string; /** * Path to deployed behaviors directory. * For OpenClaw: ~/.openclaw/behaviors/ (native). * For Claude Code: .claude/hooks/ (emulated). * Empty string means behaviors are aggregated (e.g., Warp's WARP.md) or not supported. * * @implements #609 */ behaviorsPath?: string; /** Provider platform name */ provider: string; /** Working directory for relative path resolution */ cwd?: string; } /** * Scan deployed agents directory * * Reads agent markdown files from the deployed directory and creates Extension * objects with metadata extracted from frontmatter. * * @param agentsPath - Path to .claude/agents or equivalent * @param provider - Provider platform name * @param cwd - Working directory for relative path resolution * @returns Array of agent extensions */ export declare function scanDeployedAgents(agentsPath: string, provider: string, cwd?: string): Promise<Extension[]>; /** * Scan deployed skills directory * * Reads skill directories from the deployed directory and creates Extension * objects with metadata extracted from skill.md files. * * @param skillsPath - Path to .claude/skills or equivalent * @param provider - Provider platform name * @param cwd - Working directory for relative path resolution * @returns Array of skill extensions */ export declare function scanDeployedSkills(skillsPath: string, provider: string, cwd?: string): Promise<Extension[]>; /** * Scan deployed behaviors directory * * Reads behavior directories from the deployed path and creates Extension objects * with metadata extracted from BEHAVIOR.md frontmatter. * * Behaviors are directories containing a BEHAVIOR.md file and optionally a scripts/ * subdirectory. On OpenClaw this is the native format; on other providers behaviors * are emulated via hook wrappers or session injection. * * @param behaviorsPath - Path to deployed behaviors directory (e.g., ~/.openclaw/behaviors/) * @param provider - Provider platform name * @param cwd - Working directory for relative path resolution * @returns Array of behavior extensions * * @implements #609 */ export declare function scanDeployedBehaviors(behaviorsPath: string, provider: string, cwd?: string): Promise<Extension[]>; /** * Register deployed extensions in the registry * * Scans deployed agent, skill, and behavior directories, creates Extension objects, * and registers them in the provided registry. * * @param registry - Extension registry to populate * @param options - Registration options * * @example * ```typescript * import { getRegistry } from './registry.js'; * import { registerDeployedExtensions } from './deployment-registration.js'; * * const registry = getRegistry(); * await registerDeployedExtensions(registry, { * agentsPath: '.claude/agents', * skillsPath: '.claude/skills', * provider: 'claude', * }); * * // Now list all deployed agents * const agents = registry.getByType('agent'); * console.log(`Deployed ${agents.length} agents`); * ``` */ export declare function registerDeployedExtensions(registry: ExtensionRegistry, options: RegistrationOptions): Promise<void>; //# sourceMappingURL=deployment-registration.d.ts.map