@hominis/fireforge 0.46.0 → 0.46.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/CHANGELOG.md +381 -498
  2. package/dist/bin/fireforge.d.ts +1 -1
  3. package/dist/bin/fireforge.js +17 -17
  4. package/dist/build-info.json +4 -4
  5. package/dist/src/cli-usage-error.d.ts +9 -9
  6. package/dist/src/cli-usage-error.js +12 -12
  7. package/dist/src/cli.d.ts +3 -2
  8. package/dist/src/cli.js +29 -28
  9. package/dist/src/commands/bootstrap-checks.js +2 -1
  10. package/dist/src/commands/bootstrap.js +2 -2
  11. package/dist/src/commands/build.js +12 -11
  12. package/dist/src/commands/config.js +9 -9
  13. package/dist/src/commands/destructive-decision.d.ts +4 -4
  14. package/dist/src/commands/destructive-decision.js +4 -4
  15. package/dist/src/commands/discard.js +5 -5
  16. package/dist/src/commands/doctor-check-core.d.ts +4 -4
  17. package/dist/src/commands/doctor-external-toolchains.js +2 -2
  18. package/dist/src/commands/doctor-furnace-config-sync.d.ts +2 -2
  19. package/dist/src/commands/doctor-furnace-config-sync.js +20 -20
  20. package/dist/src/commands/doctor-furnace-jar.d.ts +1 -1
  21. package/dist/src/commands/doctor-furnace-jar.js +1 -1
  22. package/dist/src/commands/doctor-furnace.js +22 -22
  23. package/dist/src/commands/doctor-orphaned-harness.d.ts +10 -11
  24. package/dist/src/commands/doctor-orphaned-harness.js +10 -11
  25. package/dist/src/commands/doctor-patch-manifest.d.ts +2 -1
  26. package/dist/src/commands/doctor-patch-manifest.js +7 -6
  27. package/dist/src/commands/doctor-post-rebase-audit.js +2 -2
  28. package/dist/src/commands/doctor-source-pin.d.ts +12 -12
  29. package/dist/src/commands/doctor-source-pin.js +14 -14
  30. package/dist/src/commands/doctor-working-tree.d.ts +3 -3
  31. package/dist/src/commands/doctor-working-tree.js +3 -3
  32. package/dist/src/commands/doctor.d.ts +2 -2
  33. package/dist/src/commands/doctor.js +9 -9
  34. package/dist/src/commands/download.js +15 -13
  35. package/dist/src/commands/export-all.js +8 -8
  36. package/dist/src/commands/export-flow.d.ts +5 -5
  37. package/dist/src/commands/export-flow.js +14 -14
  38. package/dist/src/commands/export-placement-conflicts.d.ts +3 -3
  39. package/dist/src/commands/export-placement-conflicts.js +9 -9
  40. package/dist/src/commands/export-placement-gate.d.ts +2 -2
  41. package/dist/src/commands/export-placement-gate.js +5 -5
  42. package/dist/src/commands/export-placement-policy.d.ts +1 -1
  43. package/dist/src/commands/export-placement-policy.js +1 -1
  44. package/dist/src/commands/export-shared.d.ts +10 -10
  45. package/dist/src/commands/export-shared.js +13 -13
  46. package/dist/src/commands/export.js +4 -4
  47. package/dist/src/commands/furnace/apply.js +16 -16
  48. package/dist/src/commands/furnace/chrome-doc-remove.d.ts +1 -1
  49. package/dist/src/commands/furnace/chrome-doc-remove.js +1 -1
  50. package/dist/src/commands/furnace/chrome-doc-templates.d.ts +14 -14
  51. package/dist/src/commands/furnace/chrome-doc-templates.js +17 -17
  52. package/dist/src/commands/furnace/chrome-doc-tests.d.ts +2 -2
  53. package/dist/src/commands/furnace/chrome-doc-tests.js +4 -4
  54. package/dist/src/commands/furnace/chrome-doc.d.ts +8 -8
  55. package/dist/src/commands/furnace/chrome-doc.js +18 -18
  56. package/dist/src/commands/furnace/create-browser-test.d.ts +1 -1
  57. package/dist/src/commands/furnace/create-browser-test.js +4 -4
  58. package/dist/src/commands/furnace/create-dry-run.d.ts +4 -4
  59. package/dist/src/commands/furnace/create-dry-run.js +4 -4
  60. package/dist/src/commands/furnace/create-features.d.ts +2 -2
  61. package/dist/src/commands/furnace/create-features.js +2 -2
  62. package/dist/src/commands/furnace/create-mochikit.d.ts +4 -4
  63. package/dist/src/commands/furnace/create-mochikit.js +7 -7
  64. package/dist/src/commands/furnace/create-templates.d.ts +14 -14
  65. package/dist/src/commands/furnace/create-templates.js +18 -18
  66. package/dist/src/commands/furnace/create-xpcshell.d.ts +5 -5
  67. package/dist/src/commands/furnace/create-xpcshell.js +8 -8
  68. package/dist/src/commands/furnace/create.d.ts +1 -1
  69. package/dist/src/commands/furnace/create.js +10 -10
  70. package/dist/src/commands/furnace/deploy.js +4 -4
  71. package/dist/src/commands/furnace/diff.js +7 -7
  72. package/dist/src/commands/furnace/index.js +1 -1
  73. package/dist/src/commands/furnace/init.js +15 -15
  74. package/dist/src/commands/furnace/list.js +2 -2
  75. package/dist/src/commands/furnace/override.d.ts +1 -1
  76. package/dist/src/commands/furnace/override.js +15 -15
  77. package/dist/src/commands/furnace/preview.js +17 -17
  78. package/dist/src/commands/furnace/refresh.js +6 -6
  79. package/dist/src/commands/furnace/remove-mutations.d.ts +3 -3
  80. package/dist/src/commands/furnace/remove-mutations.js +19 -18
  81. package/dist/src/commands/furnace/remove-state.d.ts +1 -1
  82. package/dist/src/commands/furnace/remove-state.js +1 -1
  83. package/dist/src/commands/furnace/remove.js +2 -2
  84. package/dist/src/commands/furnace/rename-browser-test.js +9 -8
  85. package/dist/src/commands/furnace/rename-xpcshell.d.ts +2 -2
  86. package/dist/src/commands/furnace/rename-xpcshell.js +3 -3
  87. package/dist/src/commands/furnace/rename.js +9 -9
  88. package/dist/src/commands/furnace/scan.js +3 -3
  89. package/dist/src/commands/furnace/status.js +7 -7
  90. package/dist/src/commands/furnace/sync.js +6 -6
  91. package/dist/src/commands/furnace/test-file-name.d.ts +2 -2
  92. package/dist/src/commands/furnace/test-file-name.js +2 -2
  93. package/dist/src/commands/furnace/validate.js +11 -12
  94. package/dist/src/commands/import.js +20 -20
  95. package/dist/src/commands/lint-per-patch.js +8 -8
  96. package/dist/src/commands/lint-per-run-checkjs.d.ts +12 -13
  97. package/dist/src/commands/lint-per-run-checkjs.js +14 -15
  98. package/dist/src/commands/lint-report.d.ts +3 -3
  99. package/dist/src/commands/lint-report.js +4 -4
  100. package/dist/src/commands/lint.d.ts +3 -3
  101. package/dist/src/commands/lint.js +35 -35
  102. package/dist/src/commands/manifest.d.ts +4 -4
  103. package/dist/src/commands/package.js +2 -2
  104. package/dist/src/commands/patch/compact.d.ts +2 -2
  105. package/dist/src/commands/patch/compact.js +8 -8
  106. package/dist/src/commands/patch/delete.d.ts +1 -1
  107. package/dist/src/commands/patch/delete.js +8 -8
  108. package/dist/src/commands/patch/lint-ignore.d.ts +3 -4
  109. package/dist/src/commands/patch/lint-ignore.js +14 -15
  110. package/dist/src/commands/patch/move-files-create.d.ts +2 -2
  111. package/dist/src/commands/patch/move-files-create.js +5 -5
  112. package/dist/src/commands/patch/move-files-into.d.ts +2 -2
  113. package/dist/src/commands/patch/move-files-into.js +3 -3
  114. package/dist/src/commands/patch/move-files.js +1 -1
  115. package/dist/src/commands/patch/patch-context.d.ts +1 -1
  116. package/dist/src/commands/patch/rename.d.ts +4 -4
  117. package/dist/src/commands/patch/rename.js +8 -8
  118. package/dist/src/commands/patch/reorder.js +10 -10
  119. package/dist/src/commands/patch/split-plan.d.ts +3 -3
  120. package/dist/src/commands/patch/split-plan.js +6 -5
  121. package/dist/src/commands/patch/split.d.ts +2 -2
  122. package/dist/src/commands/patch/split.js +5 -5
  123. package/dist/src/commands/patch/staged-dependency-validate.d.ts +1 -1
  124. package/dist/src/commands/patch/staged-dependency-validate.js +3 -3
  125. package/dist/src/commands/patch/staged-dependency.d.ts +1 -1
  126. package/dist/src/commands/patch/staged-dependency.js +6 -6
  127. package/dist/src/commands/patch/tier.d.ts +2 -2
  128. package/dist/src/commands/patch/tier.js +5 -5
  129. package/dist/src/commands/patch-rename-map.d.ts +1 -1
  130. package/dist/src/commands/patch-rename-map.js +1 -1
  131. package/dist/src/commands/pending-resolution.d.ts +5 -5
  132. package/dist/src/commands/pending-resolution.js +5 -5
  133. package/dist/src/commands/re-export-adjacent.d.ts +3 -3
  134. package/dist/src/commands/re-export-adjacent.js +8 -8
  135. package/dist/src/commands/re-export-bulk-scan.d.ts +3 -3
  136. package/dist/src/commands/re-export-bulk-scan.js +17 -17
  137. package/dist/src/commands/re-export-drift.d.ts +10 -10
  138. package/dist/src/commands/re-export-drift.js +29 -29
  139. package/dist/src/commands/re-export-files.js +14 -15
  140. package/dist/src/commands/re-export-lint.d.ts +26 -26
  141. package/dist/src/commands/re-export-lint.js +27 -27
  142. package/dist/src/commands/re-export-options.d.ts +1 -1
  143. package/dist/src/commands/re-export-options.js +1 -1
  144. package/dist/src/commands/re-export-register.d.ts +1 -1
  145. package/dist/src/commands/re-export-register.js +1 -1
  146. package/dist/src/commands/re-export-scan.d.ts +1 -1
  147. package/dist/src/commands/re-export-scan.js +7 -7
  148. package/dist/src/commands/re-export-single.d.ts +1 -1
  149. package/dist/src/commands/re-export-single.js +20 -20
  150. package/dist/src/commands/re-export.js +7 -6
  151. package/dist/src/commands/rebase/abort.js +6 -6
  152. package/dist/src/commands/rebase/continue.js +8 -7
  153. package/dist/src/commands/rebase/index.d.ts +1 -1
  154. package/dist/src/commands/rebase/index.js +3 -3
  155. package/dist/src/commands/rebase/patch-loop.js +18 -17
  156. package/dist/src/commands/register.js +5 -5
  157. package/dist/src/commands/reset.js +1 -1
  158. package/dist/src/commands/resolve.d.ts +2 -2
  159. package/dist/src/commands/resolve.js +3 -3
  160. package/dist/src/commands/run.js +26 -26
  161. package/dist/src/commands/setup-support.js +4 -4
  162. package/dist/src/commands/setup.js +1 -1
  163. package/dist/src/commands/source.js +1 -1
  164. package/dist/src/commands/status-check.d.ts +3 -3
  165. package/dist/src/commands/status-check.js +4 -4
  166. package/dist/src/commands/status-json.d.ts +14 -13
  167. package/dist/src/commands/status-json.js +9 -8
  168. package/dist/src/commands/status-output.d.ts +3 -3
  169. package/dist/src/commands/status-output.js +3 -3
  170. package/dist/src/commands/status-ownership.d.ts +3 -3
  171. package/dist/src/commands/status-ownership.js +3 -3
  172. package/dist/src/commands/status.js +22 -22
  173. package/dist/src/commands/test-build-phase.d.ts +1 -1
  174. package/dist/src/commands/test-build-phase.js +17 -17
  175. package/dist/src/commands/test-diagnose.d.ts +1 -1
  176. package/dist/src/commands/test-diagnose.js +20 -20
  177. package/dist/src/commands/test-modes.d.ts +2 -2
  178. package/dist/src/commands/test-modes.js +4 -4
  179. package/dist/src/commands/test-run.d.ts +11 -11
  180. package/dist/src/commands/test-run.js +15 -15
  181. package/dist/src/commands/test-stale-gate.d.ts +12 -12
  182. package/dist/src/commands/test-stale-gate.js +13 -13
  183. package/dist/src/commands/test-verdict.d.ts +6 -6
  184. package/dist/src/commands/test-verdict.js +11 -11
  185. package/dist/src/commands/test.d.ts +3 -3
  186. package/dist/src/commands/test.js +36 -36
  187. package/dist/src/commands/token-coverage.js +3 -3
  188. package/dist/src/commands/token-list.js +5 -5
  189. package/dist/src/commands/token.js +9 -9
  190. package/dist/src/commands/tree.js +19 -19
  191. package/dist/src/commands/typecheck.d.ts +6 -6
  192. package/dist/src/commands/typecheck.js +7 -7
  193. package/dist/src/commands/verify.d.ts +3 -3
  194. package/dist/src/commands/verify.js +10 -10
  195. package/dist/src/commands/watch.js +11 -11
  196. package/dist/src/commands/wire.js +13 -13
  197. package/dist/src/core/ast-utils.d.ts +7 -7
  198. package/dist/src/core/ast-utils.js +8 -8
  199. package/dist/src/core/branding.d.ts +5 -5
  200. package/dist/src/core/branding.js +3 -3
  201. package/dist/src/core/browser-wire.d.ts +1 -1
  202. package/dist/src/core/browser-wire.js +4 -4
  203. package/dist/src/core/build-audit-platform.d.ts +6 -6
  204. package/dist/src/core/build-audit-platform.js +26 -26
  205. package/dist/src/core/build-audit-registration.d.ts +5 -5
  206. package/dist/src/core/build-audit-registration.js +7 -7
  207. package/dist/src/core/build-audit-resolve.d.ts +5 -5
  208. package/dist/src/core/build-audit-resolve.js +6 -6
  209. package/dist/src/core/build-audit-skip.d.ts +8 -8
  210. package/dist/src/core/build-audit-skip.js +12 -12
  211. package/dist/src/core/build-audit-transforms.d.ts +2 -2
  212. package/dist/src/core/build-audit-transforms.js +3 -3
  213. package/dist/src/core/build-audit.d.ts +8 -8
  214. package/dist/src/core/build-audit.js +39 -37
  215. package/dist/src/core/build-baseline-types.d.ts +19 -18
  216. package/dist/src/core/build-baseline-types.js +1 -1
  217. package/dist/src/core/build-baseline.d.ts +8 -8
  218. package/dist/src/core/build-baseline.js +14 -14
  219. package/dist/src/core/build-jar-escalation.d.ts +8 -8
  220. package/dist/src/core/build-jar-escalation.js +15 -15
  221. package/dist/src/core/build-overwrite-guard.d.ts +4 -4
  222. package/dist/src/core/build-overwrite-guard.js +13 -13
  223. package/dist/src/core/build-prepare.d.ts +4 -4
  224. package/dist/src/core/build-prepare.js +16 -15
  225. package/dist/src/core/config-mutate.js +4 -4
  226. package/dist/src/core/config-state.js +2 -2
  227. package/dist/src/core/config-validate-build-audit.js +3 -3
  228. package/dist/src/core/config-validate-file-size.d.ts +1 -1
  229. package/dist/src/core/config-validate-file-size.js +2 -2
  230. package/dist/src/core/config-validate.js +8 -9
  231. package/dist/src/core/config.d.ts +10 -10
  232. package/dist/src/core/config.js +10 -10
  233. package/dist/src/core/coverage-extend.d.ts +16 -16
  234. package/dist/src/core/coverage-extend.js +16 -16
  235. package/dist/src/core/destructive.d.ts +14 -14
  236. package/dist/src/core/destructive.js +9 -9
  237. package/dist/src/core/diff-hunks.d.ts +2 -2
  238. package/dist/src/core/diff-hunks.js +7 -7
  239. package/dist/src/core/discard-baseline.d.ts +10 -10
  240. package/dist/src/core/discard-baseline.js +15 -16
  241. package/dist/src/core/display-state.d.ts +11 -11
  242. package/dist/src/core/display-state.js +12 -12
  243. package/dist/src/core/engine-changes.d.ts +2 -2
  244. package/dist/src/core/engine-changes.js +2 -2
  245. package/dist/src/core/engine-precondition.d.ts +4 -4
  246. package/dist/src/core/engine-precondition.js +2 -2
  247. package/dist/src/core/engine-session-lock.d.ts +18 -18
  248. package/dist/src/core/engine-session-lock.js +37 -37
  249. package/dist/src/core/export-moved-code-shape.d.ts +7 -7
  250. package/dist/src/core/export-moved-code-shape.js +8 -8
  251. package/dist/src/core/file-lock-owner.d.ts +11 -11
  252. package/dist/src/core/file-lock-owner.js +18 -18
  253. package/dist/src/core/file-lock.d.ts +12 -12
  254. package/dist/src/core/file-lock.js +52 -39
  255. package/dist/src/core/firefox-cache.d.ts +1 -1
  256. package/dist/src/core/firefox-cache.js +10 -10
  257. package/dist/src/core/firefox-download.d.ts +3 -3
  258. package/dist/src/core/firefox-download.js +6 -6
  259. package/dist/src/core/firefox-extract.d.ts +2 -2
  260. package/dist/src/core/firefox-extract.js +13 -13
  261. package/dist/src/core/firefox.d.ts +5 -5
  262. package/dist/src/core/firefox.js +8 -8
  263. package/dist/src/core/furnace-apply-dry-run.js +1 -1
  264. package/dist/src/core/furnace-apply-ftl.d.ts +5 -5
  265. package/dist/src/core/furnace-apply-ftl.js +8 -8
  266. package/dist/src/core/furnace-apply-helpers.d.ts +9 -9
  267. package/dist/src/core/furnace-apply-helpers.js +21 -21
  268. package/dist/src/core/furnace-apply-output.js +1 -1
  269. package/dist/src/core/furnace-apply-overwrite-warn.d.ts +9 -9
  270. package/dist/src/core/furnace-apply-overwrite-warn.js +9 -9
  271. package/dist/src/core/furnace-apply-undeploy-actions.d.ts +1 -1
  272. package/dist/src/core/furnace-apply-undeploy-actions.js +1 -1
  273. package/dist/src/core/furnace-apply.d.ts +3 -3
  274. package/dist/src/core/furnace-apply.js +22 -21
  275. package/dist/src/core/furnace-checksum-utils.d.ts +5 -5
  276. package/dist/src/core/furnace-checksum-utils.js +5 -5
  277. package/dist/src/core/furnace-config-custom.d.ts +1 -1
  278. package/dist/src/core/furnace-config-custom.js +2 -2
  279. package/dist/src/core/furnace-config-order.js +1 -1
  280. package/dist/src/core/furnace-config-tokens.d.ts +3 -3
  281. package/dist/src/core/furnace-config-tokens.js +3 -3
  282. package/dist/src/core/furnace-config-validate.js +2 -2
  283. package/dist/src/core/furnace-config.d.ts +4 -4
  284. package/dist/src/core/furnace-config.js +18 -18
  285. package/dist/src/core/furnace-constants.d.ts +6 -6
  286. package/dist/src/core/furnace-constants.js +6 -6
  287. package/dist/src/core/furnace-css-fragments.d.ts +6 -6
  288. package/dist/src/core/furnace-css-fragments.js +11 -11
  289. package/dist/src/core/furnace-dir-entry.d.ts +1 -1
  290. package/dist/src/core/furnace-dir-entry.js +1 -1
  291. package/dist/src/core/furnace-jsconfig.d.ts +7 -7
  292. package/dist/src/core/furnace-jsconfig.js +22 -20
  293. package/dist/src/core/furnace-operation.d.ts +21 -20
  294. package/dist/src/core/furnace-operation.js +36 -34
  295. package/dist/src/core/furnace-precondition.d.ts +10 -10
  296. package/dist/src/core/furnace-precondition.js +8 -8
  297. package/dist/src/core/furnace-refresh.js +2 -2
  298. package/dist/src/core/furnace-registration-ast.d.ts +2 -2
  299. package/dist/src/core/furnace-registration-ast.js +9 -9
  300. package/dist/src/core/furnace-registration-remove.d.ts +4 -4
  301. package/dist/src/core/furnace-registration-remove.js +6 -6
  302. package/dist/src/core/furnace-registration-validate.d.ts +2 -2
  303. package/dist/src/core/furnace-registration-validate.js +2 -2
  304. package/dist/src/core/furnace-registration.d.ts +5 -5
  305. package/dist/src/core/furnace-registration.js +7 -7
  306. package/dist/src/core/furnace-rollback.d.ts +1 -1
  307. package/dist/src/core/furnace-rollback.js +5 -5
  308. package/dist/src/core/furnace-stale-export.d.ts +17 -16
  309. package/dist/src/core/furnace-stale-export.js +16 -15
  310. package/dist/src/core/furnace-staleness.d.ts +2 -2
  311. package/dist/src/core/furnace-staleness.js +2 -2
  312. package/dist/src/core/furnace-state-persist.d.ts +10 -10
  313. package/dist/src/core/furnace-state-persist.js +10 -10
  314. package/dist/src/core/furnace-step-errors.d.ts +6 -6
  315. package/dist/src/core/furnace-step-errors.js +6 -6
  316. package/dist/src/core/furnace-validate-accessibility.js +14 -14
  317. package/dist/src/core/furnace-validate-compatibility.js +9 -9
  318. package/dist/src/core/furnace-validate-registration.d.ts +2 -2
  319. package/dist/src/core/furnace-validate-registration.js +13 -13
  320. package/dist/src/core/furnace-validate-structure.d.ts +1 -1
  321. package/dist/src/core/furnace-validate-structure.js +4 -4
  322. package/dist/src/core/furnace-validate.js +9 -9
  323. package/dist/src/core/furnace-version-drift.d.ts +5 -5
  324. package/dist/src/core/furnace-version-drift.js +5 -5
  325. package/dist/src/core/git-base.d.ts +4 -4
  326. package/dist/src/core/git-base.js +9 -9
  327. package/dist/src/core/git-diff-new-file.d.ts +4 -4
  328. package/dist/src/core/git-diff-new-file.js +8 -8
  329. package/dist/src/core/git-diff.d.ts +4 -4
  330. package/dist/src/core/git-diff.js +35 -34
  331. package/dist/src/core/git-file-ops.d.ts +6 -6
  332. package/dist/src/core/git-file-ops.js +7 -7
  333. package/dist/src/core/git-readonly-index.d.ts +12 -12
  334. package/dist/src/core/git-readonly-index.js +12 -12
  335. package/dist/src/core/git-status.d.ts +4 -4
  336. package/dist/src/core/git-status.js +4 -4
  337. package/dist/src/core/git.d.ts +3 -3
  338. package/dist/src/core/git.js +14 -14
  339. package/dist/src/core/harness-orphans.d.ts +17 -17
  340. package/dist/src/core/harness-orphans.js +20 -20
  341. package/dist/src/core/history-log.d.ts +3 -3
  342. package/dist/src/core/history-log.js +3 -3
  343. package/dist/src/core/license-headers.d.ts +19 -18
  344. package/dist/src/core/license-headers.js +29 -28
  345. package/dist/src/core/mach-build-artifacts.d.ts +21 -21
  346. package/dist/src/core/mach-build-artifacts.js +23 -23
  347. package/dist/src/core/mach-error-hints.d.ts +5 -5
  348. package/dist/src/core/mach-error-hints.js +13 -13
  349. package/dist/src/core/mach-known-noise-filter.d.ts +41 -38
  350. package/dist/src/core/mach-known-noise-filter.js +53 -50
  351. package/dist/src/core/mach-mozconfig.d.ts +6 -6
  352. package/dist/src/core/mach-mozconfig.js +15 -15
  353. package/dist/src/core/mach-python.d.ts +2 -1
  354. package/dist/src/core/mach-python.js +4 -3
  355. package/dist/src/core/mach-resource-shim.d.ts +12 -12
  356. package/dist/src/core/mach-resource-shim.js +20 -20
  357. package/dist/src/core/mach.d.ts +23 -23
  358. package/dist/src/core/mach.js +36 -36
  359. package/dist/src/core/marionette-port.d.ts +15 -13
  360. package/dist/src/core/marionette-port.js +34 -31
  361. package/dist/src/core/marionette-preflight.d.ts +6 -6
  362. package/dist/src/core/marionette-preflight.js +23 -23
  363. package/dist/src/core/markdown-table.d.ts +9 -9
  364. package/dist/src/core/markdown-table.js +14 -14
  365. package/dist/src/core/mochitest-server-port.d.ts +8 -8
  366. package/dist/src/core/mochitest-server-port.js +14 -14
  367. package/dist/src/core/module-resolution-preflight.d.ts +8 -8
  368. package/dist/src/core/module-resolution-preflight.js +11 -11
  369. package/dist/src/core/moz-manifest-helpers.d.ts +7 -7
  370. package/dist/src/core/moz-manifest-helpers.js +7 -7
  371. package/dist/src/core/moz-manifest-register.d.ts +1 -1
  372. package/dist/src/core/moz-manifest-register.js +2 -2
  373. package/dist/src/core/moz-manifest-rules.js +11 -11
  374. package/dist/src/core/moz-manifest-tokenizers.js +1 -1
  375. package/dist/src/core/ownership-table.d.ts +5 -5
  376. package/dist/src/core/ownership-table.js +7 -7
  377. package/dist/src/core/parser-fallback.d.ts +3 -3
  378. package/dist/src/core/parser-fallback.js +3 -3
  379. package/dist/src/core/patch-apply-fuzz.d.ts +5 -5
  380. package/dist/src/core/patch-apply-fuzz.js +9 -9
  381. package/dist/src/core/patch-apply.d.ts +9 -9
  382. package/dist/src/core/patch-apply.js +30 -30
  383. package/dist/src/core/patch-export-update.d.ts +4 -4
  384. package/dist/src/core/patch-export-update.js +3 -3
  385. package/dist/src/core/patch-export.d.ts +10 -10
  386. package/dist/src/core/patch-export.js +13 -13
  387. package/dist/src/core/patch-identifier-suggest.d.ts +1 -1
  388. package/dist/src/core/patch-identifier-suggest.js +4 -4
  389. package/dist/src/core/patch-lint-binary.d.ts +7 -7
  390. package/dist/src/core/patch-lint-cache.d.ts +2 -2
  391. package/dist/src/core/patch-lint-cache.js +13 -13
  392. package/dist/src/core/patch-lint-checkjs.d.ts +26 -26
  393. package/dist/src/core/patch-lint-checkjs.js +42 -41
  394. package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +8 -9
  395. package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -11
  396. package/dist/src/core/patch-lint-creators.d.ts +3 -3
  397. package/dist/src/core/patch-lint-creators.js +3 -3
  398. package/dist/src/core/patch-lint-cross.d.ts +13 -13
  399. package/dist/src/core/patch-lint-cross.js +21 -21
  400. package/dist/src/core/patch-lint-css.d.ts +1 -1
  401. package/dist/src/core/patch-lint-css.js +5 -5
  402. package/dist/src/core/patch-lint-diff-tag.d.ts +5 -5
  403. package/dist/src/core/patch-lint-diff-tag.js +5 -5
  404. package/dist/src/core/patch-lint-diff.d.ts +4 -4
  405. package/dist/src/core/patch-lint-diff.js +4 -4
  406. package/dist/src/core/patch-lint-file-size.d.ts +3 -3
  407. package/dist/src/core/patch-lint-file-size.js +3 -3
  408. package/dist/src/core/patch-lint-forward-registration.d.ts +4 -4
  409. package/dist/src/core/patch-lint-forward-registration.js +12 -12
  410. package/dist/src/core/patch-lint-jsdoc.d.ts +2 -2
  411. package/dist/src/core/patch-lint-jsdoc.js +11 -11
  412. package/dist/src/core/patch-lint-module-registration.d.ts +1 -1
  413. package/dist/src/core/patch-lint-module-registration.js +1 -1
  414. package/dist/src/core/patch-lint-mozbuild.d.ts +1 -1
  415. package/dist/src/core/patch-lint-mozbuild.js +10 -10
  416. package/dist/src/core/patch-lint-observer.d.ts +3 -3
  417. package/dist/src/core/patch-lint-observer.js +7 -7
  418. package/dist/src/core/patch-lint-ownership.d.ts +6 -6
  419. package/dist/src/core/patch-lint-ownership.js +6 -6
  420. package/dist/src/core/patch-lint-prettier.d.ts +6 -6
  421. package/dist/src/core/patch-lint-prettier.js +6 -6
  422. package/dist/src/core/patch-lint-queue-types.d.ts +1 -1
  423. package/dist/src/core/patch-lint-queue-types.js +1 -1
  424. package/dist/src/core/patch-lint-staged-registration.d.ts +2 -2
  425. package/dist/src/core/patch-lint-staged-registration.js +6 -6
  426. package/dist/src/core/patch-lint-unmanaged-companion.d.ts +23 -23
  427. package/dist/src/core/patch-lint-unmanaged-companion.js +26 -26
  428. package/dist/src/core/patch-lint.d.ts +27 -26
  429. package/dist/src/core/patch-lint.js +48 -46
  430. package/dist/src/core/patch-lock.d.ts +1 -1
  431. package/dist/src/core/patch-lock.js +8 -8
  432. package/dist/src/core/patch-manifest-consistency.d.ts +7 -7
  433. package/dist/src/core/patch-manifest-consistency.js +16 -17
  434. package/dist/src/core/patch-manifest-files-affected.d.ts +1 -1
  435. package/dist/src/core/patch-manifest-files-affected.js +3 -3
  436. package/dist/src/core/patch-manifest-io.d.ts +14 -14
  437. package/dist/src/core/patch-manifest-io.js +27 -27
  438. package/dist/src/core/patch-manifest-query.d.ts +1 -1
  439. package/dist/src/core/patch-manifest-query.js +4 -4
  440. package/dist/src/core/patch-manifest-resolve.d.ts +5 -5
  441. package/dist/src/core/patch-manifest-resolve.js +7 -7
  442. package/dist/src/core/patch-manifest-validate.js +3 -3
  443. package/dist/src/core/patch-manifest.d.ts +2 -2
  444. package/dist/src/core/patch-manifest.js +2 -2
  445. package/dist/src/core/patch-parse.d.ts +14 -14
  446. package/dist/src/core/patch-parse.js +16 -16
  447. package/dist/src/core/patch-registration-refs.d.ts +4 -4
  448. package/dist/src/core/patch-registration-refs.js +7 -7
  449. package/dist/src/core/patch-transform.d.ts +8 -8
  450. package/dist/src/core/patch-transform.js +13 -13
  451. package/dist/src/core/process-cpu-time.d.ts +1 -1
  452. package/dist/src/core/process-cpu-time.js +5 -5
  453. package/dist/src/core/rebase-session.d.ts +7 -7
  454. package/dist/src/core/rebase-session.js +8 -8
  455. package/dist/src/core/register-result.d.ts +1 -1
  456. package/dist/src/core/register-result.js +1 -1
  457. package/dist/src/core/register-scaffold.d.ts +2 -2
  458. package/dist/src/core/register-scaffold.js +3 -3
  459. package/dist/src/core/register-shared-css.d.ts +3 -3
  460. package/dist/src/core/register-shared-css.js +4 -4
  461. package/dist/src/core/register-xpcshell-test.d.ts +2 -2
  462. package/dist/src/core/register-xpcshell-test.js +2 -2
  463. package/dist/src/core/run-log-redact.d.ts +12 -12
  464. package/dist/src/core/run-log-redact.js +16 -16
  465. package/dist/src/core/run-log.d.ts +9 -9
  466. package/dist/src/core/run-log.js +14 -14
  467. package/dist/src/core/shared-ftl.d.ts +2 -2
  468. package/dist/src/core/shared-ftl.js +6 -6
  469. package/dist/src/core/signal-critical.d.ts +2 -2
  470. package/dist/src/core/signal-critical.js +2 -2
  471. package/dist/src/core/smoke-patterns.d.ts +5 -5
  472. package/dist/src/core/smoke-patterns.js +9 -9
  473. package/dist/src/core/state-file.d.ts +3 -3
  474. package/dist/src/core/status-binary.d.ts +8 -8
  475. package/dist/src/core/status-binary.js +12 -12
  476. package/dist/src/core/status-classify.d.ts +17 -17
  477. package/dist/src/core/status-classify.js +11 -11
  478. package/dist/src/core/test-changed-prefs.d.ts +12 -12
  479. package/dist/src/core/test-changed-prefs.js +15 -15
  480. package/dist/src/core/test-harness-crash.d.ts +39 -39
  481. package/dist/src/core/test-harness-crash.js +67 -67
  482. package/dist/src/core/test-harness-output.d.ts +7 -7
  483. package/dist/src/core/test-harness-output.js +7 -7
  484. package/dist/src/core/test-harness-verdict-notes.d.ts +13 -14
  485. package/dist/src/core/test-harness-verdict-notes.js +4 -4
  486. package/dist/src/core/test-path-scope.d.ts +8 -8
  487. package/dist/src/core/test-path-scope.js +11 -11
  488. package/dist/src/core/test-stale-check.d.ts +22 -21
  489. package/dist/src/core/test-stale-check.js +29 -28
  490. package/dist/src/core/test-stale-symlink.d.ts +1 -1
  491. package/dist/src/core/test-stale-symlink.js +1 -1
  492. package/dist/src/core/test-stall-triage.d.ts +9 -9
  493. package/dist/src/core/test-stall-triage.js +22 -22
  494. package/dist/src/core/token-category.d.ts +4 -4
  495. package/dist/src/core/token-category.js +13 -12
  496. package/dist/src/core/token-coverage.js +4 -5
  497. package/dist/src/core/token-dark-mode.d.ts +17 -9
  498. package/dist/src/core/token-dark-mode.js +41 -28
  499. package/dist/src/core/token-docs.d.ts +1 -1
  500. package/dist/src/core/token-inventory.d.ts +6 -6
  501. package/dist/src/core/token-inventory.js +7 -7
  502. package/dist/src/core/token-manager.d.ts +3 -3
  503. package/dist/src/core/token-manager.js +21 -21
  504. package/dist/src/core/token-scaffold.d.ts +4 -4
  505. package/dist/src/core/token-scaffold.js +4 -4
  506. package/dist/src/core/token-variant.d.ts +14 -14
  507. package/dist/src/core/token-variant.js +32 -32
  508. package/dist/src/core/toolchain-preflight.d.ts +15 -15
  509. package/dist/src/core/toolchain-preflight.js +22 -22
  510. package/dist/src/core/tree-cow.d.ts +3 -3
  511. package/dist/src/core/tree-cow.js +6 -6
  512. package/dist/src/core/tree-guard.d.ts +3 -3
  513. package/dist/src/core/tree-guard.js +23 -23
  514. package/dist/src/core/tree-store.d.ts +15 -15
  515. package/dist/src/core/tree-store.js +35 -33
  516. package/dist/src/core/typecheck-shim.d.ts +16 -15
  517. package/dist/src/core/typecheck-shim.js +26 -25
  518. package/dist/src/core/typecheck.d.ts +12 -12
  519. package/dist/src/core/typecheck.js +31 -31
  520. package/dist/src/core/wire-destroy.d.ts +2 -2
  521. package/dist/src/core/wire-destroy.js +5 -5
  522. package/dist/src/core/wire-dom-fragment.d.ts +3 -3
  523. package/dist/src/core/wire-dom-fragment.js +6 -6
  524. package/dist/src/core/wire-init.d.ts +2 -2
  525. package/dist/src/core/wire-init.js +7 -7
  526. package/dist/src/core/wire-subscript.d.ts +1 -1
  527. package/dist/src/core/wire-subscript.js +3 -3
  528. package/dist/src/core/wire-utils.d.ts +9 -9
  529. package/dist/src/core/wire-utils.js +11 -11
  530. package/dist/src/core/xpcshell-appdir.d.ts +20 -20
  531. package/dist/src/core/xpcshell-appdir.js +26 -26
  532. package/dist/src/core/xpcshell-profile-dir.d.ts +3 -3
  533. package/dist/src/core/xpcshell-profile-dir.js +7 -7
  534. package/dist/src/errors/base.d.ts +22 -21
  535. package/dist/src/errors/base.js +22 -21
  536. package/dist/src/errors/build.d.ts +6 -6
  537. package/dist/src/errors/build.js +6 -6
  538. package/dist/src/errors/codes.d.ts +10 -10
  539. package/dist/src/errors/codes.js +10 -10
  540. package/dist/src/errors/furnace.d.ts +2 -2
  541. package/dist/src/errors/git.d.ts +1 -1
  542. package/dist/src/errors/git.js +1 -1
  543. package/dist/src/errors/patch.d.ts +3 -3
  544. package/dist/src/errors/patch.js +3 -3
  545. package/dist/src/errors/rebase.d.ts +1 -1
  546. package/dist/src/errors/rebase.js +1 -1
  547. package/dist/src/errors/run.d.ts +1 -1
  548. package/dist/src/errors/run.js +1 -1
  549. package/dist/src/index.d.ts +4 -4
  550. package/dist/src/index.js +4 -4
  551. package/dist/src/types/commands/options.d.ts +86 -85
  552. package/dist/src/types/commands/patches.d.ts +19 -19
  553. package/dist/src/types/commands/project.d.ts +3 -3
  554. package/dist/src/types/config.d.ts +24 -23
  555. package/dist/src/types/furnace.d.ts +17 -17
  556. package/dist/src/types/json.d.ts +3 -3
  557. package/dist/src/types/json.js +2 -2
  558. package/dist/src/types/typecheck.d.ts +3 -3
  559. package/dist/src/utils/assert.d.ts +1 -1
  560. package/dist/src/utils/assert.js +6 -6
  561. package/dist/src/utils/build-info.d.ts +5 -5
  562. package/dist/src/utils/build-info.js +6 -6
  563. package/dist/src/utils/child-env.d.ts +5 -5
  564. package/dist/src/utils/child-env.js +5 -5
  565. package/dist/src/utils/concurrency.d.ts +2 -2
  566. package/dist/src/utils/concurrency.js +2 -2
  567. package/dist/src/utils/elapsed.js +1 -1
  568. package/dist/src/utils/errors.d.ts +8 -8
  569. package/dist/src/utils/errors.js +8 -8
  570. package/dist/src/utils/fs.d.ts +1 -1
  571. package/dist/src/utils/fs.js +8 -8
  572. package/dist/src/utils/line-dispatch.d.ts +3 -3
  573. package/dist/src/utils/line-dispatch.js +5 -5
  574. package/dist/src/utils/logger.d.ts +4 -4
  575. package/dist/src/utils/logger.js +11 -11
  576. package/dist/src/utils/machine-output.js +2 -2
  577. package/dist/src/utils/options.d.ts +13 -13
  578. package/dist/src/utils/options.js +20 -20
  579. package/dist/src/utils/package-root.js +2 -2
  580. package/dist/src/utils/paths.d.ts +4 -4
  581. package/dist/src/utils/paths.js +4 -4
  582. package/dist/src/utils/process-group.d.ts +8 -8
  583. package/dist/src/utils/process-group.js +19 -19
  584. package/dist/src/utils/process.d.ts +34 -33
  585. package/dist/src/utils/process.js +20 -19
  586. package/dist/src/utils/ps-duration.d.ts +4 -4
  587. package/dist/src/utils/ps-duration.js +6 -6
  588. package/dist/src/utils/regex.d.ts +4 -4
  589. package/dist/src/utils/regex.js +7 -7
  590. package/dist/src/utils/sleep.d.ts +7 -7
  591. package/dist/src/utils/sleep.js +7 -7
  592. package/dist/src/utils/stdio-drain.d.ts +7 -7
  593. package/dist/src/utils/stdio-drain.js +8 -8
  594. package/dist/src/utils/validation.d.ts +11 -12
  595. package/dist/src/utils/validation.js +20 -21
  596. package/docs/README.md +2 -2
  597. package/docs/configuration.md +120 -114
  598. package/docs/exit-codes.md +63 -58
  599. package/docs/furnace.md +20 -19
  600. package/docs/lifecycle-invariants.md +412 -251
  601. package/docs/machine-output.md +33 -32
  602. package/docs/patch-workflow.md +48 -45
  603. package/docs/run-logs.md +62 -58
  604. package/docs/testing.md +101 -101
  605. package/docs/verification-trees.md +23 -22
  606. package/package.json +2 -2
