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.

111 lines (99 loc) 3.17 kB
/** * Workspace Management Handlers * * Handlers for workspace health, migration, and rollback operations. * Delegates to existing CLI scripts in tools/cli/. * * @implements @.aiwg/architecture/decisions/ADR-001-unified-extension-system.md * @source @src/cli/router.ts * @issue #33 */ import { CommandHandler, HandlerContext, HandlerResult } from './types.js'; import { createScriptRunner } from './script-runner.js'; import { getFrameworkRoot } from '../../channel/manager.mjs'; /** * Handler for workspace status command * * Shows workspace health, installed frameworks, and migration status. * * Usage: * aiwg -status * aiwg --status * aiwg -status --verbose * aiwg -status --json */ export const statusHandler: CommandHandler = { id: 'status', name: 'Workspace Status', description: 'Show workspace health and installed frameworks', category: 'workspace', aliases: ['-status', '--status'], async execute(ctx: HandlerContext): Promise<HandlerResult> { const frameworkRoot = await getFrameworkRoot(); const runner = createScriptRunner(frameworkRoot); return runner.run('tools/cli/workspace-status.mjs', ctx.args, { cwd: ctx.cwd, }); }, }; /** * Handler for workspace migration command * * Migrates legacy .aiwg/ workspace structure to framework-scoped structure. * Provides interactive migration workflow with validation, backup, and reporting. * * Usage: * aiwg -migrate-workspace * aiwg --migrate-workspace * aiwg -migrate-workspace --dry-run * aiwg -migrate-workspace --no-backup * aiwg -migrate-workspace --force * aiwg -migrate-workspace --yes */ export const migrateWorkspaceHandler: CommandHandler = { id: 'migrate-workspace', name: 'Migrate Workspace', description: 'Migrate legacy .aiwg/ to framework-scoped structure', category: 'workspace', aliases: ['-migrate-workspace', '--migrate-workspace'], async execute(ctx: HandlerContext): Promise<HandlerResult> { const frameworkRoot = await getFrameworkRoot(); const runner = createScriptRunner(frameworkRoot); return runner.run('tools/cli/workspace-migrate.mjs', ctx.args, { cwd: ctx.cwd, }); }, }; /** * Handler for workspace rollback command * * Rolls back workspace migration from backup. * * Usage: * aiwg -rollback-workspace * aiwg --rollback-workspace * aiwg -rollback-workspace --list * aiwg -rollback-workspace --backup <backup-path> */ export const rollbackWorkspaceHandler: CommandHandler = { id: 'rollback-workspace', name: 'Rollback Workspace', description: 'Rollback workspace migration from backup', category: 'workspace', aliases: ['-rollback-workspace', '--rollback-workspace'], async execute(ctx: HandlerContext): Promise<HandlerResult> { const frameworkRoot = await getFrameworkRoot(); const runner = createScriptRunner(frameworkRoot); return runner.run('tools/cli/workspace-rollback.mjs', ctx.args, { cwd: ctx.cwd, }); }, }; /** * All workspace management handlers */ export const workspaceHandlers: CommandHandler[] = [ statusHandler, migrateWorkspaceHandler, rollbackWorkspaceHandler, ];