UNPKG

@deep-assistant/agent

Version:

A minimal, public domain AI CLI agent compatible with OpenCode's JSON interface. Bun-only runtime.

53 lines (45 loc) 1.31 kB
import fs from "fs/promises" import { xdgData, xdgCache, xdgConfig, xdgState } from "xdg-basedir" import path from "path" import os from "os" const app = "opencode" const data = path.join(xdgData!, app) const cache = path.join(xdgCache!, app) const config = path.join(xdgConfig!, app) const state = path.join(xdgState!, app) export namespace Global { export const Path = { home: os.homedir(), data, bin: path.join(data, "bin"), log: path.join(data, "log"), cache, config, state, } as const } await Promise.all([ fs.mkdir(Global.Path.data, { recursive: true }), fs.mkdir(Global.Path.config, { recursive: true }), fs.mkdir(Global.Path.state, { recursive: true }), fs.mkdir(Global.Path.log, { recursive: true }), fs.mkdir(Global.Path.bin, { recursive: true }), ]) const CACHE_VERSION = "9" const version = await Bun.file(path.join(Global.Path.cache, "version")) .text() .catch(() => "0") if (version !== CACHE_VERSION) { try { const contents = await fs.readdir(Global.Path.cache) await Promise.all( contents.map((item) => fs.rm(path.join(Global.Path.cache, item), { recursive: true, force: true, }), ), ) } catch (e) {} await Bun.file(path.join(Global.Path.cache, "version")).write(CACHE_VERSION) }