@@ -1,29 +1,29 @@
1
1
  /**
2
- * Preflight census of ORPHANED test-harness helper processes.
2
+ * Preflight census of orphaned test-harness helper processes.
3
3
  *
4
4
  * Stopping a long mochitest run mid-flight does not necessarily take its
5
5
  * helpers with it. A downstream incident left `xpcshell` (the harness
6
6
  * httpd, pegged at 100% CPU), `pywebsocket`, `ssltunnel` and `moz-http2`
7
- * alive for an hour. Every subsequent run crawled — a three-second suite
8
- * took six minutes of wall clock and audio-start waits timed out — and
9
- * nothing in FireForge's output connected the slowness to the survivors.
7
+ * alive for an hour. Every subsequent run crawled: a three-second suite
8
+ * took six minutes of wall clock and audio-start waits timed out. Nothing
9
+ * in FireForge's output connected the slowness to the survivors.
10
10
  * The hour was spent mis-attributing it to the change under test.
11
11
  *
12
12
  * Visibility alone would have collapsed that hour, which is why the census
13
13
  * runs by default and the kill does not. Two rules keep it honest:
14
14
  *
15
- * - The census runs at PREFLIGHT, before this run spawns anything, so
16
- * every matching process is by construction a survivor of an earlier
17
- * run. No age heuristic is needed, and none is used.
15
+ * - The census runs at preflight, before this run spawns anything, so
16
+ * every matching process must be a survivor of an earlier run. No age
17
+ * heuristic is needed, and none is used.
18
18
  * - A match must be anchored to a Firefox OBJDIR. `xpcshell` and
19
- * `server.js` are far too generic on their own; the same rule
19
+ * `server.js` are far too generic on their own. The same rule
20
20
  * `mochitest-server-port.ts` applies to the httpd holder applies here,
21
- * for the same reason — FireForge has no business reporting, let alone
21
+ * for the same reason. FireForge has no business reporting, let alone
22
22
  * terminating, a process it cannot attribute to the harness.
23
23
  *
24
24
  * `--reap-orphans` opts into termination. Without it the census is
25
25
  * report-only, exactly like the `Orphaned harness workers` doctor check
26
- * (which covers a DIFFERENT shape: reparented Python multiprocessing
26
+ * (which covers a different shape: reparented Python multiprocessing
27
27
  * workers, matched on PPID 1 and accumulated CPU time).
28
28
  */
