UNPKG

claude-flow-novice

Version:

Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.

65 lines (64 loc) 2.2 kB
import Redis from 'ioredis'; const argValue = (flag)=>{ const index = process.argv.indexOf(flag); if (index === -1 || index + 1 >= process.argv.length) { return undefined; } return process.argv[index + 1]; }; const parseArgs = ()=>{ const taskId = argValue('--task-id'); const description = argValue('--description'); const mode = argValue('--mode'); const maxIterationsRaw = argValue('--max-iterations'); if (!taskId) throw new Error('--task-id is required'); if (!/^[A-Za-z0-9_-]+$/.test(taskId)) { throw new Error('Invalid task id format; use alphanumeric, dash, underscore only'); } if (!description) throw new Error('--description is required'); if (!mode) throw new Error('--mode is required'); if (!maxIterationsRaw) throw new Error('--max-iterations is required'); const maxIterations = Number(maxIterationsRaw); if (!Number.isFinite(maxIterations) || maxIterations <= 0) { throw new Error('--max-iterations must be a positive number'); } return { taskId, description, mode, maxIterations, redisHost: process.env.REDIS_HOST || 'localhost', redisPort: Number(process.env.REDIS_PORT || 6379), ttlSeconds: 86400 }; }; const storeContext = async (args)=>{ const redis = new Redis({ host: args.redisHost, port: args.redisPort, lazyConnect: true }); try { await redis.connect(); const key = `swarm:${args.taskId}:context`; await redis.hset(key, { 'task_description': args.description, 'mode': args.mode, 'max_iterations': String(args.maxIterations) }); await redis.expire(key, args.ttlSeconds); console.log(`✅ Task context stored in Redis: ${key}`); console.log(` TTL: ${args.ttlSeconds} seconds`); } finally{ redis.disconnect(); } }; const main = async ()=>{ const args = parseArgs(); await storeContext(args); }; main().catch((error)=>{ console.error(`❌ Failed to store task context: ${error.message}`); process.exitCode = 1; }); //# sourceMappingURL=store-task-context.js.map