Files
Miguel Ángel 4f4a6d609e refactor(producer): simplify external-asset helpers + extract copyExternalAssets
Addresses the simplify pass on #324:

- JSDoc on `isPathInside` trimmed from 11 lines to 1. The explanation
  of `path.relative()` semantics is a language-ref lookup away; the
  inline comment on the three-case return value is the non-obvious WHY
  worth keeping.
- JSDoc on `toExternalAssetKey` trimmed from 20 lines to 8. Kept the
  caller-contract note (not covered by reading the code); dropped the
  enumerated list of why Windows drive letters break `path.join` since
  the inline comments say it at the site of each replacement.
- `toExternalAssetKey` body restructured as a single chained return.
  Drops the `^hf-ext/` short-circuit — the only call site that
  double-wrapped was a tautological test ("is truly idempotent"). No
  production path invokes this helper on its own output.
- `writeCompiledArtifacts` returned to non-exported private status.
  The only reason it was exported was so the integration test could
  call it; `copyExternalAssets` is now a dedicated exported helper
  that holds exactly the external-asset copy loop with its containment
  guard. The test calls that directly and no longer needs access to
  the orchestrator's internals.
- `renderOrchestrator` test slimmed from two 40-line cases to two
  15-line cases. The dropped content was preamble comments, scaffolding
  comments, and per-assert duplication of `toExternalAssetKey` checks
  already covered by `paths.test.ts`.
- `paths.test.ts` file header narration replaced with a one-line
  comment.

21/21 tests pass, typecheck clean.
2026-04-18 20:12:45 +01:00
..
2026-04-18 03:37:09 +00:00
2026-04-18 03:37:09 +00:00
2026-04-18 03:37:09 +00:00
2026-04-18 03:37:09 +00:00
2026-04-18 03:37:09 +00:00
2026-04-18 03:37:09 +00:00