29
29
  /** One surviving harness helper process. */
@@ -38,10 +38,10 @@ export interface OrphanedHarnessProcess {
38
38
  }
39
39
  /**
40
40
  * Scans `ps -axo pid=,ppid=,etime=,command=` output for surviving harness
41
- * helpers. Pure — fixture-testable without spawning anything.
41
+ * helpers. Pure, so it is fixture-testable without spawning anything.
42
42
  *
43
43
  * @param psOutput - Raw `ps` output
44
- * @param objDir - Absolute objdir of this project, when known; widens the
44
+ * @param objDir - Absolute objdir of this project, when known. Widens the
45
45
  * provenance test beyond the generic `obj-…` path segment
46
46
  * @param selfPid - This process's pid, excluded so FireForge cannot report
47
47
  * itself
@@ -57,11 +57,11 @@ export declare function formatOrphanReport(orphans: readonly OrphanedHarnessProc
57
57
  * Preflight census of surviving harness helpers, run before a test
58
58
  * dispatch.
59
59
  *
60
- * Best-effort by construction: a host without a usable `ps` (Windows, a
61
- * locked-down container) logs at verbose and runs exactly as before. It
62
- * never refuses a run — unlike the server-port preflight, a survivor here
63
- * degrades performance rather than making the run dispatch against the
64
- * wrong server, so the correct response is to say so loudly, not to stop.
60
+ * Best-effort: a host without a usable `ps` (Windows, a locked-down
61
+ * container) logs at verbose and runs exactly as before. It never refuses a
62
+ * run. Unlike the server-port preflight, a survivor here degrades
63
+ * performance rather than making the run dispatch against the wrong server,
64
+ * so the correct response is to say so loudly rather than to stop.
65
65
  *
66
66
  * @param objDir - Absolute objdir of this project, when known
67
67
  * @param options - `reap` terminates each recognized survivor (SIGTERM,
@@ -1,30 +1,30 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * Preflight census of ORPHANED test-harness helper processes.
3
+ * Preflight census of orphaned test-harness helper processes.
4
4
  *
5
5
  * Stopping a long mochitest run mid-flight does not necessarily take its
6
6
  * helpers with it. A downstream incident left `xpcshell` (the harness
7
7
  * httpd, pegged at 100% CPU), `pywebsocket`, `ssltunnel` and `moz-http2`
8
- * alive for an hour. Every subsequent run crawled — a three-second suite
9
- * took six minutes of wall clock and audio-start waits timed out — and
10
- * nothing in FireForge's output connected the slowness to the survivors.
8
+ * alive for an hour. Every subsequent run crawled: a three-second suite
9
+ * took six minutes of wall clock and audio-start waits timed out. Nothing
10
+ * in FireForge's output connected the slowness to the survivors.
11
11
  * The hour was spent mis-attributing it to the change under test.
12
12
  *
13
13
  * Visibility alone would have collapsed that hour, which is why the census
14
14
  * runs by default and the kill does not. Two rules keep it honest:
15
15
  *
16
- * - The census runs at PREFLIGHT, before this run spawns anything, so
17
- * every matching process is by construction a survivor of an earlier
18
- * run. No age heuristic is needed, and none is used.
16
+ * - The census runs at preflight, before this run spawns anything, so
17
+ * every matching process must be a survivor of an earlier run. No age
18
+ * heuristic is needed, and none is used.
19
19
  * - A match must be anchored to a Firefox OBJDIR. `xpcshell` and
20
- * `server.js` are far too generic on their own; the same rule
20
+ * `server.js` are far too generic on their own. The same rule
21
21
  * `mochitest-server-port.ts` applies to the httpd holder applies here,
22
- * for the same reason — FireForge has no business reporting, let alone
22
+ * for the same reason. FireForge has no business reporting, let alone
23
23
  * terminating, a process it cannot attribute to the harness.
24
24
  *
25
25
  * `--reap-orphans` opts into termination. Without it the census is
26
26
  * report-only, exactly like the `Orphaned harness workers` doctor check
27
- * (which covers a DIFFERENT shape: reparented Python multiprocessing
27
+ * (which covers a different shape: reparented Python multiprocessing
28
28
  * workers, matched on PPID 1 and accumulated CPU time).
29
29
  */
