UNPKG

automagik-genie

Version:

Self-evolving AI agent orchestration framework with Model Context Protocol support

37 lines (36 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createResumeHandler = createResumeHandler; const forge_executor_1 = require("../../lib/forge-executor"); const forge_helpers_1 = require("../../lib/forge-helpers"); function createResumeHandler(ctx) { return async (parsed) => { const cmdArgs = parsed.commandArgs; if (cmdArgs.length < 2) { throw new Error('Usage: genie resume <attempt-id> "<prompt>"'); } const store = ctx.sessionService.load({ onWarning: ctx.recordRuntimeWarning }); const attemptId = cmdArgs[0]; // Direct UUID (issue #407 fix) const prompt = cmdArgs.slice(1).join(' ').trim(); const entry = store.sessions[attemptId]; if (!entry) { throw new Error(`❌ No session found with ID '${attemptId}'`); } const forgeExecutor = (0, forge_executor_1.createForgeExecutor)(); // NOTE: Agent profile sync removed - Forge discovers .genie folders natively try { await forgeExecutor.resumeTask(attemptId, prompt); } catch (error) { const reason = (0, forge_helpers_1.describeForgeError)(error); ctx.recordRuntimeWarning(`Forge resume failed: ${reason}`); throw new Error(`Forge backend rejected resume for session '${attemptId}'. ${forge_helpers_1.FORGE_RECOVERY_HINT}`); } entry.lastPrompt = prompt.slice(0, 200); entry.lastUsed = new Date().toISOString(); entry.status = 'running'; store.sessions[attemptId] = entry; await ctx.sessionService.save(store); process.stdout.write(`✓ Resumed session ${attemptId} via Forge\n`); }; }