UNPKG

aiwg

Version:

Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.

146 lines (130 loc) 4.07 kB
/** * Scaffolding Command Handlers * * Handlers for code generation and project scaffolding commands. * Each handler delegates to existing scripts in tools/scaffolding/. * * @implements @.aiwg/architecture/decisions/ADR-001-unified-extension-system.md * @tests @test/unit/cli/handlers/scaffolding.test.ts * @issue #33 */ import { CommandHandler, HandlerContext, HandlerResult } from './types.js'; import { createScriptRunner } from './script-runner.js'; import { getFrameworkRoot } from '../../channel/manager.mjs'; /** * Base class for scaffolding handlers that delegate to scripts */ abstract class ScaffoldingHandler implements CommandHandler { abstract id: string; abstract name: string; abstract description: string; abstract scriptPath: string; category = 'scaffolding' as const; get aliases(): string[] { return [this.id]; } async execute(ctx: HandlerContext): Promise<HandlerResult> { const frameworkRoot = await getFrameworkRoot(); const runner = createScriptRunner(frameworkRoot); return runner.run(this.scriptPath, ctx.args); } } /** * Add Agent Handler * * Scaffolds a new agent definition (specialist AI persona). */ class AddAgentHandler extends ScaffoldingHandler { id = 'add-agent'; name = 'Add Agent'; description = 'Create a new agent definition'; scriptPath = 'tools/scaffolding/add-agent.mjs'; } /** * Add Command Handler * * Scaffolds a new slash command for Claude Code/Cursor. */ class AddCommandHandler extends ScaffoldingHandler { id = 'add-command'; name = 'Add Command'; description = 'Create a new slash command'; scriptPath = 'tools/scaffolding/add-command.mjs'; } /** * Add Skill Handler * * Scaffolds a new skill for Warp Terminal. */ class AddSkillHandler extends ScaffoldingHandler { id = 'add-skill'; name = 'Add Skill'; description = 'Create a new Warp skill'; scriptPath = 'tools/scaffolding/add-skill.mjs'; } /** * Add Template Handler * * Scaffolds a new document template. */ class AddTemplateHandler extends ScaffoldingHandler { id = 'add-template'; name = 'Add Template'; description = 'Create a new document template'; scriptPath = 'tools/scaffolding/add-template.mjs'; } /** * Scaffold Addon Handler * * Scaffolds a complete AIWG addon with structure and manifest. */ class ScaffoldAddonHandler extends ScaffoldingHandler { id = 'scaffold-addon'; name = 'Scaffold Addon'; description = 'Create a new AIWG addon'; scriptPath = 'tools/scaffolding/scaffold-addon.mjs'; } /** * Scaffold Extension Handler * * Scaffolds a platform-specific extension (plugin, integration). */ class ScaffoldExtensionHandler extends ScaffoldingHandler { id = 'scaffold-extension'; name = 'Scaffold Extension'; description = 'Create a new platform extension'; scriptPath = 'tools/scaffolding/scaffold-extension.mjs'; } /** * Scaffold Framework Handler * * Scaffolds a complete AIWG framework with agents, commands, and docs. */ class ScaffoldFrameworkHandler extends ScaffoldingHandler { id = 'scaffold-framework'; name = 'Scaffold Framework'; description = 'Create a new AIWG framework'; scriptPath = 'tools/scaffolding/scaffold-framework.mjs'; } /** * Exported handler instances */ export const addAgentHandler: CommandHandler = new AddAgentHandler(); export const addCommandHandler: CommandHandler = new AddCommandHandler(); export const addSkillHandler: CommandHandler = new AddSkillHandler(); export const addTemplateHandler: CommandHandler = new AddTemplateHandler(); export const scaffoldAddonHandler: CommandHandler = new ScaffoldAddonHandler(); export const scaffoldExtensionHandler: CommandHandler = new ScaffoldExtensionHandler(); export const scaffoldFrameworkHandler: CommandHandler = new ScaffoldFrameworkHandler(); /** * All scaffolding handlers for registration */ export const scaffoldingHandlers: CommandHandler[] = [ addAgentHandler, addCommandHandler, addSkillHandler, addTemplateHandler, scaffoldAddonHandler, scaffoldExtensionHandler, scaffoldFrameworkHandler, ];