pnpm-workspace.yaml
Rama main · réplica de lectura del repositorio original.
packages:
- 'packages/*'
# ant-cli: AI workflow backend + Cloud IDE (IDEService)
# ant-ui: Frontend UI (SPA at /app)
# ant-site: Marketing site (SSG at /)
- 'examples/*'
# Worked examples — not product, in no image (every Dockerfile COPYs
# packages/ selectively). Members so one root install covers them and CI
# typechecks them. See examples/README.md.
allowBuilds:
'@vscode/ripgrep': true
sharp: true
cpu-features: false
esbuild: false
msgpackr-extract: false
protobufjs: false
ssh2: false
'@google/genai': false
# P3 security-hardening (2026-06-30) — accepted dev-only advisories.
# All are vite/vitest/esbuild dev-server or build-tool vulns, NOT shipped in any
# runtime image or browser bundle and NOT reachable in CI (`vite build` / `vitest
# run`, no listening dev server) — closing them requires a vite 5→6 major bump on
# ant-ui (breaking), deferred. Runtime vulns are kept at zero via overrides below;
# this list lets `pnpm audit` exit clean so a NEW runtime vuln is what surfaces.
auditConfig:
ignoreGhsas:
- GHSA-5xrq-8626-4rwp # vitest: UI-server arbitrary file read (UI server never run)
- GHSA-v2wj-q39q-566r # vite: server.fs.deny bypass via queries (dev server)
- GHSA-p9ff-h696-f583 # vite: arbitrary file read via dev server
- GHSA-fx2h-pf6j-xcff # vite: server.fs.deny bypass on Windows alt paths (dev server)
- GHSA-4w7w-66w2-5vf9 # vite: path traversal in optimized deps .map (dev server)
- GHSA-v6wh-96g9-6wx3 # vite>launch-editor: NTLMv2 hash disclosure (Windows dev only)
- GHSA-67mh-4wv8-2f99 # esbuild: dev server accepts any-origin requests (dev server)
# Trivy CI fix — transitive-dependency CVE patches (pnpm 11 workspaces only honor overrides here)
overrides:
handlebars: '^4.7.9'
protobufjs: '^7.6.1'
# ws: CVE-2026-48779 HIGH — memory exhaustion from many tiny frame fragments,
# fixed 8.21.2. The `/bridge/ws` WebSocket server accepts connections before
# JWT registration, so the frame parser is reachable unauthenticated.
ws: '^8.21.2'
langsmith: '^0.6.0'
lodash: '^4.18.1'
'@isaacs/brace-expansion': '^5.0.1'
picomatch: '^2.3.2'
path-to-regexp: '^8.4.0'
'minimatch@<10.2.3': '^10.2.3'
# Force the 5.x/9.x lines up to 10.x too. These come only via archiver@7
# (readdir-glob→minimatch@5, archiver-utils→glob@10→minimatch@9), whose sole
# transitive brace-expansion@2.1.2 has NO 2.x patch for CVE-2026-14257.
# Collapsing minimatch to 10.x drops the 2.x line entirely (10.x → be@5.x).
'minimatch@>=5.0.0 <10.0.0': '^10.2.3'
# glob 10.x paired with minimatch 9; bump to 11.x (paired with minimatch 10)
# so archiver-utils no longer reintroduces the minimatch@9 → be@2.x line.
'glob@>=10.0.0 <11.0.0': '^11.0.3'
'@grpc/grpc-js': '^1.14.4'
# tsx<4.22 pulls esbuild ~0.25 (GHSA-gv7w-rqvm-qjhr, fixed 0.28.1); 4.22+ pulls esbuild ~0.28
tsx: '^4.22.4'
# P3 security-hardening (2026-06-30) — runtime transitive CVE patches.
# follow-redirects: auth-header cross-domain leak (proxy-adjacent, top priority).
'follow-redirects': '^1.15.12'
# body-parser/qs: DoS via malformed urlencoded/stringify (express 5 transitive).
'body-parser': '^2.2.1'
'qs': '^6.15.2'
# react-markdown/rehype-raw transitive — unsanitized class attr XSS.
'mdast-util-to-hast': '^13.2.1'
# mermaid transitive — IN_PLACE / shadow-root XSS chain (FE bundle).
'dompurify': '^3.4.11'
# express-rate-limit transitive — Address6 HTML XSS + CVE-2026-69192
# (Address4 SSRF-adjacent parsing bypass, fixed 10.3.1).
'ip-address': '^10.3.1'
# uuid: buf bounds check (langgraph/bullmq/dockerode transitive; direct dep also bumped).
'uuid': '^11.1.1'
# brace-expansion: DoS — original zero-step (2.0.x), CVE-2026-13149
# exponential-time expand() (fixed 2.1.2 / 5.0.7), and CVE-2026-14257
# memory-exhaustion via unbounded result-string length (fixed 5.0.8 only —
# no 2.x backport yet; the 2.x finding is suppressed in secops-ci-policies
# until upstream ships one). Scope each major to its vulnerable range only,
# leaving 1.x consumers untouched (mirrors minimatch@<X). Do NOT force 2.x
# consumers onto 5.x: the 5.x CJS build is named-export (exports.expand)
# and crashes minimatch@5/9's default-import at runtime.
'brace-expansion@>=2.0.0 <2.1.2': '^2.1.2'
# CVE-2026-69152: common-prefix/suffix arbitrary-string generation DoS,
# fixed 5.0.9 (also 1.1.18/2.1.4/3.0.6 for those majors — none installed).
'brace-expansion@>=5.0.0 <5.0.9': '^5.0.9'
# js-yaml: CVE-2026-59869 DoS on malformed input (fixed 4.3.0 / 3.15.0) +
# GHSA-5p4m-2wfm-xmqj quadratic-CPU !!omap resolution (fixed 4.3.1 / 3.15.1).
'js-yaml@>=4.0.0 <4.3.1': '^4.3.1'
# nanoid: CVE-2026-67213 infinite loop in customAlphabet/customRandom on
# certain inputs (fixed 3.3.17 / 5.1.6 — only the 3.x line is installed).
'nanoid@>=3.0.0 <3.3.17': '^3.3.17'
# postcss: CSS-stringify XSS + GHSA-r28c-9q8g-f849 sourceMappingURL path
# traversal (.map disclosure, fixed 8.5.18) — build-time only (tailwind/vite).
'postcss': '^8.5.18'
# shell-quote: quote() newline-escape bug (concurrently dev script transitive).
'shell-quote': '^1.8.4'
# @babel/core: sourceMappingURL arbitrary file read (@vitejs/plugin-react transitive).
'@babel/core': '^7.29.1'
# rollup: path-traversal arbitrary file write (build-time, via vite/vitest);
# in-major bump (4.x), safe with vite 5's rollup ^4 peer range.
'rollup': '^4.59.0'
# sharp: GHSA-f88m-g3jw-g9cj HIGH (bundled libvips, fixed 0.35.0) +
# GHSA-rgj7-g3m4-5g8c HIGH (further bundled-libvips CVEs, two rated Critical,
# fixed 0.35.4). next (ant-site) pulls sharp ^0.34 transitively; force the
# patched line workspace-wide. The floor must track the advisory, not just the
# first patched release — a range a stale lockfile still satisfies is what let
# ant-cloud keep 0.35.3 after this GHSA landed.
'sharp': '^0.35.4'
# next: CVE-2026-64641 / -64645 / -64649 HIGH — App Router Server Action
# request-smuggling / SSRF chain (fixed 15.5.21). Direct dep in ant-site also
# bumped to ^15.5.21; scope the override to the vulnerable <15.5.21 range only.
'next@<15.5.21': '^15.5.21'
# fast-uri: CVE-2026-75899 / -75931 / -75975 / -76172 HIGH — hostname/IPv6
# percent-decoding and canonicalization bugs in the URI parser (fixed 3.1.6;
# also 2.4.5 / 4.1.3 for those majors — only the 3.x line is installed here,
# pulled in transitively via ajv). Scope to the vulnerable 3.x range only.
'fast-uri@>=3.0.0 <3.1.6': '^3.1.6'