mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-12 22:56:58 +01:00
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>
20 lines
793 B
JavaScript
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);
|
|
}
|