@hominis/fireforge 0.46.0 → 0.46.1

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 +9 -9
  498. package/dist/src/core/token-dark-mode.js +11 -11
  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
@@ -10,7 +10,7 @@ export interface MozconfigVariables {
10
10
  }
11
11
  /**
12
12
  * Extracts the `--with-branding=<path>` value from a rendered mozconfig
13
- * body. Returns `undefined` when no directive is present — callers treat
13
+ * body. Returns `undefined` when no directive is present, and callers treat
14
14
  * that as "mozconfig is missing branding", which is itself an actionable
15
15
  * configuration error.
16
16
  *
@@ -18,13 +18,13 @@ export interface MozconfigVariables {
18
18
  */
19
19
  export declare function extractWithBrandingPath(mozconfigContent: string): string | undefined;
20
20
  /**
21
- * Extracts the objdir NAME a mozconfig declares — the single trailing path
21
+ * Extracts the objdir name a mozconfig declares: the single trailing path
22
22
  * segment, which is what the `obj-*` scan enumerates.
23
23
  *
24
24
  * `@TOPSRCDIR@` and a leading `./` are both spellings of "beside the
25
- * source", which is the only arrangement FireForge's scan can see anyway;
26
- * an absolute path outside the engine directory reduces to its basename and
27
- * simply will not match a candidate, which is the correct outcome — a
25
+ * source", which is the only arrangement FireForge's scan can see anyway.
26
+ * An absolute path outside the engine directory reduces to its basename and
27
+ * simply will not match a candidate, which is the correct outcome. A
28
28
  * declaration that names something the scan cannot see must not select
29
29
  * anything.
30
30
  *
@@ -33,7 +33,7 @@ export declare function extractWithBrandingPath(mozconfigContent: string): strin
33
33
  export declare function extractMozObjdirName(mozconfigContent: string): string | undefined;
34
34
  /**
35
35
  * Preflights the just-written mozconfig against the branding tree FireForge
36
- * set up. A drift between the two is silent-corruption territory — the
36
+ * set up. A drift between the two is silent-corruption territory: the
37
37
  * build runs, `mach configure` reads the stale directory name out of
38
38
  * mozconfig, and then the recursive make backend errors out with a "path
39
39
  * does not exist" message that names the branding dir the mozconfig
@@ -21,17 +21,17 @@ function replaceVariables(content, variables) {
21
21
  }
22
22
  /**
23
23
  * Matches an `--with-branding=<path>` directive anywhere in a rendered
24
- * mozconfig. The directive form is the one mach reads; an optional
24
+ * mozconfig. The directive form is the one mach reads, and an optional
25
25
  * `ac_add_options` prefix is the on-disk convention. `m` flag anchors the
26
26
  * search per-line so a multi-line mozconfig with older directives earlier
27
- * in the file doesn't confuse the extractor. We pick the LAST match
27
+ * in the file doesn't confuse the extractor. We pick the last match
28
28
  * because mach itself takes the last-write-wins semantics of shell
29
29
  * configuration for overlapping `ac_add_options` calls.
30
30
  */
31
31
  const WITH_BRANDING_PATTERN = /^\s*(?:ac_add_options\s+)?--with-branding\s*=\s*(\S+)/gm;
32
32
  /**
33
33
  * Extracts the `--with-branding=<path>` value from a rendered mozconfig
34
- * body. Returns `undefined` when no directive is present — callers treat
34
+ * body. Returns `undefined` when no directive is present, and callers treat
35
35
  * that as "mozconfig is missing branding", which is itself an actionable
36
36
  * configuration error.
37
37
  *
@@ -51,13 +51,13 @@ export function extractWithBrandingPath(mozconfigContent) {
51
51
  */
