MCPcopy Index your code
hub / github.com/Opencode-DCP/opencode-dynamic-context-pruning / checkAutoUpdate

Function checkAutoUpdate

lib/update.ts:42–68  ·  view source on GitHub ↗
(signal: AbortSignal)

Source from the content-addressed store, hash-verified

40}
41
42export async function checkAutoUpdate(signal: AbortSignal): Promise<UpdateResult> {
43 const packageDir = await findPackageDir(PACKAGE_NAME)
44 if (!packageDir) return { updated: false }
45
46 const pkg = await readPackageJson(join(packageDir, "package.json"))
47 if (!pkg?.name || !pkg.version) return { updated: false }
48
49 const latest = await fetchLatestVersion(pkg.name, signal)
50 if (!latest || !isVersionNewer(latest, pkg.version)) return { updated: false }
51
52 const removeDir = await updateRemoveDir(packageDir, pkg.name)
53 if (!removeDir) return { updated: false }
54
55 try {
56 await rm(removeDir, { recursive: true, force: true })
57 } catch {
58 return {
59 updated: false,
60 error: "remove_failed",
61 name: pkg.name,
62 current: pkg.version,
63 latest,
64 }
65 }
66
67 return { updated: true, name: pkg.name, current: pkg.version, latest }
68}
69
70async function findPackageDir(name: string) {
71 let dir = dirname(fileURLToPath(import.meta.url))

Callers 1

startAutoUpdateFunction · 0.85

Calls 5

findPackageDirFunction · 0.85
readPackageJsonFunction · 0.85
fetchLatestVersionFunction · 0.85
isVersionNewerFunction · 0.85
updateRemoveDirFunction · 0.85

Tested by

no test coverage detected