30
30
  import { toError } from '../utils/errors.js';
@@ -34,7 +34,7 @@ import { parsePsDuration } from '../utils/ps-duration.js';
34
34
  import { sleep } from '../utils/sleep.js';
35
35
  /**
36
36
  * Harness helper executables/scripts. Every one of these is started by the
37
- * mochitest/xpcshell harness and is expected to die with it; none of them
37
+ * mochitest/xpcshell harness and is expected to die with it. None of them
38
38
  * is a thing a developer runs by hand.
39
39
  */
40
40
  const HARNESS_HELPER_PATTERN = /\b(?:xpcshell|pywebsocket\w*|websocket_server\.py|ssltunnel|moz-http2|http2_server|httpd\.js|server\.js|runtests\.py|runxpcshelltests\.py)\b/;
@@ -48,10 +48,10 @@ function isObjdirAnchored(command, objDir) {
48
48
  }
49
49
  /**
50
50
  * Scans `ps -axo pid=,ppid=,etime=,command=` output for surviving harness
51
- * helpers. Pure — fixture-testable without spawning anything.
51
+ * helpers. Pure, so it is fixture-testable without spawning anything.
52
52
  *
53
53
  * @param psOutput - Raw `ps` output
54
- * @param objDir - Absolute objdir of this project, when known; widens the
54
+ * @param objDir - Absolute objdir of this project, when known. Widens the
55
55
  * provenance test beyond the generic `obj-…` path segment
56
56
  * @param selfPid - This process's pid, excluded so FireForge cannot report
57
57
  * itself
@@ -116,11 +116,11 @@ async function listSystemProcesses() {
116
116
  * Preflight census of surviving harness helpers, run before a test
117
117
  * dispatch.
118
118
  *
119
- * Best-effort by construction: a host without a usable `ps` (Windows, a
120
- * locked-down container) logs at verbose and runs exactly as before. It
121
- * never refuses a run — unlike the server-port preflight, a survivor here
122
- * degrades performance rather than making the run dispatch against the
123
- * wrong server, so the correct response is to say so loudly, not to stop.
119
+ * Best-effort: a host without a usable `ps` (Windows, a locked-down
120
+ * container) logs at verbose and runs exactly as before. It never refuses a
121
+ * run. Unlike the server-port preflight, a survivor here degrades
122
+ * performance rather than making the run dispatch against the wrong server,
123
+ * so the correct response is to say so loudly rather than to stop.
124
124
  *
125
125
  * @param objDir - Absolute objdir of this project, when known
126
126
  * @param options - `reap` terminates each recognized survivor (SIGTERM,
@@ -151,8 +151,8 @@ export async function reportOrphanedHarnessProcesses(objDir, options = {}) {
151
151
  }
152
152
  /**
153
153
  * Terminates each census entry: SIGTERM first, then SIGKILL for anything
154
- * still alive. Failures are reported, never thrown — a process that exited
155
- * between the census and the signal is the common case, not an error.
154
+ * still alive. Failures are reported, never thrown. A process that exited
155
+ * between the census and the signal is the common case rather than an error.
156
156
  */
