feat: add Chord runtime foundation

This commit is contained in:
Armin Ronacher 2026-08-28 23:54:47 +02:00
parent 58ea6c0ba5
commit 28b49a6b3b
36 changed files with 1307 additions and 247 deletions

View file

@ -12,6 +12,7 @@ const rootLockfilePath = join(repoRoot, "package-lock.json");
const outputPackageJsonPath = join(outputDir, "package.json");
const outputLockfilePath = join(outputDir, "package-lock.json");
const internalPackagePrefix = "@earendil-works/pi-";
const internalPackageNames = new Set(["@earendil-works/chord"]);
const installPackageName = "@earendil-works/pi-coding-agent-install";
const allowedInstallScriptPackages = new Map([
["@google/genai@1.52.0", "preinstall is a no-op in the published package"],
@ -143,7 +144,7 @@ function getInternalWorkspaces(lockPackages) {
if (!lockPath.startsWith("packages/") || lockPath.includes("/node_modules/") || !entry.name || !entry.version) {
continue;
}
if (!entry.name.startsWith(internalPackagePrefix)) {
if (!entry.name.startsWith(internalPackagePrefix) && !internalPackageNames.has(entry.name)) {
continue;
}
@ -294,7 +295,11 @@ function validateGeneratedFiles(installerPackageJson, installLock, internalNames
if (entry.dev || entry.devOptional || entry.extraneous) {
errors.push(`${lockPath || "root"} contains dev/extraneous metadata`);
}
if (packageName?.startsWith(internalPackagePrefix) && entry.version !== installerPackageJson.version) {
if (
packageName !== undefined &&
(packageName.startsWith(internalPackagePrefix) || internalPackageNames.has(packageName)) &&
entry.version !== installerPackageJson.version
) {
errors.push(`${lockPath} internal package version ${entry.version} does not match ${installerPackageJson.version}`);
}
if (entry.hasInstallScript) {