@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
@@ -56,7 +56,7 @@ export interface ExternalToolRequirement {
56
56
  path?: string;
57
57
  /** Resolve the tool with `xcrun -find <name>` instead of PATH. */
58
58
  xcrun?: boolean;
59
- /** Missing tool is an error by default; set false for advisory probes. */
59
+ /** Missing tool is an error by default. Set false for advisory probes. */
60
60
  required?: boolean;
61
61
  }
62
62
  /** Named group of project-specific external asset/build tools. */
@@ -158,14 +158,14 @@ export interface FireForgeConfig {
158
158
  /**
159
159
  * Configuration for the `fireforge typecheck` command. Distinct from
160
160
  * `patchLint.checkJs`: patch-lint runs every time `fireforge lint` runs
161
- * and is scoped to patch-owned `.sys.mjs`; typecheck runs whole projects
161
+ * and is scoped to patch-owned `.sys.mjs`. Typecheck runs whole projects
162
162
  * the operator points at via `projects` and is intended as a CI gate.
163
163
  */
164
164
  export interface TypecheckConfig {
165
165
  /**
166
166
  * Project-relative paths to jsconfig.json (or tsconfig.json) files
167
167
  * the typecheck command should run. Must be non-empty when the
168
- * `typecheck` block is present — an empty array would silently turn
168
+ * `typecheck` block is present. An empty array would silently turn
169
169
  * the command into a no-op.
170
170
  */
171
171
  projects: string[];
@@ -174,14 +174,15 @@ export interface TypecheckConfig {
174
174
  * contents are concatenated to the built-in `FIREFOX_GLOBALS_SHIM`.
175
175
  * Lets projects declare component patterns like `MozLitElement` /
176
176
  * `MozXULElement` once instead of per-file. Concat order is
177
- * built-in shim first, extraShim second — augment, don't redeclare.
177
+ * built-in shim first, extraShim second: augment, don't redeclare.
178
178
  */
179
179
  extraShim?: string;
180
180
  /**
181
181
  * Per-project override of {@link extraShim}, keyed by the project's path
182
182
  * exactly as it appears in {@link projects}. A string value points the
183
- * project at a different `.d.ts`; `null` opts the project out of the shared
184
- * extra shim entirely (it absorbs only the built-in Firefox globals shim).
183
+ * project at a different `.d.ts`. `null` opts the project out of the
184
+ * shared extra shim entirely (it absorbs only the built-in Firefox globals
185
+ * shim).
185
186
  *
186
187
  * Needed because the shared shim is injected into every project: a shim hub
187
188
  * that references Gecko declaration libs (`lib.gecko.dom.d.ts`, …) is wanted
@@ -194,7 +195,7 @@ export interface TypecheckConfig {
194
195
  * How to report undefined free identifiers (TS2304/TS2552). Default
195
196
  * `'warning'`: visible without failing the gate, since shim gaps produce
196
197
  * the same diagnostic as a genuine missing import. `'error'` makes them
197
- * blocking; `'off'` suppresses them.
198
+ * blocking. `'off'` suppresses them.
198
199
  */
199
200
  undefinedIdentifiers?: PatchLintSeverityGate;
200
201
  }
@@ -202,13 +203,13 @@ export interface TypecheckConfig {
202
203
  * Wire command configuration.
203
204
  */
204
205
  /**
205
- * One deliberately-unpackaged source, declared so the post-build audit stops
206
- * reporting it as a missing registration.
206
+ * One intentionally unpackaged source, declared so the post-build audit
207
+ * stops reporting it as a missing registration.
207
208
  *
208
209
  * `reason` is required and must be non-empty. A carve-out whose rationale
209
210
  * nobody wrote down is indistinguishable from a mistake by the time someone
210
211
  * reads it, and this is the one audit class FireForge cannot derive from the
211
- * tree — the file's own header may say "never loaded", but nothing in
212
+ * tree: the file's own header may say "never loaded", but nothing in
212
213
  * `moz.build` or `jar.mn` records that.
213
214
  */
214
215
  export interface BuildAuditUnpackagedDeclaration {
@@ -220,9 +221,9 @@ export interface BuildAuditUnpackagedDeclaration {
220
221
  /** Post-build packaging audit configuration. */
221
222
  export interface BuildAuditConfig {
222
223
  /**
223
- * Sources the audit must treat as deliberately unpackaged. Admitted paths
224
- * are LISTED in the audit output rather than silenced, and one that DOES
225
- * resolve to a packaged artifact is reported as a stale carve-out.
224
+ * Sources the audit must treat as intentionally unpackaged. Admitted
225
+ * paths are listed in the audit output rather than silenced, and one that
226
+ * does resolve to a packaged artifact is reported as a stale carve-out.
226
227
  */
227
228
  unpackaged?: BuildAuditUnpackagedDeclaration[];
228
229
  }
@@ -231,7 +232,7 @@ export interface WireConfig {
231
232
  subscriptDir?: string;
232
233
  }
233
234
  /**
234
- * Severity gate for opt-in patch-lint rules. `'off'` disables the rule;
235
+ * Severity gate for opt-in patch-lint rules. `'off'` disables the rule.
235
236
  * `'warning'` and `'error'` emit issues at the matching severity.
236
237
  */
237
238
  export type PatchLintSeverityGate = 'off' | 'warning' | 'error';
@@ -242,7 +243,7 @@ export type PatchLintSeverityGate = 'off' | 'warning' | 'error';
242
243
  *
243
244
  * Boolean flags tighten the strict preset. The optional `paths` mapping
244
245
  * (each pattern may carry a single `*`) lets patch-owned modules be typed
245
- * from their real sources — e.g. `"resource:///modules/foo/*": ["./*"]` —
246
+ * from their real sources (e.g. `"resource:///modules/foo/*": ["./*"]`),
246
247
  * resolved host-side against the engine directory, so no `baseUrl` is set
247
248
  * (TS5090-safe) and no hand-generated ambient stub shim is needed. Other
248
249
  * options (`rootDir`, etc.) stay disallowed: they would fight the
@@ -263,10 +264,10 @@ export interface PatchLintCheckJsCompilerOptions {
263
264
  /**
264
265
  * Line-count thresholds for one `file-too-large` tier.
265
266
  *
266
- * Every field is optional; an omitted field keeps the built-in default.
267
+ * Every field is optional. An omitted field keeps the built-in default.
267
268
  * The three must stay ordered `notice <= warning <= error`, which the
268
- * config validator enforces — an out-of-order triple silently disables a
269
- * band rather than failing anything.
269
+ * config validator enforces, because an out-of-order triple silently
270
+ * disables a band rather than failing anything.
270
271
  */
271
272
  export interface PatchLintFileSizeTier {
272
273
  notice?: number;
@@ -303,7 +304,7 @@ export interface PatchLintConfig {
303
304
  */
304
305
  checkJsStrict?: boolean;
305
306
  /**
306
- * Boolean overrides merged after the strict preset; only valid when
307
+ * Boolean overrides merged after the strict preset. Only valid when
307
308
  * `checkJsStrict` is true. Requires `checkJs: true`.
308
309
  */
309
310
  checkJsCompilerOptions?: PatchLintCheckJsCompilerOptions;
@@ -357,16 +358,16 @@ export interface PatchLintConfig {
357
358
  * `Services.scriptloader.loadSubScript`, e.g.
358
359
  * `browser/base/content/<binaryName>*.js`). Distinct from
359
360
  * `jsdocClassMethods` because chrome subscripts are parsed as scripts,
360
- * not ES modules — using one flag for both would silently disable the
361
+ * not ES modules. Using one flag for both would silently disable the
361
362
  * rule when a chrome subscript was fed to the module parser. Default:
362
363
  * 'off'.
363
364
  */
364
365
  chromeScriptJsDoc?: PatchLintSeverityGate;
365
366
  /**
366
367
  * How the checkJs pass reports undefined free identifiers
367
- * (TS2304/TS2552). Same semantics as `typecheck.undefinedIdentifiers`;
368
- * the two flows share the suppression policy so a patch
369
- * cannot pass one and fail the other. Default: 'warning'.
368
+ * (TS2304/TS2552). Same semantics as `typecheck.undefinedIdentifiers`.
369
+ * The two flows share the suppression policy so a patch cannot pass one
370
+ * and fail the other. Default: 'warning'.
370
371
  */
371
372
  undefinedIdentifiers?: PatchLintSeverityGate;
372
373
  }
@@ -47,7 +47,7 @@ export interface CustomComponentConfig {
47
47
  /** Whether to register in customElements.js */
48
48
  register: boolean;
49
49
  /**
50
- * What the component IS. `'element'` (the default when unset) is a custom
50
+ * What the component is. `'element'` (the default when unset) is a custom
51
51
  * element with its own tag. `'library'` is a base class + helpers module
52
52
  * that defines no element of its own (e.g. a shared MozLitElement
53
53
  * subclass other components extend): `furnace validate` skips the
@@ -55,7 +55,7 @@ export interface CustomComponentConfig {
55
55
  * and the `missing-css` structural advisory for it, while headers, module
56
56
  * shape, `relative-import`, and (when a `.css` exists) the CSS
57
57
  * compatibility rules still apply. A library exports no element, so
58
- * `kind: "library"` requires `register: false` — the combination with
58
+ * `kind: "library"` requires `register: false`. The combination with
59
59
  * `register: true` is rejected at config parse time.
60
60
  */
61
61
  kind?: 'element' | 'library';
@@ -85,18 +85,18 @@ export interface CustomComponentConfig {
85
85
  * participates in, in the same form used by `insertFTLIfNeeded` (for
86
86
  * example `browser/mybrowser-dock.ftl`). When set:
87
87
  *
88
- * - `furnace create --localized` does NOT scaffold a per-component
89
- * `.ftl` stub — the component shares the feature bundle.
88
+ * - `furnace create --localized` does not scaffold a per-component
89
+ * `.ftl` stub. The component shares the feature bundle.
90
90
  * - The generated `.mjs` calls `insertFTLIfNeeded("<sharedFtl>")` at
91
91
  * the shared path instead of the per-component one.
92
92
  * - `furnace validate`'s `missing-ftl` structural rule is skipped for
93
93
  * the component (there is no `<tag>.ftl` to require).
94
- * - `furnace apply` does NOT copy a per-component `.ftl` into the FTL
95
- * tree nor register a new entry in the locale `jar.mn` — the shared
94
+ * - `furnace apply` does not copy a per-component `.ftl` into the FTL
95
+ * tree nor register a new entry in the locale `jar.mn`. The shared
96
96
  * file is owned by whoever authored the feature bundle.
97
97
  *
98
98
  * Requires `localized: true`. Mutually exclusive with the per-component
99
- * `.ftl` scaffold. Does NOT auto-migrate previous per-component FTL
99
+ * `.ftl` scaffold. Does not auto-migrate previous per-component FTL
100
100
  * state: flipping an existing component onto `sharedFtl` leaves the
101
101
  * prior per-component entry in the engine tree and the locale `jar.mn`
102
102
  * until explicitly cleaned up.
@@ -120,12 +120,12 @@ export interface FurnaceConfig {
120
120
  * variables the fork does not own. `token coverage` counts matches as
121
121
  * `allowlisted` rather than `unknown` so a copied upstream baseline does
122
122
  * not drag fork-owned coverage percentages down. Defaults to `['--moz-']`
123
- * when unset; pass an explicit empty array to count every prefix.
123
+ * when unset. Pass an explicit empty array to count every prefix.
124
124
  */
125
125
  platformPrefixes?: string[];
126
126
  /**
127
- * Custom properties used as runtime state channels — written and read by the
128
- * component itself (e.g. per-frame camera/tile positions) rather than
127
+ * Custom properties used as runtime state channels, written and read by
128
+ * the component itself (e.g. per-frame camera/tile positions) rather than
129
129
  * consumed as design tokens. Listed names are exempt from the
130
130
  * `token-prefix-violation` check even when they do not match `tokenPrefix`
131
131
  * and are not in `tokenAllowlist`. Use this for cross-component runtime
@@ -139,7 +139,7 @@ export interface FurnaceConfig {
139
139
  * the tokens CSS file is `<link>`ed. Forks with multiple chrome host
140
140
  * documents (e.g. `mybrowser.xhtml` beside the stock `browser.xhtml`) should
141
141
  * list every document that may own the link. When omitted, defaults to
142
- * `['browser/base/content/browser.xhtml']` — the upstream Firefox path.
142
+ * `['browser/base/content/browser.xhtml']`, the upstream Firefox path.
143
143
  */
144
144
  tokenHostDocuments?: string[];
145
145
  /**
@@ -157,7 +157,7 @@ export interface FurnaceConfig {
157
157
  * `compilerOptions.paths` entries for deployed component modules
158
158
  * (`chrome://global/content/elements/<file>.mjs`) Furnace keeps in sync
159
159
  * on deploy. Only entries under that chrome prefix that map into
160
- * `components/custom/` are managed; everything else is preserved.
160
+ * `components/custom/` are managed. Everything else is preserved.
161
161
  * Unset disables jsconfig maintenance.
162
162
  */
163
163
  typecheckJsconfig?: string;
@@ -189,11 +189,11 @@ export type FurnacePendingRepairOperation = (typeof FURNACE_PENDING_REPAIR_OPERA
189
189
  * out-of-band from what the state file records.
190
190
  */
191
191
  export interface FurnacePendingRepair {
192
- /** The operation that failed to clean up; used by doctor to route the fix. */
192
+ /** The operation that failed to clean up. Doctor uses it to route the fix. */
193
193
  operation: FurnacePendingRepairOperation;
194
194
  /** ISO timestamp of when the repair marker was written. */
195
195
  timestamp: string;
196
- /** Human-readable summary of the failure; shown by doctor. */
196
+ /** Human-readable summary of the failure. Doctor shows it. */
197
197
  reason: string;
198
198
  }
199
199
  /**
@@ -259,13 +259,13 @@ export interface ApplyResult {
259
259
  /**
260
260
  * Set to true when the rollback journal was restored after a partial failure.
261
261
  * When true, entries in `applied` reflect what was attempted, not what
262
- * persisted — the engine has been restored to its pre-apply state.
262
+ * persisted. The engine has been restored to its pre-apply state.
263
263
  */
264
264
  rolledBack?: boolean;
265
265
  /**
266
266
  * Operator-facing warnings, printed by `logApplyResult`. Populated when
267
267
  * apply overwrote a deployed, patch-owned file whose engine bytes
268
- * differed from the component source — the case where a
268
+ * differed from the component source, which is the case where a
269
269
  * shipped engine-only fix is silently reverted by the copy.
270
270
  */
271
271
  warnings?: string[];
@@ -331,7 +331,7 @@ export type ResolvedTestStyle = 'mochikit' | 'browser-chrome' | 'xpcshell' | 'no
331
331
  * caller is never asked to invent a value it does not have.
332
332
  */
333
333
  export interface ComponentApplyContext {
334
- /** Project root — what registration consistency resolves against. */
334
+ /** Project root, what registration consistency resolves against. */
335
335
  root: string;
336
336
  /** Firefox source directory the component deploys into. */
337
337
  engineDir: string;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Domain types for raw JSON documents (fireforge.json, furnace.json).
3
3
  *
4
- * FireForge deliberately reads and writes some documents in their raw,
5
- * unvalidated form — e.g. `fireforge config --force` round-trips keys that
4
+ * FireForge reads and writes some documents in their raw, unvalidated
5
+ * form. For example, `fireforge config --force` round-trips keys that
6
6
  * the validated `FireForgeConfig` schema would strip. These types give that
7
7
  * pipeline a concrete value contract: every value is JSON data, never a
8
8
  * function, class instance, symbol, or other non-serializable runtime value.
@@ -14,7 +14,7 @@ export type JsonValue = string | number | boolean | null | JsonValue[] | JsonObj
14
14
  /**
15
15
  * A JSON object node. `undefined` is admitted as a property value (not a
16
16
  * `JsonValue`) so in-memory documents can be built field-by-field from
17
- * optional inputs; `JSON.stringify` drops such properties on write, exactly
17
+ * optional inputs. `JSON.stringify` drops such properties on write, exactly
18
18
  * like an absent key.
19
19
  */
20
20
  export interface JsonObject {
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Domain types for raw JSON documents (fireforge.json, furnace.json).
4
4
  *
5
- * FireForge deliberately reads and writes some documents in their raw,
6
- * unvalidated form — e.g. `fireforge config --force` round-trips keys that
5
+ * FireForge reads and writes some documents in their raw, unvalidated
6
+ * form. For example, `fireforge config --force` round-trips keys that
7
7
  * the validated `FireForgeConfig` schema would strip. These types give that
8
8
  * pipeline a concrete value contract: every value is JSON data, never a
9
9
  * function, class instance, symbol, or other non-serializable runtime value.
@@ -23,9 +23,9 @@ export interface TypecheckIssue {
23
23
  /** Raw TypeScript diagnostic code (e.g. 2322 for a type mismatch). */
24
24
  code: number;
25
25
  /**
26
- * Severity bucket — TS reports `Suggestion` and `Message` categories
27
- * too, but `runTypecheck` collapses both into `'warning'` so the CLI
28
- * has only two visible levels.
26
+ * Severity bucket. TS also reports `Suggestion` and `Message`
27
+ * categories, but `runTypecheck` collapses both into `'warning'` so
28
+ * the CLI has only two visible levels.
29
29
  */
30
30
  category: 'error' | 'warning';
31
31
  /** Human-readable message text (already flattened from chains). */
@@ -2,7 +2,7 @@
2
2
  * A failure description, or a thunk producing one.
3
3
  *
4
4
  * The thunk form exists so a hot call site pays nothing on the passing
5
- * path — `assert(ok, () => \`bad state: ${JSON.stringify(x)}\`)` builds
5
+ * path: `assert(ok, () => \`bad state: ${JSON.stringify(x)}\`)` builds
6
6
  * the string only when the assertion actually fails, where a plain
7
7
  * template literal would build it on every call.
8
8
  */
@@ -2,17 +2,17 @@
2
2
  /**
3
3
  * Runtime assertions for FireForge's own internal invariants.
4
4
  *
5
- * These check state that FireForge itself established — a journal was
5
+ * These check state that FireForge itself established: a journal was
6
6
  * registered before the first mutation, a lock is held before a write,
7
- * manifest ordering is contiguous after a renumber. They are NOT input
8
- * validation: anything derived from user input, the filesystem, or a
7
+ * manifest ordering is contiguous after a renumber. They are not input
8
+ * validation. Anything derived from user input, the filesystem, or a
9
9
  * subprocess belongs in a typed error from `src/errors/` with a
10
10
  * `userMessage` that tells the operator what to do. An assertion failure
11
- * says the opposite — that nothing the operator could have done would
12
- * have prevented it.
11
+ * says the opposite: nothing the operator could have done would have
12
+ * prevented it.
13
13
  *
14
14
  * Every check routes through a helper here rather than being open-coded
15
- * as `if (!condition) throw`. That is deliberate: an inline throw adds a
15
+ * as `if (!condition) throw`. An inline throw adds a
16
16
  * permanently-uncovered branch to every function it appears in, and the
17
17
  * per-module coverage floors in `scripts/check-coverage-thresholds.mjs`
18
18
  * would pay for it in ~40 places. Routed through a call, the branch lives
@@ -3,7 +3,7 @@ interface BuildIdentity {
3
3
  shortCommit: string;
4
4
  dirty: boolean;
5
5
  /**
6
- * Content hash of the uncommitted diff, present only for a DIRTY installed
6
+ * Content hash of the uncommitted diff, present only for a dirty installed
7
7
  * build. Two packs from the same HEAD with different uncommitted content
8
8
  * share `shortCommit` and the `.dirty` marker, so without this they report
9
9
  * byte-identical `--version` strings and a report against
@@ -13,15 +13,15 @@ interface BuildIdentity {
13
13
  */
14
14
  dirtyHash?: string;
15
15
  }
16
- /** @internal Reads the stamped dist/build-info.json; null when absent/invalid. */
16
+ /** @internal Reads the stamped dist/build-info.json. Null when absent/invalid. */
17
17
  export declare function readBuildInfoFile(packageRoot: string): BuildIdentity | null;
18
18
  type GitRunner = (args: string[]) => string;
19
- /** @internal Live git identity of the checkout; null when git is unusable. */
19
+ /** @internal Live git identity of the checkout. Null when git is unusable. */
20
20
  export declare function readGitBuildIdentity(runGit?: GitRunner): BuildIdentity | null;
21
21
  /**
22
- * @internal Formats `<version>+g<sha>[.dirty[.<hash>]]`; plain version on
22
+ * @internal Formats `<version>+g<sha>[.dirty[.<hash>]]`. Plain version on
23
23
  * null identity. The trailing content hash appears only for a dirty
24
- * INSTALLED build, where `dist/build-info.json` already carries it — every
24
+ * installed build, where `dist/build-info.json` already carries it. Every
25
25
  * segment stays valid semver build metadata (dot-separated alphanumerics).
26
26
  */
27
27
  export declare function formatVersionWithIdentity(version: string, identity: BuildIdentity | null): string;
@@ -6,14 +6,14 @@
6
6
  * fingerprinting tarballs by sha256 to know which build a claim was verified
7
7
  * against. `--version` reports `<semver>+g<short-sha>[.dirty[.<content-hash>]]`:
8
8
  *
9
- * - In a git checkout (dev runs via tsx), identity comes from live git — a
9
+ * - In a git checkout (dev runs via tsx), identity comes from live git, so a
10
10
  * stale `dist/build-info.json` from an old build must never win.
11
11
  * - In an installed package, it comes from `dist/build-info.json`, stamped
12
12
  * by scripts/generate-build-info.mjs at build/pack time.
13
13
  * - When neither yields an identity, `--version` degrades to the plain
14
14
  * semver. Reading identity must never throw.
15
15
  *
16
- * Deliberately NOT wired into the per-patch lint cache key: identity would
16
+ * Not wired into the per-patch lint cache key: identity would
17
17
  * churn the cache on every commit at the same semver for no correctness gain
18
18
  * (`getPackageVersion` stays the cache input).
19
19
  */
@@ -22,7 +22,7 @@ import { existsSync, readFileSync } from 'node:fs';
22
22
  import { join } from 'node:path';
23
23
  import { getPackageRoot, getPackageVersion } from './package-root.js';
24
24
  import { isObject } from './validation.js';
25
- /** @internal Reads the stamped dist/build-info.json; null when absent/invalid. */
25
+ /** @internal Reads the stamped dist/build-info.json. Null when absent/invalid. */
26
26
  export function readBuildInfoFile(packageRoot) {
27
27
  try {
28
28
  const raw = readFileSync(join(packageRoot, 'dist', 'build-info.json'), 'utf-8');
@@ -49,7 +49,7 @@ const defaultGitRunner = (args) => execFileSync('git', args, {
49
49
  encoding: 'utf-8',
50
50
  stdio: ['ignore', 'pipe', 'ignore'],
51
51
  });
52
- /** @internal Live git identity of the checkout; null when git is unusable. */
52
+ /** @internal Live git identity of the checkout. Null when git is unusable. */
53
53
  export function readGitBuildIdentity(runGit = defaultGitRunner) {
54
54
  try {
55
55
  const commit = runGit(['rev-parse', 'HEAD']).trim();
@@ -80,9 +80,9 @@ function getBuildIdentity() {
80
80
  }
81
81
  }
82
82
  /**
83
- * @internal Formats `<version>+g<sha>[.dirty[.<hash>]]`; plain version on
83
+ * @internal Formats `<version>+g<sha>[.dirty[.<hash>]]`. Plain version on
84
84
  * null identity. The trailing content hash appears only for a dirty
85
- * INSTALLED build, where `dist/build-info.json` already carries it — every
85
+ * installed build, where `dist/build-info.json` already carries it. Every
86
86
  * segment stays valid semver build metadata (dot-separated alphanumerics).
87
87
  */
88
88
  export function formatVersionWithIdentity(version, identity) {
@@ -2,7 +2,7 @@
2
2
  * Environment construction for spawned children.
3
3
  *
4
4
  * Its own module rather than a helper inside `process.ts` only because that
5
- * file sits on a 500-line budget; the logic belongs to the exec layer.
5
+ * file sits on a 500-line budget. The logic belongs to the exec layer.
6
6
  */
7
7
  /** The `env` / `envUnset` slice of exec options this module needs. */
8
8
  interface ChildEnvOptions {
@@ -15,13 +15,13 @@ interface ChildEnvOptions {
15
15
  * The child's environment: `process.env`, with `env` merged over it, then
16
16
  * every `envUnset` key removed.
17
17
  *
18
- * One helper rather than five inline spreads — the removal step is easy to
18
+ * One helper rather than five inline spreads: the removal step is easy to
19
19
  * add at four of the five spawn sites and forget at the fifth, which would
20
20
  * make the option silently inert exactly where it was not tested.
21
21
  *
22
- * Removal is a real removal, not an assignment to `''`: mozbuild's
23
- * `is_running_under_coding_agent()` reads `CLAUDECODE` for its PRESENCE, so
24
- * an empty value would not unset it. `Reflect.deleteProperty` rather than
22
+ * Removal is a real removal rather than an assignment to `''`: mozbuild's
23
+ * `is_running_under_coding_agent()` reads `CLAUDECODE` only for its
24
+ * presence, so an empty value would not unset it. `Reflect.deleteProperty` rather than
25
25
  * `delete obj[key]` because the key is computed.
26
26
  *
27
27
  * @param options - Options carrying `env` / `envUnset`
@@ -3,19 +3,19 @@
3
3
  * Environment construction for spawned children.
4
4
  *
5
5
  * Its own module rather than a helper inside `process.ts` only because that
6
- * file sits on a 500-line budget; the logic belongs to the exec layer.
6
+ * file sits on a 500-line budget. The logic belongs to the exec layer.
7
7
  */
8
8
  /**
9
9
  * The child's environment: `process.env`, with `env` merged over it, then
10
10
  * every `envUnset` key removed.
11
11
  *
12
- * One helper rather than five inline spreads — the removal step is easy to
12
+ * One helper rather than five inline spreads: the removal step is easy to
13
13
  * add at four of the five spawn sites and forget at the fifth, which would
14
14
  * make the option silently inert exactly where it was not tested.
15
15
  *
16
- * Removal is a real removal, not an assignment to `''`: mozbuild's
17
- * `is_running_under_coding_agent()` reads `CLAUDECODE` for its PRESENCE, so
18
- * an empty value would not unset it. `Reflect.deleteProperty` rather than
16
+ * Removal is a real removal rather than an assignment to `''`: mozbuild's
17
+ * `is_running_under_coding_agent()` reads `CLAUDECODE` only for its
18
+ * presence, so an empty value would not unset it. `Reflect.deleteProperty` rather than
19
19
  * `delete obj[key]` because the key is computed.
20
20
  *
21
21
  * @param options - Options carrying `env` / `envUnset`
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Bounded-concurrency helpers shared by commands that fan out per-file IO
3
3
  * (status classification, import's unmanaged-dirty guard, re-export scans,
4
- * the dry-run purity guard). Kept deliberately tiny: one order-preserving
5
- * mapper, no queues, no cancellation.
4
+ * the dry-run purity guard). Kept tiny: one order-preserving mapper, no
5
+ * queues, no cancellation.
6
6
  */
7
7
  /** Maps items with at most `limit` in-flight promises. Preserves order. */
8
8
  export declare function mapWithConcurrency<T, R>(items: readonly T[], limit: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Bounded-concurrency helpers shared by commands that fan out per-file IO
3
3
  * (status classification, import's unmanaged-dirty guard, re-export scans,
4
- * the dry-run purity guard). Kept deliberately tiny: one order-preserving
5
- * mapper, no queues, no cancellation.
4
+ * the dry-run purity guard). Kept tiny: one order-preserving mapper, no
5
+ * queues, no cancellation.
6
6
  */
7
7
  /** Maps items with at most `limit` in-flight promises. Preserves order. */
8
8
  export async function mapWithConcurrency(items, limit, fn) {
@@ -6,7 +6,7 @@
6
6
  * `package` each hand-rolled the same minute/second split, so a change to
7
7
  * the format silently applied to some progress lines and not others.
8
8
  *
9
- * @param ms - Duration in milliseconds; negative input is clamped to zero.
9
+ * @param ms - Duration in milliseconds. Negative input is clamped to zero.
10
10
  * @returns The duration as `Xm Ys`, or `Ys` when under one minute.
11
11
  */
12
12
  function formatElapsed(ms) {
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Throwable normalisation primitives.
3
3
  *
4
- * **This module must import nothing.** It sits at the very bottom of the
5
- * dependency graph — 81 modules across `core/`, `commands/`, `utils/` and
6
- * `bin/` reach it — so it is the one place a shared helper can live and be
4
+ * This module must import nothing. It sits at the very bottom of the
5
+ * dependency graph (81 modules across `core/`, `commands/`, `utils/` and
6
+ * `bin/` reach it), so it is the one place a shared helper can live and be
7
7
  * provably cycle-immune. Adding an import here makes that whole subtree
8
8
  * reachable from every util, and any future `src/errors/*` module wanting a
9
9
  * util back (`errors/git.ts` already carries a mirrored index-lock heuristic
@@ -17,18 +17,18 @@ export declare function toError(error: unknown): Error;
17
17
  * Extracts a Node errno string (`ENOENT`, `EACCES`, `EPERM`, …) from an
18
18
  * unknown throwable, or `undefined` when the value carries no string `code`.
19
19
  *
20
- * The check is deliberately structural rather than `error instanceof Error`:
21
- * a plain object carrying `.code` — exactly the shape {@link toError} exists
22
- * to normalise — reaches errno consumers through rejected promises and
20
+ * The check is structural rather than `error instanceof Error`: a plain
21
+ * object carrying `.code` (exactly the shape {@link toError} exists to
22
+ * normalise) reaches errno consumers through rejected promises and
23
23
  * cross-realm throws, and an `instanceof Error` gate misclassifies it as "no
24
24
  * code".
25
25
  */
26
26
  export declare function getNodeErrorCode(error: unknown): string | undefined;
27
27
  /**
28
28
  * Checks whether a process with the given PID is still running, using
29
- * `kill(pid, 0)` — no signal is sent, only the existence check is performed.
29
+ * `kill(pid, 0)`: no signal is sent, only the existence check is performed.
30
30
  *
31
- * Only `ESRCH` ("no such process") means dead. **`EPERM` means ALIVE**: the
31
+ * Only `ESRCH` ("no such process") means dead. `EPERM` means alive: the
32
32
  * process exists but is owned by another uid, which happens routinely with
33
33
  * root-owned builds, `sudo`, shared CI runners and container UID mismatches.
34
34
  * Reading EPERM as dead in a predicate that gates a recursive delete removes
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * Throwable normalisation primitives.
4
4
  *
5
- * **This module must import nothing.** It sits at the very bottom of the
6
- * dependency graph — 81 modules across `core/`, `commands/`, `utils/` and
7
- * `bin/` reach it — so it is the one place a shared helper can live and be
5
+ * This module must import nothing. It sits at the very bottom of the
6
+ * dependency graph (81 modules across `core/`, `commands/`, `utils/` and
7
+ * `bin/` reach it), so it is the one place a shared helper can live and be
8
8
  * provably cycle-immune. Adding an import here makes that whole subtree
9
9
  * reachable from every util, and any future `src/errors/*` module wanting a
10
10
  * util back (`errors/git.ts` already carries a mirrored index-lock heuristic
@@ -29,9 +29,9 @@ export function toError(error) {
29
29
  * Extracts a Node errno string (`ENOENT`, `EACCES`, `EPERM`, …) from an
30
30
  * unknown throwable, or `undefined` when the value carries no string `code`.
31
31
  *
32
- * The check is deliberately structural rather than `error instanceof Error`:
33
- * a plain object carrying `.code` — exactly the shape {@link toError} exists
34
- * to normalise — reaches errno consumers through rejected promises and
32
+ * The check is structural rather than `error instanceof Error`: a plain
33
+ * object carrying `.code` (exactly the shape {@link toError} exists to
34
+ * normalise) reaches errno consumers through rejected promises and
35
35
  * cross-realm throws, and an `instanceof Error` gate misclassifies it as "no
36
36
  * code".
37
37
  */
@@ -46,9 +46,9 @@ export function getNodeErrorCode(error) {
46
46
  }
47
47
  /**
48
48
  * Checks whether a process with the given PID is still running, using
49
- * `kill(pid, 0)` — no signal is sent, only the existence check is performed.
49
+ * `kill(pid, 0)`: no signal is sent, only the existence check is performed.
50
50
  *
51
- * Only `ESRCH` ("no such process") means dead. **`EPERM` means ALIVE**: the
51
+ * Only `ESRCH` ("no such process") means dead. `EPERM` means alive: the
52
52
  * process exists but is owned by another uid, which happens routinely with
53
53
  * root-owned builds, `sudo`, shared CI runners and container UID mismatches.
54
54
  * Reading EPERM as dead in a predicate that gates a recursive delete removes
@@ -95,7 +95,7 @@ export declare function copyDir(src: string, dest: string): Promise<void>;
95
95
  * artefacts out of their listings without racing the rename.
96
96
  *
97
97
  * Intentionally anchored so a legitimately-named backup file like
98
- * `.notes.fireforge-tmp-backup` (no PID+UUID continuation) is NOT treated
98
+ * `.notes.fireforge-tmp-backup` (no PID+UUID continuation) is not treated
99
99
  * as one of our temps. The full shape is `.<filename>.fireforge-tmp-<pid>-<uuid>`.
100
100
  */
101
101
  export declare const FIREFORGE_TMP_PATH_PATTERN: RegExp;