157
157
  async function reapOrphanedHarnessProcesses(orphans) {
158
158
  for (const orphan of orphans) {
@@ -1,11 +1,11 @@
1
1
  import type { HistoryEntry } from './destructive.js';
2
2
  /**
3
- * Appends a history entry for a mutation that has ALREADY committed, degrading
3
+ * Appends a history entry for a mutation that has already committed, degrading
4
4
  * to a warning when the log cannot be written.
5
5
  *
6
6
  * Eleven call sites across `export-flow` and the `patch` subcommands had each
7
7
  * grown the same `try { await appendHistory(...) } catch { warn(...) }` block.
8
- * The swallow is deliberate and load-bearing: the patch files and the manifest
8
+ * The swallow is intentional: the patch files and the manifest
9
9
  * are already on disk by the time this runs, so letting a failed log write
10
10
  * reject would report a completed, irreversible mutation as a failure and send
11
11
  * the operator looking for damage that is not there. Because that reasoning is
@@ -13,7 +13,7 @@ import type { HistoryEntry } from './destructive.js';
13
13
  * @param patchesDir - The `patches/` directory holding the history log.
14
14
  * @param entry - The entry to append.
15
15
  * @param context - What just committed, rendered into
16
- * `History log append failed after <context>: <reason>` — e.g.
16
+ * `History log append failed after <context>: <reason>`, e.g.
17
17
  * `patch tier committed (007-foo.patch)`.
18
18
  */
19
19
  export declare function appendHistoryBestEffort(patchesDir: string, entry: HistoryEntry, context: string): Promise<void>;
@@ -3,12 +3,12 @@ import { toError } from '../utils/errors.js';
3
3
  import { warn } from '../utils/logger.js';
4
4
  import { appendHistory } from './destructive.js';
5
5
  /**
6
- * Appends a history entry for a mutation that has ALREADY committed, degrading
6
+ * Appends a history entry for a mutation that has already committed, degrading
7
7
  * to a warning when the log cannot be written.
8
8
  *
9
9
  * Eleven call sites across `export-flow` and the `patch` subcommands had each
10
10
  * grown the same `try { await appendHistory(...) } catch { warn(...) }` block.
11
- * The swallow is deliberate and load-bearing: the patch files and the manifest
11
+ * The swallow is intentional: the patch files and the manifest
12
12
  * are already on disk by the time this runs, so letting a failed log write
13
13
  * reject would report a completed, irreversible mutation as a failure and send
14
14
  * the operator looking for damage that is not there. Because that reasoning is
@@ -16,7 +16,7 @@ import { appendHistory } from './destructive.js';
16
16
  * @param patchesDir - The `patches/` directory holding the history log.
17
17
  * @param entry - The entry to append.
18
18
  * @param context - What just committed, rendered into
19
- * `History log append failed after <context>: <reason>` — e.g.
19
+ * `History log append failed after <context>: <reason>`, e.g.
20
20
  * `patch tier committed (007-foo.patch)`.
21
21
  */
22
22
  export async function appendHistoryBestEffort(patchesDir, entry, context) {
@@ -1,9 +1,9 @@
1
1
  import type { ProjectLicense } from '../types/config.js';
2
2
  /**
3
3
  * Comment style for license header formatting.
4
- * - `js` — `// ...` line comments
5
- * - `css` — block comments
6
- * - `hash` — `# ...` line comments (FTL, shell, etc.)
4
+ * - `js`: `// ...` line comments
5
+ * - `css`: block comments
6
+ * - `hash`: `# ...` line comments (FTL, shell, etc.)
7
7
  */
8
8
  export type CommentStyle = 'js' | 'css' | 'hash';
9
9
  /** Default license when fireforge.json omits the license field. */
@@ -23,19 +23,19 @@ export declare function getLicenseHeader(license: ProjectLicense, style: Comment
23
23
  *
24
24
  * For `js` files, MPL-2.0 is also accepted in the upstream Mozilla block-
25
25
  * comment form (`/* ... *\/`) used by the Firefox source tree, not just the
26
- * `// ` line-comment form `getLicenseHeader` emits — otherwise a new JS file
26
+ * `// ` line-comment form `getLicenseHeader` emits. Otherwise a new JS file
27
27
  * copied from upstream Firefox hits `missing-license-header` even with a
28
28
  * verbatim standard MPL header.
29
29
  *
30
30
  * Editor-directive block comments (`/* -*- ... -*- *\/`, `/* vim: ... *\/`)
31
31
  * leading the file are tolerated: Mozilla's canonical layout puts those on
32
- * lines 1–2 with the MPL header on lines 3+, which a raw `startsWith` check
32
+ * lines 1 and 2 with the MPL header on lines 3+, which a raw `startsWith` check
33
33
  * would miss.
34
34
  *
35
35
  * The MPL-2.0 header is additionally matched on normalized whitespace (see
36
36
  * {@link normalizeCommentHead}) so upstream files using the older Mozilla
37
- * wrap — breaking after "file," instead of "with this" — are accepted too;
38
- * only the wrap position differs, never the wording.
37
+ * wrap (breaking after "file," instead of "with this") are accepted too.
38
+ * Only the wrap position differs, never the wording.
39
39
  *
40
40
  * @param content - File content to check
41
41
  * @param style - Comment syntax of the file
@@ -44,18 +44,18 @@ export declare function hasAnyLicenseHeader(content: string, style: CommentStyle
44
44
  /**
45
45
  * Returns true if `content` starts with the verbatim upstream Mozilla
46
46
  * MPL-2.0 block header (`/* This Source Code Form … *\/`), optionally
47
- * preceded by editor-directive comments — the exact shape a JS file copied
47
+ * preceded by editor-directive comments, the exact shape a JS file copied
48
48
  * from the Firefox source tree carries.
49
49
  *
50
- * Deliberately independent of the project license: a new JS file that
50
+ * Independent of the project license: a new JS file that
51
51
  * legitimately keeps its upstream MPL block header is valid in an
52
52
  * EUPL/GPL/0BSD project too.
53
53
  *
54
54
  * Matching is wrap-agnostic: after the exact `startsWith` fast path, the
55
55
  * leading block comment is compared on normalized whitespace (see
56
- * {@link normalizeCommentHead}) so the older upstream wrap — breaking after
57
- * "file," instead of "with this", as `ext-browser.js` ships — passes too.
58
- * Only the line-break position may differ; altered wording still rejects.
56
+ * {@link normalizeCommentHead}) so the older upstream wrap (breaking after
57
+ * "file," instead of "with this", as `ext-browser.js` ships) passes too.
58
+ * Only the line-break position may differ. Altered wording still rejects.
59
59
  *
60
60
  * @param content - File content to check
61
61
  */
@@ -69,7 +69,7 @@ export declare function hasUpstreamMplBlockHeader(content: string): boolean;
69
69
  export declare function hasAnyLicenseHeaderAnyStyle(content: string): boolean;
70
70
  /**
71
71
  * Returns true if the first few lines of `content` contain a recognized
72
- * upstream license identifier string — Mozilla's MPL boilerplate, an SPDX
72
+ * upstream license identifier string: Mozilla's MPL boilerplate, an SPDX
73
73
  * tag, the common permissive/copyleft license names, or the CC0
74
74
  * public-domain dedication upstream test files carry.
75
75
  *
@@ -78,17 +78,18 @@ export declare function hasAnyLicenseHeaderAnyStyle(content: string): boolean;
78
78
  */
79
79
  export declare function containsUpstreamLicenseText(content: string, maxLines?: number): boolean;
80
80
  /**
81
- * Returns true when the head of `content` carries a recognized THIRD-PARTY
81
+ * Returns true when the head of `content` carries a recognized third-party
82
82
  * permissive license banner (MIT / ISC / BSD-2 / BSD-3 / Apache-2.0) or the
83
83
  * CC0 public-domain dedication, in any comment style. Used by `export` to
84
84
  * treat such files as vendored: offering to prepend the project's own
85
- * license header onto a byte-identity-pinned upstream bundle — or onto a
86
- * test file Mozilla dedicated to the public domain — would mislicense code
85
+ * license header onto a byte-identity-pinned upstream bundle, or onto a
86
+ * test file Mozilla dedicated to the public domain, would mislicense code
87
87
  * the project does not own.
88
88
  *
89
89
  * @param content - File content to check
90
- * @param maxLines - Number of leading lines to inspect (default 30 — full
91
- * MIT/BSD license texts run longer than the 10-line project-header scan)
90
+ * @param maxLines - Number of leading lines to inspect (default 30, because
91
+ * full MIT/BSD license texts run longer than the 10-line project-header
92
+ * scan)
92
93
  */
93
94
  export declare function hasThirdPartyPermissiveBanner(content: string, maxLines?: number): boolean;
94
95
  /**
@@ -55,7 +55,7 @@ export function getLicenseHeader(license, style) {
55
55
  }
56
56
  /**
57
57
  * Single-line `/* ... *\/` block comments containing either an Emacs
58
- * file-mode marker (`-*-`) or a vim modeline (`vim:`) — Mozilla's
58
+ * file-mode marker (`-*-`) or a vim modeline (`vim:`). These are Mozilla's
59
59
  * canonical first-line editor directives that legitimately precede the
60
60
  * license header in many Firefox source files.
61
61
  *
@@ -69,9 +69,9 @@ const EDITOR_DIRECTIVE_BLOCK_COMMENT = /^[ \t]*\/\*[^\r\n]*?(?:-\*-|\bvim:)[^\r\
69
69
  *
70
70
  * Mozilla's coding convention places editor directives like
71
71
  * `/* -*- Mode: javascript; ... -*- *\/` and `/* vim: set ... *\/` on
72
- * lines 1–2, with the canonical license header following on lines 3+.
72
+ * lines 1 and 2, with the canonical license header following on lines 3+.
73
73
  * The raw `content.startsWith(...)` check used by {@link hasAnyLicenseHeader}
74
- * never matches in that shape; this helper lets the caller test the
74
+ * never matches in that shape. This helper lets the caller test the
75
75
  * post-directive prefix as a fallback.
76
76
  *
77
77
  * @param content - File content to strip
@@ -100,15 +100,15 @@ function normalizeText(text) {
100
100
  */
101
101
  const MPL_HEADER_NORMALIZED = normalizeText(HEADER_LINES['MPL-2.0'].join(' '));
102
102
  /**
103
- * Extracts ONLY the leading comment span of `content` for the given
103
+ * Extracts only the leading comment span of `content` for the given
104
104
  * comment style and returns it whitespace-normalized:
105
105
  *
106
- * - `js`: a leading run of `//` lines (markers stripped), or — when the
107
- * file opens with a block comment instead — the first
108
- * `/* … *\/` block;
106
+ * - `js`: a leading run of `//` lines (markers stripped), or (when the
107
+ * file opens with a block comment instead) the first
108
+ * `/* … *\/` block.
109
109
  * - `css`: the first `/* … *\/` block, with the ` * ` continuation-line
110
110
  * prefixes stripped (same collapsing
111
- * {@link normalizeLicenseHeadForScan} does);
111
+ * {@link normalizeLicenseHeadForScan} does).
112
112
  * - `hash`: a leading run of `#` lines (markers stripped).
113
113
  *
114
114
  * A non-comment first line yields `''`. This lets callers accept a known
@@ -145,19 +145,19 @@ function normalizeCommentHead(content, style) {
145
145
  *
146
146
  * For `js` files, MPL-2.0 is also accepted in the upstream Mozilla block-
147
147
  * comment form (`/* ... *\/`) used by the Firefox source tree, not just the
148
- * `// ` line-comment form `getLicenseHeader` emits — otherwise a new JS file
148
+ * `// ` line-comment form `getLicenseHeader` emits. Otherwise a new JS file
149
149
  * copied from upstream Firefox hits `missing-license-header` even with a
150
150
  * verbatim standard MPL header.
151
151
  *
152
152
  * Editor-directive block comments (`/* -*- ... -*- *\/`, `/* vim: ... *\/`)
153
153
  * leading the file are tolerated: Mozilla's canonical layout puts those on
154
- * lines 1–2 with the MPL header on lines 3+, which a raw `startsWith` check
154
+ * lines 1 and 2 with the MPL header on lines 3+, which a raw `startsWith` check
155
155
  * would miss.
156
156
  *
157
157
  * The MPL-2.0 header is additionally matched on normalized whitespace (see
158
158
  * {@link normalizeCommentHead}) so upstream files using the older Mozilla
159
- * wrap — breaking after "file," instead of "with this" — are accepted too;
160
- * only the wrap position differs, never the wording.
159
+ * wrap (breaking after "file," instead of "with this") are accepted too.
160
+ * Only the wrap position differs, never the wording.
161
161
  *
162
162
  * @param content - File content to check
163
163
  * @param style - Comment syntax of the file
@@ -181,18 +181,18 @@ export function hasAnyLicenseHeader(content, style) {
181
181
  /**
182
182
  * Returns true if `content` starts with the verbatim upstream Mozilla
183
183
  * MPL-2.0 block header (`/* This Source Code Form … *\/`), optionally
184
- * preceded by editor-directive comments — the exact shape a JS file copied
184
+ * preceded by editor-directive comments, the exact shape a JS file copied
185
185
  * from the Firefox source tree carries.
186
186
  *
187
- * Deliberately independent of the project license: a new JS file that
187
+ * Independent of the project license: a new JS file that
188
188
  * legitimately keeps its upstream MPL block header is valid in an
189
189
  * EUPL/GPL/0BSD project too.
190
190
  *
191
191
  * Matching is wrap-agnostic: after the exact `startsWith` fast path, the
192
192
  * leading block comment is compared on normalized whitespace (see
193
- * {@link normalizeCommentHead}) so the older upstream wrap — breaking after
194
- * "file," instead of "with this", as `ext-browser.js` ships — passes too.
195
- * Only the line-break position may differ; altered wording still rejects.
193
+ * {@link normalizeCommentHead}) so the older upstream wrap (breaking after
194
+ * "file," instead of "with this", as `ext-browser.js` ships) passes too.
195
+ * Only the line-break position may differ. Altered wording still rejects.
196
196
  *
197
197
  * @param content - File content to check
198
198
  */
@@ -233,23 +233,23 @@ function normalizeLicenseHeadForScan(head) {
233
233
  *
234
234
  * - the prose (`Any copyright is dedicated to the Public Domain.`), which
235
235
  * the block, `//` and `#` comment forms all reduce to after
236
- * {@link normalizeLicenseHeadForScan};
236
+ * {@link normalizeLicenseHeadForScan}.
237
237
  * - the dedication URL (`creativecommons.org/publicdomain/zero/1.0/`, with
238
- * either scheme);
238
+ * either scheme).
239
239
  * - the SPDX identifier `CC0-1.0`.
240
240
  *
241
- * Deliberately narrow: a bare "public domain" mention, a different Creative
241
+ * Narrow on purpose: a bare "public domain" mention, a different Creative
242
242
  * Commons license (`licenses/by/4.0/`, `CC-BY-4.0`) or a made-up
243
- * `publicdomain/zero/2.0/` is NOT a CC0 dedication and must not be
243
+ * `publicdomain/zero/2.0/` is not a CC0 dedication and must not be
244
244
  * accepted as one. `scanText` must already be normalized (and may be
245
- * lowercased — the match is case-insensitive).
245
+ * lowercased, since the match is case-insensitive).
246
246
  */
247
247
  function hasCc0Dedication(scanText) {
248
248
  return /dedicated to the public domain|creativecommons\.org\/publicdomain\/zero\/1\.0|spdx-license-identifier:\s*cc0-1\.0\b/i.test(scanText);
249
249
  }
250
250
  /**
251
251
  * Returns true if the first few lines of `content` contain a recognized
252
- * upstream license identifier string — Mozilla's MPL boilerplate, an SPDX
252
+ * upstream license identifier string: Mozilla's MPL boilerplate, an SPDX
253
253
  * tag, the common permissive/copyleft license names, or the CC0
254
254
  * public-domain dedication upstream test files carry.
255
255
  *
@@ -269,17 +269,18 @@ export function containsUpstreamLicenseText(content, maxLines = 10) {
269
269
  return markers.some((marker) => scanText.includes(marker)) || hasCc0Dedication(scanText);
270
270
  }
271
271
  /**
272
- * Returns true when the head of `content` carries a recognized THIRD-PARTY
272
+ * Returns true when the head of `content` carries a recognized third-party
273
273
  * permissive license banner (MIT / ISC / BSD-2 / BSD-3 / Apache-2.0) or the
274
274
  * CC0 public-domain dedication, in any comment style. Used by `export` to
275
275
  * treat such files as vendored: offering to prepend the project's own
276
- * license header onto a byte-identity-pinned upstream bundle — or onto a
277
- * test file Mozilla dedicated to the public domain — would mislicense code
276
+ * license header onto a byte-identity-pinned upstream bundle, or onto a
277
+ * test file Mozilla dedicated to the public domain, would mislicense code
278
278
  * the project does not own.
279
279
  *
280
280
  * @param content - File content to check
281
- * @param maxLines - Number of leading lines to inspect (default 30 — full
282
- * MIT/BSD license texts run longer than the 10-line project-header scan)
281
+ * @param maxLines - Number of leading lines to inspect (default 30, because
282
+ * full MIT/BSD license texts run longer than the 10-line project-header
283
+ * scan)
283
284
  */
284
285
  export function hasThirdPartyPermissiveBanner(content, maxLines = 30) {
285
286
  const head = content.split('\n').slice(0, maxLines).join('\n');
@@ -14,7 +14,7 @@ export interface BuildArtifactCheck {
14
14
  * Objdir name the active mozconfig declares via `MOZ_OBJDIR`, when the
15
15
  * candidates were ambiguous and the declaration did not resolve to exactly
16
16
  * one of them. Carried so the refusal can say the declaration was seen and
17
- * did not help — that is itself the diagnosis.
17
+ * did not help. That is itself the diagnosis.
18
18
  */
19
19
  declaredObjDir?: string;
20
20
  /** Build metadata points at a different source or objdir */
@@ -28,8 +28,8 @@ export interface BuildArtifactCheck {
28
28
  /**
29
29
  * Checks if build artifacts exist in the engine directory.
30
30
  * Looks for obj-* directories with a dist subdirectory. Detection is
31
- * deliberately symlink-agnostic — building/running against a symlinked
32
- * objdir in place is the user's own arrangement; the clone path, where a
31
+ * symlink-agnostic on purpose: building/running against a symlinked
32
+ * objdir in place is the user's own arrangement. The clone path, where a
33
33
  * symlink would route writes into the original build, refuses separately
34
34
  * (`assertCloneSafeObjdir` in tree-store.ts).
35
35
  * @param engineDir - Path to the engine directory
@@ -43,15 +43,15 @@ export declare function hasBuildArtifacts(engineDir: string): Promise<BuildArtif
43
43
  * message instead of the generic build-artifacts-missing line.
44
44
  */
45
45
  export interface RunnableBundleCheck {
46
- /** True when an objdir is present AND the expected binary was found under it. */
46
+ /** True when an objdir is present and the expected binary was found under it. */
47
47
  runnable: boolean;
48
- /** Repo-relative (engine-rooted) path we probed; populated even on failure for error copy. */
48
+ /** Repo-relative (engine-rooted) path we probed. Populated even on failure for error copy. */
49
49
  expectedPath?: string;
50
50
  }
51
51
  /**
52
52
  * Checks whether the built browser's launchable binary exists under
53
53
  * `<engineDir>/<objDir>/dist/...`. `hasBuildArtifacts` only confirms that
54
- * an obj tree with a `dist/` subdir exists; a partial or in-progress build
54
+ * an obj tree with a `dist/` subdir exists. A partial or in-progress build
55
55
  * can satisfy that check without ever writing the executable, which is the
56
56
  * failure mode that makes `fireforge run` throw `mach run` after having
57
57
  * reported the build as usable. Separating the probes lets `run` fail fast
@@ -61,19 +61,19 @@ export interface RunnableBundleCheck {
61
61
  *
62
62
  * Platform layout:
63
63
  * - macOS: `<objDir>/dist/*.app/Contents/MacOS/<binaryName>` (the `.app`
64
- * display casing can differ from `binaryName` — e.g. `MyBrowser.app` for
64
+ * display casing can differ from `binaryName`, e.g. `MyBrowser.app` for
65
65
  * binary `mybrowser`, so we enumerate the `*.app` bundles rather than
66
66
  * compute the name.
67
67
  * - Linux: `<objDir>/dist/bin/<binaryName>`.
68
68
  * - Windows: `<objDir>/dist/bin/<binaryName>.exe`.
69
69
  *
70
70
  * Returns `runnable: false` with no `expectedPath` when the `objDir`
71
- * itself cannot be scanned — same degraded contract as `hasBuildArtifacts`.
71
+ * itself cannot be scanned. Same degraded contract as `hasBuildArtifacts`.
72
72
  *
73
73
  * @param engineDir Path to the engine directory
74
74
  * @param binaryName Lowercase binary name from `fireforge.json`
75
75
  * @param objDir The single matching `obj-*` directory name (caller
76
- * resolves it; typically from `hasBuildArtifacts().objDir`)
76
+ * resolves it, typically from `hasBuildArtifacts().objDir`)
77
77
  * @returns Structured check result
78
78
  */
79
79
  export declare function hasRunnableBundle(engineDir: string, binaryName: string, objDir: string): Promise<RunnableBundleCheck>;
@@ -81,7 +81,7 @@ export declare function hasRunnableBundle(engineDir: string, binaryName: string,
81
81
  export declare function buildArtifactMismatchMessage(engineDir: string, buildCheck: BuildArtifactCheck, commandName: string): string | undefined;
82
82
  /**
83
83
  * Outcome of an in-place mozinfo.json rewrite attempt. A successful rewrite
84
- * returns the paths written; a refused rewrite returns a human-readable
84
+ * returns the paths written. A refused rewrite returns a human-readable
85
85
  * reason so the build flow can surface it alongside the original mismatch
86
86
  * message before falling back to the clean-rebuild instruction.
87
87
  */
@@ -101,26 +101,26 @@ export interface MozinfoRewriteResult {
101
101
  * Safe-relocation rewriter for mozinfo.json under the active obj-* tree.
102
102
  *
103
103
  * Firefox build artefacts bake the topsrcdir into many generated files
104
- * (Makefiles, config.status, backend.mk, .deps dependency files — anything
104
+ * (Makefiles, config.status, backend.mk, .deps dependency files, anything
105
105
  * produced by `mach configure`). A fresh `mach configure` rebuilds those
106
106
  * from the top, so the rewriter only needs to patch the one file `mach`
107
107
  * reads to learn where its checkout actually lives. Once mozinfo.json
108
108
  * agrees with the on-disk layout, `mach configure` regenerates the rest.
109
109
  *
110
- * Safety rules — the rewrite is refused when any of them are violated:
110
+ * Safety rules. The rewrite is refused when any of them are violated:
111
111
  * - `topsrcdir` and `topobjdir` must both be present and non-empty.
112
- * - `topobjdir` must resolve to `<topsrcdir>/<objDir>`; a non-in-tree
112
+ * - `topobjdir` must resolve to `<topsrcdir>/<objDir>`. A non-in-tree
113
113
  * objdir means the previous workspace was configured differently,
114
114
  * so a blind prefix-rewrite could point mach at the wrong tree.
115
- * - The computed new `topobjdir` must be `<engineDir>/<objDir>`; if it
115
+ * - The computed new `topobjdir` must be `<engineDir>/<objDir>`. If it
116
116
  * is not, the objDir name itself changed and we cannot prove safety.
117
117
  *
118
118
  * When any rule trips, the caller should fall back to the clean-rebuild
119
- * instruction — that's always a correct (if expensive) recovery path.
119
+ * instruction, which is always a correct (if expensive) recovery path.
120
120
  *
121
121
  * @param engineDir Absolute path to the current engine checkout.
122
122
  * @param objDir Name of the obj-* directory to rewrite against.
123
- * @returns Result object; callers inspect `rewritten` and surface `reason`.
123
+ * @returns Result object. Callers inspect `rewritten` and surface `reason`.
124
124
  */
125
125
  export declare function attemptMozinfoRewrite(engineDir: string, objDir: string): Promise<MozinfoRewriteResult>;
126
126
  /** Per-command wording for {@link assertBuildArtifacts}. */
@@ -141,7 +141,7 @@ export interface BuildArtifactPreflightOptions {
141
141
  /**
142
142
  * Shared build-artifact preflight: rejects ambiguous multi-objdir checkouts,
143
143
  * artifacts whose metadata points at another tree, and (when
144
- * `requireExisting`) missing or incomplete builds — each with the actionable
144
+ * `requireExisting`) missing or incomplete builds, each with the actionable
145
145
  * message for that case.
146
146
  *
147
147
  * Takes an already-probed {@link BuildArtifactCheck} rather than probing
@@ -156,13 +156,13 @@ export declare function assertBuildArtifacts(engineDir: string, buildCheck: Buil
156
156
  * the four configure-generated root files (`config.status`, `backend.mk`,
157
157
  * `Makefile`, `config/autoconf.mk`) still names `forbiddenDir` (the
158
158
  * primary engine a relocated clone must never consult). Exit code 0 alone
159
- * proves neither — a stray MOZCONFIG/MOZ_OBJDIR can steer configure at a
159
+ * proves neither: a stray MOZCONFIG/MOZ_OBJDIR can steer configure at a
160
160
  * different objdir entirely. Nested Makefiles are products of the verified
161
- * `config.status` and are not scanned; `.deps` files are build products a
162
- * configure cannot regenerate and are explicitly out of scope — any
161
+ * `config.status` and are not scanned. `.deps` files are build products a
162
+ * configure cannot regenerate and are explicitly out of scope, and any
163
163
  * primary-path strings they retain are read-only staleness corrected by
164
164
  * the first in-tree rebuild. Pure checker: returns a human-readable
165
- * violation, or `undefined` when clean; callers own the error type and
165
+ * violation, or `undefined` when clean. Callers own the error type and
166
166
  * remediation copy. Unreadable metadata is itself a violation (fail
167
167
  * closed).
168
168
  */