Files
PaperClipAI/packages/paperclip-runner/scripts/provider-pack-layout.mjs
T
DottaandPaperclip d3257a3340 fix: reuse verified provider packs across equivalent builds
Normalize the provider-pack layout independently of runnerd build order and compare verified content rather than revision provenance, avoiding unnecessary multi-gigabyte uploads.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-09 11:29:58 -05:00

20 lines
793 B
JavaScript

import { existsSync, lstatSync, readdirSync, rmSync, rmdirSync } from "node:fs";
import { join } from "node:path";
/** runnerd is shipped and verified separately from the JavaScript provider pack. */
export function normalizeProviderPackLayout(packRoot) {
const dist = join(packRoot, "dist");
if (!existsSync(dist)) return;
if (!lstatSync(dist).isDirectory()) {
throw new Error("Provider pack dist must be a directory");
}
const bin = join(dist, "bin");
if (!existsSync(bin)) return;
if (!lstatSync(bin).isDirectory()) {
throw new Error("Provider pack dist/bin must be a directory");
}
rmSync(join(bin, "paperclip-runnerd"), { force: true });
// Keep every other entry, including future provider executables.
if (readdirSync(bin).length === 0) rmdirSync(bin);
}