rosie-cli
Version:
AI-powered command-line interface tool that uses OpenAI's API to help you interact with your computer through natural language
58 lines (57 loc) • 2.92 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getScreenshots = getScreenshots;
const child_process_1 = require("child_process");
const promises_1 = __importDefault(require("fs/promises"));
const path_1 = __importDefault(require("path"));
function getScreenshots() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
const python = (0, child_process_1.spawn)('python', [path_1.default.join(__dirname, '../../../assets/screenshot/screenshot.py')]);
let outputData = '';
// Capture stdout data from Python script
python.stdout.on('data', (data) => {
outputData += data.toString();
});
python.on('close', (code) => __awaiter(this, void 0, void 0, function* () {
if (code !== 0)
return reject(new Error(`Python script exited with code ${code}`));
try {
// Parse the paths from Python's output and remove any carriage returns
const filePaths = outputData.trim().split('\n').map(path => path.replace(/\r$/, ''));
const screenshots = [];
// Process each file path
for (const filePath of filePaths) {
if (!filePath.trim())
continue;
try {
const data = yield promises_1.default.readFile(filePath);
const filename = path_1.default.basename(filePath);
screenshots.push({ filename, buffer: data });
}
catch (err) {
console.error(`Error reading file ${filePath}:`, err);
}
}
resolve(screenshots);
}
catch (err) {
reject(err);
}
}));
python.on('error', reject);
});
});
}