can1357/oh-my-pi · error · Error

${TRANSFORMERS_PACKAGE} is missing from package.json optiona

Error message

${TRANSFORMERS_PACKAGE} is missing from package.json optionalDependencies

What it means

resolveTransformersVersionSpec reads the coding-agent package.json to find @huggingface/transformers in optionalDependencies (falling back to dependencies). If the package is declared in neither map, the version spec cannot be determined for the side runtime install, so it throws. This is essentially an internal packaging-consistency assertion.

Source

Thrown at packages/coding-agent/src/subprocess/worker-runtime.ts:276

 * absolute entrypoint of `packageName` to `require`.
 */
async function prepareCompiledRuntime(runtimeDir: string, packageName: string): Promise<string> {
	const nodeModules = await installSharpStubResolver(runtimeDir);
	const entry = resolveRuntimeModule(nodeModules, packageName);
	if (!entry) throw new Error(`Unable to resolve ${packageName} in compiled runtime at ${nodeModules}`);
	return entry;
}

// ── Transformers version resolution ─────────────────────────────────

function resolveTransformersVersionSpec(): string {
	const manifest = packageJson as {
		optionalDependencies?: Record<string, string>;
		dependencies?: Record<string, string>;
	};
	const versionSpec =
		manifest.optionalDependencies?.[TRANSFORMERS_PACKAGE] ?? manifest.dependencies?.[TRANSFORMERS_PACKAGE];
	if (!versionSpec) throw new Error(`${TRANSFORMERS_PACKAGE} is missing from package.json optionalDependencies`);
	if (!versionSpec.startsWith("catalog:")) return versionSpec;
	if (COMPILED_TRANSFORMERS_VERSION) return COMPILED_TRANSFORMERS_VERSION;
	const installed = sourceRequire(`${TRANSFORMERS_PACKAGE}/package.json`) as { version: string };
	return installed.version;
}

let cachedTransformersVersionSpec: string | undefined;

/**
 * Lazily resolve (and memoize) the transformers version spec. In the `catalog:`
 * case {@link resolveTransformersVersionSpec} `require`s the installed
 * `@huggingface/transformers/package.json`, so it is only ever touched on the
 * compiled-binary runtime-install path — loading a worker (smoke-test ping,
 * online path) never triggers the transformers resolve/install dance.
 */
export function getTransformersVersionSpec(): string {
	cachedTransformersVersionSpec ??= resolveTransformersVersionSpec();
	return cachedTransformersVersionSpec;

View on GitHub (pinned to 9690622007)

Solutions

  1. Restore @huggingface/transformers to optionalDependencies (or dependencies) in the package.json of the running coding-agent build.
  2. If running a fork/patched build, re-apply the upstream package.json entry for the transformers package.
  3. Reinstall the package from a pristine release so its shipped package.json is intact.

Example fix

// before (package.json)
"optionalDependencies": {}
// after
"optionalDependencies": { "@huggingface/transformers": "catalog:" }
Defensive patterns

Strategy: validation

Validate before calling

const manifest = JSON.parse(await Bun.file(new URL("../package.json", import.meta.url)).text());
const spec = manifest.optionalDependencies?.["@huggingface/transformers"] ?? manifest.dependencies?.["@huggingface/transformers"];
if (!spec) throw new Error("transformers dependency missing; restore optionalDependencies entry before launching");

Try / catch

try {
  return resolveTransformersVersionSpec();
} catch (err) {
  if (String(err.message).includes("missing from package.json")) {
    logger.error("Packaging broken: transformers dep was removed from package.json", {});
  }
  throw err;
}

Prevention

When it happens

Trigger: getTransformersVersionSpec -> resolveTransformersVersionSpec when manifest.optionalDependencies['@huggingface/transformers'] and manifest.dependencies[...] are both undefined — i.e. a modified/patched package.json or a fork that removed the optional dependency.

Common situations: Downstream forks or automated dependency pruning tools removing the 'optional' transformers dependency, a bad merge dropping the entry, or tooling rewriting package.json without preserving optionalDependencies.

Related errors


AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31). Data as JSON: /api/errors/9c470bba55e78d3d. Report an issue: GitHub.