UNPKG

nohandcoder

Version:

An AI agent for code editing, searching, and project analysis

55 lines (54 loc) • 2.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.chat = chat; const chalk_1 = __importDefault(require("chalk")); const dotenv_1 = __importDefault(require("dotenv")); const NoHandCoderAgent_1 = require("./agents/NoHandCoderAgent"); // Load environment variables dotenv_1.default.config(); if (!process.env.OPENAI_API_KEY) { console.error(chalk_1.default.red("Error: OPENAI_API_KEY is not set")); process.exit(1); } const workspaceRoot = process.cwd(); const aiService = new NoHandCoderAgent_1.NoHandCoderAgent(workspaceRoot); async function chat() { console.log(chalk_1.default.blue("\nšŸ¤– Welcome to No Hand Coder Agent!")); console.log(chalk_1.default.gray("Let's have a conversation about your code. Type 'exit' or 'quit' to end the conversation.\n")); while (true) { try { const userInput = await new Promise((resolve) => { process.stdout.write(chalk_1.default.cyan("\nYou: ")); process.stdin.once("data", (data) => { resolve(data.toString().trim()); }); }); if (userInput.toLowerCase() === "exit" || userInput.toLowerCase() === "quit") { console.log(chalk_1.default.green("\nšŸ‘‹ Goodbye!")); process.exit(0); } if (!userInput) continue; console.log(chalk_1.default.blue("\nšŸ¤” Thinking...\n")); await aiService.handleUserInput(userInput, (chunk) => { process.stdout.write(chunk); }); console.log("\n"); } catch (error) { console.error(chalk_1.default.red("\nāŒ Error:"), error); console.log("\n"); } } } // Only run if this file is being run directly if (require.main === module) { chat().catch((error) => { console.error(chalk_1.default.red("\nāŒ Fatal error:"), error); process.exit(1); }); }