@agentics.org/sparc2
Version:
SPARC 2.0 - Autonomous Vector Coding Agent + MCP. SPARC 2.0, vectorized AI code analysis, is an intelligent coding agent framework built to automate and streamline software development. It combines secure execution environments, and version control into
77 lines (70 loc) • 2.02 kB
text/typescript
/**
* File utility functions for SPARC2
*/
/**
* Read a file line by line and parse each line as JSON
* @param path Path to the file
* @returns Array of parsed JSON objects
*/
export async function readJsonLines(path: string): Promise<any[]> {
const text = await Deno.readTextFile(path);
const lines = text.split("\n").filter((line) => line.trim() !== "");
return lines.map((line) => JSON.parse(line));
}
/**
* Write an array of objects to a file as JSON lines
* @param path Path to the file
* @param data Array of objects to write
*/
export async function writeJsonLines(path: string, data: any[]): Promise<void> {
const lines = data.map((item) => JSON.stringify(item)).join("\n");
await Deno.writeTextFile(path, lines);
}
/**
* Read a file and parse it as JSON
* @param path Path to the file
* @returns Parsed JSON object
*/
export async function readJson(path: string): Promise<any> {
const text = await Deno.readTextFile(path);
return JSON.parse(text);
}
/**
* Write an object to a file as JSON
* @param path Path to the file
* @param data Object to write
* @param pretty Whether to pretty-print the JSON
*/
export async function writeJson(path: string, data: any, pretty = false): Promise<void> {
const text = pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
await Deno.writeTextFile(path, text);
}
/**
* Check if a file exists
* @param path Path to the file
* @returns Whether the file exists
*/
export async function fileExists(path: string): Promise<boolean> {
try {
await Deno.stat(path);
return true;
} catch (error) {
if (error instanceof Deno.errors.NotFound) {
return false;
}
throw error;
}
}
/**
* Create a directory if it doesn't exist
* @param path Path to the directory
*/
export async function ensureDir(path: string): Promise<void> {
try {
await Deno.mkdir(path, { recursive: true });
} catch (error) {
if (!(error instanceof Deno.errors.AlreadyExists)) {
throw error;
}
}
}