52
52
  const MOZ_OBJDIR_PATTERN = /^\s*(?:mk_add_options\s+|export\s+)?MOZ_OBJDIR\s*=\s*["']?([^"'\s#]+)/gm;
53
53
  /**
54
- * Extracts the objdir NAME a mozconfig declares — the single trailing path
54
+ * Extracts the objdir name a mozconfig declares: the single trailing path
55
55
  * segment, which is what the `obj-*` scan enumerates.
56
56
  *
57
57
  * `@TOPSRCDIR@` and a leading `./` are both spellings of "beside the
58
- * source", which is the only arrangement FireForge's scan can see anyway;
59
- * an absolute path outside the engine directory reduces to its basename and
60
- * simply will not match a candidate, which is the correct outcome — a
58
+ * source", which is the only arrangement FireForge's scan can see anyway.
59
+ * An absolute path outside the engine directory reduces to its basename and
60
+ * simply will not match a candidate, which is the correct outcome. A
61
61
  * declaration that names something the scan cannot see must not select
62
62
  * anything.
63
63
  *
@@ -74,7 +74,7 @@ export function extractMozObjdirName(mozconfigContent) {
74
74
  }
75
75
  /**
76
76
  * Preflights the just-written mozconfig against the branding tree FireForge
77
- * set up. A drift between the two is silent-corruption territory — the
77
+ * set up. A drift between the two is silent-corruption territory: the
78
78
  * build runs, `mach configure` reads the stale directory name out of
79
79
  * mozconfig, and then the recursive make backend errors out with a "path
80
80
  * does not exist" message that names the branding dir the mozconfig
@@ -94,7 +94,7 @@ export async function assertBrandingMozconfigAgreement(engineDir, mozconfigPath,
94
94
  if (!found) {
95
95
  throw new BrandingMozconfigMismatchError(expected, '(no --with-branding directive)', 'mozconfig-missing-branding');
96
96
  }
97
- // Normalise both sides to forward slashes before compare — Windows-edited
97
+ // Normalise both sides to forward slashes before compare. Windows-edited
98
98
  // configs can carry backslash path separators that the build would treat
99
99
  // as literal characters in a repo-relative path.
100
100
  const normalizedFound = normalizePathSlashes(found);
@@ -127,9 +127,9 @@ export async function generateMozconfig(configsDir, engineDir, config) {
127
127
  binaryName: config.binaryName,
128
128
  };
129
129
  let content = '';
130
- // Bundle identity: branding configure.sh carries only the LEAF of appId
131
- // (see splitAppId in branding.ts — upstream composes the mac bundle id as
132
- // <distribution-id>.<MOZ_MACBUNDLE_ID>); the prefix travels here so the
130
+ // Bundle identity: branding configure.sh carries only the leaf of appId
131
+ // (see splitAppId in branding.ts, and upstream composes the mac bundle id
132
+ // as <distribution-id>.<MOZ_MACBUNDLE_ID>). The prefix travels here so the
133
133
  // two halves can never drift apart.
134
134
  const { distributionId } = splitAppId(config.appId);
135
135
  content +=
@@ -146,11 +146,11 @@ export async function generateMozconfig(configsDir, engineDir, config) {
146
146
  }
147
147
  const platformContent = await readText(platformPath);
148
148
  content += `# Platform configuration (${platform})\n${replaceVariables(platformContent, variables)}`;
149
- // Write-if-changed: `mozconfig` is a mach CONFIGURE INPUT, so
150
- // its mtime — not its content — is what `config.status` compares against.
149
+ // Write-if-changed: `mozconfig` is a mach configure input, so its mtime,
150
+ // not its content, is what `config.status` compares against.
151
151
  // Rewriting a byte-identical file on every build-capable invocation made
152
152
  // mach re-run `configure` plus backend regeneration ("Backend config
153
- // changed; N files touched") on EVERY run, each run re-arming the next.
153
+ // changed; N files touched") on every run, each run re-arming the next.
154
154
  // Only touch the file when the rendered content actually differs.
155
155
  const wrote = await writeTextIfChanged(outputPath, content);
156
156
  if (!wrote) {
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Resets the resolved Python executable. Primarily useful for testing.
3
3
  *
4
- * @internal Exported only so tests can reach it; not part of the public surface.
4
+ * @internal Exported only so tests can reach it. Not part of the public
5
+ * surface.
5
6
  */
6
7
  export declare function resetResolvedPython(): void;
7
8
  /**
@@ -8,8 +8,8 @@ import { exec, executableExists } from '../utils/process.js';
8
8
  /** Cached Python resolution state */
9
9
  /**
10
10
  * The resolved interpreter and the requirement range it was resolved for.
11
- * `undefined` means "not resolved yet"; the two always move together, so one
12
- * nullable record beats two independently-deletable fields.
11
+ * `undefined` means "not resolved yet". The two always move together, so
12
+ * one nullable record beats two independently-deletable fields.
13
13
  */
14
14
  let pythonCache;
15
15
  const DEFAULT_MACH_PYTHON_REQUIREMENTS = {
@@ -79,7 +79,8 @@ function buildPythonCandidates(requirements) {
79
79
  /**
80
80
  * Resets the resolved Python executable. Primarily useful for testing.
81
81
  *
82
- * @internal Exported only so tests can reach it; not part of the public surface.
82
+ * @internal Exported only so tests can reach it. Not part of the public
83
+ * surface.
83
84
  */
84
85
  export function resetResolvedPython() {
85
86
  pythonCache = undefined;
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * The guard is installed as a `fireforge_mach_guard.pth` + module pair in
14
14
  * every discovered mach virtualenv site-packages directory. A PYTHONPATH
15
- * `sitecustomize.py` is NOT sufficient on its own: mach re-execs itself into
15
+ * `sitecustomize.py` is not sufficient on its own: mach re-execs itself into
16
16
  * its private virtualenv and drops PYTHONPATH, so that route never loads.
17
17
  * `.pth` files execute at interpreter startup from the venv's own
18
18
  * site-packages, which survives the re-exec. The PYTHONPATH copy is retained
@@ -21,12 +21,12 @@
21
21
  *
22
22
  * The guard covers the whole crash family:
23
23
  * - wraps `psutil.virtual_memory` / `swap_memory` / `cpu_percent` /
24
- * `cpu_times` / `disk_io_counters` module-wide, so every call site —
24
+ * `cpu_times` / `disk_io_counters` module-wide, so every call site,
25
25
  * including the direct `psutil.virtual_memory()` in
26
- * `mozbuild.base._run_make` — degrades to a `UserWarning` and a zeroed
26
+ * `mozbuild.base._run_make`, degrades to a `UserWarning` and a zeroed
27
27
  * reading instead of aborting.
28
28
  *
29
- * The fallback must be per-function ARITY-CORRECT and reconstructible:
29
+ * The fallback must be per-function arity-correct and reconstructible:
30
30
  * mozsystemmonitor captures reading types at `__init__`
31
31
  * (`self._swap_type = type(psutil.swap_memory())`) and rebuilds each
32
32
  * collector sample via `self._swap_type(*swap_mem)`. An svmem-shaped
@@ -36,28 +36,28 @@
36
36
  * sentinel, and mach hangs forever in its atexit `waitpid`. Each wrapped
37
37
  * function therefore degrades to a zeroed instance of psutil's own result
38
38
  * namedtuple where resolvable, else a module-level guard-owned namedtuple
39
- * with the exact field order and arity for THAT function (module-level so
39
+ * with the exact field order and arity for that function (module-level so
40
40
  * readings pickle by reference across the collector pipe).
41
41
  * `_DegradedReading` remains only as a documented last resort and
42
42
  * tolerates `type(reading)(*values)` reconstruction. Guard-owned fallback
43
43
  * classes never depend on psutil internals resolving, which also makes
44
44
  * them safe when two guard copies load (PYTHONPATH `sitecustomize` in the
45
- * bootstrap phase plus the in-venv `.pth`), each with its own classes;
46
- * - guards `SystemResourceMonitor` CONSTRUCTION via an import hook:
45
+ * bootstrap phase plus the in-venv `.pth`), each with its own classes.
46
+ * - guards `SystemResourceMonitor` construction via an import hook:
47
47
  * `poll_interval` is pre-populated before the real `__init__` runs, a
48
48
  * failing `__init__` marks the instance degraded instead of raising, and
49
- * every monitor method no-ops on a degraded instance — so a
49
+ * every monitor method no-ops on a degraded instance, so a
50
50
  * partially-constructed monitor can never surface the
51
51
  * `AttributeError: poll_interval` variant. Degraded aggregate methods
52
52
  * return zeroed shapes (not `None`) where callers subscript the result
53
53
  * (`aggregate_io` → zeroed io reading, so mozbuild's `log_resource_usage`
54
- * does not die on `usage["io"].read_bytes` after a successful compile);
54
+ * does not die on `usage["io"].read_bytes` after a successful compile).
55
55
  * - suppresses the mozsystemmonitor collector child on degradation: once
56
56
  * any psutil degradation is observed in the process, monitors are kept
57
57
  * inert (`start` never spawns the collector), and a degraded transition
58
58
  * or raising `stop` best-effort terminates a live collector child and
59
59
  * drains the pipe, so a malformed sample stream cannot wedge mach's
60
- * shutdown even if a future shape mismatch slips through;
60
+ * shutdown even if a future shape mismatch slips through.
61
61
  * - wraps `mozbuild.controller.building.BuildMonitor.log_resource_usage` to
62
62
  * warn-and-continue on any exception, so end-of-build resource reporting
63
63
  * can never fail a build whose artifacts are complete.
@@ -87,7 +87,7 @@ export interface MachResourceGuardInstallation {
87
87
  * Refuses a shim directory that is not a private directory of the current
88
88
  * user. `lstat`, not `stat`: a symlink planted at the path would otherwise
89
89
  * be followed and the check would describe its target. On Windows only the
90
- * "is a real directory" half applies — there is no POSIX owner or mode bit
90
+ * "is a real directory" half applies. There is no POSIX owner or mode bit
91
91
  * to read, and the per-user name is the isolation.
92
92
  *
93
93
  * @param dir - Shim directory that {@link ensureSitecustomizeFallback} created
@@ -100,7 +100,7 @@ export declare function assertPrivateShimDir(dir: string): Promise<void>;
100
100
  * `fireforge_mach_guard.pth` + `fireforge_mach_guard.py` into every
101
101
  * discovered mach virtualenv site-packages (survives mach's venv re-exec),
102
102
  * plus the PYTHONPATH sitecustomize fallback for the pre-venv bootstrap
103
- * phase. Idempotent and re-run before EVERY protected dispatch (including
103
+ * phase. Idempotent and re-run before every protected dispatch (including
104
104
  * each retry) so a venv created by a crashed first attempt is guarded on
105
105
  * the next one instead of re-dying on the same wedged state.
106
106
  */
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * The guard is installed as a `fireforge_mach_guard.pth` + module pair in
15
15
  * every discovered mach virtualenv site-packages directory. A PYTHONPATH
16
- * `sitecustomize.py` is NOT sufficient on its own: mach re-execs itself into
16
+ * `sitecustomize.py` is not sufficient on its own: mach re-execs itself into
17
17
  * its private virtualenv and drops PYTHONPATH, so that route never loads.
18
18
  * `.pth` files execute at interpreter startup from the venv's own
19
19
  * site-packages, which survives the re-exec. The PYTHONPATH copy is retained
@@ -22,12 +22,12 @@
22
22
  *
23
23
  * The guard covers the whole crash family:
24
24
  * - wraps `psutil.virtual_memory` / `swap_memory` / `cpu_percent` /
25
- * `cpu_times` / `disk_io_counters` module-wide, so every call site —
25
+ * `cpu_times` / `disk_io_counters` module-wide, so every call site,
26
26
  * including the direct `psutil.virtual_memory()` in
27
- * `mozbuild.base._run_make` — degrades to a `UserWarning` and a zeroed
27
+ * `mozbuild.base._run_make`, degrades to a `UserWarning` and a zeroed
28
28
  * reading instead of aborting.
29
29
  *
30
- * The fallback must be per-function ARITY-CORRECT and reconstructible:
30
+ * The fallback must be per-function arity-correct and reconstructible:
31
31
  * mozsystemmonitor captures reading types at `__init__`
32
32
  * (`self._swap_type = type(psutil.swap_memory())`) and rebuilds each
33
33
  * collector sample via `self._swap_type(*swap_mem)`. An svmem-shaped
@@ -37,28 +37,28 @@
37
37
  * sentinel, and mach hangs forever in its atexit `waitpid`. Each wrapped
38
38
  * function therefore degrades to a zeroed instance of psutil's own result
39
39
  * namedtuple where resolvable, else a module-level guard-owned namedtuple
40
- * with the exact field order and arity for THAT function (module-level so
40
+ * with the exact field order and arity for that function (module-level so
41
41
  * readings pickle by reference across the collector pipe).
42
42
  * `_DegradedReading` remains only as a documented last resort and
43
43
  * tolerates `type(reading)(*values)` reconstruction. Guard-owned fallback
44
44
  * classes never depend on psutil internals resolving, which also makes
45
45
  * them safe when two guard copies load (PYTHONPATH `sitecustomize` in the
46
- * bootstrap phase plus the in-venv `.pth`), each with its own classes;
47
- * - guards `SystemResourceMonitor` CONSTRUCTION via an import hook:
46
+ * bootstrap phase plus the in-venv `.pth`), each with its own classes.
47
+ * - guards `SystemResourceMonitor` construction via an import hook:
48
48
  * `poll_interval` is pre-populated before the real `__init__` runs, a
49
49
  * failing `__init__` marks the instance degraded instead of raising, and
50
- * every monitor method no-ops on a degraded instance — so a
50
+ * every monitor method no-ops on a degraded instance, so a
51
51
  * partially-constructed monitor can never surface the
52
52
  * `AttributeError: poll_interval` variant. Degraded aggregate methods
53
53
  * return zeroed shapes (not `None`) where callers subscript the result
54
54
  * (`aggregate_io` → zeroed io reading, so mozbuild's `log_resource_usage`
55
- * does not die on `usage["io"].read_bytes` after a successful compile);
55
+ * does not die on `usage["io"].read_bytes` after a successful compile).
56
56
  * - suppresses the mozsystemmonitor collector child on degradation: once
57
57
  * any psutil degradation is observed in the process, monitors are kept
58
58
  * inert (`start` never spawns the collector), and a degraded transition
59
59
  * or raising `stop` best-effort terminates a live collector child and
60
60
  * drains the pipe, so a malformed sample stream cannot wedge mach's
61
- * shutdown even if a future shape mismatch slips through;
61
+ * shutdown even if a future shape mismatch slips through.
62
62
  * - wraps `mozbuild.controller.building.BuildMonitor.log_resource_usage` to
63
63
  * warn-and-continue on any exception, so end-of-build resource reporting
64
64
  * can never fail a build whose artifacts are complete.
@@ -73,7 +73,7 @@ import { verbose } from '../utils/logger.js';
73
73
  /**
74
74
  * Prefix of the per-user directory (under the OS temp dir) holding the
75
75
  * PYTHONPATH fallback. The uid (or, on Windows, the username) is appended:
76
- * a FIXED name under a shared `/tmp` lets any other local account pre-create
76
+ * a fixed name under a shared `/tmp` lets any other local account pre-create
77
77
  * the directory and own the `sitecustomize.py` that every mach dispatch
78
78
  * then imports.
79
79
  */
@@ -531,10 +531,10 @@ async function discoverMachSitePackages(engineDir) {
531
531
  /**
532
532
  * Per-user discriminator for the shim directory name. The numeric uid on
533
533
  * POSIX, read via `process.getuid` rather than `os.userInfo()`: the latter
534
- * resolves the passwd entry and THROWS (`ERR_SYSTEM_ERROR`) for a uid that
535
- * has none — `docker --user 1001:1001`, OpenShift's random uids, many CI
536
- * agents — which would take every build and test dispatch down with a raw
537
- * system error. On Windows there is no uid; the username is the
534
+ * resolves the passwd entry and throws (`ERR_SYSTEM_ERROR`) for a uid that
535
+ * has none (`docker --user 1001:1001`, OpenShift's random uids, many CI
536
+ * agents), which would take every build and test dispatch down with a raw
537
+ * system error. On Windows there is no uid. The username is the
538
538
  * discriminator, with `userInfo()` still guarded because the same lookup
539
539
  * can fail there for a service account, falling back to the environment.
540
540
  */
@@ -559,7 +559,7 @@ function resourceShimDir() {
559
559
  * Refuses a shim directory that is not a private directory of the current
560
560
  * user. `lstat`, not `stat`: a symlink planted at the path would otherwise
561
561
  * be followed and the check would describe its target. On Windows only the
562
- * "is a real directory" half applies — there is no POSIX owner or mode bit
562
+ * "is a real directory" half applies. There is no POSIX owner or mode bit
563
563
  * to read, and the per-user name is the isolation.
564
564
  *
565
565
  * @param dir - Shim directory that {@link ensureSitecustomizeFallback} created
@@ -588,13 +588,13 @@ export async function assertPrivateShimDir(dir) {
588
588
  /**
589
589
  * Writes the PYTHONPATH `sitecustomize.py` fallback into a per-user,
590
590
  * mode-0700 FireForge-owned temp directory, verified private before the
591
- * write, and returns that directory. Idempotent — overwriting each call
591
+ * write, and returns that directory. Idempotent: overwriting each call
592
592
  * keeps it in sync with this source across upgrades.
593
593
  */
594
594
  async function ensureSitecustomizeFallback() {
595
595
  const dir = resourceShimDir();
596
596
  // `mode` only applies when mkdir creates the directory (and is masked by
597
- // the umask); a pre-existing one keeps whatever it had, which is exactly
597
+ // the umask). A pre-existing one keeps whatever it had, which is exactly
598
598
  // what the assertion below refuses if it is not private.
599
599
  await mkdir(dir, { recursive: true, mode: 0o700 });
600
600
  await assertPrivateShimDir(dir);
@@ -615,7 +615,7 @@ function machResourceShimEnv(shimDir, baseEnv = process.env) {
615
615
  * `fireforge_mach_guard.pth` + `fireforge_mach_guard.py` into every
616
616
  * discovered mach virtualenv site-packages (survives mach's venv re-exec),
617
617
  * plus the PYTHONPATH sitecustomize fallback for the pre-venv bootstrap
618
- * phase. Idempotent and re-run before EVERY protected dispatch (including
618
+ * phase. Idempotent and re-run before every protected dispatch (including
619
619
  * each retry) so a venv created by a crashed first attempt is guarded on
620
620
  * the next one instead of re-dying on the same wedged state.
621
621
  */
@@ -627,7 +627,7 @@ export async function installMachResourceGuard(engineDir) {
627
627
  await writeText(join(sitePackages, `${GUARD_MODULE_NAME}.pth`), `import ${GUARD_MODULE_NAME}\n`);
628
628
  }
629
629
  catch (error) {
630
- // A read-only or vanished venv must not block the dispatch; the
630
+ // A read-only or vanished venv must not block the dispatch. The
631
631
  // PYTHONPATH fallback still applies and other venvs may have taken
632
632
  // the guard.
633
633
  verbose(`Could not install mach resource guard into ${sitePackages}: ${toError(error).message}`);
@@ -18,17 +18,17 @@ export interface MachOptions {
18
18
  /** Whether to inherit stdio (show output directly) */
19
19
  inherit?: boolean;
20
20
  /**
21
- * Collapse the KNOWN mozsystemmonitor teardown traceback to one labeled
22
- * line in the terminal ECHO (capture-only option). The captured
23
- * stdout/stderr stay raw — the harness classifier depends on the raw
21
+ * Collapse the known mozsystemmonitor teardown traceback to one labeled
22
+ * line in the terminal echo (capture-only option). The captured
23
+ * stdout/stderr stay raw, because the harness classifier depends on the raw
24
24
  * traceback. Unrecognized tracebacks always echo verbatim. Opted into by
25
25
  * the test dispatchers only.
26
26
  *
27
- * Consumed by {@link runMachCapture} ALONE. `runMachInheritCapture` accepts
28
- * it in the type and ignores it — the inherit path has no per-chunk hook,
27
+ * Consumed by {@link runMachCapture} alone. `runMachInheritCapture` accepts
28
+ * it in the type and ignores it: the inherit path has no per-chunk hook,
29
29
  * only a mirror stream that feeds the terminal and the run log the same
30
30
  * string, so filtering there would strip the traceback from the raw log
31
- * too. The build path uses the recognition NOTE instead; see
31
+ * too. The build path uses the recognition note instead. See
32
32
  * `mach-known-noise-filter.ts`.
33
33
  */
34
34
  annotateKnownTeardownNoise?: boolean;
@@ -92,20 +92,20 @@ export interface ProtectedMachBuildResult extends MachCommandResult {
92
92
  }
93
93
  /**
94
94
  * The single protected path every FireForge mach build dispatch routes
95
- * through — `build`, `build --ui`, and the pre-test `--build` step all use
95
+ * through. `build`, `build --ui`, and the pre-test `--build` step all use
96
96
  * it, so no entry point is left unprotected with a different retry budget:
97
97
  *
98
- * 1. installs the resource-monitor degrade guard IN the mach virtualenvs
99
- * (plus the PYTHONPATH fallback) — re-installed before every attempt, so
98
+ * 1. installs the resource-monitor degrade guard in the mach virtualenvs
99
+ * (plus the PYTHONPATH fallback), re-installed before every attempt, so
100
100
  * a venv materialized by a crashed first attempt is guarded on the next
101
- * one instead of every retry dying on the same wedged state;
102
- * 2. spawns a fresh mach process per attempt;
103
- * 3. retries ONLY the recognized harness-crash family (resource monitor /
104
- * psutil startup tracebacks) up to the uniform budget — an ordinary
101
+ * one instead of every retry dying on the same wedged state.
102
+ * 2. spawns a fresh mach process per attempt.
103
+ * 3. retries only the recognized harness-crash family (resource monitor /
104
+ * psutil startup tracebacks) up to the uniform budget. An ordinary
105
105
  * compile error is never retried.
106
106
  *
107
107
  * The protected path never runs `mach configure`, never clobbers, and never
108
- * widens the requested build kind — a `faster` dispatch retries as
108
+ * widens the requested build kind: a `faster` dispatch retries as
109
109
  * `mach build faster`, so it cannot invalidate more of the objdir than the
110
110
  * command the operator asked for.
111
111
  */
@@ -116,8 +116,8 @@ export declare function runProtectedMachBuild(kind: ProtectedBuildKind, engineDi
116
116
  * hints are surfaced on top of the raw mach output so operators get an
117
117
  * actionable nudge alongside the cryptic mozbuild traceback. Returns the
118
118
  * captured result so the caller (e.g. `fireforge build`) can inspect the
119
- * tail for post-build diagnostics that mach prints AFTER "Your build was
120
- * successful!" — notably the stale `config.status is out of date`
119
+ * tail for post-build diagnostics that mach prints after "Your build was
120
+ * successful!", notably the stale `config.status is out of date`
121
121
  * notice that mach emits when a tool-managed edit landed on
122
122
  * `moz.configure` before the build.
123
123
  * @param engineDir - Path to the engine directory
@@ -141,13 +141,13 @@ export declare function buildUI(engineDir: string): Promise<ProtectedMachBuildRe
141
141
  *
142
142
  * Without it, a `build --ui` started while a full `build` is still in flight
143
143
  * hands off to `mach build faster` and fails almost immediately with `No
144
- * rule to make target 'XUL'` — the real problem being that the first build
144
+ * rule to make target 'XUL'`, the real problem being that the first build
145
145
  * has not yet materialised the full backend, with nothing in the low-level
146
146
  * make error pointing at the concurrent run. The lock intercepts the second
147
147
  * invocation before it touches mach, and the refusal names the PID holding
148
148
  * the lock so the operator can decide whether to wait or investigate.
149
149
  *
150
- * Stale-lock recovery: the lock stores the owner PID; a crashed build
150
+ * Stale-lock recovery: the lock stores the owner PID. A crashed build
151
151
  * (SIGINT, SIGTERM, or a kernel kill) leaves the lock dir behind but not the
152
152
  * owning process, and `withFileLock` removes the lock on the next attempt
153
153
  * when `process.kill(pid, 0)` shows the owner is gone.
@@ -185,7 +185,7 @@ export interface RunMachSmokeOptions {
185
185
  * enforces a deadline by SIGTERMing the whole process group, and returns
186
186
  * the captured output alongside a `timedOut` flag.
187
187
  *
188
- * Unlike {@link run}, this variant does NOT inherit stdio. The child
188
+ * Unlike {@link run}, this variant does not inherit stdio. The child
189
189
  * stdout/stderr are piped back through the line callbacks so the caller
190
190
  * can scan for `JavaScript error:` / `console.error:` without coupling
191
191
  * the runner to chrome-specific pattern logic.
@@ -206,7 +206,7 @@ export declare function machPackageCapture(engineDir: string): Promise<MachComma
206
206
  * `env` is threaded through so the caller can prepend the resolved watchman
207
207
  * directory to PATH in a way mach inherits: `fireforge watch` can locate
208
208
  * `watchman` via `which`, but the mach subprocess spawns with the parent's
209
- * PATH only — on macOS that typically omits `/opt/homebrew/bin`, so
209
+ * PATH only, and on macOS that typically omits `/opt/homebrew/bin`, so
210
210
  * `mach watch` fails at the `watch-project` subscription step.
211
211
  *
212
212
  * @param engineDir - Path to the engine directory
@@ -232,7 +232,7 @@ export type MachTestSuiteKind = 'test' | 'xpcshell-test' | 'mochitest';
232
232
  export interface MachTestSuiteOptions {
233
233
  /** Absolute path to the engine checkout. */
234
234
  engineDir: string;
235
- /** Test paths to pass to the mach command; empty runs the default set. */
235
+ /** Test paths to pass to the mach command. Empty runs the default set. */
236
236
  testPaths?: string[];
237
237
  /** Extra mach arguments appended after the paths. */
238
238
  args?: string[];
@@ -251,8 +251,8 @@ export interface MachTestSuiteOptions {
251
251
  /**
252
252
  * Runs one mach test command (`mach test` / `mach xpcshell-test` / `mach
253
253
  * mochitest`) while capturing streamed output for better diagnostics. The
254
- * three commands share every other detail of the dispatch — resource guard,
255
- * verbosity env, teardown-noise annotation — so they share one entry point
254
+ * three commands share every other detail of the dispatch (resource guard,
255
+ * verbosity env, teardown-noise annotation), so they share one entry point
256
256
  * keyed by `kind` rather than three copies that drift.
257
257
  *
258
258
  * @param kind - Which mach command to run