pnpm-workspace.yaml
Rama main · réplica de lectura del repositorio original.
# pnpm workspace + supply-chain policy.
# See .agents/skills/npm-security-best-practices/ for the full rationale.
# Workspace members: server + plugin under apps/, libraries under packages/.
packages:
- 'apps/*'
- 'apps/plugin/mcp-bridge'
- 'packages/*'
# Allowlist of dependencies permitted to run lifecycle scripts.
# Everything else is blocked via .npmrc::ignore-scripts=true.
# Adding an entry here is a security-relevant decision; review carefully.
# pnpm 11+ uses an explicit per-package boolean map (replaces the old
# onlyBuiltDependencies list from pnpm 10).
allowBuilds:
husky: true # registers git hooks via prepare
better-sqlite3: true # native binding postinstall fetches prebuilt
sqlite-vec: true # native binding postinstall fetches prebuilt
esbuild: false # transitive of vitest; explicitly DENY (no native binary needed at install time)
onnxruntime-node: true # native binding postinstall validates/places prebuilt (in-process embedder)
sharp: false # transitive of @huggingface/transformers; vision-only, never loaded by text pipelines — DENY
protobufjs: false # transitive of onnxruntime; postinstall only writes version aliases — DENY
unrs-resolver: false # transitive of eslint-plugin-import-x; import-x/order resolves no imports — DENY
# Refuse transitive deps fetched from git URLs, tarball URLs, or any non-registry source.
# Practice #2 (lirantal/npm-security-best-practices). Requires pnpm ≥ 10.26.
blockExoticSubdeps: true
# Install cooldown: refuse dep versions younger than 3 days (in minutes).
# Practice #3 — gives the community time to detect compromised publishes.
# Escape hatch for genuine security patches: lower this value temporarily
# (e.g., to 0) and re-tighten in a follow-up PR, OR add the offending package
# to minimumReleaseAgeExclude below.
minimumReleaseAge: 4320